SEARCHING (PENCARIAN)

Ukuran: px
Mulai penontonan dengan halaman:

Download "SEARCHING (PENCARIAN)"

Transkripsi

1 SEARCHING (PENCARIAN) PENDAHULUAN Pada bab ini akan membahas beberapa metoda pencarian data (searching) untuk menemukan suatu informasi dari sejumlah data yang ada. Pada dasarnya cara mengorganisir data sedikit banyak akan mempengaruhi efisiensi pencarian. Dalam kehidupan sehari-hari, misalnya mencari suatu kata dalam sebuah kamus, atau mencari nomor telepon di buku telepon merupakan suatu proses pencarian. 1. ISTILAH-ISTILAH DASAR Ada beberapa istilah dasar yang perlu kita ketahui dalam proses searching (pencarian), yaitu sebagai berikut : Pencarian data (table look-up atau storage and retrieval information) adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin. Secara umum kita akan memakai anggapan bahwa sejumlah N rekaman telah tersimpan dalam pengingat komputer, dan persoalannya adalah mencari suatu rekaman yang kita inginkan Setiap rekaman yang terdiri dari sejumlah data disebut dengan medan (field). Setiap rekaman terdapat suatu medan yang mempunyai nilai tertentu. Medan yang nilainya bisa membedakan satu rekaman dengan rekaman lain disebut dengan medan kunci (field key), disingkat sebagai kunci. Kumpulan dari semua rekaman yang kita miliki disebut dengan berkas (file) atau tabel Hubungan antara kunci dengan rekaman bisa merupakan hubungan yang sederhana atau kompleks. Pada bentuk yang paling sederhana, kunci yang terletak di dalam rekaman disebut dengan internal key atau embedded key. Sedangkan, tabel yang terpisah dari tabel utama yang berisi kunci yang menunjuk pada rekaman tertentu disebut dengan external key. Kunci primer (primary key) adalah sebuah kunci yang terdapat pada setiap rekaman yang dapat membedakan semua rekaman dalam suatu berkas. 1

2 Contoh: Data setiap mahasiswa pada suatu universitas. Untuk setiap mahasiswa, dipastikan bahwa nomor mahasiswanya pasti berlainan. Maka nomor mahasiswa dapat dijadikan sebagai kunci primer. Kunci yang digunakan untuk membedakan setiap kunci tidak selalu terdiri dari sebuah medan saja. Ada kalanya terdiri dari beberapa medan sekaligus. Sebagai contoh kita menggunakan data pribadi di atas. Ada kalanya selain nomor mahasiswa, maka kota asal mahasiswa tersebut juga bisa digunakan sebagai kunci. Dalam hal ini tentu akan ada sejumlah mahisiswa yang berasal dari kota yang sama. Kunci yang demikian ini disebut dengan kunci sekunder (secondary key). Algoritma pencarian (searching algorithm) adalah algoritma yang menerima argumen K (sebagai kunci), dan dengan langkah-langkah tertentu akan mencari rekaman yang kuncinya bernilai K. Hasil dari pencarian ada dua yaitu data yang dicari ditemukan (succesful) atau tidak ditemukan (unsuccessful). Pencarian yang berhasil menemukan rekaman disebut retrival. Algoritma pencarian dan penyisipan (search and insertion algorithm) adalah algoritma yang menambahkan ke dalam berkas yang sudah ada jika data yang dicari tersebut tidak ditemukan. Metoda pencarian data bisa dikelompokkan dengan beberapa cara, Kelompok pertama, yaitu : 1. Pencarian internal (internal searching). Pada pencarian ini semua rekaman yang diketahui berada dalam pengingat computer 2. Pencarian eksternal (external searching). Pada pencarian ini tidak semua rekaman yang diketahui berada dalam pengingat komputer, tetapi ada sejumlah rekaman yang tersimpan dalam penyimpan luar, misalnya disket, dll. Kelompok kedua, yaitu : 1. pencarian statis (static searching), dalam pencarian ini banyaknya rekaman yang diketahui dianggap tetap 2. pencarian dinamis (dynamic searching). dalam pencarian ini banyaknya rekaman yang diketahui bisa berubah-ubah yang disebabkan oleh penambahan atau penghapusan suatu rekaman. Pemilihan struktur data yang digunakan untuk menyimpan data yang diketahui akan mempengaruhi efisiensi pencarian itu sendiri. Pada bagian ini struktur data 2

3 yang digunakan yaitu, menggunakan vektor dengan deklarasi tipe array dimensi 1, dan senarai berantai (menggunakan pointer). Contoh : Vektor yang digunakan mempunyai deklarasi sebagai berikut: type Larik = array[l..1000] of integer; Untuk senarai berantai, deklarasi simpul yang digunakan adalah: type List = ^Simpul; Simpul = record Info : integer; Kanan : List; end; 2. METODE PENCARIAN BERURUTAN 2.1 Pada Tabel Acak Metoda ini adalah metode yang paling sederhana dari sejumlah metoda pencarian. Secara garis besar metoda ini bisa dijelaskan sebagai berikut. Dari vektor yang diketahui, data yang dicari dibandingkan satu per satu sampai data tersebut ditemukan atau tidak ditemukan. Pada saat data yang dicari sudah ketemu, maka proses pencarian langsung dihentikan. Tetapi jika data yang dicari belum ketemu, maka pencarian diteruskan sampai seluruh data dibandingkan. Jika tidak ditemukan, maka data tersebut akan ditambahkan sebagai elemen terakhir dari vektor yang diketahui Kelemahan metode ini adalah jika untuk vektor dengan N elemen maka harus dilakukan pencarian sebanyak N kali pula. Algoritma pencarian_vektor_berurut 1. Vektor A i yang telah terurut, i = 1, 2, 3,..., N 2. (inisialisasi). Ada=false. 3. Untuk i:=1 sampai N lakukan Jika X = A[i] maka : Ada = true Posisi = i i = N 4. Selain itu N = N+1 A[i] = X 3

4 5. Selesai Perhatikan prosedur program pada bagian lampiran. (Program 1. Pencarian menggunakan metode pencarian berurutan pada sebuah vector) Untuk implementasi menggunakan struktur data yang berupa senarai berantai, prosedurnya disajikan dalam Program 2. Dalam prosedur tersebut, s adalah pointer yang menunjuk pada simpul pertama, dan s1 adalah simpul yang menunjuk pada simpul terakhir dalam senarai berantai. Pointer yang menunjuk ke simpul terakhir diperlukan karena apabila data yang dicari tidak ditemukan, maka simpul baru akan disambungkan pada senarai berantai tersebut. (Program 2. Pencarian menggunakan metoda pencarian berurutan pada rebuah senarai berantai). Bila ingin menambah isi array, perlu diperhatikan jumlah elemen array yang telah dideklarasikan agar tidak terjadi kesalahan. Dengan menggunakan senarai berantai, hal ini tidak perlu terjadi sejauh kapasitas pengingat masih mencukupi. Keuntungan lain pemakaian senarai berantai lebih mempermudah untuk melakukan penghapusan. Dalam array, jika melakukan penghapusan suatu elemen, maka kita harus melakukan penggeseran, yang banyaknya penggeseran tergantung terhadap letak elemen yang akan dihapus. Jika tidak ada penambahan dan penghapusan elemen, berarti kita akan melakukan pencarian pada tabel berukuran tetap, yaitu N, maka banyaknya pembandingan tergantung terhadap letak elemen yang akan dicari. Jika elemen yang dicari terletak sebagai elemen pertama, berarti pembandingan cukup dilakukan satu kali. Sebaliknya jika elemen yang dicari terletak sebagai elemen terakhir, maka kita perlu melakukan pembandingan sebanyak N kali. Notasi yang sering digunakan untuk menyatakan suatu persamaan yang berorde N adalah O(N). 2.2 Pencarian pada Tabel yang Sudah Diurutkan Ada beberapa teknik yang dapat meningkatkan efisiensi pencarian, misalnya pada tabel yang sudah diurutkan dan ukuran tabel tersebut tetap. Secara garis besar proses pencarian pada tabel yang sudah terurut sebagai berikut. 4

