Anda di halaman 1dari 8

ALGORITMA & PEMROGRAMAN I

Kuliah ke VII

Pokok Bahasan : Kasus-kasus dalam


Pemrosesan Array
Pencarian (Searching)

11/04/21 1
Mencari harga maksimum ARRAY
VERSI 1 (dalam notasi algoritma) :
Procedure MAX1(input A : larik; input N : integer;
output maks : integer;
output imaks : integer)
{mencari elemen terbesar di dlm array A[1..N]
Kondisi Awal : elemen array sudah terdefinisi
Kondisi Akhir: maks adl elemen terbesar,
imaks adl indeks yg berisi harga maksimum}
KAMUS lokal//deklarasi variabel
i : integer {pencacat indeks larik}
Algoritma
maks = -9999 {diberi nilai sembarang yg bukan elemen array}
for i := 1 to N do
if A[i] > maks then
maks = A[i]
imaks = i
endif
endfor

11/04/21 2
VERSI 2 :
Procedure MAX2(input A : larik; input N : integer;
output maks : integer;
output imaks : integer)
{mencari elemen terbesar di dlm array A[1..N]
Kondisi Awal : elemen array sudah terdefinisi
Kondisi Akhir: maks adl elemen terbesar,
imaks adl indeks yg berisi harga maksimum}
KAMUS lokal
i : integer {pencacat indeks larik}
Algoritma
maks = A[1]{diberi nilai array indeks pertama}
for i := 2 to N do
if A[i] > maks then
maks = A[i]
imaks = i
endif
endfor

11/04/21 3
Pencarian suatu Nilai (Searching)
Persoalan :
Diketahui sebuah tabel Array berisi nilai integer TabInt[1..N], yg
telah diisi. Tuliskan algoritma yg jika diberikan sebuah X bernilai
integer akan mencari apakah nilai X ada dalam TabInt, secara
berurutan dari elemen pertama sampai ketemu atau sampai elemen
terakhir. Algoritma akan menghasilkan harga indeks IX dimana X
diketemukan pertama kalinya, IX diberi harga 0 jika pencarian tidak
ketemu. Pencarian segera dihentikan begitu harga pertama
ditemukan.
Contoh -1 : N = 6, TabInt berisi :{1,3,5,-8,12,5}, X=5
Pemeriksaan dilakukan thd {1,3,5}
Output : IX = 3
Contoh -2 : N = 4, TabInt berisi: {11,3,5,8}, X = 100
Pemeriksaan dilakukan thd {11,3,5,8}
Output : IX = 0 {krn tdk ditemukan}
11/04/21 4
Metode Pencarian

• Sequential Search
• Binary Search

11/04/21 5
VERSI 1 (dalam notasi algoritma)
Procedure Search1(input TabInt : Larik,
input N : integer,input X :integer
output IX : integer)
{mencari harga X dlm Tabel TabInt[1..N] scr berurutan,
hasilnya adalah indeks IX dimana X ditemukan, atau IX=0,
jika tidak ketemu}
Kamus Lokal
i : integer {indeks pencarian}
Algoritma
i = 1 {indeks pertama}
while (i<N) and (TabInt[i] <> X) do
i=i+1
{endwhile dg kondisi i=N atau TabInt[i]=X}
if TabInt[i]=X then IX=I
else IX=0
endif

11/04/21 6
VERSI 2
Procedure Search1(input TabInt : Larik,
input N, X : integer,
output IX : integer,temu : boolean )
{mencari harga X dlm Tabel TabInt[1..N] scr berurutan,
hasilnya adalah indeks IX dimana X ditemukan, atau IX=0,
jika tidak ketemu, dan sebuah boolean temu }
Kamus Lokal
i : integer {indeks pencarian}
temu :boolean {hasil pencarian}
Algoritma
i = 1 {indeks pertama}
temu = false {awal pencarian, belum ketemu}
while (i<N) and (not temu) do
if (TabInt[i] = X ) then temu = true
else i=i+1
{endwhile dg kondisi i>N atau temu}
if temu then IX=i
else IX=0
endif

11/04/21 7
Latihan
Pencarian suatu nilai pada tabel yang sudah terurut.
Persoalan :
Diketahui sebuah tabel Array berisi nilai integer TabInt[1..N], yg telah diisi,
dan isinya terurut membesar. Tuliskan algoritma yg jika diberikan sebuah X
bernilai integer akan mencari apakah nilai X ada dalam TabInt, secara
berurutan dari elemen pertama sampai ketemu atau sampai elemen
terakhir. Algoritma akan menghasilkan harga indeks IX dimana X
diketemukan pertama kalinya, IX diberi harga 0 jika pencarian tidak ketemu.
Pencarian segera dihentikan begitu harga pertama ditemukan.
Contoh -1 : N = 5, TabInt berisi :{-8,1,3,5,12}, X = 5
Pemeriksaan dilakukan thd {1,3,5}
Output : IX = 3
Contoh -2 : N = 4, TabInt berisi: {3,5,8,11}, X = 100
Pemeriksaan dilakukan thd {3,5,8,11}
Output : IX = 0 {krn tdk ditemukan}

11/04/21 8

Anda mungkin juga menyukai