• Tidak ada hasil yang ditemukan

INDEXED SEQUENTIAL ORGANIZATION FILE

N/A
N/A
Protected

Academic year: 2018

Membagikan "INDEXED SEQUENTIAL ORGANIZATION FILE"

Copied!
12
0
0

Teks penuh

(1)

Ringkasan Catatan Kuliah : Berkas dan Akses Dosen : Bambang Wahyudi, Skom., MMSI. PENDAHULUAN

Mata kuliah ini membahas pembentukan (pengorganisasian) suatu berkas (file), dan pemrosesannya (akses). Untuk mempelajari mata kuliah ini, prasyarat yang harus dimiliki mahasiswa adalah, mereka (mahasiswa) telah sering (sedapatnya mahir) membuat program untuk memasukkan data secara permanen di eksternal memori komputer, dan mengolah data tersebut.

Disarankan bahasa pemrograman yang digunakan adalah bahasa pemrograman yang bersifat generik (seperti BASIC, PASCAL, COBOL, dan sejenisnya), karena bahasa pemrograman semacam ini mengharuskan si pembuat programnya untuk selalu membuat program setiap kali melakukan proses terhadap datanya. Tidak ada fasilitas (perintah) untuk menghapus record, mensortir data, dan sebagainya, melainkan ia harus membuat programnya sendiri.

Mata kuliah ini menggambarkan betapa sulitnya si pembuat bahasa pemrograman untuk membuat algoritma bagaimana data itu disimpan, dan bagaimana data yang disimpan itu dapat ditemukan kembali.

Catatan ini hanya berupa catatan ringkas/ tambahan dari buku paket yang ada, karenanya, pelajari pula buku paket itu.

BERKAS

Berkas atau file ada berbagai jenis, hal itu dapat dilihat dari nama ekstensi filenya. Misalkan untuk nama fle dengan ekstensi BAS adalah file iprogram yang ditulis dengan bahasa pemrograman BASIC, DBF adalah file data yang dibuat dengan bahasa pemrograman dBase, NTX adalah file indeks yang dibuat dengan bahasa pemrograman Clipper, dan lain sebagainya.

Dari berbagai jenis file, mata kuliah ini hanya akan membahas file data.

File idata tediri atas 2 jenis, yaitu (1) master ifile, dan (2) transaction file. Sementara itu, master ifile terdiri atas (1) reference imaster ifile, dan (2) dynamic imaster ifile.

(2)

Master ifile (berkas induk) adalah fle yang berisi objek-objek yang harus ada di sebuah unit kerja (enterprise). Misalkan, di sebuah perguruan tinggi, objek-objek yang harus ada seperti (1) mahasiswa, (2) dosen, (3) mata kuliah, (4) biaya kuliah, (5) ruang kelas, dan sebagainya. Objek-objek tersebut harus disimpan datanya di dalam file komputer, dan akan masuk ke dalam katagori master ifile.

Dynamic imaster ifile adalah master ifile yang salah satu atau lebih atributnya (field) akan berubah nilai datanya bila terjadi suatu transaksi. Sebaliknya, reference i master i file adalah master i file yang seluruh atributnya tidak mengalami perubahan jika terjadi suatu transaksi (hanya digunakan sebagai referensi saja).

TRANSACTION iFILE

Transaction i file adalah berkas transaksi yang harus disimpan di dalam media penyimpanan eksternal komputer. Transaction ifile terjadi akibat adanya hubungan (relasi) antarmaster i file. Misalkan, di perpustakaan ada master ifile PEMINJAM, dan BUKU. Ketika PEMINJAM melakukan peminjaman BUKU, maka terjadilah transaksi, dan transaksi tersebut harus dicatat, misalkan di file itransaksi dengan nama PINJAM.

Mengacu pada prinsip basis data, tidak boleh ada atribut yang ganda (berisi sama) di semua file data yang ada kecuali untuk atribut kuncinya (key field), maka pada file data PINJAM, tidak boleh ada atribut nama peminjam dan buku yang dipinjam (lihat gambar 1).

