You are on page 1of 11

Pengenalan Algoritma

Last Updated on Friday, 5 March 2010 01:30 Written by edy winarno Friday, 5 March 2010 01:30 Algoritma Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism, yang berarti proses pengerjaan arithmatika (penghitungan) dengan menggunakan angka Arab : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar WalMuqabala yang artinya Buku pemugaran dan pengurangan (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata Aljabar (Algebra). Pada abad pertengahan perhitungan dengan abacus menggunakan algorism, sehingga algorism lebih dikenal sebagai algiros (painfull) + arithmos (number). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran sm berubah menjadi thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma. Algoritma merupakan basic semua pemrograman komputer. Arti modern algoritma : sebagai resep, proses, metode, teknik, prosedure, routine. Menurut Donald E Knuth algoritma harus memenuhi persyaratan; 1). Finiteness Algoritma harus berakhir (terminate) setelah melakukan sejumlah langkah proses 2). Definiteness Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda (ambiguous). Karena itu maka sebetulnya cara paling tepat untuk menuliskan algoritma adalah dengan menggunkan formal language (bahasa pemrograman komputer). 3). Input Setiap algoritma memerlukan data sebagai masukan untuk diolah. Algoritma yang tidak memerlukan masukan apa-apa sebetulnya tidak begitu bermanfaat karena jumlah kasus yang dapat diselesaikan juga terbatas. 4). Output Setiap algoritma memberikan satu atau beberapa hasil keluaran. 5). Effectiveness Langkah-langkah algoritma dikerjakan dalam waktu yang wajar. Sebagai basis pemrograman komputer, algoritma mendeskripsikankan urutan langkah-langkah

yang diperlukan untuk pemecahan masalah (penyelesaian persoalan), yang memiliki ciri-ciri sebagai berikut; 1) selalu memiliki terminasi/langkah akhir 2) setiap langkah dinyatakan secara jelas dan tegas 3) setiap langkah sederhana, sehingga kinerjanya sehubungan dengan waktu yang effisien/bisa diterima akal 4) memberikan hasil (output), mungkin dengan satu atau tanpa input. Proses Pemrograman Proses pemecahan masalah dengan algoritma tertentu hingga menjadi program dapat dibagi dalam sembilan tahap; 1) Mendefinisikan masalah Masalah yang ingin dipecahkan harus jelas lingkupnya. 2) Membuat model Yang dimaksud model adalah bentuk matematis yang dapat digunakan untuk memecahkan masalah, misalnya apakah harus dilakukan pengurutan terhadap data, apakah menggunakan perhitungan kombinatorik, dan sebagainya. 3) Merancang algoritma (berupa flowchart/pseudocode) Apa maksudnya, bagaimana rincian prosesnya, apa keluarannya, dan lain-lainnya 4) Menulis program Ubah algoritma menjadi program (source code) dalam bahasa pemrograman tertentu. 5) Mengubah source code menjadi executable code melalui proses compiling. 6) Memeriksa hasil compiling, jika ada kesalahan maka kembali ke tahap empat. 7) Menjalankan program (run) untuk diuji kebenarannya dengan menggunakan berbagai data 8) Memperbaiki kesalahan (debugging dan testing) Apabila hasilnya salah, kesalahan mungkin terjadi saat konversi rancangan algoritma menjadi program, atau salah rancang algoritma, atau salah menentukan model, atau salah mendefinisikan masalah. Ulangi langkah yang sesuai. 9) Mendokumentasi program bila sudah benar.

Metode Searching dalam Algoritma dan Pemrograman

