diff --git a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
index e6497a270c8ee7a70ac9db8cccd73d7055f0adb3..57ff22b6e2e55458ff15d4d6fb47845296d0a676 100644
--- a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
+++ b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
@@ -666,6 +666,13 @@ func (repo *PendaftaranSidSemRepo) DeleteDosujiSidsem(dosUjis []entity.Dosuji, i
 	return nil
 }
 
+func (repo *PendaftaranSidSemRepo) DeleteAllDosujiSidsem(idSidsem string) error {
+	if err := repo.DBWrite.Table("penguji_sidsem").Where("sidsem_id = ? ", idSidsem).Delete(&entity.PengujiSidsem{}).Error; err != nil {
+		return err
+	}
+	return nil
+}
+
 func (repo *PendaftaranSidSemRepo) UpdateDosujiSidsem(dosUjis []entity.PengujiSidsem, idSidsem string) error {
 	if err := repo.DBWrite.Table("penguji_sidsem").Create(&dosUjis).Error; err != nil {
 		return err
diff --git a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
index f540e58cc657df02aac02863e7c4015f89ee15a8..cfe2a6e34a1ec6d0f452fee23db5caa4e0337edf 100644
--- a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
+++ b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
@@ -302,9 +302,16 @@ func (uc *PendaftaranSidSemUc) GetDosuji(idPendaftaranSidSem string) ([]entity.D
 }
 
 func (uc *PendaftaranSidSemUc) UpdateDosujiSidsem(dosUjis []entity.Dosuji, idPendaftaranSidSem string) error {
-	err := uc.pendaftaransidsemrepo.DeleteDosujiSidsem(dosUjis, idPendaftaranSidSem)
-	if err != nil {
-		return err
+	if len(dosUjis) == 0 {
+		err := uc.pendaftaransidsemrepo.DeleteAllDosujiSidsem(idPendaftaranSidSem)
+		if err != nil {
+			return err
+		}
+	} else {
+		err := uc.pendaftaransidsemrepo.DeleteDosujiSidsem(dosUjis, idPendaftaranSidSem)
+		if err != nil {
+			return err
+		}
 	}
 
 	assignedDosUjis, err := uc.pendaftaransidsemrepo.GetDosujiByIdSidSem(idPendaftaranSidSem)
diff --git a/src/module/pendaftaran_sidsem/internal/usecase/repository.go b/src/module/pendaftaran_sidsem/internal/usecase/repository.go
index c4caf27e44988188d9f1376c05b5a00d73c17350..302023514d4de9750814d49819193fc74ee28cbe 100644
--- a/src/module/pendaftaran_sidsem/internal/usecase/repository.go
+++ b/src/module/pendaftaran_sidsem/internal/usecase/repository.go
@@ -34,6 +34,7 @@ type PendaftaranSidSemRepository interface {
 	UpdateJadwalSidsem(waktuMulai string, waktuAkhir string, idSidsem string) error
 	GetDosuji(idSidsem string) ([]entity.Dosuji, error)
 	DeleteDosujiSidsem(dosUjis []entity.Dosuji, idSidsem string) error
+	DeleteAllDosujiSidsem(idSidsem string) error
 	GetDosujiByIdSidSem(idSidsem string) ([]entity.PengujiSidsem, error)
 	UpdateDosujiSidsem(dosUjis []entity.PengujiSidsem, idSidsem string) error
 }