Anda di halaman 1dari 59

Sesi 1

SISTEM BERKAS
Materi Sistem Berkas 1. Konsep Dasar Sistem Berkas 2. Media Penyimpanan 3. Organisasi Berkas Primer 4. Organisasi Berkas Sequential 5. Organisasi Berkas Langsung 6. Organisasi Berkas dengan Banyak key 7. Organisasi Berkas Relatif 8. Organisasi Berkas Indeks Sequential 9. Manajemen Kolisi 10. Pengurutan Rekaman 11. Sort dan Merge File 12. Pengenalan Kontrol Input/Output

Sistem Penilaian Nilai Akhir = (40% x UTS) + (60% x UAS) UTS = (50% x nilai quiz) + (50% x nilai UTS) UAS = (50% x nilai tugas/diskusi) + (50% x nilai UAS)

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 1

Rencana Penjadwalan kuliah SESI 1 TANGGAL Senin/27 Feb 2012 (kls A) Rabu/29 Feb 2012 (kls B) 2 3 4 5 6 7 Senin/05 Mar 2012 (kls A) Rabu/07 Mar 2012 (kls B) Senin/12 Mar 2012 (kls A) Rabu/14 Mar 2012 (kls B) Senin/19 Mar 2012 (kls A) Rabu/21 Mar 2012 (kls B) Senin/26 Mar 2012 (kls A) Rabu/28 Mar 2012 (kls B) Senin/02 Apr 2012 (kls A) Rabu/04 Apr 2012 (kls B) Senin/09 Apr 2012 (kls A) Rabu/11 Apr 2012 (kls B) Sesuai Jadwal 8 9 10 11 12 13 14 Senin/30 Apr 2012 (kls A) Rabu/02 Mei 2012 (kls B) Senin/07 Mei 2012 (kls A) Rabu/09 Mei 2012 (kls B) Senin/14 Mei 2012 (kls A) Rabu/16 Mei 2012 (kls B) Senin/21 Mei 2012 (kls A) Rabu/23 Mei 2012 (kls B) Senin/28 Mei 2012 (kls A) Rabu/30 Mei 2012 (kls B) Senin/04 Juni 2012 (kls A) Rabu/06 Juni 2012 (kls B) Senin/11 Juni 2012 (kls A) Rabu/13 Juni 2012 (kls B) Sesuai Jadwal UAS (Bahan dari materi 1 s/d 12) Materi 12. Pengenalan Kontrol Input/Output Tugas (Bahan dari materi 7 s/d 11) Materi 11.Sort dan Merge File Materi 10. Pengurutan Rekaman Materi 9. Manajemen Kolisi Materi 8. Organisasi Berkas Indeks Sequential UTS (Bahan dari materi 4 s/d 7) Materi 7. Organisasi Berkas Relatif Materi 6. Organisasi Berkas dengan Banyak key Materi 5. Organisasi Berkas Langsung Materi 4. Organisasi Berkas Sequential Quiz (Bahan dari materi 1 s/d 3) Materi 3. Organisasi Berkas Primer Pengenalan Pokok materi selama satu semester Materi 1. Konsep Dasar Sistem Berkas MATERI

Materi 2. Media Penyimpanan

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 2

Materi 1 KONSEP DASAR SISTEM BERKAS


Komputer dapat menyimpan informasi dalam berbagai bentuk fisik tempat penyimpanan seperti pita magnetik, disk magnetic, disk optical. Sistem operasi memberikan pandangan logis yang sejenis dari tempat penyimpanan informasi. Bentuk penyimpanan abstraksi dari unit penyimpan informasi dalam bentuk fisik adalah file. Filefile dipetakan oleh sistem operasi ke dalam peralatan fisik. A. PENGERTIAN SISTEM BERKAS File/berkas adalah sekumpulan informasi yang saling berkaitan dan didefenisikan oleh pembuatnya. Umumnya berkas adalah sekumpulan bit, byte, record di mana artinya didefenisikan oleh pembuat dan pemakainya. File data dapat berbentuk numeric, alfabeth ataupun alfanumeric. File dapat berbentuk bebas seperti file teks atau terstruktur. Suatu file mempunyai nama dan diacu berdasarkan nama tersebut. Juga mempunyai komponen lain seperti tipe, waktu pembuatan, nama dan nomor account dari pembuatnya, besar ukuran file. Kita dapat menulis informasi, mengubah informasi, menambah dan menghapus informasi dalam file. Sistem berkas adalah suatu sistem untuk mengetahui bagaimana cara menyimpan data dari file tertentu dan organisasi file yang digunakan.Sistem berkas menyediakan pendukung yang memungkinkan programmer mengakses file tanpa menyangkut perincian karakteristik penyimpanan dan peralatan pewaktu. Sistem berkas mengubah pernyataan akses file menjadi instruksi/output level rendah. Sistem berkas adalah cara untuk mengambil informasi dari suatu file. Pengarsipan dan akses adalah : a) Cara untuk membentuk suatu arsip/file dan cara pencarian record-recordnya kembali. b) Sistem berkas dan akses adalah sistem pengorganisasian, pengelolaan dan penyimpanan data pada alat eksternal dan pada organisasi file tertentu. Pada sistem berkas dan akses penyimpanan data dilakukan secara fisik. c) Teknik yang digunakan untuk menggambarkan dan menyimpan record pada file disebut organisasi file. Berikut ini adalah 4 komponen sistem berkas : a) Disk Management. Menjelaskan bagaimana seharusnya menyusun blok-blok disk ke dalam file. b) Naming. Berguna bagi pemakai yang memungkinkan untuk menunjuk file dengan penamaan yaitu dengan mengenali blok-blok disk. Dinny Wahyu Widarti, S.Kom Sistem Berkas - 3

c) Protection. Suatu cara untuk memproteksi pemakai-pemakai file dari pemakai lain. d) Reliability. File-file yang diperlukan ada tersedia jika terjadi kerusakan sistem .Setiap sistem operasi memiliki sistem tersendiri. Contoh : FAT 32 pada Window 9x. NTFS pada Windows NT dan Windows XP.FAT 16 pada MS-DOS. Ext2,Ext3 dan Reiser pada Linux. Masing masing file sistem mempuyai metode yang berbeda dalam pengaksesesan, pengorganisasian dan pengeloaan pada disk. B. PENGERTIAN ORGANISASI FILE Pengorganisasian merupakan suatu teknik yang dipakai untuk menggambarkan dan menyimpan record-record dalam sebuah berkas/file. Ada 4 teknik dasar dari organisasi berkas, yaitu : 1) Sequential 2) Relative 3) Indexed sequential 4) Multi key Secara umum berbeda dalam hal cara pengaksesannya, yaitu : 1) Direct acces, yaitu suatu cara pengaksesan record yang langsung, tanpa mengakses seluruh record yang ada. 2) Sequential Acces, yaitu suatu cara pengaksesan record yang didahului pengaksesan record-record didepannya. C. ISTILAH-ISTILAH DASAR Entitas : Adalah suatu objek yang dapat dibedakan dari lainnya. Objek disini dapat berupa barang, orang, maupun peristiwa. Contoh : Entitas gaji pegawai, entitas nomor telepon, entitas nilai ujian. Atribut : Adalah karakteristik yang menjadi ciri dari entitas. Contoh Entitas gaji pegawai terdiri dari atribut : NIP, nama, jem lembur, tunjangan, gaji pokok. Item Data : Tempat penyimpanan tiap atribut dari sebuah entitas. Contoh : Item data untuk nama mahasiswa. Biasa disebut field, namun dipakai untuk menunjukkan tempat dimana item data disimpan.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 4

Item data elementer

: Adalah bagian lebih kecil dari item data. Contoh : item data tanggal dapat dibagi menjadi intem data elementer tanggal, bulan, dan tahun.

Record Berkas/file

Adalah

kumpulan

item

data

yang

saling

berhubungan. : Adalah kumpulan record yang saling berhubungan.

D. HUBUNGAN FIELD, RECORD, DAN FILE Contoh : File Siswa yang berisi berikut ini NIM 11.01.0020 11.01.0057 11.01.0059 Nama Dinny Wahyu Widarti Alamat Singosari Blitar Sumedang Record

Field/Item data File siswa tersebut memiliki 3 field, yaitu NIM, Nama, dan Alamat. Juga memiliki 3 record, yaitu : 1) 11.01.0020 2) 11.01.0057 3) 11.01.0059 Dinny Wahyu Widarti Singosari Blitar Sumedang

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 5

Sesi 2

Materi 2 MEDIA PENYIMPANAN FILE


A. PENYIMPANAN PRIMER Penyimpanan primer (primary memory) atau disebut juga Memori utama (main memory) dan memori internal (internal memory).Komponen ini berfungsi sebagai pengingat.Dalam hal ini, yang disimpan didalam memori dapat berupa data atau program. Penyimpanan primer dibedakan menjadi dua macam, yaitu : RAM Random-Access Memory adalah jenis memori yang isinya dapat diganti selama komputer dihidupkan dan mempunyai sifat bisa mengingat data/program selama terdapat arus listrik (komputer hidup). RAM dapat menyimpan dan mengambil data dengan sangat cepat. ROM Read-Only Memory adalah jenis memori yang hanya bisa dibaca.Disediakan oleh vendor komputer dan berisi program atau data. Selain itu ada pula Cache memory,yaitu memori yang memiliki kecepatan yang sangat tinggi yang digunakan sebagai perantara antara RAM dan CPU. B. PENYIMPANAN SEKUNDER Penyimpanan sekunder atau disebut secondary memory adalah penyimpanan data yang relative mampu bertahan dalam jangka waktu yang cukup lama di luar CPU maupun penyimpanan primer. Ada dua jenis penyimpanan sekunder, yaitu : 1. Serial/sequential access storage device(SASD) Contoh : Magnetic tape, punched card, punched paper tape 2. Direct access storage device (DASD) Contoh : Magnetic disk, floppy disk, C. JENIS MEDIA PENYIMPANAN FILE 1. Magnetic Tape

Adalah alat penyimpanan data untuk berkas besar, yang di akses dan diproses
secara sequential. Magnetic tape dibuat dari bahan plastik tipis yang dilapisi oleh besi magnet oksida pada satu sisinya, berwarna merah kecoklatan.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 6

Magnetic tape adalah model pertama dari secondary memory.Tape ini digunakan untuk merekam audio, video dan untuk menyimpan informasi berupa sinyal komputer. Panjang tape pada umumnya 2400 feet, lebarnya 0.5 inch dan tebalnya 2 mm. Data disimpan dalam bintik kecil yang bermagnit dan tidak tampak pada bahan plastik tersebut. Contoh :cassette tape dan kaset video 2. Magnetic Disk

Adalahpiranti penyimpanan sekunder yang paling banyak dijumpai pada


sistem komputer. Magnetic disk terdiri dari logam yang kaku atau plastic yang fleksibel.Pada saat disk digunakan, motor drive berputar dengan kecepatan yang sangat tinggi.Ada sebuah readwrite head yang ditempatkan diatas permukaan piringan tersebut.Permukaan disk terbagi atas beberapa track yang masih terbagi lagi menjadi beberapa sector. Fi xedhead disk memiliki satu head untuk tiaptiap track, sedangkan Movinghead disk (atau sering dikenal dengan nama hard disk) hanya memiliki satu head yang harus dipindahpindahkan untuk mengakses dari satu track ke track yang lainnya. Contoh : Floppy disk (disket), hardisk. 3. Optical Disk Optical disk tidak menggunakan bahan yang bersifat magneti sama sekali. Optical disk menggunakan bahan spesial yang dapat diubah oleh sinar laser menjadi memiliki spot-spot yang relatif gelap atau terang.contoh dari optical disk ini adalah CD-RW dan DVD-RW.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 7

Sesi 3

Materi 3 ORGANISASI BERKAS PRIMER


Organisasi berkas akan mempelajari struktur yang tepat untuk mengorganisasi: Jumlah rekaman yang besar Berkas dengan kinerja tertentu Informasi yang diolah dengan cara yang berbeda untuk keperluan yang berbeda Informasi yang memungkinkan dilakukannya tugas-tugas khusus Menyelesaikan permasalahan dengan cara yang berbeda dari yang selama ini dilakukan A. ORGANISASI BERKAS Terdapat tiga oganisasi berkas primer, yaitu sekuensial, langsung, dan sekuensial berindeks. Masing-masing organisasi tersebut memiliki cara memproses atau mengakses berkas. Organisasi Sekuensial Sekuensial berindeks Langsung Akses Sekuensial Sekuensial atau langsung langsung

Sebagai contoh, terdapat sejumlah unit informasi yang disebut rekaman yang mengandung data mengenai entitas individual.Rekaman tersebut dapat diuraikan menjadi unit-unit yang lebih kecil, yang disebut medan-medan yang mengandung nilai-nilai khusus bagi atribut-atribut yang mewakili individu tersebut. B. MEDAN DATA Medan berisi nilai dasar yang membentuk sebuah rekaman. Isi sebuah medan bergantung pada atribut yang dimiliki oleh individu pemilik rekaman. Nilai tersebut pada saatnya nanti akan dimanipulasi oleh proses komputasi. Nilai-nilai dalam medanharus tunduk pada deskripsi tentang tipe nilai, kapasitas byte maksimum, domain dan seterusnya yang dimiliki oleh medan tersebut. Rekaman yang disimpan dalam berkas pada umumnya memiliki medan yang berfungsi khusus, yaitu sebagai identitas rekaman yang memiliki sifat pembeda baik internal maupun eksternal. Medan tanggal yang umumnya dimiliki oleh sebuah rekaman merupakan contoh yang unik. Medan tersebut bisa memiliki kapasitas byte maksimum 8, dan disusun dari 3 medan yang lebih elementer, yaitu tanggal (2digit), bulan (2digit), tahun (4digit). Data tanggal paling baik dinyatakan dalam tipe bilangan, Dinny Wahyu Widarti, S.Kom Sistem Berkas - 8

mengingat tanggal memiliki kemungkinan untuk diperbandingkan (lebih tua atau lebih muda), proses dengan aritmatik sederhana (menghitung umur) dan sebagainya. Pemilihan tipe data yang paling sesuai dengan kebutuhan yang disyaratkan oleh sistem yang sedang dibangun merupakan hal yang penting.Suatu domain yang spesifik, sangat baik bila diuraikan dalam satu tipe dan satu representasi. Representasi yang tidak sesuai akan menyebabkan hilangnya informasi yang sulit untuk dilacak kembali. C. REKAMAN DATA Medan ke-1 Medan ke-2 Medan ke-n Rekaman merupakan koleksi berbagai medan yang berisi beberapa item data elementer. Beberapa medan dapat berhubungan satu dengan yang lainnya karena mereka melakukan deskripsi suatu hal yang spesifik, misalnya tentang seseorang , tentang sebuah subyek, atau suatu kejadian. Informasi tentang seseorang mahasiswa misalnya, dapat disimpan dengan cara berikut : Rekaman mahasiswa Nama Mahasiswa Nomor Mahasiswa Jenjang Program Studi Dosen Wali SPP Data lain