5 Dimulai dari elemen pertama pada tabel dilakukan pembandingan dengan elemen yang dicari. Jika elemen dalam tabel masih lebih kecil dari elemen yang dicari, pencarian diteruskan. Jika sudah lebih besar, pencarian dihentikan dan bisa dipastikan bahwa elemen yang dicari memang tidak ditemukan. Jika elemen yang dicari tidak ditemukan dan kita ingin menyisipkan elemen tersebut pada posisinya yang tepat, maka seringkali diperlukan adanya penggeseran terhadap eleimen-elemen yang nantinya akan terletak pada subskrib yang lebih besar dari elemen yang dicari. Algoritma di bawah ini menjelaskan proses di atas untuk diterapkan pada sebilah vektor. Algoritma cari_vektor_urut_naik 1. vektor A i yang telah terurut dengan i= 1, 2, 3,..., N 2. (inisialisasi) Ada = false i = 1 j = 0 3. Untuk i = 1, 2,..., N atau ada = true : Jika A[i] = X, maka Posisi = i, ada = true Jika tidak, jika A[i] > X, maka j = i dan i = N-1 i = i+1 Jika ada = false maka Jika j = 0 maka A[N+1] =X Jika tidak, maka Untuk i = n, n-1, n-2,..., j A[i+1] = A[i] A[j] = X 4. N = N+1 5. Selesai. (Program 3.Pencarian menggunakan metoda pencarian berurutan pada vektor yang elemennya telah diurutkan secara urut naik) 5

6 Untuk senarai berantai, seperti pada contoh sebelumnya, s adalah pointer yang menunjuk ke simpul pertama dan s1 adalah pointer yang menunjuk simpul terakhir dari senarai berantai. Pointer Templ menunjukkan posisi jika kita ingin menyisipkan simpul yang baru. (Program 4. Pencarian penggunaan metoda pencarian berurutan pada senarai) 3. PENCARIAN BINER Cara lain untuk mencari data pada vektor yang elemennya telah diurutkan adalah menggunakan metoda pencarian biner (binary search). Metoda ini akan jauh lebih cepat dibanding dengan metoda berurutan. Setelah vektor diketahui diurutkan, vektor tersebut dibagi menjadi dua subvektor dengan jumlah elemen yang sama. Kemudian data dibandingkan dengan data terakhir dari subvektor pertama. Jika data yang dicari lebih kecil, maka pencarian diteruskan pada sub vektor pertama dengan terlebih dahulu membagi dua subvektor tersebut. Tetapi jika data yang dicari lebih besar dari data terakhir pada subvektor pertama, berarti data yang dicari kemungkinan terletak pada subvektor kedua. Dengan demikian pencarian dilakukan pada subvektor kedua. Proses di atas diulang sampai data yang dicari ditemukan atau tidak ditemukan. Contoh : kita akan mencari data yang bernilai 20 pada vektor berikut ini Vektor di atas kita pecah menjadi 2 (dua) subvektor sebagai berikut: subvektor 1 subvektor 2 karena data yang bernilai 20 terdapat pada subvektor 2, maka pencarian dilaksanakan pada subvektor 2, subvektor 1 tidak perlu dihiraukan lagi. Subvektor 2 kemudian dipecah lagi menjadi: subvektor 2.1 subvektor 2.2 6

7 Sekarang, data yang bernilai 20 terdapat pada subvektor 2.1. Dengan demikian subvektor 2.1 dipecah lagi. Proses diteruskan sampai data yang dicari ketemu atau tidak ketemu. Dari ilustrasi di atas maka algoritmanya sebagai berikut: Algoritma Biner 1. Vektor A i yang telah terurut, i = 1, 2, 3,..., N 2. Baca data yang dicari (X). 3. (Inisialisasi.) Ada = f alse Atas = N Bawah = Selama atas >= Bawah, maka lakukan Tengah = (Atas + Bawah) div 2. Jika X > A[Tengah] maka Bawah = Tengah + 1. Jika X < A[Tengah], maka Atas = Tengah - 1. jika tidak (x = A[tengah] ) maka Ada = true Posisi = Tengah Bawah=Atas+l. 5. Jika ada = true, maka data ketemu. Cetak DATA KETEMU Posisi = posisi Jika tidak, cetak DATA TIDAK ADA Untuk i = N, N-1, N-2,..., bawah A[i] = A[ i 1] A[bawah] = X 6. Selesai. (Program 5. Pencarian menggunakan metoda pencarian biner (binary search)) Sebagai tambahan, untuk pencarian biner ini juga dapat dilakukan pada struktur data bertipe pohon, berikut penjelasannya : Pada materi sebelumnya telah dijelaskan cara membuat. suatu pohon biner, yaitu suatu simpul diletakkan dalam cabang kiri bila isi informasinya lebih kecil dibanding informasi akar; atau sebagai cabang kanan bila informasinya lebih besar, sehingga nantinya pencarian data dapat dengan mudah dilakukan. Untuk jelasnya perhatikan dua buah pohon biner di bawah ini. 7

8 Pohon 1 Pohon 2 Gambar 1. Contoh Pohon Biner. 21 Dapat dilihat bahwa pencarian lebih cepat pada pohon 1. Contoh, untuk mencari bilangan 18, pada pohon 1 cukup dilaksanakan dengan satu kali pembandingan, sedangkan pada pohon 2, perlu dilakukan 6 kali pembandingan. 4. PENCARIAN BERURUTAN BERINDEX Metoda lain dari pencarian pada tabel yang sudah dalam keadaan urut adalah metoda pencarian berurutan terindex (indexed sequential search). Dalam hal ini diperlukan tabel tambahan yang disebut tabel index. Setiap elemen dalam tabel index berisi suatu kunci dan pointer yang menunjuk ke rekaman tertentu dalam tabel yang sesuai dengan kunci tersebut. Elemen dalam tabel index juga harus diurutkan seperti halnya dalam tabel yang asli Di bawah ini adalah suatu tabel yang menunjukkan daftar mahasiswa dari suatu universitas yang sudah diurutkan menurut nomor mahasiswanya. No. No. Mhs Nama Mahasiswa Angkatan Fakultas BAMBANG SUSILO 85 EKONOMI 2: SUSILO HADI.KUSUMO 85 TEKNIK ELEXTRO HADI SUSILO KUSUMO 85 TEKNIK ELEXTRO KUSUMO HADI SUSILO 86 EKONOMI KUSUMO SUSILO HADI 86 EKONOMI SUSILO KUSUMO HADI 86 TEKNIK ELEXTRO HADI KUSUMO SUSILO 86 TEKNIK KOMPUTER KUSUMO MENGGOLO YUDO 86 TEKNIK KOMPUTER MENGGOLO KUSUMO YUDO 87 EKONOMI KUSUMO YUDO MENGGOLO 67 EKONOMI YUDO MENGGOLO KUSUMO 87 TEKNIK ELEXTRO 12: NADI SUDIRO HUSODO 87 TEKNIK ELEXTRO SUDIRO NADI HUSODO 87 TEKNIK KOMPUTER SUDIRO HUSODO NADI 87 TEKNIK KOMPUTER HUSODO SUDIRO NADI 87 TEKNIK KOMPUTER 8

