pengantar - · pdf fileii pengantar clipper 3 2 basis data dengan ... basis data dengan...

126
Bagian I Pengantar i

Upload: doannguyet

Post on 06-Feb-2018

240 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian I

Pengantar

i

Page 2: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 3: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 1

Sambutan

1.1 Kata Pengantar

Tidak ada pujian yang pantas kecuali hanya untuk Allah swt. sebagai Sang Penguasa danPencipta alam semesta. Sholawat dan salam semoga senantiasa dicurahkan kepada pembawa ca-haya penerang, pemberi tauladan, pembawa kabar gembira, Rasulullah saw. beserta keluarganya,sahabatnya, pengikutnya, para salafush sholeh, dan kepada ummatnya hingga akhir zaman.

Buku ini merupakan buku pertama yang penulis susun dengan menggunakan perangkat lunakLATEX. Oleh karenanya, dengan berbagai kendala, maka buku ini masih tampil apa adanya. Sesuaibatas pengetahuan tentang LATEXitu sendiri. Penggunaan perangkat LATEXini didasari semangatpenggunaan perangkat lunak yang legal disamping rasa penasaran seperti apa LATEXitu. Jugakarena kebosanan dengan perangkat lunak yang ada.

Materi buku ini disusun belum menggunakan teknik-teknik yang mempercepat eksekusi pro-gram. Barangkali dalam buku lanjutan, akan dibahas teknik-teknik untuk efisiensi waktu eksekusiprogram. Mengapa ? Karena buku ini diarahkan untuk mereka yang baru belajar pemrogramClipper. Suatu bahasa pemrograman yang pada saat ini (tahun 2002, ini pertama kali buku mulaiditulis, terakhir diedit September 2009), bisa dibilang sudah usang dan tradisional. Namun padakenyataan, penulis masih menggunakannya untuk pengolahan data. Dan mungkin juga masih digu-nakan di tempat-tempat lain. Dalam kalimat ’pembelaan’, penulis mengungkapkan bahwa untukmembunuh seekor nyamuk, tidak perlu menggunakan senjata AK-47. Cukup dengan sapu lidi.Sapu lidi itulah yang dimaksud dengan Clipper.

Penulis mengucapkan terima kasih yang kepada Bapak Warsono, Ph.D, yang telah memberikan’atmosfir’ yang kondusif untuk penulisan buku ini. Juga kepada reken-rekan di ADPC PuskomUnila beserta asisten (Didik, Jazuli, Yudi, Subian) yang untuk beberapa menjadi lahan percobaanbuku ini. Tidak lupa juga kepada Mbah Linux Made Wiryana, karena dari tulisan LATEX-nya penulismengenal LATEX. Begitu juga kepada komunitas Linux.

Satu hal lan yang cukup menarik dari buku ini (kalau penulis boleh ber-gr) adalah adalah indeks.Hal ini menarik, karena pada kebanyakan buku berbahasa Indonesia, Anda tidak menjumpai indeks(daftar kata-kata).

Dalam buku ini tentu saja banyak terdapat kekurangan maupun kesalahan. Selain karenasedikitnya pengetahuan yang ada pada penulis, juga karena buku ini belum pernah mendapatkritik, saran dari siapa pun. Untuk itulah, sangat terbuka peluang untuk mengkritisi buku ini, darisudut manapun juga.

Buku ini Insyaa Allah tersedia di http://dwijim.staff.unila.ac.id. Siapa saja boleh men-download, memodifikasi, memperbanyak sebagian atau seluruh isi buku ini. Termasuk contoh-contoh program juga tersedia di sana.

Akan tetapi ada rencana untuk mencoba memasukkan buku ini ke penerbit. Jika sudahmasuk ke penerbit mungkin tidak akan bebas lagi untuk diunduh. Mudah-mudahan memberi man-faat seluas-luasnya kepada siapa saja yang memerlukannya. Hanya kepada Allah-lah kami berharapbalasan dan ampunan-Nya.

iii

Page 4: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

iv BAB 1. SAMBUTAN

dwi [email protected]://dwijim.staff.unila.ac.id

Page 5: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Daftar Isi

I Pengantar i

1 Sambutan iii1.1 Kata Pengantar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

II Pengantar Clipper 3

2 Basis Data dengan Clipper 52.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Perangkat-Perangkat yang Dipakai . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Perintah DOS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Manajemen Basis Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.1 Menjalankan Foxbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.2 Perintah create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.3 Perintah use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.4 Perintah append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.5 Perintah append blank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4.6 Perintah edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4.7 Perintah browse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4.8 Perintah go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.9 Perintah list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.10 Perintah zap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.11 Perintah append from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.12 Perintah index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.13 Perintah delete record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.14 Manajemen Basis Data dengan dbu.exe . . . . . . . . . . . . . . . . . . . . . 16

III Gambaran Sistem 17

3 Sistem yang Akan Dibuat 193.1 Rancangan Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

IV Pemrograman Clipper 21

4 Program Dasar 234.1 Check List for Good Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Pemrosesan Program Clipper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3 Proses Kompilasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.4 First Clipper Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.4.1 Perintah clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.4.2 Perintah say . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.4.3 Perintah wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

v

Page 6: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

vi DAFTAR ISI

4.4.4 Perintah return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.5 Praktikum I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5 Program Input Data dan Menu 355.1 Program Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.2 Perintah yang Digunakan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2.1 Perintah get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.2.2 Perintah read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.3 Perintah store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.4 Perintah set date italian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.5 Perintah set century on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.3 Contoh Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.4 Program Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.4.1 Perintah set wrap on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.4.2 Perintah prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.4.3 Perintah menu to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4.4 Perintah do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4.5 Perintah do while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4.6 Perintah do case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.5 Contoh Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.6 Tugas Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Program Input Database 456.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.2 English Structured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3 Perintah yang Digunakan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.3.1 Perintah save screen to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.3.2 Perintah restore screen from . . . . . . . . . . . . . . . . . . . . . . . . . . 486.3.3 Perintah seek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.3.4 Perintah found() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.3.5 Perintah if . . . else . . . endif . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.3.6 Perintah #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.3.7 Perintah lastkey() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.3.8 Perintah dbedit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.3.9 Perintah delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.3.10 Program Pemasukan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.3.11 Program Penghapusan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.3.12 Program Menu Gabungan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6.4 Tugas Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

7 Validasi Input Data 657.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.2 Cara Validasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.3 Validasi dengan Kondisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

7.3.1 Perintah valid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677.4 Validasi dengan Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

7.4.1 Structured English . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687.4.2 Contoh Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

7.5 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.6 Apa Resikonya ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.6.1 Structured English . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.6.2 Pengembangan Lebih Lanjut ! . . . . . . . . . . . . . . . . . . . . . . . . . . 747.6.3 Perintah yang digunakan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.6.4 Perintah save screen to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Page 7: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

DAFTAR ISI vii

7.6.5 Perintah restore screen from . . . . . . . . . . . . . . . . . . . . . . . . . . 767.6.6 Perintah select() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.6.7 Perintah restore screen from . . . . . . . . . . . . . . . . . . . . . . . . . . 78

8 Pemrosesan Data 818.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.2 Modifikasi Program Pemasukan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.3 Penghitungan Skor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

9 Pencetakan Informasi 879.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879.2 Perintah-perintah yang Digunakan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

9.2.1 Perintah set printer to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879.2.2 Perintah set device to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879.2.3 Perintah printer [on—off] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889.2.4 Perintah append from ... sdf . . . . . . . . . . . . . . . . . . . . . . . . . . 889.2.5 Perintah dbedit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889.2.6 Perintah zap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

9.3 Penting Diperhatikan ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899.4 Structured English . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

10 Integrasi Program 9310.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

V Clipper Advanced 97

11 Optimasi dan Improvisasi 9911.1 Improvisasi Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9911.2 Operasi File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9911.3 Perintah-Perintah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

11.3.1 Perintah file() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10011.4 Optimasi Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

11.4.1 Multipel Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10011.5 Modifikasi Bentuk get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

VI Penutup Buku 109

12 Penutup 11112.1 Harapan dan Impian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11112.2 Bacaan Tambahan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 8: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

viii DAFTAR ISI

Page 9: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Daftar Tabel

2.1 Atribut Tabel PS.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Atribut Tabel IPA2002.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Atribut Tabel SLTA.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1 Atribut Tabel SLTA.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.2 Atribut Tabel IPA2002.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.1 Nama Atribut dan Variabel Memory-nya . . . . . . . . . . . . . . . . . . . . . . . . . 456.2 Kode Tombol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8.1 Atribut Tabel IPA2002.DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

ix

Page 10: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

x DAFTAR TABEL

Page 11: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Daftar Gambar

2.1 Tampilan FoxBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Tampilan Posisi Dot Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Perintah create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Perintah use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 Perintah append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6 Perintah edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.7 Perintah browse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.8 Perintah go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.9 Tampilan Perintah list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.10 Tampilan Perintah Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11 Tampilan Data Setelah Dihapus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Rancangan Menu Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1 Proses Program Clipper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2 Letak Program Clipper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3 Kesalahan Pengaturan Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.4 Hasil Program pkab.prg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.1 Hasil Program harga.prg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2 Contoh Program Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.1 Ilustrasi Perubahan Tampilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.2 Tampilan Perintah dbedit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.3 Program Pemasukan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.4 Program Penghapusan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.5 Program Menampilkan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.6 Program Menu Gabungan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.7 Perancangan Menu Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

7.1 Sistem Tanpa Validasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677.2 Sistem dengan Validasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687.3 Sistem dengan Validasi Kode SMA yang Salah . . . . . . . . . . . . . . . . . . . . . 737.4 Sistem dengan Validasi Kode SMA yang Benar . . . . . . . . . . . . . . . . . . . . . 737.5 Tampilan Sebelum Tabel Kode SMA . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.6 Tampilan Ketika Pencarian Kode SMA . . . . . . . . . . . . . . . . . . . . . . . . . . 757.7 Tampilan Setelah Pencarian Kode SMA . . . . . . . . . . . . . . . . . . . . . . . . . 757.8 Ilustrasi Perubahan Tampilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

8.1 Tampilan Pemasukan Data Peserta PKAB . . . . . . . . . . . . . . . . . . . . . . . . 838.2 Tampilan Pemrosesan Data Peserta PKAB . . . . . . . . . . . . . . . . . . . . . . . 85

9.1 Tampilan Perintah dbedit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

10.1 Tampilan Logo Pembuka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

xi

Page 12: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

DAFTAR GAMBAR 1

10.2 Tampilan Menu Gabungan Program . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

11.1 Error Membuka File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9911.2 Tampilan Pemasukan Data Peserta PKAB . . . . . . . . . . . . . . . . . . . . . . . . 102

Page 13: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2 DAFTAR GAMBAR

Page 14: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian II

Pengantar Clipper

3

Page 15: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 16: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 2

Basis Data dengan Clipper

2.1 Pendahuluan

Clipper adalah bahasa pemrograman yang lebih ditujukan untuk pengelolaan data. Clip-per terkenal pada dekade tahun 80-an sampai pertengahan 90-an. Clipper dimasukkan ke dalamkelompok keluarga Xbase, yaitu dBase, Clipper, Foxbase, FoxPro, dan lain-lain. Beberapa keun-tungan Clipper di antaranya : tidak memerlukan perangkat keras yang tinggi (PC AT 286 pun bisadigunakan, dan ingat di pelosok mungkin masih ada komputer PC AT 386), berbasis teks (tidakgrafis) sehingga cepat dalam pencetakan ke printer dan mudah dalam pemasukan data, kecepatanpemasukan data (tentu disenangi oleh operator pemasukan data). Dalam pengembangan suatu sis-tem informasi tentu saja dasarnya adalah kebutuhan sisten bukan keinginan pemakai. Jika cukupdengan sistem xBase, maka tidak perlu menggunakan aplikasi grafis apalagi sampai web server.Akan tetapi jika memang sistem membutuhkan sistem yang lebih dari sekedar xBase maka tentutidak xBase tidak dapat digunakan.

Masalah lain yang bisa menjadi perhatian adalah menggarisbawahi pernyataan yang disam-paikan oleh Alfons Tanudjaya, spesialis antivirus dari Vaksincom, yang dimuat dalam detikINET,Rabu (8/8/2007). Beliau menyatakan bahwa, ”Pengguna format dbf bisa lebih banyak dari formatyang lebih baru. Dan secara persentase jumlah perusahaan, pengguna database .dbf ini mencapailebih dari 50 % dan tersebar di seluruh Indonesia.” Memang untuk saat ini (September 2009) tentujumlahnya sudah semakin menurun akan tetapi setidaknya masih ada pasar yang membutuhkanskill xBase ini.

Selain itu juga ada kelemahan- kelemahannya, seperti : Clipper tidak menerapkan konsepbasis data secara penuh (relasi antar file/entiti tidak didukung oleh manajemen Clipper, tapi harusdilakukan oleh programmer, misal tentang referential integrity), tidak mendukung aplikasi internet(kalau aplikasi jaringan, bisa memakai Novell Netware), segala sesuatu dikerjakan oleh programmer(misal : tidak ada generate code secara otomatis oleh sistem).

Kemudian, dalam pemrogramannya bisa dikatakan struktur program dalam Clipper tidak bera-turan, tidak seperti Pascal. Ini dapat dipandang sebagai kekurangan tapi dapat juga dimanfaatkanoleh pemrogram sehingga menjadi kelebihan ... :)

Bagi para pemakai Linux, sudah ada proyek untuk melakukan porting Clipper ke Linux. Dimana tempatnya ? Anda diyakini dapat mencari sendiri. Jika tidak, program xBase bisa jugadijalankan dengan menggunakan DOS Emulator di GNU Linux. Aplikasi xBase bisa dijalankandengan baik pada DOS Emulator. Tetapi tentu saja untuk mencetak informasi ke printer meru-pakan suatu tantangan tersendiri. Tetapi ini bisa diatasi misalnya dengan melakukan pencetakanke file, kemudian file ini dicetak dengan aplikasi di GNU Linux.

Pemilihan perangkat lunak tentu ditentukan oleh kebutuhan pemakai. Bagaimana kitamemahami masalah kualitas ini ? Perangkat lunak yang berkualitas bukanlah perangkat lunakyang canggih dengan versi terbaru. Perangkat lunak yang berkualitas adalah perangkat lunak yangmemenuhi dan sesuai kebutuhan pemakai. Oleh karenanya, untuk membunuh seekor nyamuk, tidakperlu memakai senjata AK-47, tapi cukup dengan sapu lidi ... :) Dan dalam satu contoh kasus, isidata base dalam perangkat lunak Oracle, justru kemudian diproses dengan Clipper.

5

Page 17: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6 BAB 2. BASIS DATA DENGAN CLIPPER

Sebagai bahan studi kasus, pada materi Clipper ini, akan digunakan masalah PKAB. PKABsecara singkat adalah salah satu model penerimaan mahasiswa baru tanpa tes tetapi melalui seleksiprestasi di SLTA. Namun dalam dokumen ini, tidak akan dijelaskan analisa dan perancanganprogram PKAB dimaksud. Jika Anda ingin mengetahui dokumentasinya, Anda dapat membacadokumentasi program PKAB.

2.2 Perangkat-Perangkat yang Dipakai

Clipper bukan merupakan perangkat lunak yang berdiri sendiri. Ada beberapa perangkatbantu (tools) yang dapat digunakan, yaitu :

• Sistem Manajemen Basis Data (Data Base Management System)

Sistem Manajemen Basis Data (Data Base Management System) di sini, bukan dalam penger-tian yang dipahami dalam konteks basis data. Sistem Manajemen Basis Data dalam Clippermenjalankan sebagian fungsi Sistem Manajemen Basis Data yang sebenarnya. Fungsi-fungsiyang dapat dijalankan, yaitu : pembuatan file data (dalam Clipper disebut data base file,yaitu file berekstensi .dbf, dan ingat data base di sini bukanlah pengertian data base dalamperangkat lunak Oracle, mySQL, PostGre SQL, dan lainnya, karena dalam Oracle misalnya.dbf ini disebut dengan tabel). Beberapa program yang dapat dipakai, misalnya : data baseutility dari Clipper (dbu.exe), dBase (dbase.exe), Foxplus (mfoxplus.exe). Dengan beberapapertimbangan, akan digunakan mfoxplus.exe. Perlu diperhatikan bahwa mfoxplus.ini berma-salah ketika dijalankan pada sistem Operasi Windows XP. Oleh karena itu, pada WindowsXP bisa digunakan DBase III atau dbu.exe dari Clipper.

• Penulisan Program (Editor)

Untuk penulisan program bisa digunakan perangkat lunak apapun, yang penting dapat me-nulis dalam format ASCII.Jadi dapat dipakai perangkat lunak Editor Microsoft (edit.com),Microsoft Word, Notepad, Word Star (anak-anak muda mungkin tidak mengenal ini), WordPerfect. Namun disarankan untuk memakai perangkat QEdit (q.exe). Adapun alasannyaadalah : QEdit kecil sehingga mudah dibawa-bawa, ada fasilitas blok kolom (copy, find &replace dalam kolom), bisa membuka banyak file, pindah ke baris tertentu dengan cepat,membuat logo dengan mudah, dapat digunakan untuk mencetak program dengan pemberiannomor baris. Orang tua yang terbiasa dengan Word Star, akan tidak asing dengan perintah-perintah dalam QEdit. Tulisan ini pun ditulis dengan perangkat QEdit. Walaupun kemudiandalam perkembangannya diedit dengan TexMaker karena penulisan dokumen menggunakanGNU Linux dalam hal ini Ubuntu 9.04.

• Kompilator (Compiler)

Untuk mencek tata aturan penulisan, suatu program harus dikompilasi. Proses kompilasidilakukan oleh kompilator (compiler), yang dalam Clipper diwakili oleh program clipper.exe.Jika terdapat kesalahan penulisan, Clipper akan memberi tahu nomor baris dan jenis kesa-lahannya (di sinilah kelebihan QEdit terpakai, yaitu pindah ke suatu nomor baris dengancepat). Ada pun kesalahan logika tidak akan terdeteksi. Hasil dari proses kompilasi akandidapat file obyek, yaitu file dengan ekstensi .obj. Untuk melakukan proses kompilasi, terka-dang perlu file- file lain, ini tergantung programnya. File-file lain yang diperlukan, biasanyatersimpan di folder include.

• Linker

File obyek yang didapat dari proses kompilasi, untuk menjadi file yang bisa dijalankan (diek-sekusi), harus di-link. Proses linking memakai program Blinker (blinker.exe) atau programbawaan Clipper sendiri (rtlink.exe). Dalam proses linking, perlu file-file library (.lib) danmungkin file obyek tambahan lain (.obj). File hasil linking berekstensi .exe yang berarti filetersebut dapat dijalankan. File .exe ini belum tentu bebas error.

Page 18: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2.3. PERINTAH DOS COMMAND 7

• Pencari tulisan

Untuk program-program yang besar apalagi jika sudah lama tidak, ada kemungkinan pemro-gram atau pengelola sistem lupa letak suatu modul. Nah ... dengan adanya program pencaritulisan, kita dapat mencari letak suatu modul. Hasil pencarian, kita akan mendapatkan filedan nomor baris ditemukannya modul yang kita cari. Di sinilah kolaborasi antara QEditdengan program pencari ini. Program pencari yang akan digunakan adalah ts.exe. Programts.exe fungsinya hampir mirip dengan Find-File dalam Microsoft Office. Kelebihan ts.exeadalah adanya nomor baris yang akan memudahkan perbaikan program.

2.3 Perintah DOS Command

Perlu ditekankan kembali tentang perlunya pemahaman DOS Command. Bagaimana menja-lankan suatu file dari posisi direktori yang berbeda. Penggunaan tanda \ dalam menjalankan suatuperintah. Hal ini penting karena ketidakpahaman tentang hal ini bisa menghambat proses kom-pilasi, linking atau mengeksekusi file hasil akhir. Ini bisa membuat putus asa dan berfikir bahwaprogram ini sama sekali tidak bisa diikuti dan dijalankan.