Rekaman tersebut dapat disimpan dengan nama-nama medan Nama Mahasiswa, Nomor Mahasiswa, Jenjang, Program Studi, Dosen Wali, SPP, dan lain-lain. Kunci primernya merupakan suatu medan, atau gabungan beberapa medan, yang secara unik membedakan satu rekaman dengan yang lainnya, sedangkan semua medan yang tersisa merupakan kunci skunder dari atribut. Sebagai contoh: medan Nama Mahasiswa ataupun Nomor Mahasiswa mungkin merupakan kunci primer, sedangkan medan Jenjang, Program Studi , dan yang lain merupakan kunci skunder. D. BERKAS DATA Sebuah berkas merupakan koleksi dari rekaman-rekaman yang sama, yang diletakkan dalam peralatan penyimpanan data komputer. Salah satu tipe peralatan penyimpanan eksternal, dari berbagai alternatif, adalah penggerak disk dengan disk magnetiknya. Sebuah berkas akan memiliki nama yang dikenal oleh sistem operasi, dan mempunyai struktur atau organisasi yang ditentukan oleh program pengakses berkas.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 9

Berikut ini adalah contoh berkas tentang mahasiswa di universitas:


Nama Mahasiswa Dian Kartika Syda Arlin Yuniati Sunaryono Zainul Yenny Noorma Mustafa Kusmiyati Susiana Dewi Dwi Nomor Mahasiswa 11.50.001 11.50.011 11.30.012 11.30.013 11.55.024 11.50.021 11.50.025 11.55.024 11.55.024 11.30.014 Jenjang S1 S1 DIII DIII S1 S1 S1 S1 S1 DIII Program Studi Sistem Informasi Sistem Informasi Manajemen Informatika Manajemen Informatika Teknik Informatika Sistem Informasi Sistem Informasi Teknik Informatika Teknik Informatika Manajemen Informatika Dosen Wali Made Sugeng Made Made Sugeng Sugeng Sugeng Made Made Made SPP 500.000 500.000 400.000 400.000 500.000 500.000 500.000 500.000 500.000 400.000 Data lain

Dalam merancang sebuah berkas untuk menyimpan semua rekaman yang menggambarkan tentang mahasiswa sebuah universitas, bukanlah gagasan yang baik bila beberapa tipe rekaman di campur-aduk, missal rekaman mahasiswa dengan daftar matakuliah yang ditawarkan, dalam sebuah berkas yang sama. Sebaliknya, mempunyai berbagai berkas yang berbeda juga mengundang berbagai kesulitan dikemudian hari.Untuk mengulangi kesulitan-kesulitan tersebut, para pakar berusaha mencari jalan keluar.Akhirnya ditemukan suatu alternatif yaitu menggabungkan rekaman-rekaman milik semua mahasiswa untuk semua jurusan dalam sebuah berkas.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 10

Sesi 5

Materi 4 ORGANISASI BERKAS SEKUENSIAL


Dalam organisasi ini, record-record direkam secara berurutan pada waktu berkas ini dibuat dan harus diakses secara berurutanpada waktu berkas ini digunakan sebagai input. Berkas sekuensial sangat cocok untuk akses yang sekuensial, misalnya dalam aplikasi dimana sebagian besar atau semua rekaman akan diproses. Sebagai contoh adalah membuat daftar mahasiswa dalam sebuah program studi. Melakukan akses secara sekuensial berarti proses akan berpindah dari satu rekaman ke rekaman berikutnya secara langsung. 1 2 3 i i+1 i+2 n-1 n

Pencarian secara sekuensial adalah memproses rekaman rekaman dalam berkas sesuai urutan keberadaan rekaman rekaman tersebut sampai ditemukan rekaman yang diinginkan atau semua rekaman terbaca. Berkas sekuensial juga dapat diproses secara tunggal dan langsung, jika diketahui subskripnya. Tetapi bagaimana kalau subskrip yang dimiliki bukan identitas utama rekaman, misal Nama Mahasiswa pada file berikut ini :
Nama Mahasiswa Dian Kartika Syda Arlin Yuniati Sunaryono Zainul Yenny Noorma Mustafa Kusmiyati Susiana Dewi Dwi Nomor Induk Mahasiswa 11.50.001 11.50.011 11.30.012 11.30.013 11.55.024 11.50.021 11.50.025 11.55.027 11.55.028 11.30.014 S1 S1 DIII DIII S1 S1 S1 S1 S1 DIII Sistem Informasi Sistem Informasi Manajemen Informatika Manajemen Informatika Teknik Informatika Sistem Informasi Sistem Informasi Teknik Informatika Teknik Informatika Manajemen Informatika Jenjang Program Studi Dosen Wali Made Sugeng Made Made Sugeng Sugeng Sugeng Made Made Made 500.000 500.000 400.000 400.000 500.000 500.000 500.000 500.000 500.000 400.000 SPP Data lain

Pembacaan harus dilakukan secara sekuensial.Rekaman demi rekaman, sampai Nama Mahasiswa yang sesuai ditemukan. Misalnya untuk pembacaaan rekaman dengan Nama Mahasiswa = Sunaryono, diperlukan probe (akses terhadap lokasi yang berbeda) sejumlah 4 kali. Yang harus dilakukan agar kinerja pembacaan rekaman lebih baik, maka rekaman-rekaman dalam berkas mahasiswa tersebut diurutkan untuk mendapatkan pengurutan yang linier berdasarkan nilai kunci rekaman.Baik secara alphabetis maupun numeris. Hasil pengurutannya adalah sbb : Dinny Wahyu Widarti, S.Kom Sistem Berkas - 11

Nama Mahasiswa Yuniati Sunaryono Dewi Dwi Dian Kartika Syda Arlin Yenny Noorma Mustafa Zainul Kusmiyati Susiana

Nomor Induk Mahasiswa 11.30.012 11.30.013 11.30.014 11.50.001 11.50.011 11.50.021 11.50.025 11.55.024 11.55.027 11.55.028

Jenjang DIII DIII DIII S1 S1 S1 S1 S1 S1 S1

Program Studi Manajemen Informatika Manajemen Informatika Manajemen Informatika Sistem Informasi Sistem Informasi Sistem Informasi Sistem Informasi Teknik Informatika Teknik Informatika Teknik Informatika

Dosen Wali Made Made Made Made Sugeng Sugeng Sugeng Sugeng Made Made

SPP 400.000 400.000 400.000 500.000 500.000 500.000 500.000 500.000 500.000 500.000

Data lain

Berkas diatas berisi rekaman mahasiswa urut berdasar Nomor Induk Mahasiswa.Kolom Nomor Induk Mahasiswa menunjukkan nilai yang urut dari kecil ke besar. Dengan demikian , hanya n/2 rekaman yang perlu diperiksa rekaman-demirekaman untuk menemukan rekaman yang diinginkan. Kalau pembacaan diteruskan melewati posisi dimana rekaman seharusnya berada (mengingat berkas sudah diurutkan), maka proses pencarian dihentikan. Untuk membaca Sunaryono hanya diperlukan 2 probe, lebih kecil disbanding berkas sebelum diurutkan.Namun teknik tersebut masih kurang memuaskan untuk berkas dengan jumlah rekaman yang lebih besar. A. PENCARIAN BINER (BINARY SEARCH) Pencarian Biner dalah membandingkan kunci yang dicari dengan rekaman pada posisi tengah dari berkas. Bila sama (Kasus 1) rekaman yang diinginkan sudah ditemukan. Jika tidak sama (kasus 2), berarti separuh rekaman-rekaman dalam berkas akan dieliminasi dari perbandingan yang selanjutnya. Bila yang terjadi pada kasus 2, maka proses perbandingan terhadap rekaman pada posisi di tengah dilanjutkan menggunakan rekaman-rekaman yang tersisa. Jumlah probe (yang diperlukan untuk membaca sebuah rekaman) pada sebuah berkas dengan rekaman yang sudah diurutkan, dapat diperkecil dengan menggunakan teknik pencarian biner. Jika kunci cari<kunci tengah maka bagian berkas mulai dari kunci tengah sampai akhir berkas dieliminiasi. sebaliknya jika kunci cari> kunci tengah, maka bagian berkas mulai dari depan sampai dengan kunci tengah dieliminiasi.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 12

Dengan mengulang proses perbandingan terhadap rekaman tengah, maka lokasi rekaman yang diinginkan akan ditemukan atau diketahui bahwa rekaman yang diinginkan tersebut tidakberada dalam berkas. Algoritma pencarian biner: Proc pencarian_biner */ n buah rekaman dalam berkas diurutkan menaik menurut kunci rekaman */ AWAL := 1 AKHIR := n While AWAL <= AKHIR do Tengah := [(AWAL+AKHIR)/2] If kunci(cari) = kunci(tengah) Then pencarian berakhir Else if kunci(cari) > kunci(tengah) Then AWAL := Tengah + 1 Else AKHIR := tengah - 1 End Rekaman tidak ditemukan End pencarian_biner

B. PENCARIAN INTERPOLASI Pencarian interpolasi (asumsinya kunci rekaman numeris) menentukan posisi yang akan dibandingkan berikutnya berdasar posisi yang di estimasi dari sisa rekaman yang belum diperiksa. Pencarian interpolasi tidak mencari posisi tengah, seperti algoritma pencarian biner, melainkan menentukan posisi berikutnya. Proc pencarian_interpolasi */ n buah rekaman dalam berkas diurutkan menaik menurut kunci rekaman */ AWAL := 1 AKHIR := n While AWAL <= AKHIR do BERIKUT := [AWAL + kunci(cari) kunci(AWAL) (AKHIR AWAL)] Kunci(AKHIR)- kunci(AWAL) If kunci(cari) = kunci(BERIKUT) Then pencarian berakhir Else if kunci(cari) > kunci(BERIKUT) Then AWAL := BERIKUT + 1 Else AKHIR := BERIKUT - 1 End Rekaman tidak ditemukan End pencarian_interpolasi

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 13

Sesi 6

Materi 5 ORGANISASI BERKAS LANGSUNG


Pengguna teknologi pada umumnya dan teknologi informasi pada khususnya merasa bahwa waktu yang diperlukan untuk memperoleh suatu informasi masih terlalu lama. Metode pencarian biner maupun interpolasi masih belum dapat mengimbangi ketidaksabaran manusia terhadap penyediaan informasi yang cepat dan akurat. Perkembangan media perekam data dalam hal kemampuan untuk menampung volume data yang sangat besar harus diimbangi dengan peningkatan teknik pencarian kembali data yang tersimpan.

A. KUNCI SEBAGAI ALAMAT REKAMAN YANG UNIK


Untuk mendapat rekaman yang diasosiasikan dengan suatu kunci primer, sangat diharapkan agar proses langsung menuju ke alamat tempat rekaman dengan kunci tertentu disimpan. Hal tersebut mungkin terjadi apabila satu kunci rekaman juga merupakan alamat lokasi rekaman. Untuk aplikasi rekaman berisi nomor induk mahasiswa, terdapat 8 digit (kunci rekaman yang merupakan gabungan 2 digit tahun angkatan + 2 digit kode program studi + 4 digit nomor urut), maka diperlukan lokasi sebanyak 99.999.999. Dengan demikian waktu pencarian akansangat baik, yaitu 1 probe untuk setiap rekaman yang dicari. Akan tetapi, teknik tersebut memiliki kerugian karena diperlukan ruang yang sangat besar untuk menampung semua rekaman. Untuk menampung data NIM mahasiswa diperlukan ruang yang besar, meski jumlah mahasiswa mungkin hanya 500, pasti ada beberapa nomor yang kosong karena beberapa alasan, misalnya sudah lulus, mengundurkan diri, drop-out, cuti, dan sebagainya. Sehingga tidak semua ruang dimanfaatkan.

B. KONVERSI KUNCI REKAMAN MENJADI SATU ALAMAT YANG UNIK


Contoh klasik yang menggambarkan fenomena konversi kunci rekaman adalah sistem reservasi penerbangan.Jika suatu maskapai penerbangan memiliki nomor penerbangan dari 1 sampai 999, ingin memantau reservasi pesawat selama setahun yang jumlah harinya 1 sampai 366 (1 tahun), maka nomor penerbangan dan hari-ke dapat dihubungkan untuk mendapatkan lokasi rekaman yang berisi data reservasi penerbangan pada hari tertentu.
LOKASI = NOMOR PENERBANGAN + HARI-KE DALAM TAHUN INI

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 14

Dengan simbol + menandakan hubungan, maka untuk menyediakan semua kemungkinan penerbangan diperlukan ruang alamat sebesar 999366 unit. Jumlah tersebut dapat direduksi sampai dengan 30% bila digunakan kombinasi:
LOKASI = HARI-KE DALAM TAHUN INI+ NOMOR PENERBANGAN

Karena kecil kemungkinan dalam satu maskapai terdapat lebih dari 100 penerbangan, maka ruang alamat maksimum yang diperlukan adalah 36699.

C. MENENTUKAN ALAMAT DENGAN KONVERSI KUNCI


Diperlukan satu fungsi untuk memetakkan cakupan nilai kunci yang lebih luas ke dalam cakupan yang lebih sempit nilai alamat. Fungsi yang dikenal dengan fungsi hashakan melakukan pemetaan sebagaimana diharapkan. Hash (kunci) kemungkinan alamat Keluaran dari proses hashing bukan lagi alamat yang unik, melainkan kemungkinan alamat bagi kunci yang di hash. Alamat untuk menempatkan alamat yang diperoleh dari fungsi hash disebut home-address untuk rekaman tersebut. Tidak ada batasan mengenai bentuk fungsi yang akan memetakkan kunci ke cakupan alamat, tetapi diharapkan fungsi tersebut menghasilkan kemungkinan alamat yang: Mampu mendistribusi kunci secara merata ke dalam cakupan alamat. Hal tersebut dimaksudkan untuk mengurangi terjadinya kolisi. Kolisi terjadi bila hasil hashing dua kunci rekaman yang berbeda menunjuk ke alamat yang persis sama. Dapat dieksekusi dengan efisien. Hal tersebut dimaksudkan agar waktu pembacaan dapat ditekan seminimal mungkin. Maka fungsi hashing dapat dipandang dari 2 aspek, yaitu: Fungsi hash itu sendiri Metode untuk meresolusi kolisi Mekanisme resolusi kolusi diperlukan untuk mengatasi terjadinya jumlah rekaman yang dikonversikan ke suatu lokasi melebihi kapasitasnya.Dalam bahasan ini diasumsikan bahawa satu lokasi memiliki kapasitas satu rekaman.Berikut adalah beberapa fungsi hash, dimulai dari yang paling sering digunakan. a) Hashing dengan Kunci Modulus N Satu fungsi hash yang paling popular dan paling sering diimplementasikan adalah modulus N, f (kunci) = kunci mod N

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 15

