Anda di halaman 1dari 10

MAKALAH ORGANISASI BERKAS SQUENTIAL

“PRIME DAN OVERFLOW DATA AREA”

Pengertian Organisasi berkas sequential

Organisasi berkas sekuensial merupakan salah satu metode penyimpanan data yang umum
digunakan dalam sistem komputer. Dalam organisasi berkas sekuensial, data disimpan secara
berurutan dalam suatu berkas, dan akses dilakukan secara sekuensial dari awal hingga akhir. Metode
ini memiliki karakteristik tertentu yang mempengaruhi efisiensi akses dan manipulasi data. Makalah
ini akan membahas konsep, kelebihan, kelemahan, dan penerapan organisasi berkas sekuensial.

Konsep Organisasi Berkas Sekuensial

Organisasi berkas sekuensial mengacu pada penyimpanan data secara berurutan. Data disusun
dalam urutan logis atau fisik tertentu, dan operasi membaca atau menulis dilakukan dari awal hingga
akhir. Setiap catatan atau rekaman diakses sesuai dengan urutan posisinya dalam berkas. Posisi data
sebelumnya harus dilewati untuk mencapai data yang diinginkan.

Penerapan Organisasi Berkas Sekuensial

Organisasi berkas sekuensial sering digunakan dalam aplikasi di mana data diakses atau dimanipulasi
secara berurutan. Contohnya termasuk pemrosesan file teks, pengolahan file log, atau pengolahan
data yang dihasilkan secara sekuensial oleh suatu proses. Namun, dalam kasus di mana akses acak
atau manipulasi data kompleks diperlukan, metode penyimpanan data lain seperti organisasi berkas
indeks mungkin lebih sesuai.
I. Prime dan Overflow Data Area (Statik)

Pendekatan lain untuk mengimplementasikan berkas indeks sequential adalah berdasarkan struktur
indeks dimana struktur indeks ini lebih ditekankan pada karakteristik hardware (fisik) dari
penyimpanan, dibandingkan dengan distribusi secara logik dari nilai key.

Jadi, yang bertingkat-tingkat adalah cylender-nya dan blok datanya ditulis secara consecutive di
setiap track (misalkan 1 cylinder berisi 4 track, nomor 0 sampai 3). Index (pencarian data) tertinggi
disebut dengan master index, dari master index berturut-turut menuju ke blok-blok index tingkat
berikutnya hingga meraih record data yang berada di track-nya.

Bila dilakukan penyisipan data dan track tertentu (tempat data baru itu) sudah penuh (tidak ada
tempat kosong/ padding lagi), maka akan dilakukan reorganisasi track dengan membentuk track
baru.Tentu, track baru itu di luar prime data file-nya, yaitu di overflow data area-nya.

Data yang dimasukkan ke dalam file yang diorganisasi secara sequential akan dimasukkan secara
serial (urut dari record pertama, kedua, dan seterusnya), baik data tersebut dimasukkan secara urut
abjad dari salah satu fieldnya, maupun tidak.

"The records in a Sequential file are organized serially, one after another, but the records in the file
may be ordered or unordered. The serial organization of the file and whether the file is ordered or
unordered has a significant baring on how we process the records in the file and what kind of
processing we can do.
"

Misalkan, data pertama yang dimasukkan adalah "Budi," kedua "Ani," dan ketiga "Aan," maka urutan
berdasarkan nomor recordnya adalah :

1. Budi

2. Ani

3. Aan

Indeksnya ada beberapa tingkat, misalnya tingkat cylinder index dan

tingkat track index. Berkas datanya secara umum diimplementasikan sebagai 2 berkas, yaitu prime
area dan overflow area.

Contohnya:

Setiap cylinder dari alat penyimpanan mempunyai 4 track. Pada berkas binatang ada 6 cylinder yang
dialokasikan pada prime data area. Track pertama (nomor 0) dari setiap cylinder berisi sebuah indeks
pada record key dalam cylinder tersebut.

Dalam sebuah track data, tracknya disimpan secara urut berdasarkan nilai key. Tingkat pertama dari
indeks dalam berkas indeks dinamakan master indeks. Tingkat kedua dari indeks dinamakan cylinder
indeks.

Entry pada master indeks: nilai key tertinggi, pointer. Entry pada cylinder

indeks: nilai key tertinggi, nomor cylinder.

Contoh Pengaksesan:

Misal: mengakses dengan nilai key BAT


 Pertama: Cari pada master indeks,

 Kedua: Karena BAT ada di depan LYNX, maka pointer dari

LYNX akan menunjuk ke cylinder index,

· Ketiga: Karena BAT ada di depan ELEPHANT, maka pointer dari ELEPHANT akan menunjuk ke track 0
dari cylinder 1,

 Keempat: Karena BAT ada di belakang BABOON dan di depan

COW, maka pointer dari BABOON akan menunjuk ke track 2,

 Kelima: Cari secara sequential sampai BAT ditemukan.

Hal ini bisa disimpulkan: Permintaan untuk mengakses data secara sequential akan dilakukan dengan
mengakses cylinder dan track dari berkas data prime secara urut.