Bisa dikatakan bahwa semua perintah-perintah yang dijalankan, dilakukan dari posisi DOSPrompt. Jadi tinggalkanlah kebiasaan memegang-megang mouse untuk sementara. Bahkan terka-dang juga penggunaan keyboard menjadi lebih cepat dibandingkan dengan mouse.

2.4 Manajemen Basis Data

Sebagaimana diungkapkan sebelumnya, manajemen basis data di sini dilakukan denganmamakai perangkat lunak mfoxplus.exe. Dan Anda juga tentu sudah maklum bahwa manajemenbasis data di sini tidak mencakup makna yang sesungguhnya. Proses yang dilakukan hanya sekedarmembuat file basis data (.dbf) dengan field-field pelengkapnya (dalam basis data yang benerandisebut dengan tabel dan atribut).

2.4.1 Menjalankan Foxbase

Program Foxbase tersedia dalam versi banyak pemakai multi user dan satu pemakai single user.Untuk menjalankan program Foxbase ini, dari DOS Prompt (Start-Program-MS Dos Prompt),ketikkan mfoxplus[enter]. Namun sebaiknya Anda pindah dulu ke direktori tempat file data Anda,meskipun hal ini dapat dilakukan belakangan. Jika Anda berhasil, maka Anda akan mendapatkantampilan seperti ini :

Untuk membuat file data (tabel), gunakan perintah create nama-file. Contoh createipa2002. Untuk merekam, dari posisi create tadi, tekan tombol Ctrl-W. Dalam pengisian namaatribut (field), cukup ketikkan huruf pertama dari namanya.

Buatlah file data dengan nama dan atribut seperti berikut :

Field Field Name Type Width Dec1 KODE Character 62 KETERANGAN Character 37

Tabel 2.1: Atribut Tabel PS.DBF

Page 19: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

8 BAB 2. BASIS DATA DENGAN CLIPPER

Field Field Name Type Width Dec1 NO PKAB Character 52 RESI Character 13 PILIHAN 1 Character 64 PILIHAN 2 Character 65 NAMA SISWA Character 306 NO INDUK Character 107 JURUSAN Character 18 KODE SMA Character 89 NAMA SMA Character 35

10 KELAMIN Character 1

Tabel 2.2: Atribut Tabel IPA2002.DBF

Field Field Name Type Width Dec1 KODE SMA Character 82 NEGE SMA Character 13 NAMA SMA Character 355 JALAN Character 356 KOTA Character 25

Tabel 2.3: Atribut Tabel SLTA.DBF

Untuk keluar dari Foxbase, ketikan quit. Program Foxbase tersedia dalam versi banyakpemakai multi user. Meskipun tujuan akhir adalah kemampuan membuat program dengan Clipper,namun perintah-perintah dasar pengelolaan basis data (dalam konteks Clipper) tetap diperlukan.Perintah-perintah dasar ini dikenal dengan sebutan itshape dot command, karena diawali olehtanda ’.’.

Perhatikan tanda ’.’ di atas tulisan Command. Perintah-perintah yang dijalankan di sini,bersifat interaktif. Sistem akan langsung merespon dan menampilkan hasilnya di layar.

2.4.2 Perintah create

1. Fungsi : perintah create digunakan untuk membuat file data (tabel) beserta atribut-atributnyafield.

2. Sintaks : create [nama-file]

3. Contoh : create ipa2002

4. Tampilan :

5. Tindak Lanjut : Isi nama field (field nama), tipe (type), ukuran width, dan jumlah angkadesimal (dec).

2.4.3 Perintah use

1. Fungsi : perintah use digunakan untuk membuka file data yang telah dibuat dengan perintahcreate. File data yang telah dibuat, untuk membukanya cukup dengan perintah use. Jikadigunakan lagi perintah create, maka data akan hilang.

Page 20: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2.4. MANAJEMEN BASIS DATA 9

.............. ....... .. .... . .... .... .... .. ..... ..... .. .. ... .... ........ .. .. .. .. ... .. ... .. .. . .. .... .. .. .. .. .. .. .. .. .. .. .... .. .. .. . .. .. ... .... .......... .. .. .. .. .. ....... ..... .... .. .. . .. .. .. ... .. ... .... .. .. .. .. .. .. .. .. .. ... ... .. .. .. .. .. .. ... .... . .. ... ..

...... .. ..... .... ...... .... .. .... ...

. Serial Number FPE030530Command Line<C:>

Multi-User FoxBASE+ 2.00 (c) 1987 Fox SoftwareEnter a FoxBASE+ command.

Gambar 2.1: Tampilan FoxBase

.Command Line<C:>

Multi-User FoxBASE+ 2.00 (c) 1987 Fox SoftwareEnter a FoxBASE+ command.

Gambar 2.2: Tampilan Posisi Dot Prompt

Page 21: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

10 BAB 2. BASIS DATA DENGAN CLIPPER

Gambar 2.3: Perintah create

2. Sintaks : use nama file data

3. Contoh : use pkab

4. Tampilan :

Gambar 2.4: Perintah use

5. Tindak Lanjut : Tergantung apa yang akan dilakukan, bisa menghapus data, melihat data,menghapus data, merubah atribut, dan sebagainya.

2.4.4 Perintah append

1. Fungsi : perintah append digunakan untuk menambah data atau record ke dalam file data(tabel).

2. Sintaks : append

3. Contoh : append

Page 22: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2.4. MANAJEMEN BASIS DATA 11

Gambar 2.5: Perintah append

4. Tampilan :

5. Tindak Lanjut : Masukkan data-data sesuai dengan data-data yang ada.

2.4.5 Perintah append blank

1. Fungsi : Perintah append blank digunakan untuk menambahkan data atau record kosongke dalam file data (tabel).

2. Sintaks : append blank

3. Contoh : append blank

4. Tampilan :

5. Tindak Lanjut : -

2.4.6 Perintah edit

1. Fungsi : perintah edit digunakan untuk memperbaiki isi data atau record di dalam file data(tabel). Data yang diperbaiki sesuai dengan posisi record sekarang.

2. Sintaks : edit

3. Contoh : edit

4. Tampilan :

5. Tindak Lanjut : Gantilah isi data-data sesuai dengan data-data yang ada.

Page 23: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

12 BAB 2. BASIS DATA DENGAN CLIPPER

Gambar 2.6: Perintah edit

2.4.7 Perintah browse

1. Fungsi : perintah browse merupakan perintah yang memiliki beberapa fungsi, yaitu : me-nampilkan data, merubah data, menghapus data.

2. Sintaks : browse [field, nama-nama field

3. Contoh : browse field NO PKAB,NAMA SISWA

browse

4. Tampilan :

Gambar 2.7: Perintah browse

5. Tindak Lanjut :

(a) Untuk menggantilah isi data-data, maka pada posisi kursor, data bisa langsung diganti.

(b) Untuk menghapus data, pada posisi kursor, tekan tombol del, maka data akan dihapus.

Page 24: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2.4. MANAJEMEN BASIS DATA 13

(c) Untuk menampilkan data, otomatis data sudah ditampilkan. Sedangkan untuk berpindah-pindah record, bisa menggunakan tombol panah, pg-up, pg-dn. Untuk pindah ke sam-ping, jika field terlalu banyak, gunakan tombol Ctrl-panah.

2.4.8 Perintah go

1. Fungsi : Fungsi go digunakan untuk mengarahkan petunjuk atau pointer ke record tertentudi dalam file data (tabel).

2. Sintaks : go [nomor record]

3. Contoh : go 11

4. Tampilan : Perhatikan tulisan Rec:11/3324, yang artinya sekarang berada di record ke-11dari 3324 record.

. go 11

.Command Line<C:>IPA2002 Rec: 11/3324

Enter a FoxBASE+ command.

Gambar 2.8: Perintah go

5. Tindak Lanjut : Sesuai keperluan, mau memperbaiki data, menambah data, dan sebagainya.

2.4.9 Perintah list

1. Fungsi : Fungsi list digunakan untuk menampilkan data.

2. Sintaks : list [nama field] [for kondisi]

3. Contoh : Perintah list ini sangat bervariasi, tergantung keperluan.

(a) use ipa2002(b) list(c) list NO PKAB, NAMA SISWA, PILIHAN 1(d) list NO PKAB, NAMA SISWA, PILIHAN 1 for PILIHAN 1=’201647’

4. Tampilan : Perintah list yang terakhir artinya tampilkan Nomor PKAB, Nama Siswa, Pilihan1 untuk peserta yang memilih program studi Matematika.

5. Tindak Lanjut : Sesuai keperluan, mau memperbaiki data, menambah data, dan sebagainya.

2.4.10 Perintah zap

1. Fungsi : Fungsi zap digunakan untuk menghapus seluruh data. Data akan terhapus tapistruktur data masih ada.

2. Sintaks : zap

3. Contoh : zap

4. Tampilan : -

Page 25: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

14 BAB 2. BASIS DATA DENGAN CLIPPER

1541 11547 TANTRI RAHMAWATI 2016471591 11599 HENI MARLENA 2016471641 11650 NADRA 2016471642 11651 MELATI CENDRA KASIH S 2016471643 11652 ISRUNA HADIANI SIREGAR 2016471656 11665 ALEX SOELISTYO 2016471701 11710 SITA YULIANTARI 2016471729 11738 MERRY ANGGRAENI 2016471762 11771 DEWI AMARTHANI 2016471764 11773 ROHANNA DUMA SARI S. 2016471774 11783 INDAH WAHYUNI 2016471802 11811 LINDRA GULTOM 2016471813 11822 NURHASANAH PITRI HRP 2016471825 11835 RAHMA NOVIYANI 2016471830 11840 WINDA DERITA SINURAT 2016471836 11846 OLIVIA SRI FEBRIANTY 2016471905 11915 IKLILLAH HAYATI 2016472088 11541 TUTI SURYATUL AZMI 2016473293 10321 DWINA OKTAVIANI 2016473305 11099 APRI YULIANI 201647

Gambar 2.9: Tampilan Perintah list

2.4.11 Perintah append from

1. Fungsi : Fungsi append from digunakan untuk memasukkan isi satu file tabel ke tabel aktif(yang sedang di-use). File tabel yang akan dimasukkan diasumsikan sudah ada. Data yangdimasukkan sesuai nama atribut field masing-masing.

2. Sintaks : append from [file data]

3. Contoh :

(a) use ipa2002(b) append from ipa2001

4. Tampilan : -

2.4.12 Perintah index

1. Fungsi : Fungsi index digunakan untuk mengurutkan isi satu file tabel sesuai kebutuhan.Dengan adanya index, maka manajemen data menjadi lebih mudah. Index ini urutannyaselalu dari kecil ke besar ascending. Oleh karena itu perlu menggunakan trik khusus, misalnyamemberi tanda ’-’ (minus) pada kunci index yang bertipe numerik.

2. Sintaks : index on [atribut] to [nama file]

3. Contoh :

(a) use ipa2002(b) list nama siswa,skor(c) index on -SKOR to hasil(d) list nama siswa,skor

4. Tampilan : sebelum dan setelah di-index

Page 26: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

2.4. MANAJEMEN BASIS DATA 15

3305 APRI YULIANI 813.3703306 DEVITA ACHDALIA 734.4603307 WIANA PUSPITASARI 767.2203308 RESY APRILYA 803.0703309 DEWI SETIATI 843.4803310 NURMA YULITA 793.4603311 NOFRINACHAN FACHRI 795.5703312 FAFIAN 0.0003313 DENI AWAL SETIAWAN 706.4903314 YUNITA BUDIARTI 781.5003315 NANDYA KARTIKA PUTRI 787.6603316 YULIENI 666.0703317 EKO HERWINANDA 777.3003318 MUSPIKA WATNA 795.0703319 SANDRA RUSDIANA 747.3103320 ROY KARDO RAYMUN SITUMORANG 754.9103321 ROZI DEFRIO 786.0003322 IDA RETNO NINGSIH 781.8903323 NURLAILA 852.8703324 DEDI PRAPAT 778.090

3139 HENDI EKA SETIAWAN 896.2109 AMIRANI ZAIBUN 897.060

1875 MUHAMMAD DAVID 897.6603304 IIN NOVIANI 899.0103180 WAHYUNI RAJA GUK-GUK 899.110728 PANCA RAHAYU PRASETYANINGSIH 899.550143 LISA YUNITA 900.190571 YENI ANGGRIANA 901.1401943 VERDINA DEKAWATI 902.5901921 LISA KARTIKA DEWI 904.630181 RIKI AFRIANDA 905.0001904 MAYATIKA 906.800182 DINA SANTI LESTARI 907.140183 NELDA ARIANI 908.650695 ISMONO 908.750722 DIPHO MUHARDIAN 911.410265 SATIMAH MURNI 913.310180 FAJRI SYAMSUL 914.5302868 FISSA NURJANAH 917.410603 JUWITA ASTUTI 949.010

Gambar 2.10: Tampilan Perintah Index

Page 27: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

16 BAB 2. BASIS DATA DENGAN CLIPPER

JUMLAH NO_PKAB RESI PILIHAN_1 PILIHAN_2 NAMA_SISWA50 11046 201141 201744 ISKANDAR DINATA70 10118 201446 203847 ISKANDAR G FAHRI60 10860 201543 202047 MESY SEPRIDAWATI78 10441 201647 200845 MUHLISIN37 10669 201744 200845 INDRA HANAFI90 10189 201841 202144 ZAKI TANTOWI162 11047 201945 201446 EKO WAHYUDI146 11311 202047 204046 DENI AWAL SETIAWAN84 11015 202144 200741 DEDI KURNIAWAN64 21161 202241 203847 RAHMAWATI165 11392 202345 200346 SILVIA DIAN ANGGRAENI

BROWSE <C:>TESTX Exclusive Rec: 11\39 Del

Gambar 2.11: Tampilan Data Setelah Dihapus

2.4.13 Perintah delete record

1. Fungsi : Fungsi delete record digunakan untuk menghapus record tertentu. Data akanterhapus tapi data masih ada selama belum ada perintah pack.

2. Sintaks : delete record [nomor record]

3. Contoh : delete record 11

4. Tampilan : Perhatikan bahwa record ke 11 (dari 39 record) statusnya terhapus (ada tulisanDel).

2.4.14 Manajemen Basis Data dengan dbu.exe

Jika sistem operasi yang digunakan adalah Windows NT, maka perangkat lunak untuk mana-jemen basis data yang bisa digunakan adalah database utiliy dbu.exe dari Clipper.

Page 28: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian III

Gambaran Sistem

17

Page 29: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 30: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 3

Sistem yang Akan Dibuat

Pada materi ini, akan dicoba untuk membuat suatu model sistem penerimaan mahasiswa melaluijalur PMDK (Penelusuran Minat dan Kemampuan). Pada proses ini, suatu perguruan tinggi akanmenerima mahasiswa baru. Kriteria penerimaan berdasarkan nilai-nilai raport di SLTA. Nilai-nilaiini kemudian dibobot dan selanjutnya diranking menurut pilihan program studi masing-masing.Untuk mempermudah proses, dalam hal ini nilai raport hanya akan dirata-rata yang kemudianmenjadi skor akhir untuk penentuan ranking.

3.1 Rancangan Menu

Menu-menu yang akan dikembangkan dalam sistem ini dapat dilihat pada gambar berikut ini :

Gambar 3.1: Rancangan Menu Sistem

19

Page 31: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

20 BAB 3. SISTEM YANG AKAN DIBUAT

Page 32: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian IV

Pemrograman Clipper

21

Page 33: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 34: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 4

Program Dasar

4.1 Check List for Good Programming

Ketika seseorang sedang belajar pemrograman biasanya fokus pemikirannya ke masalah yangada di dalam program itu. Ketika program sudah berjalan dan memberikan hasil sesuai denganyang seharusnya, maka biasanya pemrogran sudah merasa selesai dalam programnya. Satu halyang kadang sering dilupakan adalah tentang kaidah-kaidah untuk menulis program yang baik.Oleh karena itu, dalam kesempatan ini akan disampaikan kriteria-kriteria program yang baik. Inijuga penting untuk menumbuhkan budaya bagaimana membuat program yang bukan sekedar bisadieksekusi dan menyelesaikan masalah tapi juga memberikan nuansa lain.

Beberapa kriteria tidak bisa diterapkan di sini atau semestinya dimodifikasi. Paling tidak halini bisa menjadi panduan untuk pemrogram yang ingin mencoba mengembangkan budaya menulisprogram dengan baik.

Seperti apakah kriteria pemrograman yang baik ? Salah satu bahan acuan tentang ini,diambil dari tulisan Prof. Finkel (beliau pernah berkunjung ke Jurusan Matematika UniversitasLampung untuk memberikan pelatihan) yang bisa diakses di :http://www.cs.uky.edu/∼raphael/checklist.htmlPanduan ini memang lebih diarahkan pada pemrograman dengan Perl, akan tetapi ada panduan-panduan yang bisa diterapkan dalam pemrograman secara umum.

Checklist for good programming This checklist should help you write high-quality programs.Raphael Finkel, 8/17/2005

1. Identifiers : Make sure all your identifiers are meaningful.

(a) One-letter identifiers are almost never meaningful.

(b) Names like flag and temp are seldom meaningful. Instead of flag, consider naming theBoolean condition it checks for, such as valueFound.

(c) Consider multi-word identifiers, like nameIndex. Long identifiers (within reason) tendto be very readable.

2. Bare literals : Avoid numbers other than 0 and 1 and strings other than ”” in your programexcept when you define constants.

(a) Don’t use a literal integer as an array bound.

(b) Don’t use a literal integer as a run parameter, such as a timeout or port number.

(c) Don’t use literal integers to select menu entries.

(d) Don’t use a literal integer to measure the size of a string or some data; use sizeof() andstrlen() in C and C++ and .length() and .size in Java.

(e) Don’t use a literal string for a file name. You may output literal strings, though.

(f) Don’t use a literal integer to index into an array containing heterogeneous data.

23

Page 35: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

24 BAB 4. PROGRAM DASAR

(g) Don’t declare an identifier with a name denoting a literal, such as ”thirty”.

3. Modularization : A program is built out of interacting components.

(a) Don’t put all your code into the main() routine.

(b) In fact, don’t make any routine do too much work. If it’s longer than about 50 lines, itis maybe too long.

(c) If you duplicate code several times, consider whether a loop would work better, orperhaps a subroutine.

(d) If you find you are indenting very deeply, you most likely aren’t using subroutines whenyou should.

(e) Don’t reinvent library routines (unless your assignment requires it). Look in the manualsto learn about sprintf() and atoi(), for instance.

(f) Use header files in C and C++ (header files have names ending .h) to define all constantsneeded by multiple files and declare all subroutines exported between files. But don’t putthe body of subroutines in header files (with the rare exception of inline subroutines).

4. Formatting : Your program should be easy to read.

(a) Look at http://geosoft.no/development/javastyle.html for clear suggestions on format-ting and other presentation issues. This reference is specifically directed at Java, but ithas value for other languages, too.

(b) Try to restrict all your lines to 80 characters; many people view code in 80-columnwindows for historical reasons.

(c) Don’t use both tabs and spaces for indentation, because not all text editors treat tabsas exactly 8 spaces.

(d) Do follow a consistent indentation pattern that reflects the program’s control structure.

(e) Don’t put lots of blank lines in your program. One blank line between subroutines isenough.

(f) Different operating systems terminate lines different ways. If you move between Win32(which uses /r/n), Unix (which uses /n), and MacOS (which uses /r), reformat your fileto use a consistent termination method.

(g) Don’t set the executable bit (Unix) on your source files.

5. Coding : You want your coding to be clear, maintainable, and efficient, in that order. Someof the rules here are very specific; others are more general.

(a) Don’t use a sequence of if statements that have no else if only one can match; use elseif.

(b) When you want to categorize text input, don’t enumerate the possible first characters.

(c) Use shift operators instead of multiplication for constructing bit patterns.

(d) In a switch statement, always check for the default case. Likewise, in a sequence ofif-then-else statements, use a final else.

(e) All system calls can fail. Always check the return code, and use perror() to report thefailure.

(f) Booleans should always use the boolean type in Java, bool in C++, and 0/1 integers inC. Don’t use characters t and f, and don’t use -1 and 1.

(g) Use loops to initialize data structures if possible.

(h) Use each variable and each field of a structure for exactly one purpose. Don’t overloadthem unless there is an excellent reason to do so.

Page 36: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

4.1. CHECK LIST FOR GOOD PROGRAMMING 25

(i) Don’t use the same identifier for both a type, a variable, and a file name, even if youchange the capitalization. It’s too confusing.

(j) If you are modifying data with htonl() or a similar routine before network transmission,don’t modify the data in place. Build a second data structure.

(k) Try not to use global or nonlocal variables. Declare each variable in the smallest scopeyou can. There are legitimate uses of nonlocal variables, but make sure you really needthem.

(l) Shell and Perl programs should have their # ! line as the first line of the file; otherwise,the line is just a comment.

(m) Try to avoid coding special cases. You can often use pseudo-data or other data-structuremethods that allow you to fold special cases into the regular cases.

6. Compilers : Let them help you find mistakes

(a) Always invoke compilers with all warnings enabled. For C and C++, use the -Wall flag;for Java, use -Xlint:all -deprecation.

(b) All Perl programs should run with the -w flag and should have use strict. All Perl cgi-binscripts should have the -T flag, too.

7. The make utility : Use it, and use it well.

(a) A makefile should always have a ”clean” recipe, which should remove all files that canbe reconstructed by other recipes in the makefile, including object and executable files.

(b) If your project has multiple source files, the makefile should generate object (.o) files asneeded and link them together.

(c) The makefile should be written so that if you run make twice in a row, the second rundoes no recompilation.

(d) Every recipe should create the file specified in its target.(e) Every recipe should use every file specified in its prerequisite list.(f) Learn to use rules for targets like .c.o to avoid repetitious makefiles.(g) If you have just one C or C++ source file, the executable file should have the same name

(without the extension .c or .cpp).(h) Make sure you list all .h files as prerequisites where they are needed. Consider using

makedepend to generate the prerequisite list for you.

8. Documentation : It’s not just just for the grader. It helps you as you write the program, too!

(a) Add documentation as you write the program. You can always modify it as your designchanges.

(b) Include external documentation : How does one compile and run the program, and whatis it meant to do ? The external documentation could be in a separate file; for smallprojects, it can be a comment in the single source file.

(c) Include internal documentation : What algorithms and data structures are you using?An overview can be in a separate file, but usually internal documentation is placed onthe specific routines, declarations, and steps that it describes.

(d) Check your whole program and documentation for spelling mistakes. It is impolite toturn in misspelled work.

(e) Check all your documentation (and output messages) for grammar mistakes.(f) Programs are much more readable if you put a short comment on closing braces. For

instance, the brace closing a conditional can have a comment like ”if value looks good”.A brace closing a loop can have a comment like ”for each input line”. A brace closing aprocedure can have a comment just naming the procedure. A brace closing a class canhave a comment saying ”class” and then the name of the class.

Page 37: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

26 BAB 4. PROGRAM DASAR

4.2 Pemrosesan Program Clipper

Kepopuleran Clipper pada masa jayanya (tahun 1990-an), barangkali tidak dapat dilepaskandari kesuksesan produk dBase III. Namun kelemahan dBase adalah selalu diperlukannya perangkatdBase itu sendiri untuk menjalankan program yang dibuat menggunakan dBase. Produk Clipperdapat menghasilkan program mandiri yang siap dieksekusi (executable file).

Proses pembuatan program Clipper (.prg) menjadi program yang siap dieksekusi (.exe) melaluibeberapa tahapan, yaitu kompilasi dan linking. Hal tersebut bisa dilihat pada gambar berikut :

Gambar 4.1: Proses Program Clipper

Proses kompilasi dilakukan untuk mencek sintaks penulisan program yang dibuat. Jika adapenulisan yang tidak benar, Clipper akan memberi tahu baris yang salah. Proses kompilasi ti-dak memberi tahu jika ada kesalahan lain seperti kesalahan logika, pembagian dengan nol, dansebagainya. Jika tidak ada kesalahan akan dihasilkan file obyek (.obj). Jika masih ada kesalah-an, maka program dibetulkan lagi dengan menggunakan teks editor (QEdit : q.exe). Sedangkan

Page 38: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

4.3. PROSES KOMPILASI 27

proses linking dilakukan untuk mencek kaitan antar program, keberadaan fungsi atau proseduryang digunakan. Jika tidak ada kesalahan akan dihasilkan program yang bisa dijalankan dari DOSPrompt (.exe). Jika masih ada kesalahan pada program, maka program dibetulkan lagi denganmenggunakan teks editor (QEdit : q.exe). Program yang sudah menjadi .exe bukan berarti bebasdari kesalahan dan inilah keajaiban Clipper ... :)