Ketika transaksi PINJAM terjadi, tidak satupun atribut PEMINJAM mengalami perubahan, maka file iPEMINJAM adalah file berjenis reference i master i file. Sedangkan pada file BUKU, ada atribut yang berubah nilai datanya, yaitu atribut jumlah buku. Ketika transaksi PINJAM terjadi, jumlah buku yang ada akan berkurang karenanya. Dengan demikian, file BUKU termasuk fle berjenis dynamic imaster ifile.

PEMINJAM M PINJAM N BUKU

*NO_ANG NAMA

ALAMAT

**NO_ANG

**KD_BUKU TGL_PINJ TGL_KEM

DENDA

*KD_PINJ

*KD_BUKU

JUDUL

JUMLAH

PENGARANG

TH_TERBIT

(3)

PENGORGANISASIAN BERKAS

Data yang disimpan ke media penyimpanan eksternal di komputer harus diorganisasikan agar data tersebut dapat diambil kembali (retrieve) untuk selanjutnya dilakukan pengolahan.

Ada 4 macam pengorganisasian fle, yaitu (1) sequential, (2) relative, (3) index isequential, dan (4) multi ikey. Yang mana yang akan dipilih, tentunya dengan mempertimbangkan bagaimana data tersebut kelak akan diproses.

SEQUENTIAL iORGANIZATION iFILE

Sequential (=berurutan), record ipertama yang dmasukkan akan menempati posisi pertama di media penyimpanannya, dan seterusnya. Jika akan dilakukan pemanggilan record iyang telah disimpan (retrieval), maka komputer akan selalu membaca dari record pertama hingga ditemukanya record yang dicarinya.

Keefsienan pembuatan organisasi seperti ini adalah jika semakin besar nilai dari jumah record yang akan diolah dibagi dengan jumlah record ikeseluruhannya (diistlahkan dengan perhitungan hit iratio) maka akan semakin efsien. Sebagai gambaran, jika semakin banyak lagu yang akan kita dengar dari sebuah kaset, maka akan semakin menguntungkan menggunakan kaset itu dibanding jika kita hanya ingin mendengar satu lagu (apalagi letaknya di paling akhir) dari kaset itu.

RELATIVE iORGANIZATION iFILE

Jika pada organisasi file i sequential idigambarkan sebagai sebuah kaset, maka organisasi file relatif digambarkan sebagai sebuah compac disk (CD). Kita bisa langsung memilih lagu mana yang akan kita dengarkan tanpa harus didahului (mendengarkan) lagu sebelumnya. Relatif dapat diartikan langsung.

Pengorganisasian relatif memungkinkan kita memproses record yang mana saja secara langsung tanpa harus melalui (membaca) record-record iyang lainnya.

INDEXED iSEQUENTIAL iORGANIZATION iFILE

(4)

MULTI iKEY iORGANIZATION iFILE

Organisasi file jenis ini memungkinkan kita mengakses data dengan menggunakan banyak atribut kunci (key i field). Pengorganisasian ini hampir sama dengan organisasi file relatif, bedanya, pengorganisasian relatif hanya memiliki sebuah key ifield, sedang organisasi ini memiliki lebih dari satu key ifield.

Hal ini dilakukan karena banyak pengguna data yang akan mengakses data yang sama tetapi sesuai dengan keinginannya masing-masing. Misalkan, terhadap data tabungan di bank, nasabah menggunakan nomor PIN untuk melakukan transaksi atas data tersebut, sedangkan pegawai bank ada yang menggunakan nomor rekening, ada yang menggunakan jumlah tabungan dan sebagainya, sesuai dengan tujuannya masing-masing.

PENGAKSESAN DATA

