• Tidak ada hasil yang ditemukan

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

N/A
N/A
Protected

Academic year: 2022

Membagikan "SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut"

Copied!
6
0
0

Teks penuh

(1)

Searching & Sorting Searching & Sorting

Pertemuan Pertemuan 9 9--10 10 Dosen

Dosen Pembina Pembina Danang

Danang Junaedi Junaedi

Jurusan Teknik Informatika IX/XII - 2 Universitas Widyatama





TUJUAN MATERI TUJUAN MATERI Setelah

Setelah mengikuti mengikuti materi materi pertemuan pertemuan ini, ini, mahasiswa mahasiswa diharapkan

diharapkan dapat dapat

1.

1. MMenjelaskanenjelaskan dandan menggunakanmenggunakan metodemetode pencarianpencarian dalam

dalam menyelesaikanmenyelesaikan masalahmasalah pencarianpencarian data/informasi

data/informasi padapada



 KKondisiondisi datadata yangyang tidaktidak terurutterurut



 KondisiKondisi datadata terurutterurut 2.

2. MMenjelaskanenjelaskan dandan menggunakanmenggunakan metodemetode untukuntuk mengurutkanmengurutkan data/informasi

data/informasi dalamdalam menyelesaikanmenyelesaikan masalahmasalah pegurutanpegurutan data/informasi

data/informasi

Tujuan Tujuan

Jurusan Teknik Informatika IX/XII - 3 Universitas Widyatama

1.

1. Pencarian pada Data yang Tidak Terurut Pencarian pada Data yang Tidak Terurut

a.

a. Sequential dengan variabel logikaSequential dengan variabel logika

b.

b. Sequential tanpa variabel logikaSequential tanpa variabel logika

c.

c. SentinelSentinel 2.

2. Pencarian pada Data yang Terurut Pencarian pada Data yang Terurut

a.

a. Sequential tanpa variabel logikaSequential tanpa variabel logika b.

b. Binary search/dikotomikBinary search/dikotomik 3.

3. SortingSorting a.

a. Bubble Sort Bubble Sort b.

b. Selection SortSelection Sort c.

c. Insertion SortInsertion Sort

Lingkup Materi Lingkup Materi

Jurusan Teknik Informatika IX/XII - 4 Universitas Widyatama

Searching (1) Searching (1)





Tujuan : mencari suatu nilai/elemen dalam Tujuan : mencari suatu nilai/elemen dalam kumpulan nilai (yang disimpan dalam array, list kumpulan nilai (yang disimpan dalam array, list atau file) yang sudah diketahui

atau file) yang sudah diketahui





Jenis Jenis



Searching pada Data Tidak TerurutSearching pada Data Tidak Terurut



Sequential SearchSequential Search



Searching pada Data TerurutSearching pada Data Terurut



Sequential SearchSequential Search



Binary Search/Pencarian Bagi Dua/ Dikotomik SearchBinary Search/Pencarian Bagi Dua/ Dikotomik Search

Jurusan Teknik Informatika IX/XII - 5 Universitas Widyatama

SEQUENTIAL SEARCH

Pencarian pada Data yang Tidak Terurut

Disini proses pencarian dilakukan secara beruntun dari data pertama sampai data terakhir.

Pencarian pada Data yang Terurut

Disini proses pencarian dapat dilakukan secara berurutan dari data pertama sampai data terakhir atau tidak berurutan.

Masalah :

Diketahui sebuah array A[1..10] yang berisi data integer dengan kondisi tidak terurut. Buat algoritma untuk mencari nilai X dan beri pesan ditemukan atau tidak nilai tersebut

Jurusan Teknik Informatika IX/XII - 6 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

5

5 10 10 11 11 2 2 8 8 13 13 7 7 20 20 35 35 18 18

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : I  1

• Pencarian dilakukan sampai dengan posisi akhir pada array atau data ditemukan

• Keadaan Akhir :

I akan diisi nomor indeks yang array-nya bernilai X, bila nilai yang dicari ketemu

(2)

Jurusan Teknik Informatika IX/XII - 7 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Judul : Algoritma untuk mencari bilangan X Kamus : ARRAY A[1..10] = array yang menampung data

dalam tabel

I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari

Algoritma : INPUT X, I  1

WHILE (I < 10) AND ( A[I] <> X) DO

I  I + 1 END WHILE IF A[I] = X THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ditemukan’

END IF

Jurusan Teknik Informatika IX/XII - 8 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data terurut

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : I  1