Sebelum melakukan proses kompilasi dan linking ada variabel lingkungan (environment varia-ble) yang harus diatur. Untuk mengatur variabel lingkungan ini, harus diketahui terlebih dahuludimana program Clipper disimpan. Pengaturan ini dilakukan dari posisi DOS Prompt, jadi An-da harus memilih Start-Program-DOS Prompt. Sebagai contoh dalam kasus ini, program Clipperdisimpan di partisi c: dengan subdirektori ca-52. Lebih jelasnya dapat dilihat pada gambar :

Gambar 4.2: Letak Program Clipper

Variabel lingkungan tersebut ada tiga, yaitu :

1. include, untuk menentukan letak direktori file-file include (.ch). Pada contoh ini, maka ketikanset include = c : \ca− 52\include[enter].

2. obj, untuk menentukan letak direktori file-file obyek (.obj). Pada contoh ini, maka ketikanset obj = c : \ca− 52\obj[enter].

3. lib, untuk menentukan letak direktori file-file pustaka (.lib). Pada contoh ini, maka ketikanset lib = c : \ca− 52\lib[enter].

Nilai variabel lingkungan ini tentu saja bisa berbeda-beda tergantung Anda menyimpan programClipper pada komputer Anda.

4.3 Proses Kompilasi

Sebagaimana telah disebutkan sebelumnya, proses kompilasi dilakukan untuk mencek sintakspenulisan program. Untuk program yang menggunakan perintah # include, maka variabel ling-kungan include harus sudah diatur.

Perlu ditekankan sekali lagi tentang perlunya pemahaman tentang direktori dan posisi file.Perintah compiling dan linking bisa jadi berbeda dengan apa yang seharusnya dilakukan pada kom-puter Anda karena letak direktori Clipper yang berbeda. Jika ketika Anda memberikan perintahternyata yang keluar adalah pesan kesalahan :

Page 39: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

28 BAB 4. PROGRAM DASAR

Bad command or file name

Berarti kesalahan terletak pada perintah compiling atau linking bukan pada source code.Misalkan kita memiliki program seperti berikut :

/* -----------------------------------------file : si.prgprogram untuk mencetak tulisan saja----------------------------------------- */

clear* menghapus layar

@ 0,0 to 24,79* membuat kotak pada satu layar penuh

set color to gr+*/n* mengatur warna tulisan menjadi kuning dan berkedip* dengan latar belakang berwarna hitam

@ 10,20 say ’Program Studi Sistem Informasi* mencetak tulisan Program Studi Sistem Informasi* pada posisi baris 10 kolom 20

set color to* mengembalikan pengaturan warna ke tulisan putih* latar belakang hitam

wait ’’* menghentikan program sampai pemakai menekan suatu tombol

return* kembali ke sistem

Kemudian program dikompilasi dengan perintah :

C:\dwi\clipper>\ca-52\bin\clipper si

Hasilnya seperti berikut :

361K availableCompiling SI.PRGSI.PRG(16) Error C2007 Unterminated string: ’Program Studi Sistem Informasi’1 error

No code generated

Terlihat bahwa masih ada kesalahan pada baris 16. Pada baris 16, keterangannya Unterminatedstring: ’Program Studi Sistem Informasi’, yang artinya kurang petik penutup. Maka pro-gram lengkapnya, setelah diperbaiki menjadi :

/* -----------------------------------------file : si.prgprogram untuk mencetak tulisan saja----------------------------------------- */

Page 40: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

4.3. PROSES KOMPILASI 29

clear* menghapus layar

@ 0,0 to 24,79* membuat kotak pada satu layar penuh

set color to gr+*/n* mengatur warna tulisan menjadi kuning dan berkedip* dengan latar belakang berwarna hitam

@ 10,20 say ’Program Studi Sistem Informasi’* mencetak tulisan Program Studi Sistem Informasi* pada posisi baris 10 kolom 20

set color to* mengembalikan pengaturan warna ke tulisan putih* latar belakang hitam

wait ’’* menghentikan program sampai pemakai menekan suatu tombol

return* kembali ke sistem

Jika program tersebut kita kompilasi ulang, maka hasilnya seperti berikut :

Z:\home\dwijim\kuliah\clipper>ca-52\bin\clipper si.prgClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling SI.PRGCode size 130, Symbols 144, Constants 46

Karena sudah tidak ada keterangan error, maka proses dilanjutkan dengan proses linking. Makakita berikan perintah seperti berikut :

C:\dwi\clipper>\ca-52\bin\blinker file si

Jika proses linking dilakukan dengan DOS Prompt dari Microsoft Windows, tidak akan ada kete-rangan apapun (meskipun mungkin ada kesalahan). Satu patokan saja, yaitu jika file .exe tidakdihasilkan, berarti masih ada kesalahan. Misal kita berikan perintah :

C:\dwi\clipper>siBad command or file name

Ini artinya file test.exe belum jadi. Penyebabnya bisa karena masih ada kesalahan dalam program(misal menjalankan fungsi atau prosedur yang tidak ada, atau kita salah dalam memberikan per-intah set lib). Untuk proses linking yang dilakukan dengan DOS Prompt murni atau dengan DOSEmulator di GNU LINUX, bisa jadi akan terlihat suatu pesan kesalahan seperti berikut :

Page 41: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

30 BAB 4. PROGRAM DASAR

Gambar 4.3: Kesalahan Pengaturan Library

BLINKER : 1109 : unable to open file CLIPPER.LIB

Hal ini disebabkan karena environment variable set lib belum diatur atau sudah diatur tetapiposisi direktori lib-nya salah. Untuk itu berilah pengaturan set lib sesuai dengan tempat di manafile-file library Clipper disimpan (Lihat kembali catatan tentang environment variable). Jika sudahbenar, kita akan mendapatkan file-file berikut :

Volume in drive D is home/dwijim

Directory of D:\KULIAH\CLIPPER

SI BIF 354 09-25-09 7:01aSI PRG 653 09-25-09 6:44aSI EXE 178,460 09-25-09 7:01aSI OBJ 987 09-25-09 6:45a

4 file(s) 180,454 bytes0 dir(s) 126,615,552 bytes free

Sekarang kita bisa menjalankan program tersebut dengan nama si.exe. Jadi dari DOS Promptcukup tulisakan si [enter].

4.4 First Clipper Program

Pada program pertama Clipper ini, kita akan mencoba untuk membuat program yang fungsinyasekedar menampilkan suatu tulisan dan memberhentikan proses sampai pemakai menekan semba-rang tombol. Program mirip dengan conton program pada bagian sebelumnya. Perintah-perintahyang digunakan cuma ada 4 macam yaitu clear, say, wait, dan return.

4.4.1 Perintah clear

1. Fungsi : membersihkan layar tampilan

2. Sintaks : clear

3. Contoh : clear

4.4.2 Perintah say

1. Fungsi : mencetak sesuatu ke layar atau printer

Page 42: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

4.4. FIRST CLIPPER PROGRAM 31

2. Sintaks : @ baris,kolom say ’tulisan yang mau dicetak’

3. Contoh : @ 12,30 say ’dwi sakethi : [email protected]

4.4.3 Perintah wait

1. Fungsi : menghentikan proses sampai pemakai menekan sembarang tombol

2. Sintaks : wait [tulisan]

3. Contoh :

(a) wait

(b) wait ’tekan tombol apa saja !’

4. Keterangan : pada contoh pertama, program akan berhenti sementara dan di layar ditam-pilkan tulisan ’Press any key to continue’, sedangkan pada contoh kedua, akan ditampilkantulisan ’tekan tombol apa saja’.

4.4.4 Perintah return

1. Fungsi : mengembalikan arah program ke program sebelumnya, dalam hal ini karena programdijalankan dari DOS Prompt, maka program akan kembali ke DOS Prompt. Return inimerupakan akhir dari program, atau bisa juga akhir suatu fungsi atau prosedur.

2. Sintaks : return [hasil]

3. Contoh : return

Berikut ini beberapa contoh program yang dapat dicoba dan dilihat hasilnya :

/* -----------------------------------------file : dwi.prgprogram untuk mencetak tulisan dwiyang tersusun dari huruf-huruf d-w-i----------------------------------------- */

clear* menghapus layar

@ 0,0 to 24,79* membuat kotak pada satu layar penuh

@ 05,20 say ’ d ’@ 06,20 say ’ d iii ’@ 07,20 say ’ d i i ’@ 08,20 say ’ d iii ’@ 09,20 say ’ d ’@ 10,20 say ’ ddddd w w i ’@ 11,20 say ’ d d w w i ’@ 12,20 say ’ d d w w i ’@ 13,20 say ’ d d w w i ’@ 14,20 say ’ d d w w w i ’@ 15,20 say ’ d d w w w i ’@ 16,20 say ’ d d w w w i ’@ 17,20 say ’ d d w w w w i ’@ 18,20 say ’ dddddd w w iiii ’

Page 43: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

32 BAB 4. PROGRAM DASAR

@ 20,15 say ’dibuat oleh dwi sakethi, http://dwijim.staff.unila.ac.id’@ 21,20 say ’Tekan tombol apa saja untuk melanjutkan ...’wait ’’* menghentikan program sampai pemakai menekan suatu tombol

return* kembali ke sistem

4.5 Praktikum I

1. Buatlah file .dbf bernama IPA2002.DBF dan SLTA.DBF. Kemudian isi dengan minimal 10record untuk data siswa (dalam IPA2002.DBF) dan 15 record untuk kode dan nama-namaSLTA (dalam SLTA.DBF). Struktur tabel SLTA.DBF tampak seperti berikut : Sedangkan

Field Field Name Type Width Dec1 KODE SMA Character 82 NEGE SMA Character 13 NAMA SMA Character 355 JALAN Character 356 KOTA Character 25

Tabel 4.1: Atribut Tabel SLTA.DBF

struktur file IPA2002.DBF seperti berikut :

2. Buatlah program (tentu saja dengan Clipper) dengan hasil seperti pada tampilan berikut ini.Bisa juga Anda membuat kreasi sendiri dan selamat mencoba.

Gambar 4.4: Hasil Program pkab.prg

Page 44: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

4.5. PRAKTIKUM I 33

Field Field Name Type Width Dec1 NO PKAB Character 52 RESI Character 13 PILIHAN 1 Character 64 PILIHAN 2 Character 65 NAMA SISWA Character 306 NO INDUK Character 107 JURUSAN Character 18 KODE SMA Character 89 NAMA SMA Character 35

10 KELAMIN Character 111 INA 1 Numeric 4 112 INGG 1 Numeric 4 113 MAT 1 Numeric 4 114 FIS 1 Numeric 4 115 KIM 1 Numeric 4 116 BIO 1 Numeric 4 117 SKOR Numeric 7 318 TANDA Character 1019 PILIHAN Character 620 PIL LAIN Character 621 KET PILIH Character 122 TAHAP Character 1

Tabel 4.2: Atribut Tabel IPA2002.DBF

Page 45: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

34 BAB 4. PROGRAM DASAR

Page 46: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 5

Program Input Data dan Menu

5.1 Program Input Data

