Daftar Isi 1 Praktikum #1 - Membuat berkas basis data (.dbf ) 1.1 Program yang dibutuhkan . . . . . . . . . . . . . . . . . . . . . 1.2 Langkah-Langkah Pekerjaan . . . . . . . . . . . . . . . . . . . .
1 1 1
2 Praktikum #2 - Perintah Dot Command 2.1 Program yang dibutuhkan . . . . . . . . . . . . . . . . . . . . . 2.2 Masalah yang dipecahkan . . . . . . . . . . . . . . . . . . . . .
4 4 4
3 Praktikum #3 - Membuat Program 3.1 Program yang dibutuhkan . . . . . 3.2 Langkah-Langkah Pekerjaan . . . . 3.3 Materi tambahan . . . . . . . . . .
6 6 6 8
Clipper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Praktikum #4 - Membuat Program Pemasukan Data 9 4.1 Program yang dibutuhkan . . . . . . . . . . . . . . . . . . . . . 9 4.2 Materi #1 - Menghitung Selisih Hari . . . . . . . . . . . . . . . 9 4.3 Materi Tambahan - Menghitung Umur . . . . . . . . . . . . . . 10 5 Praktikum #5 - Membuat Program Pemasukan Data ke Basis Data 5.1 Pemasukan Data Siswa ke IPA2002.DBF . . . . . . . . . . . . . 5.2 Proses Executeable File . . . . . . . . . . . . . . . . . . . . . . . 5.3 Materi tambahan #1 . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Materi tambahan #2 . . . . . . . . . . . . . . . . . . . . . . . .
12 12 15 16 16
6 Praktikum #6 - Membuat Program Penghapusan Data 17 6.1 Penghapusan Data Siswa ke IPA2002.DBF . . . . . . . . . . . . 17 6.2 Materi tambahan . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7 Praktikum #7 - Membuat Menu 21 7.1 Program dan Berkas yang dibutuhkan . . . . . . . . . . . . . . . 21 8 Praktikum #8 - Pemrosesan Data 22 8.1 Program yang dibutuhkan . . . . . . . . . . . . . . . . . . . . . 22 8.2 Langkah-Langkah Pekerjaan . . . . . . . . . . . . . . . . . . . . 22 9 Praktikum #9 - Mencetak Report 24 9.1 Bahan tambahan yang dibutuhkan . . . . . . . . . . . . . . . . 24 9.2 Program Mencetak Laporan . . . . . . . . . . . . . . . . . . . . 24
i
Daftar Tabel 1 2 3
Atribut Tabel IPA2002.DBF . . . . . . . . . . . . . . . . . . . . Atribut Tabel PS.DBF . . . . . . . . . . . . . . . . . . . . . . . Atribut Tabel SLTA.DBF . . . . . . . . . . . . . . . . . . . . .
2 3 3
Daftar Gambar 1
Contoh Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
8
1
Praktikum #1 - Membuat berkas basis data (.dbf )
Praktikum #1 berisi materi tentang basis data dengan menggunakan xBase. Untuk melaksanakan materi ini mahasiswa sudah mendapat bahan kuliah tentang manajemen basis data dalam xBase khususnya tentang perintah-perintah dot command atau dot prompt.
1.1
Program yang dibutuhkan
Program yang dibutuhkan dalam praktikum ini tergantung sistem operasi yang digunakan. Jika sistem operasi menggunakan Windows XP maka program yang bisa digunakan adalah dBase III+. Jika menggunakan GNU Linux dengan DOS Emulator, maka bisa digunakan program FoxBase ataupun dBase III+. Program-program tersebut harus sudah ada di dalam sistem komputer dan mahasiswa mesti tahu persis, di mana letak program-program tersebut.
1.2
Langkah-Langkah Pekerjaan
Urut-urutan perintah yang dilakukan dalam pelaksanaan praktikum kali ini adalah sebagai berikut : 1. Jalankan program dBase III+ atau FoxBase. Cara menjalankan program ini berbeda-beda tergantung di mana meletakkan program dBase atau FoxBase. Untuk contoh perhatikan perintah berikut. Untuk menjalankan dBase, posisi direktori aktif harus berapa pada direktori dBase, jadi pindah direktori dulu, baru kemudian menjalankan dBase. cd dbase [enter] - pindah ke direktori dbase dbase.exe [enter] - menjalankan program dbase Press the F1 key for HELP. Type a command (or ASSIST) and press the ENTER key (?-+).
Kemudian dari posisi seperti ini, supaya lebih jelas tampilannya, berikan perintah : set status on . Command Line
Enter a dBASE III PLUS command.
1
Untuk penggunaan FoxBase caranya hampir sama, hanya mungkin berbeda direktori. Misalnya : cd ca-52\bin mfoxplus.exe
- pindah direktori tempat FoxBase - menjalankan program FoxBase
Kemudian berikan perintah set status on juga. 2. Membuat berkas basis data (.dbf). Setelah program DBMS (dBase III+ atau FoxBase siap digunakan, selanjutnya adalah membuat basis data (.dbf) dengan perintah create IPA2002 . Isi dari berkas basis data IPA2002.dbf seperti berikut : Setelah semua field dibuat dan ditentukan tipe serta ukurannya, keField 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Field Name NO PKAB RESI PILIHAN 1 PILIHAN 2 NAMA SISWA NO INDUK JURUSAN KODE SMA NAMA SMA KELAMIN INA 1 INGG 1 KIM 1 MAT 1 FIS 1
Type Width Dec Character 5 Character 1 Character 6 Character 6 Character 30 Character 10 Character 1 Character 8 Character 35 Character 1 Numeric 4 1 Numeric 4 1 Numeric 4 1 Numeric 4 1 Numeric 4 1
Tabel 1: Atribut Tabel IPA2002.DBF mudian tekan tombol Ctrl-End untuk merekam dan selesai dari proses pembuatan satu basis data. Jika ada pertanyaan, ”Apakah akan memasukkan data sekarang?”, jawab dengan menekan tombol ’N’ yang artinya tidak akan memasukkan data. Selain itu, dibuat juga berkas basis data PS.DBF. Dari posisi dot prompt ketikkan perintah create PS . Sedangkan struktur basis data PS seperti berikut : Kemudian juga berkas SLTA.DBF untuk menyimpan data-data nama sekolah SMA. Untuk melakukan ini perintahnya adalah create slta 2
Field Field Name 1 KODE 2 KETERANGAN
Type Width Dec Character 6 Character 37
Tabel 2: Atribut Tabel PS.DBF Field 1 2 3 5 6
Field Name KODE SMA NEGE SMA NAMA SMA JALAN KOTA
Type Width Dec Character 8 Character 1 Character 35 Character 35 Character 25
Tabel 3: Atribut Tabel SLTA.DBF
3. Isi masing-masing tabel dengan data-data paling tidak 5 record untuk masing-masing tabel. Untuk mengisi data SMA (misalnya), perintahnya adalah : use SMA append use PS append
- membuka file database SMA.DBF - menambah data
Semakin banyak data yang diisikan, maka akan semakin baik.
3
2
Praktikum #2 - Perintah Dot Command
Pada praktikum ini, mahasiswa diarahkan untuk memahami perintah-perintah dalam DBMS. Perintah-perintah ini mirip dengan fungsi perintah-perintah SQL di dalam basis data modern seperti MySQL, Oracle, MS SQL Server dan sebagainya.
2.1
Program yang dibutuhkan
Program yang dibutuhkan sama dengan kebutuhan pada Praktikum #1. Selain itu ditambah juga dengan basis data yang sudah dibuat pada Praktikum #1. Akan lebih baik lagi, jika data yang tersedia sudah banyak, misalnya minimal 20 data untuk masing-masing basis data. Untuk contoh basis data yang banyak, data IPA2002 bisa diunduh di www.dwijim.wordpress.com (mudahmudahan).
2.2
Masalah yang dipecahkan
Jawablah pertanyaan-pertanyaan berikut dan jawabannya dilakukan dengan perintah-perintah dot command, bukan dengan menjawab secara manual. Catatan : jika nama basis data berubah, maka harus diawali dengan perintah use. Misal : use IPA2002 1. Berapa jumlah data yang ada pada basis data IPA2002 ? count to jumlah data 2. Siapa yang ada pada data ke-5 dari basis data IPA2002 ? go 5 - edit 3. Tampilkan semua nama siswa yang ada list nama siswa 4. Menampilkan siswa-siswa yang berjenis kelamin perempuan ? list nama siswa where kelamin=0 5. Menampilkan siswa-siswa yang namanya diawali dengan huruf ’A’ list nama siswa where left(nama siswa,1)=’A’ 6. Menampilkan siswa-siswa yang namanya mengandung kata ’WATI’ list nama siswa where ’WATI’$upper(nama siswa) 7. Menampilkan siswa-siswa yang namanya diakhiri kata ’WAHYUNI’ list nama siswa where right(rtrim(nama siswa),7)=’WAHYUNI’
4
8. Merubah nama siswa menjadi ’Dwi Sakethi’ untuk peserta dengan No. PKAB-nya 101010 replace nama siswa with ’Dwi Sakethi’ where no pkab=’101010’ No. PKAB harus disesuaikan dengan data yang ada, jika data tidak ada yang sesuai maka tidak akan ada data yang diganti. 9. Menghapus data dengan nomor record 2-4 detele for recno()>=2 .and. recno()<=4 10. Tampilkan semua data yang ada dalam format seperti Excell browse 11. Tampilkan semua data yang ada dalam format seperti Excell untuk field nama siswa dan nama sekolah. browse field nama siswa, nama sma 12. Tampilkan nama siswa berurutan dari A-Z. index on nama siswa to nama browse field nama siswa, nama sma 13. Mencari apakah ada siswa dengan nomor PKAB ’1106’ index on NO PKAB to ipa2002 seek ’1106’ ? found() Jika hasilnya .t. maka bisa dilanjutkan dengan perintah edit untuk melihat data siswa tersebut. Jika ternyata pencarian adalah .f. maka berarti tidak ada siswa dengan nomor ’1106’. 14. Siapakah siswa yang mempunyai skor tertinggi ? index on -SKOR to ipa2002 go top edit Karena isi dari SKOR kemungkinan besar masih sama semua yaitu 0, maka perintah ini tidak terlalu terlihat hasilnya. Ada baiknya jika SKOR sudah diisi.
5
3
Praktikum #3 - Membuat Program Clipper
Pada bagian ini, mahasiswa akan belajar dari menulis program, mengkompilasi dan kemudian me-linking supaya bisa menjadi program yang executeable file. Titik tekan materi ini adalah proses pembuatan executeable file. Artinya, program yang ditulis masih sederhana.
3.1
Program yang dibutuhkan
Untuk mengerjakan tugas pada praktikum ini, dibutuhkan perangkat mulai dari text editor, kemudian compiler dan linker beserta atribut tambahan seperti berkas-berkas pustaka (lib). Di sini, pemahaman tentang konsep direktori sangat diperlukan.
3.2
Langkah-Langkah Pekerjaan
Urut-urutan perintah yang dilakukan dalam pelaksanaan praktikum kali ini adalah sebagai berikut : 1. Dengan menggunakan text editor Qedit, suntinglah program berikut ini : clear @ 10,30 say "Ilmu @ 11,30 say "Komputer " @ 12,30 say "Unila" @ 13, say "Lampung" wait "tekan tombol apa saja !" return Menjalankan Qedit ada berbagai macam versi, tergantung direktori masingmasing. Perlu diingat bahwa direktori aktif (direktori kerja) sebaiknya di direktori masing-masing yang memang sudah disiapkan untuk xBase. Contoh cara menjalankan program Qedit : D:\dwijim\kuliah\clipper>ca-52\bin\q
- menjalankan program Qedit
2. Lakukan proses kompilasi dengan perintah seperti pada contoh. Perintah ini perlu dimodifikasi sesuai dengan posisi letak direktori masing-masing. Demikian juga dengan nama file yang dikompilasi. Jika terdapat kesalahan maka perbaiki error yang ada. Error yang mungkin muncul :
6
C:\dwi\clipper>\ca-52\bin\clipper test Clipper (R) Version 5.2 Copyright (c) 1985-1993, Computer Associates International, Inc. Microsoft C Floating Point Support Routines Copyright (c) Microsoft Corp 1984-1987. All Rights Reserved. 336K available Compiling TEST.PRG TEST.PRG(2) Error C2007 Unterminated string: "Ilmu" TEST.PRG(6) Error C2005 Statement not recognized, match failed at: "<end of line>" 2 errors No code generated Lakukan perbaikan sesuai dengan pesan kesalahan yang diberikan. C:\dwi\clipper>\ca-52\bin\clipper test Clipper (R) Version 5.2 Copyright (c) 1985-1993, Computer Associates International, Inc. Microsoft C Floating Point Support Routines Copyright (c) Microsoft Corp 1984-1987. All Rights Reserved. 336K available Compiling TEST.PRG Code size 144, Symbols 112, Constants 80 3. Setelah proses kompilasi sukses, lanjutkan dengan proses linking. Proses linking dilakukan dengan perintah : C:\dwi\clipper>\ca-52\bin\blinker file test 4. Proses linking yang sukses akan menghasilan file yang bisa dieksekusi executeable file. Untuk menjalankan file tersebut, cukup dengan mengetikkan nama file tersebut.
7
3.3
Materi tambahan
Jika waktu yang tersedia masih banyak, buatlah program yang menghasilkan tampilan seperti pada contoh berikut. Tampilan bisa juga digubah sesuai dengan selera atau sesuai dengan identitas masing-masing.
Gambar 1: Contoh Logo
8
4
Praktikum #4 - Membuat Program Pemasukan Data
Praktikum ke-4 ini mengajak pemakai untuk belajar membuat program untuk memasukkan data melalui keyboard. Konsep tentang jenis-jenis variabel, cara memberi harga awal kepada masing-masing jenis varibael harus sudah dikenalkan. Karena pada contoh ini, materi berhubungan dengan tanggal, maka pemberian harga awal kepada variabel bertipe tanggal harus sudah diberikan juga.
4.1
Program yang dibutuhkan
Untuk mengerjakan tugas pada praktikum ini, dibutuhkan perangkat mulai dari text editor, kemudian compiler dan linker beserta atribut tambahan seperti berkas-berkas pustaka (lib). Di sini, pemahaman tentang konsep direktori sangat diperlukan.
4.2
Materi #1 - Menghitung Selisih Hari
Buatlah program untuk menghitung lama peminjaman suatu buku. Pemasukan data paling tidak terdiri dari tanggal awal peminjaman dan tanggal pengembalian buku. Contoh program : /* -----------------------------------------------nama file : tanggal.prg program ini berfungsi untuk menghitung lama peminjaman suatu buku. lama peminjaman berupa jumlah hari ------------------------------------------------ */ set date italian * membuat tanggal format indonesia set century on * tahun dibuat menjadi 4 digit bukan 2 digit clear * menghapus layar store date() to tgl_awal,tgl_akhir nama = space(20) * memberi harga awal ke variabel @ 1,1 say ’Tgl. pinjam
: ’ 9
@ 2,1 say ’Tgl. kembali : ’ @ 3,1 say ’Nama Anda : ’ @ 1,16 get tgl_awal @ 2,16 get tgl_akhir @ 3,16 get nama read * memasukkan data tanggal lama = tgl_akhir - tgl_awal @ 3,1 say "Halo ..."+nama+" pinjam selama : "+str(lama,4,0) * variabel tanggal bisa dikurangi secara langsung @ 4,1 say dow(date()) @ 5,1 say nama_hari(dow(date())) return function nama_hari para nomor_hari do case case nomor_hari=1 namanya = ’Senin ’ case nomor_hari=2 namanya = ’Selasa’ case nomor_hari=3 namanya = ’Rabu ’ case nomor_hari=4 namanya = ’Kamis ’ case nomor_hari=5 namanya = "Jum’at" endcase return namanya
4.3
Materi Tambahan - Menghitung Umur
Buatlah program untuk menghitung umur. Pemasukan data minimal nama dan tanggal lahir. Untuk tanggal sekarang sifatnya pilihan, boleh dimasukkan boleh juga tidak dimasukkan. Hasil perhitungan berupa informasi dalam bentuk, misalnya ”Nama Dwi Sakethi, umur 18 tahun 4 bulan.”. Program harus dicek dengan benar hasilnya, maksudnya bahwa jika ada orang yang berumur
10
misalkan 23 tahun 6 bulan, maka hasilnya harus seperti itu juga.
11
5
Praktikum #5 - Membuat Program Pemasukan Data ke Basis Data
Pada praktikum ini, materinya adalah mengembangkan sistem untuk memasukkan data melalui keyboard dan kemudian menyimpan hasilnya ke dalam basis data (berkas .dbf). Untuk mengerjakan materi praktikum ini, maka berkas IPA2002.DBF harus sudah dibuat seperti pada praktikum sebelumnya. Seperti halnya dalam pembuatan program, maka perangkat-perangkat pengembangan sistem seperti text editor, compiler dan linker harus tersedia.
5.1
Pemasukan Data Siswa ke IPA2002.DBF
Proses pemasukan data dalam praktikum ini, alur kerjanya mengikuti seperti yang sudah dijelaskan dalam perkuliahan. Sebagai contoh, program pemasukan data dapat dilihat seperti berikut : /* --------------------------------------------------file : ent.prg program untuk memasukkan data baru dan mengedit data lama program ini memerlukan file ipa2002.dbf file ini ketika di-link memerlukan library fast.lib karena ada perintah wall() jika tidak memiliki fast.lib, perintah wall() bisa di-remark saja link : blinker file ent lib fast up date : 27 september 2009 --------------------------------------------------- */ #include ’inkey.ch’ * menyertakan file definisi kode-kode tombol * karena di dalam program ini ada K_ESC clear * membersihkan layar wall(0,0,24,79) * membuat latar belakang seperti tembok bata merah use ipa2002 12
* membuka file database ipa2002.dbf index on NO_PKAB to ipa2002 * membuat index dengan kuncinya NO_PKAB * supaya bisa dilakukan pencarian dengan * perintah seek mNO_PKAB = space(5) * memberi harga awal ke variabel kunci index do while .t. * membuat looping pemasukan data @ 3,7 say ’Pemasukan/Editing Peserta PKAB’ @ 5,7 say ’No. PKAB : ’ @ 6,7 say ’Kode SMA : ’ @ 7,7 say ’Kelamin : ’ @ 8,7 say ’No. Induk : ’ @ 9,7 say ’Nama Siswa : ’ * mencetak tampilan pemasukan data @05,21 get mNO_PKAB read * input awal adalah variabel kunci if lastkey()=K_ESC exit endif * kalau menekan tombol ESC berarti sudah selesai * dan keluar dari program pemasukan data seek mNO_PKAB * mencari no_pkab yang diinputkan if found() * jika ketemu maka isi variabel memori dengan fieldnya * dengan demikian berfungsi untuk mengedit data yang sudah ada mNAMA_SISWA = NAMA_SISWA mNO_INDUK = NO_INDUK mKODE_SMA = KODE_SMA mKELAMIN = KELAMIN else 13
* jika tidak ketemu berarti data baru * maka variabel diisi dengan nilai-nilai kosong mNAMA_SISWA = space(30) mNO_INDUK = space(10) mKODE_SMA = space(8) mKELAMIN = space(1) endif @06,21 get mKODE_SMA @07,21 get mKELAMIN @08,21 get mNO_INDUK @09,21 get mNAMA_SISWA read * memasukkan data-data selain yang menjadi kunci if lastkey()#K_ESC * jika tidak menekan tombol ESC artinya tidak * melakukan pembatalan seek mNO_PKAB if .not. found() append blank * karena data baru maka ditambahkan record kosong * ke dalam basis datanya endif replace NO_PKAB with mNO_PKAB replace NAMA_SISWA with mNAMA_SISWA replace NO_INDUK with mNO_INDUK replace KODE_SMA with mKODE_SMA replace KELAMIN with mKELAMIN * merekam variabel memori ke field-fieldnya endif enddo * akhir looping pemasukan data close index * menutup index close data 14
* menutup file database clear * membersihkan layar kembali return * kembali ke sistem atau program sebelumnya Sebaiknya berkas tersebut disimpan dengan nama berkas ENT.PRG. Hal ini supaya sesuai dengan dokumentasi pada berkas tersebut, meskipun sebenarnya tidak mengapa juga jika disimpan ke dalam nama berkas yang lain. Letak direktori dari berkas ENT.PRG dan IPA2002.DBF harus diperhatikan. Sebaiknya diletakkan pada direktori yang sama. Program tersebut di atas, berguna untuk memasukkan data baru dan memperbaiki data lama yang sudah ada. Jadi satu program mempunyai dua fungsi sekaligus.
5.2
Proses Executeable File
Dari source code yang masih dekat dengan bahasa manusia ini, maka program harus diterjemahkan ke dalam bahasa yang bisa dipahami oleh komputer. Untuk itu, lakukan langkah-langkah berikut : 1. Buat pengaturan environment variables untuk nilai-nilai : include, obj, dan lib. Contoh : setlib = c : \ca − 52\lib . Perintah ini sangat tergantung kepada direktori tempat diletakkannya program-program Clipper dan pendukungnya. 2. Kompilasi program untuk mendapatkan berkas objek. Contoh : c : \ca − 52\bin\clipper ent.prg . Perintah ini sangat tergantung kepada direktori tempat diletakkannya program-program Clipper dan pendukungnya. 3. Pengaitan program untuk mendapatkan berkas executeable file. Contoh : c : \ca − 52\bin\blinker file ent lib fast . 4. Jika sukses maka akan didapatkan berkas executeable file bernama ent.exe. Untuk menjalankan berkas ini cukup ketikkan perintah Contoh : ent [enter] . Meskipun sudah didapatkan berkas yang bisa dieksekusi, masih ada kemungkinan ditemukannya kesalahan (error ).
15
5.3
Materi tambahan #1
Jika program pemasukan data siswa pada berkas IPA2002 sudah selesai, maka materi dapat dilanjutkan dengan menambah pemasukan data untuk field yang lain seperti untuk mata pelajaran.
5.4
Materi tambahan #2
Jika program pemasukan data siswa pada berkas IPA2002 sudah selesai, maka materi dapat dilanjutkan dengan membuat pemasukan data untuk berkas-berkas nama dan kode program studi dan pendataan data sekolah (SLTA).
16
6
Praktikum #6 - Membuat Program Penghapusan Data
Dalam proses pemeliharaan data, biasanya suatu sistem paling tidak dilengkapi dengan 3 kemampuan yaitu memasukkan data baru, memperbaiki data yang sudah ada dan terakhir menghapus data yang ada. Oleh karena itu, pada materi praktikum kali ini, akan dibuat program untuk menghapus data. Sama seperti pada praktikum sebelumnya (Praktikum #5), pada praktikum ini, bahan-bahan yang dibutuhkan sama persis.
6.1
Penghapusan Data Siswa ke IPA2002.DBF
Proses penghapusan data dalam praktikum ini, alur kerjanya mengikuti seperti yang sudah dijelaskan dalam perkuliahan. Sebagai contoh, program pemasukan data dapat dilihat seperti berikut : /* --------------------------------------------------file : hapus.prg program untuk menghapus data program ini memerlukan file ipa2002.dbf file ini ketika di-link memerlukan library fast.lib karena ada perintah wall() jika tidak memiliki fast.lib, perintah wall() bisa di-remark saja link : blinker file ent lib fast up date : 27 september 2009 --------------------------------------------------- */ #include ’inkey.ch’ * menyertakan file definisi kode-kode tombol * karena di dalam program ini ada K_ESC clear * membersihkan layar wall(0,0,24,79) * membuat latar belakang seperti tembok bata merah use ipa2002 * membuka file database ipa2002.dbf 17
index on NO_PKAB to ipa2002 * membuat index dengan kuncinya NO_PKAB * supaya bisa dilakukan pencarian dengan * perintah seek mNO_PKAB = space(5) * memberi harga awal ke variabel kunci index set delete on * supaya data yang sudah ditandai sebagai data yang dihapus * tidak akan ikut diolah lagi * karena data yang dihapus masih ada selama belum diberikan * perintah pack (semacam empty recycle bin) do while .t. * untuk looping penghapusan data * penghapusan selesai jika pemakai menekan tombol ESC @ 3,7 say @ 5,7 say @ 6,7 say @ 7,7 say @ 8,7 say @ 9,7 say *menampilkan
’Penghapusan Peserta PKAB’ ’No. PKAB : ’ ’Kode SMA : ’ ’Kelamin : ’ ’No. Induk : ’ ’Nama Siswa : ’ tulisan penghapusan data
@05,21 get mNO_PKAB read * memasukan field yang menjadi kunci if lastkey()=K_ESC exit * jika menekan tombol ESC berarti selesai dari proses * penghapusan data dan kembali ke sistem atau program sebelumnya endif seek mNO_PKAB * mencari berdasarkan field yang menjadi kunci index * yaitu nomor PKAB if found() 18
save screen to belum_hapus * merekam tampilan layar ke suatu variabel @06,21 say KODE_SMA @07,21 say KELAMIN @08,21 say NO_INDUK @09,21 say NAMA_SISWA * jika ketemu berarti datanya ada maka sebelum dihapus * ditampilkan dulu data-datanya untuk meyakinkan hapus = ’T’ * memberi nilai awal ke variabel yang di-GET @ 11,7 say "Mau dihapus [y/t] : " get hapus pict ’@!’ read * menanyakan untuk meyakinkan bahwa data akan dihapus if hapus=’Y’ delete pack wait ’Data sudah dihapus’ * jika yakin maka data betul-betul dihapus endif restore screen from belum_hapus * mengembalikan tampilan ke tampilan awal ketika layar * masih belum terisi data-data apapun else * jika no_pkab tidak ketemu berarti datanya tidak ada * maka tampilkan pesan supaya pemakai tahu masalahnya @06,21 say ’Data tidak ada ... !’ wait ’’ * menunggu sampai suatu tombol ditekan @06,21 say ’ * menghapus pesan data tidak ada endif enddo 19
’
* akhir looping pemasukan data close index * menutup index close data * menutup file database clear * membersihkan layar kembali return * kembali ke sistem atau program sebelumnya
6.2
Materi tambahan
Jika program penghapusan tersebut di atas sudah selesai, praktikum dapat dilanjutkan dengan membuat program untuk menghapus data data berkas PS.DBF dan SMA.DBF dengan model yang sama dengan model penghapusan ini.
20
7
Praktikum #7 - Membuat Menu
Sampai dengan praktikum #6 setidaknya sudah didapatkan beberapa berkas program (untuk ini, materi praktikum tidak dapat diloncat-loncat). Jika mengikuti batas minimal, paling tidak ada dua berkas yaitu ENT.PRG dan HAPUS.PRG. Pada praktikum ini, akan dibuatkan sebuah program menu yang akan menggabungkan program-program tersebut.
7.1
Program dan Berkas yang dibutuhkan
Semua materi-materi pada praktikum sebelumnya, menjadi bahan-bahan yang dibutuhkan pada praktikum kali ini. Jika praktikum sebelumnya (khususnya Praktikum #5 dan Praktikum #6 belum dilaksanakan, maka praktikum ini jelas tidak akan bisa dikerjakan.
21
8
Praktikum #8 - Pemrosesan Data
Pada praktikum ke-8 ini, akan dibuat suatu program untuk melakukan pemrosesan data, dalam hal ini menghitung rata-rata nilai mata pelajaran yang akan disimpan dalam field SKOR. Sebagai mana sudah diketahui bahwa dalam data calon mahasiswa ini terdapat data-data nilai mata pelajarah meliputi : 1. INA 1 untuk menyimpan nilai mata pelajaran Bahasa Indonesia. 2. INGG 1 untuk menyimpan nilai mata pelajaran Bahasa Inggris. 3. KIM 1 untuk menyimpan nilai mata pelajaran Kimia. 4. MAT 1 untuk menyimpan nilai mata pelajaran Matematika. 5. FIS 1 untuk menyimpan nilai mata pelajaran Fisika. Dalam contoh ini, untuk menyederhanakan masalah maka SKOR dihitung berdasarkan nilai rata-rata untuk mata pelajaran tersebut. Jadi buatlah program untuk menghitung SKOR ini.
8.1
Program yang dibutuhkan
Untuk mengerjakan tugas pada praktikum ini, dibutuhkan perangkat mulai dari text editor, kemudian compiler dan linker beserta atribut tambahan seperti berkas-berkas pustaka (lib). Selain itu, dibutuhkan juga berkas database IPA2002.DBF yang sudah diisi dengan data. Semakin banyak data, akan semakin baik. Paling tidak ada 50 data calon mahasiswa.
8.2
Langkah-Langkah Pekerjaan
Setalah bahan-bahan yang dibutuhkan tersedia, selanjutnya tuliskan program berikut. Sebelumnya tentu saja, posisi direktori aktif dalam DOS Prompt harus diperhatikan. * nama file : proses.prg #include ’inkey.ch’ clear use IPA2002 count to jml_data store 0 to nomor dbgotop() do while .not. eof() nomor = nomor + 1 22
jml_nilai = INA_1 + INGG_1 + MAT_1 + FIS_1 + KIM_1 + BIO_1 rata = jml_nilai/6 replace SKOR with rata @ 09,20 say ’Nomor PKAB : ’+NO_PKAB @ 10,20 say ’Nama Siswa : ’+NAMA_SISWA @ 11,20 say ’Skor Akhir : ’+str(rata,6,2) @ 12,20 say ’Sedang proses data ke : ’+str(nomor,5,0) @ 13,20 say ’Prosentasi proses : ’+str(nomor/jml_data*100,6,2)+’ %’ dbskip() wait ’Tekan tombol apa saja untuk melanjutkan’ * jika data sudah banyak, perintah wait bisa dibuang saja * atau di-remark (diberi tanda bintang) enddo go top dbedit(0,0,24,79) return
23
9
Praktikum #9 - Mencetak Report
Membuat laporan atau report merupakan suatu keharusan di dalam pengembangan sistem. Untuk apa sistem bisa mengolah data, jika ternyata hasil pengolahan tidak bisa ditampilkan dalam bentuk laporan. Apapun bentuk atau nama laporannya. Program laporan ini, bisa dibuat dalam modul tersendiri atau digabung ke dalam menu seperti pada program sebelumnya.
9.1
Bahan tambahan yang dibutuhkan
Untuk pencetakan laporan ini, ada berkas tambahan yang dibutuhkan, yaitu berkas bernama layar.dbf dengan struktur seperti berikut : Structure for database: LAYAR.DBF Number of data records: 3800 Date of last update : 12/23/02 Field Field Name Type Width 1 LAYAR_1 Character 70 2 LAYAR_2 Character 70 3 LAYAR_3 Character 70 4 LAYAR_4 Character 70 ** Total ** 281
Dec
Berkas ini diletakkan pada direktori yang sama dengan berkas program .prg yang akan dibuat.
9.2
Program Mencetak Laporan
Untuk mencetak laporan, sebagai contoh, bisa dituliskan program berikut : #include ’inkey.ch’ do while .t. wall(0,0,24,79) use ipa2002 @ 09,10 clear to 17,65 @ 10,11 prompt ’ A. Cetak Daftar Peserta Urut Nama ’ @ 11,11 prompt ’ B. Cetak Daftar Peserta Urut Skor ’ @ 12,11 prompt ’ X. Selesai ... ’ menu to cetak if lastkey()=K_ESC .or. cetak=3 exit endif @ 15,11 prompt ’ L. Layar ’ 24
*
@ 16,11 prompt ’ P. Printer ’ menu to alat clear do case case alat=1 set printer to hasil.txt set printer on set device to print case alat=2 set printer on set device to print endcase do case case cetak=1 index on NAMA_SISWA to nama count to jumlah_data no = 0 dbgotop() do while .not. eof() if mod(no,50)=0 if (no#0) @ prow()+1,1 say ’------------------------------------------------------’ eject endif @ prow()+1,1 say ’Daftar Peserta’ @ prow()+1,1 say ’ ------------------------------------------------------------------------------------’ @ prow()+1,1 say ’ No Nama Siswa Pil Asal SMA Skor’ @ prow()+1,1 say ’ -------------------------------------------------------------------------------------’ endif @ prow()+1,1 say NO_PKAB+’ ’+NAMA_SISWA+’ ’+ PILIHAN_1+’ ’+NAMA_SMA+’ ’+str(SKOR) no = no + 1 set device to screen @ 11,20 say "Proses : "+str((no/jumlah_data)*100,6,3)+’ %’ @ 11,20 say "Proses : "+(no/jumlah_data)*100+’ %’ set device to print dbskip() 25
enddo case cetak=2 index on PILIHAN_1+str(1000-SKOR) to skor dbgotop() do while .not. eof() @ prow()+1,1 say NO_PKAB+’ ’+NAMA_SISWA+’ ’+ PILIHAN_1+’ ’+str(SKOR,8,3) dbskip() enddo endcase do case case alat=1 set device to screen set printer off set printer to use layar zap append from hasil.txt sdf dbgotop() dbedit(0,0,24,79) case alat=2 set device to screen set printer off endcase enddo return
26