Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
VISUALISASI METODE SEQUENTIAL SEARCH Dadang Haryanto1, H. Akik Hidayat2 1)
Prodi Manajemen Informatika STMIK DCI Jl. Letjen Mashudi No. 6 Kota Tasikmalaya Email :
[email protected] 2) Prodi Teknik Informatika, Departement Ilmu Komputer Fakultas MIPA UNPAD Jl. Raya Bandung Sumedang KM 21 Jatinangor Sumedang 45363 E-mail:
[email protected]
ABSTRACT What is meant by Searching the programming technique isused to findatraceof databy way ofdatastorage. Thestorage spacecanbe an array in memory o rinafileon theexternal storage. Sequential Search is searchthrough multiple iterations from1up to the amountof data. Ateachrepetition, the data compared to the sought-i. If thesame, meaningthe datahas beenfound. In contrastto the endifthere is norepetition ofthe same data, meaningthe datadoes notexist. In theworst case, forNdata elements should beNtimesas manysearchesas well. Expected by theapplication of sequential visualization methods for thesearchengines this data can help how the workings of thesearch processto use yourdata by sequential searchmethods. Keyword: Programming, Visualization, Search I.
PENDAHULUAN Metodepencarian data dapat dilakukan dengan dua cara yaitu pencarian internal (internal searching) dan pencarian eksternal (external searching). Pada pencarian internal, semua rekaman yang diketahui berada dalam pengingat computer sedangakan pada pencarian esternal, tidak semua rekaman yang diketahui berada dalam pengingat komputer, tetapi ada sejumlah rekaman yang tersimpan dalam penyimpan luar misalnya pita atau cakram magnetis. Selain itu metode pencarian data juga dapat dikelompokkan menjadi pencarian statis (static searching) dan pencarian dinamis (dynamic searching). Pada pencarian statis, banyak nyarekaman yang diketahui dianggap tetap, pada pencarian dinamis,
banyaknya rekaman yang diketahui bias berubah-ubah yang disebabkan oleh penambahan atau penghapusan suatu rekaman. Ada beberapa macam teknik pencarianya itu diantaranya pencarian sekuensial pencarian biner dan pencarian interpolasi. Maka dari itu untuk mengetahui gambaran cara kerja atau proses yang dilakukan metode sequential search dalam pencarian sebuah data. Makapenulis mengangkat permasalahan ini kedalam sebuah karya ilmiah dengan judul “Visualisasi Metode Squential Searc untuk Pencarian Data” yang dituangkan kedalam sebuah sebuah program agar dapat memberikan informasi yang baik dan jelas bagi pemakai dan para pakar.
1
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
II. LANDASAN TEORI a. Pencarian (Searching) Pencarian merupakan proses yang fundamental dalam pemograman, guna menemukan data (nilai) tertentu didalam sekumpulan data bertipe sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi atau mencocokan data. Sebagai contoh untuk menghapus atau mengubah data didalam sekumpulan nilai langkah pertama yang harus ditempuh adalah mencari data tersebut, lalu menghapus atau mengubahnya. b. PencarianBerurutan (Sequential Search) Sequential Search adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa. Algoritma pencarian secara linear digunakan untuk mencari sebuah nilai pada tabel sembarang. Ada dua macam cara pencarian pada tabel. Algoritma ini mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Algoritma pencairan secara linear melakukan pengulangan sebanyak 1 kali untuk kasus terbaik (value sama dengan elemen pertama dalam tabel) dan Nmax kali untuk kasus terburuk. Sehingga algoritma ini mempunyai kompleksitas algoritmaO(n). Proses pencarian data dengan metode ini cukup sederhana dan mudah dipahami. Dalam pencarian ini proses dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencarian data dilakukan dengan cara 0 8
1 10
2 12
3 6
mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencocokan data dilakukan secara berurut satu demi satu dimulai dari data ke-1 hingga data pada ururtan terakhir. Jika data yang dicari mempunyai harga yang sama dengan data yang ada dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari tidak ada yang cocok dengan data-data dalam sekelompok data, berarti data tersebut tidak ada dalam sekelompok data. Selanjutnya kita tinggal menampilkan hasil yang diperoleh tersebut. Kelebihan dari proses pencarian secara sequential inijika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangandata yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya.beban komputer akan semakin bertambah jika jumlah data dalam array sangat banyak. Contoh dalam kehidupan nyata yang menggunakan metode sequential search adalah ketika pencarian data juara kelas atau pun nilai tertinggi didalam satu kelas yang teridiri dari beberapa siswa atau beberapa sekolah. Penerapannya adalah ketika data juara yang dicari dibandingkan satui persatu dengan yang lain nya sampai data yang dicari ditemukan. Proses: 1. Mulai dari awal(atau dari akhir) cek seluruh record dalam array atau list, baca satupersatu 2. Temukan record sesuai dengan key yang dicari.
4
5
7
1
2
6 50
7 100
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
Kemudian program akan meminta data yang akan dicari, misalnya 6 (x = 6). 6 = 8 (tidak!) 6 = 10 (tidak!) 6 = 6 (Ya!) => output : “Ada” pada index ke-2 Jika sampai data terakhir tidak ditemukan data yang sama maka output : “ data yang dicari tidak ada” 2.1.Algoritma Sequential Search Procedure Seq.Search (inputL: Larikint, Input n : integer, Input x : integer, output ketemu : Boolean) {mencarikeberadaannilai x di dalamlarik L[1..n] } {K.awal :x danlarik L [1..n] sudahterdefinisinilanya} {K.akhir : Ketemubernilai true jika x dutemukan, jika x tidakditemukanketemubernilai false } DEKLARASI A : integer; { pencatatindekslarik } ALGORITMA a 1 While (a
Pencarian Bagi Dua (Binary Search) Sebuah algoritma pencarian biner (atau pemilahan biner) adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear, dengan menghilangkan setengah data pada setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu komputer. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah
sisanya dengan cara yang sama. Pada intinya, algoritma ini menggunakan prinsip divide and conquer, dimana sebuah masalah atau tujuan diselesaikan dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini membagi sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja.Algoritma ini bekerja dengan cara memilih record dengan indeks tengah dari tabel dan membandingkannya dengan record yang hendak dicari. Jika record tersebut lebih rendah atau lebih tinggi, maka tabel 3
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses kembali secara rekursif. Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list) nilai. Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang sama. Metoda Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array sudah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau asscending. Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table, lebih kecil daripada waktu yang dibutuhkan algoritma sequential search. Data harus disorting dahulu dan algoritma lebih rumit, tidak baik untuk data berantai. algoritma ini hanya bisa digunakan pada tabel yang elemennya sudah terurut baik
menaik maupun menurun. Pencarian Biner (Binary Search) dilakukan untuk : 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. Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : Data diambil dari posisi 1 sampai posisi akhir N Kemudiancariposisi data tengah dengan rumus (posisiawal + posisiakhir) / 2 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebihkecil, ataulebihbesar? Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1 Jikalebihkecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1 Jika data sama, berartiketemu.
Contoh Binary Search . Misalkan kita ingin mencari 17 pada data berikut: 3 9 11 12 15 17 23 31
Awal
Tengah
4
35
Akhir
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
1. Mula–mula dicari data tengah, dengan rumus (1+ 9) / 2 = 5. 2. Berarti data tengah adalah data ke-5, yaitu 15. 3. Data yang dicari, yaitu 17, dibandingkan dengan data tengah ini.
3
9
11
12
4. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama dengan posisi tengah + 1 atau 6.
15
17
23
Awal 1. Data tengah yang baru didapat dengan rumus (6 + 9) / 2 = 7. Berarti data tengah yang baru adalah data ke-7, yaitu 23. 2. Data yang dicari, yaitu 17 dibandingkan dengan data tengah ini. 3
9
11
12
31
Tengah
35
Akhir
3. Karena 17 < 23, berarti proses dilanjutkan tetapi kali ini posisi akhir dianggap sama dengan posisi tengah – 1 atau 6.
15
17
23
31
35
Awal = Akhir 1. Data tengah yang baru didapat dengan rumus (6 + 6) / 2 = 6. Berarti data tengah yang baru adalah data ke-6, yaitu 17. 2. Data yang dicari dibandingkan dengan data tengah ini dan ternyata sama. Jadi data ditemukan pada indeks ke-6. 3
9
11
12
3. Bagaimana jika data yang dicari tidak ada, misalnya 16? 4. Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar dari posisi akhir.
15
untuk lebih jelasnya perhatikan proses pencarian 16 pada data di atas. Prosesnya hampir sama dengan pencarian 17. Tetapi setelah posisi awal = posisi akhir = 6,
17
23
31
35
Awal Akhir proses masih dilanjutkan lagi dengan posisi awal = 6 dan posisi akhir = 5 Disini dapat dilihat bahwa posisi awal lebih besar 5
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
daripada posisi akhir, yang artinya data
tidak ditemukan.
III. PERANCANGAN SISITEM 3.1 Perancangan Sistem Setelah tahap analisis dilakukan dan dapat didefinisikan tentang permasalahan yang ada dan menghasilkan suatu kebutuhan yang diperlukan, maka tahap selanjutnya adalah tahap perancangan sistem. Perancangan sistem merupakan tahap lanjutan setelah tahap analisis dalam siklus hidup pengembangan sistem. Perancangan sistem adalah suatu determinasi dari proses-proses dan data yang dibutuhkan oleh sistem yang baru. Jika sistem tersebut berbasis komputer maka perancangan dapat memasukkan spesifikasi dari tipe-tipe perangkat yang digunakan. 3.2 Rancangan Data Flow Diagram (DFD) Data Flow Diagram (DFD) merupakan alat bantu yang dapat menggambarkan sistem secara lengkap
dan jelas, baik sistem yang sudah ada maupun sistem yang masih dalam rancangan. Data Flow Diagram(DFD) ini menjelaskan mengenai aliran informasi, proses, basis data dan sumber tujuan data yang dilakukan oleh sistem. Tingkatan atau level Data Flow Diagram(DFD) dimulai dari Diagram Konteks, yaitu menjelaskan dan menggambarkan mengenai sistem secara umum yang terdiri dari beberapa external entity (elemen-elemen diluar sistem) yang memberikan input ke dalam sistem. Diagram konteks akan di uraikan ke dalam beberapa level diagram yang ada dalam sistem sehingga menghasilkan uraian sistem yang lebih rinci. Adapun diagram konteks Visualisasi Metode Sequential Search untuk pencarian data ini adalah sebagai berikut :
3.2.1 Diagram Konteks
Gambar 4.1 Diagram konteks dari Visualisasi sequential search
6
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
3.2.2 DFD Level 1Visualisasi Sequential Search
Gambar 4.2 DFD Level 1 visualisasi sequential search 3.3 Rancangan Flowchart Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah.Flowchart merupakan cara penyajian dari suatu algoritma Tujuan membuat flowchart 1. Menggambarkan suatu tahapan penyelesaian masalah 2. Secara sederhana, terurai, rapi dan jelas 3. Menggunakan simbol-simbol standar Dalam penulisan Flowchart dikenal dua model : 1. System Flowchat System Flowchart adalah bagan yang memperlihatkan urutan prosedure dan
proses dari beberapa file didalam media tertentu. Selain itu juga menggambarkan file yang dipakai sebagai input dan output. Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkanmasalah. 2. Program Flowchart Program Flowchart adalah bagan yang memperlihatkan urutan dan hubungan proses dalam suatu program. Dua jenis metode penggambaran program flowchart: 1) Conceptualflowchart, menggambarkan alur pemecahan masalah secara global 2) Detailflowchart,menggambarkan alur pemecahan masalah secara rinci
7
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
3.3.1 Flowchart Visuali
sasi Metode Sequential Search Gambar 4.5 Flowchart Visualisasi Metode Sequential Search IV.
IMPLEMENTASI Tahap implementasi merupakan tahap meletakan sistem agar siap untuk di oprasikan, tahap ini bertujuan untuk
mengkaji rangkaian sistem baik hardware maupun software sebagai sarana pengolahan data.
1. Tampilan Input Data yang dicari
Gambar 5.3 Tampilan Input Data yang dicari 8
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
2. Tampilan Proses Data Ditemukan
Gambar 5.4 Tampilan Proses Data Ditemukan V.
KESIMPULAN Untuk membuat aplikasi visualisasi metode sequential search untuk pencarian data seperti program ini, maka ada beberapa tahapan yang perlu diperhatikan, yaitu : 1. Memasukanurutan data yang dilakukansecara random 2. Memasukan data yang akandicari. 3. Melakukan proses pencarian data yang akandicaritadi. Penerapan Visualisasi metode sequential searchini belum mencapai solusi yang optimum karena masih banyak ditemukan beberapa kekurangan Hal ini disebabkan karena : 1. Data yang akandicarimasihterbatasdenganmen ggunakan array sebanyak 8 larik, dan data nya pun bersifat temporary. 2. Belumadanyainformasi yang lebihterperincidalampencarin data nya.
Saran yang dapat dikemukakan antara lain : Perlu diadakan penelitian lebih lanjut tentang aplikasi visualisasi metode sequential search untuk pencarian data agar dapat lebih terperinci dan jelas dalam pencariannya . Program aplikasivisualisasi metode sequential search untuk pencarian data ini masihjauh dari sempurna, maka saran dan kritik sangat diharapkan untuk pengembangan dan perbaikan dari program ini.
9
Visualisasi Metode Sequential Search (Dadang Haryanto - H. Akik Hidayat)
VI. DAFTAR PUSTAKA Desiani, Anita dan Muhammad Arhami. 2006. Konsep Kecerdasan Buatan. Yogyakarta: Andi. Hartono, Jogiyanto, 2004, Pengenalan computer. Yogyakarta : Andi. Kusumadewi, Sri. 2003. Artificial Intelligence (Teknik dan Aplikasinya).Yogyakarta : Graha Ilmu. M. Ichwan. 2010. Pemrograman Basis Data Delphi 7 dan MySQL. Bandung : Informatika. Munir, Rinaldi. 2004. ALGORITMA PEMROGRAMAN 2 dalam bahasa Pascal dan C. Bandung : Informatika. Munir, Rinaldi. 2011. ALGORITMA PEMROGRAMAN 3 dalam bahasa Pascal dan C. Bandung : Informatika. Suyanto. 2007. Artificial Intelligence: Searching, Reasoning, Planning and Learning. Bandung : Informatika. Sjukani, Moh. 2010. Struktur data (Algoritma dan Struktur data ). Jogjakarta:Mitra wacana media. Andi. 2011. Cepat mahir belajar Delphi.Jogjakarta : Wahana Komputer.
10