Last Updated on Tuesday, 9 March 2010 09:32 Written by edy winarno Monday, 8 March 2010 01:39 Data searching (pencarian data) meliputi : FETCH : pencarian lokasi rekaman - pembacaan rekaman NEXT : memperoleh rekaman berikutnya - membaca seluruh rekaman dalam berkas Algoritma searching sangat erat hubungannya dengan : sistem berkas (organisasi berkas). Macam organisasi berkas: - Pile - Sequential - Indexed sequential - Indexed - Hashed (= direct) 1 Macam Organisasi Berkas 1.1 Pile Sifat-sifat organisasi berkas dalam bentuk pile adalah: Data terkumpul/tersusun sesuai dengan kedatangannya. - Tiap rekaman terdiri dari satu data penuh Maksud pile untuk mengumpulkan massa data dan menyelamatkannya. Rekaman mungkin mempunyai medan (field) yang berbeda atau mungkin serupa namun berbeda ordernya, sehingga tiap medan (field) menggambarkan dirinya sendiri sehubungan dengan nama medan dan nilainya. Panjang medan dan rekaman berbeda-beda. Karena organisasi berkas pile tidak berstruktur, maka akses rekaman sukar dan makan waktu lama. Sehingga bila ingin mendapatkan suatu rekaman yang suatu medannya berisi suatu nilai tertentu harus mengamati setiap rekaman dalam pile sampai rekaman yang dimaksud ditemukan, dan bila ingin mendapatkan semua rekaman yang diinginkan yang mempunyai medan/nilainya tertentu, seluruh berka harus dilacak. Organisasi berkas semacam ini hanya dilakukan pada saat pengumpulan dan penyimpanan data sebelum diproses atau data sulit diorganisasikan. 1.2 Sequential Paling banyak dijumpai Format data untuk rekaman tetap - Semua rekaman panjangnya sama, terdiri dari cacah medan yang sama, panjang medan yang sama dengan order tertentu. - Nama medan dan panjang setiap medan atribut struktur berkas - Atribut khusus (biasanya medan pertama dalam tiap rekaman) kunci. - Kunci sifatnya tunggal (unique) identifikasi rekaman. - Nilai kunci untuk setiap rekaman yang berbeda selalu berbeda. - Rekaman disimpan dalam urutan kunci alfabetis atau numeris. - Digunakan untuk aplikasi batch. - Optimum bila melibatkan proses dari semua rekaman (misal aplikasi billing atau gaji). - Cocok untuk media simpan pita magnetis (tape), juga disk - Untuk aplikasi interaktif yang melibatkan query atau update suatu rekaman, unjuk kerjanya jelek. - Akses secara sequential untuk menemukan medan yang sesuai dengan kunci. - Bila seluruh berkas atau sebagian besar berkas dapat dibawa ke pengingat utama pada waktu tertentu, pelacakan yang efisien dimungkinkan. - Dapat disimpan secara sequential sederhana dalam blok-blok. - Organisasi fisis berkas sequential dapat dilakukan secara linked list (daftar berantai). Satu atau lebih rekaman disimpan dalam tiap blok secara fisis. Tiap blok pada disk berisi pointer (penunjuk) ke blok berikutnya. 1.3 Indexed Sequential Pendekatan paling populer untuk mengatasi kerugian berkas sequential - Rekaman-rekaman diorganisasikan dalam urutan berdasar pada suatu medan kunci - Dua hal ditambahkan yakni : suatu berkas index untuk mendukung akses secara random, dan berkas pelimpahan. - Index memberikan kemampuan untuk mencari rekaman yang diinginkan secara cepat. - Berkas pelimpahan untuk limpahan rekaman

(rekaman yang disisipkan). - Berkas index terdiri dari dua medan yaitu medan kunci dan pointer. - Berkas index berstruktur sequential - Yang diakses berkas index untuk mencari medan yang sama (cocok) dengan kunci lalu pointernya untuk penunjuk pada akses berkas utamanya secara langsung. - Cocok pada media disk. - Sangat mempersingkat waktu akses rekaman yang diinginkan. - Untuk meningkatkan efisiensi akses dilakukan dengan index ganda. Bagan Searching Index Sequential ( Index Tunggal)

Bagan Searching Index Sequential ( Index Ganda) 1.4 Indexed - Tak ada konsep sequential dan kunci tunggal. - Rekaman hanya diakses lewat indexnya. - Panjang rekaman dapat bervariasi. - Digunakan dua tipe index, yakni : exhaustive index (index lengkap) untuk pintu masuk (entri) setiap rekaman dalam berkas utama, dan partial index (index parsial) untuk entri rekaman dimana medan berada. - Banyak digunakan pada sistem dimana aliran waktu sangat kritis dan data yang jarang diproses secara lengkap (misal pada sistem pemesanan tiket pesawat dan sistem inventarisasi).