Suatu nilai dalam program Clipper bisa disimpan dalam variabel atau atribut (field. Jikadisimpan pada variabel, artinya diletakkan di memory komputer, akibatnya jika komputer matimaka nilai variabel tersebut hilang. Sedangkan jika disimpan dalam atribut field, nilai tersebutakan disimpan secara permanen dalam disk berupa file atau tabel.

Variabel dalam Clipper memiliki 4 tipe, yaitu :

1. String, dipakai untuk menyimpan suatu nilai yang terdiri dari campuran karakter huruf,karakter angka, dan karakter lainnya. Tipe ini misal dipakai untuk menyimpan nama, alamat,nama mata kuliah, keterangan jenis kelamin, dan sebagainya. Contoh :

nama = ’Hakan Sukur’nama_kes = ’Turki Banteng Bosporus’alamat := "Jl. Yang Benar No. 1 Gedong Meneng’kosong := space(11)store ’sejahtera’ to tujuan

2. Numeric, dipakai untuk menyimpan suatu nilai yang berupa angka dan akan diopersikansecara matematis. Misalnya nomor KTP, meskipun isinya berupa nilai-nilai 0-9 akan tetapikarena nomor KTP tidak akan pernah dioperasikan secara matematis maka tipenya bukannumeric. Demikian juga halnya dengan nomor mahasiswa, NIP, nomor HP dan sebagainya.Angka di sini bisa berupa nilai pecahan, nilai bulat, nilai positif atau pun negatif. DalamClipper tidak dilakukan pembedaan jenis bilangan.

nomor = 0nilai = 87.11hasil := -11store -27 to untung

3. Logical, dipakai untuk menyimpan nilai yang hanya terdiri dari nilai .t. (true) dan nilai .f.(false). Misalnya untuk kondisi lulus tidak lulus, akhir file/tabel, dan sebagainya. Contoh :

lulus = .t.jawaban = .f.akhir := .t.store .f. to boleh

35

Page 47: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

36 BAB 5. PROGRAM INPUT DATA DAN MENU

4. Date, dipakai untuk menyimpan nilai yang berupa tanggal. Untuk menyimpan nilai tanggalini, bisa digunakan fungsi date() atau fungsi ctod(). Contoh :

tg_lhr = date() && tanggal sekarangtg_lulus = ctod(’11-06-2002’)batas := ctod(’01-01-2003’)

Pendefinisian suatu variabel dilakukan dengan memberi harga awal variabel. Misal variabel urutanditentukan memiliki tipe numerik, maka cukup dengan memberikan perintah urutan = 0. Salahsatu kelebihan (kalau tidak mau dikatakan sebagai kekurangan) Clipper adalah ketidakberaturanmasalah variabel ini. Bagi yang pernah menggunakan bahasa Pascal atau C akan dapat merasa-kannya. Misal suatu variabel semula ditentukan bertipe numerik, dengan perintah :

store 1 to baris

Jika tiba-tiba di bagian lain program tipe baris diubah ke string (misalnya), hal itu tidak akanmenyebabkan kesalahan program.

store ’ini aneh’ to baris

Demikian juga dengan hasil suatu fungsi, suatu fungsi bisa memberikan hasil dengan tipe yangberbeda. Pada satu sisi, misal return .t. dan pada sisi lain return 1. Apakah ini keajaiban duniayang kesembilan ?

5.2 Perintah yang Digunakan

Program input data yang akan dibuat belum menggunakan tabel (file data base). Program hanyamenyimpan data di memory dan akan hilang setelah program kembali ke MS DOS Prompt. Perin-tah yang digunakan adalah perintah-perintah pada bagian sebelum ini yaitu : clear, say, return.Sedangkan perintah barunya adalah get, read, store.

5.2.1 Perintah get

1. Fungsi : memasukkan data melalui keyboard dan biasanya digabung dengan perintah say

2. Sintaks : @ baris,kolom get nama variabel [picture] [valid]

3. Contoh :

@ 1,1 say ’Nama Anda : ’@ 2,1 say ’Tgl. Lahir : ’@ 1,14 get nama picture ’@!’ && huruf besar@ 2,14 get tgl_lahirread

4. Keterangan : program akan menunggu pemakai memasukkan nama dan tanggal lahir. Namaakan diubah langsung ke huruf besar karena ada perintah picture ’@!’. Posisi baris dan kolomharus disesuaikan dengan letak baris dan kolom pada perintah say.

Page 48: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

5.2. PERINTAH YANG DIGUNAKAN 37

5.2.2 Perintah read

1. Fungsi : mengakhiri perintah pemasukkan data yang didahului dengan perintah get

2. Sintaks : read

3. Contoh :

@ 1,1 say ’Nama Anda : ’@ 2,1 say ’Tgl. Lahir : ’@ 1,14 get nama picture ’@!’ && huruf besar@ 2,14 get tgl_lahirread

5.2.3 Perintah store

1. Fungsi : memasukkan suatu nilai ke variabel

2. Sintaks : store [nilai] to [variabel]

3. Contoh :

nama = ’Hakan Sukur’nama_kes = ’Turki Banteng Bosporus’alamat := "Jl. Yang Benar No. 1 Gedong Meneng’kosong := space(11)store ’sejahtera’ to tujuan

4. Keterangan : perintah store mempunyai fungsi yang sama dengan operator =.

5.2.4 Perintah set date italian

1. Fungsi : merubah format tanggal ke bentuk yang umum di Indonesia yaitu hari-bulan-tahun(dd-mm-yyyy).

2. Sintaks : set date [format-tanggal]

3. Contoh :

set date italian

4. Keterangan : Kondisi awal tahun, hanya disediakan sebanyak dua digit dalam pemasukan da-ta. Meskipun demikian, sebenarnya di dalam tabel (file data base), tahun disimpan sebanyak4 digit.

5.2.5 Perintah set century on

1. Fungsi : supaya dalam operasi tanggal, tahun ditampilkan dalam format 4 digit.

2. Sintaks : set century [on/off]

3. Contoh :

set century on

Page 49: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

38 BAB 5. PROGRAM INPUT DATA DAN MENU

5.3 Contoh Program

Dengan perintah-perintah yang sudah diberikan, maka berikut ini ada contoh program untukmenghitung harga barang.

/* ------------------------------------------------------nama file : harga.prgprogram untuk menghitung harga satu item barang------------------------------------------------------ */

clear* menghapus layar

store 0 to jumlah,hargastore space(21) to nama_barangstore date() to tgl_beli* memberi harga-harga awal ke variabel memori

@ 10,5 say ’Nama Barang : ’@ 11,5 say ’Jumlah : ’@ 12,5 say ’Harga Satuan : ’@ 13,5 say ’Tgl. Beli : ’* menampilkan tulisan-tulisan pemasukan data

@ 10,20 get nama_barang picture ’@!’@ 11,20 get jumlah picture ’999’@ 12,20 get harga picture ’999,999.99’@ 13,20 get tgl_beli* memasukkan nilai-nilai data via keyboard

read* perintah get diakhiri dengan perintah read

bayar = jumlah * harga* menghitung harga yang harus dibayar

@ 16,5 say ’Total harga : ’@ 16,20 say bayar* menampilkan hasil perhitungan ke layar

return* kembali ke sistem

Hasil dari program tersebut tampak seperti berikut ini :

5.4 Program Menu

Dari contoh dan latihan sebelumnya, maka kita sudah mempunyai beberapa file program Clip-per. Selama ini, untuk menjalankan satu file yang ada, maka file .exe dari program tersebut kitajalankan. Menjalankan program-program tersebut akan menjadi lebih mudah jika program-programtersebut disatukan dalam satu menu program. Program yang sudah kita miliki yaitu :

• si.prg yaitu program untuk menampilkan tulisan ’Sistem Informasi’.

Page 50: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

5.4. PROGRAM MENU 39

Gambar 5.1: Hasil Program harga.prg

• dwi.prg yaitu program untuk menampilkan tulisan dwi yang tersusun dari huruf-huruf d-w-i.

• harga.prg yaitu program untuk menghitung harga satu item barang.

Program-program tersebut akan kita satukan dalam satu menu program.

5.4.1 Perintah set wrap on

1. Fungsi : membuat menu yang ada bisa berbalik arah, jika sudah sampai pada posisi palingbawah, kemudian ditekan panah ke bawan, menu pilihan akan berpindah ke atas.

2. Sintaks : set wrap [on/off]

3. Contoh :

set wrap on

4. Keterangan : Harga awal set wrap off, oleh karenanya kita harus menggantinya jika dalamprogram kita ingin agar menu bisa bergerak bebas. Dalam artian, jika penunjuk menu sudahberada pada posisi paling bawah, kemudian kita dan kolom menekan panah ke bawah, makapenunjuk menu akan pindah ke posisi paling atas. Demikian juga sebaliknya.

5.4.2 Perintah prompt

1. Fungsi : membuat menu tampilan menu yang bisa dipilih dengan menggerakkan anak panahatau huruf pertama dari tulisan di dalam menu.

2. Sintaks : @ baris,kolom prompt ’tulisan menunya’

3. Contoh :

@ 07,20 prompt ’a. Menu Sarapan Pagi’@ 08,20 prompt ’b. Menu Makan Siang ’@ 09,20 prompt ’c. Menu Makan Malam ’@ 10,20 prompt ’x. Keluar ’

4. Keterangan : Untuk memilih menu, dapat menggunakan anak panah kemudian menggantinyatombol Enter, atau huruf pertama masing-masing menu (a, b, c, x). Untuk membuat menuyang menyamping, maka nomor baris harusa sama dan dan kolom kemudian nomor kolomyang berbeda. Kalau pada contoh di atas, nomor baris sama dab nomor kolom berbeda.

Page 51: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

40 BAB 5. PROGRAM INPUT DATA DAN MENU

5.4.3 Perintah menu to

1. Fungsi : mengaitkan menu pilihan dengan suatu variabel.

2. Sintaks : menu to [nama-variabel]

3. Contoh :

@ 07,20 prompt ’a. Menu Sarapan Pagi’@ 08,20 prompt ’b. Menu Makan Siang ’@ 09,20 prompt ’c. Menu Makan Malam ’@ 10,20 prompt ’x. Keluar ’menu to makan

4. Keterangan : makan akan bernilai 1 jika pemakai memilih ’a. Menu Sarapan menggantinyaPagi’, akan bernilai 2 jika pemakai memilih ’b. Menu Makan Siang’, demikian seterusnya. Ni-lai makan inilah yang kemudian diseleksi dan dan kolom kemudian dijalankan nama programyang sesuai dengan pilihan yang yang dipilih oleh pemakai.

5.4.4 Perintah do

1. Fungsi : menjalan suatu program dari program lain, atau menjalankan suatu prosedur.

2. Sintaks : do [nama-program]

3. Contoh :

do logo

4. Keterangan : menjalankan program logo dari program lain. Hal ini berbeda dengan menja-lankan program logo dari program logo itu sendiri ... :)

5.4.5 Perintah do while

1. Fungsi : membuat suatu bagian program dijalankan berulang-ulang sampai kondisi untukberhenti terpenuhi.

2. Sintaks : do while [kondisi] ... enddo

3. Contoh :

do while .t.@ 07,20 prompt ’a. Menu Sarapan Pagi’@ 08,20 prompt ’b. Menu Makan Siang ’@ 09,20 prompt ’c. Menu Makan Malam ’@ 10,20 prompt ’x. Keluar ’menu to makan

enddo

4. Keterangan : bagian program yang menjalankan menu ini akan dijalankan berulang-ulang(looping) sampai terpenuhi kondisi untuk selesai. Kalau contoh di atas, belum ada perintahuntuk berhenti. Perintah do while harus diakhiri dengan enddo.

Page 52: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

5.5. CONTOH PROGRAM 41

5.4.6 Perintah do case

1. Fungsi : melakukan seleksi terhadap suatu nilai dan kemudian menentukan tindakan yangakan dilakukan.

2. Sintaks :

do casecase [kondisi-1]

\dotscase [kondisi-2]

\dotsendcase

3. Contoh :

do while .t.@ 07,20 prompt ’a. Menu Sarapan Pagi’@ 08,20 prompt ’b. Menu Makan Siang ’@ 09,20 prompt ’c. Menu Makan Malam ’@ 10,20 prompt ’x. Keluar ’menu to makando case

case makan=1do pagi

case makan=2do siang

case makan=3do malam

case makan=4exit && keluar atau program selesai

endcaseenddo

4. Keterangan : bagian program yang menjalankan menu ini akan dijalankan berulang-ulang(looping) sampai pemakai memilih menu ’x. Keluar’. Pada contoh di atas, maka dianggapada program pagi.prg, siang.prg, dan malam.prg. Perintah do case harus diakhiri denganendcase.

5.5 Contoh Program

Berdasarkan contoh-contoh sebelumnya, Anda dianggap sudah memilik program- program se-perti berikut :

• si.prg yaitu program untuk menampilkan tulisan ’Sistem Informasi’.

• dwi.prg yaitu program untuk menampilkan tulisan dwi yang tersusun dari huruf-huruf d-w-i.

• harga.prg yaitu program untuk menghitung harga satu item barang.

Kita dapat membuat sebuah program yang menggabungkan keempar program tersebut. Contohlengkap program program tersebut adalah sebagai berikut :

Page 53: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

42 BAB 5. PROGRAM INPUT DATA DAN MENU

/* -----------------------------------------------------------nama program : gabung.prgprogram menu yang akan menjalankan file-file sesuaidengan menu yang dipilih----------------------------------------------------------- */

set century on* mengatur tahun dicetak 4 digit

set date italian* mengatur format tanggal menjadi dd-mm-yyyy

set wrap on* mengatur pilian menu supaya bisa membalik

do while .t.* looping yang pasti akan dikerjakan

clear* mengapus layar

@ 07,15 prompt ’a. Tulisan Sistem Informasi ’@ 08,15 prompt ’b. Logo Dwi Sakethi ’@ 09,15 prompt ’c. Mengitung Harga Barang ’@ 10,15 prompt ’x. Selesai ’* membuat menu pilihan

menu to pilih* nilai pilihan menu disimpan ke variabel pilih

do case* penyeleksian kondisi

case pilih=1do si* jika pilih bernilai 1, akan menjalankan* program si.prg demikian seterusnya

case pilih=2do dwi

case pilih=3do harga

case pilih=4exit

endcasewait ’’

enddo* akhir looping do while

return/* akhir program, kembali ke sistem */

Page 54: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

5.6. TUGAS LATIHAN 43

Jika program gabung.prg kita kompilasi, terlihat bahwa kompilasi dilakukan juga terhadap program-program yang dijalankan oleh program gabung.prg. Hal tersebut tampak seperti pada tampilanberikut :

C:\dwi\clipper>\ca-52\bin\clipper gabungClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling GABUNG.PRGCompiling SI.PRGCompiling DWI.PRGCompiling HARGA.PRGCode size 1161, Symbols 656, Constants 1063

Gambar 5.2: Contoh Program Menu

Jika program gabung.exe kita jalankan,akan didapatkan hasil seperti gambardi samping. Untuk memilih menu, gu-nakan panah atas atau panah bawah,kemudian tekan tombol Enter. Da-pat juga dengan menekan tombol hurufpertama masing-masing menu.

5.6 Tugas Latihan

Sebagai bahan latihan dan Anda diharapkan untuk mencobanya.

1. Buatlah program untuk menghitung umur seseorang berdasarkan tanggal kelahiran.

2. Gabungkanlah program menghitung umur pada latihan sebelumnya ke dalam program ga-bungan.

Page 55: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

44 BAB 5. PROGRAM INPUT DATA DAN MENU

Page 56: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 6

Program Input Database

6.1 Pendahuluan

Pada pembahasan sebelumnya, pemasukan data hanya dilakukan di memory. Akibatnya jikakomputer dimatikan data pun akan hilang. Pada bahasan berikut ini, akan dilakukan pemasukkandata yang kemudian direkam ke suatu tabel (file data). Dengan adanya perekaman data ini,data tidak akan hilang meskipun komputer dimatikan. Dan memang kondisi seperti inilah yangsebenarnya dilakukan.

Kita merancang untuk membuat suatu menu yang terdiri atas beberapa menu seperti berikut :

1. Pemasukan/Editing Data, digunakan untuk memasukkan data baru atau mengedit data yangsudah ada.

2. Penghapusan Data, digunakan untuk menghapus data yang tidak digunakan atau data yangsalah sehingga tidak akan dipakai.

3. Lihat Data, digunakan untuk melihat data-data yang sudah ada di dalam tabel/file data.

4. Selesai

Program untuk pemasukkan data ini sangat bervariasi tergantung perancangannya. Oleh kare-nanya, boleh jadi kita akan menemukan perbedaan-perbedaan di antara beberapa program. Dalamprogram pemasukkan data ini, kita akan membuat variabel memory yang berkaitan dengan atribut(field). Untuk memudahkannya maka dibuat nama variabel memory sama dengan huruf m ditam-bah nama atribut (field). Contoh : Ini perlu dilakukan karena dalam programnya nanti, kita akan

No. Field Variabel1 NO PKAB mNO PKAB2 RESI mRESI3 PILIHAN 1 mPILIHAN 14 PILIHAN 2 mPILIHAN 25 NAMA SISWA mNAMA SISWA6 NO INDUK mNO INDUK7 JURUSAN mJURUSAN8 KODE SMA mKODE SMA9 NAMA SMA mNAMA SMA

10 KELAMIN mKELAMIN

Tabel 6.1: Nama Atribut dan Variabel Memory-nya

mengganti atribut field dengan variabel memory. Contohnya seperti berikut :

45

Page 57: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

46 BAB 6. PROGRAM INPUT DATABASE

replace NO_PKAB with mNO_PKABreplace PILIHAN_1 with mPILIHAN_1replace PILIHAN_2 with mPILIHAN_2replace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace JURUSAN with mJURUSANreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMIN

6.2 English Structured

Kita akan mencoba menggunakan sebuah tools yang disebut English Structured. English Stru-ctured adalah ungkapan dalam keseharian yang menunjukkan urutan proses, perhitungan, penye-leksian kondisi terhadap suatu masalah.

1. Sekumpulan blok pernyataan. Contoh :

Hitung totalSet pajak penjualan sama dengan total dikalikan

bobot pajak penjualanSet total sama dengan total ditambah pajak penjualanHitung diskonSet total bersih sama dengan total dikurangi diskonCetak total bersih di faktur

2. Struktur keputusan. Contoh :

IF (total lebih besar dari 500000) makaSet diskon sama dengan total dikalikan 15%

jika tidakSet diskon sama dengan nol

3. Struktur perulangan. Contoh :

DO WHILE (condition)do block

REPEAT do block UNTIL (condition)

English Structured untuk program pemasukan data ini kita buat seperti berikut :

1. Program Menu :

Set wrap menjadi onHapus layarKerjakan selama benar

Tampilkan menu Pemasukan/Editing DataTampilkan menu Penghapusan DataTampilkan menu Browsing DataTampilkan menu SelesaiRekam gambar tampilan

Page 58: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.2. ENGLISH STRUCTURED 47

Hapus layarJika pilihan sama dg. 1 jalankan program input dataJika pilihan sama dg. 2 jalankan program hapus dataJika pilihan sama dg. 3 jalankan program browsing dataJika pilihan sama dg. 4 keluar dari programKembalikan gambar tampilan

Selesai

2. Program Input Data :

Buka file dataBuat indeks sesuai atribut kunciBeri harga awal variabel kunci indeksKerjakan selama benar

Tampilkan tulisan untuk input/edit dataInput variabel memory yang menjadi kunci indeksJika menekan tombol ESC maka keluarCari variabel kunci indeksJika ditemukan maka

Masukkan atribut/field ke variabel memoryjika tidakIsi variabel memory sesuai atribut/field

Input variabel memory selain kunci indeksJika tidak menekan ESC makaCari variabel kunci indeksJika tidak ketemu

Tambahkan record kosongGanti field dengan variabelnya

Tutup file data dan indexSelesai

3. Program Hapus Data :

Buka file dataBuat indeks sesuai atribut kunciBeri harga awal variabel kunci indeksKerjakan selama benar

Tampilkan tulisan untuk input/edit dataInput variabel memory yang menjadi kunci indeksJika menekan tombol ESC maka keluarCari variabel kunci indeksJika ditemukan maka

Tampilkan atribut/fieldInput pertanyaan mau dihapusJika dihapus maka

Hapus data tersebutTutup file data dan indexSelesai

4. Program Brow Data :

Buka file dataBuat indeks sesuai atribut kunciTampilkan data dengan dbedit()Tutup file data dan indexSelesai

Page 59: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

48 BAB 6. PROGRAM INPUT DATABASE

6.3 Perintah yang Digunakan

Perintah-perintah yang digunakan untuk mengimplementasikan masalah-masalah tersebut diatas ada beberapa perintah. Sebagian perintah sudah dibahas pada bagian-bagian sebelumnya. Disini hanya akan dibahas perintah-perintah yang baru.

6.3.1 Perintah save screen to

1. Fungsi : Perintah ini dipakai untuk merekam tampilan tulisan di monitor ke memory. Bia-sanya dilakukan pada suatu proses yang disusul proses lain tapi tampilan akan dikembalikanseperti semula.

Gambar 6.1: Ilustrasi Perubahan Tampilan

2. Sintaks : save screen to nama variabel

3. Contoh :

do while .t.@ 07,10 prompt ’1. Pemasukan/Editing Data ’@ 08,10 prompt ’2. Penghapusan Editing Data’@ 09,10 prompt ’3. Browsing Data ’@ 10,10 prompt ’4. Selesai ’menu to pilihansave screen to lyr_menudo case

case pilihan = 4 .or. lastkey()=K_ESCexit

...endcaserestore screen from lyr_menu

enddo

4. Keterangan : Tampilan menu akan direkam ke variabel lyr menu. Setelah masuk ke salahsatu menu yang dipilih, tampilan layar berubah. Ketika kembali ke menu, maka tampilandikembalikan ke bentuk semula.

6.3.2 Perintah restore screen from

1. Fungsi : Mengembalikan tampilan ke suatu bentuk tampilan sebelumnya. Untuk bisa meng-embalikan tampilan ini, tampilan harus direkam dulu dengan perintah save screen to.

Page 60: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 49

2. Sintaks : restore screen from nama variabel

3. Contoh :

save screen to lyr_menudo case

case pilihan = 4 .or. lastkey()=K_ESCexit

...endcaserestore screen from lyr_menu

4. Keterangan : Perintah ini sangat berhubungan dengan perintah . save screen to. Na-ma variabel harus sesuai dengan nama variabel pada save screen to.

6.3.3 Perintah seek

1. Fungsi : Melakukan pencarian data sesuai indeks. Hasil pencarian bisa ketemu atau tidakketemu. Jika ditemukan, maka nilai found() adalah .t. (benar) dan jika tidak ditemukanmaka nilai found() adalah .f. (salah). Dengan adanya mekanisme ini, maka tidak mungkinterjadi data kembar.

2. Sintaks : seek [variabel memory /nilai]

3. Contoh :

seek mNO_PKABif found()...endif

seek ’110668’if found()...endif

4. Keterangan : Perintah seek ini biasanya dilanjutkan dengan perintah found() sebagai alatpengecekan apakah pencarian mendapatkan hasil (ketemu) atau tidak mendapatkan hasil(tidak ketemu). Dan sebaliknya, sebagai pendahulu, maka perintah ini harus diawali denganperintah index. Perintah index dapat dilihat pada tulisan sebelumnya.

6.3.4 Perintah found()