9 Dari gambar di atas, dua digit paling depan menunjukkan tahun angkatan seorang mahasiswa masuk ke universitas; dua digit di tengah menunjukkan kode fakultas, 10 adalah Ekonomi, 11 adalah Teknik Elektro dan 12 adalah Teknik Komputer. Dua digit terakhir menunjukkan nomor urutnya. Tabel diatas bisa disimpan untuk diimplementasikan menggunakan suatu struktur data tertentu untuk mendukung pencarian berurutan terindex dengan beberapa cara. Cara pertama adalah dengan menggunakan tahun angkatan sebagai kunci. Cara kedua adalah menggunakan kode fakultas untuk kuncinya. Gambar berikut menunjukkan penyimpanan tabel di atas dengan tahun angkatan sebagai kuncinya. Tabel Data 1001 BAMBANG SUSILO EKONOMI Tabel Index 1102 SUSILO HADI.KUSUMO TEKNIK ELEXTRO HADI SUSILO KUSUMO TEKNIK ELEXTRO 1001 KUSUMO HADI SUSILO EKONOMI 1003 KUSUMO SUSILO HADI EKONOMI 1101 SUSILO KUSUMO HADI TEKNIK ELEXTRO 1205 HADI KUSUMO SUSILO TEKNIK KOMPUTER 1207 KUSUMO MENGGOLO YUDO TEKNIK KOMPUTER 1004 MENGGOLO KUSUMO YUDO EKONOMI 1014 KUSUMO YUDO MENGGOLO EKONOMI 1104 YUDO MENGGOLO KUSUMO TEKNIK ELEXTRO 1109 NADI SUDIRO HUSODO TEKNIK ELEXTRO 1213 SUDIRO NADI HUSODO TEKNIK KOMPUTER 1216 SUDIRO HUSODO NADI TEKNIK KOMPUTER 1223 HUSODO SUDIRO NADI TEKNIK KOMPUTER Setiap elemen dalam tabel index terdiri dari dua buah medan, medan pertama menunjukkan tahun angkatan yang dimaksud, medan kedua berisi pointer yang menunjuk ke tabel data yang rekaman pertamanya berisi sambungan dari nomor mahasiswa yang tahunnya dinyatakan dalam medan pertama. Contoh, rekaman pertama dalam tabel index, pointernya bernilai 1; hal ini menunjukkan, bahwa 1 adalah nomor rekaman pertama dalam tabel data yang tahun angkatannya adalah 85. Dengan cara ini bisa dihitung mahasiswa yang masuk pada universitas tersebut untuk setiap angkatannya. Sebagai contoh, banyaknya mahasiswa yang masuk pada tahun 85 adalah sebanyak pointer tahun 86 dikurangi dengan pointer tahun 85, yaitu sebanyak 3 mahasiswa (4-1). Untuk mengetahui banyaknya, mahasiswa yang masuk pada tahun 87 diperlukan data sentinel yang nilai pointernya apabila dikurangi dengan nilai pointer pada tahun 87 adalah tepat. Dalam contoh di atas, elemen terakhir dari tabel index berisi adalah data sentinel. 9

10 Program berikut merupakan contoh pembentukan berkas berurutan berindex berdasarkan tahun angkatan. Dalam program tersebut, tipe data untuk tabel index dan berkas yang dimaksud dibuat berbeda (karena memang biasanya berbeda). Deklarasi tipe data untuk tabel index dan tabel data yang berisi data mahasiswa adalah sebagai berikut: type {* Elemen tabel index*} Index = record Kunci : string[2]; Awal : integer end; {* Elemen data*} Data = record No Mhs Nama,Fakultas end; : string[4]; : string[20] {*Tabel index*} Li = array(0..101] of Index; {* Tabel data *} Ld = array(l..100] of Data; Dalam deklarasi di atas, ukuran tabel index dibuat seperti pada contoh di atas, untuk menyediakan tempat bagi data sentinel yang diperlukan. Data yang akan dicoba, sebelumnya sudah disimpan dalam berkas teks yang diberi nama COBADATA.DAT Secara singkat program di bawah ini bisa dijelaskan sebagai berikut. Setelah data dibaca dari berkas COBADATA.DAT (yang sudah dalam keadaan urut), dibentuk tabel index seperti dijelaskan di atas. Jika kita ingin mencari suatu nomor mahasiswa, terlebih dahulu nomor mahasiswa tersebut dipecah menjadi dua untai, yaitu untai yang berisi tahun angkatan dan untai yang berisi kode fakultas dan nomor urut mahasiswa. Pencarian dimulai dengan mencari tahun angkatan pada tabel index: Jika ditemukan, selanjutnya diteruskan dengan mencari data yang dimaksud pada tabel data. Jika tahun angkatan yang dicari tidak ditemukan, pencarian langsung dihentikan dan tidak perlu mencari pada tabel data, karena dalam tabel data yang terbentuk sesungguhnya merupakan sambungan dari tabel index. Untuk pencarian pada tabel index, dan tabel data dilakukan dengan cara pencarian berurutan. Berikut adalah cara penulisan data untuk disimpan sebagai berkas teks yang disimpan dengan nama COBADATA.DAT 10

11 BAMBANG SUSILO EKONOHI SUSILO HADI KUSUMO TEKNIK ELEKTRO HADI SUSILO KUSUMO TEKNIK ELEKTRO KUSUMO HADI SUSILO. EKONOMI KUSUMO SUSILO HADI EKONOMI SUSILO KUSUMO HADI TEKNIK ELEKTRO HADI KUSUMO SUSILO TEKNIK KOMPUTER KUSUMO MENGGOLO YUDO TEKNIK KOMPUTER MENGGOLO KUSUMO YUDO EKONOMI KUSUMO YUDO MENGGOLO EKONOMI YUDO MENGGOLO KUSUMO TEKNIK ELEKTRO HADI ' SUDIRO HUSODO TEKNIK ELEKTRO SUDIRO HADI HUSODO TEKNIK KOMPUTER SUDIRO HUSODO HADI TEKNIK KOMPUTER HUSODO SUDIRO HADI TEKNIK KOMPUTER (Program 6. Pencarian menggunakan metoda pencarian berurutan terindex). Searching Keuntungan yang bisa dilihat dari metoda ini adalah bahwa pencarian dapat dipercepat karena jika index yang dicari tidak ditemukan, maka berarti data yang akan dicari memang tidak ada dalam tabel data. Tetapi jika indexnya ditemukan, maka hanya sebagian kecil dari tabel data yang perlu kita cari. Hal ini tentu akan mempercepat pencarian dibanding harus mencari pada keseluruhan tabel data. 5. HASHING Pada metode-metode pencarian yang telah kita pelajari, secara umum banyaknya pembandingan untuk mencari suatu data atau rekaman yang diinginkan tergantung dari banyaknya data atau rekaman yang diketahui. Jika setiap data atau rekaman bisa ditemukan dengan sekali pemasupan terhadap tabel yang digunakan untuk menyimpan. data atau rekaman tersebut, maka lokasi data atau rekaman dalam tabel hanya tergantung dari kunci yang digunakan dan tidak tergantung dari kunci yang lain. Cara yang paling eflsien untuk mengorganisir tabel ini adalah dengan menggunakan larik. Jika kunci berupa integer, kunci tersebut sekaligus bisa digunakan sebagai subskrib dari larik yang dimaksud. Perhatikan contoh berikut. Sebagai contoh, suatu toko buku menjual 100 judul buku dan setiap buku mempunyai maksimum dua digit pengenal. Cara yang paling sederhana untuk menyimpan data di atas adalah: type NomorBuku = array [0..99] of string; var Buku : NomorBuku; dimana Buku [ i ] menunjukkan buku yang mempunyai pengenal (nomor buku) ke i. Dalam contoh ini, nomor buku dimanfaatkan sebagai subskrib larik Buku. 11

12 Masalahnya jika nantinya toko buku tersebut menjual lebih dari 100 judul buku, dan buku-buku tersebut dikelompokkan sedemikian rupa sehingga masingmasing buku sekarang harus memerlukan kode dengan 7 buah digit maka dengan menggunakan larik seperti contoh di atas, pemilik toko buku harus menyediakan larik dengan 10 juta elemen untuk menyimpan data buku yang ada, ini jelas tidak praktis, sehingga diperlukan cara yang lebih efisien untuk mengatasi hal ini. Cara yang dimaksud pada dasarnya adalah untuk mengkonversikan kode buku (yang memerlukan 7 digit) menjadi integer dalam batas tertentu. Secara ideal, masingmasing kode buku harus bisa dikonversikan menjadi suatu integer yang berbeda, tetapi hal ini seringkali sukar untuk dilaksanakan. Dengan menggunakan contoh di atas, toko buku tersebut mempunyai kurang dari 1000 judul buku, dan tetap menggunakan kode yang terdiri dari 7 buah digit. Dengan demikian, pemilik toko buku tersebut cukup menyediakan larik dengan 1000 buah elemen yang nomor subskripnya 0-999, dan memanfaatkan 3 digit terakhir dari kode buku untuk menempatkan semua kode buku pada larik yang diketahui. Berikut ilustrasinya : (lihat Gambar. 2), dari gambar tersebut bisa kita lihat, bahwaj arak dua buah kode buku hanya ditentukan oleh 3 digit terakhhir, sehingga dua buku dengan kode dan akan mempunyai jarak yang lebih besar dibanding dua buku yang mempunyai kode dan Dari contoh di atas, kita bisa memperhatikan bahwa pemilik toko buku tersebut memerlukan suatu fungsi untuk mengkonversikan kode buku ke dalam nomor posisi dari larik yang diketahui. Fungi ini disebut dengan fungi hash. Metode pencarian yang memanfaatkan fungsi hash disebut dengan hashing atau hash addressing. Tujuan utama dalam penentuan fungsi hash adalah agar dua buah kunci yang berbeda tidak mempunyai nilai hash yang sama. Jika hal ini terjadi, akan menyebabkan terjadinya tabrakan (hash collision/hash clash). 5.1 Fungsi Hash Secara umum fungsi hash (H) adalah fungsi untuk mengkonversikan himpunan kunci rekaman (K) menjadi himpunan alamat pengingat (posisi subskrib dalam larik/l) dan bisa dituliskan dengan menggunakan notasi: H: K L Dua hal yang perlu dipertimbangkan dalam pemilihan fungsi hash adalah sebagai berikut: 12

