Tugas Pemrograman Komputer

Kotak Ajaib

Kotak Ajaib adalah suatu matrik n*n yang berisi bilangan utuh 1,2,3,4,...,n2 yang muncul hanya sekali. Jumlah tiap baris, kolom dan diagonal adalah sama.

Kotak Ajaib dibangun dengan matrik n*n, dengan n adalah bilangan utuh gasal. Letakkan bilangan 1 kedalam kotak tengah pada baris pertama. Bilangan-bilangan berikutnya selalu diletakkan didalam kotak di sebelah kanan-atas kotak sebelumnya, kecuali terjadi hal-hal sebagai berikut:

  1. Jika letak kotak berikutnya di atas baris pertama, maka letakkan bilangan yang bersangkutan kedalam kotak pada baris akhir, kolom yang sama.
  2. Jika letak kotak berikutnya di kanan kolom akhir, maka letakkan bilangan yang bersangkutan kedalam kotak pada kolom pertama, baris yang sama.
  3. Jika letak kotak berikutnya di luar kotak ajaib atau sudah ada isinya, maka letakkan bilangan yang bersangkutan kedalam kotak tepat di bawah kotak sebelumnya.

Tugas

Tulis program dalam bahasa komputer FORTRAN yang menghitung Kotak Ajaib, cobalah untuk beberapa nilai n (jumlah kotak).

Contoh hasil keluaran program

Jumlah kotak (gasal) dalam satu baris?: 5
         
KOTAK AJAIB berisi bilangan dari 001 s/d 025
Jumlah masing-masing baris, kolom dan diagonal:   065
017 024 001 008 015
023 005 007 014 016
004 006 013 020 022
010 012 019 021 003
011 018 025 002 009
         
         
Jumlah kotak (gasal) dalam satu baris?: 11
         
KOTAK AJAIB berisi bilangan dari 001 s/d 121
Jumlah masing-masing baris, kolom dan diagonal:   671
068 081 094 107 120 001 014 027 040 053 066
080 093 106 119 011 013 026 039 052 065 067
092 105 118 010 012 025 038 051 064 077 079
104 117 009 022 024 037 050 063 076 078 091
116 008 021 023 036 049 062 075 088 090 103
007 020 033 035 048 061 074 087 089 102 115
019 032 034 047 060 073 086 099 101 114 006
031 044 046 059 072 085 098 100 113 005 018
043 045 058 071 084 097 110 112 004 017 030
055 057 070 083 096 109 111 003 016 029 042
056 069 082 095 108 121 002 015 028 041 054
         
         
Jumlah kotak (gasal) dalam satu baris?: 0
         
STOP Bye bye baby


Implementasi Kotak Ajaib menggunakan VBA Excel

Jumlah algoritma Kotak Ajaib sangat banyak sekali, jumlah algoritmanya tidak diketahui dengan pasti. Oleh karena itu, jumlah algoritma yang dapat digunakan dalam memecahkan Kotak Ajaib biasanya diprediksi menggunakan Simulasi Monte Carlo. Pada prinsipnya terdapat 3 jenis Kotak Ajaib yaitu

  1. Kotak Ajaib Gasal (N1) yaitu kotak ajaib yang jumlah kotaknya adalah gasal (n = 1,3,5, ...). Algoritma Kotak Ajaib Gasal, paling terdahulu disebut dalam literatur adalah algoritma dari Kerajaan Siam. Algoritma inilah yang digunakan pada implementasi dengan Microsoft VBA Excel (lihat Gambar 1). Acuan selengkapnya dapat dilihat di Wikipedia.
  2. Kotak Ajaib Genap 4 (N4) yaitu kotak ajaib yang jumlah kotaknya adalah genap dan kelipatan 4 (n = 4,8,12, ...). Terdapat banyak algoritma, namun dipilih yang paling efisien seperti disajikan di sini (offsite). Implementasi dengan Microsoft VBA Excel disajikan pada Gambar 2.
  3. Kotak Ajaib Genap 2 (N2) yaitu kotak ajaib yang jumlah kotaknya adalah genap dan kelipatan 2 tetapi bukan kelipatan 4 (n = 6,10,14, ..., untuk n = 2, tidak dapat dilakukan). Terdapat banyak algoritma, namun dipilih yang paling efisien seperti disajikan pada situs ini. Implementasi dengan Microsoft VBA Excel disajikan pada Gambar 3 sampai 5.