dengan N sebagai ukuran tabel atau berkas. Hasil fungsi modulus adalah sisa pembagian kunci oleh N. Sabagai contoh untuk N=12 maka: 30 mod N = 6 40 mod N = 4 Keuntungan fungsi ini hanya menghasilkan nilai dalam rentang ruang alamat (0) sampai dengan (N-1) b) Hashing dengan Kunci Modulus P Fungsi hashing Kunci mod P merupakan variasi fungsi modulus N, rumusnya adalah: f (kunci) = kunci mod P dengan P sebagai bilangan prima terkecil yang lebih besar atau sama dengan N. dan N adalah ukuran tabel. P ini kemudian menjadi ukuran tabel baru yang menggantikan N. Contoh: untuk N=12 maka P=13 30 mod P = 4 40 mod P = 1 c) Hashing dengan Pemotongan Alternatif lain untuk fungsi hashing adalah pemotongan. Sebagai contoh adalah para pegawai negeri sipil di Indonesia. Para pegawai memiliki NIP (Nomor Induk Pegawai) dengan panjang total 9 digit, terdiri atas 3 digit pertama sebagai identitas departemen, sementara 6 digit terakhir adalah nomor urutnya. Bila ingin dijadikan 6 digit saja, maka bisa dilakukan pemotongan jumlah digit.Pemotongan bisa dilakukan dibagian mana saja, tentunya dengan konsekuensi masing-masing. Pada kasus NIP, jika pemotongan dilakukan pada bagian belakang, akan diperoleh sejumlah alamat yang memiliki 3 digit yang sama (identitas departemen) sehingga kemudian kolisinya akan lebih besar dibanding bila pemotongan dilakukan di bagian depan. d) Hashing dengan Lipatan Fungsi ini melipat digit pada batasan yang ditentukan berdasarkan kondisi digit awal dan digit yang akan dihasilkan. Sebagai contoh 9 digit NIP akan direduksi menjadi 3 digit, maka digit awal di bagi 3, kemudian dilipat pada batas antarbagian. Contoh : 5 8 3 9 7 6 1 2 4 Kunci asli tersebut ditulis pada selembar kertas. Batasan dimana lipatan akan dilakukan ditandai dengan garis .

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 16

Penjumlahan dari susunan tersebut adalah: 385 976 421 ----- + Jika penjumlahan dilakukan dengan mengabaikan carry maka diperoleh alamat 672, sedangkan jika tidak mengabaikan carry maka hasilnya 782. e) Hashing dengan Penggeseran Hashing dengan penggeseran memiliki proses yang serupa dengan hashing lipatan, bedanya setelah ditentukan batasan. Digit asli dipotong kemudian digeser dan dihitung hasil jumlahnya. 583 976 124 ----- + Yang diperoleh alamat yang berbeda yaitu 573 (tanpa carry). Jika kedua hasil penjumlahan tersebut diterapkan dengan menggunakan carry dan hanya tiga digit yang paling kanan saja yang digunakan, maka diperoleh 683. f) Hashing dengan Pengkuadratan Hashing dengan penguadratan adalah fungsi hashing dengan menguadratkan kunci.Hasil penguadratan ini kemudian dapat dikombinasi dengan pemotongan atau lipatan untuk mendapatkan alamat yang diperbolehkan. Sebagai contoh, penguadratan kunci 782 akan menghasilkan kemungkinan alamat 117. F(782) = 117 g) Hashing dengan Konversi Radix Dalam konversi radix, kunci dianggap dalam base selain 10 yang kemudian dikonversi ke dalam basis 10, misal kunci 5 6 7 8 dalam base 13 akan menghasilkan 12098, diperoleh dari: 5678
Posisi: 3 2 1 0

Hasil tersebut masih dapat dikombinasi dengan fungsi hash lain (pemotongan atau lipatan) untuk mendapatkan digit alamat yang diinginkan.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 17

Sesi 7

Materi 6 ORGANISASI BERKAS DENGAN BANYAK KUNCI


A. METODE ORGANISASI Ada banyak teknik yang dipakai untuk organisasi file dengan banyak kunci. Berikut ini dua teknik dasar untuk pemberian hubungan antara sebuah index dan data record dari file, yaitu: 1. Inverted 2. Multilist Banyak bahasa program kompilator tidak memberikan kemampuan untuk mendukung organisasi file banyak kunci. Karenanya diperlukan paket program tambahan untuk mendukung sistem pengolahan data manajemen yang hampIr semuanya menggunakan organisasi file banyak kunci. Contoh sebuah sistem perbankan yang mempunyai beberapa pemakai seperti kasir, pegawai kredit, manajer cabang, pegawai bank, nasabah, dll. Semuanya memerlukan akses data yang sama dengan format record sebagai berikut:
ID NAMA DEPAN AKHIR KODE GROUP CABANG TYPE NO SOSIAL SOCIATY SALDO OVERDRAW LIMIT

Adanya pemakai yang berbeda memerlukan akses record-record ini dengan cara yang berbeda. Seorang kasir hendak mengidentifikasi sebuah record account menurut ID-nya. Seorang pegawai kredit memerlukan akses semua record menurut nilai overdraw-limit atau semua record account dengan sebuah nilai No Sosial Sociaty. Seorang manajer cabang hendak membuat laporan berkala untuk semua record account yang disortir berdasarkan ID. Seorang nasabah memerlukan akses recordnya dengan memberikan ID yang dipunyainya atau kombinasi dari Nama, No Sosial Sociaty, dan Type. Satu pendekatan yang dapat mendukung semua jenis akses adalah dipunyainya banyak file yang berbeda. Setiap file diorganisasi untuk melayani satu jenis keperluan. Untuk contoh adalah sistem perbankan di atas, harus ada: a. File account yang organisasinya sekuensial dengan nilai kunci ID (untuk melayani kasir, pegawai bank, dan nasabah). b. File account yang organisasinya sekuensial dengan record diurut menurut Overdraw-Limit (untuk melayani pegawai kredit). c. File account yang organisasinya relatif dengan kunci No SS (untuk melayani pegawai kredit).

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 18

d. File account yang organisasinya sequensial dengan record diurut menurut kode group (melayani manajer cabang). e. File account yang organisasinya relative dengan nilai kunci Nama, NoSS dan Type (untuk melayani nasabah) Kita memiliki 5 file yang semuanya mempunyai record yang sama. Kelima file ini hanya berbeda dalam organisasinya dan cara aksesnya. Pengulangan data dari beberapa file bukan merupakan cara yang baik untuk mengakses record dengan berbagai cara. Lagi pula cara ini memerlukan ruang yang besar di penyimpanan dan kesulitan pada waktu pemutakhiran record secara serentak. File dengan organisasi banyak kunci adalah cara terbaik untuk mengatasi masalah di atas. File ini menggunakan indeks dan bukan pengulangan data seperti cara diatas. Konsep dari akses banyak kunci umumnya diimplementasikan dengan pembentukan banyak indeks untuk memberikan yang berbeda terhadap record.Cara ini menggunakan linked-list. B. FILE TERBALIK (INVERTED FILE) 1. Metode Akses pada File Terbalik (Inverted File Access method) Setiap daftar file yang dibalik, alamat atau key untuk semua record memiliki atribut yang sama. Contoh: Bagian File Personel Alamat Record Nomor Pegawai Umur 101 28541 43 102 35879 27 103 47853 32 104 50917 24 File Inverted dengan Index Umur Umur Alamat Record 18-25 104, 26-35 102, 103, 36-45 101, Beberapa file diperlukan jika mempertimbangkan untuk melokasikan record yang memakai 1 atau lebih atribut. Data diperlukan untuk menjelaskan hubungan dan alamat record yang ditunjukkan dengan file-file inverted yang diketahui sebagai pengeluaran tambahan data. 2. Contoh Pemakaian File Terbalik No.Rec<S-Id, Nama, Mata Kuliah><Pointer> 1 1234 : Adam : SBD : 3 2 5678 : Bruce : SB : 4 3 9012 : Clarck : SBD : 0 Dinny Wahyu Widarti, S.Kom Sistem Berkas - 19

4 5 6

3456 : 7890 :

David : Erik :

SB : PSI :

0 0

DIRECTORY Search Key Address List SB 2,4 PSI 5 SBD 1,3

DATAFILE No.Rec<S-Id, Nama, Mata Kuliah, > 1 1234 : Adam : SBD : 2 5678 : Bruce : SB : 3 9012 : Clarck : SBD : 4 3456 : David : SB : 5 7890 : Erik : PSI :

Pengindekan dengan Pengalamatan tidak langsung yaitu: 1. Inversion bisa menggunakan kunci yang bukan nilai yang unik. Seperti indeks berdasarkan kunci Kode-Group. Kode-Group ID Tipe-Cabang DT 001 111111, 201431, 310103 DT 002 198121 NW 001 112131, 208432 NW 002 291821 NE 002 300123 2. Struktur Index Inversion menggunakan Pengalamatan tidak langsung dengan nilai No.Soc. No.Society 001234123 123456789 399142131 412631467 459463001 513014265 713214622 821346211 Data Recordnya adalah:
Alamat Record 1 2 3 4 5 6 7 8 ID 111111 112131 198121 201431 208432 291821 300123 310103 Nama Depan ADAM SMITH MORALES SMITH JONES MORGAN ADAMS MATTHERS Akhir JOHN IVAN JOSE ELOISE JANE NILL MYRTLE ELMER Kode Grup Cabang DT NW DT DT NW NW NE DT Tipe 001 001 002 001 001 002 002 001 No Sociaty 459463001 821346211 713214622 399042131 123456789 001234123 412631467 513014265 Saldo 100.500 2311.20 191.87 3142.93 95.26 146.92 3000.0 243.63 Overdraw Limit 0. 100. 200. 100. 0. 0. 100. 0.

ID 291821 208432 201431 300123 111111 310103 198121 112131

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 20

C. FILE MULTILIST File multilist mempunyai sebuah indeks untuk setiap kunci sekunder. Organisasi multilist berbeda dengan file terbalik dimana dalam indek inverse untuk sebuah nilai kunci mempunyai sebuah petunjuk untuk data record pertama dengan nilai kunci, sedangkan dalam indeks multilist untuk sebuah nilai kunci mempunyai hanya sebuah petunjuk untuk data record pertama dengan nilai kunci. Data record mempunyai sebuah penujuk untuk data record selanjutnya dengan nilai kunci dan seterusnya. Karena terdapat sebuah linked-list dari data record untuk setiap nilai dari kunci sekunder. Contoh File data dengan struktur MultiList: Dari Tabel Data Record di atas, dapat ditunjukkan file multi-list di bawah ini untuk kunci sekunder Kode-group. Setiap data record mempunyai tempat penunjuk untuk mengakses record selanjutnya.
Kode_Group Tipe_cabang DT001 DT002 NE002 NW001 NW002 ID 111111 198121 300123 112131 291821

Kemudian file Multi list untuk kunci sekunder Overdraw Limit:


Overdraw Limit 0 100 200 ID 111111 112131 198121

Nilai kunci harus diurut, struktur indek adalah tabel dengan indirect addressing dan mempunyai hubungan data record yang disusun menurut ID secara menaik. Hasil sebuah struktur multilist adalah sebuah kunci sekunder yang mempunyai nilai unik atau tunggal. Ini berarti ada N data record maka ada N nilai kunci sekunder dalam indeks yang menunjukkan record pertama. Suatu sifat yang menaik dari multilist bahwa indeks dapat berupa fixed length. Pendekatan multilist memberikan jenis kemampuan akses yang sama dengan pendekatan inverted file tetapi memproses dari 2 jenis file yang berbeda, sbg contoh : a) Berapa jumlah account dengan kode grup = DT001? b) Berapa jumlah cabang NE? c) Daftar nilai ID untuk account dengan grup DT002? d) Daftar nilai ID untuk account dengan tipe 002? e) Apakah ID = 198121 mempunyai account dengan tipe 002? Contoh di atas memerlukan data record dalam pengaksesannya. Agar dapat menjawab pertanyaan di atas dalam hal jumlah (seperti soal a dan b) dan setiap nilai Dinny Wahyu Widarti, S.Kom Sistem Berkas - 21

second y dalam indeks multilist mempunyai banyak record dalam link-list di samping penunjuk untuk record pertama dan nilai kunci. Tabel di bawah ini menunjukkan variasi dari indeks kode grup dan overdraw limit:
Kode_Group Tipe_cabang DT001 NW001 DT002 NW002 NE002 Overdraw Limit 0 100 200 Panjang 2 2 1 1 1 Panjang 4 3 1

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 22

Sesi 9

Materi 7 ORGANISASI BERKAS RELATIF


Salah satu cara yang efektif dalam mengorganisasikan sekumpulan record yang membutuhkan akses sebuah record dengan cepat adalah ORGANISASI BERKAS RELATIF. Dalam berkas relatif ada hubungan antara KEY YANG DIPAKAI untuk mengidentifikasi record dengan LOKASI RECORD dalam penyimpan sekunder. Perlu diperhatikan bahwa URUTAN RECORD SECARA LOGIC tak ada hubungannya dengan URUTAN SECARA FISIK. Record tidak perlu tersotir secara fisik menurut nilai key. NILAI KEY AWAL BERKAS COW ZEBRA ADDRESS 1 2

APE EEL DOG

I-1 I I+1

AKHIR BERKAS

CAT BAT

N-1 N

Bagaimana record yang ke-N dapat ditemukan? Dalam hal ini, perlu kita buat hubungan yang akan menerjemahkan antara NILAI KEY dan ADDRESS. Hubungan ini dinyatakan sebagai R, yang merupakan fungsi pemetaan. R(NILAI KEY) ADDRESS

