Selasa, 20 November 2012

Algoritma Vigenere

Kali ini saya akan menjelaskan tentang Kriptografi menggunakan Algoritma Vigenere, jika anda akan melakukan enkripsi pertama harus ada pesan yang akan di-enkripsi, lalu harus ada key (kunci) dan anda harus siapkan deretan abjad, karakter, dll, tapi dalam percobaan kali ini saya hanya menggunakan deretan abjad saja, dan deretan ini akan saya beri variabel 'mapVigenere'. Misal mapVigenere = "abcdefghijklmnopqrstuvwxyz " untuk sementara kita menggunakan abjad yang biasa, nanti jika ini sudah selesai silahkan anda tambah-tambahkan sendiri seperti huruf besar (kapital), karakter, dll.

Misal pesan yang akan kita enkripsi adalah
"sepeda" dan key (kunci)-nya adalah "frfrfr" kita harus melakukan perhitungan perkarakter jadi nantinya si-program akan membaca Pesan dan Key perkarakter. Key berfungsi sebagai kunci yang akan kita gunakan untuk  peng-enkripsian, panjang key harus sama dengan panjang pesan dan mengikuti pola karena pola yang saya gunakan adalah fr, maka fr tersebut di ulang 3 kali, jika polanya adalah fra maka fra diulang sampai panjang key sama dengan panjang pesan. 

Berikut rumus dan aturan untuk enkripsi menggunakan vigenere :
Ci = Pi + Ki

Jika Ci > panjang mapVigenere maka Ci - panjang mapVigenere
Ket : 
1. Ci adalah chiper indeks ke i
2. Pi adalah pesan indeks ke i
3. Key adalah key indeks ke i

Maksud indeks tersebut adalah nilai dari deret huruf, karakter, dll. Misal indeks Pi = 0 maka nilai Pi adalah s, karena s berada pada indeks 0, jika indeks Pi = 1 maka nilai Pi adalah e, karena e berada pada indeks 1.

Untuk melakukan perhitungan dengan rumus tersebut pertama kita harus mengetahui nilai dari Pi dan Ki, jika indeks Pi = 0 maka Pi akan merejuk ke 's' dan jika indeks Ki = 0 maka Ki akan merujuk ke 'f', untuk mengambil nilai dari Pi = 's' dan Ki = 'f' kita bisa mencocokkan dengan mapVigenere yang tadi kita buat, coba kita cek huruf 's' dan 'f' berada pada posisi berapa, karena kita menggunakan indeks lakukan perhitungan mulai dari 0 - n, maka akan di peroleh nilai dari Pi = s --> 18 dan Ki = f --> 5, langsung kita tambahkan dengan rumus Ci = Pi + Ki, jadi Ci = 18 + 5 = 23, karena 23 < panjang mapVigenere maka kita biarkan saja nilai tersebut, okay nilai Ci-0 sudah ketemu, lalu kita akan mencari nilai Ci-1, Ci-2, samapai Ci-5.

Mencari nilai Ci-1
Pi = e --> 4

Ki = r -- > 17
Ci = 4 + 17 = 21

Mencari nilai Ci-2
Pi = p --> 15

Ki = f -- >5
Ci = 4 + 17 = 20

Mencari nilai Ci-3
Pi = e --> 4

Ki = r -- > 17
Ci = 4 + 17 = 21

Mencari nilai Ci-4
Pi = d -->3

Ki = f -- > 5
Ci = 4 + 17 = 8


Mencari nilai Ci-5
Pi = a --> 0
Ki = r -- > 17
Ci = 4 + 17 = 17

jadi, nilai deret Ci adalah 23, 21, 20, 21, 8, 17, dari deret inilah lalu kita mencocokkan dengan mapVigenere/mencari huruf dengan indeks ke 23, 21, dst jadi :
Huruf indeks ke-23 : x

Huruf indeks ke-21 : v
Huruf indeks ke-20 : u
Huruf indeks ke-21 : v
Huruf indeks ke-8 : i
Huruf indeks ke-17 : r   

Jadi, hasil enkripsi dari pesan "sepeda" menghasilkan chiper text (pesan terenkripsi) "xvuvir", ingat chiper text ini hasilnya akan berbeda tergantung pada mapVigenere dan Key

