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 unsignedAUTO_INCREMENTNoPrimary Key
school_idbigint unsignedNoFK → schools.id
namevarchar255NoNama lengkap pengguna
usernamevarchar50NoNISN (siswa) atau NIP (guru), unik
passwordvarchar255NoHash password (bcrypt/Argon2id)
roleenumstudentNostudent, teacher, admin, super_admin
must_change_passwordtinyint(1)1No1 = wajib ganti, 0 = sudah ganti
is_activetinyint(1)1No0 = akun dinonaktifkan
last_login_attimestampNULLYesTimestamp login terakhir
created_attimestampCURRENT_TIMESTAMPNoDibuat pada
updated_attimestampCURRENT_TIMESTAMPNoDiperbarui pada

Tabel: students

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
user_idbigint unsignedNoFK → users.id, UNIQUE
school_idbigint unsignedNoFK → schools.id
classroom_idbigint unsignedYesFK → classrooms.id
nisnvarchar10NoNISN siswa, UNIQUE
leveltinyint unsigned1NoLevel gamifikasi (1–50)
xpint unsigned0NoTotal Experience Points
sis_scoredecimal8,20.00NoSocial Impact Score
average_ratingdecimal3,20.00NoRating rata-rata sebagai tutor
total_sessions_as_tutorint unsigned0NoTotal sesi sebagai tutor
total_sessions_as_learnerint unsigned0NoTotal sesi sebagai learner

Tabel: requests

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
school_idbigint unsignedNoFK → schools.id
student_idbigint unsignedNoFK → students.id (host)
subject_idbigint unsignedNoFK → subjects.id
topic_idbigint unsignedYesFK → topics.id
descriptiontextNULLYesDeskripsi masalah
preferred_locationvarchar255NoNama lokasi pertemuan
latitudedecimal10,8NULLYesKoordinat latitude GPS
longitudedecimal11,8NULLYesKoordinat longitude GPS
preferred_timedatetimeNoWaktu yang diinginkan
duration_minutessmallint unsigned60NoDurasi yang diinginkan (menit)
tutor_counttinyint unsigned1NoJumlah tutor yang dibutuhkan
statusenumpendingNoStatus permintaan
expired_attimestampNULLYesBatas waktu request aktif

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


Tabel: bookings

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
request_idbigint unsignedNoFK → requests.id
tutor_idbigint unsignedNoFK → students.id
statusenumpendingNoStatus booking
scheduled_atdatetimeNULLYesJadwal pertemuan disepakati
matching_scoredecimal5,2NULLYesSkor AI Matching (0–100)
rejection_reasontextNULLYesAlasan penolakan tutor
reschedule_timedatetimeNULLYesWaktu alternatif dari tutor
responded_attimestampNULLYesWaktu tutor merespons

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


Tabel: meetings

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
booking_idbigint unsignedNoFK → bookings.id, UNIQUE
qr_tokenvarchar100NoToken unik untuk QR Check-In
qr_expires_attimestampNoWaktu kadaluarsa QR
check_in_latdecimal10,8NULLYesLatitude saat check-in
check_in_lngdecimal11,8NULLYesLongitude saat check-in
check_in_attimestampNULLYesWaktu check-in
check_out_attimestampNULLYesWaktu check-out
duration_actualsmallint unsignedNULLYesDurasi nyata (menit)
summarytextNULLYesRingkasan hasil diskusi
completion_statusenumNULLYesStatus penyelesaian masalah

Enum completion_status: solved | partially_solved | not_solved


Tabel: ratings

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
meeting_idbigint unsignedNoFK → meetings.id
rater_idbigint unsignedNoFK → users.id (pemberi rating)
ratee_idbigint unsignedNoFK → users.id (penerima rating)
scoretinyint unsignedNoNilai rating: 1–5
commenttextNULLYesKomentar opsional
is_solvedtinyint(1)NULLYesApakah masalah terselesaikan
rated_attimestampCURRENT_TIMESTAMPNoWaktu pemberian rating

Tabel: social_impact_scores

FieldTipePanjangDefaultNullableDeskripsi
idbigint unsignedAUTO_INCREMENTNoPrimary Key
student_idbigint unsignedNoFK → students.id
scoredecimal8,20.00NoNilai SIS periode ini
periodvarchar20NoFormat: 2026-1 (tahun-semester)
sessions_countint unsigned0NoJumlah sesi sebagai tutor
avg_ratingdecimal3,20.00NoRating rata-rata periode ini
calculated_attimestampNoTerakhir dihitung