Data yang sudah disimpan dapat diakses melalui teknik pengaksesan secara sequential imaupun direct. Semua bentuk organisasi file dapat diakses secara sequential, tapi organisasi file sequential itidak dapat diakses secara direct. Akses secara direct memerlukan key ifield untuk mendapatkan sebuah record yang dicari, sedangkan organisasi file sequential itidak memiliki (tidak memerlukan) key ifield.

Pengaksesan data dapat dilakukan secara batch, maupun secara iterative. Proses pemberian nilai untuk data Daftar Nilai Semester (DNS) dilakukan secara batch, yaitu, semua nilai dari dosen dan dari proses scanning (jawaban di kertas OMR) dikumpulkan terlebih dulu. Setelah semua terkumpul, barulah diproses nilainya dan dicetak DNS seluruhnya untuk dibagi kepada mahasiswa.

Sedangkan proses pencetakan Kartu rencana Studi (KRS) dilakukan secara iterative (dikenal dengan istilah on-line). Setiap mahasiswa yang telah selesai mengisi KRS akan mendapatkan cetakan KRS secara langsung tanpa harus menunggu semua mahasiswa melakukan pengisian KRSnya.

TEKNIK PENGALAMATAN ( ADDRESSING )

(5)

Gambar 2 di bawah ini menggambarkan berbagai teknik pengalamatan data :

R(Nilai_Key) Alamat

Pemetaan Langsung (Direct Mapping)

Pemetaan Tabel (Directory Look-up)

Kalkulasi (Calculating)

Pengalamatan Mutlak Pengalamatan Relatif

Gambar 2. Berbagai Teknik Pengalamatan Data

Pemetaan di memori dilambangkan dengan : R(nilai_key) → Alamat. Alamat ditentukan oleh nilai sebuah key fieldnya. Organisasi file secara sequential iyang tidak membutuhkan key i field tidak menggunakan teknik pengalamatan yang akan dibahas ini.

PENGALAMATAN MUTLAK

Pengalamatan mutlak adalah teknik pengalamatan yang keseluruhannya diberi wewenang kepada programmernya. Programmer ibebas menentukan di alamat mana suatu record akan disimpan.

Sangat mudah, tapi bila data yang disimpan relatif banyak, apakah si programmer ‘masih hafal’ di mana alamat suatu record iyang akan diaksesnya ?.

PENGALAMATAN RELATIF

Pengalamatan relatif adalah penunjukan alamat memori sesuai dengan nilai yang ada di key fieldnya. Karena key ifield biasanya berisi kode, misalkan NPM, maka akan terjadi pemborosan penggunaan alamat.

Misalkan, NPM = 30199899, maka record mahasiswa tersebut akan disimpan di alamat 30199899, padahal, mungkin jumlah keseluruhan mahasiswa hanya berkisar 30000 orang saja, tidak sampai 30 jutaan seperti yang ditunjukkan NPM.

(6)

PEMETAAN TABEL

Untuk mengatasi pemborosan yang terjadi di pengalamatan relatif, maka cara pemetaan tabel (directory i look i up) ini bisa digunakan sebagai solusinya.

Teknik ini memisahkan record idata lainnya dengan key fieldnya. Semua key ifield disatukan dalam sebuah tabel yang di dalam tabel tersebut dipetakan alamat record datanya, semacam mencari katalog di perpustakaan yang jika katalog itu ditemukan maka buku yang akan dipinjam diketahui lokasi tempat penyimpanannya.

Masalahnya, jika mencari katalognya secara berurut (sequential), maka akan memakan waktu yang relatif lama, karenanya ada yang mencarinya dengan cara binary isearch itree, misalkan ia mencari dari tengah tumpukan katalog, bila kurang, ia cari tengahnya lagi dengan kartu katalog yang paling belakang, tetapi bila lebih ia akan mencari tengahnya lagi dari kartu katalog terdepan, dan seterusnya.

KALKULASI

Jika pemetaan tabel diharuskan membuat tabel (file) baru yang berisi seluruh key i field dan alamat recordnya, maka pada teknik kalkulasi ini dicoba untuk tidak perlu membuatnya. Akan dihitung sedemikian rupa dari key i fieldnya untuk mendapatkan alamat yang akan ditempati record (data)nya.