Okay sekerang proses enkripsi sudah selesai, lalu sekarang kita akan belajar bagaimana untuk men-dekripsikan chipertext tersebut, pertama harus ada chipertext dahulu (pesan terenkripsi) tidak mungkin mau mendekripsikan tanpa adanya chipertext tersebut :-p, lalu persyaratan berikutnya harus mengetahui mapViginere dan Key, kedua persyaratan ini isi/nilainya harus sama waktu kita melakukan proses enkripsi tadi, jika tidak sama maka pesan yang didekripsikan tidak bisa kembali seperti semula.

Berikut rumus dan aturan untuk dekripsi menggunakan vigenere :
Ci = Pi - Ki


Jika Ci < 0 maka Ci + panjang mapVigenereKet : 
1. Ci adalah chiper indeks ke i
2. Pi adalah pesan indeks ke i
3. Key adalah key indeks ke i

Caranya sama kita akan mencari nilai Ci-0 sampai Ci-5.
Mencari nilai Ci-0
Pi = x --> 23
Ki = f -- > 5
Ci = 23 - 5 = 18


Mencari nilai Ci-1
Pi = v --> 21
Ki = r -- > 17
Ci = 21 - 17 = 4

Mencari nilai Ci-2
Pi = u --> 20
Ki = f -- > 5
Ci = 20 - 5 = 15

Mencari nilai Ci-3
Pi = v --> 21
Ki = r -- > 17
Ci = 21 - 17 = 4

Mencari nilai Ci-4
Pi = i --> 8
Ki = f -- > 5
Ci = 8 - 5 = 3

Mencari nilai Ci-5
Pi = r --> 17
Ki = r -- > 17
Ci = 17 - 17 = 0


Dari proses diatas diperoleh deret bilangan Ci = 18, 4, 15, 4, 3, 0, lalu dari deret ini silahkan anda cocokkan ke mapVigenere, maka :
Ci-0 --> 18 = s

Ci-1 --> 4 = e
Ci-2 --> 15 = p
Ci-3 --> 4 = e
Ci-4 --> 3 = d
Ci-5 --> 0 = a

Jadi, hasil dekripsi dari chipertext "xvuvir" adalah "sepeda" , Jika anda ingin tahu seperti apa programnya silahkan klik disini, tapi ingat passwordnya masih manual jadi anda harus mengulang pola passwordnya dan aplikasi ini hanya menerima inputan huruf besar saja dan masih belum bisa membaca spasi, karakter dan lain-lain.

Good luck, See u on next share :-)

Selasa, 13 November 2012

Gradient Paint di Game Engine GTGE

Pada tulisan yang sedikit ini saya pengen menggunakan Gradient Pain pada Game Engine 2D GTGE, silahkan buat project baru, terserah mau dinamain ap dan jangan lupa import library GTGE-nya, jika masih belum tau caranya lihat disini, setelah itu tambahkan source code seperti dibawah ini :


Perhatikan baik-baik source code diatas jangan ada yang merah, jika silahkan cek errornya karena apa, lalu silahakan anda run dan hasilnya seperti berikut:


Good Luck :-) see U on next share....

Senin, 12 November 2012

Coba Game Engine GTGE di Java Netbeans

Pertama anda harus memiliki library GTGE-nya dulu, jika belum punya librarynya silahkan download, GTGE yang saya gunakan adalah versi 0.23 dan Netbeans 7.2 , jika sudah download silahkan ekstrak file rar-nya, lalu buka netbeans anda buat project baru dengan nama CobaGameEngine , jika selesai maka tampilannya seperti ini:


Lalu, klik kanan folder 'Libraries' dan pilih 'Add Library', lihat gambar dibawah ini :


Lalu, akan muncul jendela 'Add Library' pilih tombol 'Create', lalu akan muncul seperti berikut ini :

Pada text field Library Name silahkan isi dengan 'GoldenGameEngine' dan klik OK, lalu akan muncul jendela 'Customize Library' seperti gambar dibawah ini :


Silahkan kik 'Add Jar/Folder...' lalu silahkan tambahkan directory dimana file rar itu diekstrak, cari file yang bernama 'golden_0_2_3.jar', jika selesai maka file tersebut akan masuk ke Library Classpath, lihat gambar berikut:


Silahkan klik OK, masih muncul jendela 'Add Library' silahkan pilih 'GoldenGameEngine' pada 'Available Libraries' dan klik tombol 'Add Library', lihat gambar berikut : 