13 1. Fungsi H harus mudah dan cepat dicari atau dihitung. 2. Fungsi H sebisa mungkin mendistribusikan posisi yang dimaksud secara uniform sepanjang himpunan L, sehingga banyaknya tabrakan yang mungkin terjadi bisa diminimalkan Gambar 2. Contoh Konversi Kunci menjadi Posisi Ada beberapa metode untuk memotong-motong kunci dalam himpunan K menjadi kombinasi tertentu yang akan dipakai sebagai fungsi H. Berikut disajikan beberapa metode untuk memotong-motong kunci sehingga bisa diperoleh fungi hash yang dengan mudah bisa dihitung. 1. Metode Pembagian Dalam cara ini kita bisa memilih suatu perubah m yang nilainya lebih besar dibanding banyaknya kunci dalam K, misalnya n dan biasanya dipilih suatu bilangan prima. Fungsi hashnya ditentukan sebagai: 13

14 H(k) = k mod m atau H(k) = k mod m + 1 Persamaan pertama dipilih apabila dinginkan alamat kunci adalah 0 sampai m - 1. Persamaan kedua dipilih jika diinginkan alamat kunci adalah 1 sampai m. Contoh : nomor mahasiswa terdiri dari 5 buah digit. Misalkan L terdiri dari 100 buah alamat yang masing-masing alamat terdiri dari 2 karakter: Nomor mahasiswa yang diketahui misalnya 10347, 87492, 34212, dan Untuk menentukan alamat dari keempat nomor mahasiswa ini kita pilih suatu bilangan prima yang dekat dengan 99, misalnya m = 97. Dengan menggunakan fungsi H(k) = k mod m, diperoleh: H(10347) = 65 H(87492) = 95 H(34212) = 68 H(88688) = 30 Dengan demikian, nomor mahasiswa akan disimpan dalam alamat 65, nomor mahasiswa akan disimpan dalam alamat 95, nomor mahasiswa akan disimpan dalam alamat 68, dan nomor mahasiswa akan disimpan dalam alamat 30. Jika dipilih fungsi H(k) = k mod m + 1, maka keempat nomor mahasiswa di atas masing masing akan disimpan dalam alamat 66, 96, 69, dan Metode Midsquare Dalam metoda ini, kunci yang diketahui dikuadratkan, dan fungsi hash yang dipilih adalah: H(k) = I Nilai I diperoleh dengan menghapus digit-digit pada, kedua sisi dari k, dengan catatan bahwa banyaknya digit di sebelah kiri dan sebelah kanan harus sama. Jika tidak sama, maka pada digit kiri seolah-olah ditambahkan sejumlah trailing zero, hingga akan menghasilkan alamat yang benar. Dari contoh diatas, maka alamat dari masing-masing nomor mahasiswa di atas adalah: k k H(k)

15 3. Penjumlahan Digit Dalam penjumlahan digit, kunci yang diketahui bisa dipecah menjadi beberapa kelompok yang masing-masing terdiri dari beberapa buah digit, misalnya dua buah. Kemudian digit-digit dari kelompok kelompok yang ada dijumlahkan. Pemecahan dan penjumlahan terus dilakukan jika jumlah keseluruhan kelompok yang ada. masih lebih besar dari banyaknya alamat yang akan dipakai. Dengan menggunakan nomor mahasis di atas, maka alamat dari masing-masing nomor mahasiswa bisa ditentukan sebagai berikut (dalam hal ini digunakan kelompok dengan dua buah digit, karena alamatnya diketahui dari 0 sampai 99): H(10347) = = 51 H(87492) = = 174 = I + 74 = 75 H(34212) = = 57 H(88688) = = 182 = = Cara Mengatasi Tabrakan Seperti yang telah dijelaskan sebelumnya bahwa tujuan pemilihan fungsi hash adalah untuk menempatkan rekaman pada alamat tertentu, sehingga bisa dihindari adanya tabrakan, yaitu suatu keadaan dimana dua buah atau lebih rekaman yang mempunyai data kunci yang berbeda mempunyai alamat hash yang sama. Meskipun demikian, kemungkinan adanya tabrakan selalu tetap saja terjadi, meskipun kita sudah menentukan fungsi hash yang cukup baik. Misalkan dengan menggunakan metode penjumlahan kita akan menentukan alamat hash dari nomor mahasiswa berikut H(10347) = = 51 H(87492) = = 174 = I + 74 = 75 H(34212) = = 57 H(88688) = = 182 = = 83 H(20247) = = 51 Dapat dilihat bahwa nomor mahasiswa dan memiliki alamat hash yang sama, maka dalam pencarian natinya ini akan mengakibatkan terjadinya tabrakan. Oleh karena itu, kita harus mempunyai satu cara untuk mengatasi tabrakan yang mungkin terjadi, yang disebut dengan collision resolution. 15

16 Prosedur yang baik untuk mengatasi adanya tabrakan antara lain terhadap perbandingan banyaknya data kunci (n) dalam K, dan banyaknya alamat hash (m) dalam L. Perbandingan ini, λ= n/m, disebut faktor beban. Efisiensi fungsi hash yang dilengkapi dengan prosedur untuk mengatasi tabrakan diukur dengan banyaknya pembandingan kunci (probe) yang diperlukan untuk mencari alamat dari rekaman yang mempunyai kunci k. Efisiensi ini gayut terhadap faktor beban, dan diukur menggunakan dua besaran berikut ini: B(λ) = rata-rata probe untuk pencarian yang berhasil. G(λ)= rata-rata probe untuk penearian yang gagal. B G ( λ) ( λ) 1 = = ( 1 λ) 1 2 ( 1 λ) Berikut ini akan disajikan beberapa cara untuk mengatasi kemungkinan adanya tabrakan. 1. Pengalamatan Terbuka Secara umum, cara ini bisa dijelaskan sebagai berikut. Dimisalkan sebuah rekaman dengan kunci k akan disisipkan ke dalam tabel alamat hash. Berdasarkan fungsi hash yang dipakai, alamat utnuk kunci k tersebut dihitung, misalnya pada alamat h. Jika kemudian ternyata. bahwa alamat h sudah terisi, maka harus dicari alamat lain yang masih kosong. Cara yang termudah adalah dengan mencari alamat berikutnya yang kosong. Cara ini disebut dengan linear probing. Untuk lebih memperjelas apa yang dimaksud dengan linear probing, berikut disajikan sebuah contoh : Rekaman A B C K P Q R Y Z H(k) Dimisalkan bahwa kesembilan rekaman di atas dimasukkan dengan urutan yang sama dengan urutan di atas. Maka rekaman-rekaman di atas akan tersimpan dalam pengingat sebagai: Rekaman P Q R Z - A B C K Y Alamat

