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 databertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Arraybisa berupa array berdimensi satu, dua, tiga atau lebih.  Kita juga bisa membuat variable larik yangbertipe elemennya adalah larik. Denga cara demikian, kita mebuat larik duadimensi. Dengan larik dua dimensi, maka kita mempunyai larik yang berindekslebih dari satu. Kita dapat membayangkan larik dua dimensi tersebut sepertisebuah table yang berisi baris dan kolom. Penyebut sel table tersebut selaludiikuti dengan penyebutan beberapa baris dan beberapa kolom.
B.  PEMBAHASAN
Program1 :
1. publicclass ArrayDimensiDua1 {
2. publicstatic 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. inti,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. }
Hasiloutput program :
Pembahasan:
Padabaris 1 dan 2 secara berurutan  adalahdeklarasi class ArrayDimensiDua1 dan deklarasi methodmain yang bertipe static. Baris 3 adalah deklarasi larik int [] []piksel yangbertipe data integer dan merupakan penciptaan larik piksel =new int [2] [3]; dengan baris sejumlah 2 dan kolomsejumlah 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++) denganargument-argument variable i. Baris 12  merupakan perulangan for (j=0; j<3;j++) denganargument-argument variable j.  Baris 13 pernyataan System.out.print(“=”+i+”dan j=”+j+” “); untuk menampilkan hasil perulanganfor. Baris 14 adalah pernyataan System.out.println(piksel [i][j]+” “);  untuk menampilkan nilai dari larik.
Program2 :
1.import java.util.Scanner;
2.public class JumlahMatriks {
3.Scanner masuk = new Scanner (System.in);
4.    privateint i;
5.    privateint 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. publicfloat [] [] tambah (float AA [] [], float BB [] []){
15. floathasil [] [] = 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. returnhasil;
20. }
21. publicvoid 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. publicstatic 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. JumlahMatriksjumlah = new JumlahMatriks();
33. System.out.println(“Masukkandata matrik A”);
34. jumlah.masukData(A);
35. System.out.println(“Masukkandata matrik B”);
36. jumlah.masukData(B);
37. C=jumlah.tambah(A,B);
38. jumlah.tampilData(C,’C’);
39. }
40. }
Hasiloutput program :
Pembahasan:
Baris1 sampai 3 secara berurutan adalah paket Scanner, deklarasi classJumlahMatriks 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 6adalah deklarasi method masukData(float data [] [])dengan parameter larik. Baris 7 merupakan perulangan for (i=0; i<3; i++) denganargument-argument variable i. Baris 8  merupakan perulangan for (j=0; j<3;j++) denganargument-argument variable j. Baris 9 pernyataan System.out.print(“(“+(i+1)+”, “+(j+1)+”)”+”: “); untukmenampilkan hasil perulangan for. Baris 10 merupakan penginputan nilai keparameter larik yang ada pada method masukData,kemudian nilai tersebut diubah menjadi variable idan variabel j yang nantinya akan dieksekusi diperulangan for. Sehingga pada baris 10 masing-masing variabel akan dikerjakansebanyak 3 kali. Baris 14 adalah deklarasi method tambah(float AA [] [], float BB [] []) dengan parameterlarik.  Baris 15 adalah deklarasi larik float hasil[] [] yangbertipe data float dan merupakan penciptaan larik hasil [] []= new float [3] [3]; dengan baris sejumlah 3 dan kolomsejumlah 3. Baris 16  merupakanperulangan for (i=0; i<3; i++) dengan argument-argumentvariable i. Baris 17  merupakan perulangan for (j=0; j<3;j++) denganargument-argument variable j. Baris  18 adalah operasi penjumlahan yang berfungsiuntuk menjumlahkan larik AA [i] [j] dengan larik BB [i] [j].Baris 19 adalah return hasil; yang berfungsi untukmengembalikan hasil operasi ke method tambah.Baris 21 adalah deklarasi method tampilData(float data [] [], charnama)dengan parameter larik. Baris 22 merupakan perulangan for (i=0; i<3; i++) denganargument-argument variable i. Baris 23  merupakan perulangan for (j=0; j<3;j++) denganargument-argument variable j. Baris 24 merupakanpernyataan System.out.print(nama+”[“+(i+1)+”][“+(j+1)+”] : “+data [i] [j]+ ” “); untukmenampilkan hasil perulangan for. Baris 28 merupakan deklarasi dari method main  yang bertipe static. Baris 29 sampai 31adalah deklarasi larik A, larik B, larik C serta penciptaan baris 3 dan kolom3. Baris 32 adalah deklarasi paket masukkan method JumlahMatriks()dengan nama obyek jumlah. Baris 33 dan 34merupakan pernyataan masukkan untuk data larik A. Baris 35 dan 36 adalahpernyataan masukkan untuk data larik B. Baris 37 dan 38 adalah pernyataanmasukkan untuk data larik C.
C.  TUGAS
Buatsebuah program dengan larik untuk menyimpan 10 data mahasiswa yaitu berupa NIM,nama, jurusan
Program:
importjava.util.Scanner;
publicclass LarikJawab{
publicstatic void main(String[]args){
Scannerdata=new Scanner (System.in);
Stringmahasiswa[][];
mahasiswa=newString[10][3];
     for(int i=0;i<10;i++){
     System.out.print(“Masukkan nomormahasiswa: “);
     mahasiswa[i][0]=data.nextLine();
     System.out.print(“Masukkan namamahasiswa: “);
     mahasiswa[i][1]=data.nextLine();
     System.out.print(“Masukkan jurusanmahasiswa: “);
     mahasiswa[i][2]=data.nextLine();
     }
          for (int i=0;i<10;i++){
              System.out.print(“”);
              System.out.println(“NomorNama Jurusan”);
              System.out.print(mahasiswa[i][0]+” “);
              System.out.print(mahasiswa[i][1]+” “);
              System.out.println(mahasiswa[i][2]+” “);
          }
     }
}
Hasiloutput program :
Buatprogram 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 [] [], floatBB [] [], 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 [] [], charnama, 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 danbaris B: “);
int ka = input.nextInt();
System.out.println(“Masukkan data matriksA”);
ping.masukData(A, ba, ka);
System.out.println(“Masukkan data matriksB”);
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 larikyang berindeks lebih dari satu. Kita dapat membayangkan larik dua dimensitersebut 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