Teknik kalkulasi yang dibahas adalah teknik hashing yang umumnya terdiri atas (1) division iremainder, (2) mid isquare, dan (3) folding.

DIVISION iREMAINDER

i i (SISA PEMBAGIAN) i i

Alamat diperoleh dengan menentukan sisa hasil pembagian atas key feldnya. Faktor pembaginya bisa berbagai macam, ada yang membagi dengan bilangan prima, dan bisa juga sembarang bilangan.

Contoh sisa pembagian : 100/3 sisa pembagiannya = 1. Cara seperti ini bisa mengakibatkan adanya hasil perhitungan yang sama, akibatnya, akan terjadi beturan (pemakaian alamat yang sama untuk lebih dari record yang berbeda). Benturan diistilahkan dengan collision. Tentunya, salah satunya harus ditempatkan di alamat yang berbeda.

(7)

Penghitungan alamat dengan cara mid i square i hashing adalah dengan cara mengkuadratkan nilai key i fieldnya (square), kemudian diambil sejumlah digit i(sepanjang digit ikey fieldnya) di tengah-tengah dari nilai kuadrat itu.

HASHING iBY iFOLDING

Penghitungan dengan cara ini adalah dengan mempartisi nilai key ke dalam beberapa partisi (sesuai dengan banyak digit alamat yang kita butuhkan) dari kanan.

Bagian-bagian itu kita susun ke bawah dan dijumlahkan, hasilnya, kita ambil sebanyak digit yang kita inginkan untuk alamat di memori yang dimulai dari kanan. Folding i= lipatan.

Cara ini tetap memiliki risiko adanya collision.

PENANGANAN COLLISION

Satu lokasi memori hanya dapat digunakan untuk menyimpan satu satuan data saja. Bila hasil perhitungan atas key i field untuk menentukan alamat memori antara satu key i field dengan key i field lainnya sama, maka hanya satu yang akan ditempatkan di alamat hasil perhitungan itu, yang lainnya harus dicarikan alamat lainnya.

Empat pendekatan untuk mencarikan alamat lainnya itu, yaitu (1) open i addressing, (2) addressing i overfoow i separate i overfoow i(3) synonim i chainingw i dan i (4) i bucket i addressing. iAdapun teknik yang digunakan adalah (1) linear i probing, dan (2) addressing i overfoow separate ioverfoo.

LINEAR iPROBING

Jika suatu record tidak bisa menempati lokasi di memori sesuai dengan hasil perhitungannya (home iaddress) karena sudah ditempati oleh record ilainnya, maka ia harus dicarikan lokasi lainnya.

Pencarian dilakukan dengan menambahkan hasil perhitungan itu dengan 1 hingga ke alamat yang masih kosong, dan bila hingga ke batas akhir alamatnya tidak ditemukan, maka lakukan dari 1 lagi.

ADDRESSING iOVERFLOWw iSEPARATE iOVERFLOW

(8)

menempati alamat sebenarnya dari record lain, maka bila itu terjadi, pada teknik addressing overfoo ini, selain disediakan di primary iarea, disediakan pula tempat lain di luar primary iarea i(batasan alamat yang seharusnya), yaitu di overfoo iarea.

Di overfoo i area pun perlu dicek, apakah sudah ada record ilain yang telah menempatinya, hal ini menjadikan kita perlu melakukan hashing ikembali (double ihashing).

SYNONIM iCHAINING

Synomim ichaining memberi tahu rangkaian alamat berikutnya dari record yang terjadi collision. Jadi, ada next ipointer untuk menunjuk ke alamat lainnya yang pada perhitungan sebelumnya terjadi nilai yang sama. Dalam materi struktur data, hal ini dikenal dengan istllah linked list.

Jadi, komputer tidak perlu mencari alamat record yang terjadi collision karena sudah ada di penunjuknya (pointer).