Penambahan sudah berhasil, silahkan cek pada folder 'Libraries' tadi, jika sudah ada file GoldenGameEngine pada folder 'Libraries' berarti Import Library berhasil, lihat gambar dibawah ini :
Silahkan buka 'CobaGameEngine.java' lalu masukkan kode berikut ini :


Jika selesai gak ada yang merah, silahkan anda run, dan hasilnya seperti ini :


Nanti akan saya bahas tentang penggunaan Background, Sprite, Colision(Tabrakan), dll. Good Luck :-) , see U on next share...

Senin, 15 Oktober 2012

Aplikasi SMS Kriptografi di Java Menggunakan Vigenere

Pada artikel kali ini, saya akan membagikan source code Aplikasi SMS Kriptografi di Java Menggunakan Vigenere, maksudnya SMS yang kita kirim akan di enkripsi dan hasil enkripsi ini akan dikirim ke nomor tujuan, dan yang menerimanya harus akan mendekripsikan pesan yang telah terenkripsi ini jika pesan tidak dapat dibaca dengan baik. jika anda ingin mengerti proses enkripsinya seperti apa anda bisa lihat disini, dan untuk proses sms gatewaynya bisa lihat disini :-)
 
Anda tidak bisa langsung copas dari source code yang udah di download, karena akan banyak warning dan error, pertama download Library Sun Java Comm v2 (win32) untuk pengguna microsoft. ini link download nya download.

Setelah selesai download, silahkan ekstrak dan didalamnya seperti gambar dibawah ini :

File yang saya kasih tanda panah itu silahkan di copy ke :
1. Pilih file comm.jar lalu tempatkan pada direktori JDKDIR/jre/lib/ext/
2. Pilih file javax.comm.properties lalu tempatkan pada tempatkan pada direktori JDKDIR/jre/lib/
3. Pilh file win32com.dll lalu
tempatkan pada direktori JDKDIR/jre/bin/

JDKDIR itu adalah JDK Directory silahkan cari di Program Files/Java/ biasanya ada disini, tapi tergantung dulu anda melatatkkannya dimana.

Setelah, selasai silahkan download source codenya : download 

Ini screenshootnya:


Sumber :
1. Untuk librarynya dan penginstallannya : bemzinside.wordpress.com
2. Untuk Teknik SMS Gateway : rachmad-hw.blogspot.com

Langkah-Langkah SMS Gateway GSM

SMS (Short Messaging Services) Data SMS (Short Messaging Services) yang kita kirim atau yang kita terima sebenarnya memiliki format tersendiri untuk dapat diterjemahkan oleh sebuah mobile phone. Format atau mode yang dipakai untuk mengirim dan menerima SMS sebenarnya ada dua yaitu mode text dan mode PDU (Protocol Data Unit). Akan tetapi, sistem mode text tidak didukung oleh semua operator GSM maupun terminal.

1. Text Mode Mode ini adalah cara termudah untuk mengirim pesan. Pada mode teks pesan yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Sesungguhnya, mode teks adalah hasil encode yang direpresentasikan dalam format PDU. Kelemahannya, kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya tipe encoding.

2. PDU (Protocol Data Unit) Mode PDU mode adalah format message dalam heksadesimal octet dan semi-desimal octet dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Kelebihan menggunakan mode PDU adalah kita dapat melakukan encoding sendiri yang tentunya harus pula didukung oleh hardware dan operator GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang dikirim. Beberapa tipe encoding yang umum digunakan adalah “PCCP437”, “PCDN”, “8859-1”, “IRA” dan “GSM”. Kita juga dapat menambahkan header ke dalam pesan yang akan dikirim, seperti timestamp, nomor SMSC dan meta-informasi lainnya. 2.1.1 Sistem Kerja SMS Pada saat kita mengirim pesan SMS dari handphone (mobile originated) pesan tersebut tidak langsung dikirim ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC), baru kemudian pesan tersebut diteruskan ke handphone tujuan.



