30 Soal dan Struktur Data di Baliknya

Interface tes SBTI keliatan simpel — 30 soal, masing-masing 3 opsi, klik-klik aja selesai. Tapi di detik-detik lo klik "soal berikutnya," backend udah diam-diam membangun model psikologis tentang lo.

Pertama, pahami satu struktur inti: 30 soal ini bukan diacak. Mereka dialokasikan secara presisi ke 15 dimensi psikologi, setiap dimensi tepat 2 soal. Nomor dimensi dari S1 sampai So3, urutan: Diri (S1-S3), Emosi (E1-E3), Sikap (A1-A3), Aksi (Ac1-Ac3), Sosial (So1-So3). Soal 1-2 untuk S1 (kestabilan harga diri), soal 3-4 untuk S2 (kejelasan diri), soal 5-6 untuk S3 (jangkar nilai), dan seterusnya.

Tiga opsi setiap soal masing-masing bernilai 1, 2, 3 poin. Tapi ada detail yang gampang kelewat: gak semua soal opsinya berurutan maju. Beberapa soal nilainya dibalik — opsi pertama 3 poin, opsi terakhir 1 poin. Desain reverse ini buat mencegah lo secara mekanis "pilih semua yang pertama" atau "pilih semua yang terakhir" buat manipulasi hasil.

30 soal selesai, sistem pegang 30 nilai. Langkah selanjutnya: jumlahkan per dimensi — skor 2 soal setiap dimensi dijumlahkan, hasilnya skor mentah dimensi tersebut. Karena setiap soal 1-3 poin, 2 soal dijumlah rentangnya 2 sampai 6. 15 skor mentah ini adalah data fondasi seluruh hasil tes lo.


Dari Skor ke Level: Klasifikasi Tiga Tingkat

Setelah dapet skor mentah, langkah berikutnya mengklasifikasikan. Logika klasifikasinya simpel sampe bikin kaget:

  • 2-3 poin → L (Low)
  • 4 poin → M (Medium)
  • 5-6 poin → H (High)

Perhatiin distribusinya: L mencakup 2 nilai (2 dan 3), H mencakup 2 nilai (5 dan 6), sedangkan M cuma untuk satu nilai: 4. Ini berarti probabilitas dapet M paling rendah — dua soal lo harus tepat kombinasi 1+3 atau 2+2. Secara statistik, kalau jawab random, peluang L dan H masing-masing ~33%, M juga ~33%, tapi karena kecenderungan jawaban manusia, frekuensi M muncul lebih rendah.

Pilihan desain ini menarik. SBTI sengaja menghindari "jebakan moderat" — gak biarin kebanyakan orang jatuh di tengah-tengah, malah dorong lo ke dua ujung. Lo di suatu dimensi kemungkinan besar condong tinggi atau rendah, bukan setengah-setengah. Ini bikin portrait kepribadian akhir lebih tajam, lebih "berkarakter," dan lebih cocok dijadiin screenshot buat story.

Misalkan di S1 (kestabilan harga diri) dua soal lo jawab 2 dan 3, jumlah 5, masuk H. Di E2 (kedalaman investasi emosi) jawab 1 dan 2, jumlah 3, masuk L. 15 dimensi selesai diklasifikasi, lo dapet string 15 huruf. Dipisah per grup pake dash, jadinya kayak: HMH-LML-HHM-LMH-HML. String ini adalah "DNA Kepribadian" lo — input buat semua kalkulasi SBTI selanjutnya.


Pattern Matching: DNA Lo vs 25 Template Standar

Setelah dapet DNA Kepribadian, tugas sistem: bandingkan dengan DNA standar 25 tipe reguler satu per satu, cari yang paling mirip.

Setiap tipe reguler punya string pola 15-karakter yang udah ditentuin. Misalnya CTRL (Si Pengendali) punya pola standar HHH-HMH-MHH-HHH-MHM, DEAD (Si Mayat) polanya LLL-LLM-LML-LLL-LHM. Bedanya keliatan langsung: CTRL hampir semua H, DEAD hampir semua L — satu penguasa semua dimensi, satu yang semua dimensi udah menyerah.

Metode perbandingannya pake jarak Manhattan (Manhattan Distance). Pertama, L/M/H di-map ke angka: L=1, M=2, H=3. Lalu string angka 15 dimensi lo dan string angka tipe standar dikurangin per posisi, ambil nilai absolut, terus dijumlahkan.

Contoh konkret. Misalkan pola lo HHL-MHH-MLH-HHM-HLH, diterjemahin ke angka jadi 3,3,1-2,3,3-2,1,3-3,3,2-3,1,3. Bandingkan sama pola standar CTRL HHH-HMH-MHH-HHH-MHM (yaitu 3,3,3-3,2,3-2,3,3-3,3,3-2,3,2):

Beda per posisi: |3-3|=0, |3-3|=0, |1-3|=2, |2-3|=1, |3-2|=1, |3-3|=0, |2-2|=0, |1-3|=2, |3-3|=0, |3-3|=0, |3-3|=0, |2-3|=1, |3-2|=1, |1-3|=2, |3-2|=1