1. Fungsi : Melakukan pengecekan terhadap hasil pencarian data sesuai indeks. Hasil pencarianbisa ketemu atau tidak ketemu. Jika ditemukan, maka nilai found() adalah .t. (benar) danjika tidak ditemukan maka nilai found() adalah .f. (salah). Dengan adanya mekanisme ini,maka tidak mungkin terjadi data kembar.

2. Sintaks : found()

3. Contoh :

Page 61: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

50 BAB 6. PROGRAM INPUT DATABASE

seek mNO_PKABif found()...endif

seek ’110668’if found()...endif

4. Keterangan : Lihat juga contoh pada perintah if . . . else . . . endif.

6.3.5 Perintah if . . . else . . . endif

1. Fungsi : Melakukan penyeleksian kondisi sesuai yang dikehendaki dan kemudian melakukanproses sesuai dengan kondisi yang terpenuhi.

2. Sintaks : if [kondisi] . . . else . . . endif

3. Contoh :

if .not. found()append blank

endif

if found()mNAMA_SISWA = NAMA_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMAmKELAMIN = KELAMIN

elsemNAMA_SISWA = space(30)mNO_INDUK = space(10)mKODE_SMA = space(8)mKELAMIN = space(1)

endif

4. Keterangan : Pada contoh pertama, hanya terdapat satu proses yang akan dikerjakan jikakondisi terpenuhi. Yaitu jika data yang dicari tidak ada ( .not. found()) akan dilakukanpenambahan record kosong. Sedangkan pada contoh kedua, ada dua blok proses yang akandikerjakan tergantung kondisi. Jika ada ditemukan (ada di dalam data), variabel memoryakan diisi dengan data yang ada (atribut/field). Jika data tidak ada, variabel memory diisidengan nilai-nilai kosong.

6.3.6 Perintah #include

1. Fungsi : Menyertakan file lain dalam proses kompilasi program. Dengan perintah ini, programatau file yang terpisah dapat saling dikaitkan.

2. Sintaks : #include ’nama file’

3. Contoh : #include ’inkey.ch’

4. Keterangan : File inkey.ch adalah file yang berisi definisi-definisi tombol. Dengan diserta-kannya file inkey.ch ini, pembacaaan dan pembuatan program menjadi lebih mudah. Sebagaicontoh lihat tabel berikut : Dengan adanya file inkey.ch, kita tidak perlu menghafal nilai-nilaisuatu tombol. Untuk lebih jelasnya bisa buka file inkey.ch.

Page 62: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 51

Nomor Tombol Nilai Nilai inkey.ch1 Escape 27 K ESC2 Enter 13 K ENTER3 F1 28 K F14 F2 -1 K F2

10 . . . . . . . . .

Tabel 6.2: Kode Tombol

6.3.7 Perintah lastkey()

1. Fungsi : Mengetahui tombol terakhir yang ditekan.

2. Sintaks : lastkey()

3. Contoh :

@05,21 get mNO_PKABreadif lastkey()=K_ESC

exitendif

4. Keterangan : Biasanya digunakan untuk mendeteksi apakah pemakai menekan tombol ESC(misalnya) ketika pemasukan data atau di menu. File inkey.ch adalah file yang berisi definisi-definisi tombol. Dengan disertakannya file inkey.ch ini, pembacaaan dan pembuatan programmenjadi lebih mudah. Sebagai contoh lihat tabel berikut : Dengan adanya file inkey.ch, kitatidak perlu menghafal nilai-nilai suatu tombol. Untuk lebih jelasnya bisa buka file inkey.ch.

6.3.8 Perintah dbedit()

1. Fungsi : Menampilkan isi suatu tabel (file data) dalam bentuk baris dan kolom.

2. Sintaks : dbedit(baris1,kolom1,baris2,kolom2)

3. Contoh :

procedure lihatuse ipa2002index on NO_PKAB to ipa2002dbedit(0,0,24,78)close indexclose datareturn

4. Keterangan : Baris1 dan kolom1 menunjukkan posisi kiri atas dan baris2 serta kolom2 me-nunjukkan posisi kanan bawah. Untuk memindah-mindah penunjuk bisa digunakan tombolpanah, pg up, pg dn, home, dan sebagainya.

Page 63: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

52 BAB 6. PROGRAM INPUT DATABASE

Gambar 6.2: Tampilan Perintah dbedit()

6.3.9 Perintah delete

1. Fungsi : Menghapus suatu record pada posisi record aktif.

2. Sintaks : delete

3. Contoh :

seek mNO_PKABif found()

save screen to belum_hapus@06,21 say KODE_SMA@07,21 say KELAMIN@08,21 say NO_INDUK@09,21 say NAMA_SISWAhapus = ’T’@ 11,7 say "Mau dihapus [y/t] : " get hapusreadif hapus=’Y’ .or. hapus=’y’ .and. lastkey()#K_ESC

deleteendifrestore screen from belum_hapus

else@06,21 say ’Data tidak ada ... !’wait ’’@06,21 say ’ ’

endif

4. Keterangan : Perintah delete diawali dengan perintah seek untuk mengarahkan pointer kesuatu record tertentu. Perintah ini berhubungan dengan perintah set delete on.

Contoh selengkapnya dari program untuk pemasukan, editing, penghapusan, dan browsing datadapat dilihat seperti berikut.

Page 64: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 53

6.3.10 Program Pemasukan Data

Model-model program pemasukkan data ada berbagai macam. Berbeda programmer terkadangberbeda gaya. Pada contoh berikut akan diberikan program yang berfungsi dua hal sekaligus yaitu:

1. Memasukkan data baru.

2. Mengedit data lama.

Program berikut memerlukan basis data bernama IPA2002.DBF yang semestinya sudah ada karenasudah dibuat pada latihan sebelumnya.

/* ---------------------------------------------------file : ent.prgprogram untuk memasukkan data baru danmengedit data lamaprogram ini memerlukan file ipa2002.dbf

file ini ketika di-link memerlukan library fast.libkarena 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

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 : ’

Page 65: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

54 BAB 6. PROGRAM INPUT DATABASE

@ 7,7 say ’Kelamin : ’@ 8,7 say ’No. Induk : ’@ 9,7 say ’Nama Siswa : ’

* mencetak tampilan pemasukan data

@05,21 get mNO_PKABread

* input awal adalah variabel kunci

if lastkey()=K_ESCexit

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_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMAmKELAMIN = KELAMIN

else* 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_SISWAread

* memasukkan data-data selain yang menjadi kunci

if lastkey()#K_ESC* jika tidak menekan tombol ESC artinya tidak* melakukan pembatalan

seek mNO_PKABif .not. found()

append blank* karena data baru maka ditambahkan record kosong* ke dalam basis datanya

endifreplace NO_PKAB with mNO_PKAB

Page 66: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 55

replace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMIN

* merekam variabel memori ke field-fieldnya

endif

enddo* akhir looping pemasukan data

close index* menutup index

close data* menutup file database

clear* membersihkan layar kembali

return* kembali ke sistem atau program sebelumnya

Kemudian program di-compile dan di-link sesuai dengan letak program Clipper. Jika belum mela-kukan pengaturan environment variables akan ditemukan pesan kesalahan seperti berikut

Z:\home\dwijim\kuliah\clipper>ca-52\bin\clipper ent.prgClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling ENT.PRGENT.PRG(17) Fatal C3007 Can’t open #include file: ’inkey.ch’

Jika demikian maka berikan pengaturan seperti berikut :

Z:\home\dwijim\kuliah\clipper>set include=ca-52\includeZ:\home\dwijim\kuliah\clipper>set lib=ca-52\libZ:\home\dwijim\kuliah\clipper>ca-52\bin\clipper entClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling ENT.PRGCode size 656, Symbols 432, Constants 240

Z:\home\dwijim\kuliah\clipper>ca-52\bin\blinker file ent lib fast

BLINKER : overlay opsize set to 40 Kb - minimum is 14 Kb (SETENGLISH)

BLINKER : link was successful

ENT.EXE (268 Kb) (0.3 seconds)

Page 67: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

56 BAB 6. PROGRAM INPUT DATABASE

Sampai di sini program input sudah berhasil dikembangkan. Selanjutnya tinggal mencoba menja-lankan program pemasukan data tersebut dan semoga bisa berjalan. Untuk menjalankan programini, cukup ketikkan perintah ent enter .

Gambar 6.3: Program Pemasukan Data

6.3.11 Program Penghapusan Data

Setelah pemasukan dan pengeditan data maka biasanya suatu sistem dilengkapi juga denganpenghapusan data. Sebagaimana halnya pemasukan data, penghapusan data juga ada berbagaimacam model. Contoh program untuk menghapus data bisa dilihat pada contoh berikut.

/* ---------------------------------------------------file : hapus.prgprogram untuk menghapus dataprogram ini memerlukan file ipa2002.dbf

file ini ketika di-link memerlukan library fast.libkarena 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

Page 68: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 57

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 ’Penghapusan 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 : ’

*menampilkan tulisan penghapusan data

@05,21 get mNO_PKABread

* memasukan field yang menjadi kunci

if lastkey()=K_ESCexit

* 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()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

Page 69: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

58 BAB 6. PROGRAM INPUT DATABASE

@ 11,7 say "Mau dihapus [y/t] : " get hapus pict ’@!’read

* menanyakan untuk meyakinkan bahwa data akan dihapus

if hapus=’Y’deletepackwait ’Data sudah dihapus’

* jika yakin maka data betul-betul dihapus

endifrestore 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

endifenddo* akhir looping pemasukan data

close index* menutup index

close data* menutup file database

clear* membersihkan layar kembali

return* kembali ke sistem atau program sebelumnya

Hasil compile dan link :

Z:\home\dwijim\kuliah\clipper>ca-52\bin\clipper hapus.prgClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling HAPUS.PRGCode size 631, Symbols 512, Constants 297

Page 70: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 59

Z:\home\dwijim\kuliah\clipper>ca-52\bin\blinker file hapus lib fast

BLINKER : overlay opsize set to 40 Kb - minimum is 14 Kb (SETENGLISH)

BLINKER : link was successful

HAPUS.EXE (268 Kb) (0.2 seconds)

Gambar 6.4: Program Penghapusan Data

Fasilitas tambahan yang biasanya diberikan adalah kemampuan untuk menampilkan data-data yang sudah dimasukkan. Ini untuk meyakinkan bahwa data yang dimasukkan sudah disimpandengan benar. Untuk menampilkan data-data pada suatu basis data, sangat mudah dilakukandengan Clipper. Cukup dengan menggunakan satu fungsi dbedit() saja. Contoh program untukmenampilkan data dapat dilihat seperti berikut :

/* ---------------------------------------------------file : lihat.prgprogram untuk menampilkan data pada suatu databaseprogram ini memerlukan file ipa2002.dbf

file ini ketika di-link memerlukan library fast.libkarena ada perintah wall()jika tidak memiliki fast.lib,perintah wall() bisa di-remark saja

link : blinker file ent lib fast

up date : 29 september 2009--------------------------------------------------- */

clear* membersihkan layar

wall(0,0,24,79)* membuat latar belakang seperti tembok bata merah

use ipa2002* membuka file database ipa2002.dbf

index on NO_PKAB to ipa2002

Page 71: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

60 BAB 6. PROGRAM INPUT DATABASE

* membuat index dengan kuncinya NO_PKAB* supaya data terurut berdasarkan NO_PKAB

@ 4,6 to 21,76* membuat kotak persis di luar area penampilan data

dbedit(5,7,20,75)* menampilkan data pada area tertentu

return* kembali ke sistem atau program sebelumnya

Hasil compile dan link

Z:\home\dwijim\kuliah\clipper>ca-52\bin\clipper lihat.prgClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling LIHAT.PRGCode size 148, Symbols 176, Constants 44

blinker file lihat lib fast

BLINKER : overlay opsize set to 40 Kb - minimum is 14 Kb (DBEDSETUP)

BLINKER : link was successful

LIHAT.EXE (276 Kb) (0.2 seconds)

6.3.12 Program Menu Gabungan

Selanjutnya ketiga program di atas yaitu pemasukan, penghapusan dan lihat data akan diga-bungkan. Untuk bisa digabung tentu saja ketiga program tersebut harus sudah selesai dan berjalandengan baik.

/* ---------------------------------------------------file : menux.prgprogram untuk menggabungkan program :pemasukan, penghapusan dan lihat data

program ini memerlukan file :ipa2002.dbf, ent.prg, hapus.prg, lihat.prg

file ini ketika di-link memerlukan library fast.libkarena ada perintah wall(), dan tetris()jika tidak memiliki fast.lib,perintah wall() dan tetris() bisa di-remark saja

link : blinker file menux lib fast

up date : 29 september 2009--------------------------------------------------- */

Page 72: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.3. PERINTAH YANG DIGUNAKAN 61

Gambar 6.5: Program Menampilkan Data

#include ’inkey.ch’* menyertakan file definisi kode-kode tombol* karena di dalam program ini ada K\_ESC

tone(500,100)*mengeluarkan suara

set wrap on* membuat menu supaya bisa membalik dari* atas ke bawah atau dari bawah ke atas

clear* membersihkan layar

do while .t.* membuat looping

wall (0,0,24,79)* membuat latar belakang tembok

@7,15 clear to 20,75* membersihkan layar pada area 7,15 sampai 20,75

@8,30 say ’program menu’@10,17 prompt "1. Pemasukan data " ;

message " menu untuk memasukkan data/mengedit data"@11,17 prompt "2. Penghapusan data " ;

message " menu untuk memasukkan data/mengedit data"

Page 73: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

62 BAB 6. PROGRAM INPUT DATABASE

@12,17 prompt "3. Browsing data " ;message " menu untuk memasukkan data / mengedit data"

@13,17 prompt "4. Game Tetris " ;message " menu untuk memasukkan data / mengedit data"

* membuat menu pilihan* tanda ; untuk memotong baris program karena terlalu panjang

menu to pilihan* hasil menu disimpan ke variabel bernama pilihan

if lastkey() = K\_ESCexit* jika menekan tombol ESC maka program keluar dan selesai

endifdo case

case pilihan =1do ent* menjalankan program pemasukan data

case pilihan = 2do hapus* menjalankan program penghapusan data

case pilihan = 3do lihat* menjalankan program menampilkan data

case pilihan = 4tetris()* menjalankan game tetris dan fast.lib

end caseenddo* akhir looping menu

return/* kembali ke sistem atau program sebelumnya */

Hasil compile dan link :

Z:\home\dwijim\kuliah\clipper>ca-52\bin\clipper menux.prgClipper (R) Version 5.2Copyright (c) 1985-1993, Computer Associates International, Inc.Microsoft C Floating Point Support RoutinesCopyright (c) Microsoft Corp 1984-1987. All Rights Reserved.307K availableCompiling MENUX.PRGCompiling ENT.PRGCompiling HAPUS.PRGCompiling LIHAT.PRGCode size 1793, Symbols 1168, Constants 911

BLINKER : overlay opsize set to 40 Kb - minimum is 15 Kb (GIRO)

BLINKER : link was successful

MENUX.EXE (301 Kb) (0.3 seconds)

Page 74: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

6.4. TUGAS LATIHAN 63

Gambar 6.6: Program Menu Gabungan

6.4 Tugas Latihan

Setelah mempelajari program tersebut di atas, maka sekarang buatlah program yang memilikifungsi seperti pada contoh tetapi untuk tabel (data) kode program studi dan kode nama-namaSLTA. Jelasnya adalah membuat program untuk pemasukan data, penghapusan data dan melihatdata untuk data-data kode program studi dan kode nama-nama SLTA. Kemudian untuk entripeserta PKAB, program juga dilengkapi untuk entri atribut-atribut lainnya sesuai dengan field-field yang ada pada berkas IPA2002.DBF. Kemudian program tersebut disatukan dalam programmenu sehingga kurang lebih memiliki struktur seperti berikut :

Page 75: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

64 BAB 6. PROGRAM INPUT DATABASE

Gambar 6.7: Perancangan Menu Latihan

Page 76: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 7

Validasi Input Data

7.1 Pendahuluan

Pada pembahasan sebelumnya, dalam proses pemasukan data tidak dilakukan proses validasi.Proses validasi maksudnya adalah proses pengujian apakah data yang dimasukkan benar. Misalkanpada saat pemasukan Jenis Kelamin, tidak dilakukan pengujian apakah pemakai memasukkan 1atau 2, atau harus L atau P, dan sebagainya tergantung perancangan. Pemakai dapat mengisi de-ngan apapun tanpa ada peringatan dari sistem bahwa data yang dimasukkan salah. Juga misalkanpada saat pemasukan kode SMA, pemakai masih dapat memasukkan kode SMA yang tidak adadalam data. Itulah yang dimaksud dengan belum adanya proses validasi di dalam sistem.

Semestinya sistem memberikan peringatan jika ada kesalahan dalam pemasukan data. Sebabjika tidak dilakukan validasi, maka informasi yang didapat sebagai hasil pengolahan data menjaditidak akurat. Dengan demikian informasi tidak dapat digunakan dalam pengambilan keputusan.

Yang dimaksud dengan menguji apakah suatu data benar atau tidak adalah apakah datasesuai dengan daerah asal dari data itu, bukan benar sesuai dengan realita. Misalnya jenis kelaminboleh diisi dengan L untuk laki-laki dan P untuk perempuan. Maka jika suatu data diisi dengan Lataukah dengan P akan dianggap benar. Apakah orang itu benar-benar L atau P, tentu saja tidakbisa dideteksi dengan sistem ini.

7.2 Cara Validasi

Secara garis besar ada dua macam cara untuk melakukan validasi. Cara pertama dengan menggu-nakan perintah valid dilanjutkan dengan suatu kondisi, bisa dikatakan sebagai validasi sederhana.Sedangkan cara kedua menggunakan perintah valid dilanjutkan dengan menjalankan suatu fungsiatau bisa disebut validasi dengan fungsi. Pada prinsipnya, kedua model tersebut melakukan prose-dur yang sama, yaitu selama perintah valid belum menghasilkan nilai .t., maka proses pemasukandata tidak dapat diteruskan ke attribute berikutnya.

Seandainya daerah asal yang menjadi persyaratan validasi tidak banyak (misal tidak sampaisepuluh), akan lebih mudah menggunakan perintah valid kondisinya. Misalnya : validasi kodejenis kelamin, hanya ada laki-laki atau perempuan, validasi pencetakan ke printer atau ke layar.Sedangkan untuk validasi yang memiliki banyak kondisi, akan lebih mudah jika kita melakukannyadengan validasi fungsi. Contoh untuk hal ini, misalnya : pengisian kode sekolah, pengisian kodepropinsi, pengisian kode kabupaten. Kode-kode yang dimasukkan harus merupakan kode yangbenar, artinya kode tersebut ada di dalam kode yang tersedia. Selain untuk validasi, fungsi tersebutjuga bisa dikembangkan sehingga dapat dipakai untuk menampilkan kode-kode propinsi, kode-kodeSMA, kode-kode kabupaten jika pemakai tidak mengetahui kode yang seharusnya.

7.3 Validasi dengan Kondisi

Sebelumnya, akan diperlihatkan contoh program yang belum melakukan validasi. Misalkan kitalihat program berikut :

65

Page 77: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

66 BAB 7. VALIDASI INPUT DATA

* nama program entri.prg#include ’inkey.ch’clearuse ipa2002index on NO_PKAB to ipa2002mNO_PKAB = space(5)do while .t.

@ 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 : ’@05,21 get mNO_PKABreadif lastkey()=K_ESC

exitendifseek mNO_PKABif found()

mNAMA_SISWA = NAMA_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMAmKELAMIN = KELAMIN

elsemNAMA_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_SISWAreadif lastkey()#K_ESC

seek mNO_PKABif .not. found()

append blankendifreplace NO_PKAB with mNO_PKABreplace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMIN

endifenddoclose indexclose datareturn

