Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
STRUKTUR DATA
NAMA
: ALI FAHRUDDIN
NIM
KELAS
:B
MODUL
: V ( Pencarian Data )
2014
BAB I
TUJUAN DAN LANDASAN TEORI
1.1 Tujuan Praktikum
1. Mengetahui beberapa metode pencarian data.
2. Mampu menggunakan metode pencarian data pada sebuah program untuk
menyelesaikan masalah.
1.2 Landasan Teori
Pencarian/ Searching adalah proses mencari suatu data di tentukan suatu
kumpulannya, misal pada suatu array , linked-list, file, atau pada kumpulan data
yang lain.
Pencarian merupakan proses fundamental dalam pengelolaan data. Proses
pencarian merupakan nilai tertentu dalam himpunan data yang bertipe sama.
Apabila data yang dicari terdapat dalam himpunan data tersebut, ditentukan pula
posisi dari data yang dicari pada himpunan.
Pada himpunan yang tidak terurut, dapat digunakan metode pencarian
sekuensial (Sequential Search) untuk mencari data. Sedngkan pada himpunan data
tidak terurut dapat digunakan metode pencarian sekuensial (Sequential Search)
dan biner (Binary Search). Berikut ini merupakan penjelasan dari metode
pencarian tersebut.
Algoritma pencarian metode pencarian data:
1.
elemen dalam himpunan satu persatu secara terurut, mulai dari elemen pertama
sampai dengan elemen yang dicari ditemukan atau seluruh elemen sudah
dibandingkan. Sebagai contoh, misalkan data terurut membesar. Pencarian
dimulai dari data pertama sampai dengan data terakhir. Pencarian dihentikan
apabila data yang dicari sudah ditemukan atau data yang dibandingkan pada
proses pencarian sudah lebih besar dari data yang dicari.
:= i;
iSearch
:= 0;
Else
End;
End;
a. Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak :
if I <= N then
write (x,' Found')
else
write(x,' Not Found')
end
b. Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak :
if I <= N then
Ketemu TRUE
else
Ketemu FALSE
end
Found
: Boolean;
Begin
If (N = 0) then iSearch := 0 {tabel berisi data 0}
Else
Begin
Bawah := 1;
Atas := N;
Found := false;
While ((not found) and (atas > bawah)) do
Begin
Tengah := (bawah + atas) div 2;
If (A[tengah].NIM = x) then
Found := true;
Else
If (A[tengah].NIM = x) then
Atas := tengah 1;
Else
Bawah := tengah + 1;
End;
If found then
iSearch := tengah;
Else
iSearch := 0;
End;
End;
Ide Pencarian : Elemen yang dicari dibandingkan dengan elemen tengah dari
kumpulan data pencarian. Jika sama maka data yang dicari ditemukan, jika tidak
sama (belum ditemukan) maka data yang dicari itu dibandingkan lagi dengan
elemen tengah tersebut
Jika lebih kecil maka pencarian dilanjutkan kebagian array sebelah kiri (bagian
yang lebih kecil dari elemen tengah). Sebaliknya jika lebih besar maka pencarian
dilanjutkan di sebelah kanan elemen tengah. Ulangi langkah tersebut sampai di
temukan atau kumpulan data tidak bisa dibagi lagi menjadi dua bagian.
Algoritma : CARI ( A, N, x )
read (x)
a 1
b N
Ketemu FALSE
while ketemu and a < b do
T (a+b) mod 2
if x = A(T) then Ketemu TRUE TRUE
else if x < A(T) then T - 1
else a T + 1
end
b. Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak :
if Ketemu = TRUE then
Ketemu TRUE
else
Ketemu FALSE
end
BAB II
LANGKAH KERJA
A. Tugas Praktikum
Buatlah sebuah program dengan ketentuan sebagai berikut :
1. Pencarian (searching) data dengan menggunakan kedua metode :
a. Pencarian Sekuensial
b. Pencarian Biner
2. Masukan awal adalah data bertipe record Pegawai Perusahaan yang telah
terurut membesar (ascending) dengan elemen :
Nomor_Pegawai
: integer;
Nama_Pegawai
: string[30];
Bagian
: string[20];
Gaji
: integer;
3. Pencarian data didasarkan pada Nomor_Induk pegawai yang dicari.
Perintah untuk melakukan pencarian tidak hanya sekali, bisa dilakukan
berulang-ulang sesuai keinginan pengguna/user.
4. Keluaran/hasil berupa data yang dicari untuk setiap perintah pencarian.
BAB III
PEMBAHASAN
Untuk pertama kali membuat program pada pascal adalah membuat nama
programnya misalnya dengan program pencarian dengan uses crt.
Kemudian kita membuat constanta pada program ini yang digunakan untuk
masukkan pada data maksimal adalah constanta tersebut. Misalnya kita
menggunakan constanta dengan nilai 100.
Setelah itu kita membuat type data baru untuk mendeklarasiksan variabel yang
akan kita buat. Kita membuat type data pegawai menggunakan record dengan
deklarasi nip bertipe longint, nama bertipe string[30] yaitu tipe data string
dengan nilai kata maksimal adalah 30 karakter string, bagian bertipe string[20]
yaitu tipe data string dengan nilai kata maksimal adalah 20 karakter, serta gaji
bertipe longint, dan kemudian kita mengakhiri statement dengan end.
Kemudian kita membuat tabel bertipe array [1..nmax] of pegawai yaitu tipe ini
adalah menggunakan pegawai dengan record dimana karakter yang
diperbolehkan yaitu 1 sampai nmax, dimana nmax disini adalah bernilai 100
seperti yang kita buat pada constanta diatas.
Pada procedure ini memiliki variabel i bertipe integer yang digunakan untuk
inisialisasi pada jumlah data yang akan dimasukkkan.
eeeedrd
dan
(atas>=bawah)
dengan
melakukan
statement
membagi data menjadi 2 dengan cara data atas dan data bawah ditambahkan
kemudian dibagi dengna dua, dan terjadi pemilihan if..then dengan syarat
(a[tengah].nip=x) yang dilakukan adalah nilai found adalah benar.
Apabila tidak terpenuhi maka terjadi pemilihan if..then dengan syarat
(a[tengah].nip>x) dengan melakukan atas:=tengah-1, apabila
tidak terpenuhi maka bawah:=tengah+1. Kemudian terdapat statement
if..then dengan found melakukan isearch:=tengah dengan mengeluarkan
Nomor Pegawai dengan bentuk a[i].nip, begitupun untuk keluaran Nama,
Bagian, dan Gaji. Dan apabila syarat tidak terpenuhi maka akan muncul pesan
DATA TIDAK DITEMUKAN.
Pilihan 1 adalah pilihan Input yang berisi output Masukkan jumlah data
dengan menyuruh user untuk memasukkan jumlah data menggunakan variabel
n. Dan terdapat pengulangan for..do i:=1 to n dimana n disini adalah
jumlah data yang telah diinputkan tadi dengan menyuruh user untuk mengisi
data sejumlah banyaknya data tadi dengan per-satu data terdiri dari inputan
Nomor Pegawai, Nama, Bagian dan Gaji.
to
n dengan
mengeluarkan semua data yang telah diinputkan oleh user saat penginputan
tadi.
Kemudian
terdapat
instruksi
clrscr
yang
digunakan
untuk
terlebih
dahulu.
Dan
pemilihan
if..then
terhadap
syarat
Dan pada pilihan 4 yaitu Exit dengan terdiri dari instruksi halt yang
digunakan untuk menghentikan program ini yang berfungsi untuk menutup
program ini secara langsung. Kemudian terdapat masukan input apakah ingin
kembali ke menu utama ataukah tidak menggunakan variabel ulang, dan
apabila inputan yang diberikan adalah Y maka program akan mengulang ke
menu utama, sedangkan apabila input T maka program akan tertutup secara
langsung.
Pada suatu program seharusnya ada program utama maka kita membuat
program utama dengan pertama kali menggunakan instruksi begin kemudian
kita panggil procedure menu_utama kemudian terdapat statement readkey
unutk menampilkan output dan diakhiri dengan instuksi end. dengan
menggunakan (.) titik pada akhir statement end.
BAB IV
KESIMPULAN
Proses pencarian merupakan nilai tertentu dalam himpunan data yang bertipe
sama. Apabila data yang dicari terdapat dalam himpunan data tersebut,
ditentukan pula posisi dari data yang dicari pada himpunan.
Metode pencarian sekuensial digunakan pada data yang tidak terurut dimana
data yang dicari dicocokkan satu per-satu dengan secara urut mulai dari
elemen pertama sampai dengan elemen yang dicari ditemukan atau seluruh
elemen sudah dibandingkan. Pencarian dihentikan apabila data yang dicari
sudah ditemukan.
Metode pencarian biner (Binary Search) digunakan pada data yang sudah
terurut. Bila data terurut membesar pencarian dilakukan pada posisi data yang
ditengah. Ada tiga kemungkinan yang akan terjadi:
Data ditengah = data yang dicari : pencarian selesai, data ditemukan.
Data ditengah < data yang dicari : pencarian sebelah kanan.
Data ditengah > data yang dicari : pencarian sebelah kiri.
Proses dilakukan berulang-ulang sampai data ditemukan atau himpunan tidak
bisa dibagi lagi. Dan apabila data telah ditemukan pencarian akan dihentikan.
BAB V
DAFTAR PUSTAKA
Teknik informatika, 2014. Modul Struktur data. Universitas Palangkaraya:
Palangkaraya.
http://studyinformatics.blogspot.com/2012/07/binary-dan-sequentialsearch.html
http://id.wikibooks.org/wiki/Ayo_Membuat_Program_Pascal/Algoritma_Penc
arian
http://mykumpulanalgoritma.blogspot.com/2011/05/tugas-pascal-tentang.html
http://ariyoweb.blogspot.com/2011/04/algoritma-searching-pencarian.html
http://dhanhost.com/sort-dan-search-di-pascal/
BAB VI
LAMPIRAN
o Coding:
o Output:
Tampilan pertama kali program dijalankan
Apabila kita ingin memasukkan data maka kita menginputkan pada pilihan 1
dan akan muncul masukkan jumlah data misalnya kita ingin memasukkan
4 data. Maka kita inputkan semua data 4 tersebut seperti dibawah ini. Dan
apabila sudah selesai mengiinputkan semua data maka akan muncul pesan
kembali ke munu utama atau tidak, apabila kita penginputkan Y maka
program akan kembali pada menu utama, dan apabila kita menginputkan N
maka program akan keluar.
Maka program akan menampilkan data yang telah kita inputkan tadi dengan
urutan seperti yang kita inputkan tadi dan kemudian akan muncul pesan
Masukkan Nip yang ingin dicari misalnya 1126 maka program akan
mencari Data yang mempunyai Nip 1126 secara satu-satu mulai dari data
awal sampai akhir, dan apabila data telah ditemukan maka pencarian akan
dihentikan dan data yang cocok akan ditampilkan. Sehingga muncul data yang
cocok dengan inputan kita tadi yaitu Nip 1126. Kemudian muncul pesan
ingin memilih pencarian lagi atau tidak apabila kita inputkan pilihan Y maka
program akan mengulang pencarian lagi dengan masukkan Nip yang dicari,
apabila pada pilihan N maka program tidak mengulang lagi.
Dan apabila Data yang kita inputkan adalah data 1122 yang misalnya tidak
ada dalam program ini mencarinya maka program akan memunculkan pesan
DATA TIDAK DITEMUKAN.
Maka program akan menampilkan data yang telah kita masukkan tadi dengan
urutan Nip secara (ascending). Kemudian muncul pesan Masukkan Nip
yang akan dicari misalnya kita berikan inputan 1024. Maka program akan
mencari data dengan Nip 1024 dengan menggunkan Binary Search dengan
mencocokkan data tersebut dengan cara membagi data menjadi 2 bagian yaitu
kanan dan kiri sampai data tersebut cocok dengan yang kita inputkan tadi,
apabila sudah ditemukan data tersebut maka pencarian akan dihentikan dan
data yang cocok tadi akan ditampilkan pada output.
Dan apabila Data yang kita inputkan adalah data 1065 yang misalnya tidak
ada dalam program ini mencarinya maka program akan memunculkan pesan
DATA TIDAK DITEMUKAN.
Dan apabila kita ingin menutup program ini dengan memberikan inputan
pilihan 4 pada menu program ini maka otomatis program ini akan tertutup.