This commit is contained in:
2026-08-21 00:53:46 +07:00
parent 57b0b2b71c
commit 1d9329ca65
4 changed files with 803 additions and 0 deletions
+200
View File
@@ -0,0 +1,200 @@
// this one written by claude, it is shit so dont blame me for any misaccuracy LOL
const { readFile } = require("node:fs/promises")
const FILES = [
"01.json",
"06.json",
"10.json"
]
const OPEN_TIME = "08:00"
const CLOSE_TIME = "17:00"
const DAY_ORDER = {
"Senin": 1,
"Selasa": 2,
"Rabu": 3,
"Kamis": 4,
"Jumat": 5,
"Sabtu": 6,
"Minggu": 7
}
async function loadFiles()
{
const results = await Promise.all(FILES.map(async file =>
{
const content = await readFile(file, "utf8")
const json = JSON.parse(content)
return json.data
}))
return results.flat()
}
function parseDateRoom(value)
{
const match = value.match(/^([^,]+),\s*(\d{2}[:.]\d{2})-(\d{2}[:.]\d{2})\s+\((.*)$/)
if (!match) return null
const [ , day, rawStart, rawEnd, rawRoom] = match
const start = rawStart.replace(".", ":")
const end = rawEnd.replace(".", ":")
const room = rawRoom.endsWith(")") ? rawRoom.slice(0, -1) : rawRoom
return { day, start, end, room }
}
function timeToMinutes(time)
{
const [hours, minutes] = time.split(":").map(Number)
return hours * 60 + minutes
}
function minutesToTime(minutes)
{
const hours = Math.floor(minutes / 60)
const mins = minutes % 60
return `${String(hours).padStart(2, '0')}:${String(mins).padStart(2, '0')}`
}
function buildSchedule(classes)
{
const schedule = new Map()
for (const classInfo of classes)
{
if (!Array.isArray(classInfo.dates_rooms))
{
console.warn(`Skipping ${classInfo.classname}: invalid dates_rooms`)
continue
}
for (const dateRoom of classInfo.dates_rooms)
{
const parsed = parseDateRoom(dateRoom)
if (!parsed)
{
console.warn(`Could not parse: ${dateRoom}`)
continue
}
const { day, start, end, room } = parsed
if (!schedule.has(room))
{
schedule.set(room, new Map())
}
const roomSchedule = schedule.get(room)
if (!roomSchedule.has(day))
{
roomSchedule.set(day, [])
}
roomSchedule.get(day).push({
start,
end,
className: classInfo.classname
})
}
}
return schedule
}
function buildEmptySchedule(schedule)
{
const emptySchedule = new Map()
const dayStartMin = timeToMinutes(OPEN_TIME)
const dayEndMin = timeToMinutes(CLOSE_TIME)
for (const [room, roomSchedule] of schedule)
{
emptySchedule.set(room, new Map())
// Process all days
for (const day of Object.keys(DAY_ORDER))
{
const classes = roomSchedule.get(day) || []
if (classes.length === 0)
{
// No classes = room won't be opened that day
continue
}
// Sort classes by start time
const sorted = classes.sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start))
const emptySlots = []
let currentTime = dayStartMin
for (const classInfo of sorted)
{
const classStart = timeToMinutes(classInfo.start)
const classEnd = timeToMinutes(classInfo.end)
// Gap before this class
if (currentTime < classStart)
{
emptySlots.push({
start: minutesToTime(currentTime),
end: classInfo.start
})
}
// Move current time to after this class (or keep it if overlapping)
currentTime = Math.max(currentTime, classEnd)
}
// Gap after last class
if (currentTime < dayEndMin)
{
emptySlots.push({
start: minutesToTime(currentTime),
end: CLOSE_TIME
})
}
// Only add day if there are empty slots
if (emptySlots.length > 0)
{
emptySchedule.get(room).set(day, emptySlots)
}
}
}
return emptySchedule
}
function formatEmptySchedule(emptySchedule)
{
const lines = []
const rooms = [...emptySchedule.keys()].sort((a, b) => a.localeCompare(b))
for (const room of rooms)
{
const roomSchedule = emptySchedule.get(room)
lines.push(`- ${room} (${OPEN_TIME}-${CLOSE_TIME})`)
const days = [...roomSchedule.keys()].sort((a, b) => DAY_ORDER[a] - DAY_ORDER[b])
for (const day of days)
{
const emptySlots = roomSchedule.get(day)
lines.push(` - ${day}:`)
for (const slot of emptySlots)
{
lines.push(` - ${slot.start} - ${slot.end} (KOSONG)`)
}
}
lines.push("")
}
return lines.join("\n")
}
/////////////////
async function main()
{
const cl = await loadFiles()
const sc = buildSchedule(cl)
const emptySchedule = buildEmptySchedule(sc)
console.log(formatEmptySchedule(emptySchedule))
}
main().catch(error =>
{
console.error(error)
process.exitCode = 1
})
+5
View File
@@ -1,3 +1,8 @@
- IK: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=01.00.12.01&year=2026&term=1&lang=id` - IK: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=01.00.12.01&year=2026&term=1&lang=id`
- SI: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=06.00.12.01&year=2026&term=1&lang=id` - SI: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=06.00.12.01&year=2026&term=1&lang=id`
- KA: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=10.00.12.01&year=2026&term=1&lang=id` - KA: `https://slcm.ui.ac.id/akademik/api/v1/class/whole?org=10.00.12.01&year=2026&term=1&lang=id`
dibuat berdasarkan asumsi bahwa:
- sebelum jam 08:00 ruangan sudah tidak dikunci
- sebelum jam 18:00 ruangan sudah harus dikunci
- bila tidak ada kelas pada suatu hari tertentu, maka ruangan tidak akan dibuka
View File
+598
View File
@@ -0,0 +1,598 @@
- A1.09 (Ged Baru) (08:00-17:00)
- Senin:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- A1.10 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 14:00 (KOSONG)
- 14:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 15:50 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 17:00 (KOSONG)
- A1.51 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 11:00 (KOSONG)
- 11:50 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 13:00 (KOSONG)
- 13:50 - 16:00 (KOSONG)
- Jumat:
- 09:40 - 17:00 (KOSONG)
- A2.01 (Auditorium Ged Baru-1) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 15:00 (KOSONG)
- 15:50 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 17:00 (KOSONG)
- A2.01 (Auditorium Ged baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 15:00 (KOSONG)
- 15:50 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 13:50 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 17:00 (KOSONG)
- A2.06 (Ged Baru) --- Lab Laptop (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 15:50 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 11:00 (KOSONG)
- 11:50 - 13:00 (KOSONG)
- 13:50 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Jumat:
- 09:40 - 17:00 (KOSONG)
- A2.07 (Ged baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 15:30 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 15:30 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 17:00 (KOSONG)
- A2.08 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- A2.09 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:50 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 10:50 - 13:00 (KOSONG)
- 13:50 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 17:00 (KOSONG)
- A2.51 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 11:00 (KOSONG)
- 11:50 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Kamis:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- A3.05 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:50 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 17:00 (KOSONG)
- A3.06 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 15:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 13:00 (KOSONG)
- 13:50 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Jumat:
- 09:40 - 17:00 (KOSONG)
- A3.54 (Ged Baru) (08:00-17:00)
- Senin:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 17:00 (KOSONG)
- Jumat:
- 09:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- A5.03 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 16:00 (KOSONG)
- Jumat:
- 08:00 - 09:00 (KOSONG)
- 10:40 - 17:00 (KOSONG)
- A5.51 (Ged Baru) (08:00-17:00)
- Senin:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 16:00 (KOSONG)
- Jumat:
- 08:50 - 17:00 (KOSONG)
- A6.01 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 15:00 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 11:00 (KOSONG)
- 11:50 - 13:00 (KOSONG)
- 15:00 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 17:00 (KOSONG)
- A6.02 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- Rabu:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 11:00 (KOSONG)
- 11:50 - 16:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 17:00 (KOSONG)
- A6.07 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 16:00 (KOSONG)
- Jumat:
- 08:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- A6.08 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 15:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- A6.09 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 16:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 11:40 - 17:00 (KOSONG)
- A6.10 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Kamis:
- 08:00 - 11:00 (KOSONG)
- 11:50 - 13:00 (KOSONG)
- 13:50 - 15:00 (KOSONG)
- 15:50 - 17:00 (KOSONG)
- Jumat:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- A6.11 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 11:00 (KOSONG)
- 11:50 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Kamis:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 13:50 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 10:50 - 17:00 (KOSONG)
- A6.12 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:50 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 10:00 (KOSONG)
- 10:50 - 14:00 (KOSONG)
- 14:50 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 10:50 - 15:00 (KOSONG)
- 15:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 10:50 - 17:00 (KOSONG)
- A7.13 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:40 - 17:00 (KOSONG)
- Selasa:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 13:00 (KOSONG)
- 14:50 - 16:00 (KOSONG)
- 16:50 - 17:00 (KOSONG)
- Rabu:
- 09:40 - 11:00 (KOSONG)
- 11:50 - 14:00 (KOSONG)
- 14:50 - 17:00 (KOSONG)
- Kamis:
- 08:50 - 09:00 (KOSONG)
- 09:50 - 10:00 (KOSONG)
- 10:50 - 11:00 (KOSONG)
- 11:50 - 17:00 (KOSONG)
- Lab A1.01+Lab A1.02 - Gabungan (Gd Baru) (08:00-17:00)
- Senin:
- 09:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 13:00 (KOSONG)
- 13:50 - 16:00 (KOSONG)
- Rabu:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 11:00 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Lab A1.03 (Ged Baru) (08:00-17:00)
- Senin:
- 09:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 13:00 (KOSONG)
- 13:50 - 16:00 (KOSONG)
- Rabu:
- 09:40 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 11:00 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Lab A1.04+Lab A3.02 - Gabungan (Gd. Baru (08:00-17:00)
- Senin:
- 09:40 - 17:00 (KOSONG)
- Selasa:
- 08:00 - 16:00 (KOSONG)
- Rabu:
- 09:40 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 16:00 (KOSONG)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 14:40 - 16:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 11:00 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Lab A3.02 (Gd. Baru) --- PC 45 (08:00-17:00)
- Senin:
- 08:00 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Rabu:
- 08:00 - 09:00 (KOSONG)
- 09:50 - 17:00 (KOSONG)
- Lab.1101/1103 --- PC 46 (08:00-17:00)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 14:40 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 10:00 (KOSONG)
- 11:40 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Lab.1105 --- PC 24 (08:00-17:00)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 13:50 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)
- Lab.1107/1109 --- PC 34 (08:00-17:00)
- Kamis:
- 08:00 - 13:00 (KOSONG)
- 13:50 - 15:00 (KOSONG)
- 16:40 - 17:00 (KOSONG)
- Jumat:
- 08:00 - 14:00 (KOSONG)
- 15:40 - 17:00 (KOSONG)