BUCKET iADDRESSING

Data iyang iterjadi icollision idiletakkan idalam isatu iblok i(bucket)w ibaik di i primary i area i maupun i di i overfoo i areanya. i Bila i satu i blok i sudah penuhw i maka i akan i ada i penunjuk i (pointer) i untuk i menunjuk i blok berikutnya.

Penempatan data di blok bisa diurut sesuai key ifieldnya atau sesuai urutan datangnya data.

MEDIA PENYIMPANAN DATA

(9)

Gambar 1. Moving ihead idisk imechanism

Sumber : Operating iSystem iConcept, James L. Peterson, and Abraham Silberschatz. Hal 244.

Penyimpanan data dilakukan secara magnetis di permukaan disk (ada dua permukaan setiap disk) oleh readw iorite ihead. Setiap permukaan disk secara logically idibagi atas ratusan track dalam silinder.

Penyimpanan data di dalam media penyimpanan menggunakan teknik pengalamatan (addressing). Di hard disk ada 2 teknik pengalamatan, yaitu (1) Cylinder iMethodw iCM, dan (2) Sector iMethodw iSM.

Pada teknik CM, pengalamatan dilakukan berdasarkan nomor silinder, nomor permukaan, dan nomor record. Untuk teknik SM, pengalamatan dilakukan berdasarkan nomor sektor, nomor track, dan nomor permukaan. Waktu akses pada hard idisk dihitung berdasarkan :

a. Seek i time (waktu cari) : Waktu yang digunakan tangkai arm (yang menggerakkan read-orite i head) ke posisi silinder yang tepat.

b. Head i soitching (penempatan posisi head) ke track dan permukaan disk iyang tepat.

(10)

d. Data itransfer, waktu yang dibutuhkan untuk mentransfer data dari disk ke memori utama dan sebaliknya melalu read-orite head.

Salah Satu Bentuk Format Media Penyimpanan SASD ( Tape / kaset) Dulu, orang menggunakan kaset biasanya digunakan untuk menyimpan data cadangan (back i up), karena harganya relatif lebih murah dan memuat lebih banyak data yang dapat disimpan dari pada DASD, tapi kini sudah amat jarang orang yang menggunakan media ini.

Ada kaset yang terdiri atas 7 track, dan ada pula yang 9 itrack, dsb., Dalam setiap block ada 2 buah celah pemisah (gap), yaitu : (1) inter record igap (IRG), dan (2) inter iblock igap (IBG). Sewaktu menlis data, di akhir block iselalu diberi gap iyang panjangnya sekitar 0,6 inch, dan sewaktu membaca selalu dimulai dari karakter petama setelah gap sampai ditemukan igap iberikutnya. Lamanya waktu head melewati gap tersebut disebut dengan speed-up itime.

Jadi, antara 1 record idengan record lainnya ada batas, antara 1 block dengan block lain, ada batas, dan di akhir file iada batas lagi yang disebut dengan tape imark. Jika satu block iterdiri dari 4 record, maka disebut blocking factor = 4.

RECORD FORMAT

Ada berbagai macam record iformat, yaitu : . iFixed iunblocked

. iFixed iblocked . iVariable iunblocked . iVariable iblocked . iUndefined

. iSpanned

Syarat fixed iunblocked

1. Semua record i(logical-record) sama panjang, misal 160 karakter 2. Tiap data iarea (block-physical irecord) berisi satu logical irecord

(11)

IRG IRG IRG IRG RECORD RECORD RECORD

Syarat fixed iblock

1. Semua logical irecord sama panjang, misal 160 karakter

2. Tiap data i area (block-physical i record) berisi lebih dari satu logical irecord i

3. Semua block (physical i record) sama panjang, kecuali block terakhir

4. Blocking ifactor harus selalu sama

IBG IBG IBG IBG

RECORD RECORD RECORD RECORD RECORD RECORD

IRG IRG IRG

