Anda di halaman 1dari 28

PRAKTIKUM VI

1. Judul Materi / Pokok Bahasan : Variabel Array dan Sorting (Pengurutan Data) 2. Tujuan Intruksional Khusus : Mahasiswa dapat membuat program dengan menggunakan variabel array dan menggunakannya untuk proses sorting. 3. Jumlah Pertemuan : 1 kali ( 2x50 menit) 4. Pengetahuan Prasyarat : Mahasiswa harus memahami statement DIM dan memahami metode pengurutan data (sorting). 5. Teori Dasar : Variabel Array Variabel Array atau variabel tataan atau variabel berindeks adalah variabel yang mempunyai susunan beberapa nilai didalam satu nama variabel. Variabel Array dapat berdimensi dari 1 dimensi sampai dengan 255 dimensi. Nilai-nilai didalam variabel array ini ditunjuk oleh suatu indeks atau subscript. Misalnya variabel tataan berdimensi satu dengan nama variabelnya X( I ) dengan I adalah indeks atau subscript dari array ini. Untuk nilai I dari 1 sampai dengan n, maka nilai elemen ke 1 dari aray atau variabel tatanan ini dapat dituliskan X( 1 ), nilai elemen ke 2 dapa t dituliskan X( 2 ) dan seterusnya sampai dengan X( n ). Untuk array berdimensi 2 dengan nama variabel x( I, J ) dengan I dan J adalah subscript atau indeksnya, maka nilai elemen baris ke 1 kolom ke 1 dapat dituliskan X( 1, 1), nilai elemen baris ke 1 kolom ke 2 dapat dituliskan x( 1, 2 ) dan seterusnya. Untuk tiap-tiap dimensi, BASIC hanya menyediakan tempat untuk nilai sebanyak 10 buah elemen. Bila lebih dari 10 buah elemen. Bila lebih dari 10 buah elemen untuk tiap-tiap variabel tataan, maka harus disebutkan terlebih dahulu pada statemen DIM. Misalnya variabel tataan A berdimensi satu mempunyai 4 buah nilai elemen, yaitu A(1), A(2), A(3), A(4), maka statement DIM tidak perlu digunakan. Akan tetapi untuk variabel tataan A berdimensi satu ini, misalnya mempunyai 11 buah elemen, yaitu A(1), A(2), sampai dengan A(11), maka statemen DIM perlu digunakan dan ditulis DIM(11).Jadi statement DIM untuk memberitahukan ke komputer untuk mempersiapkan tempat yang diminta untuk array/indeks. Contoh : 10 DIM X(15), A$(25) artinya variabel X meminta 15 kotak/tempat dan variabel A$ sebanyak 25 kotak/tempat. Untuk variabel array 2 dimensi, bentuk statement DIM X(15,15) akan disediakan kotak/tempat memori didalam komputer sebanyak 15x15 buah. X(1,1) X(2,1) . X(15,1) X(1,2) X(2,2) ... X(15,2) .. .. X(1,15) X(2,15) . X(15,15)

Didalam program Basic berlaku pula bahwa untuk variabel array 2 dimensi yang mempunyai tatanan kurang dari 10x10 tidak perlu dipakai pernyataan DIM. Contoh 1 :

10 FOR I = 1 TO 4 1. READ NILAI(I) 1. TOTAL=TOTAL+NILAI(I) 40 NEXT I 50 RATA=TOTAL/4 60 PRINT"RATA-RATA =";RATA 70 DATA 6,8,9,3 Nilai-nilai yang digunakan untuk dihitung nilai rata-ratanya masih disimpan di memori dan kalau masing-masing nilai ini ingin dikeluarkan lagi masih dapat dilakukan, sebab tersimpan pada nama-nama variabel NILAI(1), NILAI(2), NILAI(3), NILAI(4). Coba buktikan dengan menambahkan satu baris program ini: 80 PRINT NILAI(1);NILAI(2);NILAI(3);NILAI(4) Contoh 2 : Bandingkanlah program dicontoh 1 dengan program dicontoh 2 ini yang tidak menggunakan variabel array. 10 FOR I = 1 TO 4 20 READ NILAI 30 TOTAL=TOTAL+NILAI 40 NEXT I 50 RATA=TOTAL/4 60 PRINT"RATA-RATA =";RATA 70 DATA 6,8,9,3 Nilai rata-rata juga bisa keluar, tetapi masing-masing nilai tidak bisa dikeluarkan lagi, karena menggunakan satu nama variabel yang sama yaitu nilai yang bukan berupa variabel tataan. Nilai yang dikandung variabel NILAI terakhir adalah nilai yang terakhir saja, yaitu bernilai 3. Coba buktikan dengan menambahkan satu baris program ini: 80 PRINT NILAI;NILAI;NILAI;NILAI Contoh 3 : 10 READ NILAI1,NILAI2,NILAI3,NILAI4 20 TOTAL=NILAI1+NILAI2+NILAI3+NILAI4

30 RATA=TOTAL/4 40 PRINT"RATA-RATA =";RATA 50 DATA 6,8,9,3 Bila semua nilai setelah akhir dari proses masih diinginkan tersimpan, kalau tidak menggunakan variabel array, maka nama variabel harus berbeda, yaitu pada contoh 3, berupa nama variabel NILAI1,NILAI2,NILAI3,NILAI4 Coba buktikan dengan menambahkan satu baris program ini: 80 PRINT NILAI1;NILAI2;NILAI3;NILAI4 Contoh 4 :
100 DIM G$(10,10) 110 FOR I = 1 TO 5 120 FOR J = 1 TO 4 130 READ G$(I,J) 140 PRINT G$(I,J), 150 NEXT J 160 PRINT 170 NEXT I 180 DATA MAX,DOSEN,30,SEMARANG 190 DATA IWAN,MAHASISWA,20,KENDAL 200 DATA SLAMET RAHARAJA,BAAK,35,BANTUL 210 DATA AGUS,BAU,40,MOJOKERTO 220 DATA WIDYASARI,SEKRETARIS,25,DEMAK