Jika program kita jalankan, dan pada item Jenis Kelamin diisi dengan isian yang sembarang,ternyata sistem tidak menolaknya. Apakah hal yang seperti ini akan dibiarkan terjadi ? Ingat bahwa

Page 78: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.3. VALIDASI DENGAN KONDISI 67

’Garbage In Garbage Out. Dari gambar tersebut, terlihat bahwa Jenis Kelamin yang seharusnya

Gambar 7.1: Sistem Tanpa Validasi

diisi dengan 1 untuk laki-laki dan 2 untuk perempuan, ternyata diisi dengan ’X’. Bukan hanyadengan ’X’, diisi apa pun, sistem tidak akan menolaknya.

Karena pada pengisian jenis kelamin, hanya ditentukan bahwa jenis kelamin harus diisi denganlaki-laki (1) atau perempuan (2), maka dapat dikatakan bahwa kondisi untuk syarat validasi sedikit(hanya dua kondisi). Oleh karenya akan lebih mudah kalau validasi dilakukan dengan perintah validdiikuti dengan kondisi.

7.3.1 Perintah valid

indent

1. Fungsi : Melakukan validasi terhadap data yang dimasukkan oleh pemakai.

2. Sintaks : @ baris,kolom get nama variabel [pict ’9’] [valid [’kondisi’—fungsi]]

3. Contoh :

* potongan program ini sama dengan program entri* hanya ditampilkan yang berbedanya saja@ 3,7 say ’Pemasukan/Editing Peserta PKAB’...@ 7,7 say ’Kelamin : [1:Laki-laki 2:Perempuan]’...@ 07,21 get mKELAMIN picture ’9’ valid mKELAMIN$’12’

@ 05,21 get mNO_PKABreadif lastkey()=K_ESC

exitendif

4. Keterangan : perintah picture untuk membatasi tipe data yang bisa dimasukkan. Perintahpicture ’9’ artinya data yang bisa dimasukkan hanya data yang berjenis numeric dan ba-nyaknya satu digit. Sedangkan perintah valid mKELAMIN$’12’ artinya mKELAMIN harusberupa karakter 1 atau 2. Arti sebenarnya adalah bahwa mKELAMIN harus merupakankarakter yang terkandung dalam karakter atau string ’12’.

Setelah kita melakukan validasi, maka hasil dari sistem tampak seperti berikut.

Page 79: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

68 BAB 7. VALIDASI INPUT DATA

Gambar 7.2: Sistem dengan Validasi

Dari gambar terlihat bahwa jika attribute jenis kelamin diisi dengan data yang salah, sistemakan menolaknya. Pada contoh, jenis kelamin diisi dengan ’9’, maka isian tidak dapat diteruskanke isian berikutnya. Kursor masih tetap pada isian jenis kelamin.

7.4 Validasi dengan Fungsi

Validasi dengan fungsi lebih cocok diterapkan pada proses validasi dengan banyak kondisi.Untuk keperluan itu, kita buat suatu tabel yang berisi data- data. Paling tidak tabel-tabel yangdiperlukan berisi atribut KODE dan KETERANGAN. Data yang dimasukkan ke dalam sistemakan dicocokan dengan data di dalam tabel. Jika data yang dimasukkan ternyata tidak ada didalam tabel, artinya data yang dimasukkan salah dan sistem akan memberi peringatan.

Fungsi yang dibuat harus menghasilkan nilai .t. atau .f. sesuai kondisinya. Nilai .t. di-dapat jika data yang dimasukkan benar dan sebaliknya. Nilai yang dimasukkan benar artinyadata tersebut ada di dalam tabel. Kemudian KETERANGAN dari KODE yang dimasukkan akanditampilkan di layar pada posisi baris dan kolom yang ditentukan. Jika ternyata data yang dima-sukkan salah, maka sistem akan memberi peringatan ’Kode salah ...!’ dan fungsi harus memberikannilai .f..

7.4.1 Structured English

Untuk lebih mempermudah, dapat dilihat proses validasi menggunakan fungsi pada structuredEnglish berikut :

Aktifkan tabel kode SMACari kode yang dimasukkanJika ditemukan maka

Tampilkan nama SMA pada posisi yang ditentukanSet nilai hasil fungsi menjadi .t.

jika tidak ditemukan makaTampilkan penjelasan ’Kode salah’ padaposisi yang ditentukan

Set nilai hasil fungsi menjadi .f.Aktifkan tabel PKABKembalikan nilai hasil fungsi

7.4.2 Contoh Program

Contoh program lengkap untuk masalah pemasukkan kode SMA dan jenis kelamin dapat dilihatseperti berikut :

/* ---------------------------------------------------

Page 80: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.4. VALIDASI DENGAN FUNGSI 69

file : entriv.prgprogram untuk memasukkan data baru danmengedit data lama dengan validasiprogram ini memerlukan fileipa2002.dbf dan slta.dbf

file ini ketika di-link memerlukan library fast.libkarena ada perintah wall()jika tidak memiliki fast.lib,perintah wall() bisa di-remark saja

link : blinker file entriv lib fast

up date : 29 september 2009--------------------------------------------------- */

#include ’inkey.ch’* menyertakan file definisi kode-kode tombol* karena di dalam program ini ada K_ESC

clear* membersihkan layar

select b* karena akan membuka dua file dbf,* jadi menggunakan select

use SMA* membuka file database SMA.DBF untuk select b

index on KODE_SMA to SMA* index dengan kunci kode_sma

select ause IPA2002* membuka file database IPA2002.DBF untuk select a

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 sampai ada tombol ESC

@ 3,7 say ’Pemasukan/Editing Peserta PKAB’@ 5,7 say ’No. PKAB : ’@ 6,7 say ’Kode SMA : ’@ 7,7 say ’Kelamin : [1:Laki-laki 2:Perempuan]’@ 8,7 say ’No. Induk : ’

Page 81: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

70 BAB 7. VALIDASI INPUT DATA

@ 9,7 say ’Nama Siswa : ’@10,7 say ’B. Indonesia: ’@11,7 say ’B. Inggris : ’@12,7 say ’Matematika : ’@13,7 say ’Fisika : ’@14,7 say ’Kimia : ’@15,7 say ’Biologi : ’

* menampilkan tulisan untuk pemasukan data

@05,21 get mNO_PKABread

* input awal adalah variabel kunci

if lastkey()=K_ESCexit

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_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMAmKELAMIN = KELAMIN

else* 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 pict ’99999999’ valid cari_sma(@mKODE_SMA,06,31)* memasukkan kode sma dengan validasi menggunakan fungsi cari_sma

@07,21 get mKELAMIN pict ’9’ valid mKELAMIN$’12’* memasukkan jenis kelamin dengan validasi biasa* jenis kelamin hanya boleh diisi dengan karakter 1 atau 2

@08,21 get mNO_INDUK@09,21 get mNAMA_SISWA

* memasukkan data-data lain

read* get diakhiri dengan perintah read

if lastkey()#K_ESC

Page 82: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.4. VALIDASI DENGAN FUNGSI 71

* jika tidak menekan tombol ESC berarti data akan direkam

seek mNO_PKABif .not. found()

append blank* jika dicari data tidak ada, berarti data baru* maka tambahkan baris kosong

endifreplace NO_PKAB with mNO_PKABreplace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMIN

* merekam, nilai-nilai di field diganti dengan* nilai-nilai yang ada di memori

endif

enddo* akhir looping pemasukan data

close index* menutup index

close data* menutup file database

clear* membersihkan layar kembali

return* kembali ke sistem atau program sebelumnya

function cari_SMA* fungsi untuk melakukan validasi terhadap kode smaparameter kode_cari,baris,kolom* kode cari ini adalah kode yang diisi oleh pemakai* baris dan kolom adalah posisi untuk mencetak* nama sekolah atau keterangan kode salah

save screen to layar_akhir* sebelum tampilan berubah maka direkam dulu

select_akhir = select()* merekam select terakhir, setelah ini akan masuk ke* database SMA dan kemudian akan kembali ke IPA2002

select b* pindah ke database SMA

if kode_cari=space(7)* jika kode sms kosong, berarti pemakai bingung

Page 83: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

72 BAB 7. VALIDASI INPUT DATA

* maka akan ditampilkan kode-kode sma yang ada

@ 6,23 clear to 23,74@ 6,23 to 23,74

* menghapus layar dan membuat kotak

dbedit(7,24,22,73)* menampilkan isi dari database SMA

if lastkey()=K_ENTER* jika pemakai menekan tombol ENTER berarti* pemakai memilih kode yang sedang disorot

kode_cari = KODE_SMAendif

endifgo top* mengembalikan penunjuk record ke awal

restore screen from layar_akhir* mengembalikan tampilan layar ke tampilan sebelumnya

seek kode_cari* cari kode sma yang dipilih atau yang diisikanif found()

@ baris,kolom say NAMA_SMAhasil = .t.

* jika ketemu berarti kode sma tersebut ada maka* tampilkan nama smanya dan hasil fungsi adalah .t.else

@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

* jika tidak ketemu berarti kode sma tersebut tidak ada maka* tampilkan ’kode salah’ dan hasil fungsi adalah .f.endif

select(select_akhir)* mengembalikan database yang sedang digunakan* ke ipa2002

return hasil* kembali ke proses sebelumnya dan mengembalikan nilai* .t. atau .f. tergantung kode benar atau salah

Hasil running program jika kode SMA yang dimasukkan salah, tampak seperti berikut : Sedangkanjika kode SMA-nya benar, maka pemasukkan data dapat dilanjutkan ke proses berikutnya.

7.5 Latihan

Buatlah program untuk memasukkan data-data peserta PKAB sesuai dengan atribut pada tabelyang telah dibuat. Semestinya di sana terdapat pemasukan data program studi pilihan satu danpilihan dua. Lakukan validasi terhadap pilihan yang dimasukkan ke dalam sistem.

Page 84: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.6. APA RESIKONYA ? 73

Gambar 7.3: Sistem dengan Validasi Kode SMA yang Salah

Gambar 7.4: Sistem dengan Validasi Kode SMA yang Benar

7.6 Apa Resikonya ?

Dengan adanya validasi, pemakai harus memasukkan data benar ke dalam sistem. Masalah yangtimbul adalah seandainya pemakai tidak mengetahui dengan benar kode-kode yang harus diisi.Karena jika pemakai belum mengisi dengan isian yang benar, maka selamanya proses pengisiantidak bisa diteruskan.

Untuk itulah perlu disediakan fasilitas bagi pengguna untuk melihat kode-kode yang ada didalam sistem. Dengan tersedianya fasilitas ini, pemakai dapat melihat daftar kode dan kemudianmemilih kode yang ada di dalamnya. Hal ini penting juga, karena tidak jarang data yang tertulisdi form isian bukan data yang sebenarnya, walau sudah disediakan buku panduan.

Pembuatan fungsi untuk menampilkan kode-kode yang ada dapat dilakukan dengan banyakvariasi. Salah satu yang akan kita lakukan adalah dengan memodifikasi fungsi untuk validasisehingga dapat digunakan untuk menampilkan kode. Misal kita menentukan bahwa jika isian kodeSMA diisi dengan kosong (spasi), maka sistem akan menampilkan kode-kode yang ada.

7.6.1 Structured English

Dengan adanya tambahan fungsi untuk menampilkan kode-kode yang ada, maka fungsi validasidimodifikasi. Oleh karena itu, fungsi validasi (misal validasi kode SMA) diubah menjadi sepertiberikut :

Aktifkan tabel kode SMAJika kode masih kosong maka

Tampilkan isi tabel dengan dbedit()Jika pemakai menekan tombol ENTER makaAmbil kode dari tabel ke varibael cari kode

Cari kode yang dimasukkanJika ditemukan maka

Page 85: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

74 BAB 7. VALIDASI INPUT DATA

Tampilkan nama SMA pada posisi yang ditentukanSet nilai hasil fungsi menjadi .t.

jika tidak makaTampilkan penjelasan ’Kode salah’ pada

posisi yang ditentukanSet nilai hasil fungsi menjadi .f.

Aktifkan tabel PKABKembalikan nilai hasil fungsi

Fungsi untuk validasi selengkapnya menjadi seperti berikut :

function cari_SMAparameter kode_cari,baris,kolomselect bif kode_cari=space(7)

@ 6,23 clear to 23,74@ 6,23 to 23,74dbedit(7,24,22,73)if lastkey()=K_ENTER

kode_cari = KODE_SMAendif

endifseek kode_cariif found()

@ baris,kolom say NAMA_SMAhasil = .t.

else@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

endifreturn hasil

Contoh lengkap sudah diberikan pada bagian validasi. Maksudnya pada contoh validasi terse-but, fungsi carismasudahmencakupperanuntukmelakukanvalidasidanuntukmenampilkankode−kodeSMAyangadajikapemakaimengisikodeSMAdengannilaikosong.

7.6.2 Pengembangan Lebih Lanjut !

Ada beberapa hal yang bisa disebut bugs walaupun tidak mengganggu jalannya sistem secaraserius. Masalah-masalah tersebut adalah :

1. Tampilan layar yang mengganggu. Jika kita mencoba menampilkan layar tabel kode help,semestinya setelah selesai, layar kembali ke tampilan sebelumnya. Contoh tampak sepertiberikut :Kemudian jika kode SMA diisi dengan isian kosong, maka akan ditampilkan tabel kode SMA

seperti berikut :Setelah selesai pemakai memilih kode SMA yang benar, maka posisi layar mestinya kembali

seperti semula Gambar 7.5, namun pada kenyataannya tampilan malah menjadi seperti ber-ikut :

2. Posisi tabel aktif data base semestinya juga kembali ke posisi tabel aktif sebelumnya. Kalaudilihat contoh, maka diawal fungsi tabel aktif adalah IPA2002 dengan nama area select apada akhir fungsi juga harus kembali seperti semula. Pada contoh, memang area kembali keselect a. Masalah akan timbul jika area terakhir bukan select a.

Page 86: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.6. APA RESIKONYA ? 75

Gambar 7.5: Tampilan Sebelum Tabel Kode SMA

Gambar 7.6: Tampilan Ketika Pencarian Kode SMA

Gambar 7.7: Tampilan Setelah Pencarian Kode SMA

Page 87: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

76 BAB 7. VALIDASI INPUT DATA

Adanya masalah-masalah tersebut maka posisi area dan tampilan layar harus disimpan dan padaakhir fungsi dikembalikan lagi. Fungsi masih sama dengan sebelumnya, hanya pada awal dan akhirdimodifikasi dengan memberikan perintah untuk menyimpan nilai area dan tampilan layar.

7.6.3 Perintah yang digunakan

Perintah yang digunakan untuk menyimpan nilai area dan tampilan layar seperti berikut :

7.6.4 Perintah save screen to

1. Fungsi : Perintah ini dipakai untuk merekam tampilan tulisan di monitor ke memory. Bia-sanya dilakukan pada suatu proses yang disusul proses lain tapi tampilan akan dikembalikanseperti semula.

Gambar 7.8: Ilustrasi Perubahan Tampilan

2. Sintaks : save screen to nama variabel

3. Contoh :

do while .t.@ 07,10 prompt ’1. Pemasukan/Editing Data ’@ 08,10 prompt ’2. Penghapusan Editing Data’@ 09,10 prompt ’3. Browsing Data ’@ 10,10 prompt ’4. Selesai ’menu to pilihansave screen to lyr_menudo case

case pilihan = 4 .or. lastkey()=K_ESCexit

...endcaserestore screen from lyr_menu

enddo

4. Keterangan : Tampilan menu akan direkam ke variabel lyr menu. Setelah masuk ke salahsatu menu yang dipilih, tampilan layar berubah. Ketika kembali ke menu, maka tampilandikembalikan ke bentuk semula.

Page 88: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.6. APA RESIKONYA ? 77

7.6.5 Perintah restore screen from

1. Fungsi : Mengembalikan tampilan ke suatu bentuk tampilan sebelumnya. Untuk bisa meng-embalikan tampilan ini, tampilan harus direkam dulu dengan perintah save screen to.

2. Sintaks : restore screen from nama variabel

3. Contoh :

function cari_SMAparameter kode_cari,baris,kolomsave screen to layar_akhirselect_akhir = select()select bif kode_cari=space(7)

@ 6,23 clear to 23,74@ 6,23 to 23,74dbedit(7,24,22,73)if lastkey()=K_ENTER

kode_cari = KODE_SMAendif

endifgo toprestore screen from layar_akhirseek kode_cariif found()

@ baris,kolom say NAMA_SMAhasil = .t.

else@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

endifselect(select_akhir)return hasil

4. Keterangan : Perintah ini sangat berhubungan dengan perintah . save screen to. Na-ma variabel harus sesuai dengan nama variabel pada save screen to.

7.6.6 Perintah select()

1. Fungsi : Menyimpan area data base atau tabel yang aktif ke suatu variabel memory. Biasanyaperintah ini diletakkan di awal fungsi atau ketika area akan berubah ke area lain. Di sampingitu perintah ini juga dapat digunakan untuk mengubah area ke area lain.

2. Sintaks : nama variabel = select() atau select(nama area)

3. Contoh :

function cari_SMAparameter kode_cari,baris,kolomselect_akhir=select()select bseek kode_cariif found()

@ baris,kolom say NAMA_SMA

Page 89: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

78 BAB 7. VALIDASI INPUT DATA

hasil = .t.else

@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

endifselect(select_akhir)return hasil

4. Keterangan : Perintah ini sangat berhubungan dengan perintah use. Lihat juga contoh fungsicari sma pada bagian sebelumnya.

7.6.7 Perintah restore screen from

Program selengkapnya untuk melakukan pemasukan data, dapat dilihat seperti berikut.

* nama file : entriv.prg#include ’inkey.ch’clearselect buse SMAindex on KODE_SMA to SMA

select ause IPA2002index on NO_PKAB to ipa2002mNO_PKAB = space(5)do while .t.

@ 3,7 say ’Pemasukan/Editing Peserta PKAB’@ 5,7 say ’No. PKAB : ’@ 6,7 say ’Kode SMA : ’@ 7,7 say ’Kelamin : [1:Laki-laki 2:Perempuan]’@ 8,7 say ’No. Induk : ’@ 9,7 say ’Nama Siswa : ’@05,21 get mNO_PKABreadif lastkey()=K_ESC

exitendifseek mNO_PKABif found()

mNAMA_SISWA = NAMA_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMAmKELAMIN = KELAMIN

elsemNAMA_SISWA = space(30)mNO_INDUK = space(10)mKODE_SMA = space(8)mKELAMIN = space(1)

endif@06,21 get mKODE_SMA pict ’99999999’ valid cari_sma(@mKODE_SMA,06,31)@07,21 get mKELAMIN pict ’9’ valid mKELAMIN$’12’@08,21 get mNO_INDUK

Page 90: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

7.6. APA RESIKONYA ? 79

@09,21 get mNAMA_SISWAreadif lastkey()#K_ESC

seek mNO_PKABif .not. found()

append blankendifreplace NO_PKAB with mNO_PKABreplace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMIN

endifenddoclose indexclose datareturn

function cari_SMAparameter kode_cari,baris,kolomsave screen to layar_akhirselect_akhir = select()select bif kode_cari=space(7)

@ 6,23 clear to 23,74@ 6,23 to 23,74dbedit(7,24,22,73)if lastkey()=K_ENTER

kode_cari = KODE_SMAendif

endifgo toprestore screen from layar_akhirseek kode_cariif found()

@ baris,kolom say NAMA_SMAhasil = .t.

else@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

endifselect(select_akhir)return hasil

Page 91: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

80 BAB 7. VALIDASI INPUT DATA

Page 92: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 8

Pemrosesan Data

8.1 Pendahuluan