Teknik Pengalamatan dalam Algoritma dan Pemrograman


Last Updated on Friday, 12 March 2010 09:00 Written by edy winarno Friday, 12 March 2010 08:53 Teknik Pengalamatan Rekaman- rekaman dalam suatu berkas nalari diciri (diidentifikasi) oleh perangkat nomer yang unik atau kelompok karakter yang unik. Perangkat ini disebut kunci, biasanya menempati medan yang panjangnya tetap dalam masingmasing rekaman. Untuk membentuk suatu kunci yang unik kadang- kadang diperlukan gabungan dua medan atau lebih yang disebut kunci berderet. (concatenated key) Dalam beberapa berkas, rekaman- rekaman berisi lebih dari satu kunci. Misalnya barang yang sudah dibeli mempunyai nomer penyalur dan nomer pemakai yang berbeda. Keduanya dipakai sebagai kunci. Kunci harus unik, karena kunci itu dipakai untuk menentukan di mana rekaman harus diambil dari unit berkas dan untukk melacak rekaman itu dari berkasnya. Ini disebut kunci utama atau penciri (identifier). Persoalan dari pengalamatan berkas adalah: diberikan kunci utama, lalu bagaiman komputer mengambil rekaman atau kunci itu? Ada berbagai teknik pengalamatan rekaman. Teknik 1 : Pemayaran Berkas (Scanning the file) Cara yang paling sederhana untuk pengambilan rekaman adlah memayar berkas dengan memeriksa kunci setiap rekaman. Metode ini sangat lambat dan hanya mungkin digunakan dalam operasi pemrosesan kelompok yang memakai berkas serial, seperti pita, di mana setiap rekaman mau tidak mau harus dibaca. Teknik 2 : Pencarian Ruas (Block Search) Pada rekaman- rekaman yang diorganisasikan serial dengan kunci, tidak perlu setiap rekaman dibaca pada waktu memayar berkas. Berkas itu dalam urutan kunci utama yang menanjak (ascending). Misalnya kunci rekaman yang dicari Ks, maka pencarian dimulai dari kunci- kunci ruas yang kecil. Seperti halnya pembagian

rentetan pada bab sebelumnya, ukuran ruas yang optimum adalah NB = . Nf adalah jumlah rekaman daklam berkas. Pada pemeriksaan kalau ditemukan rekaman yang kuncinya pertama kalau kali lebih besar dari Ks, maka rekaman- rekaman dari ruas yang baru saja diloncati diperiksa (dipayar) sampai ditemukan rekaman dengan kunci Ks.Kadang- kadang cara ini disebut pencarian loncatan (skiipsearch). Misalnya ada 10.000 rekaman dalam suatu berkas. Ruas pencarian terdiri atas 100 rekaman. Rata-rata ada 100 rekaman yang diperiksa sehingga ditemukan rekaman yang diminta. Proses pencarian baru akan dilakukan pada ruas yang mengandung rekaman yang diminta. Dalam praktek tidak ada pencarian ruas yang rekamannya sampai 10.000, yang berarti seluruh berkas ada 10.0002 rekaman . Dalam hal ini diperlukan index yang mewakili seluruh rekaman. Kemudian pada index inilah dilakukan pembagian ruas-ruas pencarian. Teknik 3. Pencarian Biner ( Binary Search ) Pencarian biner pertama-tama menuju ketengah-tengah area yang mengandung rekaman yang diminta. Lalu membandingkan kunci rekaman yang ditengah-tengah itu dengan kunci yang dicari. Maka akan diketahui bahwa kunci yang dicari letaknya dibelahan yang mana. Kemudian menuju ketengah-tengah belahan itu lagi .Proses ini diulangi terus menerus. Berkas diperiksa rata-rata kurang lebih (log 2 Nf -1 ) kali. Untuk harga Nf (jumlah rekaman dalam berkas) yang besar, log Nf 1 lebih kecil daipada . Pencarian biner umumnya tidak tepat untuk pencarian pada piranti simpanan masup langsung, karena menghabiskan banyak waktu. Pencarian biner tidak dapat dipakai untuk pencarian pada rentetan, karena komputer tidak mempunyai peralatan untuk mengatur pencarian itu. Sepaerti diketahui rentetan terdiri atas rekaman-rekaman yang disatukan dengan pointer, sehingga sulit untuk menentukan titik tengahnya. Pencarian biner bermanfaat untuk pencarian rinci-rinci dalam memori utama atau simpanan tingkat padat (misalnya hard disk ). Jenis khusus dari pencarian biner adalah rinci-rinci yang dicari tidak disusun berurutan, tetapi dalam bentuk pohon biner dengan pointer-pointer. Kemudian pencarian diteruskan dengan menelusuri pointer-pointer. Keuntungan bentuk pencarian ini adalah bahwa rekaman rekaman baru dapat disisipkan ke dalam berkas , tanpa harus menggeser ke samping ( proses ini merupakan operasi yang janggal dan memakan waktu). Titik tengah yang dituju akan bergeser untuk menyesuaikan penambahan itu. Pencarian biner lebih baik dilakukan pada index-index berkas daripada langsung mencari berkasnya sendiri. Teknik 4 . Berkas Serial Berindex Pada umumnya pemayaran atau pencarian berkas-berkas untuk mendapatkan suatu rinci terlalu banyak memakan waktu. Metode tersebut hanya dipakai untuk menudingsuatu rinci dalam area yang kecil setelah teknik-teknik yang lain menemukan area yang ditempatinya. Pemayaran cakram atau alur drum dapat dibuat bersamaan dengan waktu rotasi dan karena itu bermanfaat.