Permintaan untuk mengakses data secara sequential akan dilayani dengan mengakses cylinder dan
track dari berkas data prime secara urut.

Misal setiap track dari berkas prime data mempunyai ruang yang cukup untuk menampung 5 record
(jika penyisipan dan penghapusan terhadap berkas dilakukan, maka akan dibentuk padding).

Permintaan :

INSERT APE

INSERT AIREDALE

Akan mudah dilayani. Hanya track data 1 dari cylinder 1 yang akan digunakan

dan hasilnya ditunjukkan pada gambar di bawah ini:

Agak sulit ditangani. Pencarian struktur indeks menyatakan bahwa ARMADILLO seharusnya
menempati track 1 dari cylinder 1, tetapi track tersebut sudah penuh.

Untuk mengatasi keadaan tersebut diperlukan overflow data area. Overflow data area ini merupakan
berkas yang terpisah dari prime data area, tetapi

overflow area ini ditunjukkan oleh entry prime data area.

Hasilnya ditunjukkan pada gambar di bawah ini :


Karena ARMADILLO seharusnya berada setelah kelima entry pada track

1 dari cylinder 1, tetapi karena track ini sudah penuh, maka ARMADILLO dipindahkan ke overflow
data area. Indeks track dari cylinder 1 harus dimodifikasi untuk memperlihatkan bahwa ada sebuah
record pada overflow area yang secara logik seharusnya menempati pada akhir dari track 1, sehingga
penambahan dari entry itu adalah :

<ARMADILLO,ovfl-ptr>

Dengan ovfl-ptr adalah :

Permintaan:

<cylinder, track, record>

INSERT CAT

INSERT BEAR

INSERT BOBCAT

Akan mengisi track 2 dari cylinder 1 pada prime data area, tetapi pengisian tersebut mengakibatkan
penggunaan overflow area. Perhatikan CAT dipindahkan ke overflow area, karena entry pada prime
track tidak hanya harus dalam urutan, tetapi juga entry tersebut harus mendahului suatu entry
overflow dari track tersebut.

Hasilnya ditunjukkan pada gambar di bawah ini :


INSERT ANT
Sequential File adalah organisasi file yang di gunakan pada bahasa pemrograman COBOL, adalah file
dengan organisasi urut. Data yang disimpan di-urut berdasarkan urutan pemasukan data (urut
berdasarkan nomor record).

Penerapan nya dalam Bahasa pemrograman :

Penerapan Prime dan Overflow Data Area pada organisasi berkas sekuensial dalam bahasa C++ dapat
dilakukan dengan memanfaatkan struktur data dan kontrol alur program. Dalam contoh ini, saya
akan memberikan implementasi sederhana menggunakan struktur data untuk merepresentasikan
catatan atau rekaman dalam berkas sekuensial.

Contoh Penerapan Prime dan Overflow Data Area dalam Organisasi Berkas Sekuensial (C++)

#include <iostream>

#include <fstream>

using namespace std;

// Struktur data untuk merepresentasikan catatan dalam berkas

struct Record {

int id;

string name;
// Tambahkan data lain yang dibutuhkan sesuai kebutuhan

};

// Fungsi untuk mengecek apakah suatu bilangan adalah bilangan prima

bool isPrime(int num) {

if (num < 2) {

return false;

for (int i = 2; i <= num / 2; ++i) {

if (num % i == 0) {

return false;

return true;

// Fungsi untuk menulis catatan ke dalam berkas sekuensial

void writeRecord(ofstream& file, const Record& record) {

file << record.id << " " << record.name << endl;

// Fungsi untuk membaca catatan dari berkas sekuensial

void readRecord(ifstream& file, Record& record) {

file >> record.id >> record.name;

int main() {

// Membuka berkas untuk menulis

ofstream outFile("sequential_file.txt");

if (!outFile) {
cerr << "Gagal membuka berkas untuk penulisan." << endl;

return 1;

// Menulis catatan ke dalam berkas

Record record1 = {1, "John"};

Record record2 = {2, "Jane"};

writeRecord(outFile, record1);

writeRecord(outFile, record2);

// Menutup berkas

outFile.close();

// Membuka berkas untuk membaca

ifstream inFile("sequential_file.txt");

if (!inFile) {

cerr << "Gagal membuka berkas untuk pembacaan." << endl;

return 1;

// Membaca catatan dari berkas

Record readRecord1, readRecord2;

readRecord(inFile, readRecord1);

readRecord(inFile, readRecord2);

// Menampilkan catatan yang dibaca

cout << "Record 1: " << readRecord1.id << " " << readRecord1.name << endl;

cout << "Record 2: " << readRecord2.id << " " << readRecord2.name << endl;
// Menutup berkas

inFile.close();

return 0;

Dalam contoh di atas, Record adalah struktur data yang merepresentasikan catatan atau rekaman
dalam berkas. Fungsi writeRecord digunakan untuk menulis catatan ke dalam berkas, sementara
readRecord digunakan untuk membaca catatan dari berkas.

Implementasi ini sederhana dan bisa diperluas sesuai kebutuhan dan kompleksitas aplikasi yang kita
buat.

Anda mungkin juga menyukai