Lewati ke konten utama

BAB 28. DATA DICTIONARY

Pendahuluan​

Data Dictionary mendokumentasikan definisi lengkap setiap field dalam tabel-tabel utama sistem TemuBelajar sebagai referensi bagi developer backend, frontend, dan database administrator.


Tabel: users​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
school_idbigint unsigned——NoFK → schools.id
namevarchar255—NoNama lengkap pengguna
usernamevarchar50—NoNISN (siswa) atau NIP (guru), unik
passwordvarchar255—NoHash password (bcrypt/Argon2id)
roleenum—studentNostudent, teacher, admin, super_admin
must_change_passwordtinyint(1)—1No1 = wajib ganti, 0 = sudah ganti
is_activetinyint(1)—1No0 = akun dinonaktifkan
last_login_attimestamp—NULLYesTimestamp login terakhir
created_attimestamp—CURRENT_TIMESTAMPNoDibuat pada
updated_attimestamp—CURRENT_TIMESTAMPNoDiperbarui pada

Tabel: students​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
user_idbigint unsigned——NoFK → users.id, UNIQUE
school_idbigint unsigned——NoFK → schools.id
classroom_idbigint unsigned——YesFK → classrooms.id
nisnvarchar10—NoNISN siswa, UNIQUE
leveltinyint unsigned—1NoLevel gamifikasi (1–50)
xpint unsigned—0NoTotal Experience Points
sis_scoredecimal8,20.00NoSocial Impact Score
average_ratingdecimal3,20.00NoRating rata-rata sebagai tutor
total_sessions_as_tutorint unsigned—0NoTotal sesi sebagai tutor
total_sessions_as_learnerint unsigned—0NoTotal sesi sebagai learner

Tabel: requests​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
school_idbigint unsigned——NoFK → schools.id
student_idbigint unsigned——NoFK → students.id (host)
subject_idbigint unsigned——NoFK → subjects.id
topic_idbigint unsigned——YesFK → topics.id
descriptiontext—NULLYesDeskripsi masalah
preferred_locationvarchar255—NoNama lokasi pertemuan
latitudedecimal10,8NULLYesKoordinat latitude GPS
longitudedecimal11,8NULLYesKoordinat longitude GPS
preferred_timedatetime——NoWaktu yang diinginkan
duration_minutessmallint unsigned—60NoDurasi yang diinginkan (menit)
tutor_counttinyint unsigned—1NoJumlah tutor yang dibutuhkan
statusenum—pendingNoStatus permintaan
expired_attimestamp—NULLYesBatas waktu request aktif

Enum status: pending | searching | accepted | rejected | on_going | completed | cancelled


Tabel: bookings​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
request_idbigint unsigned——NoFK → requests.id
tutor_idbigint unsigned——NoFK → students.id
statusenum—pendingNoStatus booking
scheduled_atdatetime—NULLYesJadwal pertemuan disepakati
matching_scoredecimal5,2NULLYesSkor AI Matching (0–100)
rejection_reasontext—NULLYesAlasan penolakan tutor
reschedule_timedatetime—NULLYesWaktu alternatif dari tutor
responded_attimestamp—NULLYesWaktu tutor merespons

Enum status: pending | accepted | rejected | rescheduled | cancelled


Tabel: meetings​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
booking_idbigint unsigned——NoFK → bookings.id, UNIQUE
qr_tokenvarchar100—NoToken unik untuk QR Check-In
qr_expires_attimestamp——NoWaktu kadaluarsa QR
check_in_latdecimal10,8NULLYesLatitude saat check-in
check_in_lngdecimal11,8NULLYesLongitude saat check-in
check_in_attimestamp—NULLYesWaktu check-in
check_out_attimestamp—NULLYesWaktu check-out
duration_actualsmallint unsigned—NULLYesDurasi nyata (menit)
summarytext—NULLYesRingkasan hasil diskusi
completion_statusenum—NULLYesStatus penyelesaian masalah

Enum completion_status: solved | partially_solved | not_solved


Tabel: ratings​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
meeting_idbigint unsigned——NoFK → meetings.id
rater_idbigint unsigned——NoFK → users.id (pemberi rating)
ratee_idbigint unsigned——NoFK → users.id (penerima rating)
scoretinyint unsigned——NoNilai rating: 1–5
commenttext—NULLYesKomentar opsional
is_solvedtinyint(1)—NULLYesApakah masalah terselesaikan
rated_attimestamp—CURRENT_TIMESTAMPNoWaktu pemberian rating

Tabel: social_impact_scores​

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsigned—AUTO_INCREMENTNoPrimary Key
student_idbigint unsigned——NoFK → students.id
scoredecimal8,20.00NoNilai SIS periode ini
periodvarchar20—NoFormat: 2026-1 (tahun-semester)
sessions_countint unsigned—0NoJumlah sesi sebagai tutor
avg_ratingdecimal3,20.00NoRating rata-rata periode ini
calculated_attimestamp——NoTerakhir dihitung