23
Teknik Pencarian, Teknik Pengurutan Dan Matriks RINI TISNAWATI

Teknik Pencarian, Teknik Pengurutan

Embed Size (px)

DESCRIPTION

dsda

Citation preview

Page 1: Teknik Pencarian, Teknik Pengurutan

Teknik Pencarian, Teknik PengurutanDan Matriks

RINI TISNAWATI

Page 2: Teknik Pencarian, Teknik Pengurutan

Metode Pencarian yang Penting

• Pencarian berurutan– Metode tanpa Sentinel– Metode dengan Sentinel

• Pencarian Biner

Page 3: Teknik Pencarian, Teknik Pengurutan

Teknik Pencarian ( Searching )

• Teknik Pencarian ( Searching ) pada array adalah mencari suatu nilai yang diinginkan pada tabel array.

• Pencarian di tabel array diklasifikasikan menjadi :– Pencarian sekuensial ( sequential search ).

Pencarian sekuensial tidak mensyaratkan tabel terurut.

– Pencarian biner ( binary search).Pencarian biner mensyaratkan tabel terurut.

Page 4: Teknik Pencarian, Teknik Pengurutan

Deskripsi : Pencarian sekuensial• Diketahui TI bertipe TabInt, telah diisi. Tulis procedure yang jika

diberikan X bernilai integer akan mencari apakah harga X terdapat di TI. Pencarian dilakukan secara berurutan mulai elemen pertama sampai ketemu atau sampai elemen terakhir. Program menghasilkan indeks IX dimana X diketemukan pertama kali. IX diberi harga 0 jika tidak ketemu. Pencarian segera dihentikan begitu harga pertama diketemukan.

Pendeklarasian array :Const

Idxawal = 1;Idxakhir = 100;

TypeTypeInfo = integer;TabInt = Array [Idxawal..Idxakhir] of TipeInfo;

Var<identifier_variabel> : TabInfo;

Page 5: Teknik Pencarian, Teknik Pengurutan

Aturan pembuatan program :

• Procedure InputTabInt (Var TI : TabInt);• Procedure SeqSearch (TI : TabInt; X : Integer;

Var IX : Integer);• Procedure OutputIX (IX: Integer);

Page 6: Teknik Pencarian, Teknik Pengurutan

Algoritma Procedure SeqSearch (TI : TabInt; X : Integer; Var IX : Integer);

i IdxawalfoundFalseWhile i <= Idxakhir . and . not found doIf TI[i] = X thenFound trueElsei i + 1EndifEndWhileIf found thenIX iElseIX 0Endif

Page 7: Teknik Pencarian, Teknik Pengurutan

Pencarian BinerDeskripsi :

• Diketahui TI bertipe TabInt, telah diisi dan isinya terurut menaik. Tulis prosedur yang jika diberikan X bernilai integer akan mencari apakah harga X ada di TI. Pemeriksaan dilakukan dengan mereduksi elemen tabel array, menjadi separuh jumlah elemen tabel semula, yaitu :

– Bandingkan harga yang dicari dengan harga elemen tengah.– Jika sama, berarti ketemu.– Jika yang dicari lebih kecil, berarti pencarian dengan cara yang sama

harus dilakukan terhadap elemen-elemen di belahan atas.– Jika harga yang dicari lebih besar, berarti pencarian dengan cara

yang sama harus dilakukan terhadap elemen-elemen di belahan bawah.

• Prosedur menghasilkan harga indeks IX dimana X diketemukan pertama kali. IX diberi harga 0 jika pencarian tidak ketemu. Pencarian segera dihentikan begitu diketemukan.

Page 8: Teknik Pencarian, Teknik Pengurutan

Algoritma Procedure BinSearch (TI : TabInt; X : Integer ; Var IX : Integer);Atas IdxawalBawah IdxakhirTengah ( Atas + Bawah ) div 2While Atas < Bawah . and . TI[Tengah] <> X do

If TI[Tengah] < X thenAtas Tengah + 1

ElseBawah Tengah – 1

EndifTengah ( Atas + Bawah ) div 2;

EndWhileIf TI[Tengah] = X then

IX TengahElse

IX 0Endif

Page 9: Teknik Pencarian, Teknik Pengurutan

Teknik Pengurutan ( Sorting )Sorting atau pengurutan data adalah proses yang sering dilakukan dalam pengolahan data. Mesin otomatik yang pertama kali lahir adalah mesin pengurut (masih dipakai sampai saat ini).

Pengurutan dibedakan menjadi dua, yaitu :1. Pengurutan internal, yaitu pengurutan terhadap

sekumpulan data yang disimpan dalam media internal komputer, dapat diakses elemennya secara langsung. Pengurutan terhadap array (tabel).

2. Pengurutan eksternal, yaitu pengurutan data yang disimpan di memori sekunder, biasanya data bervolume besar sehingga tidak mampu dimuat semuanya di memori primer.

Page 10: Teknik Pencarian, Teknik Pengurutan

Pengurutan Berdasarkan Seleksi

GagasanMenghasilkan nilai minimum tabel (untuk efisiensi, hanya indeks dimana harga minimum ditemukan yang dicatat), kemudian menukarnya dengan elemen terujung, “diisolasi” dan tidak diikutsertakan pada proses berikutnya. Proses diulang untuk sisa tabel.

Page 11: Teknik Pencarian, Teknik Pengurutan

Procedure MaxSort (Var TI : TabInt);Var

I : integer; {indeks untuk traversal array}Pass : integer; {tahapan pengurutan}Temp : integer; {memorisasi harga untuk penukaran}IMin : integer; {indeks, dimana TI[Nmin .. Pass] berharga minimum}

