MODUL XIV, Algoritma Pemrograman I

ARRAY / LARIK MULTIDIMENSI
A.   DASAR TEORI
Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Array bisa berupa array berdimensi satu, dua, tiga atau lebih.  Kita juga bisa membuat variable larik yang bertipe elemennya adalah larik. Denga cara demikian, kita mebuat larik dua dimensi. Dengan larik dua dimensi, maka kita mempunyai larik yang berindeks lebih dari satu. Kita dapat membayangkan larik dua dimensi tersebut seperti sebuah table yang berisi baris dan kolom. Penyebut sel table tersebut selalu diikuti dengan penyebutan beberapa baris dan beberapa kolom.
B.   PEMBAHASAN
Program 1 :
1. public class ArrayDimensiDua1 {
2. public static void main (String [] args){
3. int [] [] piksel = new int [2] [3];
4. piksel [0] [0] = 70;
5. piksel [0] [1] = 18;
6. piksel [0] [2] = 45;
7. piksel [1] [0] = 75;
8. piksel [1] [1] = 66;
9. piksel [1] [2] = 89;
10. int i,j;
11. for (i=0; i<2; i++){
12. for (j=0; j<3; j++){
13. System.out.print(“=”+i+” dan j=”+j+” “);
14. System.out.println(piksel [i] [j]+” “);
15. }
16. System.out.println(” “);
17. }
18. }
19. }
Hasil output program :
Pembahasan :
Pada baris 1 dan 2 secara berurutan  adalah deklarasi class ArrayDimensiDua1 dan deklarasi method main yang bertipe static. Baris 3 adalah deklarasi larik int [] [] piksel yang bertipe data integer dan merupakan penciptaan larik piksel = new int [2] [3]; dengan baris sejumlah 2 dan kolom sejumlah 3. Baris 4 sampai 9 merupakan isi dari larik, misalnya  piksel [0] [0] = 70;berarti pada baris pertama dan kolom pertama bernilai 70.  Baris 10 merupakan deklarasi variable int i,j;yang bertipe data integer. Baris 11  merupakan perulangan for (i=0; i<2; i++) dengan argument-argument variable i. Baris 12  merupakan perulangan for (j=0; j<3; j++) dengan argument-argument variable j.  Baris 13 pernyataan System.out.print(“=”+i+” dan j=”+j+” “); untuk menampilkan hasil perulangan for. Baris 14 adalah pernyataan System.out.println(piksel [i] [j]+” “);  untuk menampilkan nilai dari larik.
Program 2 :
1.import java.util.Scanner;
2.public class JumlahMatriks {
3.Scanner masuk = new Scanner (System.in);
4.    private int i;
5.    private int j;
6.public void masukData(float data [] []){
7.for (i=0; i<3; i++){
8.for (j=0; j<3; j++){
9.System.out.print(“(“+(i+1)+” , “+(j+1)+”)”+”: “);
10. data [i] [j]= masuk.nextInt();
11. }
12. }
13. }
14. public float [] [] tambah (float AA [] [], float BB [] []){
15. float hasil [] [] = new float [3] [3];
16. for (i=0; i<3; i++)
17. for (j=0; j<3; j++)
18. hasil [i] [j] = AA [i] [j] + BB [i] [j];
19. return hasil;
20. }
21. public void tampilData(float data [] [], char nama){
22. for (i=0; i<3; i++){
23. for (j=0; j<3; j++)
24. System.out.print(nama+”[“+(i+1)+”] [“+(j+1)+”] : “+data [i] [j]+ ” “);
25. System.out.println();
26. }
27. }
28. public static void main (String[] args){
29. float A [] [] = new float [3] [3];
30. float B [] [] = new float [3] [3];
31. float C [] [] = new float [3] [3];
32. JumlahMatriks jumlah = new JumlahMatriks();
33. System.out.println(“Masukkan data matrik A”);
34. jumlah.masukData(A);
35. System.out.println(“Masukkan data matrik B”);
36. jumlah.masukData(B);
37. C=jumlah.tambah(A,B);
38. jumlah.tampilData(C,’C’);
39. }
40. }
Hasil output program :
Pembahasan :
Baris 1 sampai 3 secara berurutan adalah paket Scanner, deklarasi class JumlahMatriks dan paket input Scanner dengan nama obyek masuk. Baris 4 dan 5 adalah deklarasi variable private int i; private int j;  yang bersifat private atau pribadi. Baris 6 adalah deklarasi method masukData(float data [] [])dengan parameter larik. Baris 7  merupakan perulangan for (i=0; i<3; i++) dengan argument-argument variable i. Baris 8  merupakan perulangan for (j=0; j<3; j++) dengan argument-argument variable j. Baris 9 pernyataan System.out.print(“(“+(i+1)+” , “+(j+1)+”)”+”: “); untuk menampilkan hasil perulangan for. Baris 10 merupakan penginputan nilai ke parameter larik yang ada pada method masukData, kemudian nilai tersebut diubah menjadi variable idan variabel j yang nantinya akan dieksekusi di perulangan for. Sehingga pada baris 10 masing-masing variabel akan dikerjakan sebanyak 3 kali. Baris 14 adalah deklarasi method tambah (float AA [] [], float BB [] []) dengan parameter larik.  Baris 15 adalah deklarasi larik float hasil [] [] yang bertipe data float dan merupakan penciptaan larik hasil [] [] = new float [3] [3]; dengan baris sejumlah 3 dan kolom sejumlah 3. Baris 16  merupakan perulangan for (i=0; i<3; i++) dengan argument-argument variable i. Baris 17  merupakan perulangan for (j=0; j<3; j++) dengan argument-argument variable j. Baris  18 adalah operasi penjumlahan yang berfungsi untuk menjumlahkan larik AA [i] [j] dengan larik BB [i] [j]. Baris 19 adalah return hasil; yang berfungsi untuk mengembalikan hasil operasi ke method tambah. Baris 21 adalah deklarasi method tampilData(float data [] [], char nama)dengan parameter larik. Baris 22  merupakan perulangan for (i=0; i<3; i++) dengan argument-argument variable i. Baris 23  merupakan perulangan for (j=0; j<3; j++) dengan argument-argument variable j. Baris 24 merupakan pernyataan System.out.print(nama+”[“+(i+1)+”] [“+(j+1)+”] : “+data [i] [j]+ ” “); untuk menampilkan hasil perulangan for. Baris 28 merupakan deklarasi dari method main  yang bertipe static. Baris 29 sampai 31 adalah deklarasi larik A, larik B, larik C serta penciptaan baris 3 dan kolom 3. Baris 32 adalah deklarasi paket masukkan method JumlahMatriks()dengan nama obyek jumlah. Baris 33 dan 34 merupakan pernyataan masukkan untuk data larik A. Baris 35 dan 36 adalah pernyataan masukkan untuk data larik B. Baris 37 dan 38 adalah pernyataan masukkan untuk data larik C.
C.   TUGAS
Buat sebuah program dengan larik untuk menyimpan 10 data mahasiswa yaitu berupa NIM, nama, jurusan
Program :
import java.util.Scanner;
public class LarikJawab{
public static void main(String[]args){
Scanner data=new Scanner (System.in);
String mahasiswa[][];
mahasiswa=new String[10][3];
     for(int i=0;i<10;i++){
     System.out.print(“Masukkan nomor mahasiswa: “);
     mahasiswa[i][0]=data.nextLine();
     System.out.print(“Masukkan nama mahasiswa: “);
     mahasiswa[i][1]=data.nextLine();
     System.out.print(“Masukkan jurusan mahasiswa: “);
     mahasiswa[i][2]=data.nextLine();
     }
          for (int i=0;i<10;i++){
              System.out.print(“”);
              System.out.println(“Nomor Nama Jurusan”);
              System.out.print(mahasiswa[i][0]+ ” “);
              System.out.print(mahasiswa[i][1]+ ” “);
              System.out.println(mahasiswa[i][2]+ ” “);
          }
     }
}
Hasil output program :
Buat program untuk menyimpan data dalam sebuah matriks yang baris dan kolomnya sama.
Ketentuan :
1.      Jika no baris lebih besar dari no kolom, maka isi larik “*”
2.      Jika no baris sama dengan dari no kolom, maka isi larik “@”
3.      Jika no baris lebih kecil dari no kolom, maka isi larik “@”
Program :
import java.util.Scanner;
public class MatriksPilih {
Scanner masuk = new Scanner(System.in);
public void masukData(float data [] [], int ma, int mb){
for (int i=0; i<ma; i++){
for (int j=0; j<mb; j++){
System.out.print((i+1)+” dan “+(j+1)+” : “);
data [i] [j]=masuk.nextFloat();
}
}
}
public float [] [] kali (float AA [] [], float BB [] [], int ma, int mb, int mt){
float hasil [] []=new float [5] [5];
for (int i=0; i<ma; i++)
for (int j=0; j<mb; j++){
hasil [i] [j]=0;
for (int k=0; k<mt; k++)
hasil [i] [j]=hasil [i] [j] + AA [i] [j] * BB [k] [j];
}
return hasil;
}
public void tampilData(float data [] [], char nama, int ma, int mb){
for (int i=0; i<ma; i++){
for (int j=0; j<mb; j++)
System.out.print(nama+”[“+(i+1)+”] [“+(j+1)+”] = “+data [i] [j]+” “);
System.out.println();
}
}
public static void main (String [] args){
        float[][] A = new float [5] [5];
        float[][] B = new float [5] [5];
        float[][] C = new float [5] [5];
Scanner input=new Scanner (System.in);
MatriksKali ping = new MatriksKali();
System.out.print(“Masukkan baris A: “);
int ba = input.nextInt();
System.out.print(“Masukkan kolom B: “);
int bb = input.nextInt();
System.out.print(“Masukkan kolom A dan baris B: “);
int ka = input.nextInt();
System.out.println(“Masukkan data matriks A”);
ping.masukData(A, ba, ka);
System.out.println(“Masukkan data matriks B”);
ping.masukData(B, ka, bb);
C=ping.kali(A, B, ba, bb, ka);
ping.tampilData(C, ‘C’, ba, bb);
}
}
Hasil output program :
D.   KESIMPULAN
Dengan larik dua dimensi, maka kita mempunyai larik yang berindeks lebih dari satu. Kita dapat membayangkan larik dua dimensi tersebut seperti sebuah table yang berisi baris dan kolom.
E.    LISTING
Terlampir.
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s