Bentuk Bintang Menggunakan Array Dua Dimensi
Kali ini saya mau share materi yang saya dapat saat training Java Basic. Di awal training seperti biasa kami disuruh mengasah kembali logika kami dengan membuat berbagai bentuk bintang, saya nyebutnya sih Logika Bintang. Disini agak berbeda dengan logika bintang yang lain, dimana saya menggunakan Array 2 Dimensi.
Array multidimensi dengan dua dimensi sering digunakan untuk merepresentasikan tabel nilai-nilai yang terdiri dari informasi yang diatur dalam baris dan kolom. Untuk mengidentifikasi elemen tabel tertentu, kita harus menentukan dua indeks. Dengan konvensi, yang pertama mengidentifikasi baris elemen dan kolom kedua. Array yang membutuhkan dua indeks untuk mengidentifikasi elemen tertentu disebut array dua dimensi. (Array multidimensi dapat memiliki lebih dari dua dimensi.) Java tidak mendukung array multidimensi secara langsung, tapi itu tidak memungkinkanprogrammer untuk menentukan array satu dimensi yang elemen-elemennya jugaarray satu dimensi, sehingga mencapai efek yang sama.
Gambar diatas menggambarkan array dua dimensi yang berisi tiga baris dan empat kolom (yaitu, tiga-by-empat array). Secara umum, sebuah array dengan m baris dan n kolom disebut array m-oleh-n.
Contoh : int b[][] = { { 1, 2 }, { 3, 4 } };
Kembali pada pokok bahasan yaitu membuat bentuk bintang dengan menggunakan Array Dua Dimensi, berikut contohnya :
package com.xsis.app;
import java.util.Scanner;
public class ArrayDuaDimensi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("---> Input for dimension of array [x][y] : ");
Integer x = scanner.nextInt();
scanner.close();
String[][] arr = new String[x][x];
ArrayDuaDimensi arrayDD = new ArrayDuaDimensi();
arrayDD.patern1(arr);
arrayDD.print(arr);
System.out.println("---------------------------");
arrayDD.patern2(arr);
arrayDD.print(arr);
System.out.println("---------------------------");
arrayDD.patern3(arr);
arrayDD.print(arr);
}
public void print(String[][] param){
for (int x = 0; x < param.length; x++){
for (int y = 0 ; y < param[x].length; y++){
//System.out.print(" "+x +" " +y + " ");
System.out.print(param[x][y]);
}
System.out.println();
}
}
public void patern1(String[][] param){
for (int x = 0; x < param.length ; x++){
for (int y = 0 ; y < param[x].length; y++){
if (x == y){
param[x][y] = "*";
} else if (y == 0){
param[x][y] = "*";
} else if (x == param.length-1){
param[x][y] = "*";
} else{
param[x][y] = " ";
}
}
}
}
public void patern2(String[][] param){
for (int x = 0; x < param.length ; x++){
for (int y = 0 ; y < param[x].length; y++){
if (x == 0){
param[x][y] = "*";
} else if (y == 0){
param[x][y] = "*";
} else if (x+y == param.length-1){
param[x][y] = "*";
} else{
param[x][y] = " ";
}
}
}
}
public void patern3(String[][] param){
for (int x = 0; x < param.length ; x++){
for (int y = 0 ; y < param[x].length; y++){
if (x == 0){
param[x][y] = "*";
} else if (y == 0){
param[x][y] = "*";
} else if (y == param.length-1 || x == param.length-1){
param[x][y] = "*";
} else{
param[x][y] = " ";
}
}
}
}
}
Dimana akan menghasilkan output seperti ini :
---> Input for dimension of array [x][y] : 8
*
**
* *
* *
* *
* *
* *
********
---------------------------
********
* *
* *
* *
* *
* *
**
*
---------------------------
********
* *
* *
* *
* *
* *
* *
********
Referensi tentang array dua dimensi:
http://dinda-dinho.blogspot.com/2013/06/array-2-dimensi-dan-implementasinya.html