Syarat variable iunblock

1. Panjang tiap logical irecord tidak sama …. (variabel) 2. Panjang setiap physical irecord juga tidak selalu sama

3. Tiap block i(data area) berisi satu logical irecord dan field khusus BL (block length) dan RL (record ilength)

BL RL RECORD BL RL RECORD BL RL RECORD

IRG IRG

Syarat Variabel Block

. Panjang tiap logical irecord tidak sama …. (variabel)

. Panjang tiap block juga tidak sama. Jumlah logical irecord dalam block i

juga bervariasi (tidak ada blocking ifactor)

BL RL RECORD RL RECORD RL RECORD

IRG IRG

(12)

. Tiap logical irecord tidak sama panjang

. Tiap iblock isatu logical irecord (tidak ada block) . BL dan RL tidak ada

RECORD RECORD RECORD

IRG IRG

RECORD

IRG IRG

RECORD

IRG IRG

Syarat Spanned

. Panjang tiap physical irecord (block) adalah sama . Panjang tiap global irecord tidak sama

. Satu logical i record mungkin berada di dalam lebih dari satu physical irecord

IBG IBG IBG IBG IBG

RECORD RECORD RE CORD REC ORD RECOR D

Untuk melakukan cek kebenaran penulisan data, kaset menyediakan satu buah tracknya untuk diisi bit ‘1’. Ada 2 jenis pengecekan, yakni (1) odd iparity icheck atau koreksi paritas ganjil, dan (2) even iparity check atau koreksi paritas genap.

Misal, track : 1 berisi data : 1 1 1 2 berisi data : 0 0 1

3 berisi data : 1 0 1 4 berisi data : 1 1 0

maka dengan odd iparity icheck, track ke 5 dan karakter ke 4 (untuk koreksinya) akan berisi: [bila dijumlahkan ke kanan maupun ke bawah harus menjadi ganjil]

1 berisi data : 1 1 1 0 2 berisi data : 0 0 1 0

3 berisi data : 1 0 1 1

4 berisi data : 1 1 0 1

Gambar

Gambar 1. Relasi antarmaster file yang membentuk transaction ifile
Gambar  2  di  bawah  ini  menggambarkan  berbagai  teknikpengalamatan data :
Gambar 1. Moving ihead idisk imechanism

Referensi

Dokumen terkait

0,430. Dengan demikian, pengaruh positif kompensasi terhadap kepuasan.. kerja karyawan berarti semakin tinggi kompensasi yang diberikan maka. semakin tinggi pula

Ketidakacuhannya yang aneh, seperti yang ditunjukkannya dengan ucapannya sendiri, sewaktu di dalam penjara (merasa gembira karena upacara pemakaman orang tuanya dihadiri

Penelitian ini bertujuan untuk : 1) mengetahui sistem pengelolaan sumber daya manusia, 2) menganalisis pengaruh upah, lingkungan kerja dan motivasi kerja terhadap

Penelitian yang telah dilakukan memiliki keterbatasan objek penelitian yaitu penelitian ini hanya terbatas pada aktivitas antioksidan pada ekstrak kasar daun jambu

Penelitian ini bertujuan untuk menemukan apakah penguasaan kata kerja tidak beraturan berkorelasi secara signifikan dengan kemempuan dari menulis teks recount

SEKOLAH TINGGI PARIWISATA BALI INTERNASIONAL International Bali Institute of Tourism. JADWAL UJIAN AKHIR SEMESTER GENAP TAHUN

No Prodi NRP Nama Tanggungan Akademik Kelas Nama Dosen Hadir ALGORITMA DAN STRUKTUR DATA II A Sugeng Widodo, M.Kom 5 PEMROGRAMAN DASAR I A Chaulina Alfianti Oktavia, S.Kom 5

Karena dilihat dari tujuannya, pajak itu berfungsi untuk pembangunan infrastruktur suatu negara, pengadaan fasilitas-fasilitas umum yang memang sudah menjadi