dari nilai key ke address dalam penyimpanan sekunder. Pada waktu sebuah record ditulis ke dalam berkas relatif, fungsi pemetaan R digunakan untuk menerjemahkan NILAI KEY DARI RECORD menjadi ADDRESS, dimana record tersebut disimpan. Begitu pula pada waktu akan meretrive record dengan nilai key tertentu, fungsi pemetaan R digunakan terhadap nilai key tersebut, dimana record tersebut dapat ditemukan. Berbeda dengan organisasi berkas sekuensial, organisasi berkas relatif ini tidak perlu mengakses record secara berurut (consecutive), karena sebuah record tertentu dapat diakses secara langsung. Organisasi berkas relatif ini tidak menguntungkan bila penyimpanan sekundernya adalah medium serial access seperti magnetic tape.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 23

Berkas relatif harus disimpan dalam medium direct access storage device (DASD) seperti magnetic disk. Juga dimungkinkan untuk mengakses record-record dalam berkas relatif secara CONSECUTIVE. Tetapi perlu diketahui bahwa nilai key tidak urut secara logic. Sebagai contoh record dalam gambar di atas, di retrieve secara consecutive; COW, ZEBRA, , APE, EEL, DOG, , CAT, BAT. Karena kemampuan mengakses record tertentu secara cepat, maka organisasi berkas relatif paling sering digunakan dalam proses interactive. Sebagai contoh sebuah online sistem perbankan mempunyai berkas induk dengan struktur sebagai berikut : CUSTOMER ACCOUNT ACCOUNT NUMBER ACCOUNT TYPE BALANCE DATE-LAST CREDIT DATE-LAST DEBIT

Sedangkan berkas transaksinya terdiri dari field-field sebagai berikut: TRANSACTION ACCOUNT NUMBER TRANS TYPE AMOUNT DATE

Field ACCOUNT NUMBER dipakai sebagai nilai key untuk kedua berkas tersebut. Pada saat nilai key ACCOUNT NUMBER dimasukkan ke dalam transaksi, nilai key tersebut akan me-retrieve secara langsung record yang ada pada berkas induk. Jika TRANS-TYPE = T, maka BALANCE akan ditampilkan di layar. Jika TRANS -TYPE = C atau D, maka record-record dari berkas induk CUSTOMER-ACCOUNT akan dimodifikasi dengan AMOUNT dan DATE yang ada di berkas transaksi, dimana ACCOUNT NUMBER yang menentukan lokasi record dalam berkas tersebut. Ada dua hal penting yang perlu dicatat; pertama, tidak perlu mengakses semua record berkas induk, cukup mengakses langsung record yang dikehendaki. Kedua, record dari berkas relatif dapat di up-date langsung tanpa perlu merekan kembali semua record. Bandingkan kedua hal ini pada organisasi sekuensial. Keuntungan dari berkas relatif ini adalah kemampuan mengakses record secara langsung. Sebuah record dapat di retrieve, insert, modifikasi, atau bahkan dapat di delete; tanpa mempengaruhi record laindalam berkas yang sama. Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan R, dimana R (NILAI KEY) ADDRESS 1. Pemetaan Langsung (Direct Mapping) 2. Pencarian Tabel (Directory Look-up) 3. Kalkulasi (Calculating) Dinny Wahyu Widarti, S.Kom Sistem Berkas - 24

A. TEKNIK PEMETAKAN LANGSUNG Teknik ini merupakan yang sederhana untuk menerjemahkan nilai record key menjadi address. Ada dua cara dalam pemetaan langsung: 1) Pengalamatan mutlak (absolute addressing) 2) Pengalamatan relatif (relative addressing) 1. Pengalamatan Mutlak Fungsi pemetaan R (NILAI KEY) ADDRESS, di mana NILAI KEY = ALAMAT MUTLAK. Fungsi pemetaan ini disebut PENGALAMATAN MUTLAK. Nilai key diberikan oleh pemakai program yang sama dengan ADDRESS SEBENARNYA dari record tersebut disimpan pada penyimpanan sekunder. Pada waktu record tersebut disimpan, lokasi penyimpanan record (nomor silinder, nomor surface, nomor record) bila dipakai CYLINDER ADDRESSING atau (nomor sector, nomor record) bila dipakai SECTOR ADDRESSING harus ditentukan oleh pemakai. Begitu pula pada waktu record tersebut di retrieve, lokasi mutlak itu harus diketahui dan diberikan pemakai. Ada 2 keuntungan dari pengalamatan mutlak: Fungsi pemetaan R sangat sederhana Tidak membutuhkan sekunder (retrieve lebih cepat) Pemakai harus mengetahui dengan pasti record-record yang disimpan secara fisik. Pemakai tidak dapat menggunakan nilai key seperti ACCOUNT Alamat mutlak adalah device dependent. Perbaikan atau perubahan alat, dimana berkas berada, akan mengubah nilai key. Alamat mutlak adalah address space dependent. Reorganisasi berkas relatif akan menyebabkan nilai key berubah. Reorganisasi bertujuan memperbesar ruang alamat di mana sampah (garbage) akan dibuang atau dapat juga memperkecil ruang alamat. 2. Pengalamatan Relatif Fungsi pemetaan R (NILAI KEY) ADDRESS, dimana NILAI KEY = ALAMAT RELATIF. Fungsi pemetaan ini disebut PENGALAMATAN RELATIF. Alamat relatif dari sebuah record dalam sebuah berkas adalah urutan record tersebut dalam berkas. Sebuah berkas dengan N record mempunyai record dengan alamat relatif dari himpunan (1, 2, 3, , N-2, N, N-1) Record yang ke-I mempunyai alamat relatif I dan I-1.

Kelemahannya :

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 25

Keuntungan dari pengalamatan relatif: Fungsi pemetaan R sangat sederhana Nilai key dari sebuah record dapat ditentukan lokasi recordnya dalam sebuah penyimpanan sekunder tanpa memerlukan waktu proses berarti. Alamat relatif tidak tepat dikatakan sebagai device dependent seperti pada alamat multak, karena itu kelemahan tersebut dapat dihilangkan pada pengalamatan relatif. Namun seperti pada pengalamatan mutlak, pengalamatan relatif juga address space dependent. Nilai key dari sebuah field dapat dipakai sebagai alamat relatif. Misal dari 2000 jenis barang yang mempunyai nilai key PART NUMBER dipakai sebagai alamat relatif.Part number 1001 mempunyai alamat relatif 1001. Kelemahan nilai key dari sebuah field dipakai sebagai alamat relatif adalah terjadinya pemborosan ruangan dimana berkas relatif menyediakan ruang (alamat relatif) untuk 9999 jenis barang dari sebenarnya 2000 jenis barang, terjadi pemborosan kurang lebih 80%. Untuk nilai key NIP yang terdiri dari 9 digit dari berkas pegawai yang berjumlah 2000 record akan terjadi pemborosan 99,99998% ruang dimana berkas relatif menyediakan alamat relatif untuk 999.999.999 pegawai. Untuk mengatasi pemborosan ruang adalah dengan cara mendapatkan sebuah key yang nilai jangkauannya mempunyai populasi tinggi. Sebagai contoh 8200 jenis barang akan lebih efisien mempunyai PART NUMBER sebanyak 4 digit sebagai nilai key-nya yang juga merupakan alamat relatif. Ruang kosong sebesar 20% dipakai untuk penambahan record. B. TEKNIK PENCARIAN TABEL Teknik pencarian tabel jauh lebih baik disbanding dengan teknik pemetaan langsung.Hanya saja memerlukan biaya baru dalam pemeliharaannya. Kita akan lihat bahwa pendekatan ini hamper serupa dengan teknik yang dipakai pada berkas indeks sekuensial. Dasar pemikiran pendekatan pencarian tabel adalah sebuah tabel atau direktori dari nilai key dan address. Untuk menemukan sebuah record dalam berkas relatif, pertama dicari dalam direktori nilai key dari record tersebut, akan menunjukkan alamat dimana record tersebut berada dalam penyimpanan.

Dalam bentuk yang sedrhana, direktori diimplementasikan sebagai suatu array dari nilai key; record alamat, digambarkan sebagi berikut:

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 26

KEY APE BAT CAT

DIREKTORI ALAMAT I-1 N N-1

BERKAS RELATIF COW ZEBRA

ALAMAT RELATIF

1 2

APE COW DOG EEL 1 I+1 I EEL DOG

I-1 I I+1

2 ZEBRA

CAT BAT

N-1 N

Disini data dalam direktori disusun secara urut menurut nilai key, sehingga pencarian nilai key dalam direktori lebih cepat dengan binary search dibanding sequential search. Alternatif lain, direktori dapat disusun dalam binary search tree, M-way search tree, atau B-tree. DIREKTORI APE, BAT, N CAT, N-1 APE COW, 1 EEL DOG DOG, EEL, 1 ZEBRA, Dinny Wahyu Widarti, S.Kom 2-1 I+1 CAT BAT N-1 N I-1 I I+1 I-1 BERKAS RELATIF COW ZEBRA ALAMAT RELATIF 1 2

Sistem Berkas - 27

Keuntungan dari pencarian tabel: Sebuah record dapat di akses dengan cepat, setelah nilai key dalam direktori ditentukan . Nilai key dapat berupa field yang mudah dimengerti seperti PART NUMBER, NMP, karena nilai key tersebut akan diterjemahkan menjadi alamat. Nilai key adalah address space independent, dimana reorganisasi berkas tak akan mempengaruhi nilai key, yang berubah adalah alamat dalam direktori. Teknik ini banyak dipengaruhi oleh organisasi direktorinya. Apabila nilai key disimpan secara urut pada direktori, akses secara binary jauh lebih cepat dibanding secara sekuensial. C. TEKNIK KALKULASI ALAMAT Pendekatan lain yang umum dipakai untuk mengimplementasikan R (NILAI KEY) ADDRESS adalah dengan melakukan kalkulasi terhadap nilai key. Hasilnya adalah alamat alternatif. Teknik ini dapat dipakai sendiri atau bersama-sama dengan pencarian tabel. Ide dasar dari kalkulasi alamat adalah mengubah jangkauan nilai key yang mungkin, menjadi sejumlah kecil alamat alternatif. Salah satu kelemahan dari teknik pengalamatanrelatif adalah ruang harus disediakan sebanyak jangkauan nilai key, terlepas dari beberapa banyak nilai key. Sebagai contoh, dari 2000 jenis barang hendak dibuat alamat relatif sebanyak 2000 lebih sedikit. Cara ini dapat dilakukan dengan teknik kalkulasi alamat. Salah satu masalah dari teknik ini adalah ditemukannya alamat relatif yang sama untuk nilai key yang berbeda. Keadaan di alamat relatif yang sama untuk nilai key yang berbeda. Keadaan dimana R (K1) = R (K2) dan K1 # K2 disebut BENTURAN (COLLISION). Sedangkan nilai key K1 dan K2 disebut SYNONIM. Ada banyak cara untuk mengatasi benturan, antara lain: Scatter diagram techniques Randomizing techniques Key to address transformation methods Direct addressingbtechniques Hash tables methods Hashing

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 28

Sesi 10

Materi 8 ORGANISASI BERKAS INDEKS SEKUENSIAL


Organisasi Berkas Indeks Sekuensial dirancang dengan tujuan untuk

menanggulagi masalah pengaksesan yang dimiliki oleh organisasi berkas sekuensial tanpa mengurangi keuntungan dan tradisi oleh organisasi berkas sekuensial. Berkas indeks sekuensial memiliki 2 sifat yang mengungguli berkas sekuensial. Yaitu: Indeks terhadap berkas menghasilkan pengaksesan random yang lebih baik. Area overflow untuk menyediakan ruang bila dilakukan penambahan rekaman ke dalam berkas Gambar 8.1 adalah contoh berkas indeks sekuensial.Pada gambar tersebut diperlihatkan tiga komponen, yakni berkas sekuensial, area indeks, dan overflow.

Berkas Utama Indeks

Overflow

Gambar 8.1 komponen dalam berkas sekuensial berindeks Berkas sekuensial berindeks memungkinkan dilakukannya pembacaan secara sekuensial terhadap rekaman-rekaman yang berada dalam area primer. Rekamanrekaman yang disisipkan dialokasikan pada area yang terpisah, yang disebut area overflow. Rekaman-rekaman dalam area overflow ditempatkan dengan memperhatikan penunjuk dari rekaman sebelumnya. Pembacaan yang serial terhadap kombinasi kedua berkas akan dilakukan secara sekuensial sampai ditemukan penunjuk yang mengarah ke overflow area, kemudian dilanjutkan dengan pembacaan rekaman-rekaman yang berlokasi di area overflow sampai ditemukan penunjuk yang nilainya nol. Untuk pembacaan yang dilakukan secara random, maka digunakan area indeks. A. STRUKTUR DASAR Dalam sebuah sistem komputer, pada umumnya rekaman yang akan disimpan memiliki volume yang terlalu besar untuk ditempatkan semuanya pada penyimpanan primer. Jadi, diperlukan penyimpanan sekunder seperti disk untuk menyimpan rekaman. Bila yang digunakan adalah komputer dengan disk yang dapat diberi alamat melalui blok-nya, maka digunakan track sebagai unit terkecil dalam mengelompokkan Dinny Wahyu Widarti, S.Kom Sistem Berkas - 29

informasi. Unit yang berikutnya adalah silinder, kemudian terdapat unit tambahan lain yang disebut indeks. Organisasi berkas dengan struktur indeks sekuensial mempunyai terminology khusus, yaitu ISAM atau Indexed Sequential Access Methods. Metode pengakses adalah program sistem yang mengelola pemindahan data antarprogram aplikasi dengan komputer. Sebagai contoh adalah sebuah berkas sekuensial berindeks dengan format blok yang dapat diberi alamat. Untuk memperjelas pemahaman, dipilih rekamanrekaman dalam sebuah silinder, tetapi indeks silinder tersebut berisi penunjuk ke berbagai silinder lainnya. Sepasang masukan yang berisi informasi untuk masingmasing silinder dalam indeks silinder adalah sebagai berikut:

kunci

pnj

dengan kunci merupakan kunci rekaman tertinggi dari rekaman-rekaman yang berada pada silinder tersebut, dan pnj yang menunjuk ke arah indeks track untuk ke silinder tersebut. Masing-masing track dalam silinder memiliki dua buah pasangan masukan yang berisi informasi yang dapat diasosiasikan dengan track tersebut dalam indeks track. Satu pasang berisi informasi yang berada pada area penyimpanan primer, dan sebuah lagi memiliki informasi pada rekaman overflow yang diasosiasikan dengan track tersebut. Untuk masing-masing track, masukan-masukan tersebut memiliki bentuk sebagai berikut:

kunci primer

pnj

kunci overflow

pnj

