Organisasi FILE
Organisasi FILE
File adalah kumpulan semua catatan data atau data record yang
berhubungan dengan suatu subyek tertentu
Contoh : File data mahasiswa menjelaskan data-data mahasiswa per fakultas
atau jurusan
Penyisipan Record
File merupakan berkas yang berisi data. Dimana didalamnya terdapat
record yang memuat informasi. Di bawah ini terlampir data yang akan
disimpan ke dalam file
Data diatas terdiri atas tiga item yaitu nama, umur dan alamat. Untuk proses
penyimpanan ke file maka perlu disiapkan variable yang dipakai sebagai
variable input dan output. Proses ini digambarkan melalui flowchart berikut :
Gambar 7.1: Flowchart penyimpanan data ke file
Start
Input
NM, UM, ALM
NM = ‘ ‘ End
NMO = NM
UMO = UM
ALMO = ALM
Write
NMO, UMO, ALMO
/* Record Akhir
Tanda /* biasanya digunakan sebagai tanda dari record sebagai tanda dari
record yang terakhir. Selain tanda /* juga sering dipakai sebagai akhir file
adalah EOF (end of file).
Misalnya, untuk penambahan record ke dalam suatu file, maka posisi record
terakhir harus diketahui. Karena record baru diletakkan pada posisi setelah
record terakhir. Berikut ini terlampir flowchart yang memperlihatkan proses
penambahan record baru (gambar 7.2).
Gambar 7.2: Flowchart penambahan record
Start
Read Data
NM, UM, ALM
T /*
Y
Input
NM1, UM1, ALM1
NMO = NM1
UMO = UM1
ALMO = ALM1
Write
NMO, UMO, ALMO
End
Bagaimana halnya jika record baru disisipkan di antara dua record yang ada
didalam file? Misalnya record baru dengan data sebagai berikut :
Nama = Faisal
Umur = 25 tahun
Alamat = Rawamangun, Jakarta
Akan disisipkan pada posisi record seperti yang terlihat pada gambar
dibawah ini :
/* Record Akhir
Untuk penyisipan record, posisi yang akan ditempati oleh record baru harus
diketahui dengan jelas. Posisi ini dapat diketahui dengan cara memeriksa
salah satu isi field dari suatu record.
Dari ilustrasi gambar di atas terlihat bahwa data yang akan disisipkan
diletakkan pada posisi setelah record dengan file NAMA yang berisi IKRAM.
Proses penyisipan record juga memerlukan satu file baru untuk menampung
hasil akhir dari penyisipan.
Dibawah ini terlampir system flowchart yang memperlihatkan proses tersebut.
FILE
02
FILE
01
File yang akan disisipkan data tersebut diambil dari FILE01, sedangkan file
baru hasil penyisipan adalah FILE02.
Berikut ini terlampir flowchart yang memperlihatkan proses penyisipan record
secara rinci.
Start
Input
NMS, UMS, ALMS
Read FILE01
NM, UM, ALM
/* End
NMO = NM y
UMO = UM
ALMO = ALM
Write FILE02
NMO, UMO, ALMO
t
NMO = NM
NM=
UMO = UM
’IKRAM’
ALMO = ALM
Write FILE02
NMO, UMO, ALMO
Dari flowchart di atas, proses penyisipan dapat diurutkan sebagai berikut :
1. Proses pertama adalah menunggu input data dari keyboard. Input ini
berupa data yang akan disisipkan ke dalam file. Variabel yang dipakai
sebagai input adalah :
NMS : Variabel Nama
UMS : Variabel Umur
ALMS : Variabel Alamat
3. Periksa isi record, jika isinya sama dengan /* maka proses berakhir
4. Pindahkan record dari FILE01 yang tersimpan didalam variabel NM, UM,
ALM ke variable penampung untuk FILE02. Variabel penampung
tersebut adalah :
NMO : Variabel Nama
UMO : Variabel Umur
ALMO: Variabel Alamat
6. Periksa isi variable NM, jika isi NM tidak sama dengan ‘IKRAM’ maka
proses kembali ke langkah 2 untuk membaca record selanjutnya.
Jika isi NM = ‘IKRAM’ maka lakukan langkah 7
/* Record Akhir
Penghapusan Record
Di bawah ini terlampir struktur file dari FILE01 yang akan dihapus.
/* Record Akhir
Record nomor 5 dengan field nama yang berisi ‘DEWI’ akan dihapus.
Flowchart untuk proses penghapusan adalah sebagai berikut :
Start
Input
NMH
Read FILE01
NM1, UM1, ALM1
/* End
y
NM1 =
1
NMH
t
NMO = NM1
UMO = UMO1
ALMO = ALM1
Write FILE02
NMO, UMO, ALMO
Setelah proses di atas dilakukan maka terbentuk satu file baru yaitu FILE02.
File ini merupakan file dari FILE01 yang telah mengalami proses
penghapusan satu record.
Susunan record file FILE02 menjadi seperti yang terlihat berikut .
/* Record Akhir
Perubahan record merupakan modifikasi terhadap isi record dari satu file.
Proses ini hampir serupa dengan proses yang telah di jelaskan sebelumnya.
Record yang akan dimodifikasi di cari dengan memeriksa isi salah satu field.
Misalnya dari file sebelumnya yaitu FILE02 akan dilakukan perubahan isi
record yaitu record ke-4 dengan field nama sama dengan ‘FAISAL’. Maka
flowchartnya adalah (lihat gambar 7.6)
Flowchart Perubahan Data (Gambar 7.6)
Start
Input
NM1
Read FILE02
NM2, UM2, ALM2
/* End 1
NMO = NMB
UMO = UMB
ALMO = ALMB
Write FILE02
NMO, UMO, ALMO
Setelah proses di atas dilakukan maka isi file FILE02 mengalami perubahan
yaitu pada record ke-4.
Dibawah ini terlampir ilustrasi isi file tersebut.
/* Record Akhir
OPERASI FILE RANDOM
Penyisipan Record
Berbeda dengan file sequential, akses pada file random dapat dilakukan
secara acak. Jadi, akses data tidak dilakukan dengan membaca data satu
persatu mulai dari record pertama. Tapi dilakukan dengan nomor record.
Pada prinsipnya, pengisian data ke suatu file random hampir sama dengan
file sequential. Namun akses datanya lebih fleksibel. Karena pencarian record
data dapat dilakukan dengan pindah dari record terakhir ke record awal
atau record lainnya. Perhatikan contoh berikut :
MAST1.DTA MAST2.DTA
Start
1
Read
MAST1.DTA,
NIM1,NM1,AL1
Y
/* End
T
N=0
N=N+1
Read MAST2.DTA
(Record ke N),
NIM2,NM2,AL2
NIMO = NIM1
Write
/* NMO = NM1
MAST2.DTA,NIMO,
ALO = AL1
Y NMO,ALO
T
NIM2 1
sebagai :
1. Proses pertama adalah membaca data di file MAST1.DTA. Variabel
input yang digunakan adalah :
NIM1 : Nomor Induk Mahasiswa
NM1 : Nama Mahasiswa
AL1 : Alamat Mahasiswa
2. Periksa isi record, jika isinya sama dengan /* maka proses berakhir
3. Persiapkan variable untuk menentukan nomor record yaitu N =0.
Nomor record ini menunjukkan record di file MAST2 yang akan diakses.
Dengan diisinya variable N dengan nilai 0 maka pencarian record di
file MAST2.DTA dimulai dari record pertama
4. Variabel N ditambah 1. Proses ini berfungsi sebagai kounter untuk
nomor record
5. Baca record di file MAST2.DTA. Nomor record yang dibaca sesuai
dengan nilai di variable N. Variabel input yang digunakan untuk
menampung data dari file MAST2.DTA adalah :
NIM2 : Nomor Induk Mahasiswa
NM2 : Nama Mahasiswa
AL2 : Alamat Mahasiswa
6. Periksa isi record MAST2.DTA. Jika isinya bukan /* maka lakukan :
• Pembandingan isi record MAST2.DTA dengan record dari
MAST1.DTA. Pembandingan ini dilakukan untuk mengetahui apakah
record di MAST1.DTA sudah terdapat di MAST2.DTA. Jika isinya sama
maka record dari MAST2 diabaikan dan proses kembali ke langkah
1 untuk membaca record berikutnya di file MAST1.DTA. Sebaliknya,
jika isi record MAST2.DTA tidak sama dengan record MAST1.DTA.
Setelah itu kembali ke langkah 1 untuk membaca record berikutnya
di file MAST2.DTA.
Jika isi record MAST2.DTA ternyata sama dengan /* berarti semua record di
MAST2.DTA telah dibandingkan dengan record dari MAST1.DTA. Sehingga
dapat diketahui bahwa record dari MAST1.DTA tidak ada di MAST2.DTA.
Maka simpan data tersebut ke file MAST2.DTA. Setelah itu kembali ke langkah
1 untuk membaca record berikutnya di file MAST1.DTA.
Master.DTA
NEW.DTA
TRASN.DTA
System Flowchart diatas menunjukkan garis besar proses penghapusan
record yang ada di file MASTER.DTA. Record yang dihapus ditentukan
berdasarkan data yang terdapat di file TRANS.DTA. Hasil penghapusan
disimpan di file NEW.DTA. Jadi isi TRANS.DTA merupakan isi MASTER.DTA
setelah mengalamai penghapusan record.
1
Start
N=0 3 M=M+1
2 N=N+1 Read
TRANS.DTA 2
(Record ke-M),
NIM2
Read MASTER.DTA
(Record
ke-N), Y NIMO = NIM1
NIM1,NM1,AL1
/* NMO = NM1
ALO = AL1
T
NIM2 =
Y /* T NIM1
End Write
T NEW.DTA,NIMO,
3 NMO,ALO
Y
1 M=0
2
Jika isi record TRANS.DTA ternyata sama dengan /* berarti semua record
di TRANS.DTA telah dibandingkan dengan record dari MASTER.DTA.
Sehingga dapat diketahui bahwa record di MASTER.DTA tidak ada di
TRANS.DTA. Selanjutnya simpan data tersebut ke file NEW.DTA. Setelah itu
kembali ke langkah 2 untuk membaca record berikutnya di file
MASTER.DTA
TRANS.DTA INDUK.DTA
File INDUK.DTA dan TRANS.DTA terdiri dari field : Nomor Induk Mahasiswa,
Nama, dan Alamat. Data di INDUK.DTA akan diubah berdasarkan data di
TRANS.DTA. Field kunci (key) yang dipakai adalah Nomor Induk
Mahasiswa. Maka flowchart untuk proses perubahan tersebut adalah
1
Start
3
N=0 M=M+1
2
/*
End
NIM2 = NM2 = NM1
NIM1 AL2 = AL1
1 M=0
Write INDUK.DTA
3 (Record Ke.M)
NIM2,NM2,AL2
2
Dari flowchart di atas, proses perubahan dapat diurutkan sebagai berikut :
1. Proses pertama kali mempersiapkan variable N=0. Variabel ini dipakai untuk
menentukan nomor record yang akan dibaca dari file TRANS.DTA
2. Variabel N ditambah 1. Proses ini berfungsi sebagai kounter untuk nomor
record di TRANS.DTA
3. Baca record di TRANS.DTA dengna nomor record sesuai dengan isi variable N.
Variabel yang digunakan sebagai input adalah :
NIM1 : Nomor Induk Mahasiswa
NM1 : Nama Mahasiswa
AL1 : Alamat Mahasiswa
4. Periksa isi record, jika isinya sama dengan /* maka proses berakhir
5. Persiapkan variable untuk menentukan nomor record yang akan dibaca dari
INDUK.DTA yaitu M=-0
6. Variabel M ditambah 1. Proses ini berfungsi sebagai kounter untuk nomor
record INDUK.DTA
7. Baca record di INDUK.DTA dengan nomor record sesuai dengan isi variable
M. Variabel yang digunakan sebagai input adalah :
NIM2 : Nomor Induk Mahasiswa
NM2 : Nama Mahasiswa
AL2 : Alamat Mahasiswa
8. Periksa isi record, jika isinya sama dengan /* proses kembali ke langkah 2
untuk membaca record berikutnya di TRANS.DTA. Sebaliknya jika isi record
tidak sama dengan /* maka proses dilanjutkan ke langkah 9
9. Bandingkan isi record yang dibaca dari INDUK.DTA dengan record dari
TRANS.DTA. Untuk pembandingan ini digunakan record NIM1 dan NIM2
sebagai field kunci. Jika isinya tidak sama maka proses kembali ke langkah 6
untuk membaca record berikutnya di file INDUK.DTA. Sebaliknya, jika isinya
sama maka lanjutkan ke langkah 10 untuk melakukan perubahan isi record di
file INDUK.DTA
10. Pindahkan isi record dari TRANS.DTA ke INDUK.DTA untuk mengubah isi record
yang lama
11. Simpan record yang telah diubah ke file INDUK.DTA\
12. Kembali ke langkah 2 untuk membaca record berikutnya di file TRANS.DTA