Contoh Program diatas digunakan untuk membuat tabel dari data string dengan dimensi maksimum 10x10 (10 baris 10 kolom). Untuk memperbesar dimensi ini, statemen DIM pada baris 100 harus disesuaikan. Pada contoh ini matrik string G$( ) mempunyai dimensi 5x4, yang digunakan untuk menuliskan nama, status, umur dan alamat. Karena berdimensi 5x4, maka dalam deklarasi data harus disediakan paling sedikit 20 data. Kalau jumlahnya kuran dari 20, komputer akan menghentikan eksekusi karena error. Dan apabila lebih dari 20, kelebihannya akan diabaikan. Pengurutan Data ( Sorting ) Teknik Sorting ini dapat digunakan untuk mengurutkan data urut dari kecil ke besar maupun dari besar ke kecil baik unutk data numerik atau alphabetik.Teknik sorting ini sangat banyak sekali caranya, tetapi yang sering digunakan dan relatip mudah yaitu metode "Bubble Sort" dan "Straight Selection".

Metode Bubble Sort


Seperti gelembung ("bubble") yang timbul ke permukaan air, metode ini juga menimbulkan angka terbesar dan menaruhnya pada akhir urutan, mengatur sampai urut dari kecil sampai besar. Untuk metode sorting ini, semua data dibacakan terlebih dahulu ke omputer dan disimpan di "memori komputer", kemudian pengurutan baru dilakukan. Contoh 5 :
10 REM * SORTING MENGURUTKAN DATA * 15 REM * METODE BUBBLE SORT * 20 CLS 30 LOCATE 2,4:INPUT "BANYAK BILANGAN YANG DIURUTKAN : ", N 35 DIM BIL(N),Y(N) 40 PRINT 50 LOCATE 4,4:PRINT "INPUT BILANGAN YG AKAN DIURUTKAN : " 60 FOR I = 1 TO N STEP 1 70 LOCATE 4+I,4:PRINT" BILANGAN KE ";I;" : " 80 LOCATE 4+I,22:INPUT "",BIL( I ) 90 Y( I ) = BIL( I ) 100 NEXT I 110 PRINT 120 CLS 130 PRINT "DATA SEBELUM URUT : " 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. FOR I = 1 TO N PRINT BIL( I ); NEXT I PRINT:PRINT PRINT "LANGKAH PENGURUTAN : " FOR J= 1 TO N-1 FOR I= 1 TO N-J IF BIL( I ) < BIL( I+1 ) THEN 151 TUKAR=BIL( I ) BIL( I ) = BIL( I+1 ) BIL( X+1 ) = TUKAR NEXT I PRINT "LANGKAH KE : "; J;" : " FOR K=1 TO N PRINT BIL(K); NEXT K PRINT NEXT J PRINT:PRINT"SETELAH URUT : " PRINT"DATA","URUT KECIL","URUT BESAR" FOR I= 1 TO N PRINT Y( I ),BIL( I ),BIL( N+1-I) NEXT I END

Bagaimana bila data yang hendak diurutkan bukan berupa data numerik, melainkan data alphabetik ? Apakah data alphabetik juga bisa diperbandingkan mana yang lebih kecil dan mana yang lebih besar? Data alphabetik dapat dibandingkan sesuai dengan urutan nilai kode ASCIInya. Misalnya karakter "A" adalah bernilai lebih kecil dari karakter "B", karena nilai ekuivalen A untuk kode ASCII adalah 65 dan b adalah 66. Cara dan bentuk program untuk mengurutkan data alphabetik ini sama dengan data numerik, hanya nama variabelnya saja sebagai variabel string. Contoh 6 :
10 REM * SORTING MENGURUTKAN ABJAD* 15 REM * METODE BUBBLE SORT * 20 CLS 30 LOCATE 2,4:INPUT "BANYAK ABJAD YANG DIURUTKAN : ", N 35 DIM ABAJD$(N),Y$(N) 40 PRINT 50 LOCATE 4,4:PRINT "INPUT ABJAD YG AKAN DIURUTKAN : " 60 FOR I = 1 TO N STEP 1 70 LOCATE 4+I,4:PRINT" ABJAD KE ";I;" : " 80 LOCATE 4+I,22:INPUT "",ABJAD$ ( I ) 90 Y$( I ) = ABJAD$( I ) 100 NEXT I 110 PRINT 120 CLS 130 PRINT "DATA SEBELUM URUT : " 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. FOR I = 1 TO N PRINT ABJAD$( I ); NEXT I PRINT:PRINT PRINT "LANGKAH PENGURUTAN : " FOR J= 1 TO N-1 FOR I= 1 TO N-J IF ABJAD$( I ) < ABJAD$( I+1 ) THEN 151 TUKAR$=ABJAD$ ( I ) ABJAD$( I ) = ABJAD$( I+1 ) ABJAD$( X+1 ) = TUKAR$ NEXT I PRINT "LANGKAH KE : "; J;" : " FOR K=1 TO N PRINT ABJAD$(K); NEXT K PRINT NEXT J PRINT:PRINT"SETELAH URUT : " PRINT"DATA","URUT KECIL","URUT BESAR" FOR I= 1 TO N PRINT Y$( I ),ABJAD$( I ),ABJAD$( N+1-I) NEXT I END

Untuk nomor baris 172, 173, dan 174 dapat diganti lebih singkat dengan menggunakan sebuah statemen SWAP, sebagai berikut : 173 SWAP ABJAD$( I ),ABJAD$( I+1 )

Metode Straight Selection


Metode ini sebenarnya kebalikan dari metode bubble sort. Metode seleksi langsung ini akan memilih nilai yang terkecil dan meletakkannya di urutan terkemuka. Nilai-nilai terkecil berikutnya akan diseleksi dan diletakkan diurutan setelah nilai terkecil pertama, kedua, dan seterusnya sampai akhirnya di dapat nilai yang urut dari kecil ke besar. Program berikut akan mengambil data yang sama dengan metode Bubble sort. Dari hasil output langkah-langkah pengurutan akan tampak perbedaan proses pengurutannya.

Contoh 7 :
10 REM * SORTING MENGURUTKAN DATA * 15 REM * METODE STRAIGHT SELECTION* 20 CLS 30 LOCATE 2,4:INPUT "BANYAK BILANGAN YANG DIURUTKAN : ", N 35 DIM BIL(N),Y(N) 40 PRINT 50 LOCATE 4,4:PRINT "INPUT BILANGAN YG AKAN DIURUTKAN : " 60 FOR I = 1 TO N STEP 1 70 LOCATE 4+I,4:PRINT" BILANGAN KE ";I;" : " 80 LOCATE 4+I,22:INPUT "",BIL( I ) 90 Y( I ) = BIL( I ) 100 NEXT I 110 PRINT 120 CLS 130 PRINT "DATA SEBELUM URUT : " 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. FOR I = 1 TO N PRINT BIL( I ); NEXT I PRINT:PRINT PRINT "LANGKAH PENGURUTAN : " FOR I= 1 TO N-1 FOR J= I+1 TO N IF BIL( I ) < BIL( J ) THEN 151 TUKAR=BIL( I ) BIL( I ) = BIL( J ) BIL( J ) = TUKAR