Apabila berkas mempunyai kunci yang berurutan, biasanya digunakan tabel yang disebut index . Masukan pada tabel adalah kunci rekaman yang dicari, danhasil operasi pencarian tabel adalah alamat relatif atau alamat sesungguhnya dari rekaman itu pada unit berkas. Suatu index didefinisikan sebagai suatu tabel di mana beroperasi dengan prosedur yang menerima informasi tentang harga-harga atribet tertentu sebagai masukan, dan sebagai keluaran memberikan informasiyang membantu pengambilan rekaman dengan cepat, di mana rekaman itulah yang memiliki harga-harga atribut tersebut. Index utama adalah index yang menggunakan ciri rekaman (kunci utama) sebagai masukan dan memberikan informasi tentang lokasi fisis dari rekaman sebagai keluara. Index sekunder adalah index yangmengunakan kunci yang tidak unik, tapi dapat mewakili sejumlah rekaman. Index kadang- kadang disebut sebagai penuntun (directory) yang memberikan informasi tentang pertalianantara rekaman- rekaman, sebagai contoh, memberikan hubungan- hubungan dalam struktur jaring atau stuktur pohon. Apabila suatu index dipakai untuk pengelamatan berkas, maka komputer harus mencari index, bukan mencari berkas itu. Cara ini dapat menghemat banyak sekali waktu, tetapi dibuthkan ruangan untuk menyimpan index itu. Hal ini mirip dengan penggunaan indek kartu dalam perpustakaan. Pemakai mencari nama buku yang dia perludi dalam index kartu, dan index kartu itu memberikan nomor katalog, yang analog dengan alamat relatifdari letak buku itu pada ra Apabila berkas mempunyai kunci yang berurutan, umumnya index tidak berisi acuan untuk setiap rekaman, tetapi cukup satuan acuan untuk ruas- ruas rekaman. Pengacuan ruas- ruas rekaman dibandingkan dengan pengacuan pada rekaman individu sangant banyak mengurangi ukuran indek. Walaupun demikian index seringkali terlalu besar untuk dicari dalam keseluruhannya, dan dengan demikian diperlukan suatu index untuk sejumlah index. Untuk menghemat waktu pencarian, segmen- segmen dari iondex tingkat lebih rendah dapat diedarkan di antara rekaman- rekaman data yang bersangkutan Pada area berkas yang diwakili satu index, dilakukan pencarian dengan metode pencarian ruas atau pencarian biner maupun pemayaran. Pada berkas cakram biasanya mempunyai satu alur index untuk setiap silinder, yang berisi acuan acuan untuk rekaman- rekaman yang tersimpan dalam silinder itu. Berkas serial berindex merupakan bentuk yang paling umum dari pengalamatan berkas. Mode lokasi VIA dari CODASYL memakai teknik ini. Teknik 5 : Berkas Tak Berurutan Berindex (Indexed Nonsequential Files) Berkas yang tak berurutan dapat diberi index seperti halnya berkas berurutan. Tetapi memerlukan index yang jauh lebih banyak, karena harus berisi satu entry untuk satu rekaman. Lagi pula, harus berisi alamat lengkap tertentu (atau alamat relatip), sedangkan suatu index pada

