Materi kuliah ARRAY, SORTING & SEARCHING Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengertian Array (1/3) Merupakan tipe data terstruktur yang memiliki suatu nilai variabel yang menyimpan data bertipe sama & dapat lebih dari satu nilai yang sama serta memiliki index. Tipe data dapat berupa data sederhana & komposit. Pengelompokkan informasi yang berhubungan. Elemen-elemen Array M S S R K J 0 1 2 3 4 5 S 6 Indeks Array Array NamaHari Hand-out: Array IS1313-05 Hal. 1 2
Pengertian Array (2/3) Komponen array Elemen array, index array & nilai elemen array Elemen array setiap nilai yang tersimpan di dalam array. Setiap elemen diakses langsung dengan index. Index array harus tipe data yang menyatakan keterurutan. Banyaknya elemen array harus sudah diketahui sebelum program dieksekusi struktur data statik. Di dalam Java, array merupakan sebuah obyek & dibuat dengan perintah new. Hand-out: Array IS1313-05 Hal. 2 3 Pengertian Array (3/3) Bentuk umum: //Deklarasi data_type [] array_identifier; atau data_type array_identifier []; //Instansiasi array_identifier = new data_type [lenght]; //Inisialisasi array_identifier[index] = value;... Hand-out: Array IS1313-05 Hal. 3 4
Mengapa harus array? (1/2) String NamaHari [0] = Minggu ; String NamaHari [1] = Senin ; String NamaHari [2] = Selasa ; String NamaHari [3] = Rabu ; String NamaHari [4] = Kamis ; String NamaHari [5] = Jumat ; String NamaHari [6] = Minggu ; String NamaHari [] = { Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ; Hand-out: Array IS1313-05 Hal. 4 5 Mengapa harus array? (2/2) NamaHari Minggu [0] Senin [1] Selasa [2] Rabu [3] Kamis [4] Jumat [5] Sabtu [6] Length = 7 Array object Hand-out: Array IS1313-05 Hal. 5 6
Contoh Array public class Array1D1 { public static void main(string args[]){ String NamaHari[]; NamaHari = new String[7]; NamaHari[0] = "Minggu"; NamaHari[1] = "Senin"; NamaHari[2] = "Selasa"; NamaHari[3] = "Rabu"; NamaHari[4] = "Kamis"; NamaHari[5] = "Jumat"; NamaHari[6] = "Sabtu"; System.out.println("Hari ke 4 adalah "+ NamaHari[4]); public class Array1D2 { public static void main(string args[]){ String NamaHari[]; NamaHari = new String[]{"Minggu","Senin","Selasa", Rabu, "Kamis","Jumat","Sabtu"; System.out.println("Hari ke 0 adalah "+ NamaHari[0]); Hand-out: Array IS1313-05 Hal. 6 7 Array Multidimensi (1/3) Selain array berdimesi satu, terdapat juga array berdimensi dua & berdimensi tiga Array Multidimensi. Merupakan Array dari Array. Array berdimensi dua memiliki dua buah elemen yang dapat direpresentasikan dengan baris (row) & kolom (column). Bentuk umum: data_type [][] array_identifier; atau data_type array_identifier [][]; Contoh: int A [ ] [ ] = {{1,2,{3,4; Hand-out: Array IS1313-05 Hal. 7 8
.................. Array Multidimensi (2/3) Index 0,0 35 5 89 2... 3 Index 0,n 83 22 56 41... 49 54 9 16 77... 59 Index m,0 63 88 30 1... 23 Index m,n Hand-out: Array IS1313-05 Hal. 8 9 Array Multidimensi (3/3) Quiz UTS UAS Alex 75 62 77 Boni 50 60 80 Cepi 83 58 67 Dono 74 90 81 public class Array2D1 { public static void main(string args[]){ String nama[]={"alex", "Boni", "Cepi", "Dono"; int quiz[]={75,50,83,74,uts[]={62,60,58,90, uas[]={77,80,67,81; for (int i=0; i<4; i++) { System.out.print("Nilai "+nama[i]+" = "); System.out.println(quiz[i]+","+uts[i]+","+uas[i]); Hand-out: Array IS1313-05 Hal. 9 10
Contoh public class Array2D2 { public static void main(string args[]){ int Array2D[][] = new int[9][10]; int k=10; for (int i=0;i<9;i++) { for (int j=0;j<10;j++){ Array2D[i][j] = k++; for (int i=0;i<9;i++) { for (int j=0;j<10;j++){ System.out.print(Array2D[i][j] + " "); Hand-out: Array IS1313-05 Hal. 10 11 Pengurutan dalam Array Merupakan proses pengurutan data (data sorting) yang sebelumnya teracak, agar tersusun secara teratur sesuai aturan tertentu. Terdapat beberapa metoda pengurutan data array pada pemrograman. Metoda pengurutan yang biasa digunakan antara lain bubble-sort, max/min sort, insertion sort, selection sort, merge sort & quick sort sorting sorting Hand-out: Array IS1313-05 Hal. 11 12
Contoh 1 import java.util.*; public class sort1 { public static void main(string[] args) { int angka [] = new int[]{9,3,7,4,2; System.out.print("Array asli (1) : "); for(int index=0; index < angka.length ; index++) System.out.print(" " + angka[index]); Arrays.sort(angka); System.out.print("Array terurut : "); for(int index=0; index < angka.length ; index++) System.out.print(" " + angka[index]); int angka2 []= new int[]{8,5,7,1,3; System.out.print("Array asli (2) : "); for(int index=0; index < angka.length ; index++) System.out.print(" " + angka2[index]); Arrays.sort(angka2,1,4); System.out.print("Array terurut parsial: "); for(int index=0; index < angka2.length ; index++) System.out.print(" " + angka2[index]); Hand-out: Array IS1313-05 Hal. 12 13 Contoh 2 import java.io.*; import java.util.scanner; public class bubble1 { public static void main(string[] args)throws Exception { BufferedReader nama = new BufferedReader(new InputStreamReader(System.in)); int a; System.out.print("Jumlah peserta pertandingan: "); a = Integer.parseInt(nama.readLine()); String[] Array = new String[a]; String temp; Scanner input = new Scanner(System.in); for (int i=0; i<a; i++) { System.out.print("Nama peserta " + (i+1) + ": "); Array[i] = input.next(); for (int x=1; x<a; x++) { for (int y=0; y<a-x; y++){ if (Array[y].compareTo(Array[y+1])>0){ temp=array[y]; Array[y]=Array[y+1]; Array[y+1]=temp; System.out.println(""); System.out.println("Hasil berdasarkan urutan adalah:"); for (int i=0; i<a; i++){ System.out.println((i+1) + ". " + Array[i]); Hand-out: Array IS1313-05 Hal. 13 14
Pencarian data pada array Data seringkali dibutuhkan dalam pembacaan kembali informasi (retrieval information). Pencarian/searching merupakan cara untuk mendapat data dimaksud dengan cara menelusuri data-data tersebut. Pencarian elemen data pada Java terbagi atas: Linier / sequential searching melakukan pengujian setiap item. digunakan pada data yang masih acak & berurut. Binary searching dengan membagi dua data : (N+1) div 2 digunakan pada data yang berurut Hand-out: Array IS1313-05 Hal. 14 15 Contoh import java.util.*; public class search0 { public static void main(string[] args) { Scanner s = new Scanner(System.in); int [] x = new int[5]; for(int j=0; j<5; j++){ System.out.print("Data " + (j+1) + ": "); x[j] = s.nextint(); for (int i=0; i<=4; i++) System.out.print(x[i]); int cari; System.out.print("Data yang dicari = "); cari = s.nextint(); int k; for(k=0; k<5; k++) if (cari == x[k]){ System.out.println(">>> Data ditemukan <<<"); break; if (k == 5) System.out.println(">>>Data tidak ditemukan <<<"); Hand-out: Array IS1313-05 Hal. 15 16
Selesai 17