Uploaded by defaniaadesti2

Operasi File Sekuensial: Algoritma & Pemrograman

advertisement
Algoritma & Pemrograman 1
10. OPERASI FILE SEQUENTIAL
Operasi terhadap file yang diorganisir secara sequential hanya dapat
dilakukan secara berurutan.
I. PENYISIPAN RECORD / PENAMBAHAN RECORD BARU
Untuk penambahan record ke dalam suatu file, maka posisi record terakhir
harus diketahui, karena record yang baru diletakan pada posisi setelah record
terakhir.
Flowchart proses penyimpanan data ke file
start
Input NPM,
NM$, NILAI
NPM=
0
END
NPMO=NPM
NM$O=NM$
NILAIO=NILAI
WRITE
NPMO,NMO,NILAIO
Operasi File sequential
1
Algoritma & Pemrograman 1
Flowchart proses penambahan record baru.
start
Read Data
NM,UM,ALM
/*
INPUT NM1,UM1,
ALM1
NMO= NM1
UMO=UM1
ALMO=ALM1
WRITE
NMO,UMO,ALMO
END
•
Jika yang akan dilakukan adalah menyisipkan recor yang sudah ada, maka
diperlukan satu file baru untuk menampung hasil akhir dari penyisipan.
•
Untuk penyisipan record, posisi yang akan ditempati oleh record baru harus
diketahui dengan jelas
•
Posisi ini dpat diketahui dengan cara memeriksa salah satu isi dari suatu
record
•
System flowchart dibawah memperlihatkan bahwa data yang akan
disisipkan diinput melelui keyboard
Operasi File sequential
2
Algoritma & Pemrograman 1
•
Sedang file yang akan disisipkan data diambil dari FILE01 dan file baru hasil
penyisipan adalah FILE 02
FILE 02
FILE 01
II. PENGHAPUSAN RECORD
•
Penghapusan dilakukan dengan cara membaca record satu persatu lalu
menuliskan kembali ke file baru.
•
Namun dalam proses pembacaan tersebut dilakukan pemeriksaan terhadap
setiap record.
•
Jika pada waktu pembacaan record ditemukan reocrd yang akan dihapus
maka record tersebut diabaikan atau tidak ditulis ke file baru.
•
Penghapusan record dilakukan terhadap file FILE01. Record yang akan
dihapus diinput melalui keyboard. Hasil penghapusan record disimpan di
dalam file FILE02.
System flowchart proses penghapusan record
FILE 02
FILE 01
Operasi File sequential
3
Algoritma & Pemrograman 1
Flowchart penghapusan record
START
INPUT NMH
1
READ FILE 01
NM1, UM1, AKM1
/*
END
NM1=
NMH
1
NMO=NM1
UMO=UM1
ALMO=ALM1
WRITE FILE02
NMO,UMO,ALMO
11
Operasi File sequential
4
Algoritma & Pemrograman 1
III. PERUBAHAN ISI RECORD
•
Perubahan record merupakan modifikasi terhadap isi record dari suatu file.
•
Record yang akan dimodifikasi dicari dengan memeriksa isi salah satu field.
•
Untuk mengadakan perubahan pada record ke – 3 maka proses
pembacaan record dilakukan mulai dari record pertama sampai pada record
yang dituju.
Flowchart perubahan record
start
Input NAMA$
1
Baca FILE02
NPM2,NM2$, NILAI
/*
END
2
NM2=
NAMA
1
INPUT NPMB,NMB$,
NILAIB
NPMO=NPMB
NMO$=NMB$
NILAIO=NILAIB
WRITE FILE02
NPMO,NMO$,NILAIO
Operasi File sequential
2
5
Algoritma & Pemrograman 1
STATEMENT BASIC UNTUK ORGANISASI FILE
Membuka File
Sebelum data yang disimpan dalam file data bisa dibaca, atau untuk
menyimpan data ke dalam file data, terlebih dahulu file data tersebut harus dibuka.
Pada saat membuka file data akses urut, tentukan terlebih dahulu apakah file
tersebut sebagai file input, yaitu file yang isinya akan dibaca, atau sebagai file
output, yaitu tempat untuk merekam data.
Bentuk umum statemen untuk membuka file data akses urut adalah sebagai
berikut :
OPEN “mode”,[#]nomor file,namafile
Keterangan :
mode
: adalah mode operasi dari file yang akan dibuka. Pada file data akses
urut, mode file dibedakan menjadi 2, yaitu :
O
: menunjukkan output mode, yaitu file akan digunakan
untuk diisi dengan data (output akan direkamkan ke file).
I
: menunjukkan input mode, yaitu file akan digunakan untuk
diambil datanya (input akan diambil dari file).
Nomor file : merupakan bilangan bulat antara 1 sampai dengan 255. Digunakan
untuk menyatakan nomor file yang akan dibuka.
Nama file
: merupakan nama dari file.
Operasi File sequential
6
Algoritma & Pemrograman 1
Alternatif lain untuk statemen OPEN adalah :
OPEN nama file FOR mode AS [#]nomor file
Keterangan :
mode
: terdiri atas 3 macam, yaitu
OUTPUT
sama dengan mode “O”
menunjukkan bahwa file akan dibuka sebagai file
output, yaitu file yang akan diisi. Perlu berhati-hati
karena jika file yang akan dibuka belum ada, maka file
akan dibuat, dan siap diisi data. Tetapi jika nama file
sudah ada dalam media eksternal yang dimaksud,
maka file tersebut akan dikosongkan terlebih dahulu,
yakni dengan menghapus semua isinya, kemudian data
yang baru akan dituliskan ke dalam file yang sudah
kosong tersebut.
INPUT
sama dengan mode “I”
menunjukkanbahwa file akan dibuka sebagai file input,
yaitu file yang isinya akan dibaca.
APPEND
menunjukkan append mode, yaitu pada waktu file
dibuka, posisi file berada di akhir file, sehingga file
dapat ditambah dengan data yang baru. Mode ini tidak
terdapat pada alternatif pertama. Dalam hal ini, file
yang ditunjuk harus sudah ada dalam media eksternal
yang dimaksud. Jika pilihan in idigunakan, maka file
yang lama akan tetap ada, lengkap dengan datanya,
sedangkan data yang baru akan ditambahkanpada
posisi setelah data yang lama.
Operasi File sequential
7
Algoritma & Pemrograman 1
Contoh penulisan statemen OPEN untuk membuat file yang baru (output mode) :
OPEN “O”,#1,”HASIL.DAT”
Atau dapat dituliskan dengan alternatif kedua sebagai berikut :
OPEN “HASIL.DAT” FOR OUTPUT AS #1
Artinya : Buat file HASIL.DAT untuk diisi data.
Contoh penulisan statemen OPEN untuk membuka file yang telah ada (input
mode) :
OPEN “I”,#1,”C:\Mydocumen\ALAMAT.DAT”
Atau dapat dituliskan dengan alternatif kedua sebagai berikut :
OPEN “ALAMAT.DAT” FOR INPUT AS #1
Artinya : Buka file ALAMAT.DAT yang tersimpan pada direktori Mydocument yang
ada pada Drive C.
Menutup File
File yang sudah diisi data perlu ditutup. Kegunaannya adalah untuk bahwa
pada saat file ditutup, semua data yang ada di dalam penyangga (buffer, yaitu
tempat penyimpan data sementara yang menggunakan memori internal) akan
dituliskan kedalam file, sehingga menghindari kemungkinan adanya data yang
hilang.
Kegunaan yang kedua adalah untuk membebaskan nomor file, sehingga
bisa digunakan oleh program yang lain.
Operasi File sequential
8
Algoritma & Pemrograman 1
Bentuk umum :
CLOSE [#nomor file]
Dengan nomor file adalah nomor file yang akan ditutup. Jika nomor file tidak
dituliskan, maka semua file yang sedang terbuka akan ditutup semuanya.
Menyimpan Data Ke File
Untuk merekam / menyimpan data kedalam file digunakan statemen
WRITE#.
Bentuk umumnya :
WRITE #nomor file,dafpar
Keterangan:
Nomor file : menyatakan nomor dari file yang akan digunakan untuk menyimpan
rekaman data. File yang akan digunakan harus sudah dibuka dengan
menggunakan statemen OPEN dalam bentuk OUTPUT atau
APPEND.
Dafpar
: merupakan ekspresi string atau numerik yang menyatakan data yang
akan disimpan ke dalam file.
Contoh :
WRITE #1, “Zeini”,23,”Jakarta”
Selain penulisan menggunakan statemen WRITE#, terdapat alternatif lain
untuk penulisan data, yaitu dengan menggunakan statemen PRINT#.
Operasi File sequential
9
Algoritma & Pemrograman 1
Bentuk umumnya :
PRINT #nomor file,dafpar
Keterangan :
nomorfile dan dafpar fungsinya sama dengan nomor file dan dafpar pada
statemenWRITE#
Contoh :
PRINT#1,”Zeini”,23,”Jakarta”
Contoh : Menyimpan data ke dalam suatu file dengan nama ALAMAT yang akan
disimpan pada direktori MYDATA yang ada pada drive C.
OPEN “C:/MYDATA/ALAMAT” FOR OUTPUT AS #1
WRITE#1,”Zeini”,23,”Jakarta”
WRITE#1,”Rudi”,30,”Bandung”
WRITE#1,”Supriyatno”,26,”Jakarta”
WRITE#1,”Sari”,24,”Jakarta”
WRITE#1,”Jhonny”,19,”Jakarta”
WRITE#1,”Abdi”,25,”Jakarta”
CLOSE#1
END
Setelah program di atas dijalankan, maka pada direktori MYDATA yang ada
pada drive C akan terbentuk satu file baru dengan nama ALAMAT. Dengan
menggunakan statemen WRITE#, susunan data di dalam file ALAMAT dapat
digambarkan sebagai berikut :
”Zeini”,23,”Jakarta”
”Rudi”,30,”Bandung”
”Supriyatno”,26,”Jakarta”
Operasi File sequential
10
Algoritma & Pemrograman 1
”Sari”,24,”Jakarta”
”Jhonny”,19,”Jakarta”
”Abdi”,25,”Jakarta”
Dari susunan diatas terlihat bahwa data yang disimpan didalam file
dipisahkan dengan tanda koma.
Bandingkan dengan jika penulisan data menggunakan statemen PRINT#
OPEN “C:/MYDATA/ALAMAT” FOR OUTPUT AS #1
PRINT#1,”Zeini”,23,”Jakarta”
PRINT#1,”Rudi”,30,”Bandung”
PRINT#1,”Supriyatno”,26,”Jakarta”
PRINT#1,”Sari”,24,”Jakarta”
PRINT#1,”Jhonny”,19,”Jakarta”
PRINT#1,”Abdi”,25,”Jakarta”
CLOSE#1
END
Hasilnya :
Zeini 23 Jakarta
Rudi 30 Bandung
Supriyatno 26 Jakarta
Sari 24 Jakarta
Jhonny 19 Jakarta
Abdi 25 Jakarta
Dari susunan di atas terlihat bahwa antara field yang satu dengan field yang
lainnya tidak dipisahkan oleh tanda koma sebagai pembatas (delimiter). Sehingga
dalam satu record akan dianggap hanya terdiri dari satu field saja. Oleh sebab itu,
Operasi File sequential
11
Algoritma & Pemrograman 1
agar posisi field-field dalam satu record tetap terjaga maka sebaiknya gunakan
statemen WRITE# untuk menulis data ke dalam file.
Mengambil Data Dari File
Untuk membaca atau mengambil data yang tersimpan dalam suatu file
maka diperlukan proses pembacaan data. Untuk itu digunakan statemen INPUT#.
Bentuk umumnya :
INPUT #nomor file, varlist
Keterangan :
Nomor file
: merupakan nomro dari file yang akan dibaca. File yang akan
digunakan harus sudah dibuka dengan menggunakan statemen
OPEN dalam bentuk INPUT.
Varlist
:
merupakan nama variabel yang akan digunakan untuk
menampung data yang dibaca. Variabel ini dapat berupa variabel
string maupun numerik tetapiharus disesuaikan dengan data yang
akan dibaca.
Langkah-langkah di dalam menampilkan semua data yang ada didalam filedata
akses urut adalah sebagai berikut :
1. File dibuka dengan mode “I” atau INPUT, karena data akan diambil dari file
ini.
2. Data diambil atau dibaca dari file mulai dari record pertama sampai dengan
record terakhir atau akhir dari file. Akhir dari file dapat dideteksi dengan
fungsi EOF dengan sintaks :
EOF(nomor file)
3. Bila belum sampai di akhir file atau belum mencapai record yang terakhir,
maka data dapat dibaca dengan menggunakan statemen INPUT#.
4. Setelah semua data dibaca dari file, untuk mengakhiri penggunaan file,
maka file harus ditutup dengan statemen CLOSE atau END.
Operasi File sequential
12
Algoritma & Pemrograman 1
Contoh : Mencetak isi data yang tersimpan di dalam file ALAMAT yang ada pada
direktori MYDATA pada drive C. File ini sebelumnya telah dibuat dengan
menggunakan statemen WRITE#.
PRINT “DAFTAR ALAMAT KOLEGA “
PRINT
PRINT
PRINT ”--------------------------------------------“
PRINT “NAMA
UMUR
ALAMAT “
PRINT”---------------------------------------------“
Items$= “\
\ ##
\
\”
OPEN “C:\MYDATA\ALAMAT” FOR INPUT AS #1
Do Until EOF(1)
INPUT #1,Nm$,Umur,ALM$
PRINT USING item$; Nm$; Umur;ALM$
LOOP
PRINT”---------------------------------------------“
CLOSE
END
Operasi File sequential
13
Algoritma & Pemrograman 1
Hasil setelah dijalankan :
DAFTAR
ALAMAT KOLEGA
------------------------------------------------NAMA UMUR
ALAMAT
------------------------------------------------Zeini
23
Jakarta
Rudi
30
Bandung
Supriyatno
26
Jakarta
Sari
24
Jakarta
Jhonny
19
Jakarta
Abdi
25
Jakarta
-------------------------------------------------
Menambah Data
Untuk menambah data di dalam file diperlukan penulisan dengan
menggunakan WRITE#, namun dalam file yg diorganisasikansecara urut, akses
terhadap recorddata akan dilakukan secara berurutan mulai dari recordpertama
sampai dengan terakhir.
Jadi penambahan data dapat menyebabkan data yang telah disimpan
sebelumnya akan terhapus. Hal ini disebabkan data yang baru akan ditulis dengan
cara menimpa data sebelumnya. Untuk itu penambahan data harus dilakukan
dengan memperhatikan record data didalamnya.
Agar dalam penambahan data tidak menyebabkan data yang lama
terhapus, maka digunakan mode APPEND pada statemen OPEN sewaktu
membuka file yang bersangkutan.
Operasi File sequential
14
Algoritma & Pemrograman 1
Mode APPEND menyebabkan penunjuk (pointer) record akan ditempatkan
diakhir file yaitu record terakhir. Dengan demikian,penambahan record akan
dimulai pada record terakhir sehingga tidak menghapus record sebelumnya.
Contoh : Menambah data yang yang akan tersimpan pada file ALAMAT, dimana
file ini sebelumnya telah dibuat dengan menggunakan statemenWRITE#.
OPEN “C:\MYDATA\ALAMAT” FOR APPEND AS #1
Nama$ = “xxx”
DO UNTIL Nama$=””
INPUT “Nama = “; Nama$
If Nama$=””THEN EXIT DO
INPUT “Umur =”;Umur
INPUT “Alamat= “;ALM$
PRINT “---------------------------------------------------------“
WRITE#1, Nama$, Umur, ALM$
LOOP
CLOSE
END
Hasil setelah dijalankan :
Nama = Iwan
Umur = 32
Alamat = Jakarta
-------------------------------------------
maka di dalam file ALAMAT akan bertambah satu data baru pada record terakhir
sehingga hasilnya jika program untuk membaca isi data pada contoh sebelumnya
dijalankan adalah sebagai berikut :
Operasi File sequential
15
Algoritma & Pemrograman 1
DAFTAR
ALAMAT KOLEGA
------------------------------------------------NAMA UMUR
ALAMAT
------------------------------------------------Zeini
23
Jakarta
Rudi
30
Bandung
Supriyatno
26
Jakarta
Sari
24
Jakarta
Jhonny
19
Jakarta
Abdi
25
Jakarta
Iwan
32
Jakarta
-------------------------------------------------
Record baru menempati posisi record yang terakhir.
SOAL FILE SEQUENTIAL
1. Buat flowchart untuk menyimpan data ke dalam file. Spesifikasi data tersebut
adalah : nomor induk pegawai, nama pegawai, alamat dan gaji pokok. Proses
input data berakhir jika operator mengisi 0 untuk nomor induk pegawai.
2. Buat flowchart dengan permasalahan soal no.1 namun data pegawai yang
disimpan ke file hanya pegawai dengan gaji pokok > 200. Sebaliknya, untuk
gaji pokoklebih kecil atau sama dengan 200 dicetak melalui printer.
Operasi File sequential
16
Algoritma & Pemrograman 1
3. Perhatikan sistem flowchart sebagai berikut :
Mhsnew.dat
Mhs.dat
File mhs.dat terdiri dari field : nomor induk mahasiswa, nama, alamat, dan ipk.
Buat flowchart untuk proses penghapusan record filemhs.dat. Spesifikasi
proses adalah sebagai berikut :
-
Record yang dihapus ditentukan berdasarkan nomor induk mahasiswa ( NIM )
yang diinput melalui keyboard
-
Data di dalam file.mhs.dat telah diurutkan berdasarkan NIM
-
Hasil proses penghapusan pada file mhs.dat disimpan ke file mhsnew.dat
-
Proses selesai jika operator mengetik 0 untuk nomor induk mahasiswa.
Operasi File sequential
17
Download