berkas berurutan dapat memotong alamat yang dikandungnya, karena urutan karakter tingkat tinggidari alamat berturut-turut biasanya sama. Misalnya APNA, APNE, APNI, APNK, dan seterusnya. Dalam hal ini APN sama semua. Berkas berurutan berindex jauh lebih ekonomis, karena ruang index jauh lebih sedikit dan waktu pencarian lebih cepat. Alasan utama tetap digunakanya berkas tak berurutan ialah bahwa harus dialamatkan lebih dari satu kunci. Apabila kunci yang satu diurutkan, maka kunci yang lain tidak akan terurutkan. Suatu index dapat dipakai untuk tiap kunci, index untuk kunci berurutan mempunyai satu entry per ruas. Sedang kunci tak berurutan, satu entry untuk setiap rekaman. Untuk berkas yang berkunci banyak, kunci yang paling sering dipakai biasanya yang diurutkan, karena masup cepat dimungkinkan oleh index berurutan pendek. Analogi index kartu perpustakaan lebih tepat untuk berkas berurutan berindex. Dua kunci dipakai dalam indek kartu, yakni judul buku dan nama pengarang. Kedua kunci ini tidak dipakai untuk pengurutan buku- buku pada rak- rak. Oleh karena itu harus ada suatu entri untuk setiap buku dalam kedua index it. Buku- buku itu disusun dalam urutan dengan nomor katalog, Apabila pemakai telah menemukan nomor katalog dari buku yang diinginkannya, lalu dia mencari pada jajaran-jajaran rak (lemarilemari rak). Analog dengan pencarian Index dalam berkas. Masing- masing jajaran rak biasanya terdapat tanda nomor permulaan dan nomor akhir katalog dari buku- buku dalam jajaran itu. Pemakai membandingkan nomor katalog yang telah diperoleh dengan batasan nomor pada jajaran itu. Apabila nomor katalog yang dipegangnya berada dalam batasan itu, berarti buku yang dicari berada dalam jajaran itu. Lalu dicocokkan batasan nomor pada tiap rak dalam jajaran itu. Analog dengan index induk pada suatu index silinder dam kemudian pada index alur. Setelah menemukan rak yang memuat buku tersebut , lalu pemakai mencari- cari buku tersebut dalam rak itu. Dalam hal ini pencarian dalam berkas dapat menggunakan metode pencarian ruas ataupun pemayaran dan pencarian biner. Index perpustakaan tidak menunjukkan lokasi fisis dari buku pada raknya. Tetapi memberikan pada nomor katalog yang dapat dianggap sebagai alamat relatif atau alamat simbul. Alasannya dipakai alamat simbul ialah kalau alamat fisis yang dipakai, lalu karena buku-buku dalan rak selalu bergeser tempatnya, maka index perpustakaan harus sering diperbarui/ diubah. Dengan alasan yang sama berkas tak berurutan berindex juga kadang- kadang memakai simbul daripada alamat sungguh. Penambahan rekaman baru dan penghapusan rekaman lama selalu menggeser lokasi rekaman- rekaman. Apabila lebih dari satu kunci digunakan dalan rekaman- rekaman. Index pada suatu kunci yang bukan utama dapat menunjukkan kunci utama dari rekaman sebagai keluarannya. Kunci utama ini kemudian digunakan untuk pengembilan rekaman dengan pengalamatan yang lain. Analogi dengan index perpustakaan, misalnya judul buku adalah kunci utama, sedang nama pengarangbukan kunci utama. Dengan kunci nama pengarang, kitadapat menemukan kunci utamanya. Metode dengan menggunakan alamat simbul lebih lambat daripada alamat fisis, tetapi