Kunci pada pasangan pertama menunjukkan kunci tertinggi pada track yang berada pada area penyimpanan primer, dan kunci yang berada pada pasangan kedua menunjukkan kunci tertinggi yang berada pada area overflow yang diasosiasikan dengan track tersebut. Pnj primer memberikan indikasi bahwa track berisi rekaman primer, dan pnj overflow menunjukkan rekaman pertama yang berada pada area overflow (jika ada) yang diasosiasikan dengan track tersebut. Pada gambar 8.2 indeks silinder memberikan informasi mengenai masukan dari tiga buah silinder; yaitu silinder 1, 2, dan 3, serta informasi bahwa kunci tertinggi pada silinder 1 adalah 250. Indeks silinder 250 1-0 750 2-0 1500 3-0

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 30

Indeks track (untuk silinder = 1)


Nomor track 0

25

25

70

70

85

85

Penyimpanan Primer 1 2 3
7 28 73 9 38 75 12 41 77 15 55 79 20 57 80 22 65 83 25 70 85

Penyimpanan Overflow 1 9 Gambar 8.2 Struktur awal berkas sekuensial berindeks Pada penunjuk, masukan memiliki notasi x-y dengan x sebagai nomor silinder dan y nomor track di mana indeks track untuk silinder tersebut disimpan. Dengan demikian penunjuk 1-0 dapat diartikan sebagai track 0 pada silinder 1. Nilai penunjuk yang berada pada indeks track penunjuk pada nomor track yang spesifik. Pada nilai penunjuk tersebut nilai kunci tertinggi pada area primer sama dengan kunci tertinggi pada area overflow karena sampai saat ini belum dilakukan penyisipan rekaman yang dialokasikan pada area overflow. Simbol ^ pada penunjuk overflow mengindikasikan bahwa tidak ada rekaman pada area overflow. Pada saat melakukan penyisipan, urutan harus tetap dipertahankanuntuk mempreservasi mekanisme pembacaan. Ini berarti pada saat penyisipan rekaman, rekaman tersebut dialokasikan pada posisi yang tepat secara leksikografik. Mengingat dimungkinkan untuk memiliki area overflow pada setiap track, maka tidak perlu memindahkan rekaman-rekaman dengan jumlah yang melebihi jumlah rekaman dalam sebuah track. Pada saat rekaman baru disisipkan pada sebuah track pada area primer, terdapat kemungkinan bahwa rekaman tersebut menyebabkan terlemparnya rekaman yang sudah berada pada area primer ke area overflow. Hal ini berarti rekaman dengan kunci tertinggi pada area primer akan berubah, tetapi tidak demikian halnya pada area overflow. Pada dasarnya, kunci tertinggi pada area overflow tidak akan berubah kecuali bila dilakukan penyisipan pada akhir berkas. Pada kejadian tersebut, kunci tertinggi yang berada pada indeks track, akan berubah. Pada gambar 8.2, rekaman overflow dialokasikan pada track 9 pada lokasi yang konsekutif. Pada umumnya rekaman overflow tidak bersifat konsekutif. Sebuah daftar akan menghubungkan ruang yang masih kosong dalam area overflow saat rekaman disisipkan maupun dihapus. Selang beberapa waktu, daftar tentang ruang yang masih kosong tersebut tidak akan berisi penyimpanan dengan lokasi yang konsekutif. Dinny Wahyu Widarti, S.Kom Sistem Berkas - 31 2 3 4

Penunjuk yang berada pada overflow memiliki bentuk z-w, dengan z sebagai nomor track serta w sebagai nomor rekaman. B. PENYISIPAN REKAMAN 1. Menyisipkan rekaman dengan kunci 13 pada berkas gambar 8.2 Pertanyaan pertama yang harus dijawab adalah apakah rekaman tersebut sudah ada dalam berkas, dan bila tidak dimanakah sebaiknya berkas tersebut diletakkan? Langkah dimulai dari indeks silinder. Rekaman dengan kunci 13 harus berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder satu adalah 250 (13 lebih kecil dari 250). Langkah selanjutnya adalah mencermati track indeks untuk silinder 1. Kunci rekaman yang akan disisipkan dibandingkan dengan kunci tertinggi yang berada pada indeks track 0 silinder 1. Karena kunci rekaman yang akan disisipkan < dari kunci rekaman tertinggi yang berada pada track 1 silinder 1, maka rekaman baru tersebut harus diletakkan pada track 1 silinder 1. Rekamanrekaman pada area primer dibaca satu per satu untuk memastikan bahwa rekaman dengan kunci 13 belum ada dalam track 1 tersebut. Untuk menyiapkan rekaman dengan kunci 13 pada posisi yang sesuai, maka semua rekaman yang ada pada posisi tersebut perlu dipindahkan. Pada contoh ini, maka rekaman baru akan menempati posisi rekaman 15, sementara rekaman 15 dipindahkan menggantikan posisi rekaman 20, dan rekaman 20 dipindah menggantikan posisi rekaman 22, sedang rekaman 22 dipindah menggantikan posisi rekman 25. Kemana rekaman 25 akan dipindahkan? Indeks track (untuk silinder = 1)
Nomor track 0

25

25

70

70

85

85

Penyimpanan Primer 1 2 3
7 28 73 9 38 75 12 41 77 15 13 55 79 20 15 57 80 22 20 65 83 25 22 70 85

Penyimpanan Overflow 1 9
25

2 ^

Gambar 8.3 Proses penyisipan rekaman 13 Rekaman 25 akan dipindah ke area overflow. Daftar ruang yang masih kosong akan menunjuk pada track 9 rekaman nomor 1. Rekaman 25 dipindah ke Dinny Wahyu Widarti, S.Kom Sistem Berkas - 32

posisi tersebut dan pada penunjuk diberikan symbol ^. Dengan pemindahan tersebut maka kunci tertinggi pada track 1 adalah 22 sehingga rekaman tertinggi pada amsukan indeks track pasangan pertama harus berubah dari 25 menjadi 22, dan penunjuk pada masukan indeks track pasangan kedua harus mengarah pada track 9 rekaman nomor 1 (atau 9-1). Struktur berkas sesudah penyisipan adalah sebagai berikut: Indeks track (untuk silinder = 1)
Nomor track 0

22

25

9-1

70

70

85

85

Penyimpanan Primer 1 2 3
7 28 73 9 38 75 12 41 77 13 55 79 15 57 80 20 65 83 22 70 85

Penyimpanan Overflow 1 9
25 ^

Gambar 8.2 Struktur awal berkas sekuensial berindeks 2. Menyisipkan rekaman dengan kunci 27 pada berkas gambar 8.4 Rekaman dengan kunci 27 harus berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder 1 adalah 250 (27 lebih kecil dari 250). Setelah mencermati track indek untuk silinder 1 dan membandingkan kunci rekaman yang akan disimpan dengan kunci tertinggi yang berada pada indeks track 1 silinder 1, ternyata 27 > 22 maka pembandingan dilanjutkan dengan track berikutnya, yaitu track 2 silinder 1. Karena kunci rekaman yang akan disisipkan < dari kunci rekaman tertinggi yang berada pada track 2 silinder 1. Rekaman-rekaman pada area primer dibaca satu per satu untuk memastikan bahwa rekaman dengan kunci 27 belum ada dalam track 2 tersebut. Untuk menyisipkan rekaman pada kunci 27 pada posisi yang sesuai, semua rekaman yang ada sesudah posisi tersebut perlu dipindahkan. Pada contoh kedua ini, semua rekaman harus dipindah untuk memberi tempat pada rekaman yang baru (lihat gambar 8.5). rekaman dengan kunci 70 akan dipindahkan ke overflow area. Sesuai informasi dari daftar ruang yang masih kosong, makan rekaman tersebut akan diletakkan pada track 9 rekaman nomor 2, dan penunjuk akan berisi ^. Dengan pemindahan tersebut maka kunci tertinggi pada track 2 adalah 65 sehingga rekaman tertinggi pada masukan indeks track pasangan pertama harus berubah dari 70 menjadi 65, dan Dinny Wahyu Widarti, S.Kom Sistem Berkas - 33

penunjuk pada masukan indeks track pasangan kedua harus mengarah pada track 9 rekaman nomor 2 (atau 9-2). Struktur berkas sesudah penyisipan diperlihatkan pada gambar 8.6. Indeks silinder 250 1-0 750 2-0 1500 3-0

Indeks track (untuk silinder = 1)


Menjadi 65 Nomor track 0 menjadi 9-2

22

25

9-1

70

70

85

85

Penyimpanan Primer 1 2 3
7 27 28 73 9 28 38 75 12 38 41 77 13 41 55 79 15 55 57 80 20 57 65 83 22 65 70 85

Penyimpanan Overflow 1 9
25 ^

2
^

Gambar 8.5 Proses penyisipan rekaman dengan kunci 27 Indeks silinder 250
Nomor track 0

1-0

750

2-0

1500

3-0

Indeks track (untuk silinder = 1) 22 1 25 9-1 65 2 70 9-2 85 3 85 ^

Penyimpanan Primer 1 2 3
7 27 73 9 28 75 12 38 77 13 41 79 15 55 80 20 57 83 22 65 85

Penyimpanan Overflow 1 9
25 ^

2
70 ^

Gambar 8.6 Struktur berkas sesudah rekaman dengan kunci 27 disisipkan Dinny Wahyu Widarti, S.Kom Sistem Berkas - 34

3. Menyisipkan rekaman dengan kunci 26 pada berkas gambar 8.6 Rekaman dengan kunci 26 harus berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder 1 adalah 250 (26 lebih kecil dari 250). Setelah mencermati track indeks untuk silinder 1 dan membandingkan kunci rekaman yang akan disisipkan dengan kunci tertinggi berada pada indeks track 1 silinder 1, ternyata 26>22 maka pembandingan dilanjutkan pada track berikutnya, yaitu track 2 silinder 1. Karena kunci rekaman yang akan disisipkan < dari kunci rekaman tertinggi yang berada pada track 2 silinder 1 (26<65), maka rekaman baru tersebut harus diletakkan pada track 2 silinder 1. Rekaman-rekaman pada area primer dibaca untuk memastikan bahwa rekaman dengan kunci 26 belum ada pada track 2 tersebut. Untuk menyisipkan rekaman dengan kunci 26 pada posisi yang sesuai, maka semua rekaman yang ada sesudah posisi tersebut perlu dipindahkan. Pada contoh ketiga ini, semua rekaman harus dipindah untuk member tempat pada rekaman yang baru (lihat gambar 8.7). Rekaman dengan kunci 65 akan dipindahkan ke overflow area. Sesuai informasi dari daftar ruang yang masih kosong, maka rekaman tersebut akan diletakkan pada track 9 rekaman nomor 3. Bagaimana penunjuknya? Karena rekaman dengan kunci 65 merupakan rekaman kedua yang dipindahkan ke area overflow dari track 2, maka penunjuk akan mengarah pada rekaman yang dipindahkan sebelumnya, yaitu rekaman 70 yang berada pada track 9 rekaman nomor 2, atau penunjuk akan berisi 9-2. Dengan pemindahan tersebut, maka kunci tertinggi pada track 2 bukan lagi 65, melainkan 57. Jadi, rekaman tertinggi pada masukan indeks track pasangan pertama harus berubah dari 65 menjadi 67, dan penunjuk pada masukan indeks track pasangan kedua harus mengarah pada track 9 rekaman nomor 3 (atau 9-3). Struktur berkas sesudah penyisipan diperlihatkan pada gambar 8.8. Indeks silinder 250 1-0 750 2-0 1500 3-0

Indeks track (untuk silinder = 1)


Menjadi 57 Nomor track 0 menjadi 9-3

22

25

9-1

65

70

9-2

85

85

Penyimpanan Primer 1 2 3
7 26 27 73 9 27 28 75 12 28 38 77 13 38 41 79 15 41 55 80 20 55 57 83 22 57 65 85

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 35

Penyimpanan Overflow 1 9
25 ^

65

9-2

2
70 ^

Gambar 8.7 Proses penyisipan rekaman dengan kunci 26 Indeks silinder 250
Nomor track 0

1-0

750

2-0

1500

3-0

Indeks track (untuk silinder = 1) 22 1 25 9-1 57 2 70 9-3 85 3 85 ^

Penyimpanan Primer 1 2 3
7 26 73 9 27 75 12 28 77 13 38 79 15 41 80 20 55 83 22 57 85

Penyimpanan Overflow 1 9
25 ^

2
70 ^

3
65 9-2

Gambar 8.8 Struktur berkas sesudah rekaman dengan kunci 26 disisipkan 4. Menyisipkan rekaman dengan kunci 58 pada berkas gambar 8.8 Rekaman dengan kunci 58 harus berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder 1 adalah 250 (58 lebih kecil dari 250). Setelah mencermati track indeks untuk silinder 1 dan membandingkan kunci rekaman yang akan disisipakan dengan kunci tertinggi yang berada padan indeks track 1 silinder 1, ternyata 58>22 maka pembandingan dilanjutkan pada track berikutnya, yaitu track 2 silinder 1. Meskipun rekaman baru tersebut > dari kunci rekaman tertinggi yang berada pada area primer track 2 silinder 1 (58>57), tetapi rekaman baru tersebut < disbanding rekaman tertinggi yang berada pada area overflow. Dengan demikian rekaman baru tersebut harus diletakkan pada track 2 silinder 1. Rekaman tersebut tidak menempati area primer, tetapi pada overflow area, tepatnya sector 9 rekaman nomor 4. Penunjuk mengarah pada rekaman sebelumnya yang berasal dari track yang sama (baca track 2), yaitu track 9 rekaman 3 atau 9-3. Rekaman baru tersebut tidak mengubah kunci tertinggi pada area primer sehingga masukan rekaman tertinggi pada pasangan pertama indeks track untuk track 2 silinder 1 tidak mengalami perubahan (tetap 65), sementara untuk area overflow adalah 70.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 36

Penunjuk pada pasangan kedua mengarah pada rekaman pertama yang harus didatangi saat meninjau area overflow, yaitu 9-4 (lihat gambar 8.9). Indeks silinder 250 1-0 750 2-0 1500 3-0

Indeks track (untuk silinder = 1)


menjadi 9-4 Nomor track 0

22

25

9-1

57

70

9-3

85

85

Penyimpanan Primer 1 2 3
7 26 73 9 27 75 12 28 77 13 38 79 15 41 80 20 55 83 22 57 85

Penyimpanan Overflow 1 9
25 ^

58

9-3

2
70 ^

3
65 9-2