17 Dari contoh di atas kita bisa melihat bahwa rekaman A, B, C, P, Q, R, dan Y menempati alamat yang tepat. Rekaman K, meskipun alamat hash sebenarnya adalah 5, tetapi karena alamat 5 sudah dipakai oleh A, maka diletakkan pada alamat berikutnya yang kosong. Demikian pula dengan rekaman Z, yang seharusnya menempati alamat 0, tetapi karena alamat 0 sudah dipakai oleh P, maka Z ditempatkan pada alamat 3. Dari contoh di atas bisa dihitung banyaknya probe rata-rata untuk pencarian yang berhasil dan gagal. Sehungga Probe rata-rata untuk pencarian yang berhasil dapat dihitung dengan cara sebagai berikut : Karena A, B, C, P, Q, R, dan Y, sudah menempati alamat yang seharusnya, maka untuk mencari informasi-informasi ini dan berhasil cukup dilaksanakan dengan sebuah probe. Untuk mencari informasi yang lain, banyaknya probe yang diperlukan untuk pencarian yang berhasil adalah dengan menghitung banyaknya alamat dari alamat yang seharusnya informasi tersebut berada sampai alamat dimana informasi tersebut dicatat. Sebagai contoh, karena K sesungguhnya harus berada pada alamat 5, sedangkan kenyatannya K berada pada alamat 8, maka pencarian K yang berhasil memerlukan 4 probe. Dengan cara yang sama, maka pencarian yang berhasil untuk Z memerlukan 4 probe. Dengan demikian, banyaknya probe rata-rata yang diperlukan untuk pencarian yang berhasil (diurutkan dari A sampai Z) adalah: B = 9 = 15 = Dan probe rata-rata untuk pencarian yang tidak berhasil bisa didapat dihitung dengan cara berikut : Jumlahkan probe yang diperlukan untuk mencari alamat kosong yang terdekat oleh setiap alamat yang ada. Maksudnya jika pencarian sudah sampai pada suatu alamat yang kosong, maka data yang dicari pasti tidak akan ditemukan. Sebagai contoh, pencarian yang tidak berhasil untuk mencari P memerlukan 5 buah probe dihitung dari posisi P sampai tanda -, untuk Q memerlukan 4 buah probe, dan seterusnya. Sedangkan, probe ratarata yang diperlukan untuk pencarian yang tidak berhasil adalah: 17

18 G = 10 = 55 = Dari contoh diatas dapat dilihat kelemahan dari linear probing yaitu data cenderung untuk mengumpul pada satu tempat. Maksudnya jika ada suatu data yang akan disisipkan pada suatu alamat, dan alamat yang dimaksud sudah dipakai, maka data baru tersebut akan ditempatkan pada lokasi berikutnya yang letaknya berurutan. Ada dua cara yang bisa dipakai untuk memperbaiki cara di atas. Kedua cara ini disebut dengan quadratic probing dan double hasing. a. Quadratic Probing Dalam quadratic probing, jika alamat untuk suatu data baru yang akan disisipkan sudah dipakai (misalnya alamat h), maka data baru tersebut tidak ditempatkan pada posisi h+1, atau h+2 (karena alamat h+1 juga sudah dipakai), dan seterusnya; tetapi, data baru akan diletakkan pada alamat dengan urutan: h, h + 1, h + 4, h + 9,... Dengan demikian, pencarian akan dilaksanakan pada urutan alamat di atas. Jika banyaknya alamat yang tersedia adalah merupakan bilangan prima, cara di atas akan melakukan pencarian pada separuh, dari seluruh alamat yang ada. b. Double hasing Dalam double hashing digunakan dua buah fungsi hash untuk menghindari adanya tabrakan. Secara sederhana cara ini bisa dijelaskan sebagai berikut. Dari kunci k ditentukan alamat hashnya yang pertama, misal H(k) = h. Kemudian ditentukan alamat hash yang kedua, misal H(k) = h m (m adalah banyaknya alamat hash yang dihasilkan dari fungsi hash yang pertama). Dengan demikian, pencarian dilakukan secara urut pada alamatalamat: h, h + h', h + 2h', h + 3h',... Suatu kerugian yang mendasar dari metode pengalamatan terbuka yaitu jika dimisalkan kita akan menyisipkan sebuah rekaman baru, misainya rek2, yang akan menempati alamat x pada tabel hash. Tetapi karena alamat x sudah terisi, 18

19 maka rekaman rek2 ini akan ditempatkan pada lokasi kosong yang pertama sesudah alamat x, misalnya x1. Sekarang misalnya rekaman yang ada pada alamat x dihapus. Dengan demikian, maka alamat x sekarang menjadi kosong. Jika kemudian kita akan mencari rekaman rek2 kita akan mendapatkan kenyataan bahwa program mungkin tidak akan menemukan rekaman tersebut meskipun sesungguhnya ada. Sebabnya adalah, bahwa pada saat rekaman rek2 akan dicari, maka berdasar fungsi hash yang dipakai, rekaman tersebut akan menempati alamat x. Tetapi karena sekarang alamat x sudah kosong, maka program tidak akan meneruskan pencariannya-ke alamat-alamat yang lain. Salah satu cara untuk mengatasi persoalan di atas adalah dengan memberi tanda khusus pada alamat-alamat yang isi sesungguhnya sudah dihapus. Dengan demikian program akan meneruskan pencarian jika program membaca alamat vang diberi tanda "dihapus". Tetapi persoalan lain bisa timbul, yaitu jika hampir semua alamat diisi dengan tanda "dihapus". Dengan cara ini, maka pencarian bisa menjadi pencarian berurutan. 2. Penggandengan Metoda lain untuk mengatasi kemungkinan adanya tabrakan alamat hash adalah dengan Penggandengan (chaining). Pada prinsipnya metode ini memanfaatkan senarai berantai (yang juga bisa diimplementasikan menggunakan larik) yang dipasang pada setiap alamat hash yang diketahui. Dengan demikian, jika kita melihat pada sebuah alamat hash lengkap dengan senarai yang menyimpan rekaman-rekaman yang mempunyai alamat hash yang sama, maka kita akan melihat adanya sebuah senarai berantai tunggal berkepala, dengan kepalanya adalah alamat hash. (Perhatikan Gambar. 3) Sebagai contoh, jika kita mempunyai rekaman-rekaman yang kunci rekamannya bisa dituliskan sebagai : dan fungsi hash yang dipilih adalah k mod 10 sehingga : 34 mod 10 = 4 56 mod 10 = 6 Dst. 19

20 Dengan demikian, alamat hash akan terdiri dari sepuluh buah alamat yang bernomor 0 sampai dengan 9 Perhatikan Gambar. 3 yang menunjukkan alamat hash lengkap dengan senarai berantainya untuk menyimpan rekaman-rekaman tersebut. Alamat Hash Gambar 3. Penggandengan alamat hash pada senarai Dengan melihat gambar tersebut, kita bisa menyusun struktur data untuk menyajikan metoda penggandengan dengan menggunakan senarai berantai, misalnya: type Sambungan = ^Rekaman; Rekaman = record Kunci : integer; Info : char; Berikut : Sambungan end; Hash = array [0..9] of Sambungan; 20

BAB X Hashing. typedef char *NomorBuku[100]; Buku = NomorBuku;

BAB X Hashing. typedef char *NomorBuku[100]; Buku = NomorBuku; BAB X Hashing Tujuan 1. Menunjukkan beberapa fungsi metode Hash 2. Dapat memilah permasalahan yang dapat diselesaikan dengan metode Hashing, sekaligus dapat menyelesaikannya Pada metode-metode pencarian

Lebih terperinci

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1 SEARCHING Pencarian data (searching) yang sering juga disebut dengan table look-up atau storage and retrieval information, adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer

Lebih terperinci

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul struktur data fd [page 1 of 7] SENARAI BERANTAI Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah kumpulan linier sejumlah data. Contohnya seperti daftar belanja harian, dimana setiap

Lebih terperinci

BAB VIII Pencarian(Searching)

BAB VIII Pencarian(Searching) BAB VIII Pencarian(Searching) Tujuan 1. Menunjukkan beberapa algoritma dalam Pencarian 2. Menunjukkan bahwa pencarian merupakan suatu persoalan yang bisa diselesaikan dengan beberapa algoritma yang berbeda

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke data sebelumnya dan berikutnya. Perhatikan gambar di bawah

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan

Lebih terperinci

BAB VI SEARCHING (PENCARIAN)

BAB VI SEARCHING (PENCARIAN) BAB VI SEARCHING (PENCARIAN) 7. 1 Pencarian Beruntun (Sequential Search) Prinsip kerja pencarian beruntun adalah membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama

Lebih terperinci