pada berkas yang rekaman- rekamannya sering berubah posisinya, pengalamatan simbul menunjuk manfaatnya. Alasan lain untuk penggunaan susunan rekaman tak berurutan adalah bahwa berkas itu sangaty lincah dan penyisipan penghapusan ke dalam berkas yang berurutan akan terlalu sulit dan terlalu makan waktu. Apabilabuku yang disimpan dalam rak diurutkan menurut abjadnya, maka pemeliharaannya memerlukan waktu banyak, karenasetiap kali ditambahkan buku baru, sejumlah buku harus digeser. Kalau buku- buku itu tak berurutan, tapitapi nomor katalognya berurutan, maka buku barudapat diletakkan pada posisi terakhir dengan nomor urut katalog yang terakhir. Teknik 6 : Pengalamatan Alamat Setara Kunci (Key- Equals- Address) Berbagai metode pengubahan kunci langsung ke dalam suatu alamat berkas dipakai. Penggunaan metode- metode ini dapat menghasilkan perangkat pengalamatan yang tercepat dan tidak diperlukan pencarian berkasatau operasi index. Cara pemecahan persoalan pengalamatan yang paling sederhana aialah dalam transaksi input, memiliki alamatsama dengan kunci supaya pengambilannya sederhana.Pola ini termasuk pengalamatan langsung.Dlam banyak aplikasi, pendekatan langsung ini tidak dimungkikan. Nomor- nomor barang dari suatu pabrik tidak dapat diubah untuk menyesuaikan komputer karena nomor- nomor itu mempunyai arti yang penting bagi perusahaan tersebut. Kadang- kadang nomor acuan mesin dapat digunakan dalam transaksi input tanpa membutuhkan nomor konsumen ataupun nomor barang. Sebagai contoh, alamat berkas dari rekaman dapat dicetak pada buku tabungan langganan bank. Apabila komputer pemesan perusahaan penerbangan mengirimkan pesan teletip pada perusahaanpenerbangan yang lain, biasanya pesan itu mancakup nomor acuan mesin dari rekaman penumpang. Jawabandalam pesanan teletip diterima, misalnya tentang penegasan pemesanan, maka harus mencakup nomor acuan mesin, sehingga rekaman penumpang itu segera ditemukan. Mode lokasi DIRECT dari CODASYL memakai teknik ini. Teknik 7 : Alogaritma Untuk Konversi Kunci Penggunaan algoritma untuk mengbah kunci ke dalam alamat, hampir secepat dengan teknik alamat setara kunci (teknik 6). Alamat pada beberapa apilkasi dapat dihitung dari penciri entiti seperti lokasi jalan, nomor penerbangan dan tanggal penerbangan. Tidak semua aplikasi yang tidak menerapkannya. Tetapi metode ini adalah sederhana dan cepat untuk aplikasi yang dapat menerapkannya. Teknik ini biasanya mempunyai kerugian karena tidak memenuhi barkas dengan sempurna. Ada celah- celahnya, karena kunci- kunci tidak diubah menjadi satu himpunan alamat yang kontinu. Sebagai contoh, perusahaan penerbangan mempunyai 150 nomor penerbangan. Algoritma memakai nomor penerbangan dan tanggal untuk menghitung alamat berkas. Tetapi tidak setiap