Gambar 1
Dengan adanya SMSC ini dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal diterima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktif dan dapat menerima pesan SMS yang dikirim, ia akan mengirim kembali pesan konfirmasi ke SMSC yang menyatakan bahwa pesan telah diterima. Kemudian SMSC mengirimkannya kembali status tersebut kepada si pengirim. Jika handphone dalam keadaan mati, pesan yang dikirimkan akan disimpan pada SMSC sampai period-validity terpenuhi. 2.1.2 Koneksi ke SMSC Untuk dapat mengirim dan menerima pesan, kita harus melakukan koneksi ke SMSC. Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain : · Menggunakan terminal baik berupa GSM modem atau handphone. Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim per menit sangat terbatas (sekitar 6-10 pesan per menit). Untuk mengantisipasi hal ini biasanya digunakan lebih dari satu terminal.

· Koneksi langsung ke SMSC Dengan melakukan koneksi langsung ke SMSC kita dapat mengirim pesan dalam jumlah banyak, dapat mencapai sekitar 600 SMS per menit bergantung pada kapasitas dari SMSC itu sendiri. Untuk melakukan koneksi ke SMSC diperlukan protocol penghubung. Protocol yang umum digunakan adalah UCP, SMPP, CIMD2, OIS dan TAP. Masing–masing operator GSM menyediakan tipe protocol yang berbeda-beda.

· Menggunakan software Bantu Saat ini banyak vendor telekomunikasi menawarkan software bantu untuk melakukan koneksi ke SMSC, dari yang bersifat freeware, open source sampai dengan yang komersial. Pemilihan koneksi ke SMSC biasanya disesuaikan dengan jumlah pesan SMS yang akan dikirim. Gambar dibawah ini menunjukkan skema tipe koneksi ke SMSC.

2.1.3 Mode Pengiriman dan Penerimaan SMS dengan PDU