Fungsi Hash dan Metode Collision Resolution

Fungsi Hash dan Metode Collision Resolution Fungsi Hash dan Metode Collision Resolution Riffa Rufaida ( 13507007) 1) 1) Jurusan Teknik Informatika ITB, Bandung 40132, email: if17007@students.if.itb.ac.id Abstract Setiap record data memiliki kunci

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Sorting = pengurutan Sorted = terurut menurut kaidah/aturan tertentu Data pada umumnya disajikan

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

Searching. Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Searching. Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Searching Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Searching Pencarian data sering juga disebut table look-up atau storage and retrieval information adalah suatu proses untuk mengumpulkan

Lebih terperinci

BEBERAPA METODE PENYELESAIAN COLLISION PADA ORGANISASI BERKAS SECARA HASHING

BEBERAPA METODE PENYELESAIAN COLLISION PADA ORGANISASI BERKAS SECARA HASHING BEBERAPA METODE PENYELESAIAN COLLISION PADA ORGANISASI BERKAS SECARA HASHING Edhy Sutanta Jurusan Teknik Informatika, Fakultas Teknologi Industri, Institut Sains & Teknologi AKPRIND Yogyakarta Jl. Kalisahak

Lebih terperinci

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15 A. Kompetensi 1. Utama SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15 Mahasiswa dapat memahami tentang konsep pemrograman

Lebih terperinci

FILE BERKAS LANGSUNG. Rudi Susanto

FILE BERKAS LANGSUNG. Rudi Susanto FILE BERKAS LANGSUNG Rudi Susanto rudist87@gmail.com Pendahuluan Untuk menemukan suatu rekaman tidak melalui proses pencarian, namun bisa langsung menuju alamat yang ditempti rekaman. Solusi awal menyimpan

Lebih terperinci

BAB 2 LANDASAN TEORI. 2.1 Pengertian Text Mining

BAB 2 LANDASAN TEORI. 2.1 Pengertian Text Mining 13 BAB 2 LANDASAN TEORI 2.1 Pengertian Text Mining Text Mining dapat juga diartikan sebagai penambangan data berupa teks yang bersumber dari dokumen untuk mencari karta-kata yang merupakan perwakilan isi

Lebih terperinci

ORGANISASI BERKAS RELATIF

ORGANISASI BERKAS RELATIF ORGANISASI BERKAS RELATIF Suatu berkas yang mengidentifikasikan record dengan key yang diperlukan. Record tidak perlu tersortir secara fisik menurut nilai key. Organisasi berkas relatif paling sering digunakan

Lebih terperinci

MODUL IV PENCARIAN DAN PENGURUTAN

MODUL IV PENCARIAN DAN PENGURUTAN MODUL IV PENCARIAN DAN PENGURUTAN 4.1 Tujuan Tujuan modul IV ini, adalah: Praktikan bisa membuat beberapa program pencarian berdasarkan metode algoritma pencarian Praktikan bisa membuat beberapa program

Lebih terperinci

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ; Maka sekarang kita mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu kita dapat melakukan pengaksesan data, yaitu dengan menuliskan : P1^.Nama_Peg := Ariswan ; P1^.Alamat := Semarang

Lebih terperinci

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU Yolanda Y.P Rumapea Prodi Sistem Informasi, Universitas Methodist Indonesia Jl.

Lebih terperinci

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

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut Tujuan Searching & Sorting Pertemuan 9-10 Dosen Pembina Danang Junaedi TUJUAN MATERI Setelah mengikuti materi pertemuan ini, mahasiswa diharapkan dapat 1. Menjelaskan dan menggunakan metode pencarian dalam

Lebih terperinci

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1 Pengenalan Algoritma & Struktur Data Pertemuan ke-1 Apa itu Struktur Data? PROGRAM ALGO RITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. Ditulis

Lebih terperinci

SEARCHING & SORTING. Pendahuluan

SEARCHING & SORTING. Pendahuluan SEARCHING & SORTING Pendahuluan Sorting dan searching merupakan salah satu operasi dasar dalam ilmu komputer. Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan

Lebih terperinci

Brigida Arie Minartiningtyas, M.Kom

Brigida Arie Minartiningtyas, M.Kom Brigida Arie Minartiningtyas, M.Kom Struktur Data Struktur dan Data Struktur suatu susunan, bentuk, pola atau bangunan Data suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode

Lebih terperinci

Struktur Data. Pertemuan 2

Struktur Data. Pertemuan 2 Pertemuan 2 Tujuan Pembelajaran Mahasiswa mampu menjelaskan konsep struktur data (Pengertian Struktur data, Konsep struktur data, Tipe data sederhana, Deklarasi data dalam bahasa pemrograman. 1. Pengertian

Lebih terperinci

Bab 1 Pengantar Struktur Data

Bab 1 Pengantar Struktur Data Bab 1 Pengantar Struktur Data 1.1 Struktur Data dan Algoritma 1.2 Gambaran Penggunaan Struktur Data 1.3 Mengenal Berbagai Struktur Data Secara Sekilas 1.4 Efisien? Bagaimana Mengukurnya? Bab 2 Instalasi

Lebih terperinci

ORGANISASI BERKAS RELATIF

ORGANISASI BERKAS RELATIF ORGANISASI BERKAS RELATIF PENGERTIAN BERKAS RELATIF Suatu cara yang efektif dalam mengorganisasi sekumpulan record yang membutuhkan akses sebuah record dengan cepat adalah Organisasi Berkas Relatif. Dalam

Lebih terperinci

Silabus Struktur Data. Bandung 2013

Silabus Struktur Data. Bandung 2013 Silabus Struktur Data Bandung 2013 Silabus u Menjelaskan Varian dan Invarian u Membuat Alur Logika pemrograman u Menerapkan Pengelolaan Array u Memelihara Pekerjaan secara prakds u Menerapkan konsep data

Lebih terperinci

Tipe Data. Definisi Tipe Data

Tipe Data. Definisi Tipe Data Tipe Data Definisi Tipe Data Dalam pemrograman pascal, semua peubah yang akan dipakai harus ditentukan tipe data yang digunakan karena akan berpengaruh terhadap operasi bilangan yang dapat dilaksanakan

Lebih terperinci

Struktur Data. PDE - Struktur Data 1

Struktur Data. PDE - Struktur Data 1 Struktur Data Copyright@Ihsan Jatnika PDE - Struktur Data 1 Objektif Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman Mengetahui operasi yang terkait dengan struktur data

Lebih terperinci

ORGANISASI FILE. Alif Finandhita, S.Kom

ORGANISASI FILE. Alif Finandhita, S.Kom ORGANISASI FILE Penyimpanan ataupun penulisan character demi character yang ada di dalam external memory, harus diatur sedemikian rupa sehingga komputer bisa dengan mudah menemukan kembali data-data yang

Lebih terperinci

Materi 5: SEARCHING (PENCARIAN) Dosen:

Materi 5: SEARCHING (PENCARIAN) Dosen: JURNAL PRAKTIKUM (LAB. ACTIVITY) STRUKTUR DATA SI025 Materi 5: SEARCHING (PENCARIAN) Dosen: Acihmah, M.Kom Agung Nugroho, M.Kom Ikmah, M.Kom Lilis Dwi Farida, S.Kom,M.Eng Ninik Tri. H, M.Kom Prof. Dr.

Lebih terperinci

BAB 4 ORGANISASI BERKAS RELATIF

BAB 4 ORGANISASI BERKAS RELATIF BAB 4 ORGANISASI BERKAS RELATIF PENGERTIAN BERKAS RELATIF Suatu cara yang efektif dalam mengorganisasi sekumpulan record yang membutuhkan akses sebuah record dengan cepat adalah Organisasi Berkas Relatif

Lebih terperinci

Praktikum Algoritma dan Struktur Data 2010

Praktikum Algoritma dan Struktur Data 2010 BAB XI HASHING A. TUJUAN 1) Mahasiswa mampu membuat dan memdeklarasikan struktur algoritma tabel hash 2) Mahasiswa mampu menerapkan dan mengimplementasikan struktur algoritma tabel hash B. DASAR TEORI

Lebih terperinci

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi

Lebih terperinci

PERKENALAN STRUKTUR DATA. Firmansyah, S.Kom

