Teknik Pemrograman Terstruktur 1
Materi : File Relatif
ANYELA DESIARNI (10110957)
CHRISTIN MARTA DAMAYANTI (11110582)
FADJRI PRATAMA (12110486)
PUTRI NAMIRA (15110460)
RIDHO PRIHANTONO (15110910)
RINA YUNITA RUSDIMAN (15110976)
WURI WIDOWATI (18110583)
AHMADIAN SAPUTRA (10110430)
Kelas : 2KA14
Universitas Gunadarma
2011
KATA PENGANTAR
Puji syukur penyusun panjatkan ke hadirat Allah SWT karena berkat rahmat-Nya kami bisa menyelesaikan makalah yang bermateri tentang File Relatif. Makalah ini di ajukan guna memenuhi tugas mata kuliah Teknik Pemrograman Terstruktur 1.
Kami mengucapkan terimakasih kepada semua pihak yang telah menbantu, sehingga makalah ini dapat diselesaikan tepat pada waktunya. Makalah ini masih jauh dari sempurna, oleh karena itu kami mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan makalah ini.
Semoga makalah ini memberikan informasi bagi Mahasiswa, dan bermanfaat untuk pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
PENDAHULUAN
A. Latar Belakang
Makalah ini di ajukan guna memenuhi tugas mata kuliah Teknik Pemrograman Terstruktur 1. Dan sekaligus memenuhi nilai kami di mata kuliah ini. Semoga makalah ini memberikan informasi bagi Mahasiswa, dan bermanfaat untuk pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
Kami ditugaskan untuk mencari tentang “File Relatif”. Dan kami menjelaskan tentang apa itu File Relatif, lalu membuat program sederhana pada Cobol.
B. Tujuan
Untuk memenuhi sebuah tugas mata kuliah Teknik Pemrograman Terstruktur 1, dan sekaligus memenuhi nilai kami di mata kuliah ini. Dan juga mempersingkat waktu cara kami belajar, dengan melakukan pengelompokan mencari sebuah materi yang berbeda. Sehingga bisa di presentasikan ke semua mahasiswa, khususnya mahasiswa kelas S1-Sistem Informasi 2KA14. Semoga makalah ini memberikan informasi bagi Mahasiswa, dan bermanfaat untuk pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
C. Rumusan Masalah
Makalah ini dibuat hasil pencarian data mulai dari sebuah buku hingga internet. Lalu materi terdiri dari :
ü FILE RELATIF
ü IDENTIFICATION DIVISION PADA FILE RELATIF
ü ENVIRONMENT DIVISION
ü DATA DIVISION PADA FILE RELATIF
ü PROCEDURE DIVISION PADA FILE RELATIF
ü CONTOH PENGGUNAAN FILE RELATIF
I. FILE RELATIF
Organisasi file secara relatif (relative file) adalah file yang recordnya dibedakan dengan dasar suatu nomor record relative. Nomor relative dapat berkisar dari nomor record 1 sampai dengan nomor record 327667.
Nomor record relative ini tidak turut direkamkan dalam file, sehingga panjang recordnya adalah sepanjang record yang ditentukan tanpa nomor record relatifnya. Panjang record untuk file relative adalah mempunyai panjang yang tetap.
II. IDENTIFICATION DIVISION PADA FILE RELATIF
Isi dan bentuk dari identification division untuk organisasi file secara relatif sama dan tidak berbeda dengan identification division pada organisasi file secara sequential,maupun organisasi file secara indeks.
III. ENVIRONMENT DIVISION
Pada divisi ini entri pada select case har adalah disebutkan organitionis relative.
Bentuk entri pada SELECT clause adalah sebagai berikut:
File-Control.
Select nama-file ASSIGN TO DISK
;ORGANIZATION IS RELATIVE
SEQUENTIAL [,RELATIVE KEY IS nama-data]
[;ACCESS MODE IS RANDOM
DYNAMIC , RELATIVE KEY IS nama-data-1
[;FILE STATUS IS nama-data-2]
Organisasi file secara relative, dapat diakses baik secara urut, acak maupun dinamik, sama dengan pengaksesan pada organisasi file secara indek. Pada mode akses urut ( sequential access mode), record diakses dengan urutan nomor record relative dari kecil ke besar. Pada mode access secara urut ( random access mode), urutan dari record di file tidak urut berdasarkan nomor record relative tetapi pengaksesan record diatur oleh programmer. Masing masing record yang diinginkan adapat dilakukan dengan meletakan suatu nilai nomor record relative tertentu pada kunci relative sebelum perintah- perintah pengaksesan file dikerjakan. Dengan cara demikian, maka posisi record yanga akan diinginkan akan langsung di tuju. Pada mode akses dinamik ( dynamic access mode), access dapat merupakan gabungan antara access secara urut maupun access secara acak.
RELATIVE KEY clause menunjukkan nama – data yang dipergunakna sebagai kunci realatif, yag sudah harus disebutkan terlebih pada record description entri dalam DATA DIVISION. Nama-data ini dapat berupa grup data item atau elementeri data item yang berbentuk numeric. RELATIVE KEY clause harus disebutkan untuk mode access acak atau mode access dinamik, sedang pada mode access urut, dapat disebutkan bila akan dipergunakan statement START untuk menempatkan posisi record pada nomor relative tertentu.
FILE STATUS clause digunakan untuk menunnjukan jenis kesalahan yang terjadi dari suatu hasil proses operasi file . Jenis kesalahan ini ditunjukkan oleh suatu nilai sepanjang dua (2) karakter yang disimpan pada nama – data yang disebutkan pada clause ini dan sudah disebutkan terlebih dahulu pada WORKING - STORAGE SECTION atau pada LINKAGE SECTION.
Nilai | Jenis |
00 | Tidak terjadi kesalahan |
10 | Akhir dari file ( END OF FILE ) |
21 | Tidak bisa merekam pola sequential akses mode, kunci relatif tidak urut |
22 | Nilai kunci relative tidak unik |
23 | Record tidak ketemu ( no record found ) |
24 | Disk penuh ( Disk Space Full ) |
30 | File tidak ada ( File Not Found ) |
91 | Strukture file rusak |
IV. DATA DIVISION PADA FILE RELATIF
DATA DIVISION pada file relatif sama dengan DATA DIVISION pada organisasi file secara sequential. Maupun pada organisasi file secara indeks,yaitu mengandung file description entry.
Contoh sebagai berikut :
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS nama-file di label
V. PROCEDURE DIVISION PADA FILE RELATIF
Statement khusus yang dipergunakan pada file relatif di dalam PROCEDURE DIVISION sama dengan yang ada di file indeks,yaitu dapat dibentuk dari verb OPEN,CLOSE,READ,WRITE,REWRITE,START dan DELETE.
a) OPEN VERB
Digunakan untuk membentuk statement OPEN yang digunakan untuk membuka file yang akan diakses.Bentuk dari statement OPEN pada file indeks adalah sebagai berikut :
Ø OPEN INPUT menunjukan file dibuka sebagai file input,yaitu file yang dibuka untuk tujuan sebagai input atau data akan dibaca (READ) dari file ini.
Ø OPEN OUTPUT menunjukan file dibuka sebagai file output,yaitu file yang dibuka untuk tujuan sebagai output atau data yang akan direkamkan (WRITE) pada file ini.
Ø OPEN I-O menunjukan file dibuka baik sebagai file input ataupun output,yaitu file yang dibuka untuk tujuan sebagai input dan output sekaligus dapat dibaca (READ),di modifikasi atau dibetulkan terlebih dahulu jika salah.Kemudian memungkinkan untuk direkamkan kembali (REWRITE atau WRITE) pada posisi yang sama.Pada mode akses secara urut (sequential access mode).Statement WRITE pada OPEN I-O tidak boleh dipergunakan harus menggunakan REWRITE.
Contoh:
OPEN INPUT REKAMAN → Menunjukkan file REKAMAN dibuka sbg file input, data akan dibaca dari file ini OPEN OUTPUT BARANG → File BARANG dibuka sebagai file output, data akan direkamkan pada file ini OPEN I-O HUTANG → Menunjukkan file HUTANG dibuka sebagai file input dan file output sekaligus Pada mode akses urut, statement WRITE pada OPEN I-O tidak boleh digunakan, harus menggunakan statement REWRITE.
b) CLOSE VERB
Setelah operasi file selesai,maka semua file yang masih terbuka harus ditutup.Untuk menutup file dipergunakan statement CLOSE.
Bentuk dari statement CLOSE:
CLOSE nama-file-1 [WITH LOCK] [,nama-file-2 [WITH LOCK]]
Bentuk dan penggunaan statement CLOSE ini sama persis dengan organisasi file secara sequentional atau pada organisasi file secara indeks.
c) WRITE VERB
Write verb digunakan untuk membentuk statement WRITE yang berguna untuk merekamkan data pada record tertentu di file yang telah dibuka dengan statement OPEN. Untuk mode akses secara urut (sequentional access mode).Statement WRITE digunakan untuk file yang dibuka sebagai file output(OPEN OUTPUT),sedang pada mode akses secara acak (random access mode) dan mode akses secara dinamik (dynamic access mode),statement WRITE dapat digunakan untuk file yang dibuka sebagai file output (OPEN OUTPUT).atau sebagai file input dan output sekaligus (OPEN I-O).
Bentuk dari statement WRITE :
WRITE nama-record [FROM nama-data]
[:INVALID KEY,statement-imperatip]
Dengan statement WRITE ini,data yang ada di storage nama-record atau diambil dari (FROM) storage nama-data akan direkamkan data pada record,nilai dari field kunci harus unik,kalau tidak,maka data tidak akan terekam dan statement-imperatip pada INVALID KEY akan dikerjakan bila disebutkan.
Nilai dari nama-data pada RELATIVE KEY clause yang menunjukan posisi nomor record relatif di file harus merupakan nomor record relatif yang record tersebut belum terisi dengan data.Bila pada record tersebut sudah terisi dengan data,maka ini berati nomor record relatif tersebut tidak unik.
d) READ VERB
Statement READ digunakan untuk membaca record yang ada di file.Ada 2 bentuk statement READ yang tersedia untuk ini :
Bentuk statement READ yang ke-1 :
READ nama-file [NEXT] RECORD [INTO nama-data]
[; AT END statement-imperatip]
Bentuk statement READ yang ke-2 :
READ nama-file RECORD [INTO nama-data]
[; INVALID KEY statement-imperatip]
Bentuk ke-1 yang tanpa menggunakan NEXT option digunakan pada sequential access mode. Sedangkan yang menggunakan NEXT option digunakan pada dynamic access mode untuk membaca record secara urut.
INVALID KEY clause pada statement READ ini akan terjadi bila pembacaan record sudaah mencapai akhir dari file ( End Of File) dan statement imperative akan dikerjakan bila dituliskan . Bila INVALID KEY clause tidak disebutkan, tetapi menggunakn DEKLARATIF regition, maka control terhadap akhir file tersebut akan dilakuakn pada region tersebut. Pada bentuk kesatu ini, bila pembacaan record sukses, maka nilai kunci relative yang disebutka dengan suatu nama – data yang disebutkan pada RELATIF KEY clause akan diiisi dengan suatu nilai yang menunjukan nilai record relative posisi record yang dibaca tersebut.
Bentuk ke dua ada random access mode atau pada dinamik access code untuk record yanga kan dibaca secara acak, yaitu pembacaan yang dapat langsung pada record tertentu sesuai dengan kunci relative tertentu .
INVALID KEY clause pada statement read bentuk kedua ini akan terjadi bila pembacaan tidak menentukan record yang sesuai dengan kunci nomor record relative yang diinginkan dan statement imperative akan dikerjakan bila dituliskan . Bila INVALID KEY clause tidak disebutkan tetapi menggunakan DECLARATIVE region maka control terhadap hal ini akan dilakukan pada region tersebut. Baik pada bentuk kesatu maupun bentuk ke dua , INTO phrase digunakan untuk memindahkan hasil record yang di baca ke lokasi storage yang lain yaitu dimana data yang disebutkan.
e) START VERB
Statement START digunakan untuk menempatkan pembacaan record pada posisi record sesuai dengan nilai nomor relatif tertentu yang diinginkan. Statement ini hanya boleh dipergunakan untuk file yang diakses secara sequential access mode atau secara dynamic access mode yang dibuka sebagai file input atau file I-O. Bentuk dari statement START pada file relative sama dengan bentuk file indeks :
IS EQUAL TO
IS =
START nama-file KEY IS GREATER THAN nama-data
IS >
IS NOT LESS THAN
IS NOT <
Bila digunakan IS EDUAL TO atau IS = maka penempatan posisi akan berada posisi nomor record relative yang sesuai dengan nilai nama data yang disebutkan. Bila digunakan IS GREATER THEN atau IS > atau IS NOT LESS THAN atau IS NOT <. Maka penempatan posisi akan berada pada record yang nomor record relatifnya lebih besar dari nilai nama data yang disebutkan.
Bila KEY phrase tidak disebutkan maka penempatan posisi akan berada pada record yang nilai nomor recordnya relative sama dengan nilai nama data pada RELATIF KEY terakhir yang ada di storage.
INVALID KEY clause pada statement START ini akan terjadi bila posisi record yang dicari tidak ketemu dan statement imperative akan dikerjakan bila dituliskan bila IN VALID KEY clause tidak disebutkan tetapi menggunnakan DECLARATIF region. Maka control terhadap keadaan ini akan dilakukan pada region tersebut.
f) REWRITE VERB
Statement REWRITE digunakan untuk merekam ulang record yang sudah pernah direkam.Statement ini biasanya digunakan untuk meremajakan (up-date) atau mengoreksi nilai record tertentu yang sudah terekam,yaitu dengan jalan merekamkan ulang (REWRITE) dengan nilai data yang baru.Bentuk dari statement REWRITE :
REWRITE nama-record [FROM nama-data]
[;INVALID KEY statement –imperatif]
Untuk file sequential access mode,statement READ sebelum statement REWRITE harus dikerjakan dengan sukses,kalau tidak maka pelaksanaan statement REWRITE menjadi tidak sah (INVALID).Juga pada file sequential access mode,nilai nomor record relatif tidak boleh dirubah,kalau berubah maka akan terjadi INVALID KEY dan statement-imperatip akan dikerjakan.
Untuk file random acces mode atau dynamic access mode record yang akan dirubah ditentuka langsung dari nomor record relatifnya, tidak perlu digunakan statement READ terlebih dahulu untuk membaca record tersebut. Kondisi INVALID KEY terjadi bila nomor record relative tidak ada di disk.
g) DELETE VERB
Statement DELETE digunakan untuk menghapus record tertentu dari file.Bentuk dari statement DELETE :
DELETE nama-file RECORD
[;INVALID KEY statement-imperatif]
Untuk file sequential access mode,sebelum record dihapus,record tersebut harus dibaca terlebih dahulu dengan statement READ yang harus dikerjakan dengan sukses.Untuk file random access mode atau dynamic access mode,record yang akan dihapus ditentukan langsung dari nomor record relatifnya,tidak perlu digunakan statement READ terlebih dahulu untuk membaca record tersebut.Kondisi INVALID KEY terjadi bila nomor record relatif tidak ada di disk.
VI. CONTOH PENGGUNAAN FILE RELATIF
Akan diberikan contoh program penggunaan file relative dengan mode access dynamic yang persoalannya seperti pengaksesan data mahasiswa. Pengambilan periosoalan contoh yanga sama ini dimaksudkan supaya akan dapat terlihat jelas bagaimana perbedaan penggunaan file indeks dan file relative.
Pada file relative ini nomor record relative ini dapat diwakili dengan nomor mahasiswa masing masing, karena nomor mahsiswa merupakan adata yang unik yaitu tidak akan sama satu dengan yang lain dan yang lebih tepat lagi untuk file relative adalah nomor mahasiswa ini biasanya urut. Struktur record untuk file relative akan mengalami sedikit perubahan, yaitu nomor mahasiswa sebagai nomor record file relative tidak turut direkamkan.
Bentuk struktur recordnya menjadi sebagai berikut :
Field
ke | Nama – data - item
| Jenis | Panjang | PICTURE |
1 | NAMA – MAHASISWA | Alphabetik | 25 byte | A (25) |
2 | ALAMAT – MHS
JALAN
KOTA |
Alphanumerik
Alphabetik
|
20 byte
15 byte
|
X(20)
A(15)
|
3 | TGL – DAFTAR
TANGGAL
BULAN
TAHUN |
Numerik
Numerik
Numerik
|
2 byte
2 byte
2 byte
|
99
99
99
|
4 | IP - MHS | Numerik | 5 byte | 99V99 |
Walaupun nomor mahasiswa tidak terekam di record, bukan berarti terus akan kehilangan jejak untuk mengakses data mahasiswa tertentu karena nomor record relatifnya menunjukkan nomor mahsiswanya misalnya akan diakses nomor mahasiswanya 8501, maka data mahasiswa ini ada pada nomor record relative ke 8501.
Kelemahan dari file relatif ini adalah terletak apada borosnya simpanan di disk untuk memori cord relative yang tidak digunakan . Misalnya pada persoalana ini akan diakses data mahasiswa yang digunakan nomor mahasiswa terkecil adalah nomor mahasiswa urutan 8100, sedang nomor mahasiswa lebih kecil dari 8100 tidak diakses karena sudah tidak aktif atau sudah lulus. Jika dalam hal ini digunakan nomor record relative yang sama dengan nomor.
DAFTAR PUSTAKA
Hartono, Jogiyanto, MBA. 2004. Teori dan Aplikasi Program Komputer
Bahasa Cobol dengan 343 Contoh Program. Jogjakarta: Andi offset