12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.

NEXT J PRINT "LANGKAH KE : "; I ;" : " FOR K=1 TO N PRINT BIL(K); NEXT K PRINT NEXT I PRINT:PRINT"SETELAH URUT : " PRINT"DATA","URUT KECIL","URUT BESAR" FOR I= 1 TO N PRINT Y( I ),BIL( I ),BIL( N+1-I) NEXT I END

Perbedaan utama pada program dengan metode Bubble Sort tampak pada nomer baris 193, 194, 195. Pertama kali dibandingkan data pertama dengan data berikutnya dan data terkecil diletakkan pada urutan pertama. Jadi urutan pertama telah terisi oleh data terkecil, sehingga untuk proses selanjutnya urutan yang telah terisi data terkecil dari data yang dibandingkan, tidak perlu dibandingkan lagi. Pada nomer baris 195 nilai variabel Bil( I ) berisi nilai argumen I dari 1 sampai dengan N-1, sehingga untuk proses berikutnya, nilai argumen ini terus meningkat sampai N-1. 1. Latihan Latihan 1 Bacalah data-data berikut dalam bentuk deret. DATA 16, 29, 900, 81, 127, 690, 735, 1005, 89, 1765. Hitunglah jumlahnya dan cari harga rata-ratanya. Output yang diminta adalah data-data diatas yang ditulis dalam bentuk tabel. Latihan 2 Lihatlah data-data dibawah ini, kemudian buatlah program sorting dengan urutan keatas (ascending) dengan menggunakan teknik bubble sort dan straight selection sort. Bandingkan kecepatan kudeta teknik tersebut, manakah yang lebih cepat. Pembacaan data gunakan statemen READ-DATA. 77,78,2,3,6,1,34,78,45,34,67,31,65,47,38,33,12,22,77,39,10,30,20,43,17,23,98,56,74 ,86,55,65,34,87,98,31,12,43,23,65,66,90,1,3,6,7,88,66,76,12,45,45,33,33,27,37,79,4 9,38,17,57,97,35,63,64,86,34,67,89,21,65,76,87,98,45,38,78,7 6. Tugas Ada sejumlah data yang tidak urut besarnya. Buatlah program untuk mengurutkan data tersebut dengan urutan naik ("ascending") dan urutan turun ("descending"). Diminta untuk menuliskan hasilnya pada setiap langkah. Hasil akhir ditulis tersendiri. 8. Sumber Kepustakaan Edi Noersasongko, Ir.,M.Kom, Belajar Bahasa Basic Secara Mudah, Modul STMIK Dian Nuswantoro. Jogiyanto, H.M, Teori dan Aplikasi Program Komputer Bahasa Basic, Andi Offset, Yogyakarta, 1992 F. Soesianto B.Sc.E, Ir., Eko Nugroho, Ir., P. Insap Santosa, Ir., Pemrograman Basic, Andi Offset, Yogyakarta, 1992 Ekabrata Yudhistyra, Algoritma dan Pemrograman Terstruktur Dengan Microsoft Basic, Elex Media Komputindo.

Leroy Finkel and Jerarld R. Brown, Data File Programming In Basic, John Willey & Sons, Inc, New York, 1989.

PRAKTIKUM VII