Data yang mengalir ke atau dari SMS-Center harus berbentuk PDU (Protokol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O. PDU berisi atas beberapa header. Header untuk kirim SMS ke SMS-Center berbeda dengan SMS yang diterima dari SMS-Center.

A. PDU untuk kirim SMS ke SMS-Center Terdapat delapan header untuk mengirim SMS, yaitu : 1. Nomor SMS-Center Header pertama ini terbagi atas tiga subheader, yaitu :
a. Jumlah pasangan Heksadesimal SMSC dalam bilangan heksa
b. National/International code
* untuk National, kode subheader-nya yaitu 81
* untuk International, kode subheader-nya yaitu 91
c. No SMS-Center-nya sendiri, dalam pasangan heksa dibalik-balik. Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan huruf F didepannya. Contoh : untuk nomor SMSC Excelcom 62818445009 dapat diubah menjadi
a. 07 --> ada 7 pasang
b. 91 --> 1 pasang
c. 26-18-48-54-00-F9 --> 6 pasang
Digabung menjadi : 07912618485400F9
1. Telkomsel 62811000000 07912618010000F0
2. Satelindo 62816125 059126181652
3. Exelcom 62818445009 07912618485400F9
4. Indosat-M3 62855000000 07912658050000F0


2. Tipe SMS
Untuk SEND tipe SMS = 1. Jadi bilangan heksanya adalah 01.
3. Nomor Referensi SMS
Nomor referensi ini dibiarkan dulu 0, jadi bilangan heksanya adalah 00. Nanti akan diberikan nomor referensi otomatis oleh ponsel atau alat SMS gateway.
4. Nomor Ponsel Penerima

a. Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan heksa.
b. National/International code * untuk National, kode subheader-nya yaitu 81 * untuk International, kode subheader-nya yaitu 91

c. Nomor ponsel yang dituju, dalam pasangan Heksa dibalik-balik. Sama dengan cara penulisan subheader SMSC.

Contoh : untuk nomor ponsel yang dituju = 628129573337 dapat diubah menjadi
a. 0C à ada 12 angka
b. 91 c. 26-18-92-75-33-73 Digabung menjadi 0C91 261892753373

5. Bentuk SMS, antara lain : 0 à 00 à dikirim sebagai SMS
1 --> 01 --> dikirim sebagai telex
2 -->02 --> dikirim sebagai fax 6. Skema Encoding Data I/O Ada dua skema, yaitu :

a. Skema 7 bit à ditandai dengan angka 0 -->00
b. Skema 8 bit à ditandai dengan angka lebih besar dari 0 à diubah ke heksa Kebanyakan ponsel atau SMS gateway yang ada di pasaran sekarang menggunakan skema 7 bit.


7. Jangka Waktu Sebelum SMS Expired
Agar SMS kita pasti terkirim sampai ke ponsel penerima, sebaiknya kita tidak memberikan batasan waktu validnya.

8. Isi SMS
Header ini terdiri atas dua subheader, yaitu :

a. Panjang isi (jumlah huruf dari isi)
Misalnya : untuk kata “hello” --> ada 5 huruf --> 05
b. Isi berupa pasangan bilangan heksa

· Untuk ponsel/SMS gateway berskema encoding 7 bit, jika kita mengetikkan suatu huruf dari keypad-nya, berarti kita telah membuat 7 angka 1/0 berurutan.

Ada dua langkah yang harus dilakukan untuk mengkonversi isi SMS, yaitu :
1. mengubah menjadi kode 7 bit, contoh kata “hello”

bit 7 1
h -->110 1000
e -->110 0101
l --> 110 1100
l --> 110 1100
o --> 110 1111

mengubah kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa. E 8

h 1 110 1000 3 2
e 00 11 0010 9 B
l 100 1 1011 F D
l 1111 1101 0 6
o 0000 0 110

Dengan demikian kata “hello” hasil konversinya E8329BFD06
Menggabungkan kedelapan header untuk mengirim kata “hello” ke ponsel nomor 628129573337 lewat SMS-Center Excelcom, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah : 07912618485400F901000C9126189275337300000E8329BFD06

Copas From : Dunia Rachmad

Minggu, 14 Oktober 2012

Konversi Desimal Ke Hexadesimal

Nie screenshoot input :

Nie screenshoot output : 

Nie link download source code: download

Konversi Biner Ke Desimal di Java

Aplikasi ini, masih sangat sederhana sekali, dan aplikasi ini masih belum ada penanganan errornya, masih banyak kekurangan...misal input diganti dengan huruf apilikasi ini masih belum didesain untuk kasus seperti itu, silahkan yang mau ngembangin aplikasi ini...
Nie screenshot inputnya : 


Nie screenshot outputnya :


Nie link download source codenya : download

Jumat, 12 Oktober 2012

Konversi Desimal Ke Biner

Hmz, ini ada latihan lagi...Desimal ke Biner pakek java, dalam source code yang saya upload ini ada 2 cara, yang pertama memanfaatkan String sebagai konversinya, lalu cara yang kedua adalah cara standart yang digunakan untuk konversi bilangan Desimal ke Biner, silahkan pelajari source codenya, semoga ini bermanfaat buat kalian.

Ini Contoh inputnya...


Lalu ini adalah outputnya...

Dan ini link download source codenya : download

Latihan Kalkulator Sederhana

Halo, ini ada file latihan saya....tentang kalkulator basic, nanti program ini akan menghitung, inputan String anda. nie contoh inputannya.



Lalu, Outputnya :


Dan ini, link download source code-nya : download

Rabu, 10 Oktober 2012

Pengenalan Array 2 Dimensi di Java

          Sekarang kita akan mempelajari array 2D, konsepnya hampir sama dengan array 1D, tetapi array 2D ini mempunyai baris dan kolom, untuk pengaksesan array ini tetap menggunakan indeks array tetapi yang digunakan adalah indeks baris dan indeks kolom, nanti untuk loopingnya kita gunakan looping 2 layer, maksudnya didalam looping ada looping lagi atau biasa disebut nested loop, daripada bingung… langsung lihat aja source code-nya...



          Pada baris ke-14 sampai ke-16, adalah proses deklarasi array dua dimensi, dan menentukan isi dari baris dan kolomnya, sebenarnya banyak cara untuk deklarasi array ini, pie pada kesempatan kali saya menggunakan yang tipe ini.

          Untuk lebih mudah mempelajarinya, saya nanti akan membuat outputan yang berisi daftar kelompok, Kelompok Pertama berisikan {Roni, Rista, Yogi, Irfan}, lalu kelompok Kedua berisikan {Hanafi, Slamet, Romza, Nina}, lalu yang terakhir atau Kelompok Ketiga berisikan {Wahyu, Fiki, Lusi, Ali}. 

          Cara membuat outputan seperti itu bisa dilihat pada baris ke-20 sampai baris ke-29, looping for yang pertama atau layer 1, digunakan untuk pengaksesan baris, looping for yang kedua atau layer 2, digunakan untuk pengaksesan kolom baris ke-i, nie urutan-urutan eksekesinya simak dengan baik.

Langkah 1.
          Pertama deklarasi variabel baris dengan nilai 0, 

Langkah 2.
          Lalu, pengecekan kondisi apakah baris < kelompok.length , sekarang nilai baris adalah 0, sedangkan nilai kelompok.length adalah 3 jadi apakah 0<3, maka hasilnya benar(True).

Langkah 3.
          Jika hasil dari kondisi tersebut bernilai  benar(True) maka akan mengeksekusi baris perintah yang di dalam looping for layer 1, lihat baris  21 sampai baris 28 itulah perintah yang ada pada looping for layer 1, lalu akan mengerjakan baris demi baris, pertama akan mengeksekusi System.out.println(“Daftar Kelompok ke-”+ (++idxBaris)); perintah ini adalah untuk mencetak Daftar Kelompok ke-idxBaris, sedangkan idxBaris mempunyai nilai 1, jadi hasilnya akan mencetak Daftar Kelompok ke-1, lalu akan mengeksekusi baris berikutnya, dan kebetulan baris berikutnya adalah looping for,  berikut alur eksekusi untuk looping for layer 2.

       Langkah 3.1
              Deklarasi variabel kolom dengan nilai 0.

       Langkah 3.2      
Lalu Pengecekan kondisi looping for layer 2, apakah kelompok < kelompok[baris].length, nilai variabel kelompok sekarang adalah 0 sedangkan nilai kelompok[baris].length adalah 4, mengapa bernilai 4, mari kita cek statement kelompok[baris].length statement ini digunakan untuk mengakses kolom………baris ke-0, sedangkan jumlah kolom pada baris ke-0 adalah 4, jadi nilai kelompok[baris].length adalah 4 dan derpadat perbedaan statement untuk mengakses kolom dan baris, jika ingin mengakses sebuah baris maka statementnya baris < kelompok.length sedangkan untuk mengakses sebuah kolom pada baris menggunakan statement kelompok[baris].length.
Kembali ke pengecekan kondisi kelompok < kelompok[baris].length jadi apakah 0 < 4 maka hasilnya adalah benar(True).

       Langkah 3.3
          Jika kondisi Looping For Layer 2 ini bernilai benar(True) maka akan mengeksekusi baris perintah yang terdapat di Looping For Layer 2 lihat baris-24, System.out.println(++idxKolom + “. ”+kelompok[baris][kolom]) maksudnya adalah akan mencetak nilai dari idxKolom sedangkan nilai idxKolom sudah diincrement jadi nilainya 1, terus kelompok[baris][kolom] lah ini inti pengaksesan array 2 Dimensinya, maksudnya nanti akan mencetak nilai dari kelompok indeks baris ke-baris dan indeks kolom ke-kolom , nilai dari baris adalah 0 dan kolom masih 0, jadi si-java akan mencetak array kelompok[0][0], dan isinya adalah ‘Rony’.

Langkah 3.4
 Jika sudah mengeksekusi  kode program yang didalam Looping For Layer 2, lalu si java akan menaikkan nilai variabel kolom , yang semula bernilai 0 sekarang berubah menjadi 1, lalu si-java akan kembali ke Langkah 3.2, Langkah 3.3, Langkah 3.4, begitu seterusnya…sampai kondisi looping for layer 2 ini bernilai salah, dan looping for layer 2 ini akan selesai lalu akan melanjutkan kode program yang di bawah struktur looping for layer 2 lihat baris- 26 sampai 28 itu adalah kode program dibawah struktur looping for layer 2.

Ini masih didalam langkah 3, tetapi masih didalam Looping For Layer 1 dan diluar Looping For Layer 2, lihat baris ke-27 dan 28 perintahnya simpel untuk yang baris ke-27 menginisialisasi variabel idxKolom menjadi 0, lalu yang berikutnya cuman mencetak doank.

Langkah 4.
Setelah mengeksekusi semua baris perintah yang terdapat didalam Looping For Layer 1, maka si-java akan menaikkan nilai variabel baris, dan akan kembali ke Langkah 2, Langkah 3 dan sub-sub Langkah 3, dan kembali menaikkan variabel baris di Langkah 4, dan looping ini akan berakhir ketika kondisi looping for layer 1 salah.
 
Dan inilah hasil outputnya.

 Semoga penjelasan diatas dapat bermanfaat bagi kalian. :-D Good Luck Selamat Mencoba