Array (Sorting Dan Searching) - Just For Shared
Array (Sorting Dan Searching) - Just For Shared
Sejarah bukan hanya rangkaian cerita, ada banyak pelajaran, kebanggan dan harta didalamnya.
stay updated via rss
Array adalah suatu type data yang mampu diisi dengan lebih dari satu nilai. Dan untuk
pengaksesan nilai pada array ini digunakan indeks atau berdasarkan letak nilai tersebut pada array.
Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat zendeklarasikan array, anda
harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti
oleh
int []usia;
atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai contoh,
int usia[];
Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa panjangnya dengan
sebuah konstruktor. Proses ini di Java disebut sebagai instantiation (istilah dalam Java yang berarti
membuat). Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda
menginisialisasinya. Sebagai contoh,
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 1/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Selain menggunakan sebuah pernyataan new untuk menginstantiate array, Anda juga dapat
mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah
pernyataan. Sebagai contoh,
Yaitu array yang hanya mempunyai 1 baris yang didalamnya terdapat data yang mempunyai
type sama. Atau dapat diartikan sejumlah data yang ditampung oleh suatu variable yang mempunyai
type yang sama dalam satu baris dan satu kolom.
Contoh
double nilai = 0;
System.out.println(“+——-+——-+——-+——-+—————+”);
System.out.println(“+——-+——-+——-+——-+—————+”);
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 2/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
System.out.println(nilai + “\t\t|”);
System.out.println(“+——-+——-+——-+——-+—————+”);
Output
E:\>javac array1dimensi.java
E:\>java array1dimensi
+——-+——-+——-+——-+—————+
+——-+——-+——-+——-+—————+
+——-+——-+——-+——-+—————+
2. Array Multidimensi
Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array
multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai
contoh,
// karakter array 8 x 16 x 24
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 3/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
“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( c[0][0] );
Contoh :
int[][] A={{3,7,5},{2,8,6}};
for(int i=0;i<A.length;i++)
for(int j=0;j<A[0].length;j++)
System.out.print(A[i][j]+” “);
System.out.println();
jm.cetak();
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 4/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Output
E:\>javac array1dimensi.java
E:\>java array1dimensi
Matrik A:
375
286
Operasi Array
1 Penjumlahan
Contoh
//menampilkan matriks m :
System.out.println(“matriks m :”);
System.out.print(m[i][j] +” “);
System.out.println();
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 5/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
//menampilkan matriks n :
System.out.println(“matriks n :”);
System.out.print(n[i][j] +” “);
System.out.println();
//hasil [m+n] :
System.out.print(m[i][j]+n[i][j] +” “);
System.out.println();
Output
E:\>javac penjumlahanmatrik.java
E:\>java penjumlahanmatrik
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 6/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
matriks m :
matriks n :
penjumlahan m+n :
2. Perkalian
Contoh
import javax.swing.*;
int barisA=0;
int kolomA=0;
int barisB=0;
int kolomB=0;
barisB = kolomA;
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 7/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
matriksA[x][y] = (int)(Math.random()*100);
matriksB[x][y] = (int)(Math.random()*100);
matriksC[x][y] = 0;
System.out.println(“Matriks A”);
System.out.println(“———“);
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 8/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
System.out.print(matriksA[x][y] + ” “);
System.out.println();
System.out.println();
System.out.println(“Matriks B”);
System.out.println(“———“);
System.out.print(matriksB[x][y] + ” “);
System.out.println();
System.out.println();
System.out.println(“matriks A x B”);
System.out.println(“————-“);
System.out.print(matriksC[x][y] + ” “);
System.out.println();
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 9/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Output
E:\>javac perkalianmatrik.java
E:\>java p perkalianmatrik
Matriks A
———
97 76 0
31 39 90
Matriks B
———
40 69
90 10
48 70
matriks A x B
————-
10720 7453
9070 8829
Sorting
Sorting adalah sebuah metode untuk pengurutan data, misalnya dari data yang terbesar ke data
yang terkecil. Dengan cara program yang dibuat harus dapat membandingkan antar data yang di
inputkan.
Artinya jika ada deretan data, maka data yang pertama akan membandingkan dengan data yang kedua.
Jika data yang pertama lebih besar dari pada data yang kedua maka data yang pertama akan bertukar
posisi dengan data yang kedua, begitu seterusnya sampai benar-benar data terurut dari yang terbesar
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 10/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Metode sorting sangat banyak dan berkembang ada Bubble sort, Selection Sort, Insertion sort, Merge
sort, Quick sort. Metode-metode ini menggunakan caranya sendiri untuk membandingkan, memeriksa
dan menukar posisi data. Namun tidak semua metode sorting ini efektif. Karena metode sorting yang
paling efektif adalah ketika metode tersebut dapat melakukan pengurutan data dengan cepat dan tidak
memerlukan banyak memori.
1. Bubble Sort
Bubble sort (metode gelembung) adalah metode atau algoritma pengurutan dengan cara melakukan
penukaran data dengan tempat disebelahnya jika data sebelum lebih besar dari pada data sesudahnya
secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan, atau
telah terurut dengan benar.Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan
gelembung karena masing-masing kunci atau data akan dengan lambat menggelembung atau
membandingan data ke posisinya yang tepat.
Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita
pelajari, metode ini merupakan metode yang paling tidak efisien karena memiliki banyak pertukara
sehingga memerlukan pengalokasian memori yang besar untuk menjalankan metode ini.
Contoh :
int[] data={21,13,36,12,18,9,59,24};
data[inter + 1] = temp;
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 11/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
System.out.print(data[i]+” “);
Output
E:\>javac BubbleSort.java
E:\>java BubbleSort
9 12 13 18 21 24 36 59
2. Selection Sort
Selection Sort berbeda dengan Bubble sort. Selection Sort pada dasarnya memilih data yang akan
diurutkan menjadi dua bagian, yaitu bagaian yang sudah diurutkan dan bagian yang belum di urutkan.
Langkah pertama dicari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil
ditukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil
dibanding data yang lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir.
Data terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua
elemen dalam keadaan terurutkan. Metode ini lebih efektif dari pada metode bubble karena tidak
memerlukan banyak pertukaran dan pengalokasian memori.
Contoh :
int[] x = {15, 100, 136, 12, 18,19, 59, 24, 10, 191};
int i, temp, j;
for(i=0;i<x.length-1;i++){
for(j=i+1;j<x.length;j++){
if(x[i]>x[j]){
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 12/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
temp = x[i];
x[i] = x[j];
x[j] = temp;
System.out.print(x[i1]+” “);
Output
E:\>javac selectionSort.java
E:\>java selectionSort
9 12 13 18 21 24 36 59
3. Insertion Sort
Salah satu algoritma sorting yang paling sederhana adalah insertion sort. Ide dari algoritma ini
dapat dianalogikan seperti mengurutkan kartu. Selain algoritma pengurutan Selection Sort, Bubble Sort,
Merge Sort dan Quick Sort yang telah kita pelajari beberapa waktu yang lalu, masih ada yang lain.
Algoritma Insertion Sort, sekilas algoritma ini tidak jauh berbeda dengan Bubble Sort, namun
sesungguhnya berbeda.
Konsep dasarnya yaitu : “Menyisipkan sebuah angka ke posisi yang diinginkan. Angka yang disisipkan
sesuai dengan urutan iterasinya. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N”.
Contoh :
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 13/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
System.out.println(“sebelum diurutkan:”);
System.out.println(“——————“);
data[index] = (int)(Math.random()*100);
[index]);
int min = i;
int in = 0;
int temp = 0;
temp = data[i];
in = i;
data[in]=data[in-1];
System.out.println(” “);
System.out.println(“setelah diurutkan:”);
System.out.println(“——————“);
[index]);
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 14/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Output
E:\>javac insertion_sort.java
E:\>java insertion_sort
sebelum diurutkan:
——————
data[0]=20
data[1]=2
data[2]=43
data[3]=75
data[4]=42
setelah diurutkan:
——————
data[0]=2
data[1]=20
data[2]=42
data[3]=43
data[4]=75
4. Merge Sort
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi
kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam
memori komputer karena jumlahnya yang terlalu besar. Algoritma ini ditemukan oleh John von
Neumann pada tahun 1945.
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 15/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Prinsip utama yang diimplementasikan pada algoritma merge-sort seringkali disebut sebagai pecah-
belah dan taklukkan (bahasa Inggris: divide and conquer). Cara kerja algoritma merge sort adalah
membagi larik data yang diberikan menjadi dua bagian yang lebih kecil. Kedua larik yang baru tersebut
kemudian akan diurutkan secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk larik
baru sebagai hasil penggabungan dari dua buah larik sebelumnya. Menurut keefektifannya, alogaritma
ini bekerja dengan tingkat keefektifan O(nlog(n)).
Contoh :
import java.util.*;
int[] list = {14, 32, 67, 76, 23, 41, 58, 85};
System.out.println(“Sebelum: ” + Arrays.toString(list));
mergeSort(list);
System.out.println(“Sesudah: ” + Arrays.toString(list));
if (array.length > 1) {
mergeSort(left);
mergeSort(right);
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 16/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
left[i] = array[i];
return left;
Output
E:\>javac MergeSort.java
E:\>java MergeSort
5. Quick Sort
Quicksort merupakan salah satu metode pengurutan data yang tercepat. Metode ini sebenarnya dapat
dilakukan terhadap kumpulan data yang dikumpulkan di array maupun linkelist, namun saya akan
memberikan ilmu saya yang sedikit dari pengurutan data pada linkedlist melalui metode ini.
Logikanya adalah pada awalnya kita akan memilih pivot sebagai data yang hendak kita pindahkan
posisinya, pada program saya saya mengambil data pertama. Kemudian urut dari kanan ke kiri kita
mencari nilai yang lebih kecil dari data pivot untuk kita tukar posisinya dengan pivot, kemudian urut
dari kiri ke kanan kita cari nilai yang lebih besar dari pivot untuk kita tukar dengan pivot, terus kita
lakukan hingga tidak ada lagi yang lebih kecil di sebelah kiri pivot dan lebih besar di sebelah kanan
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 17/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
pivot. Kemudian dari pivot itu kita bagi dua kumpulan data tersebut menjadi sebelah kiri pivot dan
sebelah kanan pivot, untuk kemudian kita lakukan hal serupa dengan kumpulan data sebelumnya yang
merupakan gabungan dua kumpulan data tersebut.
Logikanya memang sedikit rumit. Perulangan yang dilakukan tidak dapat dilakukan dengan
perulangan biasa sehingga menggunakan metode rekursif yang akan berhenti apabila data telah urut.
Searching
1 Binary Search
– Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan
data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
– Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang
sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan
data tidak ditemukan).
– Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan
terurut menaik.
Contoh :
array[0] = 25;
array[1] = 30;
array[2] = 35;
array[3] = 40;
array[4] = 45;
int batasBawah = 0;
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 18/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
System.out.print(array[index] + ” “);
System.out.println(“”);
while(belumKetemu) {
if (array[posisiSekarang] == cari) {
belumKetemu=false;
System.out.println(cari + ” ditemukan” );
break;
else {
batasBawah = posisiSekarang + 1;
} else {
batasAtas = posisiSekarang-1;
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 19/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Output :
E:\>javac binary_search.java
E:\>java binary_search
25 30 35 40 45
30 ditemukan
2. Linear Search
Linear search adalah program search yang paling sederhana dan mudah dipahami, linear search
memiliki kelebihan apa bila data yang di cari letaknya pada data – data awal sehingga prosesnya
berjalan cepat. namun buble search mempunyai kelemahan apabila data yang di cari letaknya pada data
terakhir maka dalam penggunaan waktu dalam proses pencarian akan berjalan lama. hal ini di sebabkan
karna ia mecari dengan cara membandingakan dengan sebelahnya dan selanjutnya sampai data
terakhir, sehingga jika jumlah data mencapai ribuan atau jutaan akan memerlukan waktu yang lama.
Untuk lebih jelasnya lebih baik teman – teman prkatekan sendiri, untuk sriptnya lihat di bawah :
array[0] = 10;
array[1] = 25;
array[2] = 15;
array[3] = 35;
array[4] = 5;
System.out.print(array[index] + ” “);
System.out.println(“”);
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 20/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
if(array[index] == cari){
ketemu = true;
break;
if(ketemu == true) {
System.out.println(cari + ” ditemukan”);
} else {
Output
E:\>javac linear_search.java
E:\>java linear_search
10 25 15 35 5
25 ditemukan
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 21/22
2/20/2018 ARRAY (SORTING dan SEARCHING) | Just For Shared
Iklan
Report this ad
Report this ad
Blog di WordPress.com.
https://prismasarijulianwijayanti.wordpress.com/2012/07/25/array-sorting-dan-searching/ 22/22