Algoritma dan
Struktur Data
ADT Array 2 Dimensi
Oleh
NIM : 115090607111036
Program Teknologi
Informatika dan Ilmu Komputer
Universitas
Brawijaya
Malang
2012
BAB I
Pendahuluan
I.1 Dasar Teori
Array adalah salah satu tipe bentukan terstruktur (structured
user-defined tipe). Array atau larik dibutuhkan untuk menyimpan serangkaian
elemen yang bertipe sama, berstruktur homogen (homogenous structure), yang
disebut tipe basis (base type).
Array juga disebut struktur yang dapat diakses secara acak
(random-access structure) karena semua elemen array dapat diacu secara acak
dengan aturan tertentu, yaitu dengan mengetahui nomor urutnya yang disebut
dengan indeks (index).
ARRAY DUA DIMENSI
Array 2 dimensi
merupakan representasi matrik M×N yang banyak digunakan untuk mewakilkan
struktur data logik dari sebuah antrian (queue), stack atau graph. Sebenarnya
array n dimensi ini (n bernilai lebih besar dari 1) merupakan pelajaran dasar
dari algoritma. Singkatnya, Array
dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.
Bentuknya dapat berupa matriks atau tabel.
Bentuk
umum pendeklarasian variabel array dua dimensi di Java adalah:
tipeData[][]nama_variabel[=new
tipeData[jumlah_baris][jumlah_kolom]];
Untuk memudahkan pemahaman, bentuk array dua dimensi bisa dihambarkan dalam bentuk petak-petak sebagai berikut:
Untuk memudahkan pemahaman, bentuk array dua dimensi bisa dihambarkan dalam bentuk petak-petak sebagai berikut:
N adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakan jumlah kolom dari array. Sama seperti array satu dimensi, penomoran indeks untuk array dua dimensi juga dimulai dari 0 untuk baris maupun kolomnya. Tidak ada aturan yang mengatakan bahwa urutan untuk nomor indeks adalah baris dulu baru kolom.
Contoh
array 2 dimensi:
tipeData[][]nama_variabel[=new
tipeData[jumlah_baris][jumlah_kolom]];
int
x[3][4];
BAB II
Pembahasan
II.1 Source Code
No
|
Larik.java
|
package Prak2;
public class Larik {
// data (struktur
data)
private int size;
private int[] itemDt;
// method
public void buatLarik(int n) {
this.size = n;
this.itemDt = new int[this.size];
}
public Larik(int n) {
buatLarik(n);
}
public int getSize() {
return this.size;
}
public Larik(int[] dt) {
buatLarik(dt.length);
for (int i = 0; i <
dt.length; i++)
isiItem(i, dt[i]);
}
public void isiItem(int id, int dt) {
this.itemDt[id] = dt;
}
public void cetak(String
komentar) {
System.out.println(komentar);
for (int i = 0; i <
this.size; i++) {
System.out.printf(this.itemDt[i] + "
");
}
System.out.println();
}
public int getPosisi(int dtCari) {
int pos = -99;
boolean ketemu = false;
int i = 0;
while (!ketemu
&& i < this.size) {
if (dtCari == this.itemDt[i]) {
ketemu
= true;
pos
= i;
}
i++;
}
return pos;
}
public void setSize(int a) {
this.size = a;
this.itemDt = new int[this.size];
}
public Larik
copyLarik(int k, int n) {
Larik lHasil = null;
if (n <= this.size - k) {
lHasil = new Larik(n);
int j = 0;
for (int i = k; i <
k + n; i++) {
lHasil.isiItem(j++,
this.itemDt[i]);
}
}
return lHasil;
}
public int getItem(int i) {
return this.itemDt[i];
}
}
|
No
|
Matrik.java
|
package Prak3;
import Prak2.Larik;
public class Matrik {
//Data
private int nBaris, nKolom;
private int [][]itemDt;
public Matrik (int nBrs, int nKlm){
nBaris = nBrs;
nKolom = nKlm;
itemDt = new int [nBaris][nKolom];
}
public Matrik (int [][] dt){
nBaris = dt.length;
nKolom=dt.length;
this.itemDt = new int [nBaris][nKolom];
for(int i = 0; i < nBaris; i++){
for(int j= 0; j < nKolom; j++){
this.setItem(i,j,dt[i][j]);
}
}
}
/**
* Fungsi untuk mendapatkan
jumlah baris
* @return jumlah
baris
*/
public int getNBaris(){
return nBaris;
}
public int getNKolom(){
return nKolom;
}
public int getItem(int idB,int idK){
return this.itemDt [idB][idK];
}
public void setItem(int idB, int idK, int dt){
this.itemDt[idB][idK] =
dt;
}
public Matrik
kali(Matrik m){
Matrik n = null;
if(this.nKolom == this.nBaris){
n = new
Matrik(m.getNBaris(), m.getNKolom());
for (int i = 0; i <
m.getNBaris(); i++) {
for (int j = 0; j <
m.getNKolom(); j++) {
int x =0;
for (int k = 0; k <
m.getNKolom(); k++) {
x
+= this.itemDt[i][k]* m.getItem(k, j);
}
n.setItem(i,
j, x);
}
}
}
return n;
}
public Larik
getBaris(int a) {
Larik gb = new Larik(this.getNKolom());
for (int i = 0; i < this.nKolom; i++) {
gb.isiItem(i,this.getItem(a - 1,
i));
}
return gb;
}
public Larik
getKolom(int a) {
Larik gk = new Larik(this.getNKolom());
for (int i = 0; i < this.nBaris; i++) {
gk.isiItem(i,this.getItem(i,a -
1 ));
}
return gk;
}
public void cetak(String
kom){
System.out.println(kom);
for(int i = 0; i < this.nBaris; i++){
for (int j = 0; j < this.nKolom;j++){
System.out.print(itemDt[i][j]+ " ");
}
System.out.println();
}
}
public static void main (String[]
args){
//implementasi
untuk ADT_Matrik
Matrik A,B,C;
Larik D;
int [][] X
={{1,2,3},{4,5,6},{7,8,9}};
int [][] Y
={{9,8,7},{6,5,4},{3,2,1}};
A = new Matrik (X);
B = new Matrik (Y);
A.cetak("Matrik
A");
B.cetak("\nMatrik
B");
C =
A.kali(B);
C.cetak("\nMatrik
C = A x B");
D =
C.getBaris(3);
D.cetak("\nMatrik
C baris 3 " );
D =
C.getKolom(2);
D.cetak("\nMatrik
C kolom 2" );
}
}
|
II.2 Output
BAB III
Penutup
III.1 Kesimpulan
- Array adalah kmpulan dari nilai nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.
- Letak urutan nilai nilai array ditunjukkan oleh suatu index.
- Array dapat dilewatkan sebagai parameter fungsi.
- Array bisa berupa array berdimensi satu, dua, tiga, atau lebih.
- Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.
- Bentuknya dapat berupa matriks atau table.
- Deklarasi array : Type_array nama_array[baris][kolom];
III.2 Saran
1.
Mengajarkan materi secara bertahap hingga mahasiswa
mengerti.
2.
Menerangkan dan membahas tugas yang sudah di kumpulkan jika
masih ada yang belum dimengerti.
Daftar Pustaka
2. http://robbyelmanto.files.wordpress.com/2010/05/bab-7.doc

Tidak ada komentar:
Posting Komentar