PERKENALAN STRUKTUR DATA. Firmansyah, S.Kom PERKENALAN STRUKTUR DATA Firmansyah, S.Kom A. TEMA DAN TUJUAN KEGIATAN PEMBELAJARAN 1. Tema Perkenalan Struktur Data 2. Fokus Pembahasan Materi Pokok 1. Definisi Struktur Data 2. Tipe-tipe data 3. Algoritma

Lebih terperinci

HASHTABLE SEBAGAI ALTERNATIF DARI ALGORITMA PENCARIAN BINER PADA APLIKASI E-ACESIA

HASHTABLE SEBAGAI ALTERNATIF DARI ALGORITMA PENCARIAN BINER PADA APLIKASI E-ACESIA HASHTABLE SEBAGAI ALTERNATIF DARI ALGORITMA PENCARIAN BINER PADA APLIKASI E-ACESIA Viska Mutiawani Jurusan Informatika, FMIPA, Universitas Syiah Kuala Universitas Syiah Kuala, Jl. Syech Abdurrauf No.3,

Lebih terperinci

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan II. Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke simpul sebelumnya dan ke simpul berikutnya. Perhatikan gambar di bawah ini : 5 Deklarasi secara

Lebih terperinci

POHON CARI BINER (Binary Search Tree)

POHON CARI BINER (Binary Search Tree) POHON CARI BINER (Binary Search Tree) 50 24 70 10 41 61 90 3 12 35 47 55 67 80 99 POHON CARI BINER (Binary Search Tree) Definisi : bila N adalah simpul dari pohon maka nilai semua simpul pada subpohon

Lebih terperinci

Pertemuan III ARRAY dan RECORD

Pertemuan III ARRAY dan RECORD Pertemuan III ARRAY dan RECORD STMIK Balikpapan Jurusan Manajemen Informatika I Array Array/Larik adalah struktur data yang mengacu pada sebuah/sekumpulan elemen yang diakses melalui indeks dan merupakan

Lebih terperinci

Pencarian (Searching)

Pencarian (Searching) Praktikum 11 Pencarian (Searching) POKOK BAHASAN: Konsep pencarian dengan sequential search dan binary search Struktur data proses pencarian Implementasi algoritma pencarian sequential search dan binary

Lebih terperinci

IMPLEMENTASI PERANGKAT LUNAK DENGAN PENERAPAN PENCARIAN RELATIF (HASH SEARCH)

IMPLEMENTASI PERANGKAT LUNAK DENGAN PENERAPAN PENCARIAN RELATIF (HASH SEARCH) Techno.COM, Vol. 10, No. 1, Februari 2011: 7-14 IMPLEMENTASI PERANGKAT LUNAK DENGAN PENERAPAN PENCARIAN RELATIF (HASH SEARCH) Sri Winarno, Sumardi Program Studi Teknik Informatika, Fakultas Ilmu Komputer,

Lebih terperinci

Modul 15 Searching. 1.1 Kompetensi

Modul 15 Searching. 1.1 Kompetensi 1.1 Kompetensi Modul 15 Searching 1. Mahasiswa mampu menjelaskan mengenai algoritma Searching. 2. Mahasiswa mampu membuat dan mendeklarasikan struktur algoritma Searching. 3. Mahasiswa mampu menerapkan

Lebih terperinci

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati MODUL STRUKTUR DATA Erna Kumalasari Nurnawati Apa yang dipelajari??? Sorting = mengurutkan sejumlah data berdasar kunci tertentu array,array record Searching (pencarian)->array+record Struktur tumpukan

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1 Karakter ASCII ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode. Kode ASCII

Lebih terperinci

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Topic Complexity of Hashing Search & Binary Search Tree Algorithm Topic Complexity of Hashing Search & Binary Search Tree Algorithm Febriansyah Kurniawan M. Nasir Suyanto Searching a list of values is a common task. An application program might retrieve a student record,

Lebih terperinci

Struktur dan Organisasi Data 2 STRUKTUR DATA

Struktur dan Organisasi Data 2 STRUKTUR DATA STRUKTUR DATA PENDAHULUAN Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Algorithma : barisan langkah-langkah

Lebih terperinci

TUGAS 4 Makalah Organisasi Berkas Indexed Sequential

TUGAS 4 Makalah Organisasi Berkas Indexed Sequential TUGAS 4 Makalah Organisasi Berkas Indexed Sequential Matakuliah Sistem Berkas Disusun Oleh : Fahrur Hady (141051067) Dosen Pengampu Matakuliah Sistem Berkas : Edhy Sutanta, ST., M.Kom. JURUSAN TEKNIK INFORMATIKA

Lebih terperinci

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N Topik Bahasan Pemrosesan Sequential Pencarian pada Array Sequential Boolean Sequential tanpa Boolean Binary Sentinel Pengurutan Count Sort

Lebih terperinci

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE Ir. Suhatati Tjandra Abstrak Proses pengambilan informasi (information retrieval) merupakan hal yang sangat

Lebih terperinci

BAB VII PENCARIAN DATA (SEARCHING)

BAB VII PENCARIAN DATA (SEARCHING) 1 BAB VII PENCARIAN DATA (SEARCHING) Seperti halnya dengan pengurutan data, pencarian data (searching) merupakan operasi yang penting dalam pengolahan data. Bahkan, tidak jarang keduanya digunakan secara

Lebih terperinci

Algortima. Teguh Cahyono, ST.M.Kom

Algortima. Teguh Cahyono, ST.M.Kom Algortima Teguh Cahyono, ST.M.Kom Tipe Data & Macam Operator Macam Macam Type Data Ada enam kelompok type data pada turbo pascal yaitu : 1) Tipe data sederhana, type data sederhana dibagi menjadi dua type

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data Lecturer: Abdusy Syarif Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana Tipe Data REVIEW Slide - 2 A program is not an algorithm! Sebuah algoritma dapat diimplementasikan dengan

Lebih terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan PENGURUTAN DATA 2.1 Definisi Pengurutan Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending) atau menurun (descending).

Lebih terperinci

TUGAS BASIS DATA FILE ORGANIZATION IF2250 SEMESTER GENAP 2013/2014

TUGAS BASIS DATA FILE ORGANIZATION IF2250 SEMESTER GENAP 2013/2014 TUGAS BASIS DATA FILE ORGANIZATION IF2250 SEMESTER GENAP 2013/2014 K01 : Darwin Prasetio (13512001) Jan Wira Gotama Putra (13512015) Melvin Fonda (13512085) TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN

Lebih terperinci

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( ) MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI

Lebih terperinci

ALGORITMA & PEMROGRAMAN

ALGORITMA & PEMROGRAMAN ALGORITMA & PEMROGRAMAN Oleh: Tim Algoritma & Pemrograman IF Linked List PENGERTIAN LINKED LIST Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung,

Lebih terperinci

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program Pencarian Overview Pencarian merupakan sebuah algoritma dasar yang sering diperlukan dalam pembuatan program. Berbagai algoritma pencarian telah diciptakan dan dapat digunakan. Pemahaman tentang beberapa

Lebih terperinci

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1 Array (Tabel) Tim Pengajar KU1071 Sem. 1 2009-2010 2009/11/3 TW/KU1071 1 Tujuan Perkuliahan Mahasiswa memahami makna dan kegunaan array (tabel) Mahasiswa dapat menggunakan notasi pendefinisian dan pengacuan

Lebih terperinci

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier TIPE DATA Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data secara umum dapat dikategorikan : Tipe data

Lebih terperinci

Algoritma dan Struktur Data. Searching dan Sorting

Algoritma dan Struktur Data. Searching dan Sorting Algoritma dan Struktur Data Searching dan Sorting Searching Pada suatu data seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan cara searching. Searching adalah pencarian data

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN Praktikum 13 Algoritma Pencarian (Searching) A. TUJUAN PEMBELAJARAN Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep pencarian dengan metode sequential search dan

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY DEFINISI ARRAY ARRAY : A FINITE ORDERED SET OF HOMOGENOUS ELEMENTS ELEMEN-ELEMEN ARRAY TERSUSUN SECARA BERDERET DAN DAPAT DIAKSES SECARA RANDOM DI DALAM MEMORI.