Gambar 8.9 Proses penyisipan rekaman dengan kunci 58 Pembahasan Membaca berkas indeks secara sekuensial dilakukan dengan mengikuti arahan yang diperoleh dari indeks untuk menentukan lokasi dari track satu ke track berikutnya yang berada di area primer dan juga area overflow. Pembacaan tidak dapat dilakukan dari rekaman pertama dari berkas dan diproses sesuai keinginan sama seperti pembacaan pada berkas dengan organisasi sekuansial. Alasannya, mungkin terdapat track yang tiba-tiba menyisip yang berisi informasi yang berada di area overflow, atau informasi lain, ada kemungkinan dari berkas lain. Indeks juga dibutuhkan untuk berpindah dari satu silinder ke silinder lain karena silindar bisa saja secara fisik tidak berurutan. Dengan kata lain, bagaimana indeks melakukan pengurutan terhadap berkas untuk pengolahan secara sekuensial sangat berbeda terhadap berkas dengan organisasi sekuensial. Untuk membaca satu rekaman secara langsung, proses yang dilakukan sama seperti akan melakukan penyisipan. Pertama dilakukan pembacaan silinder indeks untuk menentukan lokasi silinder yang benar tempat rekaman yang akan dibaca tersebut disimpan, kalau memang rekaman tersebut ada di dalam berkas. Masukan dalam indeks silinder member informasi tentang track indeks yang benar tempat rekaman berada. Indeks track memiliki informasi tentang kunci rekaman tertinggi yang berada pada area primer dan kunci rekaman tertinggi pada area overflow. Bila kunci rekaman yang dicari lebih kecil dari kunci tertinggi dalam area Dinny Wahyu Widarti, S.Kom Sistem Berkas - 37

primer, maka area primer di baca rekaman demi rekaman untuk menemukan rekaman yang dicari. Jika kunci rekaman yang dicari lebih besar dari kunci tertinggi pada area primer, tetapi lebih kecil disbanding kunci tertinggi pada area overflow, maka track yang berisi rekaman overflow dikunjungi, dimulai dari informasi yang berada pada pasangan kedua track indeks yang berkaitan dengan lokasi track dan rekaman ke yang harus pertama dikunjungi. Bila kunci rekaman tersebut tidak cocok dengan kunci rekaman yang dicari, maka dilanjutkan dengan rekamanrekaman berikut sesuai dengan arahan indeks. Dari uraian tersebut, disimpulkan bahwa untuk menemukan sebuah rekaman, tidak perlu dilakukan pembacaan pada kedua area yaitu primer dan overflow, tetapi cukup salah satu diantaranya, bergantung apakah kunci rekaman yang di cari lebih besar atau lebih kecil disbanding kunci rekaman tertinggi yang berada pada sebuah track. Dalam berkas yang berindeks, untuk pencarian yang berhasil maupun pencarian yang gagal, diperlukan waktu yang sama. Hal ini karena berkas ISAM menyimpan rekaman secara sekuensial baik pada area primer maupun overflow. Jadi, jika pada suatu saat rekaman yang dibaca lebih besar dari rekaman yang dicari, maka pencarian bisa dihentikan dengan kesimpulan rekaman tidak ditemukan tanpa harus membaca keseluruhan rekaman. C. PENGHAPUSAN REKAMAN Penghapusan rekaman pada berkas sekuensial berindeks dilakukan bergantung apakah rekaman tersebut berada pada area primer ataukah pada area overflow. Untuk rekaman yang berada pada area primer (missal menghapus 15), penghapusan dilakukan secara langsung dan menggantinya dengan symbol tombstone. Bila rekaman berada pada area overflow, maka penunjuk harus diatur kembali sehingga rekaman sebelum rekaman yang dihapus mengarah pada rekaman sesudah rekaman yang dihapus (missal menghapus 65).
Nomor track 0

22

25

9-1

57

70

9-4

85

85

Penyimpanan Primer 1 2 3
7 26 73 9 27 75 12 28 77 13 38 79 15 41 80 20 55 83 22 57 85

Penyimpanan Overflow 1 9
25 ^

2
70 ^

3
65 9-2

4
58 9-3

Gambar 8.10 Proses penghapusan rekaman Dinny Wahyu Widarti, S.Kom Sistem Berkas - 38

Sesi 11

Materi 9 MANAJEMEN KOLISI


Salah satu fungsi hash adalah akan mendistribusikan data secara merata ke dalam berkas. Jika tujuan tersebut tidak tercapai, salah satu strategi yang bisa diambil adalah mengkombinasikan beberapa fungsi sederhana dalam satu aplikasi. Fungsi hash menghasilkan banyak kolisi atau sinonim dikatakan memiliki kluster primer. Makin sedikit jumlah kolisi, makin baik fungsi hashing tersebut karena makin sedikit waktu yang diperlukan rekaman yang diinginkan, dan juga akan mempertahankan probe atau akses terhadap penyimpan agar mendekati satu. Meminimalkan jumlah probe pembacaan rekaman merupakan isu yang sangat penting mengingat berbagai aplikasi komersial pada umumnya memiliki volume data yang sangat besar sehingga data tersebut harus disimpan di dalam penyimpanan luar (auxiliary). Beberapa cara yang dapat ditempuh untuk mereduksi kolisi adalah mengganti fungsi hashing, atau dengan mereduksi factor-packing. Factor-packing suatu berkas adalah perbandingan (atau rasio) antara jumlah rekaman yang disimpan dalam berkas dengan kapasitas berkas, atau dapat dinyatakan sebagai berikut: Factor-packing (FP) = Jumlah rekaman yang disimpan Jumlah total lokasi penyimpanan Factor-packing (sinonim dengan densitas-packing atau factor-loading)

mengukur utilitasi penyimpanan. Factor-packing berbanding lurus dengan jumlah kolisi. Jika nilai packing-factor meningkat, maka kolisi akan lebih sering terjadi . mengurangi nilai factor-packing dengan tujuan untuk mengurangi jumlah kolisi , membawa pada konsekuensi diperlukannya ruang yang lebih luas untuk menyimpan jumlah rekaman yang sama. Fenomena pemilihan factor-packing adalah contoh dari suatu trade-off waktu dan ruang. Jika factor-packing diperkecil, maka diperlukan ruang yang lebih luas (dan ini mahal), tetapi dengan demikian kemungkinan untuk kolisi menjadi berkurang atau dengan kata lain meningkatkan kinerja. Kolisi pada umumnya akan naik secara cepat bila factor-packing melebihi 90%. Hubungan antara jumlah kolisi dengan tempat penyimpanan dapat diilustrasikan dengan grafik berikut: Kolusi

Penyimpanan

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 39

Mengubah fungsi hashing atau mengubah factor-packing akan dapat mengurangi jumlah kolusi. Akan tetapi, pada umumnya tidak akan mengeliminasi kolusi tersebut. Oleh karena itu, diperlukan suatu posedur untuk menempatkan sinonimnya ke posisi lain bila kolisi memang benar terjadi. Yang menjadi tujuan utama metoda resolusi kolusi adalah menempatkan rekaman sinonim pada tersebut. Perlu diingat bahwa probe adalah akses ke lokasi yang berbeda. Salah satu penyelesaian yang dapat dilakukan adalah memberikan penunjuk pada lokasi rekaman sinonim. Bila terjadi sinonim jamak pada satu home-address tertentu, akan dibentuk rantai rekaman sinonim. Sebagai contoh adalah R1, R2, dan R3 sinonim dengan home-address r maka rantai sinonim akan berbentuk seperti dilihatkan pada gambar 9.1. Medan penghubung lokasi r menunjuk pada lokasi s di mana tersimpan sinonim pertama, yaitu R2. Simbol ^ atau penunjuk nol pada medan penghubung t menunjukkan akhir dari rantai sinonim. Medan Rekaman Penghubung suatu lokasi yang membutuhkan probe tambahan yang minimum dari home-address rekaman

r s t

R1 R2 R3

s t ^ Gambar 9.1 Rantai sinonim

A. Coalesed-Hashing Coalesed-Hashing adalah metode resolusi yang menggunakan penunjuk untuk menghubungkan elemen-elemen dari sebuah rantai sinonim. Sebagai ilustrasi, perhatikan gambar 9.1 yang memperlihatkan rekamaa-rekaman R1, R2, dan R3 yang semuanya memiliki home-address r. R1 disisipkan pertama dan memperoleh lokasi sebagai home-addressnya yaitu r. Pada saat menyisipkan R2, terjadilah kolusi karena hasil fungsi dari R2 juga r. Hal tersebut mengisyaratkan agar R2 diletakkan pada lokasi lain karena r sudah ditempati R1. Pada saat tersebut tersedia ruang di s, maka R2 akan disisipkan pada lokasi tersebut dan penunjuk pada medan penguhubung r diatur agar menunjuk ke s. Kolisi terjadi kembali pada saat R3 akan disisipkan. Rekaman R3 kemudian disisipkan pada ruang yang masih tersedia, yaitu t, dan penunjuk di medan penghubung s diarahkan ke t, sementara medan penghubung t memiliki symbol ^ yang berarti akhir dari rantai sinonim akan dibaca sampai rekaman ditemukan atau sampai terbaca akhir mata rantai sinonim.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 40

Coalesced-hashing (kolisi) terjadi bila terdapat usaha untuk menyisipkan sebuah rekaman dengan home-address yang sudah di okupasi oleh rekaman dari rantai yang memiliki home-address yang berbeda. Misal terdapat rekaman R4 yang hasil hashnya adalah s. Kolisi akan terjadi pada saat diinginkan untuk menyisipkan R4 pada alamat s ke dalam tabel seperti gambar 9.1, yang terjadi adalah dua rantai sinonim dengan rekaman-rekaman yang memiliki home-address berbeda mengalami kolisi. Algoritma untuk coalesced-hashing adalah sebagai berikut: I. Lakukan hashing pada semua kunci rekaman yang akan disisipkan untuk mendapatkan home-address atau calon-address yang mungkin akan ditempati oleh rekaman-rekaman tersebut. II. Jika home-address kosong, sisipkan rekaman pada lokasi tersebut, jika rekaman ternyata kembar, akhiri program dengan pesan Rekaman Kembar, jika tidak: a) Cari lokasi terakhir rantai-sinonim dengan mengikuti penunjuk pada medanpenghubung sampai menemukan symbol ^ yang menandakan akhir dari rantai. b) Cari lokasi paling bawah dalam berkas (atau memiliki alamat paling besar). Jika tidak ditemukan, akhiri program dengan pesan Berkas Penuh. c) Sisipkan rekaman ke dalam lokasi yang kosong sudah teridentifikasi dan atur medan-penguhubung rekaman terakhir dalam rantai-sinonim agar menunjuk ke lokasi rekaman yang baru saja disisipkan. B. LICH dan EISCH Berbagai usaha telah dilakukan untuk mengurangi kolisi pada rantai sinonim sehingga mengurangi probe pembacaan dan akhirnya meningkatkan kinerja. Beberapa varian dari coalesced-hashing dapat diklasifikasikan ke dalam tiga cara: Mengorganisasi berkas (dengan atau tanpa overflow) Menghubungkan item yang terkolisi kedalam rantai Memilih lokasi yang belum ada penghuinya Kolisi mungkin dapat direduksi dengan memodifikasi organisasi berkas. Cara pertama adalah dengan memisahkan antara area untuk data prima dengan area untuk data overflow, sehingga memiliki bentuk sebagai berikut:

Primer Overflow

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 41

Area primer adalah ruang alamat yang cocok dengan fungsi hash. Overflow (atau Cellar) adalah area yang hanya berisi rekaman-rekaman yang sinonim. Faktor alamat adalah perbandingan antara area primer dengan ukuran total berkas. Faktor alamat = Area Primer Ukuran total berkas Untuk ukuran berkas yang tetap, jika faktor alamat mengecil maka ukuran cellar akan meningkat, yang berarti mereduksi kolisi. Akan tetapi, karena area primer menjadi mengecil maka jumlah kolisi akan membesar. Kolisi yang lebih banyak membawa konsekuensi pada diperlukannya probe pembacaan yang lebih besar. Algoritma yang diimplementasikan pada coalesced-hashing sebagaimana dilakukan pada contoh terdahulu disebut Late Insertion Standard Coalesced Hashing atau LISCH, karena rekaman yang baru disisipkan pada akhir rantai sinonim. Kata standard memiliki arti tidak adanya cellar. Varian dari algoritma tersebut adalah LICH atau Late Insertion Standard Coalesced Hashing. C. Progressive Overflow Kerugian utama penggunaan coalesced-hashing adalah diperlukannya penyimpanan tambahan untuk medan penghubung. Bila penyimpanan tambahan tersebut tidak tersedia, maka penghubung yang sifatnya fisik tidak tersedia, sehingga perlu dipertimbangkan teknik resolusi kolisi yang menggunakan konversi untuk menentukan kemana selanjutnya rekaman harus dicari. Salah satu konversi yang sederhana adalah penggunaan overflow yang progresif atau probing secara linier. Sesuai namanya bila lokasi yang akan ditempati telah terisi, maka lokasi selanjutnya dilihat apakah masih belum terisi. Secara progresif lokasi selanjutnya di overflow. Pertanyaanya adalah, apa yang akan terjadi bila overflow dilakukan sampai pada alamat tertinggi, atau akhir berkas? Pertimbangan berkas memiliki struktur yang melingkar, dengan lokasi pertama brada tepat sesudah lokasi terakhir. Pencarian dilanjutkan sampai ditemukan slot yang kosong atau sampai ditemukan home-address rekaman untuk kedua-kalinya. Menandakan bahwa berkas telah penuh. Untuk pembacaan kembali, dilakukan proses yang sama. Dan bagaimana dengan pencarian yang tidak berhasil? Pencarian harus terus dilakukan sampai dijumpai slot kosong atau alamat pencarian yang pertama. Jelas bahwa algoritma untuk pencarian yang tidak berhasil memiliki kinerja yang tidak bagus, tetapi algoritma tersebut sangat sederhana. D. Penggunaan Buckets Dalam diskusi mengenai prosedur resolusi kolisi, diasumsikan bahwa hanya sebuah rekaman saja yang dapat disimpan pada sebuah alamat penyimpanan. Jumlah pengaksesan dapat direduksi dengan meletakkan lebih dari satu rekaman pada satu alamat penyimpanan. Kemungkinan tersebut dapat direalisir bila digunakan sistem buckets (disebut juga blok atau halaman). Jadi, bucket dapat didefinisikan Dinny Wahyu Widarti, S.Kom Sistem Berkas - 42