Pada awal tahun 2023, ketiga metoda di atas diimplementasikan dengan menggunakan Microsoft VBA Excel, hasilnya secara lengkap disajikan di sini. Implementasi yang disajikan di sini terdiri atas 2 bagian besar yaitu

  1. Membuat 3 subroutine khusus untuk menangani Kotak Ajaib N1, N4, N2, murni dalam bahasa Visual Basic standar, tanpa menggunakan formatting dalam spreadsheet Microsoft Excel. Hal ini dilakukan agar algoritmanya mudah diimplementasikan ke dalam bahasa pemrograman lainnya. Hasil akhirnya adalah matriks 2 dimensi Kotak Ajaib.
  2. Menayangkan hasil akhir: matriks 2 dimensi Kotak Ajaib dengan menggunakan Microsoft Excel dan menambah formula untuk acu-silang konstanta Kotak Ajaib, agar lebih mudah dipelajari secara visual.

Gambar 1a. Kotak Ajaib N1: 9 x 9 dengan basis nilai penjumlahan 369, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan Metode Kerajaan Siam, terlihat dalam pola panah yang disajikan.

Gambar 1b. Kotak Ajaib N1: 11 x 11 dengan basis nilai penjumlahan 671, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan Metode Kerajaan Siam. Gambar ini disajikan untuk ditemukenali polanya.



Gambar 2. Kotak Ajaib N4: 8 x 8 dengan basis nilai penjumlahan 260, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan cara matriks 4 x 4 dengan nilai diagonal sama dengan nilai asli deret aritmatika, namun nilai lainnya merupakan selisih antara suku akhir + suku pertama - nilai asli deret aritmatika. Sebagai contoh nilai sel (1,2) = 64 + 1 - 2 = 63, sel (1,6) = 64 + 1 - 6 = 59. Gambar bawah menunjukkan pola sel diagonal (diisi sesuai nilai asli deret aritmatika) dan non-diagonal (diisi suku akhir + suku pertama - nilai asli deret aritmatika) dalam matriks 4 x 4.




Gambar 3. Kotak Ajaib N2: 10 x 10 dengan basis nilai penjumlahan 505, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan Metode Kerajaan Siam pada 4 sub-matriks 5 x 5, kemudian dilakukan beberapa tukar sel matriks atas-bawah. Gambar tengah dan bawah menunjukkan pola penukaran sub-matriks atas dan bawah. Metode ini biasa disebut metode Strachey.


Gambar 4. Kotak Ajaib N2: 22 x 22 dengan basis nilai penjumlahan 5335, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan Metode Kerajaan Siam pada 4 sub-matriks 11 x 11, kemudian dilakukan beberapa tukar sel matriks atas-bawah. Arah panah menunjukkan pola pertukaran sel. Arah panah serong kekanan landai menunjukkan metode Kerajaan Siam, sedangkan saling silang di bagian tengah disebabkan karena pertukaran sebagian matriks atas-bawah, pola ini persis sama dengan Gambar 3. Metode ini biasa disebut metode Strachey.



Gambar 5. Kotak Ajaib N2: 22 x 22 dengan basis nilai penjumlahan 5335, menggunakan Microsoft Excel. Metode ini biasa disebut metode John Horton Conway, yang menggunakan sub-matriks 2x2 mempunyai jenis L, U, X, kemudian disusun sesuai metode Kerajaan Siam.


Pertunjukan Kotak Ajaib 5 x 5

Di media sosial/massa prinsip/algoritma kotak ajaib 5 x 5 yang menghasilkan jumlah 65 digunakan untuk pertunjukan dengan kemasan menarik. Di bawah ini adalah foto dan video dari pertunjukan tersebut, kebetulan sumber aslinya belum ditemukan tautannya, nanti akan disertakan jika sudah diperoleh.


Gambar 6. Pertunjukan kotak ajaib 5 x 5 dengan basis nilai penjumlahan 65 (video lengkap).




Gambar 7. Kotak Ajaib N1: 5 x 5 dengan basis nilai penjumlahan 65, menggunakan Microsoft Excel. Penempatan deret aritmatika dalam matriks 2 dimensi menggunakan Metode Kerajaan Siam seperti yang digunakan dalam pertunjukan di atas.

back to: home | topic index


Ir. Djoko Luknanto, M.Sc., Ph.D.
Peneliti Sumberdaya Air
di Laboratorium Hidraulika
Departemen Teknik Sipil dan Lingkungan, Fakultas Teknik
Universitas Gadjah Mada
Jln. Grafika 2, Yogyakarta 55281, INDONESIA
Tel: +62 (274)-545675, 519788, Fax: +62 (274)-545676, 519788