1. Judul Materi / Pokok Bahasan : File Sequential (File data berurutan) 2. Tujuan Intruksional Khusus : Mahasiswa dapat membuat file, menuliskan data ke file, menutup file, menampilkan data, menambah data, koreksi dan menghapus data, serta membuat program aplikasi dengan menggunakan akses data sequential. 3. Jumlah Pertemuan : 3 kali ( 6x50 menit) 4. Pengetahuan Prasyarat : Mahasiswa harus memahami statemen Input, statemen Output. 5. Teori Dasar : Pengertian File Data Pengertian file data yang ada disini, bisa diartikan sebagai suatu sarana yang bisa digunakan untuk menyimpan pelbagai macam data, dengan memperhatikan faktor kemudahan dan keamanan dalam hal mencari kembali data yang bersangkutan. Pengertian file juga bisa disamakan dengan pengertian sebuah filling kabinet yang berfungsi untuk menyimpan berbagai macam arsip. Pengertian arsip diatas, sebenarnya lebih sesuai kalau dikatakan sebagai data yang tertulis diatas selembar kertas. Selembar kertas inilah yang disebut sebagai arsip. Berbeda dengan file program, file data semata-mata berisi data. Setiap file data terdiri atas sekumpulan record data. Dalam contoh data mahasiswa, file data berisi kumpulan record data mahasiswa dengan item-item nim, nama, dan alamat. Masingmasing item disebut field. Jadi kumpulan field membentuk record sedangkan kumpulan record membentuk sebuah file. Basic menyediakan 2 jenis file data, yaitu : 1. File data berurutan (sequential file). 2. File data acak (random access file). Mengenai perbedaan dan persamaan antara 2 file data tersebut, bisa anda ketahui sendiri setelah mendapatkan materi kedua file tersebut. Sequential File o Membuka File Data Sequential Sebelum sebuah file data digunakan, misalnya untuk menuliskan data ke dalamnya, membaca data dari dalamnya ataupun mengubah data-data tertentu; kita harus membukanya terlebih dahulu dengan pernyataan OPEN. Sintaks / Cara Penulisan : Cara I : OPEN <modus>,[#]<nomor buffer>,<spesifikasi>

o o

Untuk membuka/menggunakan file data dengan nama <spesifikasi file>. Umumnya, suatu file data kita beri pengenal/ekstensi DAT untuk membedakannya dengan file lain. <modus> : o Untuk file data berurutan (sequential data file) "I" (Input) file dibuka hanya untuk dibaca. "O" (Output) file dibuka hanya untuk ditulisi. "A" (Append) file dibuka untuk menambah record. Jadi, pada suatu pernyataan OPEN, file data berurutan hanya dapat dibuka untuk dibaca atau ditulisi saja, dan tidak dapat berfungsi untuk kedua-duanya pada saat yang bersamaan. Jika kita membuka file data berurutan yang telah berisi data dalam modus "O", maka data lama pada file tersebut akan hilang. Contoh : 100 OPEN "I", #1, "SISWA.DAT" 100 OPEN "O", #1, "SISWA.DAT" 100 OPEN "A", #1, "SISWA.DAT" Cara II OPEN <spesifikasi file> [FOR <modus>] AS [#] <nomor buffer>

Arti dan fungsi dari <spesifikasi file>,<nomor buffer> dan < panjang record> sama seperti diterangkan diatas. Contoh: 100 OPEN "SISWA.DAT" FOR OUTPUT AS # 1 100 OPEN "SISWA.DAT" FOR INPUT AS # 1 100 OPEN "SISWA.DAT" FOR APPEND AS # 1

Menutup File Data File data yang telah dibuka dan digunakan harus ditutup kembali, jika tidak digunakan lagi. Untuk keperluan ini digunakan pernyataan CLOSE. Sintaks : CLOSE [[#]<nomor buffer-1>[,[#]<nomor buffer-2>,]]

o o

Menutup suatu nomor buffer dan memindahkan isi buffer ersebut ke dalam disket. <nomor buffer> sesuai dengan nomor file data yang akan ditutup.

Contoh: 500 CLOSE #1,#2 o Untuk menutup seluruh file data yang telah dibuka, cukup digunakan pernyataan CLOSE tanpa nomor-nomor buffernya. Contoh: 500 CLOSE o Menulis/Merekam Data Setelah file data berurutan ini dibuka, kita dapat, kita dapat menulis data ke dalamnya dengan pernyataan PRINT # atau WRITE # Cara I : Sintaks : PRINT #<nomor buffer>, [USING<format string>;]<variabel1>[<,/;><variabel-2>..] o o Sama seperti ketentuan pada pernyataan PRINT biasa, namun penulisan dilakukan ke dalam disket. Bentuk/format ini digunakan jika berhubungan dengan high level language lainnya, misalnya Pascal, Fortran, Cobol dan paket program misalnya Dbase-II/III. Cara II : Sintaks : WRITE # <nomor buffer>,<variabel-1>[,<variabel-2>..] o Berbeda dengan pernyataan PRINT #, pernyataan WRITE # secara otomatis memasukkan tanda koma (,) diantara item-item yang ditulis ke dalam disket sebagai tanda pemisah, serta mengapit semua item berupa string dengan tanda kutip. Bentuk atau format ini dikenal sebagai Comma Separated Value with double quotes (" ") delimiter. Bentuk format ini digunakan jika berhubungan dengan paket program lain, misalnya WordStar, Supercald, Lotus 123, maupun Dbase II/III. Pada kedua pernyataan PRINT# dan WRITE# diatas, <nomor buffer> adalah nomor buffer dari file data yang telah dibuka sebelumnya dan akan ditulis dengan data. Membaca Data Setelah file data dibuka, data-data didalamanya dapat kita baca dengan menggunakan pernyataan INPUT # Sintaks : INPUT #<nomor buffer>,<variabel-1>[,<variabel-2>.] o o <Nomor buffer> adalah nomor file yang telah dibuka dan akan dibaca isinya. <Var-1>,<var-2>, adalah variabel-variabel yang akan menampung data-data yang dibaca dari file data. Jenis Variabel yang digunakan harus sesuai dengan jenis data yang dibaca. Basic menyediakan cara untuk memberitahukan kepada kita apakah record terakhir telah dibaca, atau dengan kata lain akhir file telah

o o

dicapai. Fungsi yang digunakan untuk maksud ini adalah fungsi EOF (End Of File). Sintaks : EOF (<nomor buffer>) o o Untuk menguji apakah kondisi akhir file telah dicapai. Fungsi ini memberikan nilai 1(benar) jika telah dicapai akhir sebuah file data berurutan dan memberikan nilai 0 (salah) jika akhir file data belum dicapai.

1. Contoh : Contoh 1 (Isi Data Baru) Buatlah program untuk membuat file data sequential yang bernama SISWA.DAT, dimana file data tersebut tiap recordnya terdiri dari field NIM, Nama Siswa, Nilai Siswa.
10 *** PROGRAM ISI DATA *** 15 OPEN "O", #1, "SISWA.DAT" 20 CLS 30 INPUT "Nomor Induk Mahasiswa : ",NIM$ 40 INPUT "Nama Mahasiswa : ",NAMA$ 50 INPUT "Nilai Mahasiswa : ",NILAI 60 WRITE #1, NIM$, NAMA$, NILAI 70 INPUT " ISI DATA LAGI [Y/T] : " 80 JAWAB$=INPUT$(1) : PRINT JAWAB$ 90 IF JAWAB$="Y" OR JAWAB$="y" THEN GOTO 20 100 CLOSE #1 110 END

Contoh 2 (Cetak Data) Buatlah program untuk membaca record-record yang sebelumnya telah kita simpan dalam file data SISWA.DAT Hal yang perlu diperhatikan dalam membaca suatu file :

1. Jenis data yang dibaca harus sama dengan jenis variabel yang digunakan untuk membacanya. 2. Jumlah data yang dibaca tidak boleh melebihi jumlah data yang ada.
10 *** PROGRAM CETAK DATA *** 15 CLS

20 OPEN "I", #1, "SISWA.DAT" 30 WHILE NOT EOF(1) 1. 1. INPUT #1, NIM$, NAMA$, NILAI PRINT NIM$, NAMA$, NILAI 60 WEND 70 CLOSE #1 80 END atau 10 *** PROGRAM CETAK DATA *** 15 CLS 20 OPEN "I", #1, "SISWA.DAT" 30 IF EOF(1) THEN CLOSE #1 : END 40 INPUT #1, NIM$, NAMA$, NILAI 1. PRINT NIM$, NAMA$, NILAI 60 GOTO 30

Contoh 3 (Tambah Data) Penambahan record baru ke dalam file data berurutan yang telah berisi record dapat dilakukan dengan mudah, yaitu dengan menggunakan modus APPEND, sebagai berikut :
10 ******* PROGRAM TAMBAH DATA ******** 15 OPEN "A", #1, "SISWA.DAT" 20 CLS 30 INPUT "Nomor Induk Mahasiswa : ",NIM$ 40 INPUT "Nama Mahasiswa : ",NAMA$ 50 INPUT "Nilai Mahasiswa : ",NILAI 60 WRITE #1, NIM$, NAMA$, NILAI 70 INPUT "TAMBAH DATA LAGI [Y/T] : 80 JAWAB$=INPUT$(1) : PRINT JAWAB$ 90 IF JAWAB$="Y" OR JAWAB$="y" THEN GOTO 20 100 CLOSE #1 110 END

Contoh 4(Koreksi Data)

Mengubah data dari record tertentu dalam file data. Hal ini terjadi, misalnya jika terdapat kesalahan dalam pengisian nilai seorang siswa, dan data tersebut ingin diperbaiki.
10 CLS 20 OPEN "I", #1, "SISWA.DAT" 30 OPEN "O", #2,"BARU.DAT" 40 INPUT "NIM YANG AKAN DIKOREKSI NILAINYA : ", NIMCARI$ 50 PRINT 60 SWITCH = 0 70 WHILE NOT EOF(1) 1. 1. 1. INPUT #1, NIM$, NAMA$, NILAI IF NIM$<>NIMCARI$ THEN GOTO 170 PRINT " NOMOR INDUK MAHASISWA : "; NIM$ 110 PRINT " NAMA MAHASISWA : "; NAMA$ 120 PRINT " NILAI MAHASISWA : "; NILAI 1. PRINT 140 INPUT " NILAI YANG BARU : ", B$ 1. 1. 1. SWITCH = 1 IF B$<> "" THEN NILAI = VAL(B$) WRITE #2, NIM$, NAMA$, NILAI 180 WEND 190 CLOSE 310 KILL"SISWA.DAT" 320 NAME "BARU.DAT" AS "SISWA.DAT" 330 IF SWITCH=0 THEN PRINT "MAAF, NIM TERSEBUT TIDAK ADA DALAM FILE!" 340 PRINT 350 PRINT "ADA KOREKSI LAGI [Y/T] : "; 360 J$=INPUT$(1):PRINT J$ 370 IF J$="y" OR J$="Y" THEN GOTO 10 380 END

Contoh 5 (Hapus Data)

Program untuk menghapuskan record tertentu dari file data berurutan ini mirip dengan program untuk mengubah data dari record tertentu yang telah dijelaskan pada pasal sebelumnya. Buat program untuk menghapus rcord mahasiswa tertentu dari file data SISWA.DAT yang telah digunakan pada pasal-pasal sebelumnya. Pada program ini NIM sebagai kunci pencarian.
10 CLS 20 OPEN "I", #1, "SISWA.DAT" 30 OPEN "O", #2,"BARU.DAT" 40 INPUT "NIM YANG AKAN DIKOREKSI NILAINYA : ", NIMCARI$ 50 PRINT 60 SWITCH = 0 70 WHILE NOT EOF(1) 1. 1. 1. INPUT #1, NIM$, NAMA$, NILAI IF NIM$<>NIMCARI$ THEN GOTO 171 PRINT " NOMOR INDUK MAHASISWA : "; NIM$ 110 PRINT " NAMA MAHASISWA : "; NAMA$ 120 PRINT " NILAI MAHASISWA : "; NILAI 1. PRINT 140 SWITCH = 1 1. 2. 1. 2. 1. PRINT "INGIN DIHAPUS DARI FILE [Y/T] : "; JAWAB$=INPUT$(1) : PRINT JAWAB$ IF JAWAB$<> "Y" OR JAWAB$<>"y" THEN GOTO 171 GOTO 180 WRITE #2, NIM$, NAMA$, NILAI 180 WEND 190 CLOSE 310 KILL"SISWA.DAT" 320 NAME "BARU.DAT" AS "SISWA.DAT" 330 IF SWITCH<>1 THEN PRINT "MAAF, NIM TERSEBUT TIDAK ADA DALAM FILE!" 340 PRINT 350 PRINT "ADA RECORD YANG AKAN DIHAPUS LAGI [Y/T] : "; 360 J$=INPUT$(1):PRINT J$ 370 IF J$="y" OR J$="Y" THEN GOTO 10 380 END

1. Latihan : Buatlah program untuk membuat file data "PEGAWAI.DAT" yang meliputi (Isi, Tambah, Cetak, Koreksi dan Hapus Data ) dimana tiap recordnya terdiri dari 4 field , yaitu : NIP (string) Nama Pegawai (String) Alamat (String) Gaji Pokok (String)

1. Tugas : Latihan diatas anda perbaiki lagi dengan tampilan yang lebih baik yaitu menggunakan lokasi /locate pencetakan dan penginputan, pemberian warna baik Background, maupun Foreground. Dan disertai Validasi penginputan. Validasi penginputan : NIP tidak boleh kembar dan harus 4 digit Nama pegawai maximal 20 digit Alamat Pegawai maximal 25 digit Gaji Pokok maximal 6 digit

1. Sumber Kepustakaan Edi Noersasongko, Ir.,M.Kom, Belajar Bahasa Basic Secara Mudah, Modul STMIK Dian Nuswantoro. Jogiyanto, H.M, Teori dan Aplikasi Program Komputer Bahasa Basic, Andi Offset, Yogyakarta, 1992 F. Soesianto B.Sc.E, Ir., Eko Nugroho, Ir., P. Insap Santosa, Ir., Pemrograman Basic, Andi Offset, Yogyakarta, 1992 Ekabrata Yudhistyra, Algoritma dan Pemrograman Terstruktur Dengan Microsoft Basic, Elex Media Komputindo. Leroy Finkel and Jerarld R. Brown, Data File Programming In Basic, John Willey & Sons, Inc, New York, 1989.

Praktikum VIII
1. Judul Materi / Pokok Bahasan : File Random 2. Tujuan Instruksional Khusus : Diharapkan siswa dapat membuat file, menuliskan data ke file, menutup file, menampilkan data, menambah dan menghapus data serta membuat program aplikasi dengan menggunakan access data random. 3. Jumlah pertemuan : 3 kali pertemuan ( 6x50 menit ) 4. Pengetahuan Prasyarat : Mahasiswa harus memahami perintah5. Teori Dasar Pengertian Random File sangat berbeda dengan pengertian Sequential File dimana pada Random File disini tiap item data dapat dibaca langsung atau dituliskan secara langsung, tanpa memproses secara berurutan sepanjang file data dari permulaan. Karenanya dapat lebih cepat untuk mentransfer data dari atau ke data random. Perbedaanya dalam setiap penggunaan file random diperlukan penentuan panjang setiap field dari setiap record sehinga dapat diketahui panjang tiap record.

Adapun beberapa kelebihan yang dimiliki oleh random file adalah: Cara kerja pengelolaan file dengan cara random lebih cepat karena bekerja berdasar nomor record. Nomor record merupakan bilangan bulat yang bisa digunakan untuk memanggil seluruh isi record yang ada. Kemudahan didalam memberikan perintah untuk membuka file. Suatu data dapat dibaca secara langsung tanpa harus melalui pembacaan data dari awal OPEN Sebelum dapat menulis atau membaca ke File Random kita harus membuka file tersebut dengan pernyataan open. Sama dengan file sequential . Syntaks/ Cara penulisan: OPEN "R", #[nomor buffer],"[nama file],panjang record Contoh : OPEN "R",#1,"NILAI.DAT",33 Atau OPEN "[nama file] AS #[nomor buffer] len=[panjang record] R= Random : Random file selalu dibuka dalam modus "R" ,baik file akan dibaca maupun ditulis. Dikarenakan metode random dapat dibaca maupun ditulis pada saat yang sama Nomor Buffer : Adalah nomor buffer memory atau tempat penampungan sementara nilai suatu data pada memory komputer Panjang Record : Adalah panjang record pada file random Contoh : OPEN "NILAI.DAT" AS #1 len =33 Pernyataan diatas membuka file data "NILAI.DAT" sebagai file data acak Memberi nomor #1 untuk meletakan petunjuk record Menentukan panjang setiap record pada file "NILAI.DAT " adalah 33 Langkah setelah file data acak dibuka adalah menentukan panjang setiap field dari record tersebut

Field

Field statement merupakan cara untuk menyiapkan nama field beserta panjang tiaptiap field di dalam buffer memory dan untuk mnentukan panjang record Syntaks /Cara Penulisan Field #[nomor buffer], Panjang Field 1 AS Var. Field 1, Untuk megalokasikan sejumlah tempat bagi variabel field atau dengan kata lain membagi buffer dengan nama dan panjang tertentu. Pernyataan ini dilaksanakan sebelum perintah GET untuk membaca PUT untuk menulis. Nomor buffer adalah nomer buffer yang dibuka pada penyataan OPEN Panjang Field 1 adalah bilangan bulat yang menunjukan lebar tempat dari variabel field 1. Var. Field 1 adalah variabel string baik untuk data numerik maupun data non numerik. Nama variabel harus unik, bahwa tiap variabel field yang digunakan harus memiliki nama yang berbeda. Jumlah panjang dari keseluruhan field tidak boleh melebihi dari panjang record maksimum yang sudah ditentukan pada pernyataan OPEN yang sudah ditentukan Contoh: FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$

1 6 7 31 31 - 33 Field Ke 1 Field Ke 2 Field Ke 3 Panjang 6 Karakter Panjang 25 Karakter Panjang 2 Karakter LSET dan RSET Untuk menyimpan data data kedalam variabeal field digunakan perintah LSET atau RSET LSET untuk menyimpan data rapat kekiri RSET untuk menyimpan data rapat kekanan Syntaks /Cara Penulisan LSET [ekspresi] RSET [ekspresi] Contoh : LSET F.NRP$ = "00.996"" RSET F.NAMA$="DENNY" Pada random file pembacaan data dan penulisan data ke dalam file harus melalui variabel field dimana merupakan string variabel. Sehingga diperlukan statement LSET atau RSET.

Untuk keperluan penulisan data numerik ke dalam data field dimana variabel field selalu string. Maka diperlukan fungsi untuk mengkonversikan dari data numerik ke data string. MKI$ MKS$ MKD$ Contoh : LSET F.NRP$ = MKI$(NILAI) Untuk penulisan data dari dalam buffer ke dalam file random digunakan perintah PUT PUT Statement PUT berfungsi menuliskan / memindahkan sebuah record dari buffer ke dalam file random Syntaks/Cara Penulisan PUT #[nomor buffer],[nomor record] Nomor buffer adalah nomer buffer yang dibuka pada penyataan OPEN Nomor record adalah nomor urut tempat data akan disimpan pada file data random Contoh : PUT #1, 5 Contoh Program Input Data (File Random) :
10 ************* Menulis Data ***************** 20 *********************************************** 30 OPEN "NILAI.DAT" AS #1 LEN=33 40 FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$ 50 CLS 60 JUMREC=LOF(1)/33 70 REC=JUMREC+1 80 INPUT "NOMOR INDUK :" ,NRP$ 90 INPUT "N A M A :" ,NAMA$ 100 INPUT "N I L A I :" ,NILAI 110 LSET F.NRP$ = NRP$ 120 LSET F.NAMA$ = NAMA$

mengubah bilangan bulat menjadi string yang panjangnya 2 byte mengubah bilangan bulat menjadi string yang panjangnya 4 byte mengubah bilangan bulat menjadi string yang panjangnya 8 byte

130 LSET F.NILAI$ = MKI$(NILAI) 140 PUT #1,REC 150 INPUT "ISI DATA LAGI :" YT$ 160 IF YT$="Y" OR YT$="y" THEN GOTO 50 170 CLOSE #1 160 END

LOF Pada contoh diatas pada baris 60 digunakan perintah LOF untuk menentukan panjang record (dalam byte) yang ada pada file NILAI.DAT. LOF adalah fungsi untuk menentukan pajang suatu file random. Jika panjang file random tersebut dibagi dengan panjang record akan diketahui jumlah record yang ada. Misal pada file NILAI.DAT mempunyai 10 record danpanjang setiap record adalah 33. Maka fungsi LOF(1) akan memberikan nilai 330 byte. Dengan hasil seperti itu maka fungsi LOF dapat digunakan untuk mengetahui jumlah record pada file NILAI.DAT dengan jalan membaginya dengan panjang record yang sudah ditentukan pada statement OPEN Syntax/cara penulisan LOF (NOMOR BUFFER) Contoh JUMREC=LOF(1)/33 Nilai dari variabel JUMREC adalah panjang dari file NILA.DAT. Jika kemudian dibagi dengan panjang record file NILAI.DAT dari contoh panjang record adalah 33. Maka akan diadapat total keseluruhan record yang ada pada file NILAI.DAT

CLOSE Syntax/Cara penulisan Close # [nomer buffer] Untuk Penulisan Close tidak ada perbedaan dengan penulisan close pada file sequential.

Algoritma pembentukan file

Open File , sebutkan nama file dan nomer buffer yang digunakan (Open Statement) Field, Alokasikan tempat didalam random buffer dengan menyebut nomor buffer dan panjang setiap field yang digunakan. Jumrec, Mencari jumlah record dengan cara membagi panjang file (LOF) dengan panjang record. REC=JUMREC+1 Input, memasukan data dari keyboard LSET atau RSET untuk meletakan data kedalam buffer memori sertakan juga fungsi konversi jika diperlukan. PUT, Tulis atau rekam data ke dalam disk file. Pembacaan File Random Untuk pembacaan file random digunakan perintah GET. Fungsinya untuk memindahkan sebuah record dari file data ke buffer memory. Syntaks/Cara penulisan GET #[Nomor Buffer],[Nomor Record]

Nomor buffer adalah nomer buffer yang dibuka pada penyataan OPEN Nomor record adalah nomor urut tempat data akan disimpan pada file data random Contoh GET #1,5 Pada pembacaan data tentu perlu mengubah dari data string ke dalam data numerik seperti halnya waktu penulisan data ke dalam buffer. Kemudian untuk menkonversikan data dari data string ke dalam data numerik. CVI mengubah data string menjadi bilangan bulat yang panjangnya 2 byte mengubah data string menjadi bilangan bulat yang panjangnya 4 byte mengubah data string menjadi bilangan bulat yang panjangnya 8 byte

CVS

CVD

Contoh 1:
10 ************* Membaca Data ***************** 20 *********************************************** 30 OPEN "NILAI.DAT" AS #1 LEN=33 40 FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$ 50 JUMLAH=LOF(1)/33 60 FOR REC= 1 TO JUMLAH 70 GET #1,REC 80 NRP$ = F.NRP$

100 NAMA$ = F.NAMA$ 110. NILAI = CVI(F.NILAI$) 120 PRINT USING "\ \ \ \ ####### ";NRP$,NAMA$,NILAI 130 NEXT 140 CLOSE #1

Contoh 2 :
10 ************* Membaca Data ***************** 20 ************ Satu Per Satu ***************** 30 OPEN "NILAI.DAT" AS #1 LEN=33 40 FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$ 50 JUMLAH=LOF(1)/33 60 INPUT "MASUKAN RECORD DATA : ",rec 70 GET #1,REC 80 NRP$ = F.NRP$ 100 NAMA$ = F.NAMA$ 111. NILAI = CVI(F.NILAI$) 120 PRINT USING "\ \ \ \ ####### ";NRP$,NAMA$,NILAI 130 INPUT "ISI DATA LAGI :" YT$ 140 IF YT$="Y" OR YT$="y" THEN GOTO 60 150 CLOSE #1 160 END

Contoh 3 Program Koreksi (File Random) :


10 ************* KOREKSI DATA***************** 20 ************ ************************************* 30 OPEN "NILAI.DAT" AS #1 LEN=33 40 FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$ 50 JUMLAH=LOF(1)/33 60 INPUT "Masukan nomor induk yang akan dikoreksi: ",M.CARI$

70 FOR REC=1 TO JUMLAH 80. GET #1,REC

90 M.NRP$=F.NRP$ 100 M.NAMA$=F.NAMA$ 110 M.NILAI=CVI(F.NILA$) 100 IF M.NRP$=M.CARI$ THEN GOTO 140

110 NEXT REC 120 PRINT "DATA TIDAK ADA" 130 GOTO 60

140 PRINT "NOMOR INDUK :" ,NOMOR$ 150 PRINT "N A M A :" ,M.NAMA$

160 PRINT "N I L A I :" ,M.NILAI 170 INPUT "DATA INI INGIN DIKOREKSI ",Y$ 180 IF Y$="Y" OR Y$="y" THEN GOTO 200 190 IF Y$="T" OR Y$="t" THEN GOTO 60

200 INPUT "N A M A :" ,M.NAMA$ 210 INPUT "NILAI I :" ,M.NILAI

220 INPUT "DATA SUDAH BETUL ",Y$ 230 IF Y$="Y" OR Y$="y" THEN GOTO 200

240 IF Y$="T" OR Y$="t" THEN GOTO 250 250 LSET F.NRP$ = M.NRP$ 260 LSET F.NAMA$ = M.NAMA$

270 LSET F.NILAI$ = MKI$(M.NILAI) 280 PUT #1,REC 290 INPUT "KOREKSI DATA LAGI ",Y$ 300 IF Y$="Y" OR Y$="y" THEN GOTO 60 310 IF Y$="T" OR Y$="t" THEN CLOSE #1 320 END

Algoritma Program Koreksi 1. Buka file data nilai.dat 2. Tentukan panjang field untuk file nilai.dat

3. Masukan data nomor registasi yang akan dikoreksi dengan variabel MNRP$ 4. Baca data dari file NILAI.DAT . Gunakan statement perulangan untuk pembacaan data tersebut. Validasikan nomor$=M.NRP$, Jika data variabel F.NRP$ sama dengan data variabel MNRP$, keluar dari proses perulangan ke no. 5. Jika data tidak ketemu kembali ke no. 3 5. Tampilkan data mahasiswa 6. Edit data yang akan di koreksi 7. Jika data selesai di koreksi simpan data kembali ke dalam file Nilai.dat Contoh Program Hapus Data
10 ************* HAPUS DATA ***************** 20 ************ ************************************* 25 SW=0 30 OPEN "NILAI.DAT" AS #1 LEN=33 40 FIELD #1, 6 AS F.NRP$, 25 AS F.NAMA$, 2 AS F.NILAI$ 50 JUMLAH=LOF(1)/33 60 OPEN "BARU.DAT" AS #2 LEN=33 70 FIELD #2, 6 AS F.NRP2$, 25 AS F.NAMA2$, 2 AS F.NILA2I$ 80 JUMLAH2=LOF(2)/33 90 INPUT "Masukan nomor induk yang akan dihapus: ",NRPCARI$ 100

FOR REC=1 TO JUMLAH 110 GET #1,REC 120 M.NRP$=F.NRP$ 130 M.NAMA$=F.NAMA$ 140 M.NILAI=CVI(F.NILA$) 150 IF NOMOR$=NRPCARI$ THEN SW=1:GOTO 250 160. LSET F.NRP2$=M.NRP$ 170 LSET F.NAMA2$=M.NAMA$ 180. LSET F.NILAI2$=MKI$(M.NILAI) 190 RECBARU=RECBARU+1 200 PUT #2,RECBARU

210 NEXT REC 215 IF SW=0 THEN PRINT " DATA TIDAK DITEMUKAN " 220 GOTO 310 230 ******SUB RUTIN CETAK

240 PRINT "NOMOR INDUK :" ,NOMOR$ 250 PRINT "N A M A :" ,M.NAMA$

260 PRINT "N I L A I :" ,M.NILAI 270 INPUT "DATA INI INGIN DIHAPUS ",Y$ 280 IF Y$="Y" OR Y$="y" THEN GOTO 210 290 IF Y$="T" OR Y$="t" THEN GOTO 160 300**************************************** 310***************PENGUBAHAN FILE

320 CLOSE #1,#2 330 KILL"NILAI.DAT"

330 NAME "BARU.DAT" AS "NILAI.DAT" 340 END

1. Latihan

Buatlah program untuk membuat file data "PEGAWAI.DAT" yang meliputi (Isi, Tambah, Cetak, Koreksi dan Hapus Data ) dimana tiap recordnya terdiri dari 4 field , yaitu :
KETERANGAN NomerInduk Pegawai Nama Pegawai Alamat Pegawai Gaji Pokok Type String Panjang 6

String String

20 25

Numerik

Latihan diatas anda perbaiki lagi dengan tampilan yang lebih baik yaitu menggunakan lokasi /locate pencetakan dan penginputan, pemberian warna baik Background, maupun Foreground. Dan disertai Validasi penginputan. Validasi penginputan : NIP tidak boleh kembar dan harus 4 digit Nama pegawai maximal 20 digit Alamat Pegawai maximal 25 digit o Gaji Pokok maximal 8 digit

7. Tugas Dengan tehnik random file buatlah program untuk INPUT, KOREKSI,HAPUS,LAPORAN dengan item sebagai berikut. KETERANGAN
NOMOR INDUK PEGAWAI NAMA PEGAWAI ALAMAT PEGAWAI KOTA TANGGAL MASUK STATUS

JENIS
STRING

BYTE
3

FIELD VARIABEL
XNOMOR$

MEMORI VARIABEL
MNOMO$

STRING STRING STRING STRING STRING 1. 2. KAWIN BELUM KAWIN

20 20 20 10 1

XNAMA$ XALAMAT$ XKOTA$ XTGL$ XSTS$

MNAMA$ MALAMAT$ MKOTA$ MTGL$ MSTS$

PENDIDIKAN

STRING 1. 2. 3. 4. 5. SD SMP SMA DIII S1

XDIDIK$

MDIDIK$

BAGIAN

STRING 1-PENDIDIKAN 2-KEUANGAN 3-KESISWAAN 4-ADMINISTRASI

XBAGIAN$

MBAGIAN$

JABATAN

STRING 1-DIREKTUR 2-WAKIL DIR. 3-K.BAGIAN 4- KARYAWAN

XJABAT$

MJABAT$

GAJI POKOK TUNJANGAN JABATAN LEMBUR

NUMERIK NUMERIK NUMERIK

8 8 8

XGAPOK$ XTUNJAB$ XLEMBUR$

MGAPOK MTUNJAB MLEMBUR

Layout INPUT,KOREKSI,HAPUS.
PT. RANDOM Tanggal :

Jl. Tampomas Utara Record Ke : INPUT DATA KARYAWAN [1]. Nomor : [7].Pendidikan : [ keterangan ] [2]. Nama Karyawan : [8].Bagian : [ keterangan ] [3]. Alamat : [9]. Jabatan : [ keterangan ] [4]. Kota : [10]. Gaji Pokok : [5]. Tgl.Lahir : - - [11]. Tunjangan : [6]. Status : [ keterangan ] [12]. Lembur/Jam :

Input Data Lagi Y / T : [ ]

Keterangan : Nomor karyawan Harus diisi tidak boleh kosong

Untuk nomor karyawan harus di isi 3 digit Tidak boleh ada nomor yang sama atau kembar Nama karyawan,Alamat,Kota Tidak boleh kososng Maximal 20 digit Tanggal lahir Tidak boleh kosong Di isi dengan format dd-mm-yyyy Status Di isi dengan angaka 1 atau angka 2 selain itu di tolak Keterangan ditampilkan disebelahnya Pendidikan Di isi dengan angaka 1 sampai dengan angka 5 selain itu di tolak Keterangan ditampilkan disebelahnya Bagian Di isi dengan angaka 1 sampai dengan angka 4 selain itu di tolak Keterangan ditampilkan disebelahnya Jabatan Di isi dengan angaka 1 sampai dengan angka 4 selain itu di tolak Keterangan ditampilkan disebelahnya Gaji pokok Harus di isi maximal 8 digit Tunjangan Harus di isi maximal 8 digit Lembur Harus di isi maximal 8 digit

Untuk Koreksi Nomor karyawan tidak boleh dikoreksi Koreksi no. 2 sampai dengan no.12

Untuk Layout Laporan Semua field ditampilkan Laporan dibuat dengan konsep pindah halaman,tiap halaman terdiri dari 10 record

Tiap halaman terdapat judul dan petunjuk halaman bertambah.

8. Sumber Kepustakaan Edi Noersasongko, Ir.,M.Kom, Belajar Bahasa Basic Secara Mudah, Modul STMIK Dian Nuswantoro. Jogiyanto, H.M, Teori dan Aplikasi Program Komputer Bahasa Basic, Andi Offset, Yogyakarta, 1992 F. Soesianto B.Sc.E, Ir., Eko Nugroho, Ir., P. Insap Santosa, Ir., Pemrograman Basic, Andi Offset, Yogyakarta, 1992 Ekabrata Yudhistyra, Algoritma dan Pemrograman Terstruktur Dengan Microsoft Basic, Elex Media Komputindo. Leroy Finkel and Jerarld R. Brown, Data File Programming In Basic, John Willey & Sons, Inc, New York, 1989.

Anda mungkin juga menyukai