BeginFor Pass = NMin to Nmax – 1 doBegin

{tentukan minimum diantara [Pass .. NMax]}IMax Pass;For I = Pass+1 to Nmax doBegin

If (TI[Max] > TI[I]) thenIMax I;

End;{TI[IMax] adalah minimum TI[Pass .. NMax]}{tukar TI[IMax] dengan TI[Pass]}Temp TI[IMax];TI[IMax] TI[Pass];TI[Pass] Temp;{TI[Nmin .. Pass] terurut membesar : TI[NMin] <= TI[NMin+1] <= … <= TI[Pass]}

End;{seluruh tabel TI[Nmin .. NMax] terurut membesar, karena Pass = NMax, maka :} {TI[NMin] <= TI[Nmin+1] <= … <= TI[NMax]} End;

Page 12: Teknik Pencarian, Teknik Pengurutan

Pengurutan Berdasarkan Penyisipan

Gagasan• Mencari tempat yang tepat untuk

setiap elemen tabel, dengan secara sequential search, kemudian menyisipkan sebuah elemen tabel yang diproses ke tempat yang seharusnya.

Page 13: Teknik Pencarian, Teknik Pengurutan

Procedure InsertionSort (Var TI : TabInt);Var

I : integer; {indeks untuk traversal array}Pass : integer; {tahapan pengurutan}Temp : integer; {memorisasi harga untuk penukaran}

Begin{TI[NMin] adalah terurut}For Pass = Nmin+1 to Nmax doBeginTemp TI[Pass]; {simpan harga TI[Pass] supaya tidak tertimpa pergeseran}{sisipkan elemen ke-Pass dalam TI[NMin .. Pass-1] sambil menggeser}I Pass -1;While ( Temp > TI[I] ) And ( I > NMin) doBeginTI[I+1] TI[I]; {geser}I I-1;{elemen berikutnya}End;{(Temp >= TI[I] yaitu tempat yang tepat) atau I=1 harus disisipkan sebagai elemen pertama}If (Temp > TI[I]) thenTI[I+1] Temp; {telah menemukan tempat yang tepat}ElseTI[I+1] TI[I];TI[I] Temp; {sebagai elemen pertama}End;{Seluruh tabel TI[NMin .. NMax] terurut membesar, karena Pass = NMax, maka :}{TI[NMin] <= TI[Nmin+1] <= … <= TI[Pass]}

End;

Page 14: Teknik Pencarian, Teknik Pengurutan

MATRIKSMerupakan array 2 dimensi, setiap elemen Matriks diidentifikasi oleh nama, indeks

baris dan indeks kolom.12N1

1 2 N2Pendeklarasian Matriks (array 2 dimensi) :Const

Idxawal = 1;Idxakhir = 100;

TypeTipeInfo = …;TabInfo = Array [ Idxawal .. Idxakhir, Idxawal .. Idxakhir] of TipeInfo;

Var<identifikasi_variabel> : TabInfo;

Page 15: Teknik Pencarian, Teknik Pengurutan

Proses – proses / operasi terhadap Matriks :

1. Pengisian elemen matriks dari fil2. Pengisian elemen matriks khusus dengan

assignment3. Penulisan elemen matriks4. Penjumlahan matriks5. Perkalian matriks

Page 16: Teknik Pencarian, Teknik Pengurutan

Algoritma-algoritma Operasi Matriks :

1. Pengisian elemen matriks dari filRead N1, N2 {N1 : jumlah baris, N2 : jumlah kolom}I 1While I <= N1 do

J 1While J <= N2 do

Read M (I,J)J J+1

EndWhileI I+1

EndWhile

Page 17: Teknik Pencarian, Teknik Pengurutan

2. Pengisian elemen matriks khusus dengan assignment

• Matriks N1 x N2 yang semua elemennya 1 :I 1While I <= N1 do

J 1While J <= N2 do

M (I,J) 1J J+1

EndWhileI I+1

EndWhile

Page 18: Teknik Pencarian, Teknik Pengurutan

• Matriks identitas ordo N

Read NI 1While I <= N do

J 1While J <= N do

If I = J thenM (I,J) 1

ElseM (I,J) 0

EndifJ J+1

EndWhileI I+1

EndWhile

Page 19: Teknik Pencarian, Teknik Pengurutan

3. Penulisan elemen matriks

I 1While I <= N1 do

J 1While J <= N2 do

Write M (I,J)J J+1

EndWhileI I+1

EndWhile

Page 20: Teknik Pencarian, Teknik Pengurutan

4. Penjumlahan matriksI 1While I <= N1 do

J 1While J <= N2 do

C (I,J) A (I,J) + B (I,J)J J+1

EndWhileI I+1

EndWhile

Page 21: Teknik Pencarian, Teknik Pengurutan

5. Perkalian matriksI 1While I <= N1 do {N1 = baris Matriks A}

J 1While J <= N2 do {N2 = baris Matriks B}

C (I,J) 0 K 1While K <= N do {N = kolom matriks A = baris matriks B}

C (I,J) C (I,J) + A (I,K) * B (K,J) K K + 1

EndWhileJ J+1

EndWhileI I + 1

EndWhile

Page 22: Teknik Pencarian, Teknik Pengurutan

Tugas :

1. Buat Menu dan Program untuk pencarian dan pengurutan dengan menggunakan metoda diatas.

2. Buat Menu dan Program untuk operasi-operasi matriks diatas.

Page 23: Teknik Pencarian, Teknik Pengurutan

Algoritma operasi Matriks jarang secara Matriks

• Prosedure Transpos(A,B)• {A merupakan matriks yg akan di transspos dalam keadaan sparse, B merupakan

matriks hasil transpos}• m:= A(0,