Siapa yang tidak tahu Tetris? Sebagai pengisi waktu game ini sangat populer, bahkan bisa dibilang legendaris. Hampir semua orang tahu tujuh buah bentuk yang mesti dicegah memenuhi layar.
Penampakan balok Tetris
(image credit: Wikimedia Commons)
Jika kita perhatikan, ada kesamaan mendasar pada bangun-bangun di atas. Masing-masing terdiri atas empat buah persegi yang saling menempel. Biarpun bentuknya bervariasi namun tak ada yang “melanggar aturan”.
Nah, di dunia matematika, terdapat penjelasan untuk sifat bangun mirip Tetris. Didefinisikan sebagai berikut. Apabila sejumlah persegi saling menempel membentuk bangun baru, maka bangun itu disebut polyomino.
Mengapa namanya polyomino? Karena merupakan gabungan dua buah kata, “poly” (banyak) + “domino”. Sebagaimana kartu domino dibagi oleh dua area persegi, demikian pula polyomino dibagi oleh banyak area persegi. :D Berangkat dari situ para ahli kemudian mengelompokkan bangun berdasarkan jumlah persegi di dalamnya.
Apabila mengandung tiga buah persegi, maka disebut tromino (3-omino). Apabila empat disebut tetromino (4-omino). Jika lima disebut pentomino (5-omino)… dan seterusnya.
Sebagian ilustrasinya bisa dilihat di bawah ini:
Keluarga polyomino (n-omino) untuk n = {1, 2, …, 5}
(image credit: Wolfram MathWorld)
Namun perlu dicatat bahwa gambar di atas tidak mencantumkan simetri. Dalam hal ini yang ditinjau adalah strukturnya. Oleh karena itu, dalam grup tetromino, hanya terdapat lima buah bangun Tetris. (dua sisanya hasil pencerminan balok L dan Z tidak dimasukkan)
Adapun secara matematik terdapat sifat menarik dari polyomino. Salah satunya tidak jauh dari permainan Tetris, yaitu masalah penyusunan (packing). Bagaimana caranya menyusun balok sedemikian rupa sehingga tak ada yang bolong?
Ibarat Jigsaw
Untuk memulainya, mari kita bayangkan bentuk yang umum, yaitu segi empat siku-siku (i.e. persegi panjang dan persegi). Disadari atau tidak, di dunia sehari-hari kita sering harus “menyusun barang” mengikuti bentuk mereka. Mulai dari baju dalam koper; buku dalam kardus; hingga puzzle berbentuk jigsaw.
Nah, packing segiempat itu juga berlaku di dunia polyomino. Secara khusus para ahli mencaritahu konfigurasi polyomino yang pas. Ilustrasinya dalam gambar di bawah.
(image credit: Erich Friedman @ Stetson University)
Misalnya kita boleh mengambil bangun polyomino sebanyak-banyaknya, tapi cuma satu jenis. Berapa buah yang diperlukan untuk membuat segiempat siku-siku?
Di sinilah muncul gagasan mengelompokkan polyomino berdasarkan “orde”. Jika perlu dua buah bangun untuk membuatnya maka disebut orde-2. Jika perlu 4 disebut orde-4, dan seterusnya. Pada dasarnya orde polyomino ditentukan dari kemampuan packing membentuk persegi panjang atau persegi.
Dalam gambar kita melihat orde-2, 4, 10, dan 18, akan tetapi itu baru sebagian. Ada juga yang ordenya lebih tinggi. Sebagai contoh…
Ilustrasi packing yang epic: polyomino orde-92 (!!)
(image credit: Erich Friedman @ Stetson University)
Sampai di sini mungkin timbul pertanyaan. Bagaimana kalau bangunnya tidak cuma satu jenis? Katakanlah misalnya satu grup pentomino (12 buah) boleh dipakai.
Nah, yang seperti itu ada analisisnya lagi, dan jumlah kemungkinannya sangat besar. Dalam kasus pentomino, untuk membuat persegi panjang berukuran 6×10, terdapat 2339 kemungkinan packing. Untuk ukuran 4×15 terdapat 368, dan untuk ukuran 5×12, terdapat 1010 kemungkinan. Glek! :shock:
Contoh solusi packing pentomino: 6×10, 5×12, 4×15, dan 3×20
(image credit: Wikimedia Commons)
Semua itu dengan catatan, tiap bangun pentomino cuma boleh muncul satu kali. Well, begitu saja sudah banyak. Bayangkan betapa ruwetnya jika boleh lebih…
Memperkenalkan Setiset: Polyomino Saling-Bertaut
Sebagaimana bisa dilihat sejauh ini, bentuk polyomino amatlah bervariasi. Aturan pembatasnya cuma satu: harus terdiri atas persegi-persegi yang saling menempel. Semakin banyak jumlah persegi maka akan semakin kompleks.
Nah, “kebebasan” polyomino itu kemudian memunculkan kaidah geometri yang disebut self-tiling set (setiset). Sebuah setiset punya keistimewaan, akan tetapi, penjelasannya nanti dulu. :P Lebih baik jika kita awali dengan ilustrasi.
Penampakan sebuah setiset
(image credit: Lee Sallows)
Apa yang aneh dari gambar di atas?
Perhatikan bahwa bangun-bangun di kanan merupakan versi lebih besar daripada yang di kiri. Meskipun demikian… setiap bangun di kanan adalah KOMBINASI SELURUH BANGUN KECIL! :o Tidak ada satupun yang tertinggal atau terlewat.
Kalau boleh meminjam kalimatnya Three Musketeers: “All for one, and one for all.”
Inilah yang disebut sebagai setiset, di mana bentuk-bentuk yang berbeda saling bergabung, menciptakan diri mereka sendiri versi lebih besar. Benar-benar mantap! :)
Detail prosesnya, lengkap dengan pembagian area persegi, dapat dilihat di bawah ini. Seolah terlihat “DNA” bangun kecil di dalam versi besar.
Detail operasi setiset: dua kali perbesaran
(image credit: Lee Sallows)
Menariknya, untuk membuat setiset, sebenarnya tidak harus dengan polyomino. Ada juga keluarga bangun lain yang cocok. Namanya adalah polyiamond. Mereka tak berhubungan dengan pembahasan kita, meskipun begitu, ada baiknya diperkenalkan barang sedikit.
Berbeda dengan polyomino yang merupakan rangkaian persegi, polyiamond terdiri atas segitiga samasisi. Melalui kombinasi segitiga samasisi itulah dia menciptakan bangun-bangun unik yang — kalau boleh dibilang — dapat menandingi polyomino.
—
Contoh penampakan polyiamond + setiset yang dihasilkan
(image credit: Wikimedia Commons ; Sallows, 2014)
Berangkat dari bangun kecil-kecil, keduanya mengembangkan bentuk yang kompleks, kemudian hasilnya saling menopang dan berkaitan. Luar biasa bukan? :D
Penutup
Barangkali orang jarang mendengar namanya, meskipun demikian polyomino sebenarnya diam-diam populer. Believe it or not. :D Banyak penerapannya muncul dunia keseharian.
Sebagaimana sudah disebut, prinsipnya menginspirasi game Tetris, meskipun begitu ada juga contoh lainnya.
Jika pembaca suka main game di ponsel, kemungkinan tahu game berjudul Candy Crush. Dalam game ini pemain harus membuat permen-permen saling terhubung. Apabila terbentuk sambungan lurus, permennya akan hilang, lalu kita mendapat nilai.
(image credit: CandyCrushAid.com)
Tentu saja, berbagai sambungan lurus itu merupakan polyomino. :D Kadang bentuknya datar, atau huruf L, atau sebagainya. Meskipun begitu intinya seperti yang kita bahas.
Ada juga contoh yang terkait pixel. Iya, pixel yang itu — yang selalu ada di layar monitor. Zaman sekarang teknologi sudah begitu maju, jadi kehadiran pixel agak kurang terasa. Namun berbeda dengan zaman dulu.
Sahibul hikayat, dulu ada sebuah game berjudul Super Mario Bros di Nintendo 8-bit…
Pahlawan legendaris masa kecil.
Yes, I’m old(image credit: foro3d.com)
Hubungannya dengan pokok bahasan kita tentu bisa ditebak. Gambar Mario di atas adalah kombinasi berbagai polyomino berwarna. Polyomino merah bertemu polyomino coklat muda, ditambah polyomino coklat tua… dan tahu-tahu jadi gambar. Hebat juga kalau dipikir-pikir. :lol:
Orang sering bilang bahwa matematika itu abstrak dan tidak membumi. Sebenarnya tidak mesti begitu, sih. Matematika itu banyak contohnya dalam hidup, namun seperti calon pacar, kadang kita tak sadar waktu orangnya muncul… :lol:
——
Pustaka:
Golomb, S.W. (1994). Polyominoes: Puzzles, Patterns, Problems, and Packings. Princeton, NJ: Princeton University Press
Sallows, L. (2012). On Self-Tiling Sets. Mathematical Magazine, 85, 323-333. doi:10.4169/math.mag.85.5.323
Sallows, L. (2014). More on Self-Tiling Sets. Mathematical Magazine, 87, 100-112. doi:10.4169/math.mag.87.2.100
