diff --git a/src/module/bimbingan_log/internal/repository/bimbingan_log.go b/src/module/bimbingan_log/internal/repository/bimbingan_log.go
index 89b303ae2df7cc0b8d83f91ea1ba174f3684a515..ed8808add2f49a475ff9850a438eb677938b4e30 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).Find(&bimbinganLogs)
+	result := repo.DBRead.Where("id_mahasiswa = ?", idMahasiswa).Order("date DESC").Find(&bimbinganLogs)
 	if result.Error != nil {
 		return nil, err
 	}
diff --git a/src/module/bimbingan_log/internal/usecase/bimbingan_log.go b/src/module/bimbingan_log/internal/usecase/bimbingan_log.go
index 4247edba465a1cb9314b6160f725c33c383f50df..b1fd76c72bba1320c951173fb51480b89ae154ec 100644
--- a/src/module/bimbingan_log/internal/usecase/bimbingan_log.go
+++ b/src/module/bimbingan_log/internal/usecase/bimbingan_log.go
@@ -13,7 +13,7 @@ type BimbinganLogUsecase interface {
 	GetBimbinganLog(param utils.LimitOffset, idMahasiswa string) ([]entity.BimbinganLogBerkas, error)
 	UpdateBimbinganLogStatus(id string, status bool) error
 	GetInfoTopikMahasiswa(idMahasiswa string) (entity.InfoTopikMahasiswa, error)
-	GetBimbinganLogStatusByStudentId(param utils.LimitOffset, idMahasiswa string)(entity.BimbinganLogStatus,error)
+	GetBimbinganLogStatusByStudentId(param utils.LimitOffset, idMahasiswa string) (entity.BimbinganLogStatus, error)
 }
 
 type BimbinganLogUc struct {
@@ -58,14 +58,14 @@ func (uc *BimbinganLogUc) GetInfoTopikMahasiswa(idMahasiswa string) (entity.Info
 	return uc.bimbinganLogRepo.GetInfoTopikMahasiswa(idMahasiswa)
 }
 
-func (uc *BimbinganLogUc) GetBimbinganLogStatusByStudentId(param utils.LimitOffset, nim string)(entity.BimbinganLogStatus, error){
+func (uc *BimbinganLogUc) GetBimbinganLogStatusByStudentId(param utils.LimitOffset, nim string) (entity.BimbinganLogStatus, error) {
 
 	logs := []entity.BimbinganLogBerkas{}
 	var offset int
 	const limit = 100
 
-	for{
-		logBimbinganStatus, err := uc.bimbinganLogRepo.GetBimbinganLogByStudentId(limit,offset,nim)
+	for {
+		logBimbinganStatus, err := uc.bimbinganLogRepo.GetBimbinganLogByStudentId(limit, offset, nim)
 
 		if err != nil {
 			// Handle error
@@ -80,41 +80,34 @@ func (uc *BimbinganLogUc) GetBimbinganLogStatusByStudentId(param utils.LimitOffs
 		offset += limit
 	}
 
-
 	bimbinganLogStatus := entity.BimbinganLogStatus{
-		Status: true,
+		Status:       true,
 		LogBimbingan: logs,
 	}
 
-	var newestLog entity.BimbinganLogBerkas
-
-	for _, log := range logs {
-		newestLogDate, err := time.Parse(time.RFC3339,newestLog.Date)
-		date, err := time.Parse(time.RFC3339, log.Date) 
-		if err != nil {
-			return bimbinganLogStatus, err
-		}
-		if log.Status && (newestLog.Date == "" || date.Before(newestLogDate)) {
-			newestLog = log
-		}
+	if len(logs) == 0 {
+		bimbinganLogStatus.Status = false
+		return bimbinganLogStatus, nil
 	}
 
-    now := time.Now()
-	newestLogDate, err := time.Parse(time.RFC3339,newestLog.Date)
+	newestLog := logs[0]
+
+	now := time.Now()
+	newestLogDate, err := time.Parse(time.RFC3339, newestLog.Date)
 
 	discrepancy := int(math.Abs(float64(now.Month() - newestLogDate.Month())))
 
-	if(discrepancy <= 1){
+	if discrepancy <= 1 {
 		bimbinganLogStatus.Status = true
-	}else if(discrepancy > 1 && discrepancy <3){
+	} else if discrepancy > 1 && discrepancy < 3 {
 		bimbinganLogStatus.Status = false
-	}else if(discrepancy >= 3){
+	} else if discrepancy >= 3 {
 		bimbinganLogStatus.Status = false
 	}
 
 	if err != nil {
 		return bimbinganLogStatus, err
-	}	
-	
+	}
+
 	return bimbinganLogStatus, nil
 }