Materi kuliah
ARRAY, SORTING & SEARCHING
Ir. Roedi Goernida, MT. (
[email protected])
Program Studi Sistem Informasi – Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 1
2011
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
0
1
S 2
R
K
3
4
J
S 5
6
Indeks Array
Array NamaHari 2 Hand-out: Array
IS1313 - 05
Hal. 1
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”. 3
Hand-out: Array
IS1313 - 05
Hal. 2
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;
................
4 Hand-out: Array
IS1313 - 05
Hal. 3
Mengapa harus array? (1/2)
String String String String String String String
NamaHari NamaHari NamaHari NamaHari NamaHari NamaHari NamaHari
[0] [1] [2] [3] [4] [5] [6]
= = = = = = =
“Minggu”; “Senin”; “Selasa”; “Rabu”; “Kamis”; “Jumat”; “Minggu”;
String NamaHari [] = {“Minggu”, “Senin”, “Selasa”, “Rabu”, “Kamis”, “Jumat”, “Sabtu”}; 5 Hand-out: Array
IS1313 - 05
Hal. 4
Mengapa harus array? (2/2)
NamaHari
Minggu
[0]
Senin
[1]
Selasa
[2]
Rabu
[3]
Kamis
[4]
Jumat
[5]
Sabtu
[6]
Length = 7
Array object 6 Hand-out: Array
IS1313 - 05
Hal. 5
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]); } } 7 Hand-out: Array
IS1313 - 05
Hal. 6
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}}; 8 Hand-out: Array
IS1313 - 05
Hal. 7
Array Multidimensi (2/3) Index 0,0
5
89
2
...........
3
83
22
56
41
...........
49
54
9
16
77
...........
59
......
......
......
.... .... .
63
88
30
1
...........
..
Index 0,n
......
......
Index m,0
35
23
Index m,n
9 Hand-out: Array
IS1313 - 05
Hal. 8
Array Multidimensi (3/3)
Alex Boni Cepi Dono
Quiz 75 50 83 74
UTS 62 60 58 90
UAS 77 80 67 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]); } } } 10 Hand-out: Array
IS1313 - 05
Hal. 9
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] + " "); } System.out.println(); } } } 11 Hand-out: Array
IS1313 - 05
Hal. 10
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
12 Hand-out: Array
IS1313 - 05
Hal. 11
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.println(); System.out.print("Array terurut : "); for(int index=0; index < angka.length ; index++) System.out.print(" " + angka[index]); System.out.println(); 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.println(); System.out.print("Array terurut parsial: "); for(int index=0; index < angka2.length ; index++) System.out.print(" " + angka2[index]); System.out.println(); }} 13 Hand-out: Array
IS1313 - 05
Hal. 12
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
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
IS1313 - 05
Hal. 13
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 15
Hand-out: Array
IS1313 - 05
Hal. 14
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]); System.out.println(); 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 <<<"); }} 16 Hand-out: Array
IS1313 - 05
Hal. 15
Selesai
17