sebagian unit penyimpanan yang berada di antara rekaman dengan berkas, juga sebuah unit dengan informasi yang dapat di akses dan dipindahkan antar peralatan penyimpanan. Jumlah rekaman yang dapat diletakkan pada satu bucket disebut factor-blocking. Jika factor-blocking meningkat, jumlah akses terhadap penyimpanan akan mengecil karena beberapa rekaman yang berkolisi dapat disimpan dalam satu alamat yang sama. E. Pembagian Linier Resolusi kolisi dengan teknik pembagian-linier merupakan varian dari progressive-overflow. Kalau ada progressive-overflow inkremen untuk menuju ke lokasi berikutnya adalah konstan (1=satu), maka pada pembagian-linier digunakan inkremen yang bersifat variable. Tujuan inkremen yang variable adalah mereduksi pngklusteran sekunder yang terjadi pada progressive-overflow sehingga jumlah probe untuk pembacaan kembali juga berkurang. Pengklusteran sekunder akan terjadi pada skema hashing dengan fungsi inkremen yang berupa konstanta atau yang hanya bergantung pada home-address rekaman. Dari semua metoda hashing yang telah dibahas, hanya progressive-overflow yang memiliki kemungkinan terjadinya pengklusteran-skunder. Pada pembagian-linier, inkremen merupakan fungsi dari kunci yang akan disisipkan. Fungsi tersebut dapat juga disebut fungsi hashing lain karena fungsi tersebut digunakan untuk mengkonversi kunci menjadi sebuah inkremen. Untuk alasan tersebut, maka pembagian-linier dapat dikelompokkan sebagai metoda resolusi kolisi dengan hashing-ganda, mengingat pertama dilakukan hash untuk menentukan home-address (menggunakan fungsi H1), dan kedua untuk mendapatkan inkremen (menggunakan fungsi H2). Terdapat dua alternatif bentuk H2, yaitu: H2 = Pembagian (kunci/P) modulus P atau H2 = (kunci modulus (P-2) + 1 dengan P merupakan bilangan primer dari ukuran berkas. Kedua fungsi hashing akan menghasilka variable inkremen dalam cakupan ruang alamat. Pertanyaan yang muncul adalah fungsi hashing yang mana yang sebaiknya digunakan? Misalnya fungsi hashing akan dieksekusi dengan menggunakan mesin, maka H2 memerlukan dua buah operasi pembagian: pertama dalam pembagian, dan kedua dalam mencari modusnya. Seperti diketahui, operasi pembagian merupakan operasi yang relatif lambat. Sementara itu H2 hanya memerlukan satu operasi pembagian, yaitu dalam mencari modulusnya. Jadi, untuk praktisnya H2 -lah yang lebih baik untuk digunakan. Akan tetapi, perlu diingat bahwa persamaan seperti H2 sulit diselesaikan oleh manusia. Dua hal yang saling bertentangan tersebut merupakan gambaran mengenai perbedaan kemampuan yang dimiliki baik oleh manusia maupun komputer. Untuk selanjutnya, dalam contoh-contoh akan digunakan fungsi hash H2. Home-address untuk rekaman akan dihitung berdasar sisa hasil pembagian antara Dinny Wahyu Widarti, S.Kom Sistem Berkas - 43

kunci dengan ukuran berkas, sedangkan inkremen akan dihitung berdasar hasil pembagian dari operasi yang sama. Tidak seperti rantai coalesced, sinonim pada pembagian-linier umumnya tidak berada pada rantai probe yang sama. Jika R1, R2, dan R3 adalah sinonim pad homeaddress h seperti pada gambar di bawa ini, R2 dan R3 biasanya memiliki inkremen yang berbeda mengingat inkremen merupakan fungsi kunci yang akan disisipkan. Karena inkremen yang berbeda, maka pengklusteran sekunder dapat direduksi.

R1

R2 Fungsi (R3) R3

Fungsi (R1)

Algoritma untuk metoda resolusi kolisi dengan pembagian-linier adalah sebagai berikut: I. II. Hash kunci yang akan disisipkan ke dalam berkas untuk memperoleh homeaddress untuk menyimpan rekaman. Jika home-address kosong, sisipkan rekaman ke dalam lokasi tersebut, jika tidak maka: a. Tentukan inkremen dengan menghitung hasil bagi kunci dengan ukuran berkas. Jika hasilnya nol, maka inkremennya = 1 (satu). b. Beri harga awal pencacah untuk perhitungan lokasi yang akan dicari dengan 1 (satu). c. Selama jumlah lokasi yang dicari lebih kecil dari ukuran berkas, maka: a. Hitung alamat yang akan dicari berikutnya dengan menambahkan inkremen terhadap alamat terakhir dan kemudian cari modulusnya terhadap ukuran berkas. b. Jika alamat tersebut tidak ada yang menempati, maka sisipkan rekaman serta akhiri penyisipan dengan sukses. c. Jika rekaman yang menempati memiliki kunci yang sama dengan yang akan disisipkan, akhiri proses dengan pesan rekaman dobel. d. Tambahkan 1 pada pencacah pencarian lokasi. d. Akhiri proses dengan pesan Berkas penuh Dinny Wahyu Widarti, S.Kom Sistem Berkas - 44

Algoritma tersebut mensyaratkan ukuran berkas berupa bilangan prima untuk menghindari terjadinya siklus pencarian terhadap rekaman berulang-ulang dan kemudian memberikan indikasi bahwa rekaman sudah penuh padahal masih terdapat ruang yang belum ditempati.

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 45

Sesi 12

Materi 10 PENGURUTAN REKAMAN


Beberapa metode sorting yang sering digunakan adalah: 1. Pengurutan gelembung (Bubble sort) 2. Pengurutan cepat (Quick sort) 3. Pengurutan heap (Heap sort) A. PENGURUTAN GELEMBUNG (BUBBLE SORT) Salah satu prosedur pengurutan paling sederhana adalah pengurutan gelembung. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat meggelembung ke posisi yang tepat. Salah satu karakter dari pengurutan ini adalah sangat mudah untuk dipahami dan diprogramkan. Akan tetapi dari semua prosedur pengurutan yang akan dibahas, prosedur pengurutan gelembung merupakan prosedur yang paling tidak efisien. Pada pembahasan berikut, x merupakan suatu array interger di mana n rekaman pertamanya akan diurutkan sehingga x [i] x [j] untuk 1 i n. Gagasan dasar pengurutan gelembung adalah langkah-langkah melewatkan satu rekaman melalui rekaman-rekaman lain di dalam berkas. Masing-masing langkah mengandung proses untuk membandingkan rekaman pendahulunya, atau x [i] dengan x [i-1] dan mempertukarkan kedua rekaman bila urutan mereka tidak tepat. Perhatikan contoh berikut : 15 31 28 43 65 35 78 20 19 X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8] X[9] Pada putaran pertama dilakukan pembandingan sebagai berikut: X[1] dengan x[2] (15 dengan 31) tidak ada pertukaran X[2] dengan x[3] (31 dengan 28) pertukaran X[3] dengan x[4] (31 dengan 43) tidak ada pertukaran X[4] dengan x[5] (43 dengan 65) tidak ada pertukaran X[5] dengan x[6] (65 dengan 35) pertukaran X[6] dengan x[7] (65 dengan 78) tidak ada pertukaran X[7] dengan x[8] (78 dengan 20) pertukaran X[8] dengan x[9] (78 dengan 19) pertukaran Jadi, sesudah putaran pertama hasilnya adalah sebagai berikut: 15 28 31 43 35 65 20 19 78

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 46

Perhatikan bahwa rekaman tertinggi yaitu dengan kunci 78 sudah berada pada posisi yang tepat. Pada umumnya diperlukan sebanyak i putaran agar x[n-i+1] sampai pada posisi yang tepat. Sesudah putaran kedua, berkas akan mempunyai bentuk: 15 28 31 34 43 20 19 65 78

Perhatikan bahwa rekaman kedua tertinggi yaitu dengan kunci 65 sudah berada pada posisi yang tepat. Karena setiap satu putaran menempatkan satu elemen baru ke dalam posisi yang tepat, maka sebuah berkas dengan n rekaman membutuhkan tidak lebih dari n-1 putaran untuk menghasilkan berkas yang urut. Putaran ketiga dan seterusnya adalah sebagai berikut: 15 15 15 15 15 28 28 28 20 19 31 31 20 19 20 34 20 19 28 28 20 19 31 31 31 19 34 34 34 34 43 43 43 43 43 65 65 65 65 65 78 78 78 78 78

B. PENGURUTAN CEPAT (QUICK SORT) Pengurutan cepat memproses berkas dengan membagi rekaman-rekaman menjadi beberapa kelompok kemudian mengurutkannya. Bila sebuah kelompok hanya berisi satu item, maka proses pengurutan kelompok tersebut dihentikan. Bila proses pengurutan untuk semua kelompok sudah selesai, maka keseluruhan rekaman dalam berkas sudah dalam keadaan urut. Pengurutan cepat mengurutkan rekaman dalam berkas dengan membuat partisi antar rekaman menjadi beberapa kelompok berdasar hasil perbandingan terhadap anggota berkas tertentu. Proses tersebut diulang sampai semua kelompok sudah dalam keadaan urut. Berkas (atau kelompok) dibagi berdasarkan perbandingan dengan rekaman pertama dari berkas. Semua rekaman dengan kunci lebih kecil dari kunci pada rekaman pertama diletakkan disebelah kiri rekaman pembanding, sedangkan rekaman dengan kunci yang lebih besar diletakkan pada bagian sebelah kanan rekaman pembanding. Sebelum pemisahan pertama Sesudah pemisahan pertama
< dari pertama > dari pertama

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 47

Algoritma pengurutan cepat adalah sebagai berikut: 1. Jika terdapat banyak rekaman yang harus diurutkan, pisahkan rekamanrekaman tersebut dalam tiga kelompok (yaitu rekaman-rekaman dengan kunci rekaman lebih besar dari kunci rekaman pertama) dengan menggunakan prosedur pertukaran_cepat, yaitu : a. Urutkan cepat rekaman-rekaman data yang berada dalam kelompok pertama menjadi tiga kelompok b. Urutkan cepat rekaman-rekaman data yang berada dalam kelompok ketiga menjadi tiga kelompok 2. Jika tidak, maka proses berakhir C. PENGURUTAN HEAP (HEAP SORT) Pengurutan heap merupakan algoritma yang menarik karena sangat sederhana. Nama heap diambil dari struktur data yang mendasari pengurutan tersebut, yaitu struktur heap. Pengurutan heap memanfaatkan keunggulan sifat-sifat yang dimiliki oleh pohon biner lengkap, yaitu: Heap biner atau heap, merupakan pohon biner lengkap dengan kunci yang disimpan dalam masing-masing titik memiliki nilai lebih kecil atau sama dengan nilai kunci dari masing-masing anaknya. Definisi tersebut memberikan indikasi bahwa akar akan berisi rekaman dengan kunci tertinggi. Contoh Heap
83 69 12

69

56

32

14

13

21

34

26

Contoh bukan heap:


83 69 12

69

56

32

14

72

34

20

13

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 48

Sesi 13

Materi 11 SORT DAN MERGE FILE


Dalam sistem penyortiran dikenal 2 motode, yaitu: 1. Metode Sort Internal Semua record yang akan diproses dimuat kedalam memori komputer lalu diproses sort (sortir) 2. Metode Sort Eksternal Record-record dip roses tidak semuanya dapat dimuat ke dalam memori komputer, karena keterbatasan memori komputer Contoh: Sebuah file berisi 2000 record harus disortir ke dalam memori yang hanya dapat menampung 5000 record sekaligus. Untuk itu digunakan metode sort eksternal. Langkah-langkah penyortiran ini adalah: 1. Record-record dibagi ke dalam beberapa file agar dapat ditampung sekaligus di memori komputer, lalu masing-masing bagian di sortir internal. Bagian-bagian file yang telah tersortir ini disebut sorted sublist. Maka didapat: Sorted sublist 1 (record 1-1000) dan Sorted sublist 2 (record 1001-2000)

2. Setelah itu kedua sorted sublist ini (RUN) digabung (merge), sehingga didapat berkas gabungan (merge file) yang record-recordnya telah disortir.

Sorted sublist 1 (record 1-1000)

Merge List

MERGE
(Sorted list of record 1-2000)

Sorted sublist 2 (record 1001-2000)

Kita simpulkan langkah-langkah metode sort eksternal ini adalah: Internal sort, dimana file dibagi menjadi beberapa bagian file kemudian di sortir. Merge, dimana bagian-bagian file ini (sorted sublist) digabung menjadi satu atau lebih file gabungan. File-file gabungan ini kemudian digabung lagi sampai akhirnya didapatkan sebuah file gabungan yang berisi semua record-record yang telah tersortir. Output, dimana menyalin file gabungan yang telah disortir kemudian storage terakhir. Dinny Wahyu Widarti, S.Kom Sistem Berkas - 49

Faktor-faktor yang mempengaruhi motode sort eksternal: Jumlah record yang akan disortir Ukuran record (panjang record) Jumlah storage yang digunakan Kapasitas internal memori Distribusi nilai key dalam input file

Teknik sort/merge file ini berbeda satu dengan lainnya dalam hal: Metode sort internal yang digunakan Jumlah main memori yang digunakan untuk sort internal Distribusi dari sorted sublist di secondary storge menjadi satu atau lebih file gabungan dalam satu langkah gabungan (merge pass) A. NATURAL MERGE Merge yang menangani dua input file sekaligus disebut dua way natural merge, merge yang menangani M input file sekaligus disebut M way natural merge. M menunjuk derajat merge. M way natural merge dapat didefinisikan sebagai merge dengan M input file dan hanya satu output file. Contoh, sebuah file yang terdiri dari 6000 record hendak disortir ke dalam memori komputer yang kapasitasnya 1000 record. Pada contoh ini, sebagai eksternal storage digunakan tiga tape. Tape satu berisi tiga sorted sublist yaitu record 1-1000, record 2001-3000 dan record 4001-5000. Sedangkan tape 2 berisi tiga sorted sublist yang terdiri dari record 1001-2000, record 3001-4000 dan record 5001-6000. Dengan 2 way natural merge, dimana dua input file sekaligus digabung menjadi sebuah output file di tape tiga. Record 1-1000 Record 1001-2000 Record 2001-3000 Record 3001-4000 Record 4001-5000 Record 5001-6000 Menjadi record 1-2000

Menjadi record 2001-4000

Menjadi record 4001-6000

Langkah selanjutnya, 1 dari 3 file digabung (record 1 2000) pada tape 3 ini disalin ke tape 1. Pengerjaan seterusnya dapat dilihat pada gambar dibawah ini. Hasil akhirnya adalah sebuah file gabungan berisi 6000 record yang telah terseortir di tape 3.
Tahap Pengurutan Internal 6000 record 6 pengurutan subfile @ 1000 record

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 50

