Anda di halaman 1dari 12

Dasar Pemrograman Komputer

JOBSHEET 10 ARRAY (LARIK)


10.1.

Tujuan Instruksional Khusus

Pada akhir bagian ini mahasiswa diharapkan mampu untuk : 1. 2. 3. Mendeklarasikan dan membuat array Mengakses elemen-elemen didalam array Menentukan jumlah element didalam sebuah array
10.2.3.

Teori Pendahuluan

Dibagian sebelumnya, kita telah mendiskusikan bagaimana cara pendeklarasian berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau identifier yang unik, dimana untuk menggunakan variabel tersebut, kita akan memanggil dengan nama identifier-nya. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel. int number1; int number2; int number3; number1 = 1; number2 = 2; number3 = 3; Di Java maupun di bahasa pemrograman yang lain, mereka memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai array.

Gambar 3.1 Contoh dari interger array Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa slot. Bayangkanlah array adalah sebuah variabel sebuah lokasi memori tertentu yang

Jobsheet 10

Halaman 157

Dasar Pemrograman Komputer


memiliki satu nama sebagai identifier, akan tetapi ia dapat menyimpan lebih dari sebuah value. 10.3. Deklarasi Array Array harus dideklarasikan seperti layaknya sebuah variabel dengan contoh sebagai berikut:
int[] ages;

atau dapat juga dibuat seperti berikut :


int ages[];

Setelah pendeklarasian dilanjutkan dengan menentukan berapa panjangnya dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation ( Kata dalam Java yang berarti membuat ). Untuk meng-instantiate sebuah obyek, kita membutuhkan sebuah konstruktor. Kita akan membicarakan lagi mengenai instantiate obyek dan pembuatan konstruktor pada bagian selanjutnya. Perlu dicatat, bahwa ukuran dari array tidak dapat diubah setelah Anda menginisialisasinya. Sebagai contoh,
int[] ages; ages = new int[100];

atau bisa juga ditulis dengan,


int[] ages = new int[100];

Gambar 3.2 Single dimensi Array Pada contoh diatas, deklarasi akan memberitahukan kepada compiler Java, bahwa identifier ages akan digunakan sebagai nama array yang berisi data-data integer, dan
Jobsheet 10 Halaman 158

Dasar Pemrograman Komputer


kemudian untuk membuat atau meng-instantiate sebuah array baru yang terdiri dari 100 elemen. Selain menggunakan sebuah keyword baru untuk meng-instantiate array, array juga dapat dibuat dengan memberikan sebuah value. Sebagai contoh,
1. Membuat sebuah array yang berisi variabel-variabel //boolean pada sebuah

identifier. Array ini terdiri dari 4 elemen yang diinisilisasikan sebagai value {true,false,true,false} boolean results[] ={ true, false, true, false }; 2. Membuat sebuah array yang terdiri dari penginisialisasian 4 variabel double bagi value {100,90,80,75} double []grades = {100, 90, 80, 75}; 3. Membuat sebuah array String dengan identifier days. Array ini terdiri dari 7 elemen. String days[] = { Mon, Tue, Wed, Thu, Fri, Sat, Sun};

10.2.2. Pengaksesan Sebuah Elemen Array Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, harus menggunakan sebuah nomor index atau subscript. Sebuah nomor index atau subscript telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap value apabila dibutuhkan. Index selalu dalam integer. Dimulai dari nol, kemudian akan terus bertambah sampai list value dari array tersebut berakhir. Perlu dicatat, bahwa elemen-elemen didalam array dimulai dari 0 sampai dengan (ukuranArray-1). Sebagai contoh, pada array yang kita deklarasikan tadi, kita mempunyai,
1. Memberikan nilai 10 kepada elemen pertama array

ages[0] = 10;
2. Mencetak elemen array yang terakhir

System.out.print(ages[99]); Perlu diperhatikan bahwa sekali array dideklarasikan dan dikonstruksi, nilai yang disimpan dalam setiap anggota array akan diinisialisasi sebagai nol. Oleh karena itu, apabila menggunakan tipe data reference seperti String, tidak akan diinisalisasi ke string

Jobsheet 10

Halaman 159

Dasar Pemrograman Komputer


kosong . Berikut ini adalah contoh, bagaimana untuk mencetak seluruh elemen didalam array. Dalam contoh ini digunakanlah loop, sehingga kode kita menjadi lebih pendek.
public class ArraySample { public static void main( String[] args ) { int[] ages = new int[100]; for( int i=0; i<100; i++ ) { System.out.print( ages[i] ); } } }

Untuk mengetahui berapa banyak element didalam sebuah array, dapat digunakan length (panjang) field dalam array. Panjang field dalam array akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh, arrayName.length Contoh program yang menggunakan length.
public class ArraySample { public static void main( String[] args ) { int[] ages = new int[100]; for( int i=0; i<ages.length ; i++ ) { System.out.print( ages[i] ); } } }

10.2.3.