• Pencarian dilakukan selama nilai dalam array < nilai yang dicari

• Keadaan Akhir :

I akan diisi nomor indeks yang array-nya bernilai X, bila nilai yang dicari ketemu

2

2 5 5 7 7 8 8 10 10 11 11 13 13 18 18 20 20 35 35

Jurusan Teknik Informatika IX/XII - 9 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data terurut

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : I  1

• Pencarian dilakukan selama nilai dalam array < nilai yang dicari

• Keadaan Akhir :

I akan diisi nomor indeks yang array-nya bernilai X, bila nilai yang dicari ketemu

2

2 5 5 7 7 8 8 10 10 11 11 13 13 18 18 20 20 35 35

Jurusan Teknik Informatika IX/XII - 10 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data terurut

Judul :Algoritma untuk mencari nilai X

Kamus :ARRAY A[1..10] = array yang menampung data I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari Algoritma :

INPUT X, I 1

WHILE (A[I] < X) and (I <= 10) DO I I + 1

END WHILE IF A[I] = X THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ketemu’

END IF

Jurusan Teknik Informatika IX/XII - 11 Universitas Widyatama

Searching (2) Searching (2)





Sequential Search Sequential Search   Tanpa Variabel Logika Tanpa Variabel Logika

Data Tidak Terurut

Data Tidak Terurut Data TerurutData Terurut scanf(“%d”,&Cari);

scanf(“%d”,&Cari);

i = 1;

i = 1;

while (i <= N && Cari !=

while (i <= N && Cari !=

Barang[i]) Barang[i]) { i++; } { i++; }