2 way merge. Diasumsikan 2 input file dan 1 output file 1. Pengurutan terdistribusi terhadap 2 file (bisa diselesaikan dalam konjungsi dengan tahap pengurutan internal. 2. Tahap Penggabungan/Merge 1 1
Record 1-1000; Record 2001-3000; Record 4001-5000 Record 1001-2000; Record 3001-4000; Record 5001-6000 Tahap penggabungan 1 Record 1-2000; Record 2001-4000; Record 4001-6000

3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1 4. Tahap penggabungan kedua 1
Record 1-2000 Tahap penggabungan 2

Record 1-6000

Record 2001-4000; Record 4001-6000

B. BALANCED MERGE Keperluan penggunaan tape pada natural merge dapat dikurangi dengan menggunakan balanced merge. Pada balanced merge, tidak ada lagi langkah pendistribusian hasil merge ke dalam beberapa tape. Berlainan dengan natural merge, balanced merge pada awalnya ada keseimbangan antara input file dan output file, walaupun pada akhirnya tidak ada lagi keseimbangan antara input dan output file. Seperti halnya natural merge, balance merge juga ada beberapa cara yaitu 2 way balance merge, 3 way balance merge, dan M way balance merge. 2 way balance merge berarti merge dengan 2 input file sekaligus dan hasilnya 2 output file. M way balance merge berarti M input file dengan M output file
Tahap Pengurutan Internal 6000 record 6 pengurutan subfile @ 1000 record

2 way merge. Diasumsikan 2 input file dan 1 output file 1. Pengurutan terdistribusi terhadap 2 file (bisa diselesaikan dalam konjungsi dengan tahap pengurutan internal. 2. Tahap Penggabungan/Merge 1 1
Record 1-1000; Record 2001-3000; Record 4001-5000 Record 1001-2000; Record 3001-4000; Record 5001-6000 Tahap penggabungan 1

3 4

Record 1-2000

Record 2001-4000; Record 4001-6000

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 51

3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1 4. Tahap penggabungan kedua 3
Record 1-2000 Tahap penggabungan 2

Record 1-6000

Record 2001-4000; Record 4001-6000

C. POLYPHASE MERGE Kita telah lihat bahwa M way balance merge menggunakan 2 M file (M input file dan M output file). Karena yang digunakan setiap saat hanya M file sebagai input dan direkam ke sebuah file maka ada M-1 file yang nganggur (idle). Untuk itulah perbaikan dari kelemahan ini diambil oleh poplyphase merge. Pada M way polyphase merge digunakan 2M-1 input file dengan 1 output file sekaligus.

Tahap Pengurutan Internal 6000 record

1 2 3

Run 1; Run 6; Run 7; Run 10; Run 11; Run 12; Run 13

Run 2; Run 4; Run 14; Run 15; Run 16; Run 17

Run 3; Run 5; Run 8; Run 9

Penggabungan tahap 1:
7 Run

1 2 3
Penggabungan tahap 1

6 Run

4 Run

4 Run

Penggabungan tahap 2:
2 Run

2 1 4
Penggabungan tahap 2

3 Run

2 Run

4 Run

Penggabungan tahap 3:
1 Run

1 4 3 Sistem Berkas - 52
Penggabungan tahap 3

2 Run

1 Run

2 Run

Dinny Wahyu Widarti, S.Kom

Penggabungan tahap 4:
1 Run

2 3 4
Penggabungan tahap 4

1 Run

1 Run

1 Run

D. CASCADE MERGE Jenis lain dari unbalanced merge yang berusaha mengurangi penyalinan dan pembacaan record-record disebut cascade merge. Cascade merge dengan derajat M menggunakan input file 2M-1, kemudian 2M-2 dan 2M-3, , 2 input file selama tiap tahap merge. 3 way cascade menggunakan 3 dan 2 input file selama tiap tahap merge. Penggabungan tahap 1:
7 Run

1 2 3 1 2
Penggabungan tahap 1 proses 1

6 Run

4 Run

4 Run

3 Run

Penggabungan tahap 1 proses 2

2 Run

2 Run

Penggabungan tahap 2:
1 Run

1 3 4 3 4
Penggabungan tahap 2 proses 1

2 Run

1 Run

4 Run

1 Run

Penggabungan tahap 2 proses 2

1 Run

3 Run

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 53

Penggabungan tahap 3:
1 Run

2 1 4
Penggabungan tahap 3 proses 1

1 Run

1 Run

2 Run

Penggabungan tahap 4:
1 Run

4 3

Penggabungan tahap 4 proses 1

1 Run

1 Run

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 54

Sesi 14

Materi 12 PENGENALAN KONTROL INPUT/OUTPUT


Pengaksesan (membaca dan menulis) data pada alat penyimpanan sekunder memerlukan banyak aktifitas pada programmer aplikasi. Pemrograman bahasa komputer memungkinkan programmer untuk menjabarkan teknik organisasi berkas yang agak kompleks (missal pada organisasi berkas indeks-sequential) dengan pernyataan bahasa yang sangat sederhana. Dukungan sistem manajemen berkas mengubah pernyataan-pernyataan tersebut menjadi instruksi input/output tingkat bawah (low-level). Demikian pula sebuah permintaan sederhana dari programmer terhadap READ atau WRITE sebuah record pada berkas, secara khusus diperlukan suatu urutan yang komplek dari peralatan dukungan operasi manajemen. Bagian-bagian ini biasanya tidak dapat dilihat oleh programmer. Pekerjaan programmer akan menjadi lebih sukar jika pekerjaan itu menyangkut operasi control input/output yang lebih terinci. Sebuah sistem control I/O bertujuan untuk memberikan bantuan kepada user untuk memungkinkan mereka mengakses berkas, tanpa memperhatikan detail dari karakteristik dan waktu penyimpanan. Kontrol I/O menyangkut manajemen berkas dan peralatan manajemen yang merupakan bagian dari sistem operasi. Bagian lain dari sistem operasi mencakup sebuah pengaturan memori primer (main memory) dan sebuah pengatur proses dan penjadwalan. Kadang-kadang bagian dari sistem operasi yang melaksanakan control I/O ini disebut pengawas input/output (supervisor I/O). Akses berkas memerlukan dukungan manajemen berkas, yang memberikan teknik organisasi berkas dan dukungan alat manajemen, yang memberikan akses ke alat penyimpan fisik. Pada beberapa sistem operasi sebuah pengatur berkas (file manager) dan sebuah pengatur alat (device manager) berbeda satu sama lain, sedang pada sistem lain, mereka digabungkan untuk membentuk fungsi control I/O tunggal. Tugas dari sistem kontrol I/O sangat banyak dan beraneka ragam. Beberapa tugas yang dikerjakan oleh kontrol I/O adalah sbb: 1. Memelihara direktori dari berkas dan lokasi informasi. 2. Menentukan jalan (pathway) bagi aliran data antara memori primer (main memory) dan alat penyimpan sekunder. 3. Mengkoordinasi komunikasi antara CPU dan alat penyimpanan sekunder, dan sebaliknya, termasuk: a. Mengatur/menangani ketidakseimbangan kecepatan pengiriman data antara CPU dengan alat penyimpanan sedemikian rupa, sehingga CPU Dinny Wahyu Widarti, S.Kom Sistem Berkas - 55

tidak menunggu terlalu lama (membuang waktu) untuk menyelesaikan pekerjaan I/O. b. Mengatur data sedemikian rupa, sehingga data dapat disimpan, bila pengirim (CPU atau alat penyimpan sekunder) dan penerima (alat penyimpanan sekunder atau CPU) tidak siap pada waktu yang bersamaan. 4. Menyiapkan berkas penggunaan I/O. 5. Mengatur berkas, bila penggunaan input atau output telah selesai. A. DIREKTORI BERKAS DAN KONTROL INFORMASI Sebelum berkas dapat di akses oleh sebuah program, sistem operasi harus mengetahui pada alat penyimpanan sekunder yang mana berkas tersebut berada. Hampir semua sistem operasi menggunakan beberapa jenis struktur direktori yang digunakan untuk menyimpan trek dari berkas pada sistem manajemen berkas. Direktori yang diperlihatkan pada gambar dibwah ini adalah untuk satu unit dari penyimpanan sekunder. Labelnya berisi indentifikasi informasi, akses kontrol informasi, dan sebuah primer yang menunjuk ke isi tabel, yang berisi kontrol blok untuk setiap berkas pada unit tersebut. Sebuah kontrol blok berisi informasi tentang nama dari berkas, atributnya (seperti panjang record, ukuran blok, organisasi berkas), dan batasnya pada media penyimpanan. Sebuah kontrol blok menunjukkan awal dari berkas yang bersangkutan. Jadi bila sebuah berkas dicari, isi tabel dari unit yang dimaksud, diperiksa untuk menemukan berkas pada alat penyimpan. LABEL

TABLE OF CONTENTS HEADER FREE SPACE POINTERS FILE 1 CONTROL BLOCK FILE 2 CONTROL BLOCK .. FILE N CONTROL BLOCK FILE STORAGE AREA FILE 1 FILE 2 .. FILE - N

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 56

Sistem manajemen berkas yang berbeda, menggunakan struktur yang berbeda untuk blok kontrol berkasnya. Sebuah sistem representative/perwalian membentuk dua tabel untuk menjelaskan setiap berkas. Yang pertama, berisi informasi pada organisasi berkas dan pola pemrosesan, deskripsi ukuran dan jenis record, ukuran pemblokan, kesalahan hitung dan flag, informasi yang digunakan oleh rutin sistem kontrol I/O untuk menentukan status berkas dan posisinya, dan nama dari logika berkas (eksternal). Juga berisi sebuah pointer pada tabel deskriptif berkas kedua, yang dihubungkan dengan sebuah alat penyimpan tertentu dan berisi informasi tentang karakteristik fisik dan status alat yang sedang digunakan. Alat pengontrol rutin menggunakan tabel ini untuk menetapkan (meng-interface) permintaan terhadap berkas dan untuk memonitor status aktifitas input/output berkas. Kontrol informasi pada sistem ini terpecah antar tabel dengan tujuan untuk memisahkan pendeskripsian berkas dan alat. B. KONTROL PERALATAN Aktivitas input/output terutama mencakup perpindahan data antara memori utama (main memori) dengan alat penyimpanan skunder atau alat input/output seperti printer, terminal, dan card reader/punch. Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang berhubungan dengan I/O. Tetapi, tanggung jawab untuk kontrol peralatan diserahkan pada prosesor I/O, yang dikenal sebagai saluran I/O. Saluran I/O itu sendiri merupakan prosesor yang sudah diprogram. Program-program yang di execute ini disebut channel program. Channel program ini menentukan operasi yang diperlukan untuk akses peralatan dan mengontrol jalur data (data pathway). Sistem operasi memberikan rutin standard yang digunakan untuk menjalankan saluran I/O.
Aditional Channels Aditional Control Unit DEVICE

CPU Main Memori

CHANNEL

CONTROL UNIT

DEVICE DEVICE DEVICE

C. MANAJEMEN SALURAN Tujuan dari saluran I/O yang bertindak sebagai perantara antara CPU-memori utama dengan unit pengontrol penyimpan. CPU berkomunikasi dengan saluran melalui beberapa perintah yang sederhana. Beberapa saluran akan member perintah seperti: 1. Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan sedang sibuk. 2. Start I/O, pada peralatan tertentu. 3. Halt I/O, pada peralatan tertentu. Dinny Wahyu Widarti, S.Kom Sistem Berkas - 57

Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi akan terjadi jika keadaan error terdeteksi, misalnya interuksi CPU yang salah atau jika aktivitas I/O telah diakhiri. Jika interupsi terjadi, kontrol akan bercabang melalui rutin pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan penyebab dari intertupsi, melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil (caller). Jika sebuah program membutuhkan READ dari suatu berkas, maka serangkaian peristiwa pada gambar 3 ini akan terjadi. PROGRAM
BUFFER 1 8 7 6

ID CONTROLLER CHANNEL

CHANNEL
2 3 4

PROGRAM

CONTROL UNIT

PROGRAM

1. Program mengeluarkan sebuah READ, yang menginterupsi pengontrol I/O. 2. Pengontrol I/O membuat sebuah saluran program pada memori utama. 3. Saluran program dibaca dan dieksekusi oleh pemanggil saluran. 4. Sinyal yang tepat akan ditransmisikan ke pemanggil unit kontrol. 5. Sinyal ini diterjemahkan oleh unit kontrol dan digunakan untuk mengontrol peralatan operasi untuk membaca data yang diminta. 6. Data yang diminta akan mengalir dari peralatan sepanjang jalur (pathway) ke daerah penampung berkas (file buffer area) dalam ruang memori utama. 7. Interupsi yang dikeluarkan oleh saluran, digunakan untuk meneruskan sinyal pada waktu eksekusi program. 8. Kontrol kembali ke program. D. MANAJEMEN BUFFER 1. Single Buffering Gambar dibawah ini menunjukkan struktur data dari buffer dalam bentuk yang sederhana, yang terdiri dari satu record perblok dan satu buffer per berkas, dimana buffer ini berfungsi mengisikan permintaan dari sebuah program. Struktur buffer ini berisi sebuah pointer pada alamat awal dan channel program untuk berkas yang sedang dioperasikan.
BUFFER To start of channel program

BUFFER DATA AREA Dinny Wahyu Widarti, S.Kom Sistem Berkas - 58

Struktur dasar dari channel program untuk mengisi buffer adalah: Tunggu instruksi READ dari program Memberitahukan instruksi start I/O ke kontrol unit Tunggu hingga buffer dikosongkan Memberitahukan interupsi pada program sehingga dapat mulai membaca dari buffer. 2. Double Buffering Untuk mengurangi kemungkinan dari program menunggu, double buffering dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang ditetapkan untuk berkas. Ide dasar dari double buffering adalah jika consumer mengosongkan salah satu buffer, maka producer dapat mengisikan ke dalam buffer yang lain, pada saat buffer pertama sudah kosong, maka buffer yang kedua harus dalam keadaan penuh. Kemudian consumer dapat mengosongkan buffer kedua, pada saat producer mengisi buffer pertama, demikian seterusnya. Struktur buffer untuk double buffering terdiri dari sebuah pointer yang menunjuk ke buffer berikutnya. Pada gambar di bawah ini. Adanya printer ini memungkinkan rutin producer dan consumer menjadi hal yang sangat umum.
Buffer 1 Next Chp Full-flag Record-ctr Buffer Data area Buffer 2 Next Chp Full-flag Record-ctr Buffer Data area To start of channel program

Full-flag =

0 jika buffer kosong atau sedang diisi 1 jika buffer penuh atau sedang dikosongkan;

Record-ctr = 1, , N

Dinny Wahyu Widarti, S.Kom

Sistem Berkas - 59