Total jarak = 0+0+2+1+1+0+0+2+0+0+0+1+1+2+1 = 11

Lalu dikonversi ke kemiripan: max(0, round((1 - 11/30) x 100))% = 63%. Makin kecil jaraknya, makin tinggi kemiripannya. Jarak maksimal teorinya 30 (15 dimensi masing-masing beda 2), makanya dibagi 30 buat normalisasi.


Ranking, Fallback, dan Sebotol Miras

Setelah kalkulasi selesai buat semua 25 tipe reguler, sistem ngurutin berdasarkan jarak dari kecil ke besar — jarak terkecil adalah best match lo. Kalau dua tipe jaraknya sama, dibandingin lebih lanjut "jumlah dimensi yang tepat sama" (berapa dimensi yang persis cocok), yang lebih banyak di-ranking lebih tinggi.

Tapi sebelum mengumumkan hasil, ada dua pintu gerbang:

Gerbang pertama: threshold kemiripan. Kalau best match lo kemiripannya di bawah 60% — artinya lo sama tipe yang paling mirip pun masih kurang dari enam puluh persen mirip — sistem memutuskan "template yang ada gak bisa nampung lo," langsung masukin lo ke HHHH (Si Ngakak). Ini desain "fallback" secara engineering: memastikan sepun seaneh apapun pola jawaban lo, selalu ada hasil yang bisa ditampilin, bukan halaman error.

Gerbang kedua sebenernya lebih awal di timeline: cek DRUNK. Setelah 30 soal resmi selesai, sistem munculin pertanyaan bonus soal kebiasaan minum miras. Kalau lo trigger "jalur pemabuk" — spesifiknya, lolos pertanyaan gate 4 opsi, lalu lolos pertanyaan konfirmasi 2 opsi — sistem langsung skip seluruh proses pattern matching di atas dan kasih lo DRUNK. 30 soal yang lo jawab dengan serius? Hangus semua. Ini easter egg dari masa SBTI sebagai "alat antimabuk."

Jadi alur penentuan hasil lengkapnya: cek DRUNK dulu → kalau gak trigger, pattern matching → best match >= 60% langsung pake → di bawah 60% kasih HHHH.


Encoding Hasil: 16 Digit Password Sharing

Setelah hasil tes keluar, masih ada satu langkah terakhir: encode jadi format yang bisa di-share.

Link share SBTI menyimpan string 16 digit murni angka. 15 digit pertama adalah skor mentah lo di 15 dimensi (satu digit per dimensi, rentang 2-6), digit ke-16 adalah flag DRUNK (0 atau 1). Misalnya string 5342364553423420 artinya: S1=5, S2=3, S3=4, E1=2, E2=3, E3=6, A1=4, A2=5, A3=5, Ac1=3, Ac2=4, Ac3=2, So1=3, So2=4, So3=2, DRUNK=0.

Encoding ini ditaruh di parameter ?result= di link share. Waktu temen lo buka link, sistem langsung reverse-engineer 16 digit ini ke skor dimensi lengkap dan hasil matching — gak perlu ngerjain ulang tes buat lihat hasil lo. Inilah kenapa pengalaman share SBTI begitu mulus: klik langsung lihat, lihat selesai bisa langsung CP matching.

Encoding ini juga berarti satu hal: link share lo berisi semua 15 skor dimensi mentah. Orang yang ngerti teknis bisa langsung baca full portrait psikologis lo dari link, bahkan hitung manual kemiripan lo sama tipe lain. Dalam artian tertentu, 16 digit ini membawa lebih banyak informasi dari nama tipe lo — ini snapshot psikologis lengkap, cuma dikompresi jadi deretan angka yang gak mencolok.


Kenapa Paham Algoritma Itu Penting

Ada yang nanya: ngapain sih ngerti detail algoritma? Gue cuma mau tes tipe terus share di story aja.

Value dari paham algoritma bukan bikin lo "main lebih jago," tapi bantu lo benar-benar ngerti arti dan batasan hasilnya.

Tau bahwa setiap dimensi cuma punya 2 soal, lo paham kenapa retest hasilnya bisa berubah — ganti satu opsi di satu soal, skor dimensi bisa dari H jadi M bahkan L, dan seluruh hasil matching ikut kebalik. Tau cara kalkulasi jarak Manhattan, lo paham bedanya "73% match" dan "95% match" itu seberapa besar — yang pertama berarti di 15 dimensi ada beberapa yang beda jauh dari pola standar, yang kedua hampir cocok sempurna.

Tau threshold 60% HHHH, lo juga paham kenapa tipe ini jarang banget — 25 pola standar udah cover sebagian besar ruang kombinasi dimensi, lo harus bener-bener "non-standar" buat jatuh ke blind spot semua template.

Algoritma SBTI gak rumit, tapi cukup elegan. Pake data minimal (30 pilihan) membangun portrait psikologis 15 dimensi, lalu pake kalkulasi jarak paling simpel mencocokkannya ke label yang ber-meme, punya gambaran visual, dan bikin orang gak tahan buat screenshot. Seluruh sistem dari input sampai output, semuanya didesain buat satu tujuan: bikin lo punya sesuatu yang layak di-share.