Apa yang telah dipelajari dalam bagian-bagian terdahulu, masih berhubungan dengan masa-lah pemasukan data (entry). Pembahasan bagian-bagian tersebut dimulai dari persiapan wadahpenyimpanan berupa pembuatan tabel (file .dbf) sampai kepada masalah validasi pemasukan data.Pada bahasan berikut, kita akan membicarakan masalah pemrosesan data.

Sebagaimana telah disampaikan pada awal buku ini, bahwa masalah yang dibahas dalam bukuini berkaitan dengan simulasi masalah PKAB. Tentu saja apa yang dibahas tidak semuanya samapersis dengan realita. Terutama dalam masalah pemrosesan data ini. Untuk penyederhanaan,penghitungan skor hanya dilakukan dengan menghitung rata-rata mata pelajaran. Skor akhirdiperoleh dengan menjumlahkan skor beberapa mata pelajaran kemudian dihitung rata-ratanya.Lantas dimana letak perbedaan dengan kasus sebenarnya ? Dapat dijelaskan di sini, bahwa nilaimata pelajaran yang sama untuk sekolah yang berbeda tentu memiliki bobot yang berbeda pula.Nah ... dalam simulasi ini, tidak dilakukan pembobotan antar sekolah. Hal ini perlu dipahami agarkita dapat membedakan antara simulasi pada materi ini dengan proses yang sebenarnya.

8.2 Modifikasi Program Pemasukan Data

Untuk dapat melanjutkan materi ini, terlebih dahulu struktur file data peserta PKAB yaituIPA2002.DBF mesti dimodifikasi. Struktur lengkapnya menjadi seperti berikut ini : Dengan demi-kian, pemasukan data peserta PKAB menjadi seperti berikut :

Contoh program lengkap dapat dilihat seperti berikut :

* nama file : ful_ent.prg#include ’inkey.ch’clearselect buse SMAindex on KODE_SMA to SMAselect ause IPA2002

81

Page 93: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

82 BAB 8. PEMROSESAN DATA

Field Field Name Type Width Dec1 NO PKAB Character 52 RESI Character 13 PILIHAN 1 Character 64 PILIHAN 2 Character 65 NAMA SISWA Character 306 NO INDUK Character 107 JURUSAN Character 18 KODE SMA Character 89 NAMA SMA Character 35

10 KELAMIN Character 111 INA 1 Numeric 4 112 INGG 1 Numeric 4 113 MAT 1 Numeric 4 114 FIS 1 Numeric 4 115 KIM 1 Numeric 4 116 BIO 1 Numeric 4 117 SKOR Numeric 7 318 TANDA Character 1019 PILIHAN Character 620 PIL LAIN Character 621 KET PILIH Character 122 TAHAP Character 1

Tabel 8.1: Atribut Tabel IPA2002.DBF

index on NO_PKAB to ipa2002mNO_PKAB = space(5)do while .t.

@ 3,7 say ’Pemasukan/Editing Peserta PKAB’@ 5,7 say ’No. PKAB : ’@ 6,7 say ’Kode SMA : ’@ 7,7 say ’Kelamin : [1:Laki-laki 2:Perempuan]’@ 8,7 say ’No. Induk : ’@ 9,7 say ’Nama Siswa : ’@10,7 say ’B. Indonesia: ’@11,7 say ’B. Inggris : ’@12,7 say ’Matematika : ’@13,7 say ’Fisika : ’@14,7 say ’Kimia : ’@15,7 say ’Biologi : ’@05,21 get mNO_PKABreadif lastkey()=K_ESC

exitendifseek mNO_PKABif found()

mNAMA_SISWA = NAMA_SISWAmNO_INDUK = NO_INDUKmKODE_SMA = KODE_SMA

Page 94: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

8.2. MODIFIKASI PROGRAM PEMASUKAN DATA 83

Gambar 8.1: Tampilan Pemasukan Data Peserta PKAB

mKELAMIN = KELAMINmINA_1 = INA_1mINGG_1 = INGG_1mMAT_1 = MAT_1mFIS_1 = FIS_1mKIM_1 = KIM_1mBIO_1 = BIO_1

elsemNAMA_SISWA = space(30)mNO_INDUK = space(10)mKODE_SMA = space(8)mKELAMIN = space(1)mINA_1 = 0mINGG_1 = 0mMAT_1 = 0mFIS_1 = 0mKIM_1 = 0mBIO_1 = 0

endif@06,21 get mKODE_SMA pict ’99999999’ valid cari_sma(@mKODE_SMA,06,31)@07,21 get mKELAMIN pict ’9’ valid mKELAMIN$’12’@08,21 get mNO_INDUK@09,21 get mNAMA_SISWA@10,21 get mINA_1 pict ’999.9’@11,21 get mINGG_1 pict ’999.9’@12,21 get mMAT_1 pict ’999.9’@13,21 get mFIS_1 pict ’999.9’@14,21 get mKIM_1 pict ’999.9’@15,21 get mBIO_1 pict ’999.9’readif lastkey()#K_ESC

seek mNO_PKABif .not. found()

append blankendif

Page 95: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

84 BAB 8. PEMROSESAN DATA

replace NO_PKAB with mNO_PKABreplace NAMA_SISWA with mNAMA_SISWAreplace NO_INDUK with mNO_INDUKreplace KODE_SMA with mKODE_SMAreplace KELAMIN with mKELAMINreplace INA_1 with mINA_1replace INGG_1 with mINGG_1replace MAT_1 with mMAT_1replace FIS_1 with mFIS_1replace KIM_1 with mKIM_1replace BIO_1 with mBIO_1

endifenddoclose indexclose datareturn

function cari_SMAparameter kode_cari,baris,kolomsave screen to layar_akhirselect_akhir = select()select bif kode_cari=space(7)

@ 6,23 clear to 23,74@ 6,23 to 23,74dbedit(7,24,22,73)if lastkey()=K_ENTER

kode_cari = KODE_SMAendif

endifgo toprestore screen from layar_akhirseek kode_cariif found()

@ baris,kolom say NAMA_SMAhasil = .t.

else@ baris,kolom say ’Kode salah ... ! ’hasil = .f.

endifselect(select_akhir)return hasil

8.3 Penghitungan Skor

Perlu ditekankan sekali lagi bahwa perhitungan skor yang dilakukan di sini hanya sekedar contohdan untuk memudahkan maka dilakukan penyederhaan proses perhitungan. Skor akhir diperolehdengan merata-rata nilai pada beberapa mata pelajaran yaitu Bahasa Indonesia, Bahasa Inggris,Matematika, Fisika, Kimia dan Biologi. Proses ini dilakukan untuk semua data yang ada.

Structured English untuk proses perhitungan tersebut dapat kita susun seperti berikut :

Buka file IPA2002Hitung jumlah dataSet nomor = 0

Page 96: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

8.3. PENGHITUNGAN SKOR 85

Kerjakan dari awal sampai akhir data{Tambahkan nilai counter nomorHitung jumlah nilaiHitung nilai rata-rataSimpan nilai rata-rata ke file data baseTampilkan keterangan prosesLanjutkan ke data berikutnya

}

Dengan contoh hasil dan programnya seperti berikut :

Gambar 8.2: Tampilan Pemrosesan Data Peserta PKAB

* nama file : proses.prg#include ’inkey.ch’clearuse IPA2002count to jml_datastore 0 to nomordbgotop()do while .not. eof()

nomor = nomor + 1jml_nilai = INA_1 + INGG_1 + MAT_1 + FIS_1 + KIM_1 + BIO_1rata = jml_nilai/6replace 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()

enddoreturn

Selanjutnya kita tinggal merangking peserta berdasarkan pilihan masing- masing dan skornya.

Page 97: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

86 BAB 8. PEMROSESAN DATA

Page 98: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 9

Pencetakan Informasi

9.1 Pendahuluan

Pencetakan informasi menjadi bagian yang sangat penting. Mengapa ? Bagaimana pun rumitdan canggihnya suatu sistem informasi, tetapi manakala sistem itu sendiri tidak dapat memberikaninformasi (tentu saja dalam bentuk cetakan), apalah artinya. Seringkali informasi dalam bentukcetakan menjadi dokumen yang sangat lebih komunikatif bagi pemakai dan itulah yang menjadibahan pengambilan keputusan.

Sebagaimana umumnya proses pencetakan, pencetakan bisa dilakukan ke printer atau ke layar.Pencetakan ke layar berfungsi semacam preview sebelum dicetak langsung ke printer.

9.2 Perintah-perintah yang Digunakan

Di sini akan dijelaskan perintah-perintah khusus yang berhubungan langsung dengan pencetak-an. Perintah-perintah lain, tentu saja ada yang berkaitan namun perintah-perintah tersebut sudahdijelaskan. Sebagai contoh, tidak mungkin mencetak informasi tanpa ada tabel data base yangdigunakan artinya perintah user otomatis harus digunakan.

9.2.1 Perintah set printer to

1. Fungsi : Perintah ini dipakai untuk mengarahkan pencetakan ke suatu file teks atau tidak.

2. Sintaks : set printer to [nama file]

3. Contoh :

set printer to hasil.txt

4. Keterangan : Sedangkan untuk membatalkan pencetakan ke file, cukup dengan perintah setprinter to tanpa tambahan apa-apa. Pencetakan ke file diperlukan manakala kita akanmencetak ke layar. Sebab pencetakan ke layar, pada hakekatnya adalah pencetakan ke suatufile teks dan kemudian file teks tersebut di- import ke suatu tabel file data base. Dari file database kemudian ditampilkan ke layar dengan perintah dbedit().

9.2.2 Perintah set device to

1. Fungsi : Perintah ini dipakai untuk mengarahkan pencetakan ke suatu printer atau layar.Jika perintah set printer to diarahkan ke suatu file maka pencetakan akan diarahkan ke filetersebut, jika tidak maka pencetakan diarahkan ke printer.

2. Sintaks : set device to [screen—printer]

87

Page 99: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

88 BAB 9. PENCETAKAN INFORMASI

3. Contoh :

set printer to hasil.txtset device to printer

4. Keterangan : Rangkaian perintah di atas akan mengarahkan pencetakan ke file teks bernamahasil.txt. dbedit().

9.2.3 Perintah printer [on—off]

1. Fungsi : Perintah ini dipakai untuk mengaktifkan atau mematikan printer.

2. Sintaks : set printer [on—off]

3. Contoh :

set printer to hasil.txtset device to printerset printer on

4. Keterangan : Rangkaian perintah di atas akan mengarahkan pencetakan ke file teks bernamahasil.txt.

9.2.4 Perintah append from ... sdf

1. Fungsi : Fungsi append from ... sdf digunakan untuk memasukkan isi satu file teks ke tabelaktif (yang sedang di-use). File teks yang akan dimasukkan diasumsikan sudah ada sebagaihasil pencetakan ke file. Data yang dimasukkan sesuai nama atribut field masing-masing.

2. Sintaks : append from [file teks] sdf

3. Contoh :

(a) use layar

(b) append from hasil.txt sdf

9.2.5 Perintah dbedit()

1. Fungsi : Menampilkan isi suatu tabel (file data) dalam bentuk baris dan kolom.

2. Sintaks : dbedit(baris1,kolom1,baris2,kolom2)

3. Contoh :

do casecase alat=1

set device to screenset printer offset printer touse layarzapappend from hasil.txt sdfdbgotop()dbedit(0,0,24,79)

case alat=2

Page 100: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

9.3. PENTING DIPERHATIKAN ! 89

Gambar 9.1: Tampilan Perintah dbedit()

set device to screenset printer off

endcase

4. Keterangan : Baris1 dan kolom1 menunjukkan posisi kiri atas dan baris2 serta kolom2 me-nunjukkan posisi kanan bawah. Untuk memindah-mindah penunjuk bisa digunakan tombolpanah, pg up, pg dn, home, dan sebagainya.

9.2.6 Perintah zap

1. Fungsi : Fungsi zap digunakan untuk menghapus seluruh data. Data akan terhapus tapistruktur data masih ada.

2. Sintaks : zap

3. Contoh : zap

4. Tampilan : -

9.3 Penting Diperhatikan !

Suatu hal yang penting untuk diperhatikan yaitu bahwa sebelum proses pencetakan harus disi-apkan kondisi-kondisi pendahuluan. Kondisi-kondisi tersebut terlihat seperti pada perintah berikutini :

Page 101: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

90 BAB 9. PENCETAKAN INFORMASI

@ 15,11 prompt ’ L. Layar ’@ 16,11 prompt ’ P. Printer ’menu to alatdo case

case alat=1set printer to hasil.txtset printer onset device to print

case alat=2set printer onset device to print

endcase

Setelah selesai, maka dilakukan proses penutupan kondisi. Proses penutupan ini dilakukan denganmemberi parameter kebalikan dari proses sebelumnya dan penulisan baris program juga dalamurutan terbalik seperti berikut :

do casecase alat=1

set device to screenset printer offset printer touse layarzapappend from hasil.txt sdfdbgotop()dbedit(0,0,24,79)

case alat=2set device to screenset printer off

endcase

9.4 Structured English

Structured English untuk masalah pencetakan informasi dapat dilihat seperti pada contohberikut. Tentu saja, karena ini hanya sebagai contoh, pada aplikasi lain harus disesuaikan dengankeperluan.

Kerjakan selama benar{ Buka file dataTampilkan menu jenis Urutan PencetakanJika menekan tombol ESC maka

Keluar loopingTampilkan menu cetak ke layar atau printerJika cetak ke layar maka

Set pencetakan ke file teksJika cetak ke printer maka

Siapkan printerJika mencetak berdasarkan urutan nama maka

{Index data menurut urutan namaCetak data yang diperlukan dari awal sampai akhir

}Jika mencetak berdasarkan urutan skor akhir maka

{

Page 102: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

9.4. STRUCTURED ENGLISH 91

Index data menurut urutan skorCetak data yang diperlukan dari awal sampai akhir

}Jika cetak ke layar maka{

Import file teks hasil cetakan ke file dbfTampilkan isi file dbf dengan dbedit()

}Jika cetak kr printer makaNon aktifkan printer

}Selesai

Dengan contoh program lengkapnya seperti berikut ini :

#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 cetakif lastkey()=K_ESC .or. cetak=3

exitendif@ 15,11 prompt ’ L. Layar ’@ 16,11 prompt ’ P. Printer ’menu to alatdo case

case alat=1set printer to hasil.txtset printer onset device to print

case alat=2set printer onset device to print

endcasedo case

case cetak=1index on NAMA_SISWA to namadbgotop()do while .not. eof()

@ prow()+1,1 say NO_PKAB+’ ’+NAMA_SISWA+’ ’+PILIHAN_1+’ ’+NAMA_SMAdbskip()

enddocase cetak=2index on PILIHAN_1+str(1000-SKOR) to skordbgotop()do while .not. eof()

@ prow()+1,1 say NO_PKAB+’ ’+NAMA_SISWA+’ ’+PILIHAN_1+’ ’+str(SKOR,8,3)dbskip()

enddo

Page 103: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

92 BAB 9. PENCETAKAN INFORMASI

endcasedo case

case alat=1set device to screenset printer offset printer touse layarzapappend from hasil.txt sdfdbgotop()dbedit(0,0,24,79)

case alat=2set device to screenset printer off

endcaseenddoreturn

Jika program ini dijalankan, kita dapat memilih cetak ke layar atau printer. Seandainya ter-dapat printer dan kita memilih cetak ke printer, maka hasil pencetakan akan langsung ke printer.Untuk dapat menjalankan program ini, maka kita harus memiliki file data IPA2002.DBF sebagai-mana telah dibuat diawal dan file data LAYAR.DBF. File data LAYAR.DBF memiliki strukturseperti berikut :

Structure for database: LAYAR.DBFNumber of data records: 3800Date of last update : 12/23/02Field Field Name Type Width Dec

1 LAYAR_1 Character 702 LAYAR_2 Character 703 LAYAR_3 Character 704 LAYAR_4 Character 70

** Total ** 281

Page 104: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 10

Integrasi Program

10.1 Pendahuluan

Meskipun kita sudah membahas pembuatan menu, namun dapat dikatakan bahwa programyang dibuat masih terpisah-pisah. Pada aplikasi yang dipakai oleh pelanggan, sebaiknya aplikasi su-dah terintegrasi. Oleh karena itu, pada bagian ini kita akan membahas bagaimana menggabungkanprogram-program yang sudah dibuat.

Jika Anda mengikuti secara runut dan mengerjakan setiap latihan dengan baik, Anda akanmemiliki file data dan program seperti berikut :

Directory of C:\dwi\clipper

IPA2002 DBF 529,095 12-26-02 11:14a ipa2002.dbfSLTA DBF 127,648 09-14-02 7:58p SLTA.DBFLAYAR DBF 934,206 12-26-02 7:05p LAYAR.DBFPS DBF 6,760 05-21-02 7:43p PS.DBF

CETAK PRG 1,524 12-26-02 6:56p CETAK.PRGLOGO PRG 1,126 06-14-02 2:58a LOGO.PRGHAPUS PRG 958 11-04-02 8:47p HAPUS.PRGLIHAT PRG 66 11-11-02 7:58p LIHAT.PRGENT_FUL PRG 2,806 12-26-02 10:32a ENT_FUL.PRGPROSES PRG 607 12-26-02 11:14a PROSES.PRG

Program menu yang dibuat selengkapnya dapat dilihat pada bagian berikut. Sedangkan isi bagian-bagian program tidak ditampilan ulang karena sama dengan program-program pada bagian sebe-lumnya.

* nama file inte.prg#include ’inkey.ch’tone(500,10)set wrap ondo logocleardo while .t.

wall (0,0,24,79)@7,15 clear to 20,75@8,30 say ’program menu’@10,17 prompt "1 Pemasukan data "@11,17 prompt "2 Penghapusan data "@12,17 prompt "3 Browsing data "@13,17 prompt "4 Proses Skoring "@14,17 prompt "5 Pencetakan "

93

Page 105: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

94 BAB 10. INTEGRASI PROGRAM

@15,17 prompt "6 Game Tetris "menu to pil_utamaif lastkey() = K\_ESC

exitendifdo case

case pil_utama =1do ent_ful

case pil_utama = 2do hapus

case pil_utama = 3do lihat

case pil_utama = 4do proses

case pil_utama = 5do cetak

case pil_utama = 6tetris()

end caseenddoreturn

Tampilan program tampak seperti berikut :

Gambar 10.1: Tampilan Logo Pembuka

Page 106: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

10.1. PENDAHULUAN 95

Gambar 10.2: Tampilan Menu Gabungan Program

Page 107: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

96 BAB 10. INTEGRASI PROGRAM

Page 108: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian V

Clipper Advanced

97

Page 109: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 110: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 11

Optimasi dan Improvisasi

11.1 Improvisasi Program

Pada bagian-bagian sebelumnya, pembuatan program dengan Clipper dilakukan dengan tidakmemperhatikan masalah-masalah optimasi dan kesempurnaan program. Oleh karenanya, hal-haltersebut akan dibahas pada bagian-bagian berikut.

Dalam kondisi tertentu (data masih sedikit, tidak ada kelainan kondisi) maka program akanberjalan normal. Namun hal itu akan menjadi masalah manakala, misalnya data sudah banyak,file data hilang atau tidak ada, dan sebagainya. Dengan demikian, program perlu dioptimasi danada improvisasi untuk mengurangi kesalahan-kesalahan program.

11.2 Operasi File

Operasi file yang dimaksud di sini adalah membuka dan menutup file data. Sebagaimana sudahkita pahami bersama, secara mudah perintah untuk membuka itshape file data adalah use danuntuk menutupnya adalah close data. Masalah akan muncul manakala file data yang hendakdigunakan tidak ada. Misalkan kita lihat contoh berikut :

clearwall(0,0,24,79)use ipa2002dbedit(5,7,20,75)return

Jika file ipa2002.dbf tidak ada, maka program akan timbul error. Error yang muncul tampakseperti berikut :

Gambar 11.1: Error Membuka File

99

Page 111: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

