diff --git a/src/module/bimbingan_log/internal/repository/bimbingan_log.go b/src/module/bimbingan_log/internal/repository/bimbingan_log.go
index 9942e1f46f691731ee98ab238f66c14b90fd16a0..89b303ae2df7cc0b8d83f91ea1ba174f3684a515 100644
--- a/src/module/bimbingan_log/internal/repository/bimbingan_log.go
+++ b/src/module/bimbingan_log/internal/repository/bimbingan_log.go
@@ -51,7 +51,7 @@ func (repo *BimbinganLogRepo) GetBimbinganLogByStudentId(limit int, offset int,
 	var bimbinganLogs []entity.BimbinganLog
 	var bimbinganLogsBerkas []entity.BimbinganLogBerkas
 
-	result := repo.DBRead.Where("id_mahasiswa = ?", idMahasiswa).Limit(limit).Offset(offset).Find(&bimbinganLogs)
+	result := repo.DBRead.Where("id_mahasiswa = ?", idMahasiswa).Find(&bimbinganLogs)
 	if result.Error != nil {
 		return nil, err
 	}
diff --git a/src/module/pendaftaran_sidsem/entity/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/entity/pendaftaran_sidsem.go
index 9479228272e8874af25c0bcdc6f371554f8321ef..7908c733ee2dcb8c6079a9a1ee465d018c20dfee 100644
--- a/src/module/pendaftaran_sidsem/entity/pendaftaran_sidsem.go
+++ b/src/module/pendaftaran_sidsem/entity/pendaftaran_sidsem.go
@@ -140,8 +140,8 @@ type EditDitolakRequest struct {
 	Ditolak bool   `json:"ditolak"`
 }
 
-type DetailReq struct {
-	IdMahasiswa string `json:"id_mahasiswa"`
+type UpdateRuanganReq struct {
+	NamaRuangan string `json:"nama_ruangan"`
 	IdSidSem    string `json:"id_sidsem"`
 }
 
@@ -219,3 +219,8 @@ type JadwalStatus struct {
 	WaktuMulai string `json:"waktu_mulai"`
 	Ditolak    string `json:"ditolak"`
 }
+
+type Ruangan struct {
+	ID   string `json:"id"`
+	Nama string `json:"nama"`
+}
diff --git a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
index ca3854fce268913662cd8cd87b5e31ad065cf8e9..df056393c1b2431a38f7f184fa814720b195c43d 100644
--- a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
+++ b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go
@@ -611,3 +611,31 @@ func (repo *PendaftaranSidSemRepo) GetIdMahasiswaFromIdSidSem(idSidsem string) (
 
 	return idMahasiswa, nil
 }
+
+func (repo *PendaftaranSidSemRepo) AddRuanganIfNotExist(namaRuangan string) (string, error) {
+	var ruangan entity.Ruangan
+	err := repo.DBRead.Table("ruangan").Where("nama = ?", namaRuangan).First(&ruangan).Error
+	if err != nil {
+		if err == gorm.ErrRecordNotFound {
+			ruangan = entity.Ruangan{
+				ID:   uuid.New().String(),
+				Nama: namaRuangan,
+			}
+			if err := repo.DBWrite.Table("ruangan").Create(&ruangan).Error; err != nil {
+				return "", err
+			}
+			return ruangan.ID, nil
+		}
+		return "", err
+	}
+	return ruangan.ID, nil
+}
+
+func (repo *PendaftaranSidSemRepo) UpdateRuanganSidSem(idSidsem string, idRuangan string) error {
+	if err := repo.DBRead.Table("pendaftaran_sidsem").
+		Where("id = ?", idSidsem).
+		Update("ruangan_id", idRuangan).Error; err != nil {
+		return err
+	}
+	return nil
+}
diff --git a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
index c3a24ceeec9e632294a0519d903fba6ee12c6eff..1d26bd0f2ac7dc75b1b25d607792a272dde28bf5 100644
--- a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
+++ b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go
@@ -25,6 +25,7 @@ type PendaftaranSidSemUsecase interface {
 	IsRegisteredSidsem(idMahasiswa string, tipe string) (bool, error)
 	GetSidSemDetailByMahasiswaId(idMahasiswa string, tipe string) (entity.DetailSidSemByMahasiswa, error)
 	GetSidSemDetailTA(IdSidSem string) (entity.DetailSidSemTA, error)
+	UpdateRuanganSidSem(namaRuangan string, idPendaftaranSidSem string) error
 }
 
 type PendaftaranSidSemUc struct {
@@ -258,3 +259,17 @@ func (uc *PendaftaranSidSemUc) GetSidSemDetailTA(idSidsem string) (entity.Detail
 	return detailSidsemTA, nil
 
 }
+
+func (uc *PendaftaranSidSemUc) UpdateRuanganSidSem(namaRuangan string, idPendaftaranSidSem string) error {
+	idRuangan, err := uc.pendaftaransidsemrepo.AddRuanganIfNotExist(namaRuangan)
+	if err != nil {
+		return err
+	}
+
+	err = uc.pendaftaransidsemrepo.UpdateRuanganSidSem(idPendaftaranSidSem, idRuangan)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
diff --git a/src/module/pendaftaran_sidsem/internal/usecase/repository.go b/src/module/pendaftaran_sidsem/internal/usecase/repository.go
index d39f75e84b22e243277aee640ccfad91c1a88811..8c07f09b824794837c86fa643a4d8fd876fad83a 100644
--- a/src/module/pendaftaran_sidsem/internal/usecase/repository.go
+++ b/src/module/pendaftaran_sidsem/internal/usecase/repository.go
@@ -29,4 +29,6 @@ type PendaftaranSidSemRepository interface {
 	GetSidSemBerkas(idSidsem string) ([]entity.BerkasSidSem, error)
 	GetRuanganName(idSidsem string) (string, error)
 	GetIdMahasiswaFromIdSidSem(idSidsem string) (string, error)
+	AddRuanganIfNotExist(namaRuangan string) (string, error)
+	UpdateRuanganSidSem(idSidsem string, idRuangan string) error
 }
diff --git a/src/module/pendaftaran_sidsem/transport/timta_handler.go b/src/module/pendaftaran_sidsem/transport/timta_handler.go
index 7fbe0f93c39be600980d9fd26da9d69483cb0f5b..46c0dfd23ad24f5b0b950be958ee3aec5deb2fbf 100644
--- a/src/module/pendaftaran_sidsem/transport/timta_handler.go
+++ b/src/module/pendaftaran_sidsem/transport/timta_handler.go
@@ -30,6 +30,7 @@ func (t *TIMTAPendaftaranSidSemHandler) MountTIMTA(group *echo.Group) {
 	group.GET("/pendaftaran-sidsem", t.GetPendaftaran)
 	group.GET("/detail-sidsem", t.GetSidSemDetail)
 	group.PATCH("/pendaftaran-ditolak", t.EditDitolak)
+	group.PATCH("/update-ruangan-sidsem", t.UpdateRuanganSidSem)
 
 }
 
@@ -73,5 +74,18 @@ func (t *TIMTAPendaftaranSidSemHandler) GetSidSemDetail(c echo.Context) error {
 		return c.JSON(http.StatusBadRequest, utils.ResponseDetailOutput(false, http.StatusBadRequest, err.Error(), nil))
 	}
 
-	return c.JSON(http.StatusOK, utils.ResponseDetailOutput(true, http.StatusOK, "Pendaftaran successfully edited", jadwal))
+	return c.JSON(http.StatusOK, utils.ResponseDetailOutput(true, http.StatusOK, "Sidsem Detail successfully retrieved", jadwal))
+}
+
+func (t *TIMTAPendaftaranSidSemHandler) UpdateRuanganSidSem(c echo.Context) error {
+	request := new(entity.UpdateRuanganReq)
+	if err := c.Bind(&request); err != nil {
+		return c.JSON(http.StatusBadRequest, utils.ResponseDetailOutput(false, http.StatusBadRequest, err.Error(), nil))
+	}
+	err := t.pendaftaransidsemUsecase.UpdateRuanganSidSem(request.NamaRuangan, request.IdSidSem)
+	if err != nil {
+		return c.JSON(http.StatusBadRequest, utils.ResponseDetailOutput(false, http.StatusBadRequest, err.Error(), nil))
+	}
+
+	return c.JSON(http.StatusOK, utils.ResponseDetailOutput(true, http.StatusOK, "Ruangan successfully updated", nil))
 }