penerbangan terbang pada setiap hari; karena itu, beberapa alamat yang dihasilkannya tidak memuat rekaman. Apabila rekaman- rekaman membentuk suatu matrik, maka cocok untuk perhitungan alamat berkas. Sebagai contoh, suatu perusahaan mempunyai banyak distributor,. Masing- masing distributor menangani 200 produk. Rekaman yang diberikan adalah tentang penjualan setiap produk untuk setiap distributor dalam setiap distributor dalam setiap minggu untuk tahun ini. Apabila panjang rekaman 100 byte, maka alamat byte relatif dari rekaman untuk distributor keA, produk ke- B, dan minggu ke- C dapat dihitung dengan rumus: (A -1) 200 52 100 + (B 1) 52 100 + (C 1) 100 + 1. Suatu program akan mengubah alamat relatif ini ke dalam sebuah alamat mesin. Kerugian dari pola ini pengalamatan langsung yakni kelakuannya. Sepaerti diketahui bahwa alamt mesin dpat berubah- ubah, karena berkas berkembang atau dipindahkan pada suatu unit yang lain atau berkas digabungkan atau dimodifikasi. Dalam hal ini pengalamatan langsung tidak dapat berjalan. Untuk menghilangkan sifat kekakuan ini pengalamatan langsung biasanya diselesaikan dalam dua tingkat. Tingkat pertama mengubah kunci menjadi suatu bilangan urut. Tingkat kedua mengubah bilangan urut itu menjadi alamt mesin. Apabila alamat mesin rekaman berbah, maka bilangan- bilangan urut yang dipakai tingkat kedua dapat dimodifikasi dengan mudah untuk menyesuaikan perubahan alamat mesin tersebut. Mode lokasi CALC dari CODASYL memakai teknik ini. Teknik 8 : Gabungan (Hashing) Suatu bentuk yang bermanfaat dan akurat dari teknik perhitungan alamat disebut gabungan atau kadang- kadang disebut pengacakan (randomizing) atau pengadukan (scrambling). Dalam teknik ini kunci rinci diubah menjadi suatu bilangan hampir acak, dan bilangan ini dipakai untuk menentuksn di man rinci tersebut disimpan. Bilangan hampir acak itu dapat berhubungan dengan alamat di mana suatu rekaman disimpan. Cara ini ;lebih ekonomis, karena berhubungan dengansuatu area di mana suatu grup rekaman disimpan yang disebut sebagai bucket (keranjang), kadang- kadang disebut pocket (saku) atau slot. Jumalah rekaman nalari yang dapat disimpan dalam area ini disebut kapasitas bucket. Apabila pada permulaan, berkas hendak diamati, lokasi dalam mana rekaman- rekaman disimpan ditentukan sebagai berikut: 1. Kunci dari rekaman diubah menjadi suatu bilangan hampir acak, n, yang terletak dalam interval l sampai N, di mana N adalah jumlah bucket yang dapat dipakai untuk simpanan. Banyak algoritma gabungan memungkinkan operasi ini, dan harus dipilih satu yang sesuai dengan himpunan kunci dari rekaman- rekaman yang dibicarakan. 2. Bilangan n diubah menjadi alamt dari bucket itu dibaca. 3. Apabila ada sisa ruang dalam bucket itu, maka rekaman nalari dapat disimpan ke dalam bucket itu.

4. Apabila bucket luapan (overflow). Ini dapat sebagai urutan berikut, atau dapat sebagai suatu bucket pada area yang terpisah yang duihubungkan dengan pointer. Apabila rekaman- rekaman hendak dibaca dari berkas, maka metode pencarian adalah sama dengan di atas , yaitu: 1. Kunci dari rekaman yang akan dicari, diubah menjadi suatu bilangan hampir acak, yaitu n, dengan menggunakan algoritma yang sama. 2. Bilangan n itu diubah menjadi alamat dari bucket ke- n, dan dan rekaman fisis di dalamnya dibaca. 3. Bucket dicari untuk mendapatkan rekaman nalari yng diminta. 4. Apabika rekaman yang diminta tiadak ada dalam bucket luapan dibaca dan di- search. Kadang- kadang perlu membaca lebih dari satu bucket luapan. Teknik ini tidak akan mencapai kerapatan packing 100%, karena adanya sifat- sifat acak dari algoritma. Banyak Berkas dapat mencapai kerapatan packing 80%atau 90% dan tidak ada ruang yang diperlukan untuk index. Banyak rekaman dapat diperoleh dengansatu pencarian, tetapi ada yang memerlukan pencarian dalam satu detik, yaitu pada bucket luapan. Jarang diperlukan pencarian ketiga atau keempat.

You might also like