(i < N) ? printf("Barang (i < N) ? printf("Barang ditemukan") : printf("Barang tidak ditemukan") : printf("Barang tidak ditemukan");

ditemukan");

scanf(“%d”,&Cari);

scanf(“%d”,&Cari);

i = 1;

i = 1;

while (i <= N && Cari < Barang[i]) while (i <= N && Cari < Barang[i]) { i++; }

{ i++; }

(Barang[i] == Cari) ? (Barang[i] == Cari) ? printf("Barang ditemukan") : printf("Barang ditemukan") : printf("Barang tidak ditemukan");

printf("Barang tidak ditemukan");

Jurusan Teknik Informatika IX/XII - 12 Universitas Widyatama

Sequential Search (Dengan Variabel Logika) untuk kondisi data tidak terurut

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : Found  False, I  1

• Pencarian dilakukan sampai dengan posisi akhir pada array atau data ditemukan

• Keadaan Akhir :

Found  False, berarti nilai yang dicari tidak ketemu Found  True, berarti nilai yang dicari ketemu

I akan diisi nomor indeks yang array-nya bernilai X, bila nilai yang dicari ketemu

5

5 10 10 11 11 2 2 8 8 13 13 7 7 20 20 35 35 18 18

(3)

Jurusan Teknik Informatika IX/XII - 13 Universitas Widyatama

Sequential Search (Dengan Variabel Logika) untuk kondisi data tidak terurut

Judul : Algoritma untuk mencari bilangan X

Kamus :ARRAY A[1..10] = array yang menampung data dalam tabel I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari Found = boolean, variabel logika untuk mengetahui ketemu/tidak nilai

yang akan dicari Algoritma :

INPUT X, I 1, Found  False WHILE (I <= 10) AND ( Not Found) DO

IF A[I] = X THEN Found True ELSE

I I + 1 ENDIF END WHILE IF Found THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ditemukan’

END IF

Jurusan Teknik Informatika IX/XII - 14 Universitas Widyatama

Sequential Search (Tanpa Variabel Logika) untuk kondisi data terurut

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : Found  False, I  1

• Pencarian dilakukan selama nilai dalam array < nilai yang dicari

• Keadaan Akhir :

Found  False, berarti nilai yang dicari tidak ketemu Found  True, berarti nilai yang dicari ketemu

I akan diisi nomor indeks yang array-nya bernilai X, bila nilai yang dicari ketemu

2

2 5 5 7 7 8 8 10 10 11 11 13 13 18 18 20 20 35 35

Jurusan Teknik Informatika IX/XII - 15 Universitas Widyatama

Sequential Search (Dengan Variabel Logika) untuk kondisi data terurut

Judul : Algoritma untuk mencari bilangan X

Kamus :ARRAY A[1..10] = array yang menampung data dalam tabel I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari Found = boolean, variabel logika untuk mengetahui ketemu/tidak nilai

yang akan dicari Algoritma :

INPUT X, I 1, Found  False

WHILE (I <= 10) AND ( Not Found) AND(A[I] < X)DO IF A[I] = X THEN

Found True ELSE

I I + 1 ENDIF END WHILE IF Found THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ditemukan’

END IF

Jurusan Teknik Informatika IX/XII - 16 Universitas Widyatama

Searching (2) Searching (2)





Sequential Search Sequential Search   Dengan Variabel Logika Dengan Variabel Logika

Data Tidak Terurut

Data Tidak Terurut Data TerurutData Terurut scanf(“%d”,&Cari);

scanf(“%d”,&Cari);

i = 1;

i = 1;

ketemu = 0;

ketemu = 0;

while (i <= N && ketemu == 0){

while (i <= N && ketemu == 0){

(Cari == Barang[i]) ? ketemu = 1:

(Cari == Barang[i]) ? ketemu = 1:

i++; } i++; }

(ketemu == 1) ? printf("Barang (ketemu == 1) ? printf("Barang ditemukan") : printf("Barang tidak ditemukan") : printf("Barang tidak ditemukan");

ditemukan");

scanf(“%d”,&Cari);

scanf(“%d”,&Cari);

i = 1;

i = 1;

Ketemu = 0;

Ketemu = 0;

while (i <= N && Cari < Barang[i]

while (i <= N && Cari < Barang[i]

&& ketemu ==0){

&& ketemu ==0){

(Cari == Barang[i]) ? ketemu = 1:

(Cari == Barang[i]) ? ketemu = 1:

i++; } i++; }

(ketemu == 1) ? printf("Barang (ketemu == 1) ? printf("Barang ditemukan") : printf("Barang tidak ditemukan") : printf("Barang tidak ditemukan");

ditemukan");

Jurusan Teknik Informatika IX/XII - 17 Universitas Widyatama

Sequential Search (Sentinel) untuk kondisi data tidak terurut

5

5 10 10 11 11 2 2 8 8 13 13 7 7 20 20 35 35 18 18

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : I  1

• Pencarian dilakukan sampai dengan posisi sentinel. Jika menggunakan sentinel di awal pencarian dilakukan dari posisi paling belakang ke depan, sebaliknya jika menggunakan sentinel di akhir pencarian dilakukan dari depan ke belakang

• Keadaan Akhir :

I akan diisi nomor indeks yang array-nya bernilai X, namun apabila I bukan sentinel berarti nilai X ditemukan

Sentinel di awal Sentinel di akhir

Jurusan Teknik Informatika IX/XII - 18 Universitas Widyatama

Sequential Search (Sentinel) untuk kondisi data tidak terurut {Sentinel adalah elemen fiktif yang dipasang setelah elemen terakhir atau di awal table}

Judul : Algoritma untuk mencari bilangan X

Kamus : ARRAY A[1..11] = array yang menampung data dalam tabel I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari Found = boolean, variabel logika

Algoritma :

INPUT X, I  1, A[11] X {Sentinel di akhir}

WHILE A[I] <> X DO I  I + 1 END WHILE IF I <> 11 THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ketemu’

END IF

(4)

Jurusan Teknik Informatika IX/XII - 19 Universitas Widyatama

Sequential Search (Sentinel) untuk kondisi data terurut

2

2 5 5 7 7 8 8 10 10 11 11 13 13 18 18 20 20 35 35

• Misalnya, terdapat sebuah array seperti di atas

• Keadaan awal : I  1

• Pencarian dilakukan selama nilai dalam array < nilai pada posisi sentinel. Jika menggunakan sentinel di awal pencarian dilakukan dari posisi paling belakang ke depan, sebaliknya jika menggunakan sentinel di akhir pencarian dilakukan dari depan ke belakang

• Keadaan Akhir :

I akan diisi nomor indeks yang array-nya bernilai X, namun apabila I bukan sentinel berarti nilai X ditemukan

Sentinel di awal Sentinel di akhir

Jurusan Teknik Informatika IX/XII - 20 Universitas Widyatama

Sequential Search (Sentinel) untuk kondisi data terurut {Sentinel adalah elemen fiktif yang dipasang setelah elemen terakhir atau di awal table}

Judul : Algoritma untuk mencari bilangan X

Kamus : ARRAY A[1..11] = array yang menampung data dalam tabel I = integer, counter pengulangan

X = integer, variabel yang menampung data yang akan dicari Found = boolean, variabel logika

Algoritma :

INPUT X, I  1, A[11] X {Sentinel di akhir}

WHILE A[I] < A[11] DO I  I + 1 END WHILE IF I <> 11 THEN

OUTPUT ‘Ditemukan di elemen ke-‘,I ELSE

OUTPUT ‘Tidak ketemu’

END IF

Jurusan Teknik Informatika IX/XII - 21 Universitas Widyatama

Searching (2) Searching (2)





Sequential Search Sequential Search   Dengan Sentinel di awal Dengan Sentinel di awal

Data Tidak Terurut

Data Tidak Terurut Data TerurutData Terurut i = N;

i = N;

j=0;

j=0;

scanf(“%d”,&Barang[j]);

scanf(“%d”,&Barang[j]);

while (i >= 1 && Barang[i] !=

while (i >= 1 && Barang[i] !=

Barang[j]) Barang[j]) { i { i-- --; }; }

(i >= 1) ? printf("Barang (i >= 1) ? printf("Barang ditemukan") :printf("Barang tidak ditemukan") :printf("Barang tidak ditemukan");

ditemukan");

i = N;

i = N;

j=0;

j=0;

scanf(“%d”,&Barang[j]);

scanf(“%d”,&Barang[j]);

while (i >= 1 && Barang[i] <

while (i >= 1 && Barang[i] <

Barang[j]) Barang[j]) { i { i-- --; }; }

(i >= 1) ? printf("Barang (i >= 1) ? printf("Barang ditemukan") :printf("Barang tidak ditemukan") :printf("Barang tidak ditemukan");

ditemukan");

Jurusan Teknik Informatika IX/XII - 22 Universitas Widyatama

Binary Search (Pencarian Bagi Dua)

Merupakan metode pencarian yang diterapkan pada kumpulan data yang telah terurut (terurut menaik atau terurut menurun), yang merupakan syarat mutlak dari proses pencarian yang menggunakan metode ini. Pencarian dilakukan dengan membagi dua larik yang sudah terurut, hal ini dilakukan sampai data tersebut ditemukan (nilai yang dicari adalah nilai yang di tengah)

Ilustrasi metode Binary Search :

• Terdapat suatu larik A yang sudah terurut, dan akan dicari suatu nilai tertentu pada larik tersebut, misalnya nilai X.

Jurusan Teknik Informatika IX/XII - 23 Universitas Widyatama

Binary Search (Pencarian Bagi Dua

Merupakan metode pencarian yang diterapkan pada kumpulan data yang telah terurut (terurut menaik atau terurut menurun), yang merupakan syarat mutlak dari proses pencarian yang menggunakan metode ini.

Pencarian dilakukan dengan membagi dua larik yang sudah terurut, hal ini dilakukan sampai data tersebut ditemukan (nilai yang dicari adalah nilai yang di tengah)

Jurusan Teknik Informatika IX/XII - 24 Universitas Widyatama

Ilustrasi metode Binary Search



Terdapat suatu larik A yang sudah terurut, dan akan dicari suatu nilai tertentu pada larik tersebut, misalnya nilai X



Langkah pertama : bagi dua larik A, yaitu :



Tengah = (Kiri + Kanan)/2



Langkah kedua : bandingkan data yang dicari (misal : X) dengan data larik A[Tengah]

 Jika X = A[Tengan], pencarian dihentikan (ketemu).

 Jika X > A[T], pencarian dilakukan pada posisi sebelah kanan.

Ubah nilai Kiri menjadi nilai Tengah (Kiri = Tengah), ulangi langkah pertama sampai data ditemukan

 Jika X < A[T], pencarian dilakukan pada posisi sebelah kiri.

Ubah nilai Kanan menjadi nilai Tengah (Kanan =Tengah), ulangi langkah pertama sampai data ditemukan

(5)

Jurusan Teknik Informatika IX/XII - 25 Universitas Widyatama

Searching (3) Searching (3)





Binary Search Binary Search

kiri = 0;

kiri = 0;

kanan = N kanan = N--1;1;

ketemu = 0;

ketemu = 0;

while (kiri < kanan && ketemu == 0) while (kiri < kanan && ketemu == 0) {

{

tengah = (kiri + kanan) / 2;

tengah = (kiri + kanan) / 2;

if (Barang[tengah] == Cari) ketemu = 1;

if (Barang[tengah] == Cari) ketemu = 1;

else else { {

(Barang[tengah]< Cari) ? kiri = tengah + 1 :kanan = tengah (Barang[tengah]< Cari) ? kiri = tengah + 1 :kanan = tengah -- 1;1;

}}

}}

(ketemu == 1) ? printf("Barang ditemukan") :printf("Barang tidak ditemukan");

(ketemu == 1) ? printf("Barang ditemukan") :printf("Barang tidak ditemukan");

Jurusan Teknik Informatika IX/XII - 26 Universitas Widyatama

SORTING (PENGURUTAN)

DEFINISI PENGURUTAN

Pengurutan (Sorting) adalah suatu proses untuk mengatur sekumpulan data atau objek menurut susunan atau urutan tertentu. Dibedakan menjadi 2 macam, yaitu :

• Pengurutan Internal yaitu pengurutan terhadap sekumpulan data yang disimpan dalam media internal komputer, yang dapat diakses setiap elemennya secara langsung dan disebut juga sebagai pengurutan tabel.

• Pengurutan Eksternal, yaitu pengurutan data yang disimpan dalam memori sekunder, biasanya data berukuran besar sehingga tidak mampu untuk dimuat semuanya dalam memori komputer disebut juga pengurutan arsip (file).

Jurusan Teknik Informatika IX/XII - 27 Universitas Widyatama

Sorting (1) Sorting (1)





Tujuan : menyusun nilai/elemen (biasanya Tujuan : menyusun nilai/elemen (biasanya dalam array atau file) sedemikian rupa dalam array atau file) sedemikian rupa berdasarkan aturan tertentu

berdasarkan aturan tertentu ((ascending/descending ascending/descending))





Jenis Jenis



Internal SortingInternal Sorting



Selection SortSelection Sort



Bubble SortBubble Sort



Insertion SortInsertion Sort



Eksternal SortingEksternal Sorting

Jurusan Teknik Informatika IX/XII - 28 Universitas Widyatama

Maksimum-minimum Sort (Selection Sort)

Didasarkan pada pemilihan elemen maksimum atau minimum larik sebagai basis pengurutan. Gagasannya adalah memilih elemen maksimum/minimum tersebut dengan elemen terujung larik (ujung kiri atau ujung kanan). Selanjutnya elemen terujung tersebut di-isolasi dan tidak disertakan pada proses selanjutnya.

Proses yang sama diulang untuk elemen larik yang tersisa sampai larik terurut.

Jurusan Teknik Informatika IX/XII - 29 Universitas Widyatama

Maksimum Sort :

Ilustrasi Pengurutan : Secara Ascending(terurut dari kecil ke besar)

65 20 5 30 85 40 data asal

65 20 5 30 40 85 langkah 1

40 20 5 30 65 85 langkah 2

30 20 5 40 65 85 langkah 3

5 20 30 40 65 85 langkah 4

5 20 30 40 65 85 langkah 5

Jurusan Teknik Informatika IX/XII - 30 Universitas Widyatama

Ilustrasi pengurutan : Secara Descending (terurut dari besar ke kecil)

65 20 5 30 85 40 data asal

85 20 5 30 65 40 langkah 1

85 65 5 30 20 40 langkah 2

85 65 40 30 20 5 langkah 3

85 65 40 30 20 5 langkah 4

85 65 40 30 20 5 langkah 5

dan sebaliknya dapat dilakukan untuk Mimimum Sort [Coba lakukan

!]

(6)

Jurusan Teknik Informatika IX/XII - 31 Universitas Widyatama

Sorting (2) Sorting (2)





Selection Sort Selection Sort  menggunakan nilai minimum menggunakan nilai minimum

for(i=0;i<N

for(i=0;i<N--1;i++)1;i++) {

{ min=i;

min=i;

for(j=i+1;j<N;j++) for(j=i+1;j<N;j++)

if(Barang[j] < Barang[min]) min = j;

if(Barang[j] < Barang[min]) min = j;

Temp = Barang[min];

Temp = Barang[min];

Barang[min] = Barang[i]

Barang[min] = Barang[i]

Barang[i] = Temp;

Barang[i] = Temp;

}}

Jurusan Teknik Informatika IX/XII - 32 Universitas Widyatama

Bubble Sort

Metode ini menggunakan prinsip pengapungan (diinspirasi oleh gelembung sabun yang berada di atas permukaan air).

Elemen larik yang berharga paling kecil “diapungkan”, artinya diangkat keatas (atau ujung kiri larik) melalui proses pertukaran. Proses pengapungan ini dilakukan sampai larik terurut.

Jurusan Teknik Informatika IX/XII - 33 Universitas Widyatama

Ilustrasi Bubble Sort :

15 25 2 7 1 sebelum pengurutan

15 25 2 1 7

15 25 1 2 7 langkah 1

15 1 25 2 7

1 15 25 2 7

1 15 25 2 7

1 15 25 2 7 langklah 2

1 15 2 25 7

1 2 15 25 7

1 2 15 7 25

1 2 15 7 25 langkah 3

1 2 7 15 25

1 2 7 15 25 langkah 4

1 2 7 15 25 hasil pengurutan

Jurusan Teknik Informatika IX/XII - 34 Universitas Widyatama

Sorting (3) Sorting (3)





Bubble Sort Bubble Sort

for(i=0;i<Nfor(i=0;i<N--1;i++)1;i++) {

{ for(j=N for(j=N--1;j>=i;j1;j>=i;j----)) {

{

if(Barang[j] < Barang[j if(Barang[j] < Barang[j--1])1]) { //proses pertukaran { //proses pertukaran Temp = Barang[j];

Temp = Barang[j];

Barang[j] = Barang[j Barang[j] = Barang[j--1];1];

Barang[j

Barang[j--1] = Temp;1] = Temp;

}}

}}

}}

Jurusan Teknik Informatika IX/XII - 35 Universitas Widyatama

Insertion Sort

Merupakan metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi ini dilakukan secara sequential. Selama pencarian posisi ini, dilakukan pergeseran elemen larik.

Ilustrasi Insertion Sort : (untuk menghasilkan data terurut dari kecil ke besar)

29 27 10 8 76 21 data asal

27 29 10 8 76 21 langkah 1

10 27 29 8 76 21 langkah 2

8 10 27 29 76 21 langkah 3

8 10 27 29 76 21 langkah 4

8 10 21 27 29 76 langkah 5

Jurusan Teknik Informatika IX/XII - 36 Universitas Widyatama

Sorting (4) Sorting (4)





Insertion Sort Insertion Sort

for(i=1;i<N;i++) for(i=1;i<N;i++) {

{

Temp = Barang[i]

Temp = Barang[i]

j=i j=i--1;1;

Ketemu = 0;

Ketemu = 0;

while (j>=0 && Ketemu == 0) while (j>=0 && Ketemu == 0) {

{

if(Temp < Barang[j]) if(Temp < Barang[j]) {

{

Barang[j+1] = Barang[j];

Barang[j+1] = Barang[j];

jj----;;

}}

else { Ketemu = 1;}

else { Ketemu = 1;}

}}

Barang[j+1] = Temp;

Barang[j+1] = Temp;

}}

Gambar

Ilustrasi metode Binary Search
Ilustrasi Pengurutan : Secara Ascending(terurut dari kecil ke besar)
Ilustrasi Bubble Sort :

Referensi

Dokumen terkait

Meskipun secara visual logo Restoran Nglaras Rasa terlihat berubah, namun dari segi konstruksi / tipe desain, logo lama maupun logo baru restoran ini masih tetap sama yaitu

Peraturan Pemerintah Nomor 23 Tahun 2005 tentang Pengelolaan Keuangan Badan Layanan Umum (Lembaran Negara Republik Indonesia Tahun 2005 Nomor 48, Tambahan5.

Sebagai hasil dari kegiatan ini, para peserta memperoleh pemahaman mengenai pentingnya bertutur kata dengan baik dan santun saat berinteraksi dengan anak didik

Sedangkan  Siswa  emosional  dapat  diartikan  sebagai  siswa  yang  mengalami  emosi  yang  tidak  normal,  keadaan  emosi  yang  dialami  mengakibatkan  gangguan 

batang tubuh ilmu yang khusus; (3) jabatan yang memerlukan persiapan dan latihan yang lama; (4) jabatan yang memerlukan latihan dalam jabatan

Berdasarkan hasil analisis ditemukan bahwa ukuran perusahaan memiliki pengaruh signifikan dengan arah positif terhadap struktur modal, sedangkan struktur aktiva dan

Teknologi jaringan sensor nirkabel dapat digunakan untuk mentransmisikan data yang ditangkap oleh sensor ke suatu node yang kita sebut node coordinator sehingga dapat

Dalam menyajikan gending-gending, kelompok karawitan Pujangga Laras tidak dibatasi pada gending klasik karaton, melainkan para pengrawit diberi kesempatan untuk