Lebih terperinci

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul RESUME Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa linked list tersebut hanya bisa dibaca dalam satu arah saja, yaitu

Lebih terperinci

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1 Algoritma dan Pemrograman Lanjut Pertemuan Ke-6 Pencarian (Searching) 1 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional

Lebih terperinci

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi. Tabel Informasi Tabel informasi atau tabel simbol berguna untuk mempermudah pada saat pembuatan dan implementasi dari analisa semantik (semantic analyzer). Pada proses translasi, tabel informasi dapat

Lebih terperinci

Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga

Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga Analisis Cara Kerja Beragam Fungsi Hash Yang Ada Christian Angga 13508008 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut. STACK (TUMPUKAN) Salah satu konsep yang sangat berguna di dalam Ilmu Komputer adalah satu bentuk struktur data yang disebut tumpukan (stack). Dalam bab ini kita akan mencoba menggali mengapa tumpukan sangat

Lebih terperinci

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT mengapa? mengapa? mengapa? mengapa? mengapa? mengapa? mengapa? mengapa? Mengapa tombol power ada di atas? Mengapa diberi

Lebih terperinci

Searching [pencarian] Algoritma Pemrograman

Searching [pencarian] Algoritma Pemrograman Searching [pencarian] Algoritma Pemrograman mas.anto72@gmail.com 1 Jenis Pencarian Pencarian Internal proses pencarian dilakukan pada memori utama (RAM). Pencarian Eksternal proses pencarian dilakukan

Lebih terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1 2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya

Lebih terperinci

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI: Praktikum 7 Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: Konsep pengurutan dengan insertion sort dan selection sort Struktur data proses pengurutan Implementasi algoritma pengurutan

Lebih terperinci

BAB VI Pengurutan (Sorting)

BAB VI Pengurutan (Sorting) BAB VI Pengurutan (Sorting) Tujuan 1. Menunjukkan beberapa algoritma dalam Pengurutan 2. Menunjukkan bahwa pengurutan merupakan suatu persoalan yang bisa diselesaikan dengan sejumlah algoritma yang berbeda

Lebih terperinci

Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu :

Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu : BAB III KONSEP TIPE DATA 3.1 Konsep Tipe Data Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu : Type (pengenal) = tipe * pengenal = nama yang menyatakan tipe data * Tipe =

Lebih terperinci

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya

Lebih terperinci

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3 BAB 1 TIPE DATA Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data secara umum dapat dikategorikan :

Lebih terperinci

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Pencarian pada Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Latar Belakang Merupakan proses yang penting karena sering dilakukan terhadap sekumpulan data yang disimpan

Lebih terperinci

BAHAN AJAR. Mata Kuliah Struktur Data. Disusun oleh: Eva Yulianti, S.Kom.,M.Cs

BAHAN AJAR. Mata Kuliah Struktur Data. Disusun oleh: Eva Yulianti, S.Kom.,M.Cs BAHAN AJAR Mata Kuliah Struktur Data Disusun oleh: Eva Yulianti, S.Kom.,M.Cs JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI PADANG 2012 RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN

Lebih terperinci

BAB III QUEUE (ANTRIAN)

BAB III QUEUE (ANTRIAN) BAB III QUEUE (ANTRIAN) 3.1 Pengertian Antrian Antrian (Queue) merupakan kumpulan data yang mana penambahan elemen hanya bias dilakukan pada suatu ujung yaitu rear /tail / belakang, dan pengha[usan dilakukan

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE DATA, VARIABLE, dan OPERATOR DELPHI TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan

Lebih terperinci

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array} ARRAY STATIS Array (larik) merupakan tipe data terstruktur yang terdiri dari sejumlah elemen yang mempunyai tipe data yang sama dan diakses/diacu lewat indeksnya. Array memiliki jumlah komponen yang jumlahnya

Lebih terperinci

Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi

Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi Perguruan Tinggi Kompetensi Judul Unit Kompetensi Kode Unit Deskripsi Singkat Perkiraan Waktu Pembelajaran : POLITEKNIK PIKSI GANESHA : Struktur

Lebih terperinci

Pengenalan Trie dan Aplikasinya

Pengenalan Trie dan Aplikasinya Pengenalan Trie dan Aplikasinya Reinhard Denis Najogie - 13509097 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer PERTEMUAN VI POINTER 6.1 Tujuan Praktikum Praktikan mengenal type data Pointer, mengerti tentang konsep dasar dari pointer, dapat mendeklarasikan pointer di Pascal serta dapat menggunakannya di dalam sebuah

Lebih terperinci

Penerapan Fungsi Hash dalam Penempatan Parkir Mobil

Penerapan Fungsi Hash dalam Penempatan Parkir Mobil Penerapan Fungsi Hash dalam Penempatan Parkir Mobil Irfan Ariq - 13515112 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data Dasar Komputer dan Pemrograman Konsep Tipe Data dan Operator Nama dan Nilai Data Mahasiswa memahami penggunaan tipe data dan operator serta translasinya ke dalam pseudocode. Mahasiswa memahami aturan penamaan

Lebih terperinci

REVIEW ARRAY. Institut Teknologi Sumatera

REVIEW ARRAY. Institut Teknologi Sumatera REVIEW ARRAY DASAR PEMROGRAMAN Institut Teknologi Sumatera TUJUAN PERKULIAHAN Mahasiswa mengingat kembali konsep dan cara kerja array Mahasiswa mampu membuat program menggunakan array PRE TEST Tuliskan,

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

Lebih terperinci

BAB 3 SEARCHING A. TUJUAN

BAB 3 SEARCHING A. TUJUAN BAB 3 SEARCHING A. TUJUAN 1. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Searching (Pencarian) 2. Mahasiswa mampu melakukan analisis pada algoritma Searching yang dibuat 3. Mahasiswa

Lebih terperinci

BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA

BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali tipe

Lebih terperinci

Collision Resolution

Collision Resolution Collision Collision merupakan kondisi dimana terdapat lebih dari satu key yang menempati slot address yang sama Collision dapat diminimalisir dengan cara : - Mengganti fungsi hash - Mengurangi packing

Lebih terperinci

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP pendahuluan Dikembangkan tahun 1955-1956 oleh Allen Newell, Cliff Shaw dan Herbert Simon di RAND Corporation sebagai struktur data utama untuk bahasa Information Processing Language (IPL). IPL dibuat untuk

Lebih terperinci

Tipe Data dan Operator dalam Pemrograman

Tipe Data dan Operator dalam Pemrograman Diktat Pelatihan Olimpiade Komputer Oleh Fakhri Pertemuan ke 2 : Tipe Data dan Operator dalam Pemrograman 2.1 Tipe Data Tipe data adalah jenis dari suatu nilai pada pemrograman, baik itu angka, tulisan,

Lebih terperinci

6. TREE / BINARY TREE

6. TREE / BINARY TREE 6. TREE / BINARY TREE TUJUAN PRAKTIKUM 1. Praktikan mengenal Struktur data Tree. 2. Praktikan mengenal jenis-jenis tree, seperti binary tree. 3. Praktikan mengenal istilah-istilah yang terdapat didalam

Lebih terperinci

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e 03 LINKED LIST Slide 0 voice Pada perkuliahan ini kita akan membahas topik linked list atau senarai berkait. Slide 1 voice Terdapat tujuh bilangan bulat yang nilainya terurut secara menaik (ascending)

Lebih terperinci

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1 3. DOUBLE LINK LIST TUJUAN PRAKTIKUM Setelah mengenal tipe data single link list maka : 1. Praktikan diharapkan dapat menggunakan double link list. 2. Praktikan diharapkan mengerti perbedaan antara single

Lebih terperinci

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Pertemuan 9 STRUKTUR POHON (TREE) ISTILAH-ISTILAH DASAR Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Karena merupakan Graph terhubung, maka pada Pohon (Tree)

Lebih terperinci

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : PENGURUTAN Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : 1. Ascending / menaik Syarat : L[1] L[2] L[3] L[N] 2. Descending / menurun

Lebih terperinci

SORTING. Brigida Arie Minartiningtyas, M.Kom

SORTING. Brigida Arie Minartiningtyas, M.Kom SORTING Brigida Arie Minartiningtyas, M.Kom Sorting Suatu proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Sorting diterapkan

Lebih terperinci