Array Multidimensi Array multidimensi diimplementasikan sebagai array didalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh, 1. Elemen 512 x 128 dari integer array int[][] twoD = new int[512][128];
2. Karakter array 8 x 16 x 24

char[][][] threeD = new char[8][16][24]; 3. String array 4 baris x 2 kolom


Jobsheet 10 Halaman 160

Dasar Pemrograman Komputer


String[][] dogs = {{ "terry", "brown" }, { "Kristin", "white" }, { "toby", "gray"}, { "fido", "black"} }; Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses element pertama dari baris pertama didalam array dogs, kita akan menulis,
System.out.print( dogs[0][0] );

Kode diatas akan mencetak String terry di layar. 10.3. Peralatan dan Bahan 1. Komputer dengan konfigurasi minimal a. Prosesor P-II atau yang lebih tinggi b. RAM minimal 32 MB c. Free space hardisk minimal 200 MB d. Windows 98) 2. Software J2SE dan JCreator 10.4. Langkah Kerja
1.

Buat program dibawah ini dengan nama Prog31,java /* Prog31 : Contoh pemakaian array berdimensi satu Untuk menghitung nilai rata-rata siswa */ import javax.swing.*; import java.io.DataInputStream; class Prog31 { public static void main(String[] args) throws Exception { DataInputStream dis = new DataInputStream (System.in); int i; int MAKS_TES = 5; String tampil=""; float total_nilai, rerata; float[] nilai_tes = new float[MAKS_TES]; System.out.print("Masukkan data nilai anda ? \n");

Jobsheet 10

Halaman 161

Dasar Pemrograman Komputer


for (i=0;i<MAKS_TES; i++) { System.out.print("Nilai test ke-"+(i+1) +":"); String input = dis.readLine(); nilai_tes[i]=Integer.parseInt(input); tampil += "Nilai tes ke-"+(i+1)+":"+input+"\n"; } total_nilai=0; for (i=0;i<MAKS_TES;i++) { total_nilai += nilai_tes[i]; } rerata = total_nilai/MAKS_TES; tampil += "Nilai rata-rata = "+rerata; JOptionPane.showMessageDialog(null,tampil,"Data dalam array", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } Simpanlah dalam file Prog31.java, kemudian lakukan kompilasi dan run. 2. Buat program dibawah ini dengan nama Prog32,java

/* Prog32 : Contoh array berdimensi satu untuk memperoleh jumlah hari suatu bulan */ import java.io.*; import javax.swing.*; public class Prog32 { public static void main(String[] args) throws Exception { DataInputStream dis = new DataInputStream (System.in); int bulan, tahun, jhari; String ulang=""; String nama_bln=""; int[] jum_hari = {31,28,31,30,31,30,31,31,30,31,30,31}; //lagi; System.out.println("--------------------------------------------------"); System.out.println(" Menentukan jumlah hari dari bulan ");
Jobsheet 10 Halaman 162

Dasar Pemrograman Komputer


System.out.println("--------------------------------------------------"); System.out.println("1=Januari 2=Februari 3=Maret 4=April "); System.out.println("5=Mei 6=Juni 7=Juli 8=Agustus "); System.out.println("9=September 10=Oktober 11=November 12= Desember"); System.out.println("--------------------------------------------------"); System.out.println("Masukkan bulan (1..12) ? "); String inbl = dis.readLine(); bulan=Integer.parseInt(inbl); System.out.print("Masukkan tahun ?"); String inth = dis.readLine(); tahun=Integer.parseInt(inth); switch(bulan) { case 1 : nama_bln="Januari"; break; case 2 : nama_bln="Februari"; break; case 3 : nama_bln="Maret"; break; case 4 : nama_bln="April"; break; case 5 : nama_bln="Mei"; break; case 6 : nama_bln="Juni"; break; case 7 : nama_bln="Juli"; break; case 8 : nama_bln="Agustus"; break; case 9 : nama_bln="September"; break; case 10 : nama_bln="Oktober"; break; case 11 : nama_bln="November"; break; case 12 : nama_bln="Desember"; break; default : nama_bln="Data yang anda pilih salah "; } if (bulan==2) if ((tahun % 4 == 0) && (tahun % 100 != 0)) jhari=29; else jhari=28; else jhari=jum_hari[bulan-1];
Jobsheet 10 Halaman 163

Dasar Pemrograman Komputer


System.out.println("\nJumlah hari dalam bulan "+nama_bln +" tahun " +tahun +" adalah " +jhari +"\n\n"); System.exit(0); } } Simpanlah dalam file Prog14.java, kemudian lakukan kompilasi dan run. 3. Buat program dibawah ini dengan nama Prog33,java /* Prog33 : Contoh penggunaan array berdimensi dua Untuk menghapus elemen array */ import java.io.*; public class Prog33 { public static void main(String[] args) throws Exception { DataInputStream entry = new DataInputStream (System.in); try { String array=""; String array2=""; int[] angka = new int[15]; array += "Data Matrix mula-mula \n"; array += "============================================================ ========\n"; // inisialisasi array for (int i=0;i<angka.length;i++) { angka[i]=(int)(Math.random()*100); array += angka[i]+""; } // Tampilkan data awal System.out.print(array+"\n\n"); // Menghapus data System.out.print("\nKetikkan data yang "+"akan dihapus :"); int cari = Integer.parseInt(entry.readLine()); int ada = 0; for (int i=0;(i<angka.length)&&(ada==0);i++ )
Jobsheet 10 Halaman 164

Dasar Pemrograman Komputer


if(angka[i]==cari) ada++; if(ada==0) System.out.print("\nData tidak ditemukan\n\n"); else { //menyalin variabel bantu int[] bantu = new int[angka.length-1]; int cacah = 0; for (int i=0;i<angka.length;i++) if (angka[i]!=cari) { bantu[cacah] = angka[i]; cacah++; } // Mengatur ulang jumlah elemen sumber array2 += "\n\n Data Matric Terakhir\n "; array2 += "============================================================ =====\n"; for (int i=0;i<bantu.length ;i++) { angka[i]= bantu[i]; array2 += bantu[i]+""; } // tampilkan data terakhir System.out.print(array2+"\n\n"); } } catch(Exception e) { System.out.print("\n\nMaaf anda mengetikkan data \n\n"); } } } 4. Buat program dibawah ini dengan nama Prog34,java

/* Prog34 : Contoh program untuk array berdimensi dua Untuk menjumlahkan dua buah array */ import java.io.*; import javax.swing.*; public class Prog34
Jobsheet 10 Halaman 165

Dasar Pemrograman Komputer


{ public static void main(String[] args) throws Exception { DataInputStream dis = new DataInputStream (System.in); int i, j ; int maks_kolom = 5; int maks_baris = 5; String matriks =""; int jum_kolom, jum_baris; int[][] math1 = new int[maks_baris][maks_kolom]; int[][] math2 = new int[maks_baris][maks_kolom]; int[][] math_hasil = new int[maks_baris][maks_kolom]; System.out.println("--------------------------------------------------------"); System.out.println(" Operasi penjumlahan dua buah matrix "); System.out.println("--------------------------------------------------------"); System.out.print("Banyak baris dari elemen matrix (1 - "+maks_baris+") : "); String input = dis.readLine(); jum_baris = Integer.parseInt(input); System.out.print("Banyak kolom dari elemen matrix (1 "+maks_kolom+") : "); String input2 = dis.readLine(); jum_kolom = Integer.parseInt(input2); System.out.print("\nData Matrix 1\n"); matriks += "\nData Matrix 1\n"; matriks += "---------------------\n"; for (i=0;i<jum_baris;i++) { for (j=0;j<jum_kolom;j++) { System.out.print("Data baris "+(i+1) +" kolom "+(j+1)+" : "); String inp1 = dis.readLine(); math1[i][j] = Integer.parseInt(inp1); matriks += math1[i][j]+" "; } matriks += "\n"; } System.out.print("\nData Matrix 2 \n"); matriks += "\nData Matrix 2\n"; matriks += "---------------------\n"; for (i=0;i<jum_baris;i++) { for (j=0;j<jum_kolom;j++)
Jobsheet 10 Halaman 166

Dasar Pemrograman Komputer


{ System.out.print("Data baris "+(i+1) +" kolom "+(j+1)+" : "); String inp2 = dis.readLine(); math2[i][j] = Integer.parseInt(inp2); matriks += math2[i][j]+" "; } matriks += "\n"; } // Penjumlahan dua buah matrix matriks += "\nPenjumlahan dua Matrix \n"; matriks += "---------------------\n"; for (i=0;i<jum_baris;i++) { for (j=0;j<jum_kolom;j++) { math_hasil[i][j] = math1[i][j] + math2[1][2]; matriks += math_hasil[i][j] + " "; } matriks += "\n"; } JOptionPane.showMessageDialog(null, matriks, "Data Dalam Array", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } 10.5. Lembar Kerja No Nama File Hasil KEluaran

10.6. Pertanyaan dan Tugas 1. Buatlah sebuah String array yang akan menginisialisasi 7 hari dalam seminggu. Sebagai contoh, String days[] = {Monday, Tuesday.}; Gunakan while-loop, kemudian print semua nilai dari array (Gunakan juga untuk dowhile dan for-loop).

Jobsheet 10

Halaman 167

Dasar Pemrograman Komputer


2. Gunakanlah BufferedReader dan JoptionPane, tanyakan kepada user untuk 10 nomor. Kemudian gunakan array untuk menyimpan 10 nomor tersebut. Tampilkan kepada user, input terbesar yang telah diberikan user. 3. Buatlah program java dengan menggunakan array untuk menghitung nilai rata-rata dari 5 orang mahasiswa. Nilai rata-rata berasal dari 25% nilai tugas1 ditambah 25% nilai tugas2 dan 50% nilai ujian ?

Jobsheet 10

Halaman 168

Anda mungkin juga menyukai