// MODIBU data: board, questions, cards // All content from "Komponen Permainan monopoli.docx" // Updated to 32 tiles (9x9 grid) for larger, more readable tiles const PLAYER_COLORS = ['red', 'blue', 'green', 'yellow']; const PLAYER_NAMES_ID = ['Merah', 'Biru', 'Hijau', 'Kuning']; const PLAYER_ICONS = ['/car.png', '/cruise.png', '/motorbike.png', '/train.png']; // 32 tiles, clockwise starting from bottom-right corner (START) const BOARD_TILES = [ { i: 0, type: 'start', label: 'START', sub: 'Mulai', price: null }, { i: 1, type: 'edukasi', label: 'Cyberbullying', sub: 'Edukasi 1', price: '+10' }, { i: 2, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 1', price: '?' }, { i: 3, type: 'fakta', label: 'Info Benar?', sub: 'Fakta 1', price: '+10' }, { i: 4, type: 'tantangan', label: 'Slogan Positif', sub: 'Tantangan 1', price: '+20' }, { i: 5, type: 'refleksi', label: 'Privasi Orang', sub: 'Refleksi 1', price: '+20' }, { i: 6, type: 'edukasi', label: 'Bahasa Sopan', sub: 'Edukasi 2', price: '+10' }, { i: 7, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 2', price: '?' }, { i: 8, type: 'hukuman', label: 'HUKUMAN', sub: 'Kotak Hukuman', price: null }, { i: 9, type: 'fakta', label: 'Balas Hinaan', sub: 'Fakta 2', price: '+10' }, { i: 10, type: 'tantangan', label: 'Tolak Ejekan', sub: 'Tantangan 2', price: '+20' }, { i: 11, type: 'refleksi', label: 'Komentar Kasar', sub: 'Refleksi 2', price: '+20' }, { i: 12, type: 'edukasi', label: 'Jaga Privasi', sub: 'Edukasi 3', price: '+10' }, { i: 13, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 3', price: '?' }, { i: 14, type: 'fakta', label: 'Hanya Teman?', sub: 'Fakta 3', price: '+10' }, { i: 15, type: 'hukuman', label: 'HUKUMAN', sub: 'Kotak Hukuman', price: null }, { i: 16, type: 'penjara', label: 'PENJARA', sub: 'Masuk Penjara', price: null }, { i: 17, type: 'refleksi', label: 'Efek Perasaan', sub: 'Refleksi 3', price: '+20' }, { i: 18, type: 'edukasi', label: 'Lapor Guru', sub: 'Edukasi 4', price: '+10' }, { i: 19, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 4', price: '?' }, { i: 20, type: 'fakta', label: 'Lapor Berani', sub: 'Fakta 4', price: '+10' }, { i: 21, type: 'tantangan', label: 'Cara Bijak', sub: 'Tantangan 4', price: '+20' }, { i: 22, type: 'refleksi', label: 'Sopan Santun', sub: 'Refleksi 4', price: '+20' }, { i: 23, type: 'bonus', label: 'ZONA NYAMAN', sub: 'Rehat Sejenak', price: '+20' }, { i: 24, type: 'edukasi', label: 'Dampak Bully', sub: 'Edukasi 5', price: '+10' }, { i: 25, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 5', price: '?' }, { i: 26, type: 'fakta', label: 'Hapus Post', sub: 'Fakta 5', price: '+10' }, { i: 27, type: 'tantangan', label: 'Minta Maaf', sub: 'Tantangan 5', price: '+20' }, { i: 28, type: 'refleksi', label: 'Sikap Berubah', sub: 'Refleksi 5', price: '+20' }, { i: 29, type: 'bonus', label: 'BONUS', sub: 'Hero Digital', price: '+15' }, { i: 30, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu Extra', price: '?' }, { i: 31, type: 'bonus', label: 'BONUS', sub: 'Aksi Positif', price: '+10' }, ]; // ============ EDUKASI (5 soal pilihan ganda dari DOCX revisi) ============ const ALL_EDUKASI = [ { type: 'edukasi', category: 'Edukasi', question: 'Di kolom komentar TikTok, ada yang menulis: "Jelek banget sih gaya lo, mending hapus deh videonya!" secara berulang-ulang sampai pembuat video merasa sedih. Tindakan ini disebut...', options: [ { key: 'A', text: 'Kritik yang membangun demi konten yang bagus' }, { key: 'B', text: 'Cyberbullying dalam bentuk body shaming dan intimidasi' }, { key: 'C', text: 'Hal biasa karena media sosial adalah ruang bebas berpendapat' }, { key: 'D', text: 'Candaan kreatif antar-pengguna media sosial' }, ], correct: 'B', explanation: 'Komentar menyakitkan yang dilakukan berulang-ulang dengan tujuan merendahkan termasuk cyberbullying dalam bentuk body shaming dan intimidasi.', }, { type: 'edukasi', category: 'Edukasi', question: 'Kamu melihat foto aib teman sekelasmu disebarkan di grup WhatsApp oleh teman lain hingga menjadi bahan tertawaan. Tindakan pertama yang paling benar kamu lakukan adalah...', options: [ { key: 'A', text: 'Ikut tertawa dan mengirimkan stiker lucu agar grup makin ramai' }, { key: 'B', text: 'Mengunduh foto tersebut dan membagikannya ke grup luar sekolah' }, { key: 'C', text: 'Diam saja karena tidak mau ikut campur urusan orang lain' }, { key: 'D', text: 'Menegur pengirim secara sopan dan melaporkan kejadian ini ke Guru BK' }, ], correct: 'D', explanation: 'Menjadi upstander berarti berani menegur dan melaporkan tindakan bullying kepada pihak berwenang seperti Guru BK.', }, { type: 'edukasi', category: 'Edukasi', question: 'Mengapa membuat akun palsu (fake account) dengan nama samaran untuk menghujat atau menjelek-jelekkan orang lain di Instagram tetap dilarang?', options: [ { key: 'A', text: 'Karena jejak digital dan alamat perangkat tetap bisa dilacak pihak berwajib' }, { key: 'B', text: 'Karena membuat akun palsu membutuhkan kuota internet yang sangat besar' }, { key: 'C', text: 'Karena pihak Instagram akan otomatis menghapus semua akun palsu dalam satu hari' }, { key: 'D', text: 'Karena akun palsu tidak bisa digunakan untuk melihat postingan orang lain' }, ], correct: 'A', explanation: 'Meskipun menggunakan nama samaran, jejak digital dan alamat perangkat (IP address) tetap bisa dilacak oleh pihak berwajib.', }, { type: 'edukasi', category: 'Edukasi', question: 'Ketika seseorang terus-menerus dikirimi pesan penuh makian, ancaman, atau diteror lewat Personal Chat (PC) WhatsApp, dampak psikologis yang paling mungkin dialami korban adalah...', options: [ { key: 'A', text: 'Merasa tertantang untuk membalas dengan kata-kata yang lebih kasar' }, { key: 'B', text: 'Menjadi makin populer dan mendapatkan banyak pengikut baru' }, { key: 'C', text: 'Mengalami kecemasan tinggi, stres, hingga takut datang ke sekolah' }, { key: 'D', text: 'Merasa biasa saja karena menganggap pesan tersebut dikirim secara tidak sengaja' }, ], correct: 'C', explanation: 'Teror berulang melalui pesan pribadi dapat menyebabkan kecemasan tinggi, stres, dan trauma sehingga korban takut beraktivitas termasuk ke sekolah.', }, { type: 'edukasi', category: 'Edukasi', question: 'Apa perbedaan utama yang paling mendasar antara bercanda (joking) dengan tindakan perundungan siber (cyberbullying)?', options: [ { key: 'A', text: 'Bercanda dilakukan di malam hari, sedangkan cyberbullying dilakukan siang hari' }, { key: 'B', text: 'Bercanda membuat semua pihak tertawa, sedangkan cyberbullying menyakiti salah satu pihak secara berulang' }, { key: 'C', text: 'Bercanda hanya boleh di WhatsApp, sedangkan cyberbullying terjadi di Instagram dan TikTok' }, { key: 'D', text: 'Bercanda menggunakan bahasa baku, sedangkan cyberbullying menggunakan bahasa gaul' }, ], correct: 'B', explanation: 'Perbedaan utama: bercanda membuat semua pihak merasa senang, sedangkan cyberbullying secara sengaja menyakiti dan merendahkan korban secara berulang.', }, ]; // ============ FAKTA/HOAKS (5 soal dari DOCX revisi) ============ const ALL_FAKTA = [ { type: 'fakta_hoax', category: 'Fakta / Hoaks', question: '"Menghapus komentar jahat atau postingan yang merundung orang lain berarti masalah sudah selesai dan tidak bisa dilacak lagi." FAKTA atau HOAKS?', options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }], correct: 'B', explanation: 'HOAKS! Jejak digital tetap tersimpan di server dan masih bisa dilacak oleh pihak berwajib meskipun sudah dihapus.', }, { type: 'fakta_hoax', category: 'Fakta / Hoaks', question: '"Pelaku cyberbullying di bawah umur tidak bisa mendapatkan sanksi hukum." FAKTA atau HOAKS?', options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }], correct: 'B', explanation: 'HOAKS! Pelaku di bawah umur tetap bisa dikenai sanksi melalui sistem peradilan anak, selain sanksi sosial dan akademik.', }, { type: 'fakta_hoax', category: 'Fakta / Hoaks', question: '"Menyebarkan rumor atau gosip yang belum tentu benar tentang teman di grup kelas termasuk dalam bentuk cyberbullying." FAKTA atau HOAKS?', options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }], correct: 'A', explanation: 'FAKTA! Menyebarkan rumor atau gosip yang menyakitkan melalui platform digital termasuk bentuk cyberbullying.', }, { type: 'fakta_hoax', category: 'Fakta / Hoaks', question: '"Korban cyberbullying biasanya adalah orang yang lemah, sedangkan pelakunya selalu orang yang populer dan berkuasa." FAKTA atau HOAKS?', options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }], correct: 'B', explanation: 'HOAKS! Siapa pun bisa menjadi korban atau pelaku cyberbullying tanpa memandang status sosial atau popularitas.', }, { type: 'fakta_hoax', category: 'Fakta / Hoaks', question: '"Ikut menyukai (like) atau membagikan (share) postingan yang mengejek orang lain berarti kita juga ikut mendukung aksi cyberbullying." FAKTA atau HOAKS?', options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }], correct: 'A', explanation: 'FAKTA! Memberikan like atau share pada konten bullying berarti mendukung dan memperluas jangkauan perundungan tersebut.', }, ]; // ============ TANTANGAN (5 soal dari DOCX revisi) ============ const ALL_TANTANGAN = [ { type: 'tantangan', category: 'Tantangan', question: 'Peragakan cara menegur teman sekelompokmu yang sedang asyik mengetik komentar jahat di ponselnya dengan kalimat yang sopan!', scoring: 'Dinilai oleh Guru BK (0–20 poin)', example: 'Contoh: "Hei, sepertinya komentar itu bisa menyakiti perasaan orang lain. Gimana kalau kita bahas hal lain yang lebih positif?"', }, { type: 'tantangan', category: 'Tantangan', question: 'Tuliskan atau ucapkan 1 kalimat penyemangat (kalimat empati) yang akan kamu kirimkan lewat personal chat (PC) jika ada temanmu yang sedang menjadi korban cyberbullying!', scoring: 'Dinilai oleh Guru BK (0–20 poin)', example: 'Contoh: "Aku di sini buat kamu ya. Kamu nggak sendirian, kita hadapi bareng-bareng."', }, { type: 'tantangan', category: 'Tantangan', question: 'Bayangkan kamu sedang emosi karena kalah main game online. Tunjukkan cara mengontrol diri agar tidak melontarkan kata-kata kasar di kolom chat game!', scoring: 'Dinilai oleh Guru BK (0–20 poin)', example: 'Contoh: Tarik napas dalam-dalam, tutup chat, dan ingat bahwa ini hanya permainan. Ketik "GG, kita coba lagi!" daripada kata kasar.', }, { type: 'tantangan', category: 'Tantangan', question: 'Peragakan cara meminta maaf dengan sopan setelah melakukan kesalahan di media sosial!', scoring: 'Dinilai oleh Guru BK (0–20 poin)', example: 'Contoh: "Aku minta maaf atas komentar yang aku tulis tadi. Itu tidak pantas dan aku tidak bermaksud menyakiti perasaanmu."', }, { type: 'tantangan', category: 'Tantangan', question: 'Tuliskan slogan singkat tentang penggunaan media sosial yang bijak!', scoring: 'Dinilai oleh Guru BK (0–20 poin)', example: 'Contoh: "Medsos Sehat, Mental Kuat!" atau "Pikir Dulu Sebelum Komentar!"', }, ]; // ============ REFLEKSI (5 soal dari DOCX revisi) ============ const ALL_REFLEKSI = [ { type: 'refleksi', category: 'Refleksi', question: 'Pernahkah kamu merasa sakit hati karena ketikan seseorang di media sosial? Bagaimana perasaanmu saat itu dan apa yang kamu lakukan?', scoring: 'Dinilai oleh Guru BK (0–20 poin)', }, { type: 'refleksi', category: 'Refleksi', question: 'Jika posisimu dibalik menjadi korban yang fotonya diedit menjadi bahan tertawaan satu sekolah, apa yang paling kamu butuhkan dari teman-teman sekelasmu?', scoring: 'Dinilai oleh Guru BK (0–20 poin)', }, { type: 'refleksi', category: 'Refleksi', question: 'Mengapa terkadang kita merasa lebih berani berkomentar kasar di media sosial daripada berbicara langsung secara tatap muka dengan orangnya?', scoring: 'Dinilai oleh Guru BK (0–20 poin)', }, { type: 'refleksi', category: 'Refleksi', question: 'Menurutmu, kenapa kita harus menjaga sopan santun saat berkomentar di internet?', scoring: 'Dinilai oleh Guru BK (0–20 poin)', }, { type: 'refleksi', category: 'Refleksi', question: 'Setelah mengikuti permainan ini, sikap apa yang ingin kamu ubah saat menggunakan media sosial?', scoring: 'Dinilai oleh Guru BK (0–20 poin)', }, ]; // ============ KARTU KESEMPATAN (5 kartu dari DOCX revisi) ============ const ALL_KARTU_KESEMPATAN = [ { type: 'kesempatan', title: 'Upstander Berani', desc: 'Kamu berani melaporkan akun penyebar hoaks di sekolah kepada guru BK. Langkahmu dinilai sangat berani!', effect: 'Maju 3 langkah', effectType: 'move', effectValue: 3, sign: 'positive' }, { type: 'kesempatan', title: 'Kurang Empati', desc: 'Kamu ikut tertawa dan membagikan video temanmu yang terjatuh di grup WhatsApp. Tindakan ini tidak empati.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' }, { type: 'kesempatan', title: 'Status Menyindir', desc: 'Kamu meluapkan kekesalan dengan menulis status yang menyindir teman sekelas. Akunmu dilaporkan.', effect: 'Mundur 3 langkah', effectType: 'move', effectValue: -3, sign: 'negative' }, { type: 'kesempatan', title: 'Lupa Waktu', desc: 'Kamu terlalu lama bermain media sosial hingga kehilangan fokus.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' }, { type: 'kesempatan', title: 'Inspirasi Digital', desc: 'Akunmu menjadi inspirasi teman-teman!', effect: 'Maju 2 langkah', effectType: 'move', effectValue: 2, sign: 'positive' }, ]; // ============ KARTU HUKUMAN (4 kartu dari DOCX) ============ const ALL_KARTU_HUKUMAN = [ { type: 'hukuman', title: 'Komentar Kasar', desc: 'Kamu membalas komentar kasar di media sosial.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' }, { type: 'hukuman', title: 'Privasi Dilanggar', desc: 'Kamu menyebarkan foto teman tanpa izin.', effect: '−5 poin', effectType: 'score', effectValue: -5, sign: 'negative' }, { type: 'hukuman', title: 'Tidak Sopan', desc: 'Kamu menggunakan kata-kata tidak sopan di grup kelas.', effect: 'Kehilangan 1 giliran', effectType: 'skip_turn', effectValue: 0, sign: 'negative' }, { type: 'hukuman', title: 'Sebar Hoaks', desc: 'Kamu ikut menyebarkan berita hoaks.', effect: 'Mundur 3 langkah', effectType: 'move', effectValue: -3, sign: 'negative' }, ]; // ============ MATERI POPUP ============ const ALL_MATERI = [ { title: 'Tips Bijak Medsos', subtitle: 'Pencegahan Cyberbullying', body: 'Media sosial adalah alat yang hebat jika digunakan dengan benar. Jadilah pengguna yang cerdas dan berempati.', points: [ { icon: '✓', label: 'Berpikir sebelum mengetik' }, { icon: '✓', label: 'Jangan membalas hinaan dengan hinaan' }, { icon: '✓', label: 'Gunakan fitur report jika perlu' }, { icon: '✓', label: 'Selalu jaga privasi data pribadimu' }, ], }, ]; const SAMPLE_PLAYERS = [ { id: 1, name: 'Pemain 1', color: 'red', score: 0, position: 0, icon: '/car.png' }, { id: 2, name: 'Pemain 2', color: 'blue', score: 0, position: 0, icon: '/cruise.png' }, { id: 3, name: 'Pemain 3', color: 'green', score: 0, position: 0, icon: '/motorbike.png' }, { id: 4, name: 'Pemain 4', color: 'yellow', score: 0, position: 0, icon: '/train.png' }, ]; // Expose globally Object.assign(window, { PLAYER_COLORS, PLAYER_NAMES_ID, PLAYER_ICONS, SAMPLE_PLAYERS, BOARD_TILES, ALL_EDUKASI, ALL_FAKTA, ALL_TANTANGAN, ALL_REFLEKSI, ALL_KARTU_KESEMPATAN, ALL_KARTU_HUKUMAN, ALL_MATERI, });