100 BAB 11. OPTIMASI DAN IMPROVISASI

11.3 Perintah-Perintah

Perintah baru yang digunakan untuk improvisasi program adalah :

11.3.1 Perintah file()

1. Fungsi : Mengetahui ada tidaknya suatu file.

2. Sintaks : file(’nama-file.ext’)

3. Contoh : file(’ipa2002.dbf’)

4. Keterangan : Fung file(’ipa2002.dbf’) akan menghasilkan nilai .t. jika file ipa2002.dbf adadan sebaliknya.

11.4 Optimasi Indeks

11.4.1 Multipel Indeks

Dengan menggunakan Clipper yang masih standar, satu file iundeks hanya bisa diisi dengansatu kunci indeks. Jika ada indeks dengan kunci yang lain, maka harus dilakukan proses indekslagi. Perhatikan potongan 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.........do case

case cetak=1index on NAMA_SISWA to namacount to jumlah_data.........

case cetak=2index on PILIHAN_1+str(1000-SKOR) to skor.........

endcase.........

enddoreturn

Page 112: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

11.4. OPTIMASI INDEKS 101

Untuk membuat satu file bisa berisi beberapa kunci indeks, diperlukan pustaka (library) tambahanSIXCDX. Pustaka ini bukan pustaka standar, sehingga belum ada pada program Clipper.

#include "sixcdx.ch"#include "machsix.ch"#include "inkey.ch"

set date italian*if date()>ctod(’01-03-2003’)* clear* @ 1,1 say ’fatal error ....’* return*endif*if .not. file(’roda.dat’)* clear* @ 1,1 say ’file sistem tidak ada’* return*endifselect aif file(’ipa2002.dbf’)

use ipa2002else

clear@ 1,1 say ’file data tidak ada !’return

endifclear@ 1,1 say time()if file(’ipa2002.ntx’)

set index to IPA2002else

index on NO_PKAB tag NO_PKAB of ipa2002index on NAMA_siswa tag NAMA of ipa2002index on -SKOR tag SKOR of ipa2002

endif@ 2,1 say time()waitdo while .t.clear@ 10,10 prompt ’Cetak urut skor’@ 11,10 prompt ’Cetak urut nama’@ 12,10 prompt ’Cetak urut no ’menu to cetakif lastkey()=K_ESC

exitendifdo case

case cetak=1set order to tag SKOR

case cetak=2set order to tag NAMA

case cetak=3set order to tag NO_PKAB

endcase

Page 113: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

102 BAB 11. OPTIMASI DAN IMPROVISASI

dbgotop()dbedit(1,1,23,77)enddoreturn

11.5 Modifikasi Bentuk get

Dari beberapa contoh program terdahulu, bisa dilihat adanya salah satu ciri program yangdibuat dengan menggunakan Clipper. Ciri tersebut adalah bentuk input yang berupa blok warna.Contoh seperti berikut : Untuk memperindah bentuk pemasukan data, maka dibuat fungsi dan

Gambar 11.2: Tampilan Pemasukan Data Peserta PKAB

prosedur tersendiri. Fungsi penting yang harus diperhatikan ada tiga, yaitu :

1. nget init(jumlah get), perintah ini digunakan untuk menentukan jumlah pemasukan datayang ada (nget()).

2. nget(baris,kolom,”nama variabel”,”validasi”), perintah ini digunakan untuk mema-sukkan data. Fungsinya sama dengan perintah get pada Clipper biasa.

3. nread(.f.), perintah ini untuk mengakhiri perintah nget().

Contoh selengkapnya dapat dilihat seperti berikut :

#include "box.ch"#include "inkey.ch"#include "setcurs.ch"

PUBLIC READ_NUM, NUM_NREADS, GET_NUM, Chus, St_Kursor,Tblcol[16],ST_INS:=.F.

STORE 0 TO READ_NUM, NUM_NREADSTblcol[1] = ’N’Tblcol[2] = ’B’Tblcol[3] = ’G’Tblcol[4] = ’BG’Tblcol[5] = ’R’Tblcol[6] = ’RB’

Page 114: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

11.5. MODIFIKASI BENTUK GET 103

Tblcol[7] = ’GR’Tblcol[8] = ’W’For Chus = 9 To 16Tblcol[Chus] = Tblcol[Chus-8]+’+’

Next

SETCANCEL(.T.) && DWI

READEXIT(.T.)* bagian sebelum ini tidak boleh dihapus

* bagian berikut ini yang bisa dimodifikasiset talk offset status offset date italianset scoreboard offset menu offset wrap onclear

@ 10,1 say "SSN : "@ 11,1 say "Masukkan Nama : "@ 12,1 say "Masukkan Alamat : "

mssn = space(11)mnama = space(21)malamat = space(41)nget_init(3)nget(10,19,"mssn","")nget(11,19,"mNAMA","")nget(12,19,"malamat","")nread(.f.)

* bagian setelah ini, tidak boleh diedit

FUNCTION NREADPARAMETER PermitUP, StartGet* Belum Pake Awal Get

PRIVATE NUM_GETS, CUR_GET, NRD_OK, CUR_VALID, CUR_NAME, NRD_KEY,NRD_LONG, TESQ

PRIVATE MORE_GETS, STR_READ, SIMPAN_SCR, NRD_X, NRD_Y, NRD_KeyhomePRIVATE NRD_Kers, NRD_Cl1, NRD_Cl2, NRD_X1

Do Transcol With (setcolor()), NRD_Cl1, NRD_Cl2

CLEAR GETSNUM_NREADS = NUM_NREADS + 1STR_READ = LTRIM(STR(READ_NUM))NUM_GETS = LEN(ROWS&STR_READ)

CUR_GET = If(StartGet != Nil, Startget, 1)Store 1 To NRD_X, NRD_Y, SIMPAN_SCR, NRD_LONG

Page 115: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

104 BAB 11. OPTIMASI DAN IMPROVISASI

MORE_GETS = .T.NRD_KEY = 0NRD_Keyhome = 0

DRAWGET(NUM_GETS, ROWS&STR_READ, COLS&STR_READ,VARS&STR_READ, PICS&STR_READ)

SIMPAN_SCR = ASC(RIGHT(SAVESCREEN(ROWS&STR_READ[1], COLS&STR_READ[1], ;ROWS&STR_READ[1], COLS&STR_READ[1]),1))

SIMPAN_SCR = SIMPAN_SCR - (SIMPAN_SCR % 16)

NRD_X1 = Ascan(Tblcol, Forecol(NRD_Cl1))NRD_X1 = If(NRD_X1 = 0, 0, NRD_X1-1)

SKURSOR(.T.)

DO WHILE MORE_GETSCUR_NAME = VARS&STR_READ[CUR_GET]NRD_OK = .F.NRD_X = ROWS&STR_READ[CUR_GET]NRD_Y = COLS&STR_READ[CUR_GET]NRD_LONG = LEN ( IIF( LEN(PICS&STR_READ[CUR_GET]) = 0, ;

TRANS(&CUR_NAME, ""), TRANS(&CUR_NAME, PICS&STR_READ[CUR_GET]) ) )

DO WHILE (! NRD_OK)@NRD_X, NRD_Y GET &CUR_NAME PICTURE PICS&STR_READ[CUR_GET]READ

NRD_KEY = Lastkey()NRD_OK = .T.

CUR_VALID = VALIDS&STR_READ[CUR_GET]

IF (NRD_KEY = K_UP) .and. (PermitUP) .and. (CUR_GET = 1)MORE_GETS = .F.Exit

Endif

IF ! Empty(CUR_VALID)IF (NRD_KEY = K_UP .AND. CUR_GET != 1) .OR. NRD_KEY=K_ESCNRD_OK = .T.Exit

Elseif (NRD_KEY = K_UP) .AND. (CUR_GET = 1)NRD_OK = .F.

ElseNRD_Kers = SKURSOR()SKURSOR(.F.)@NRD_X, NRD_Y Say ’’If Valtype(CUR_VALID)==’B’NRD_OK = Eval(CUR_VALID)

ElseNRD_OK = (&CUR_VALID)

Page 116: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

11.5. MODIFIKASI BENTUK GET 105

EndifSKURSOR(NRD_Kers)

IF TYPE(’NRD_OK’)=’C’If NRD_OK=’OUT’MORE_GETS = .F.Exit

EndifElseif TYPE(’NRD_OK’) != ’L’

NRD_OK = .T.Else

If NRD_OKExit

EndifEndif

EndifEndif

Enddo

Gfattr(NRD_X, NRD_Y, NRD_X, NRD_Y + NRD_LONG - 1, NRD_X1+SIMPAN_SCR)

DO CASECASE NRD_KEY = K_DOWN .OR. NRD_KEY = K_ENTER

IF CUR_GET != NUM_GETSCUR_GET = CUR_GET + 1

ELSEMORE_GETS = .F.

ENDIFCASE NRD_KEY = K_UP

IF CUR_GET != 1CUR_GET = CUR_GET - 1

ENDIFCASE NRD_KEY = K\_ESC .OR. NRD_KEY = K_PGUP .OR. NRD_KEY = K_PGDN

MORE_GETS = .F.OTHERWISE

IF CUR_GET != NUM_GETSCUR_GET = CUR_GET + 1

ELSEMORE_GETS = .F.

ENDIFENDCASE

ENDDO

SKURSOR(.F.)

RELEASE ROWS&STR_READ, COLS&STR_READRELEASE VARS&STR_READ, PICS&STR_READ, VALIDS&STR_READ

*-----------------------------------------------------------release NUM_GETS, CUR_GET, NRD_OK, CUR_VALID, CUR_NAME,

NRD_KEY, NRD_LONG, TESQrelease MORE_GETS, STR_READ, SIMPAN_SCR, NRD_X, NRD_Y, NRD_Keyhomerelease NRD_Kers, NRD_Cl1, NRD_Cl2, NRD_X1

*-----------------------------------------------------------

Page 117: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

106 BAB 11. OPTIMASI DAN IMPROVISASI

READ_NUM = READ_NUM - 1RETURN NRD_Keyhome

FUNCTION NGET_INITPARAM MAX_GETSPRIVATE STR_READ

READ_NUM = READ_NUM + 1STR_READ = LTRIM(STR(READ_NUM))GET_NUM = 0PUBLIC ROWS&STR_READ[MAX_GETS],COLS&STR_READ[MAX_GETS]PUBLIC VARS&STR_READ[MAX_GETS]PUBLIC PICS&STR_READ[MAX_GETS],VALIDS&STR_READ[MAX_GETS]

RETURN.T.

FUNCTION NGETPARAM ROW_NUM, COL_NUM, VAR_NAME, PIC_STR, VALID_STRPRIVATE STR_READ

GET_NUM = GET_NUM + 1STR_READ = LTRIM(STR(READ_NUM))

ROWS&STR_READ[GET_NUM] = ROW_NUMCOLS&STR_READ[GET_NUM] = COL_NUMVARS&STR_READ[GET_NUM] = VAR_NAMEPICS&STR_READ[GET_NUM] = PIC_STRVALIDS&STR_READ[GET_NUM] = VALID_STR

RETURN.T.

Procedure TranscolParameter Strcolx, Ret1, Ret2Private Cari, Dum,dumx

Dum = Alltrim(Strcolx)Cari = AT(’,’, Dum)

If Cari = 0Dumx = setcolor()Ret1 = Subdata(Dumx, 1, Len(Dumx))Ret1 = If(Empty(Ret1), "W/N", Ret1)Ret2 = "W/N"

ElseRet1 = Subdata(Dum, 1, Cari-1)Ret2 = Subdata(Dum, Cari+1, Len(Dum))

EndifReturn

Function SubdataParameter Sumber, Dari, akhirif VALTYPE(sumber)=’N’

hom=’’else

hom=Substr(Sumber, Dari, akhir-Dari+1)endif

Page 118: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

11.5. MODIFIKASI BENTUK GET 107

Return hom

FUNCTION DRAWGETPARAMETER NUM_GETS, ROWS, COLS, VARS, PICSPRIVATE D_I, CUR_NAME

FOR D_I = 1 TO NUM_GETSCUR_NAME=VARS[D_I]@ROWS[D_I], COLS[D_I] SAY &CUR_NAME PICTURE PICS[D_I]

NEXTCLEA GETS

RETURN .T.

Function ForecolParameter StrcolPrivate Cari, Dum, Hom := ’W’Dum = Alltrim(Strcol)Cari = AT(’/’, Dum)If Cari <> 0

Hom = Subdata(Dum, 1, Cari-1)EndifCari = AT(’,’, Hom)If Cari != 0

Hom = Subdata(Hom, 1, Cari-1)EndifReturn Hom

FUNCTION SKURSORPARAMETER SETIN

IF PCOUNT()=1IF SETINSET CURSOR ONIf St_InsSetcursor(SC_NORMAL)

ElseSetcursor(SC_SPECIAL1)

EndifELSESET CURSOR OFF

ENDIFST_KURSOR = SETIN

ENDIFRETURN ST_KURSOR

FUNCTION KotakxParameter X, Y, X1, Y1, PesenReturn EXBOX(X, Y, X1, Y1, 4, 5,,.T., Pesen)

Untuk meng-compile program ini, perintahnya :

blinker file new_get lib grump

Page 119: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

108 BAB 11. OPTIMASI DAN IMPROVISASI

Page 120: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bagian VI

Penutup Buku

109

Page 121: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk
Page 122: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Bab 12

Penutup

12.1 Harapan dan Impian

Apa-apa yang disampaikan dalam buku ini masih sangat sederhana alias apa adanya. Seba-gai contoh, dalam suatu proses tidak dilakukan optimalisasi algoritma. Hal-hal tersebut mudah-mudahan akan dibahas pada kesempatan lain (Insyaa Allah) jika ada. Mengapa ? Buku ini memangditujukan untuk pembaca yang baru belajar pemrograman Clipper.

Kalau para pembaca yang budiman pernah memiliki pengalaman buruk mencoba contoh-contohprogram tetapi ternyata program tersebut tidak dapat dieksekusi, maka mudah-mudahan semuacontoh yang ada pada buku ini dapat dicoba dengan baik dan memberi pelajaran kepada kitasemua. Contoh-contoh yang ada sudah dikompilasi dan dieksekusi dan kemudian tidak ada yangdisembunyikan.

Dengan penggunaan perangkat lunak LATEXdalam penulisan buku ini, maka semoga ini men-jadi inspirasi pemakaian perangkat lunak yang legal. Selain memang features yang tersedia danperangkat LATEXyang powerfull. Kapan bangsa ini akan terlepas dari predikat ’pembajak perangkatlunak’ dan koruptor ?

Kami mengucapkan terima kasih jika Anda berkenan memberi masukan-masukan dalam penu-lisan buku ini. Semoga bermanfaat . . . meskipun nampaknya buku ini hanyalah sebutir pasir dipadang pasir nan luas.

12.2 Bacaan Tambahan

Bagi pembaca yang ingin mencari sumber referensi tambahan, dapat melihat-lihat situs berikut:

1. Panduan lengkap tentang perintah-perintah yang ada di dalam sistem Clipper. Informasi inidapat diakses di Advantage CA Clipper Guide v5.5, The Guide To Clipper 5.2 :http://www.clipx.net/norton.php.

2. Petunjuk penggunaan Dbase III sebagai pedoman dalam penggunaan perintah-perntah dotprompt. Informasi ini bisa diakses di Dbase III User Guide :http://www.csuhayward.edu/ics/walab/u guides/db3guide.htm.

3. Pemrograman Menggunakan FoxPro :http://www.geocities.com/wardiepeniron/foxpro.html.

Mudah-mudahan situs-situs tersebut masih aktif dan bisa diakses sampai sekarang.

111

Page 123: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Indeks

.dbf, 7

.or., 87#include, 87, 89LATEX, iii, 107append from, 14browse, 16delete, 16go, 13index, 15list, 13zap, 13executable file, 26Editor, 6Insyaa Allah, 107Structured English, 86append blank, 11append, 10browse, 11compiler, 6create, 7, 8dot command, 8download, iiiedit, 11features, 107field, 7multi user, 7porting, 5printer, 5, 88programmer, 5record, 11referential integrity, 5single user, 7tools, 6use, 8

AK-47, iii, 5alat, 86Alfons Tanudjaya, 5algoritma, 107Allah, iiiAllah swt., iiianalisa, 6aplikasi, 86, 89append, 59append blank, 52append from, 86, 87

ascending, 14ASCII, 6atribut, 7

bahasa pemrograman, 5basis data, 5, 7, 8blinker, 6

cetak, 87CETAK.PRG, 89clear, 87, 89clear to, 87, 89Clipper, iii, 5, 6, 8, 107copy, 6

database, 45dBase, 6dbedit, 51, 86, 87dbedit(), 59dbgotop(), 86, 87dbskip(), 87delete, 51desimal, 8detikINET, 5do, 89do case, 86, 87, 89do while .t., 87, 89DOS Command, 7DOS Prompt, 7Dos Prompt, 7dwi sakethi, iii

edit.com, 6else, 50ENT FUL.PRG, 89error, 6, 7exe, 6exit, 87, 89

field, 8Field Name, 7file data, 7file obyek, 6find, 6Find-File, 7Finkel, 25found, 49, 59

112

Page 124: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

INDEKS 113

FoxBase, 7Foxbase, 7, 8Foxplus, 6

get, 36, 59GNU Linux, 5

hapus data, 59HAPUS.PRG, 89

if, 50include, 6, 50index, 87inkey.ch, 50input, 45integrasi, 89interaktif, 8internet, 5IPA2002.DBF, 88, 89

jaringan, 5

K ESC, 87, 89kebutuhan pemakai, 5keluar, 8kesalahan, 6keyboard, 36kompilasi, 6kualitas, 5

lastkey, 50lastkey(), 87, 89layar, 8, 88LAYAR.DBF, 88, 89legal, 107lib, 6library, 6lidi, iiiLIHAT.PRG, 89link, 6linking, 6Linux, iiiLOGO.PRG, 89

Made Wiryana, iiimanajemen basis data, 7memory, 45memperbaiki, 11menambah data, 10menampilkan data, 11menghapus data, 11menu, 43, 87, 89menu to, 85, 87, 89merekam, 7merubah data, 11message, 62

mfoxplus, 7Microsoft Word, 6mouse, 7mySQL, 6

nomor baris, 7Notepad, 6Novell Netware, 5nyamuk, iii

obj, 6operator, 5Oracle, 5

Pascal, 5PC AT, 5PC AT 286, 5pelanggan, 89pencari tulisan, 7pencetakan, 85perancangan, 6perangkat bantu, 6perangkat lunak, 5picture, 36PKAB, 6PostGre SQL, 6printer, 5programming, 25prompt, 59, 85, 87, 89PROSES.PRG, 89prow(), 87PS.DBF, 89

QEdit, 6

Rasulullah saw., iiiread, 59record, 52replace, 6restore screen from, 48rtlink, 6

save screen to, 48say, 59, 87, 89sdf, 86, 87seek, 49, 59set device, 86, 87set printer, 86, 87set wrap on, 87, 89sholawat, iiiSLTA.DBF, 89

tabel, 7tetris(), 89TexMaker, 6tipe, 8

Page 125: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

114 INDEKS

tone, 89ts.exe, 7Type, 7

Ubuntu, 6ukuran, 8use, 86, 87

valid, 36, 65validasi, 65

wall, 89Width, 7Word Perfect, 6Word Star, 6

xbase, 5

zap, 86, 87

Page 126: Pengantar -   · PDF fileII Pengantar Clipper 3 2 Basis Data dengan ... Basis Data dengan Clipper 2.1 Pendahuluan Clipper adalah bahasa pemrograman yang lebih ditujukan untuk

Buku Panduan

Pemrograman Clipper

Oleh :

Dwi Sakethi, S.Si, M.Kom

http://dwijim.staff.unila.ac.id

Jurusan Matematika

Fakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Lampung

Bandar Lampung 2009