Anda di halaman 1dari 183

MODUL KULIAH

PEMROGRAMAN BASIS DATA


DENGAN CLIPPER VERSION 5.3

Oleh :
Eko Purwanto, S.Kom

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER


STMIK DUTA BANGSA SURAKARTA
2009
STMIK Duta Bangsa Surakarta
KATA PENGANTAR

Merupakan sebuah bahasa pemprograman untuk menejemen database/


data base Clipper dapat digolongkan bahasa pemprograman database.Jika anda
mengenal program-program paket pengolah database (DBMS) seperti dBase II
Plus, FoxBase, FoxPro dan lain-lain, adalah bahasa pemrograman pengolah
database yang menggunakan Interpreter sebagai penerjemah saat kita menjalankan
program.
Setelah memepelajari modul ini, diharapkan mahasiswa dapat
menguasai pemrograman basis data dengan menggunakan Clipper Compiler
secara mandiri, untuk selanjutnya mahasiswa dapat mengembangkanya sesuai
dengan kebutuhan, karena sudah dilengkapi dengan contoh contoh program dan
latihan latihan di tiap bab-nya.

Pada kesempatan ini penulis mengucapkan banyak terima kasih atas


dukunganya sehingga modul ini dapat diselesaikan terutama pihak STMIK Duta
Bangsa Surakarta tempat penulis mengajar, serta pihak pihak yang lain yang
membantu dalam menyelesaikan modul ini.

Semoga modul ini bermanfaat bagi mahasiswa STMIK Duta Bangsa


pada khususnya.

Surakarta, Maret 2009

Penulis

Pemrograman Basis Data dengan Clipper 5.3 ii


STMIK Duta Bangsa Surakarta
DAFTAR ISI

HALAMAN JUDUL ............................................................................................. i


KATA PENGANTAR .......................................................................................... ii
DAFTAR ISI ....................... .................................................................................. iii
DAFTAR TABEL ................................................................................................. v
DAFTAR GAMBAR ............................................................................................ vi
BAB I PENDAHULUAN .............................................................................. 1
A. Apakah Clipper itu ..................................................................... 1
B. Apakah yang harus disiapkan ..................................................... 1
C. Bagaimana Membuat program denganclipper ........................... 2
BAB II STRUKTUR DAN FORMAT PROGRAM CLIPPER COMPILER . 6
A. Format Program Clipper ............................................................ 6
B. Fungsi dan Prosedur ................................................................... 8
BAB III DATA DAN VARIABEL .................................................................... 14
A. Data ............................................................................................ 14
B. Variabel ..................................................................................... 18
BAB IV ORERATOR DAN EKSPRESE ......................................................... 21
A. Ekspresi Dalam Clipper ............................................................. 21
B. Pemuatan Nilai Dengan Fungsi IIF() atau IF() .......................... 26
BAB V STRUKTUR PROGRAM PERCABANGAN DAN PERULANGAN 27
A. Sturktur Urut ata Liner .............................................................. 27
B. Struktur Percabangan ................................................................. 27
C. Struktur Perulangan .................................................................... 32
BAB VI MENAMPILKAN ATAU MENCETAK DATA ............................... 36
A. Perintah-Perintah Menampilakan Atau Mencetak Data ............ 36
B. Perintah-Perintah Mengubah Perangkat Output ......................... 41
C. Perintah-perintah dan fungsi perangkat output layar ................. 45
D. Fungsi-Fungsi Output (Keluaran) .............................................. 56
E. Perintah-perintah yang mempengaruhi Pencetakan data ........... 58
F. Fungsi Output Suara ................................................................... 59

Pemrograman Basis Data dengan Clipper 5.3 iii


STMIK Duta Bangsa Surakarta
BAB VII MASUKAN ATAU INPUT DATA ................................................... 61
A. Memasukkan data degnan perintah @... GET .......................... 61
B. Memasukkan data lewat funfsi inkey(), lastkey() atau NextKey() 63
C. Memasukkan data lewat fungsi Keyboard .................................. 69
D. Perintah dan Fungsi Mendefinisikan Kunci (SET KEY & setKey) 69
BAB VIII APLIKASI MENGGUNAKAN DATA BASE ................................... 71
A. Definisi Database ....................................................................... 71
B. Menciptakan database ................................................................ 71
C. Menggunakan mengaktifkan database ....................................... 75
D. Area Kerja database ................................................................... 77
E. Menutup Data Base .................................................................... 79
F. File INDEX ................................................................................ 80
G. Pencarian Data Record Database ............................................... 84
H. Query database ........................................................................... 87
I. Menggerakkan Record ............................................................... 89
BAB IX PROSES TERHADAP DATABASE .................................................. 94
A. Mengubah atau Memodifikasi Data Record Data Base ............. 94
B. Fungsi – fungsi data base ........................................................... 104
C. Membuat Program Master Data ................................................. 109
BAB X MENYARING ATAU FILTER DATA DAN MENGHUBUNGKAN
DABATASE ........................................................................................ 113
A. Menyaring Data Field DataBase ................................................ 113
B. Menhubungkan dua Buah Database atau relasi antar database .. 115
BAB XI PRAPROSESOR, ARRAY DAN BLOK KODE ................................ 117
A. Praposedur .................................................................................. 117
B. Data Array .................................................................................. 120
C. Blok Kode .................................................................................. 128
BAB XII PROGRAM MENU PENENDALI ...................................................... 130
BAB XIII FUNGSI – FUNGSI STRING ............................................................. 134
A. Operasi String ............................................................................. 134
B. Fungsi-fungsi String ................................................................... 134

Pemrograman Basis Data dengan Clipper 5.3 iv


STMIK Duta Bangsa Surakarta
BAB XIV FUNGSI MATEMATIK ...................................................................... 145
A. Operasi Matematik ..................................................................... 145
B. Perintah SET DECIMAL dan SET FIXED ............................... 145
C. Fungsi-Fungsi Matematika ......................................................... 146
BAB XV FUNGSI TANGGAL DAN WAKTU ................................................. 149
A. Operasi Tanggal ......................................................................... 149
B. Mendefinisikan Variabel Tanggalciptakan database ................. 149
C. Format Tanggal .......................................................................... 150
D. Fungsi-Fungsi Tanggal .............................................................. 151
E. Fungsi-Fungsi Waktu ................................................................. 153
BAB XVI FILE TEKS DAN DIELD MEMO ...................................................... 155
A. Membaca Field Memo dan Menulis ke Field Memo ................. 155
B. Membaca Field teks dan menulis ke File Teks .......................... 156
BAB XVII FILE MEMORY ................................................................................. 157
A. Fariabel Memory ........................................................................ 157
B. Perintah-perintah File Memory .................................................. 157

LAMPIRAN-LAMPIRAN
DAFTAR PUSTAKA

Pemrograman Basis Data dengan Clipper 5.3 v


STMIK Duta Bangsa Surakarta
DAFTAR TABEL

1. Tabel 4.1 Operator Matematika ....................................................................... 22


2. Tabel 4.2 Operator –Operator Relasi .............................................................. 23
3. Tabel 4.3 Operator Assigmen .......................................................................... 23
4. Tabel 4.4 Command Assigment Operasi ....................................................... 23
5. Tabel 4.5 Operator ........................................................................................ 24
6. Tabel 4.6 Operator Ekspresi khusus ................................................................ 24
7. Tabel 6.1 Warna Tampilan ............................................................................... 38
8. Tabel 6.2 Picture Function (Fungsi warna) ...................................................... 40
9. Tabel 6.3 Picture Temlate ................................................................................ 40
10. Tabel 6.4 Simbol Konstanta ............................................................................. 46
11. Tabel 6.5 Data Warna ...................................................................................... 54
12. Tabel 6.6 Bentuk Kursor .................................................................................. 55
13. Tabel 7.1 Picture Function ............................................................................... 61
14. Tabel 7.2 Picture Template .............................................................................. 62
15. Tabel 7.3 Tombol Menggerakan Kursor .......................................................... 64
16. Tabel 7.4 Tombol Editing ................................................................................ 64
17. Tabel 7.5 Tombol Fungsi ................................................................................. 64
18. Tabel 7.6 Tombol ALT .................................................................................... 65
19. Tabel 7.7 Tombol Ctrl ...................................................................................... 65
20. Tabel 7.8 Tombol Sift - Fungsi ........................................................................ 66
21. Tabel 7.9 Tombol Ctrl - Fungsi........................................................................ 66
22. Tabel 7.10 Tombol ALT -Fungsi ..................................................................... 67
23. Tabel 8.1 Contoh Tabel .................................................................................... 72
24. Tabel 13.1 Operator String............................................................................... 134
25. Tabel 14.1 Operator Matematik ....................................................................... 135
26. Tabel 15.1 Operator Operasi Tanggal .............................................................. 149
27. Tabel 15.2 Format Tanggal .............................................................................. 150

Pemrograman Basis Data dengan Clipper 5.3 vi


STMIK Duta Bangsa Surakarta
DAFTAR GAMBAR

1. Gambar 1.1 Program Editor Clipper ............................................................ 2


2. Gambar 1.2 File Autoexact.Bat .................................................................... 2
3. Gambar 1.3 Letak File Header ..................................................................... 3
4. Gambar 1.4 Proses Compilasi ...................................................................... 4
5. Gambar 1.5 Proses Lingking ........................................................................ 5
6. Gambar 1.6 Langkah Proses Pembuatan Cliper ........................................... 5
7. Gambar 2.1 Format Program Clipper ........................................................... 7
8. Gambar 2.2 Contoh 1 Fungtion dan Prosedure ............................................ 8
9. Gambar 2.3 Contoh 2 Fungtion dan Prosedure ............................................ 9
10. Gambar 2.4 AturanPenulisan Procedure ...................................................... 10
11. Gambar 2.5 Pemanggilan Procedure ............................................................ 10
12. Gambar 2.6 Contoh 1 penggunaan Procedure .............................................. 10
13. Gambar 2.7 Contoh 2 penggunaan Procedure .............................................. 11
14. Gambar 2.8 Contoh 3 penggunaan Procedure .............................................. 11
15. Gambar 2.9 AturanPenulisan Fungsi ........................................................... 12
16. Gambar 2.10 Contoh penggunaan Fungsi ................................................... 12
17. Gambar 3.1 Contoh tipe data string ............................................................. 14
18. Gambar 3.2 Perintah penulisan tipe data tanggal ......................................... 15
19. Gambar 3.3 Perintah penulisan tipe data tanggal ......................................... 15
20. Gambar 3.4 Deklarasi Penulisan Array ........................................................ 16
21. Gambar 3.5 Contoh Tipe data Array ............................................................ 17
22. Gambar 3.6 Penulisan Kode Block .............................................................. 17
23. Gambar 3.7 Contoh Tipe data NIL ............................................................. 17
24. Gambar 3.8 Contoh penulisan Variable ........................................................ 18
25. Gambar 3.9 Contoh 1 Variabel Static ........................................................... 19
26. Gambar 3.10 Contoh 2 Variabel Static ......................................................... 20
27. Gambar 4.1 Bentuk penulisan ekspresi Pemuatan ........................................ 21
28. Gambar 4.2 Contoh Ekspresi String ............................................................. 22
29. Gambar 4.3 Contoh Operator Assigment ...................................................... 23

Pemrograman Basis Data dengan Clipper 5.3 vii


STMIK Duta Bangsa Surakarta
30. Gambar 4.4 Penuulisan Fungsi IIF dan IF .................................................... 26
31. Gambar 4.5 Contoh Fungsi IIF dan IF .......................................................... 26
32. Gambar 5.1 Bentuk Penulisan Percabangan IF... ENDIF ............................ 28
33. Gambar 5.2 Contoh Percabangan IF...ENDIF .............................................. 30
34. Gambar 5.3 Bentuk Penulisan DO … CASE ................................................ 30
35. Gambar 5.4 Contoh Percabangan DO …CASE ............................................ 31
36. Gambar 5.5 Bentuk Penulisan DO WHILE … ENDDO .............................. 32
37. Gambar 5.6 Contoh DO WHILE …ENDDO .............................................. 33
38. Gambar 5.3 Bentuk Penulisan FOR … NEXT ............................................. 33
39. Gambar 5.4 Contoh FOR …NEXT ............................................................... 34
40. Gambar 6.1 Bentuk Penulisan perintah ? atau ?? ......................................... 36
41. Gambar 6.2 Contoh Perintah ? atau ?? ......................................................... 37
42. Gambar 6.3 Bentuk Penulisan perintah @ ... SAY ....................................... 38
43. Gambar 6.4 Contoh penulisan warna ........................................................... 39
44. Gambar 6.5 Contoh Pemakaian..................................................................... 41
45. Gambar 6.6 Contoh perintah SET ALLTERNATE TO............................... 41
46. Gambar 6.7 Bentuk Penulisan SET ALLTERNATE TO ............................ 42
47. Gambar 6.8 Contoh perintah SET CONSELE ON/OF ................................. 42
48. Gambar 6.9 Contoh penulisan SET PRINT ON/OFF .................................. 43
49. Gambar 6.10 Contoh penulisan perintah SET DEVICE TO ....................... 43
50. Gambar 6.11 bentuk penulisan perintah SET PRINT TO ........................... 44
51. Gambar 6.12 contoh perintah SET PRINT TO ............................................ 44
52. Gambar 6.13 contoh penulisan perintah CLEAR ......................................... 45
53. Gambar 6.14 contoh penulisan perintah @......CLEAR ................................ 45
54. Gambar 6.15 contoh penulisan perintah @......TO ....................................... 46
55. Gambar 6.16 contoh penulisan perintah @......BOX .................................... 46
56. Gambar 6.17 contoh penulisan perintah # include “BOX.CH” .................... 47
57. Gambar 6.18 contoh penulisan perintah @......PROMpT ............................. 48
58. Gambar 6.19 contoh penulisan fungsi ALTER() .......................................... 49
59. Gambar 6.20 bentuk penulisan fungsi DisBox() ........................................... 50
60. Gambar 6.21 bentuk penulisan fungsi MaxRow dan MaxColl ..................... 50

Pemrograman Basis Data dengan Clipper 5.3 viii


STMIK Duta Bangsa Surakarta
61. Gambar 6.22 contoh penulisan fungsi MaxRow dan MaxColl ..................... 50
62. Gambar 6.23 bentuk penulisan fungsi savesscreen () dan Restscreen() ....... 51
63. Gambar 6.24 contoh penulisan fungsi savesscreen () dan Restscreen() ....... 53
64. Gambar 6.25 bentuk penulisan fungsi scroll() .............................................. 54
65. Gambar 6.26 bentuk penulisan fungsiSetColor() .......................................... 54
66. Gambar 6.27 Setelen Warna ......................................................................... 54
67. Gambar 6.28 contoh penulisan fungsi setColor() ......................................... 55
68. Gambar 6.29 bentuk penulisan fungsi SetCursorl() ...................................... 55
69. Gambar 6.30 contoh penulisan fungsi setCursor () ....................................... 55
70. Gambar 6.31 bentuk penulisan fungsi SetMode () ....................................... 56
71. Gambar 6.32 bentuk penulisan fungsi Transform ......................................... 56
72. Gambar 6.33 contoh penulisan fungsi Prow(), Pcol(), SetPcr() .................... 57
73. Gambar 6.34 contoh penulisan fungsi Devpos(), Setpos(), SetPrc() ............ 58
74. Gambar 6.35 contoh penulisan perintah SET DECIMAL TO ...................... 58
75. Gambar 6.36 contoh penulisan perintah SET DECIMAL TO, SET FIXED 59
76. Gambar 6.37 Bentuk penulisan fungsi suara................................................. 60
77. Gambar 7.1 Bentuk penulisan perintah @...GET ......................................... 61
78. Gambar 7.2 Contoh Penulisan perintah @...GET ......................................... 62
79. Gambar 7.3 Bentuk penulisan perintah SET DELIMETERS ....................... 63
80. Gambar 7.4 Contoh Penulisan perintah fungsi Inkey() ................................ 63
81. Gambar 7.5 Contoh Penulisan perintah fungsi tombol ................................. 68
82. Gambar 7.6 Bentuk penulisan fungsi LASTKEY() ...................................... 68
83. Gambar 7.7 Bentuk penulisan fungsi NEXTKEY() ..................................... 68
84. Gambar 7.8 Bentuk penulisan fungsi KEYBOARD() .................................. 69
85. Gambar 7.9 Bentuk penulisan fungsi SETKEY() ......................................... 69
86. Gambar 7.10 Bentuk penulisan perintah SET KEY...................................... 69
87. Gambar 7.11 Bentuk penulisan perintah dan fungsi SET KEY .................... 69
88. Gambar 8.1 Bentuk penulisan fungsi DbCreate () ........................................ 71
89. Gambar 8.2 Contoh penulisan fungsi DbCreate () ........................................ 72
90. Gambar 8.3 menjalankan DBU Utility lewat Comand Prompt..................... 73
91. Gambar 8.4 Database Utility ......................................................................... 73

Pemrograman Basis Data dengan Clipper 5.3 ix


STMIK Duta Bangsa Surakarta
92. Gambar 8.5 Mendesain Database pada database Utility ............................... 73
93. Gambar 8.6 menyimpan file data base pada databas Utility ......................... 74
94. Gambar 87 Membuat File Index dengan DBU Utility .................................. 74
95. Gambar 8.8 Bentuk Penulisan Pemanggilan Database ................................. 75
96. Gambar 8.9 Bentuk Penulisan Fungsi File() ................................................. 75
97. Gambar 8.10 contoh Penulisan Fungsi File() ................................................ 76
98. Gambar 8.11 contoh Penulisan Operator Makr(&) ....................................... 76
99. Gambar 8.12 contoh Pemanggilan database dengan ekspresi karakter......... 77
100. Gambar 8.13 Bentuk penulisan perintah SELECT ....................................... 77
101. Gambar 8.14 contoh Penulisan Peritah SELECT() ....................................... 78
102. Gambar 8.15 Contoh Penulisan Peritah SELECT ...NEW ........................... 78
103. Gambar 8.16 Bentuk Penulisan Perintah Menutup File ................................ 79
104. Gambar 8.17 Bentuk Penulisan Perintah Menutup File ................................ 79
105. Gambar 8.18 Bentuk Penulisan Menciptakan File Index dengan INDEX ON 80
106. Gambar 8.19 Bentuk Penulisan Perintah SET INDEX, DbSetIndex ............ 81
107. Gambar 8.20 Contoh Penulisan Perintah SET INDEX, Db Set Index() ....... 82
108. Gambar 8.21 Bentuk Penulisan Perintah SET ORDER TO, DbSetOrder .... 82
109. Gambar 8.22 Contoh Penulisan Perintah SET ORDER TO, DbSetOrder .... 82
110. Gambar 8.23 Bentuk Penulisan Perintah REINDEX, DbReindex ................ 83
111. Gambar 8.24 Contoh Penulisan Perintah REINDEX, DbReindex ............... 83
112. Gambar 8.25 Contoh Penulisan Perintah Ckise Index, DbClearindex() ....... 83
113. Gambar 8.26 Bentuk Penulisan Perintah LOCATE FOR ............................. 84
114. Gambar 8.27 Contoh Bentuk Penulisan Perintah LOCATE FOR ................ 85
115. Gambar 8.28 Bentuk Penulisan Perintah SEEK, FIND,DbSeek .................. 85
116. Gambar 8.29 Contoh Penulisan Perintah SEEK, FIND,DbSeek() ............... 87
117. Gambar 8.30 Bentuk Penulisan Perintah count............................................. 87
118. Gambar 8.31 Bentuk Penulisan Perintah Sum .............................................. 88
119. Gambar 8.32 Bentuk Penulisan Perintah AVERAGE .................................. 88
120. Gambar 8.33 Bentuk Penulisan Perintah SKIP ............................................. 89
121. Gambar 8.34 contoh Penulisan Perintah SKIP ............................................ 90
122. Gambar 8.35 Bentuk Penulisan Perintah GO TO, GO.................................. 90

Pemrograman Basis Data dengan Clipper 5.3 x


STMIK Duta Bangsa Surakarta
123. Gambar 8.36 contoh Penulisan Perintah GO TO, GO .................................. 90
124. Gambar 8.37 Bentuk Penulisan Perintah GO TOP ....................................... 91
125. Gambar 8.38 Bentuk Penulisan Perintah GO BOTTOM .............................. 91
126. Gambar 8.39 Contoh Penulisan Perintah GO BOTTOM ............................. 91
127. Gambar 8.40 Bentuk Penulisan Perintah DbSkip()....................................... 92
128. Gambar 8.41 Contoh Penulisan Perintah DbSkip() ...................................... 92
129. Gambar 8.42 Bentuk Penulisan Perintah DbGoto() ...................................... 92
130. Gambar 8.43 Contoh Penulisan Perintah DbGoto()...................................... 93
131. Gambar 8.44 Contoh Penulisan Perintah DbGotop().................................... 93
132. Gambar 8.45 Bentuk Penulisan Perintah DbGoBottom() ............................. 93
133. Gambar 8.46 Contoh Penulisan Perintah DbGoBottom() ............................. 93
134. Gambar 9.1 Bentuk Penulisan Perintah REPLACE ...................................... 94
135. Gambar 9.2 Contoh Form Input Data ........................................................... 94
136. Gambar 9.3 Listing program Form Input Data ............................................. 96
137. Gambar 9.4 Contoh Form Edit Data ............................................................. 96
138. Gambar 9.5 Listing program Form Edit Data ............................................... 98
139. Gambar 9.6 Bentuk Penulisan Perintah DELETE ........................................ 98
140. Gambar 9.7 Bentuk Penulisan Perintah RECALL ........................................ 98
141. Gambar 9.8 Contoh Form Hapus Data.......................................................... 96
142. Gambar 9.9 Listing program Form Hapus Data............................................ 101
143. Gambar 9.10 Contoh Form Program Display ............................................... 101
144. Gambar 9.11 Listing program Form Program Display ................................. 102
145. Gambar 9.12 Listing program Cetak Laporan .............................................. 104
146. Gambar 9.13 Bentuk Penulisan Fungsi Fcount() .......................................... 104
147. Gambar 9.14 Contoh Penulisan Fungsi Fcount() .......................................... 104
148. Gambar 9.15 Bentuk Penulisan Fungsi Field() ............................................. 104
149. Gambar 9.16 Contoh Penulisan Fungsi Field() ............................................. 104
150. Gambar 9.17 Bentuk Penulisan Fungsi RecNo() .......................................... 105
151. Gambar 9.18 Contoh Penulisan Fungsi RecNo() .......................................... 105
152. Gambar 9.19 Bentuk Penulisan Fungsi RecCount() ..................................... 105
153. Gambar 9.20 Contoh Penulisan Fungsi RecCount() ..................................... 105

Pemrograman Basis Data dengan Clipper 5.3 xi


STMIK Duta Bangsa Surakarta
154. Gambar 9.21 Bentuk Penulisan Fungsi LastRec() ........................................ 105
155. Gambar 9.22 Contoh Penulisan Fungsi LastRec () ....................................... 105
156. Gambar 9.23 Bentuk Penulisan Fungsi RecSize() ........................................ 106
157. Gambar 9.24 Contoh Penulisan Fungsi RecSize () ....................................... 106
158. Gambar 9.25 Bentuk Penulisan Fungsi Header().......................................... 106
159. Gambar 9.26 Contoh Penulisan Fungsi Header () ........................................ 106
160. Gambar 9.27 Bentuk Penulisan Fungsi LUpdate() ....................................... 106
161. Gambar 9.28 Contoh Penulisan Fungsi LUpdate () ...................................... 106
162. Gambar 9.29 Bentuk Penulisan Fungsi Bof () .............................................. 106
163. Gambar 9.30 Contoh Penulisan Fungsi Bof() ............................................... 107
164. Gambar 9.31 Bentuk Penulisan Fungsi Eof () .............................................. 107
165. Gambar 9.32 Contoh Penulisan Fungsi Eof() ............................................... 107
166. Gambar 9.33 Bentuk Penulisan Fungsi FieldGet () ...................................... 107
167. Gambar 9.34 Contoh Penulisan Fungsi FieldGet () ...................................... 108
168. Gambar 9.35 Bentuk Penulisan Fungsi FieldPut ()....................................... 108
169. Gambar 9.36 Contoh Penulisan Fungsi FieldPut () ...................................... 109
170. Gambar 9.37 Contoh Program Master Data .................................................. 109
171. Gambar 9.38 Listing Program Master Data .................................................. 112
172. Gambar 10.1 Bentuk Penulisan SET FILTER TO ........................................ 113
173. Gambar 10.1 Contoh Program Pencarian Data dengan SET FILTER TO ... 113
174. Gambar 10.2 Listing Program Pencarian Data Dengan SET FILTER TO ... 114
175. Gambar 10.3 Bentuk Penulisan SET RELATION TO ................................. 115
176. Gambar 10.4 Bentuk Penulisan Perintah SET RELATION TO ................... 115
177. Gambar 10.5 Contoh Relasi Antar Database atau Tabel............................... 116
178. Gambar 11.1 Bentuk Penulisan File Header # INCLUDE ........................... 117
179. Gambar 11.2 Contoh Penulisan File Header # INCLUDE ........................... 117
180. Gambar 11.3 Penulisan Perintah #ifdef,#else dan #endif ............................. 118
181. Gambar 11.4 Contoh Penulisan #ifdef,#else dan #endif .............................. 118
182. Gambar 11.5 Bentuk Penulisan perintah # define ......................................... 119
183. Gambar 11.6 Contoh Penulisan #define ...................................................... 119
184. Gambar 11.7 Bentuk Penulisan perintah # comand atau #translate .............. 120

Pemrograman Basis Data dengan Clipper 5.3 xii


STMIK Duta Bangsa Surakarta
185. Gambar 11.8 Contoh Penulisan # comand atau #translate ........................... 120
186. Gambar 11.9 Contoh Data Array .................................................................. 120
187. Gambar 11.10 Bentuk Penulisan DECALARE ............................................ 121
188. Gambar 11.11 Contoh Penulisan DECALARE ............................................ 121
189. Gambar 11.12 Bentuk Penulisan fungsi Aadd() ........................................... 121
190. Gambar 11.13 Contoh Penulisan fungsi Aadd() ........................................... 122
191. Gambar 11.14 Bentuk Penulisan fungsi ADel() ........................................... 123
192. Gambar 11.15 Contoh Penulisan fungsi ADel() ........................................... 123
193. Gambar 11.16 Bentuk Penulisan fungsi Asize() ........................................... 123
194. Gambar 11.17 Contoh Penulisan fungsi Asize() ........................................... 124
195. Gambar 11.18 Bentuk Penulisan fungsi ADELARRAY () .......................... 124
196. Gambar 11.19 Contoh Penulisan fungsi ADELARRAY () .......................... 124
197. Gambar 11.20 Bentuk Penulisan fungsi AIns () ........................................... 124
198. Gambar 11.21 Contoh Penulisan fungsi AIns () ........................................... 125
199. Gambar 11.22 Bentuk Penulisan fungsi AINSARRAY() ............................. 125
200. Gambar 11.23 Contoh Penulisan fungsi AINSARRAY() ............................ 125
201. Gambar 11.24 Bentuk Penulisan fungsi AFill()............................................ 125
202. Gambar 11.25 Contoh Penulisan fungsi AFill() ........................................... 125
203. Gambar 11.26 Bentuk Penulisan fungsi array() ............................................ 126
204. Gambar 11.27 Bentuk Penulisan fungsi ACopy()......................................... 126
205. Gambar 11.28 Contoh Penulisan fungsi ACopy() ........................................ 126
206. Gambar 11.29 Bentuk Penulisan fungsi AClone()........................................ 126
207. Gambar 11.30 Contoh Penulisan fungsi AClone() ....................................... 126
208. Gambar 11.31 Contoh Penulisan fungsi AScane() ....................................... 127
209. Gambar 11.32 Contoh Penulisan fungsi AScane() ....................................... 127
210. Gambar 11.33 Bentuk Penulisan fungsi ASort()........................................... 127
211. Gambar 11.34 Contoh Penulisan fungsi ASort() .......................................... 127
212. Gambar 11.35 Bentuk Penulisan fungsi AEval() .......................................... 128
213. Gambar 11.36 Contoh Penulisan fungsi AEval().......................................... 128
214. Gambar 11.37 Bentuk Penulisan Blok Kode ................................................ 128
215. Gambar 12.1 Contoh menu Puldown ............................................................ 130

Pemrograman Basis Data dengan Clipper 5.3 xiii


STMIK Duta Bangsa Surakarta
216. Gambar 12.2 Listing program contoh Menu Pull-Down .............................. 133
217. Gambar 13.1 Bentuk Penulisan Fungsi Empty() .......................................... 134
218. Gambar 13.2 Contoh Penulisan Fungsi Empty() .......................................... 135
219. Gambar 13.3 Bentuk Penulisan Fungsi IsAlpha()......................................... 135
220. Gambar 13.4 Contoh Penulisan Fungsi IsAlpha() ........................................ 136
221. Gambar 13.5 Bentuk Penulisan Fungsi IsDigit() .......................................... 136
222. Gambar 13.6 Contoh Penulisan Fungsi IsDigit() .......................................... 136
223. Gambar 13.7 Bentuk Penulisan Fungsi IsLower() ........................................ 137
224. Gambar 13.8 Contoh Penulisan Fungsi IsLower()........................................ 137
225. Gambar 13.9 Bentuk Penulisan Fungsi IsUper() .......................................... 137
226. Gambar 13.10 Contoh Penulisan Fungsi IsUper() ........................................ 138
227. Gambar 13.11 Bentuk Penulisan Fungsi At() ............................................... 138
228. Gambar 13.12 Contoh Penulisan Fungsi At() ............................................... 138
229. Gambar 13.13 Bentuk Penulisan Fungsi Rat().............................................. 139
230. Gambar 13.14 Contoh Penulisan Fungsi Rat() ............................................. 139
231. Gambar 13.15 Bentuk Penulisan Fungsi len() .............................................. 139
232. Gambar 13.16 Contoh Penulisan Fungsi len() .............................................. 139
233. Gambar 13.17 Bentuk Penulisan Fungsi Alltrim() ....................................... 140
234. Gambar 13.18 Contoh Penulisan Fungsi Alltrim() ....................................... 140
235. Gambar 13.19 Bentuk Penulisan Fungsi Ltrim() .......................................... 140
236. Gambar 13.20 Contoh Penulisan Fungsi Ltrim() .......................................... 140
237. Gambar 13.21 Contoh Penulisan Fungsi Rtrim() atau Trim() ...................... 140
238. Gambar 13.22 Contoh Penulisan Fungsi Rtrim() atau Trim() ...................... 141
239. Gambar 13.23 Bentuk Penulisan Fungsi PadC() .......................................... 141
240. Gambar 13.24 Contoh Penulisan Fungsi PadC() .......................................... 141
241. Gambar 13.25 Bentuk Penulisan Fungsi Padl() ............................................ 141
242. Gambar 13.26 Bentuk Penulisan Fungsi PadR() .......................................... 141
243. Gambar 13.27 Contoh Penulisan Fungsi PadR() .......................................... 141
244. Gambar 13.28 Bentuk Penulisan Fungsi left() .............................................. 142
245. Gambar 13.29 Contoh Penulisan Fungsi left().............................................. 142
246. Gambar 13.30 Bentuk Penulisan Fungsi Right() .......................................... 142

Pemrograman Basis Data dengan Clipper 5.3 xiv


STMIK Duta Bangsa Surakarta
247. Gambar 13.31 Contoh Penulisan Fungsi right() ........................................... 142
248. Gambar 13.32 Bentuk Penulisan Fungsi SubStr() ........................................ 142
249. Gambar 13.33 Contoh Penulisan Fungsi SubStr() ........................................ 142
250. Gambar 13.34 Bentuk Penulisan Fungsi Upper() ......................................... 143
251. Gambar 13.35 Contoh Penulisan Fungsi Upper() ......................................... 143
252. Gambar 13.36 Bentuk Penulisan Fungsi Lower() ......................................... 143
253. Gambar 13.37 Contoh Penulisan Fungsi Lower() ........................................ 143
254. Gambar 13.38 Bentuk Penulisan Fungsi Stuff() ........................................... 143
255. Gambar 13.39 Contoh Penulisan Fungsi Stuff() ........................................... 143
256. Gambar 13.40 Contoh operator data string ................................................... 143
257. Gambar 13.41 Bentuk Penulisan Fungsi STR() ............................................ 144
258. Gambar 13.42 Contoh Penulisan Fungsi Str() .............................................. 144
259. Gambar 13.43 Contoh Penulisan Fungsi Val() ............................................. 144
260. Gambar 13.44 Bentuk Penulisan Fungsi Val() ............................................. 144
261. Gambar 14.1 Contoh Penulisan Operator Matematik() ................................ 145
262. Gambar 14.2 Bentuk Penulisan Operator Abs() .......................................... 146
263. Gambar 14.3 Contoh Penulisan Operator Abs() ........................................... 146
264. Gambar 14.4 Bentuk Penulisan Operator Int() ............................................ 146
265. Gambar 14.5 Contoh Penulisan Operator Int() ............................................. 146
266. Gambar 14.6 Bentuk Penulisan Fungsi Max() .............................................. 147
267. Gambar 14.7 Contoh Penulisan Fungsi Max().............................................. 147
268. Gambar 14.8 Bentuk Penulisan Fungsi Min() .............................................. 146
269. Gambar 14.9 Contoh Penulisan Fungsi Min() .............................................. 146
270. Gambar 14.10 Bentuk Penulisan Fungsi Round() ........................................ 147
271. Gambar 14.11 Bentuk Penulisan Fungsi Sqtr() ............................................ 148
272. Gambar 14.12 Contoh Penulisan Fungsi Sqtr() ............................................ 148
273. Gambar 15.1 Contoh Operasi Tanggal.......................................................... 149
274. Gambar 15.2 Contoh Mendevinisikan Variabel Tanggal ............................. 149
275. Gambar 15.3 Bentuk Penulisan Format Tanggal .......................................... 150
276. Gambar 15.4 Bentuk Penulisan Format Tanggal .......................................... 150
277. Gambar 15.5 Contoh Penulisan Format Tanggal .......................................... 150

Pemrograman Basis Data dengan Clipper 5.3 xv


STMIK Duta Bangsa Surakarta
278. Gambar 15.6 Contoh Penulisan Format Tanggal dengan Set Century ......... 151
279. Gambar 15.7 Bentuk Penulisan Fungsi Date().............................................. 151
280. Gambar 15.8 Contoh Penulisan Fungsi Date() ............................................. 151
281. Gambar 15.9 Bentuk Penulisan Fungsi CDow() ........................................... 151
282. Gambar 15.10 Contoh Penulisan Fungsi CDow() ........................................ 151
283. Gambar 15.11 Bentuk Penulisan Fungsi CMount() ...................................... 152
284. Gambar 15.12 Contoh Penulisan Fungsi CDow() ........................................ 152
285. Gambar 15.13 Bentuk Penulisan Fungsi Dow() ........................................... 152
286. Gambar 15.14 Contoh Penulisan Fungsi Dow() ........................................... 152
287. Gambar 15.15 Contoh Penulisan Fungsi Day() ............................................ 152
288. Gambar 15.16 Contoh Penulisan Fungsi Day() ............................................ 152
289. Gambar 15.17 Bentuk Penulisan Fungsi Mount() ........................................ 152
290. Gambar 15.18 Contoh Penulisan Fungsi Mount() ........................................ 152
291. Gambar 15.19 Bentuk Penulisan Fungsi Year() ........................................... 153
292. Gambar 15.20 Contoh Penulisan Fungsi Year () .......................................... 153
293. Gambar 15.21 Bentuk Penulisan Fungsi Dtoc() ........................................... 153
294. Gambar 15.22 Contoh Penulisan Fungsi Dtoc () .......................................... 153
295. Gambar 15.23 Bentuk Penulisan Fungsi Ctod() ........................................... 153
296. Gambar 15.24 Contoh Penulisan Fungsi Ctod() ........................................... 153
297. Gambar 15.25 Contoh Penulisan Fungsi Time() .......................................... 154
298. Gambar 15.26 Bentuk Penulisan Fungsi Second() ....................................... 154
299. Gambar 16.1 Contoh Pembacaan Field Memo ............................................. 155
300. Gambar 16.2 Contoh Menulisa data ke dalam field memo ........................... 155
301. Gambar 16.3 Bentuk Penulisan Fungsi MemoRead() .................................. 156
302. Gambar 16.4 Contoh Penulisan Fungsi MemoRead() .................................. 156
303. Gambar 16.5 Bentuk Penulisan Fungsi MemoEdit() .................................... 156
304. Gambar 16.6 Contoh Penulisan Fungsi MemoEdit() ................................... 156
305. Gambar 16.7 Bentuk Penulisan Fungsi MemoWrite() .................................. 156
306. Gambar 16.8 Contoh Bentuk Penulisan Fungsi MemoWrite() ..................... 156
307. Gambar 17.1 deklarasi variable memory ...................................................... 157
308. Gambar 17.2 bentuk penulisanPerintah SAVE TO ...................................... 157

Pemrograman Basis Data dengan Clipper 5.3 xvi


STMIK Duta Bangsa Surakarta
309. Gambar 17.3 Contoh Penulisan Perintah SAVE TO .................................... 157
310. Gambar 17.4 Bentuk penulisanPerintah RESTORE FROM() ...................... 158
311. Gambar 17.5 Contoh Penulisan Perintah RESTORE FROM () ................... 158
312. Gambar 17.6 penulisanPerintah Menghapus variabel memory () ................. 158

Pemrograman Basis Data dengan Clipper 5.3 xvii


STMIK Duta Bangsa Surakarta
BAB I
PENDAHULUAN
MENGENAL APAKAH ITU CLIPPER ?
Tujuan Instruksional Umum :
Mahasiswa dapat memahami konsep dasar bahasa pemrograman Clipper Compiler 5.3.

Tujuan Instruksional Khusus :


1. Mahasiswa dapat mengetahui Bahasa Pemrograman Clipper 5.3, dapat mengetahui apa saja
yang harus disiapkan dalam bahasa pemrograman Clipper 5.3.
2. Mahasiswa dapat membuat file program clipper.
3. Mahasiswa mengetahui cara compilasi dan linking file program clipper.

A. Apakah Clipper itu?


Merupakan sebuah bahasa pemprograman untuk menejemen database/
data base Clipper dapat digolongkan bahasa pemprograman database.Jika anda
mengenal program-program paket pengolah database (DBMS) seperti dBase II
Plus, FoxBase, FoxPro dan lain-lain, adalah bahasa pemrograman pengolah
database yang menggunakan Interpreter sebagai penerjemah saat kita
menjalankan program, sehingga jika anda akan menjalankan suatu program
aplikasi tertentu yang dibuat, anda harus mengaktifkan terlebih dahulu
program paket tersebut dan dengan perintah tertentu, misalkan DO, baru akan
dijalankan program aplikasi tersebut. Berbeda dengan Clipper Compiler
karena menggunakan penerjemah Compiler, maka program yang dibuat harus
dibentuk ke dalam file Executable (.EXE) untuk bisa dijalankan, sehingga
tidak perlu kita masuk ke program Clipper untuk menjalankannya, tetapi dari
Dos Prompt bisa kita jalankan dengan memanggil nama file .exe yang
dihasilkan.
B. Apakah yang harus disiapkan ?
Untuk mengoperasikan program Clipper Compiler ada beberapa hal
yang perlu diperhatikan terlebih dahulu, misalkan program yang anda buat
atau anda tulis harus dalam format teks atau ascii. Nama file yang digunakan
berekstension .PRG. Program dapat dibuat dengan editor apa saja misal SK
(SideKick) atau dengan editor pada Dos, atau dengan menggunakan program
bantu bawaan dari program clipper Compiler yaitu PE (Program Editor),

Pemrograman Basis Data dengan Clipper 5.3 xviii


STMIK Duta Bangsa Surakarta
dengan cara memanggil file PE.EXE yang bentuk umum penulisannya sebagai
berikut :
C:\>PE coba.prg
Atau
C:\>edit coba.prg
Gambar 1.1 Program Editor Clipper
File Config. Sys
Pada pemprograman data base sering terjadi membuka lebih dari satu
file sekaligus yang kadang meliputi file data base dan indexnya. Maka
diperlukan file config.sysuntuk mengatur configurasi buffer komputer yang
dipakai.
Untuk menggunakan Clipper maka confog.sys harus berisi perintah
derektif.

Files = n

N=berkisar antara 8 s/d 255, jika akan dibuka 30 file sekaligus maka n diisi
dengan 35, 30 untuk file data base dan 5 untuk digunakan dos.

File Autotexec.bat
Digunakan untuk menentukan variabel enviromen yang digunakan
Clipper, guna menentukan lokasi file LIB, file Include. File Lib merupakan
file librari yang digunakan untuk proses compilasi. File Include berisi file
header yang diperlukan oleh perintah yang digunakan dalam pemprograman.
Didalam file Autotexec. Bat dapat diberi perintah :

SET PIPEHANDLE=0
SET OBJ=C:\CLIP53\OBJ
SET LIB=C:\CLIP53\LIB
SET INCLUDE=C:\CLIP53\INCLUDE
SET PATH=C:\CLIP53\BIN

Pemrograman Basis Data dengan Clipper 5.3 xix


STMIK Duta Bangsa Surakarta
Gambar 1.2 file Autoexect.Bat
Perintah set path diatas membuat komputer mencuri letak file clipper, file
clpper ditunjukkan berada directori c:\clip5\bin, juga dapat diberikan perintah
untuk menentukan jumlah file yan dipanggil.
 SET INCLUDE
Berfungsi untuk mengatur konfigurasi pencarian file-file Header.
 SET LIB
Berfungsi mengatur konfigurasi pencarian file-file library.
 SET PATH
Berfungsi mengatur konfigurasi pencarian file-file yang dibutuhkan,
termasuk file-file system utama atau file Executable yang dibutuhkan oleh
program clipper compiler serta file-file clipper Guide.
 SET OBJ
Berfungsi untuk konfigurasi pencarian file-file objek yang berisikan
prosedur dan fungsi.
 File-file BIN
Yaitu file-file system utama berupa file executable (.exe) yang dipakai
dalam proses kompilasi dan link program.
File-file ini terletak di C:\CLIP53\BIN
 File-file LIB atau Library
Yaitu file-file system yang dipakai sebagai libaray atau pustaka pada saat
proses Link dari program yang menggunakan prosedur atau fungsi
tertentu, dan fungsi itu diterjemahkan berdasarkan library yang ditunjuk
saat diberikan perintah kompilasi.
File-file ini terletak di C:\CLIP53\LIB
 File-file HEADER
yaitu file-file system yang berfungsi untuk menyimpan konstanta simbolik
yang akan diaktifkan oleh pengarah compiler #include sesuai dengan
masing-masing kelompok konstanta simbolik yang disimpan dalam file
header.
File-file ini terletak di C:\CLIP53\INCLUDE

Pemrograman Basis Data dengan Clipper 5.3 xx


STMIK Duta Bangsa Surakarta
Gambar 1.3 Letak File Header

 File-file PLL (PreLink Library)


Yaitu file-file system libarary untuk PreLink, yang berfungsi untuk
menyimpan library yang sudah dikompilasi atau kode-kode program yang
siap dipakai, sehingga saat proses Link tidak membutuhkan file system
Library dan dipakai pada saat melakukan eksekusi program.
 File-file OBJ
Yaitu file-file object bawaan clipper compiler yang berisikan prosedur-
proseduer atau fungsi-fungsi yang pada suatu saat digunakan dapat anda
pakai sebagai library dengan cara mengubah file tersebut menjadi file
library.
File-file ini terletak di C:\CLIP53\OBJ
 File-file Clipper Guide
Yaitu file-file bawaan clipper compiler yang berisikan Guide atau
keterangan semua elemen yang dapat dipakai dalam program Clipper
Compiler.
File-file ini terletak di C:\CLIP53\NG

C. Bagaiman membuat program dengan Clipper ?


Menulis listing program
Intruksi program dapat ditulis dengan editor apa saja asal berbasis text
(ASCII) seperti ek, word start non dokumen, edit dari dos. Hasil penulisan
disimpan denngan menggunakan extention PRG.
Compilasi
Intruksi program yang telah ditulis selanjutnya dicompilasi sehingga diproses
file yang berjenis (bertipe) OBJ atau denghan kata lain proses compilasi akan
membuat file obyak.
Perintah yang dipakai :
Clipper<nama program><enter>
Contoh : C:\clipper coba.prg

Pemrograman Basis Data dengan Clipper 5.3 xxi


STMIK Duta Bangsa Surakarta
Gambar 1.4 Proses Compilasi

Proses Linking
Proses ini digunakan untuk mengubah file obj menjadi file exe, sehingga
dapat dijankan langsungn dari dos.
Rtlink fi<nama file obj> / ppl:Base52 (untuk clpper 52)
Rtlink fi<nama file obj (untuk clipper 52)
Blinker Rtlink fi<nama file obj (untuk clipper 53)
Contoh C:\blinker fi coba
Gambar 1.5 Proses Linking

Penulisan program dengan


penyimpanan PRG
Perintah : C:\edit coba.prg

Proses kompilasi yang akan menghasilkan file Object (.OBJ)

Proses kompilasi dengan


menhasilkan file OBJ
Perintah : C:\clipper coba.prg

Proses link yang akan menghasilkan file Executable (.EXE)

Proses Linking dengan


menhghasilkan file EXE
Perintah C:\blinker fi coba

Gambar 1.6 Langkah proses pembuatan program clipper


 File Program (.PRG)
Adalah file program yang anda buat dengan aplikasi tertentu dan ditulis
dengan modus teks atau ascii serta dapat menggunakan semua editor teks,
misalkan SK (SideKick), PE (Program Editor) dan lain-lain.
 File Object (.OBJ)
Adalah file object hasil kompilasi atau hasil terjemahan file program
dalam bahasa mesin setelah diberikan perintah kompilasi.

Pemrograman Basis Data dengan Clipper 5.3 xxii


STMIK Duta Bangsa Surakarta
 File Executable (.EXE)
Adalah file yang sudah jadi dan siap dijalankan hasil dari proses link
terhadap file object.

BAB II
STRUKTUR DAN FORMAT PROGRAM CLIPPER COMPILER

Tujuan Instruksional Umum :


Mahasiswa dapat memahami Struktur Program dan Format Program Clipper Compiler 5.3

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui format program Bahasa Pemrograman Clipper 5.3.
2. Mahasiswa mengetahui dan memahami fungsi dan prosedure.
3. Mahasiswa dapat membuat file program clipper dengan fungsi dan procedure.

A. Format Program Clipper


Berikut ini adalah format program clipper compiler secara lengkap yang dapat
kita pakai dalam pembuatan program clipper, yaitu sebagai berikut :
//Perintah-perintah compiler
//Jika menggunakan kompilasi bersyarat
[#ifdef <simbol>]
//Menggunakan file header (bisa lebih dari satu file header)
[#include ”<nama file header>”...]
//Mendefinisikan makro kompiler (bisa lebih dari satu)
[#define <nama makro compiler.([<parameter formal>
[,...]])<ekspresi>...]
//Mendefinisikan perintah (bisa lebih dari satu)
[#command <nama perintah> [<parameter formal> [,...]] =>;
<nama fungsi>(<parameter formal>[,...]])
...]
//Menggunakan file header (bisa lebih dari satu file header )
[#include ”<nama file header>”
//Mendefinisikan konstanta simbolik (bisa lebih dari satu)
[#define <nama konstanta simbolik> <konstanta>
...]
//Mendefinisikan makro kompiler (bisa lebih dari satu)
[#define <nama makro compiler>([<parameter formal>{,...]])
<ekspresi>
...]
//Mendefinisikan perintah (bisa lebih dari satu)
[#command <nama perintah>[<parameter formal>[,...])=>;

Pemrograman Basis Data dengan Clipper 5.3 xxiii


STMIK Duta Bangsa Surakarta
<nama fungsi>(<parameter formal>[,...]])
...]
[#endif]
//deklarasi variabel-variabel eksternal
[<pernyataan><nama variabel>[:=<nilai variabel>] [,...]
...]
//Deklarasi fungsi atau prosedur
[[STATIC] FUNCTION/PROCEDURE <nama fungsi/prosedur>
([<parameter formal>[,...]])
[PARAMETERS [<parameter formal> [,...]]]
//Dekalarasi variabel interbal
[<pernyataan><nama variabel> [:=<nilai variabel>] [,...]
...]

//Pernyataan-pernyataan yang digunakan dalam fungsi atau


prosedure
[<pernyataan>
...]

//Memberikan ekspresi
[<ekspresi>
...]

//Menggunakan perintah-perintah clipper


[<nama perintah> [<parameter perintah> [,...]]
...]

//Menggunakan fungsi/prosedur
[<nama fungsi/prosedur> ([<parameter fungsi/prosedur>
[,...]])
...]
[RETURN [<nilai balik fungsi>]]
...]

Gambar 2.1 Format Program Clipper


Dari format program di atas, maka dapat kita ambil kesimpulan bahwa
program clipper yang kita buat mempunyai tiga kategori atau bagian utama
program yaitu :

Pemrograman Basis Data dengan Clipper 5.3 xxiv


STMIK Duta Bangsa Surakarta
1. Bagian Instruksi Kompiler
Yaitu bagian yang penulisan-penulisannya diawali dengan tanda atau
karakter #, yang mempunyai maksud mendefinisikan pengarah compiler.

2. Bagian deklarasi variabel eksternal


Yaitu bagian yang berfungsi untuk mendefinisikan variabel eksternal atau
yang dapat dipakai oleh seluruh prosedure atau fungsi yang didefinisikan.
3. Bagian utama program
Yaitu bagian yang merupakan tubuh program sesuai dengan maksud dan
logika pemrograman dan berisikan blok-blok program yang terangkum
dalam masing-masing fungsi atau prosedure.

B. Fungsi dan Prosedur


Secara umum fungsi dan prosedur adalah sama, yaitu suatu subrutine
atau kelompok-kelompok program yang berdiri sendiri dan memiliki tugas-
tugas khusus, misalkan mencetak teks di tengah, memberikan konfirmasi,
menampilkan pesan kesalahan dan lain-lain, seperti kalu dalam program
foxbase dan dbase adalah prosedur yang digunakan untuk program utama.
Perbedaan antar prosedur dan fungsi adalah hanya pada niali balik yang
dihasilkan, jika fungsi menghasilkan nilai balik sedangkan prosedure tidak
menghasilkan nilai balik atau nil (kosong).
Contoh :
FUNCTION Jumlah(nNilai1,nNilai2)
LOCAL nJumlah
nJumlah=nNilai1 + nNilai2
RETURN nJumlah

PROCEDURE Jumlah(nNilai1,nNilai2)
LOCAL nJumlah
nJumlah=nNilai1 + nNilai2
@10,10 SAY nJumlah PICTURE ‟999,9999‟
RETURN
Gambar 2.2 Contoh 1 Function dan Procedure
Dari dua program di atas dapat diterangkan bahwa, fungsi Jumlah akan
menghasilkan nilai balik nJumlah yang merupakan hasil penjumlahan nilai-

Pemrograman Basis Data dengan Clipper 5.3 xxv


STMIK Duta Bangsa Surakarta
nilai data dari variabel nNilai1 dan nNilai2, sedangkan prosedur Jumlah tidak
dihasilkan nilai balik, tetapi melakukan proses penjumlahan nilai-nilai data
dari variabel nNilai1 dan nNilai2 sekaligus menampilkannya. Nilai balik yang
dihasilkan oleh fungsi dapat disimpan ke dalam suatu variabel memory
dengan cara seperti contoh berikut ini :
PROCEDURE Main()
LOCAL nJml
nJml=Jumlah(10,20)
@10,10 SAY nJml PICTURE ‟999,999‟
RETURN

FUNCTION Jumlah(nNilai1,nNilai2)
LOCAL nJumalh
nJumlah=nNilai1 + nNilai2
RETURN nJumlah
Gambar 2.3 Contoh 2 Function dan Procedure
Fungsi dan prosedur dalam program clipper secara umum dibagi menjadi dua
yaitu :
 Fungsi atau prosedur standar
Fungsi standar yang disediakan oleh program clipper dan anda tinggal
menggunakannya, misalkan fungsi CHR(), LEN(), ABS() danlain-lain.
 Fungsi atau prosedur user defined
Fungsi atau prosedur yang dapat kita ciptakan sendiri sesuai dengan
kebutuhan yang kita inginkan.
1. Apakah Prosedure itu ?
Prosedure adalah suatu kumpulan perintah yang menjalankan
/mengerjakan suatu pekerjaan tertentu. Hal ini akan memperpendek
penulisan program karena jika ada pekerjaan yang sama berulang kali,
pekerjaan tersebut dapat ditulis dalam satu prosedure sehingga tinggal
memanggil nama prosedure tiap akan mengerjakan pekerjaan.
Dalam prosedure bisa terjadi ada pemakaian parameter saat
pemanggilan. Ada dua jenis parameter dalam prosedure.
1. Para meter yang bersifat reference
2. Para meter yang bersifat by value
Secara defauld dalam prosedure parameter bersifat by reference. Reference
yaitu nilai yang dikirimkan bisa dirubah.

Pemrograman Basis Data dengan Clipper 5.3 xxvi


STMIK Duta Bangsa Surakarta

a. Membuat Prosedure
Aturan penulisan:
Procedure <nama_pro>
Parameter <daf_para>
....................................
Blok intruksi
...............................
..............................
Return

Keterangan
Nama_pro : nama prosedure
Daf_para : daftar parameter jika ada
Gambar 2.4 Aturan Penulisan Procedure
b. Bagaimana Penggunaan atau Pemanggilan Prosedure
Pemanggilan prosedure dilakukan dengan cara :

Prosedure tak berparameter


Do <nama_pro>

Prosedure dengan parameter


Do <nama_pro> with <dafpara>
Gambar 2.5 Pemanggilan Procedure
Contoh :

*program contoh.prg
a=5
b=10
c=0
do hitung with a, b, c
?c //50
Retu

*prosedure hitung
Procedure hitung
Parameter pa, pb, pc

Pemrograman Basis Data dengan Clipper 5.3 xxvii


STMIK Duta Bangsa Surakarta
Pc=pa*pb
Retu
Gambar 2.6 Contoh 1 Penggunaan Prosedur

Dari contoh diatas begitu nama procedure dipanggil deprogram utama


maka nilai A akan dimasukkan ke pc. Karena bersifat refernce maka
hasil perkalian pa*pb yang disimpan di pc akan berubah isi dari
variabel c.
Contoh lagi:
*program contoh procedure
a=5
b=10
?a //5
?b //10
Do ubah with a, b
?a //20
?b //15
Retu
*procedure ubah
Proc ubah
Para c,d
c:=c+15
d:=d+5
Retu
Gambar 2.7 Contoh 2 Penggunaan Prosedur
Parameter By Value secara defauld hanya terjadi pada pemanggilan
fungsi, yaitu prosedure pengiriman nilai tidak bias dirubah.
Contoh lagi :

*contoh program untuk membuat kotak


Do buat_kotak with 5,10,20,70,”b”/w”
Retu

*procedure untuk buat kotaknya


Proc buat_kotak
Parameters t,l,b,r,Clr
Local v,h,I
V=savescreen(t+l,r+l,b+l,r+2)
H= savescreen(b+l,l+2,b+l,r+2)
For 1=2 to len(h) step 2
H=stuff(h,I,l,chr(7))
Next

Pemrograman Basis Data dengan Clipper 5.3 xxviii


STMIK Duta Bangsa Surakarta
For 1=2 to len(v) step 2
Next
Set color to (Clr)
@ t,l clear to b,r
@ t,l to b,r
Restscreen(1+l,r+l,b+l,r+2,v)
Restscreen(b+l,l+2,b+l,r+2,h)
Return
Gambar 2.8 Contoh 3 Penggunaan Prosedur
2. Apakah Fungsi ?
Hampir sama dengan prosedure fungsi merupakan kumpulan intruksi yang
dapat menghasilkan suatu keluaran.
Membuat fungsi :
Function <nam_fungsi>
Parameter <dafparameter>
...................
...................
Retu <nilai kembali>
Gambar 2.9 Aturan Penulisan Fungsi
 Pemanggilan Fungsi
Pemanggilan fungsi dilakukan dengan menyertakan dengan perintah
lain.
Contoh fungsi :
A=5
B=10
? hitung (A,B)
Retu

Functoin hitung
Para A,B
D=0
D=a+b
Retu d
Contoh fungsi untuk menguji apakah printer dalam kondisi siap:

Function cekprinter()
If Isprinter()
Retu (“printer siap”)
Else

Pemrograman Basis Data dengan Clipper 5.3 xxix


STMIK Duta Bangsa Surakarta
Retu(“printer belum siap”)
Endif

Isprinter merupakan fungsi bawaan clipper untuk mengecek printer


apakah sudah siap.
Gambar 2.10 Contoh Penggunaan Fungsi

TUGAS !
1. Tulislah program berikut :
*program test fungsi
Center (“ini contoh”,12,1,80,‟r+/w)
Return
Function center()
Para pesan, baris,kol1,kol2,wrn
Privat war1
War1=setcolor()
Set color to&wrn
@ baris,kol1+int(((kol2-kol1)-len(pesan))/2) say pesan
Set color to&wr1
return
2. Buatlah procedure untuk menghitungsuatub factorial sebuah bilangan
3. Buatlah sebuah fungsi bila ada masukkan sebuah angka akan keluar nama
hari, dengan ketentuan :
1 keluar Minggu
2 keluar Senin
3 keluar Selasa
4 keluar Rabu
5 keluar Sabtu
6 keluar Minggu
4. Buatlah procedure untuk menentukan nama hari jika masukkan berupa
angka. Ketentuan sebagai berikyut :

Pemrograman Basis Data dengan Clipper 5.3 xxx


STMIK Duta Bangsa Surakarta
1 hari Senin
2 hari Selasa
3 hari Rabu
4 hari Kamis
5 hari Jum‟at
6 hari Sabtu
7 hari Minggu

BAB III
DATA DAN VARIABEL
Tujuan Instruksional Umum :
Mahasiswa dapat memahami Tipe Data dan Variable dalam bahasa pemrograman Clipper.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui jenis tipe data clipper.
2. Mahasiswa dapat menerapkan tipe data clipper ke dalam bahasa pemrograman clipper.
3. Mahasiswa mengetahui variabel.
4. Mahasiswa dapat menerapkan variabel ke dalam bahasa pemrograman clipper.

Tujuan utama dari suatu pengolahan atau proses tertentu baik dengan
atau tanpa komputer adalah informasi. Dalam konsep sistem informasi, data
merupakan unsur penting karena merupakan dasar dihasilkannya informasi. Oleh
karena itu dengan menggunakan komputer kepastian data yang akan diolah
menjadi informasi, merupakan prioritas utama dalam suatu proses pengolahan.
A. DATA
Dalam pemrograman program clipper data dikelompokkan ke dalam dua tipe
data, dan masing-masing tipe terdiri atasa berbagai jenis data seperti di bawah
ini :
Tipe data yangn dimiliki clipper terdiri atas :
 Tipe Sederhana
- Character/String
Merupakan data yang tidak dapat dilakkukan proses matematik,
misalnya nama, alamat dll. Jenis data ini dapat berisikan semua jenis
karakter atau string (abjad, angka dan karakter khusus) yang dituliskan
di antara tanda atau pembatas data character atau string yaitu :

Pemrograman Basis Data dengan Clipper 5.3 xxxi


STMIK Duta Bangsa Surakarta
 Tanda kutip tunggal („ „)
 Tanda kutip ganda (“ “)
 Tanda kurung buka, kurung tutup kotak atau siku ([ ])
Contoh :
1. [STMIK”DUTA BANGSA”] atau „STMIK”DUTA BANGSA”‟
2. cJudul=”STMIK DUTA BANGSA”
3. cNama=‟STMIK DUTA BANGSA”
4. cNama=[STMIK DUTA BANGSA]
5. cJumlah=”250.000”
6. cJumlah=[250.000]
Gambar 3.1 Contoh Tipe Data String
- Date/Tanggal
Jenis data tanggal atau date ini digunakan untuk menyatakan suatu
penanggalan dan disediakan untuk memudahkan dalam memproses
atau memanipulasi data tanggal.
Tipe data date digunakan bila data berupa tanggal format tanggal yang
terdapat di Clipper adalah :
Tabel 3.1 Format Tipe Data Tanggal
Format Bentuk keluaran
American Mm/dd/yy
Ansi yy.mm.dd
British Dd/mm/yy
French Dd/mm/yy
German dd.mm.yy
Italian dd-mm-yy
Japanese Yy/mm/dd
Usa mm-dd-yy

Untuk mementukan format tanggal perintah yang digunakan :


Set date<format tanggal>
Contoh:
Set date american
Gambar 3.2 Perintah Penulisan Tipe Data Tanggal
Clipper juga menyediakan perintah agar programer menentukan sendiri
format tanggalnya tanpa menggunakan tipe dari tabel di atas :
Set date format to<string>

Pemrograman Basis Data dengan Clipper 5.3 xxxii


STMIK Duta Bangsa Surakarta
Contoh:
Set date format to”dd-mm-yy”
Gambar 3.3 Perintah Penulisan Tipe Data Tanggal
- Logical
Tipe data yang memiliki dua kondisi atau dua kemungkinan yaitu
benar atu salah. Benar dinyatakan denngan .T., sedangnkan salah
dinyatakan dengan .F.

- Memo
Data memo merupakan data yang terdiri atas string dengnan ukukran
besar, tiap record akan tersimpan dengan panjang yang berbeda-beda,
data ini akan tersimpan dengan file berjenis .DBT
- Numeric
Jenis data hanya dapat berisikan karakter angka 0 sampai dengan 9,
titik (.) untuk pembatas desimal dan karakter minus (-) sebagai tanda
bilangan negatif. Selain menggunakan karakter-karakter itu, maka data
numerik dianggal didak sah atau salah.
Contoh : cJumlah=240000.00

 Tipe Kompleks
- Array
Merupakan satu atau lebih variabel yang memiliki nama yangh sama,
untuk membedakannya berdasarkan nomor elemenya. Sebelum
digunakan array harus dideklarasikan, cara mendeklarasikan:
Declara nama_array[jumlah elemen]
Local nama_array[jumlah elemen]
Privat nama_array[jumlah elemen]
Public nama_array[jumlah elemen]
Static nama_array[jumlah elemen]

Pemrograman Basis Data dengan Clipper 5.3 xxxiii


STMIK Duta Bangsa Surakarta
Contoh pemakaian :
Local paket[3]
Paket[1]=”dbase III”
Paket[2]=”turbo c”
Paket[3]=”pascal”
? paket[2]//turbo c

Gambar 3.4 Deklarasi Penulisan Array

Bila array dipakai tanpa dideklarasikan terlebih dahulu dengan cara diapit
diantara dua tanda {}.
Contoh :
Paket={“DbaseII”,”Turbo C”,”Pascal”}
Array dapat pula mengandung elemen yang berlainan, contoh :
Data={“Dbase”,”Pascal”,50,80}
Gambar 3.5 Contoh Tipe Data Array

- Code Bock/Blok Kode


Dta yang berisi kode yang tercompilasi. Bentuknya seperti berikut :
{<daftar argumen> <daftar expresi> }
Gambar 3.6 Penulisan Code Block
Keterangan :
 <Daftar Argumen> adalah daftar argumen atau parameter yang
akan dilewatkan dan dipakai oleh ekspresi dalam data kode
blok
 <Daftar Ekspresi> adalah merupakan ekspresi data blok kode
yang dieksekusi atau dievaluasi.
- Nil
Data yang dipakai untuk menyatakan suatu sebutan tidak ada issinya,
biasanya dipaki saat disebutkan suatu argumen tidak ada isinya.
Local pelajaran[4]

Pemrograman Basis Data dengan Clipper 5.3 xxxiv


STMIK Duta Bangsa Surakarta
/pelajaran[1] //NIM
Gambar 3.7 Contoh Tipe Data NIL
- Object
Adalah suatu konsep baru penggunaan data dan terdapat dalam bahasa-
bahasa pemrograman canggih seperti Turbo C++, Turbo Pascal
Release 6.0 atau yang lebih baru serta sering digunakan dalam konsep
pemrograman bahasa-bahasa pemrograman under windows. Object
adalah jenis data yang secara otomatis mengandung data atau nilai
instan dan fungsi yang telah disusun sedemikian rupa oleh program
clipper.
B. VARIABEL
Variabel merupakan suatu sebutan yang dipakai untuk menyimpan data.
Syarat variabel :
- Panjang maksimum 10 karakter
- Karakter pertama tidak boleh angka
- Tidak boleh mengandung spasi, tanda baca
- Tidak boleh kata / atatement clipper
- Variabel sebaiknya mencerminkan datanya
Contoh :
Nilai
No_mhs
Tgl_lahir

Contoh salah :
2nilai
No mhs
Set
Gambar 3.8 Contoh Penulisan Variabel
Macam-macam variabel :
 Variabel Public

Pemrograman Basis Data dengan Clipper 5.3 xxxv


STMIK Duta Bangsa Surakarta
Merupakan variable yang akan dikenali di seluruh tubuh program,
biasanya didefinisikan dengan kata “public”.
 Variabel private
Variabel yang akan dakenali oleh procedure / fungsi dimana variabel
tersebut didefinisikan dan juga procedure atau fungsi yang terletak di
level bawahnya (yang dipanggil).
Didefinisikan dengan kata “Private”
 Variabel Local
Variabel yang akan dikenali ditempat procedure atau fungsi dimana ia
didefinisikan. Biasanya didefinisikan dengan kata “Local”

 Variabel Static
Variabel yang akan diinisialkan sekali saja. Sifat variabel ini sama
dengan variabel local yaitu hanya dikenali di tempat ia didefinisikan.
Contoh satu :
*Program Bapak
A=15
B=20
Do putra
? A // 15
? B // 20
? C // 35
Gambar 3.9 Contoh 1 Variabel Static
Darin dua program daitas variable A dan B akan dikenal oleh program
putra karena bersifat Public, sedang C hanya dikenal oleh program putra
karena bersifat local.
Contoh dua :
*program bapak.prg
Public c
A=3

Pemrograman Basis Data dengan Clipper 5.3 xxxvi


STMIK Duta Bangsa Surakarta
B=4
Do anak
? a // 3
? b // 4
? c // 12
*program anak.prg
C;=a*b
? a // 3
? b // 4
? c // 12
Contoh tiga :
*program bapak.prg
Public c
A:=5
B:=10
Do putra
? A // 15
? B // 10
? c // .f.
*program putraku.prg
Private c
c;=a*b
do turunan
? a //5
? b //10
? c //50
retu
*program turunan.prg
? a // 5
? b // 10
? c // 50

Pemrograman Basis Data dengan Clipper 5.3 xxxvii


STMIK Duta Bangsa Surakarta
Gambar 3.10 Contoh 2 Variabel Static

Variabel C akan menghasillkan angka pada putra.prg dan turunan.prg Variabel C


pada bapak tidak terpengaruh karena Variabel C pada putra bersifat Private.

BAB IV
OPERATOR DAN EKSPRESI
Tujuan Instruksional Umum :
Mahasiswa dapat mengenal dan memahami operator dan ekspresi dalam Clipper Compiler 5.3.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui jenis operator dalam bahasa permrograman clipper.
2. Mahasiswa dapat menerapkan operator dalam bahasa pemrograman clipper.
3. Mahasiswa dapat mengetahui jenis ekspresi dalam bahasa pemrograman clipper.
4. Mahasiswa dapat menerapakan ekspresi dalam bahasa pemrograman clipper.

Dalam pemrograman dengan clipper akan selalu kita gunakan apa yang disebut
Ekspresi. Epkspresi sendiri adalah suatu rumusan atau formula yang dapat
dievaluasi dan menghasilkan suatu nilai baru. Di dalam Ekspresi selalu
menggunakan operator, sesuai dengan jenis data yang digunakan, sehingga
operator sangat erat kaitannyadengan ekspresi.

A. Ekspresi dalam Clipper


Secara umum ekspresi dalam pemrograman clipper dibagi menjadi 6 (enam)
jenis ekspresi, berikut operator yang dapat digunakan yaitu :
 Ekspresi Pemuatan Nilai

Pemrograman Basis Data dengan Clipper 5.3 xxxviii


STMIK Duta Bangsa Surakarta
Ekspresi Pemuatan Nilai ini selalu digunakan, jika anda akan memuat atau
memasukkan nilai atau harga wal, hasil evaluasi atau proses suatu
ekspresi, nilai balik suatu fungsi atau nilai variabel lain, ke dalam variabel
yang tertentu yang dimaksud.
Bentuk penulisan ekspresi pemuatan nilai adalah :
<variabel> = <ekspresi>
Atau
<variabel> := <ekspresi>
Gambar 4.1 Bentuk Penulisan ekspresi pemuatan
 Ekspresi Matematika
Ekspresi matematik adalah rumusan atau pernyataan matematik yang
dapat dievaluasi untuk menghasilkan suatu nilai baru.
Operator matematik digunakan untuk proses matematika.
Berikut Operator matematik :
Tabel 4.1 Operator Matematika
Operator Guna Jenis data
**,^ Perpangkat N
* Perkalian N
/ Pembagian N
% Modulus/Sisa hasil bagi N
+ Penambahan atau Penjumlahan ND
+ Sambung C
- Pengurangan ND
- Sambung C
++ Peningkatan atau increment ND
-- Penurunan atau decrement ND
^= Perpangkatan terhadap variabel yang sama N
*= Perkalian terhadap variabel yang sama N
/= Pembagian terhadapvariabel yang sama N
%= Sisa bagi terhadap variabel yang sama N
+= Penjumlahan terhadap variabel yang sama N
-= Pengranagan terhadap variabel yang sama N
Ketarangan :
N : Numeric
C : Carakter
D : Date

Pemrograman Basis Data dengan Clipper 5.3 xxxix


STMIK Duta Bangsa Surakarta
 Ekspresi String
Ekspresi string adalah rumusan atau pernyataan data string yang dapat
dievaluasi untuk menghasilkan suatu nilai string baru. Operator yang
digunakan hanya dua yaitu :
Operator + Penggunaannya untuk penggabungan data string termasuk
spasi.
Operator – Penggunaannya untuk penggabungan data string tanpa spasi
Contoh :
? ”Program ” + ”Clipper” Hasil //”Program Clipper”
? ”Program ” – ”Clipper” Hasil //”ProgramClipper”
Gambar 4.2 Contoh Ekspresi String
 Ekspresi Relasi
Ekspresi relasi adalah ekspresi yang membandingkan dua buah ekspresi
atau pernyataan dan akan menghasilkan nilai .T. (TRUE), jika hasil
perbandingan benar dan akan menghasilkan nilai .F. (FALSE), jika
perbandingan salah.Ekspresi ini biasa dipakai untuk mengkondisikan suatu
data. Operator-operator yang digunakan mempunyai jenjang atau prioritas
sama dan selalu dievaluasi dari kiri ke kanan, yang antara lain terdiri dari :
Tabel 4.2 Operator-Operator Relasi
Operator Fungsi Data
<> / = # Tidak sama C D L N M NIL
< Lebih kecil ADLNM
<= Lebih kecil sama dengan CDLNM
= Sama dengan C D L M N NIL
== Sama persis C D L N M A O NOL
> Lebih besar CDLNM
>= Lebih besar sama dengan CDLNM
$ Ada di dalam CM
 Ekspresi Assigmen
Operator untuk memberi nilai / data pada suatu sebutan atau variabel.
Tabel 4.3 Operator Assigmen
Operator Guna Data
= Simple assigment Semua tipe data
:= In-line assigment Semua tipe data
<CP>= Compound assigment C, D, N

Pemrograman Basis Data dengan Clipper 5.3 xl


STMIK Duta Bangsa Surakarta

Contoh:
A = 5 // A diberi nilai 5
B :=10 // B diberi nilai 10
Gambar 4.3 Contoh Operator Assigmen
Compound assigment untuk operasi matematika yang hasilnya
dimasukkan ke variable.
Tabel 4.4 Compound Assigmen Operasi Matematika
Operasi Sama dengan
X+= X:=X+1
X-= X:=X-1
X*=Y X:=X*Y
X/=Y X:=X/Y
X%=Y X:=X%Y
X^=Y X:=X^Y
 Ekspresi Logika
Ekspresi logika adalah rumusan atau pernyataan logika yang
menghubungkan dua buah ekspresi atau lebih dengan masing-masing nilai
logikanya, dan menggunakan operator logika sebagai penghubung. Sama
seperti ekspresi relasi, ekspresi ini akan menghasilkan nilai .T. (TRUE),
jika hasil perbandingan benar, serta menghasilkan nilai .F. (FALSE), jika
hasil perbandingan salah.Operator-operator yang digunakan dalam
ekspresi ini adalah :
Tabel 4.5 Operator Logika
Operator Arti
.AND. Dan
.OR. Atau
.NOT. Tidak
 Operator logika .AND. akan membandingkan dua buah ekspresi relasi
atau lebih, dan jika semua ekspresi relasi bernilai benar (.T.), maka
nilai ekspresi logika bernilai benar (.T.), jika tidak akan bernilai salah
(.F.).
 Operator logika .OR. akan membandingkan dua buah ekspresi relasi
atau lebih, jika salah satu atau semua ekspresi relasi bernilai benar

Pemrograman Basis Data dengan Clipper 5.3 xli


STMIK Duta Bangsa Surakarta
(.T.), maka nilai ekspresi logika bernilai benar (.T.), jika tidak akan
bernilai salah (.F.).
 Operator logika .NOT. dapat diganti dengan tanda !, artinya
membalikan nilai kebenaran suatu ekspresi relasi, sehingga ekspresi
relasi yang dinegasi bernilai salah (.F.), maka ekspresi logika bernilai
benar (.T.).
 Ekspresi Khusus
Ekspresi khusus ini mencakup semua ekspresi-ekspresi, selain yang
didefinisikan di atas. Misalkan kita mendefinisikan suatu data array, secara
tidak langsung sebenarnya anda menggunakan suatu ekspresi. Operator-
operator yang digunakan antara lain terdiri dari :
Tabel 4.6 Operator Ekspresi Khusus
Operator Fungsi Data
-> Operator alias C,D,L,N,M,FC
& Operator Makro C
@ Operator alamat Semua tipe data
: Operator pemuat object Object
; Operator penghubung Semua tipe data
{} Operator array atau Array dan blok kode
pembatas data kode blok
[] Operator elemen array Array
() Operator parameter Semua tipe data dan
fungsi atau fungsi
pengelompokan
Keterangan :
 Operator ->, digunakan untuk menunjuk suatu alias dari
penyimpan data yang digunakan, seperti nama database, nama area
atau memori.
Contoh : NASABAH->kodecust
 Operator &, selalu bekerja pada character atau string dari
sembarang ekspresi dan mengembalikan nilai hasil evaluasi
ekspresi tersebut.
 Operator @, berfungsi untuk memaksakan data parameter agar
dilewatkan walaupun berkelas local dari parameter fungsi yang
dipanggil ke fungsi pemanggil.

Pemrograman Basis Data dengan Clipper 5.3 xlii


STMIK Duta Bangsa Surakarta
 Operator :, hanya digunakan sebagai operator pemuat nilai
terhadap data dalam kelas object.
 Operator ; adalah operator penghubung dari satu baris program ke
dalam dua baris program atau lebih. Operator ini biasanya
digunakan sebagai pemisah baris program yang panjang menjadi
dua baris atau lebih.
 Operator { }, untuk memberi harga awal suatu data kelas array atau
mendefinisikan data kelas blok kode atau code block.
 Operator [ ], berfungsi untuk mendeklarasikan suatu data array
sekaligus menentukan jumlah elemen atau indeks, atau untuk
menunjuk ke elemen atau indeks array tertentu dan sebgai tanda
pembatas data character atau string selain tanda “ “ atau „ „.
 Operator ( ), operator yang digunakan sebagai penentu parameter
yang disertakan dalam fungsi atau untuk pengelompokkan suatu
atau sebagian ekspresi tertentu.

B. Pemuatan Nilai dengan Fungsi IIF() atau IF()


Dalam melakukan pemuatan nilai, anda dapat memberikan kondisi
tertentu dalam memuat nilai. Misalkan akan memuat nilai variabel nJenkel
dengan ”Laki-Laki” atau ”Perempuan”, tergantung dari variabel Ijenkel, jika
Ijenkel bernilai benar (.T.), maka nJenkel memuat nilai string ”Laki-Laki”,
jika tidak nJenkel akan memuat nilai string ”Perempuan”. Untuk itu dilakukan
dengan menggunakan fungsi IF() atau IiF() yang bentuk umumnya seperti
berikut :
<gvariabel> :=IIF(<gekspresi>,<gekspresi1>,<gekspresi2>)
Atau
<gvariabel> :=IF(<gekspresi>,<gekspresi1>,<gekspresi2>)
Gambar 4.4 Penulisan Fungsi IIF dan IF
Keterangan :

Pemrograman Basis Data dengan Clipper 5.3 xliii


STMIK Duta Bangsa Surakarta
 <gvariabel> adalah variabel yang bersifat umumtergantung dari nilai
balik yang dihasilkan oleh fungsi.
 <gekspresi> adalah ekspresi yang akan dievaluasi sebagai kondisi
dalam fungsi.
 <gekspresi1> adalah nilai balik fungsi IF() atau IiF() yang akan
dihasilkan, seandainya <gekspresi> bernilai benar atau .T.
 <gekspresi2> adalah nilai balik fungsi IF() atau IiF() yang akan
dihasilkan, seandainya <gekspresi> bernilai salah atau .F.
Contoh :
1. Dengan fungsi IF()
LOCAL nJenkel, Ijenkel:=.T.
IF Ijenkel
nJenkel:=”Laki-Laki”
ELSE
nJenkel:=”Perempuan”
ENDIF
2. Dengan fungsi IIF()
LOCAL nJenkel, Ijenkel:=.T.
nJenkel:=Iif(Ijenkel,”Laki-Laki”,”Perempuan”)
nJenkel:=IF(!Ijenkel,”Laki-Laki”,”Perempuan”)
Gambar 4.6 Contoh Fungsi IIF dan IF

Pemrograman Basis Data dengan Clipper 5.3 xliv


STMIK Duta Bangsa Surakarta
BAB V
STRUKTUR PROGRAM PERCABANGAN DAN PERULANGAN

Tujuan Instruksional Umum :


Mahasiswa dapat memahami struktur program percabangan dan perulangan dalam Clipper Compiler 5.3.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui struktur percabangan IF… else …. Endif, Do Case…… Endcase.
2. Mahasiswa dapat menerapkan struktur percabangan If...else....endif dan Docase....endcase.
3. Mahasiswa mengetahui struktur perulangan Do While ….. Enddo, For ….. Next.
4. Mahasiswa dapat menerapkan struktur perulangan Do While ….. Enddo, For ….. Next.

Secara umum, struktur secara fisik dari semua program, jika dilihat dari
model program sesuai dengan fungsinya adalah sama. Misalkan dalam dBase atau
FoxBase menggunakan struktur percabangan dan perulangan, maka dalam
program clipper pun juga dapat menggunakan struktur program percabangan dan
atau perulangan tersebut, yang dituliskan dalam tiap-tiap fungsi atau prosedur
yang menggunakannya. Secara umum struktur program dalam clipper ada 3 (tiga)
yaitu :
1. Struktur urut atau linier
2. Struktur percabangan
3. Struktur perulangan

A. Struktur Urut atau Liner


Hampir semua program menggunakan struktur urut ini, termasuk program
clipper, karena program akan diproses atau dideklarasikan secara urut dari atas
ke bawah. Semua perintah termasuk pernyataan, fungsi ataupun ekspresi dapat
diberikan dalam struktur urut tersebut. Karena struktur program ini sangat
sederhana,maka pembahasan hanya sampai di sini.
B. Struktur Percabangan
Struktur program percabangan adalah suatu kelompok program dalam suatu
fungsi atau prosedur yang mempunyai urutan pemrosesan bercabang, sesuai
dengan kondisi yang diberikan. Dalam program clipper struktur percabangan
dapat menggunakan 2 pernyataan yaitu : IF ... ENDIF dan DO CASE ...
ENDCASE.
1. Pernyataan IF ... ENDIF

Pemrograman Basis Data dengan Clipper 5.3 xlv


STMIK Duta Bangsa Surakarta
Pernyataan IF ... ENDIF ini berfungsi untuk menjalankan suatu kelompok
instruksi tertentu tergantumg dari kondisi yang diberikan, jika kondisi
terpenuhi atau bernilai benar, maka kelompok instruksi tersebut akan
dijalankan. Bentuk umum penulisan adalah sebagai berikut :
IF <kondisi>
<instruksi-instruksi>
ELSEIF <kondisi>
<instruksi-instruksi>
ELSE
<instruksi-instruksi>
ENDIF

Atau

IF <kondisi1>
<instruksi-instruksi1>
ELSE
IF <kondisi2>
<instruksi-instruksi2>
ELSE
<instruksi-instruksi3>
ENDIF
ENDIF
Gambar 5.1 Bentuk Penulisan Percabangan IF .... ENDIF
Keterangan :
 <kondisi1> dapat berupa ekspresi relasi atau logika yang merupakan
kondisi awal dari pernyataan IF ...
 <instruksi-instruksi1> akan dikerjakan atau dieksekusi seandainya
<kondisi1> yang diberikan bernilai benar atau .T..
 ELSEIF <kondisi2>, option ini dapat diberikan, seandainya masih
terdapat kondisi percabangan berikutnya, dan dapat secara berurutan
lebih dari satu, jika kondisi yang digunakan juga lebih dari satu.
 <kondisi2> merupakan ekspresi relasi atau logika sebgai kondisi dari
option ELSEIF ...
 <instruksi-instruksi2> akan dikerjakan atau dieksekusi seandainya
<kondisi2> yang diberikan bernialai benar atau .T..
 ELSE, option ini diberikan seandainya menginginkan pemrosesan atau
eksekusi terhadap suatu kelompok instruksi yang terakhir dengan
Pemrograman Basis Data dengan Clipper 5.3 xlvi
STMIK Duta Bangsa Surakarta
syarat yang tidak memenhi kondisi-kondisi sebelumnya yang
diberikan.
 <instruksi-instruksi3> akan dikerjakan atau dieksekusi seandainya
kondisi-kondisi sebelumnya yang diberikan, tidak terpenuhi atau
bernilai salah (.F.).
 ENDIF option ini sebagai tanda penutup dari IF
Contoh 1 :
CLEAR
A:=10
If A> 2
? ”a berisi bilangan lebih besar 2”
Endif
Contoh 2 :
CLEAR
A=12
B=5
If a>b
? ”A berisi bilangan yang lebih besar b”
Else
? ”B berisi bilangan lebih beasr A”
Endif.
Contoh 3 :
CLEAR
LOCAL nGol,nGaji,nTunj,nTot
@10,10 SAY “Golongan Karyawan : “ GET nGol PICTURE “9” RANGE 1,3
READ
IF nGol=1
nGaji=500000
nTunj=nGaji*0.3
ELSEIF nGol=2
nGaji=750000
nTunj=nGaji*0.2
ELSE

Pemrograman Basis Data dengan Clipper 5.3 xlvii


STMIK Duta Bangsa Surakarta
nGaji=1000000
nTunj=nGaji*0.1
ENDIF
nTot=nGaji+nTunj
@11,10 SAY “Gaji Pokok : “+TRANSFORM(nGaji,”Rp. 999,999,999”)
@12,10 SAY”Tunjangan : “+TRANSFORM(nTunj,”Rp. 999,999,999”)
@13,10 SAY”Total Gaji : “+TRANSFORM(nTot,”Rp. 999,999,999”)
RETURN

Gambar 5.2 Contoh Percabangan IF .... ENDIF


2. Pernyataan DO CASE … ENDCASE
Dalam suatu kasus tertentu, misalkan kita dihadapkan pada suatu proses
yang mempunyai kondisi atau kriteria yang banyak, maka kita dapat
menggunakan pernyataan IF … ENDIF untuk menanganinya, tetapi selain
itu kita dapat menggunakan pernyataan yang lebih tepat dan lebih mudah,
yaitu pernyataan DO CASE … END CASE. Bentuk umum penulisan
pernyataan DO CASE … END CASE adalah sebagai berikut :
DO CASE
CASE <kondisi1>
<instruksi-instruksi1>
CASE <kondisi2>
<instruksi-instruksi2>
…]
OTHERWISE
<instruksi-instruksi3>
ENDCASE
Gambar 5.3 Bentuk Penulisan DO.... CASE
Keterangan :
 <kondisi> dapat berupa ekspresi relasi atau logika yang merupakan
kondisi awal dari pernyataan DO CASE …
 <instruksi-instruksi1> akan dikerjakan seandainya <kondisi1> yang
diberikan bernilai benar atau .T..

Pemrograman Basis Data dengan Clipper 5.3 xlviii


STMIK Duta Bangsa Surakarta
 CASE <kondisi2>, option ini dapat diberikan seandainya masih
terdapat kondisi percabangan berikutnya, dan dapat secara berurutan
lebih dari satu kondisi, jika kondisi yang digunakan juga lebih dari
satu, sehingga bisa terdapat lebih dari dua option CASE … .
 <kondisi2> merupakan ekspresi relasi atau logika sebagai kondisi dari
option CASE … yang kedua.
 <instruksi-instruksi2> akan dikerjakan atau dieksekusi seandainya
<kondisi2> yang diberikan bernilai benar atau .T..
 OTHERWISE, option ini diberikan seandainya menginginkan
pemrosesan atau eksekusi terhadap suatu kelompok instruksi yang
terakhir dengan syarat yang tidak memenuhi kondisi-kondisi
sebelumnya yang diberikan.
 <instruksi-instruksi3> akan dikerjakan atau dieksekusi seandainya
kondisi-kondisi sebelumnya yang diberikan tidak terpenuhi atau
bernilai salah (.F.).
 ENDCASE tanda penutup dari DO CASE …
Contoh :
CLEAR
LOCAL nGol,nGaji,nTunj,nTot
@10,10 SAY “Golongan Karyawan : “ GET nGol PICTURE “9” RANGE 1,3
READ
DO CASE
CASE nGol=1
nGaji=500000
nTunj=nGaji*0.3
CASE nGol=2
nGaji=750000
nTunj=nGaji*0.2
OTHERWISE
nGaji=1000000
nTunj=nGaji*0.1
ENDCASE
nTot=nGaji+nTunj
@11,10 SAY “Gaji Pokok : “+TRANSFORM(nGaji,”Rp. 999,999,999”)

Pemrograman Basis Data dengan Clipper 5.3 xlix


STMIK Duta Bangsa Surakarta
@12,10 SAY”Tunjangan : “+TRANSFORM(nTunj,”Rp. 999,999,999”)
@13,10 SAY”Total Gaji : “+TRANSFORM(nTot,”Rp. 999,999,999”)
RETURN

Gambar 5.4 Contoh Percabangan DO.... CASE

C. Struktur Perulangan
Setruktur program perulangan adalah suatu kelompok program dalam suatu
fungsi atau prosedur yang akan diproses atau dieksekusi secara berulang-
ulang, jika dan selama kondisi terpenuhi. Dalam program clipper struktur
perulangan dapat menggunakan 2 pernyataan yaitu DO WHILE … ENDDO
dan FOR … NEXT.
1. Pernyataan DO WHILE … ENDDO
Pernyataan DO WHILE … ENDDO ini berfungsi untuk mengulang
instruksi-instruksi yang ada di antara pernyataan DO WHILE dan
ENDDO, selama kondisi yang diberikan bernilai benar atau .T.. Bentuk
umum penulisan pernyataan DO WHILE … ENDDO adalah sebagai
berikut :
DO WHLIE <kondisi>
<instruksi-instruksi>
EXIT
<instruksi-instruksi>
LOOP
<instruksi-instruksi>
ENDDO
Gambar 5.5 Bentuk Penulisan DO WHILE ...... ENDDO
Keterangan :
 DO WHILE pernyataan sebagai tanda awal perulangan.
 <kondisi> dapat berupa ekspresi relasi atau ekspresi logika yang
merupakan kondisi awal dari pernyataan DO WHILE … selain
menggunakan ekspresi relasi atau ekspresilogika, kita dapat
menggunakan kondisi .T. yang artinya sksn berulang terus menerus
tanpa henti, sampai dengan ditemui pernyataan EXIT.

Pemrograman Basis Data dengan Clipper 5.3 l


STMIK Duta Bangsa Surakarta
 <instruksi-instruksi> adalah instruksi-instuksi yang diberikan dan
dapat berupa pernyataan, fungsi, atau ekspresi dan akan dikerjakan
secara berulang selama kondisi benar atau .T..
 EXIT, option ini jika diberikan akan memaksa keluar dari proses
perulangan, tanpa melihat apakah kondisi yang diberikan masih
bernilai benar atau tidak.
 LOOP, option ini jika diberikan akan mengembalikan perulangan ke
pernyataan awal DO WHILE … tanpa harus mengerjakan <instruksi-
instruksi> sampai selesai atau sampai dengan ditemui pernyataan
ENDDO.
 ENDDO adalah tanda penutup dari DO WHILE …
Contoh :
I=1
Do while I<5
?”belajar”
I=I+1
Enddo
Gambar 5.6 Contoh DO WHILE ...... ENDDO
2. Pernyataan FOR … NEXT
Pernyataan FOR … NEXT ini berfungsi untuk mengulang instruksi-
instruksi yang terdapat antara pernyataan FOR dan NEXT, sebanyak n kali
sesuai dengan nilai yang diberikan sebagai kondisi. Bentuk umum
penulisan pernyataan FOR … NEXT adalah sebagai berikut :
FOR <variable counter> := <nilai awal> TO <nilai akhir> STEP <nilai kenaikan>
<instruksi-isntruksi>
EXIT
<instruksi-instruksi>
LOOP
<instruksi-instruksi>
NEXT

Gambar 5.7 Bentuk Penulisan FOR ...... NEXT


Keterangan :
 <variable counter> adalah variable tipe numeric yang digunakan
sebagai kounter <nilai awal> dan <nilai akhir> yang akan diproses.

Pemrograman Basis Data dengan Clipper 5.3 li


STMIK Duta Bangsa Surakarta
Variabel kounter ini juga dipakai sebagai kondisi apakah masih
berulang ataukah tidak. <variable kounter> pertamakali bernilai
sama dengan nilai awal, dan akan bertambah sebanyak <nilai
kenaikan> jika <nilai kenaikan> positif, serta akan berkurang
sebanyak <nili kenaikan> jika <nilai kenaikan> negative, setelah
menemui pernyataan NEXT. Perulangan dilakukan jika <variable
kounter> masih lebih kecil atau sama dengan <nilai akhir>,
seadainya <nilai kenaikan> positif dan jika <variable kounter>
lebih besar atau sama dengan <nilai akhir>, seandainya <nilai
kenaikan> negative.
 <nilai awal> merupakan nilai awal <variabel kounter> yang
dipakai, jika <nilai kenaikan> positif,maka <nilai awal> harus
lebih besar dari <nilai akhir> dan lebih kecil dari <nilai akhir>, jika
<nilai kenaikan> negative.
 <nilai akhir> merupakan kondisi perulangan yang dilakukan, jika
<variable counter> masih lebih kecil atau sama dengan <nilai
akhir>, seandainya <nilai kenaikan> positif dan jika <variable
counter> lebih besar atau sama dengan <nilai akhir>, seandainya
<nilai kenaikan> negative, maka program akan berulang.
 STEP <nilai kenaikan> option ini jika tidak diberikan akan
dianggap bernilai 1 (positif) dan jika tidak, akan bernilai sesuai
dengan yang dimasukkan, bisa negatif atau positif.
 <instruksi-instruksi1> adalah instruksi-instruksi yang dapat
diberikan berupa pernyataan, fungsi, atau ekspresi dan akan
dikerjakan secara berulang sesuai kondisi yang ada.
 EXIT option ini jika diberikan akan memaksa keluar dari proses
perulangan, tanpa melihat apakah kondisi yang diberikan masih
memungkinkan untuk berulang atau tidak.
 LOOP option ini jika diberikan akan mengembalikan proses
perulangan ke pernyataan ke pernyataan awal FOR … tanpa harus

Pemrograman Basis Data dengan Clipper 5.3 lii


STMIK Duta Bangsa Surakarta
mengerjakan <instruksi-instruksi> sampai selesai atau sampai
dengan ditemui pernyataan NEXT.
Contoh :
CLEAR
FOR I=1 to 10 STEP 2
? “BELAJAR FOR”
NEXT
Gambar 5.8 Contoh FOR ...... NEXT

Tugas:
1. Buatlah program untuk mencetak kata “Selamat data di Clipper
sebanyak 5 kali”
2. Buatlah procedure untuk mencetak kata sebanyak suatu kata tertentu,
sebanyak n kali

Pemrograman Basis Data dengan Clipper 5.3 liii


STMIK Duta Bangsa Surakarta

BAB VI
MENAMPILKAN ATAU MENCETAK DATA

Tujuan Instruksional Umum :


Mahasiswa dapat memahami perintah menampilkan dan mencetak data ke perangkat output.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui menampilkan atau mencetak data dengan perintah ? atau ?? dan
perintah @... SAY.
2. Mahasiswa mengetahui dan dapat menerapkan perintah-perintah mengubah perangkat output,
perintah dan fungsi perangkat output layar.
3. Mahasiswa dapat menerapkan fungsi output atau keluaran.
4. Mahasiswa dapat menerapkan perintah yang mempengaruhi pencetakan data.
5. Mahasiswa dapat mengetahui dan menggunakan fungsi output suara.

Sesuai dengan prinsip kerjanya, komputer oleh manusia dipakai untuk


membantu mengolah data menjadi informasi. Pengolahan data tersebut tidak
terlepas dari prinsip I-P-O (Input-Proses-Output). Oleh karena itu tujuan dari
pembuatan program pengolahan data atau informasi pasti dihadapkan pada
masalah input atau masukan data, proses serta output atau keluaran data.
Secara umum dalam program clipper, untuk menampilkan atau mencetak
data dapat diarahkan ke dalam 3 perangkat keluaran yang berbeda, yaitu :
1. Menampilkan atau mencetak data ke layar
2. Menampilkan atau mencetak data ke printer
3. Mencetak data ke dalam file
A. Perintah-Perintah Menampilkan atau Mencetak Data

Pemrograman Basis Data dengan Clipper 5.3 liv


STMIK Duta Bangsa Surakarta
Ada dua perintah menampilkan atau mencetak data ke dalam program clipper,
yang dapat kita gunakan yaitu perintah ? atau ?? dan @ ... SAY.
1. Perintah ? atau ??
Perintah ini berfungsi untuk menampilkan atau mencetak data ke dalam
perangkat output yang aktif pada saat itu. Dalam keadaan default
perangkat output yang aktif adalah layar, maka dengan perintah ? atau ??,
data akan ditampilkan atau dicetak ke layar. Bentuk umum perintah ? atau
?? adalah sebagai berikut :
? [<data>[,...]]
Atau
?? [<data> [,...]]
Gambar 6.1 Bentuk Penulisan Perintah ? atau ??
Perbedaan antara perintah ? dan ?? adalah hanya pada posisi pencetakan,
di mana perintah ? ini akan mencetak data di posisi kursor, kemudian
dilanjutkan dengan enter atau menuju ke baris berikutnya dikolom 0 secara
otomatis, sedangkan perintah ?? akan mencetak di posisi kursor tanpa
dilanjutkan dengan penekan enter, sehingga setiap diberikan perintah
pencetakan ini akan selalu bersambung dan jika lebih dari 79 kolom akan
dirapikan atau dicetak ke baris berikutnya secara otomatis.
Berikut ini biasanya dipakai untuk mencetak laporan, yang cara
pencetakan datanya urut satu persatu dari atas ke bawah.
Perintah ? atau ?? ini juga dipengaruhi oleh perintah setting pengubah
perangkat keluaran, misalkan perintah SET DEVICE TO SCREEN,
maka perintah ? atau ?? akan menampilkan atau mencetak data ke layar,
begitu juga dengan perintah SET DEVICE TO PRINT, maka akan
menampilkan atau mencetak data ke printer yang aktif. Selain itu perintah
setting pengubah perangkat keluaran SET CONSOLE ON/OFF, jika
dalam keadaan OFF, maka perintah ? atau ?? akan menampilkan atau
mencetak data ke layar, dan jika dalam keadaan ON tidak akan ditamilkan
atau dicetak ke layar.
Contoh 1 :
CLEAR

Pemrograman Basis Data dengan Clipper 5.3 lv


STMIK Duta Bangsa Surakarta
?”Saya Belajar Mencetak”
?”Dengan Program Clipper”

Contoh 2 :
??”Saya Belajar Mencetak”
??”Dengan Program Clipper”
Gambar 6.2 Contoh Perintah ? atau ??
2. Perintah @ ... SAY
Perintah @ ... SAY ini berfungsi untuk menampilkan atau mencetak data
ke perangkat keluaran yang aktif, diposisi ataukoordinat baris dan kolom
tertentu sesuai yang disebutkan.
Bentuk umum perintah @ ... SAY adalah sebagai berikut :
@<baris>,<kolom> SAY <data> [COLOR<warna>] [PICTURE<picture>]
Gambar 6.3 Bentuk Penulisan Perintah @ .... SAY
Keterangan :
 <baris> dan <kolom> adalah data numeric yang menyatakan nomor baris
dan nomor kolom yang dipakai sebagaiposisi atau koordinat pencetakan.
Sesuai dengan baris dan kolom layer yang digunakan, data ini hanya dapat
berisikan antara 0 sampai dengan 79 dan baris 0 sampai dengan 24.
 <data> adalah data yang akan ditampilkan atau dicetak, dan dapat berupa
konstanta, variabel, nilai balik suatu fungsi atau ekspresi.
 [COLOR<warna>] option ini berfungsi untuk menentukan warna yang
dipakai dalam pencetakan ke layar, yang ditulis dalam tipe string. Jika
option ini tidak disertakan maka, pencetakan data menggunakan warna
yang aktif pada saat itu.
 [PICTURE<picture>] option ini digunakan untuk menentukan format atau
model pencetakan data yang diinginkan, misalkan mencetak dengan
format koma sebagai pemisah angka ribuan, jutaan dll. Jika option ini
tidak disertakan maka data akan ditampilkan dengan format apa adanya.
a. Warna Tampilan (COLOR<warna>)

Pemrograman Basis Data dengan Clipper 5.3 lvi


STMIK Duta Bangsa Surakarta
Warna tampilan yang dapat digunakan dalam option
[COLOR<warna>] ini sudah ditentkan kode wrnanya yang dituliskan
sebagai nilai character atau string, dengan diapit tanda petik tunggal
atau ganda. Warna tampilan yang dapat diubah adalah warna teks dan
warna latar belakang, yang dituliskan dengan memberikan tanda
pemisah slash(/).
Tabel 6.1 Warna Tampilan
Warna Kode Dapat digunakan untuk warna
Hitam N Teks, Latar Belakang
Biru B Teks, Latar Belakang
Hijau G Teks, Latar Belakang
Cyan BG Teks, Latar Belakang
Merah R Teks, Latar Belakang
Megenta BR Teks, Latar Belakang
Coklat GR Teks, Latar Belakang
Putih W Teks, Latar Belakang
Hitam Terang N+ Teks
Biru Terang B+ Teks
Hijau Terang G+ Teks
Cyan Terang BG+ Teks
Merah Terang R+ Teks
Magenta Terang BR+ Teks
Kuning GR+ Teks
Putih Terang W+ Teks

Selain warna-warna di atas, kita juga dapat menentukan bahwa warna


tersebut secara berkedip, dengan menambahkan tanda bintang (*) sebagai
tanda warna blink atau berkedip sama seperti tanda plus (+) untuk warna
terang, tanda ”*” juga hanya dapat digunakan untuk warna teks.
Contoh 1 :
CLEAR
@1,1 SAY ”Mencetak Data dengan Baris dan Kolom”
FOR x:=1 TO 10
@x,0 SAY ”Mencetak Data Di Baris : ”,x
NEXT
Contoh 2 :
CLEAR
@12,10 SAY “Warna teks merah, dasar hijau” COLOR(“R/G”)

Pemrograman Basis Data dengan Clipper 5.3 lvii


STMIK Duta Bangsa Surakarta
@13,10 SAY “Warna teks hijau terang, dasar putih” COLOR(“G+/W”)
RETUN
Gambar 6.4 Contoh Penulisan Warna (Color)
b. Format Tampilan (PICTURE <picture>)
Jika kita akan menformat data yang akan ditampilkan, dengan perintah
@ … SAY, maka option ini harus digunakan. Format tampiln
<picture> yang digunakan dituliskan sebagai data string dengan kode
tertentu, yang diapit dengan tanda petik tunggal atau ganda. Format
tampilan yang digunakan untuk perintah ini dekelompokkan dalam dua
bagian, yaitu Picture Function dan Picture Tamplate.

Tabel 6.2 Picture Fuction (Fungsi Warna)


Format Kegunaan
B Menampilkan data angka rata kiri
C Menampilkan data CR setelah angka positif
Menampilkan data tanggal dalam sesuai dengan format
D
SET DATE
E Menampilkan data tanggal dan angka dalam format British
R Menampilkan karakter nontemplete apa adanya
X Menampilkan tanda DB setelah angka negatif
Z Menampilkan angka 0 sebagai data atau karakter kosong
( Menampilkan tanda (), jika angka yang ditampilkan negatif
! Mengkonversi data abjad menjadi abjad kapital

Tabel 6.3 Picture Template


Format Kegunaan
A Menampilkan data abjad sejumlah yang dituliskan
N Menampilkan data logikal sejumlah yang dituliskan
Menampilkan data umum (abjad atau angka) sejumlah yang
X
dituliskan
9 Menampilkan data angka sejumlah yang dituliskan
# Menampilkan data angka sejumlah yang dituliskan
L Menampilkan data logical ”T” atau ”F”

Pemrograman Basis Data dengan Clipper 5.3 lviii


STMIK Duta Bangsa Surakarta
Y Menampilkan data logical ”Y” atau ”N”
! Mengkonversi data abjad menjadi abjad kapital
Menampilkan tanda dollar sebagai ganti spasi yang berada
$
di awal data angka
Menampilkan tanda bintang sebagai ganti spasi yang
*
berada di awal data angka
Menentukan posisi titik desimal yang digunakan oleh data
.
angka
Menentukan posisi koma sebagai pemisah angka (ribuan,
,
jutaan dll)

Contoh :
Clear
Local nlaba, nrugi, nnama, ntelp
nLaba=7125.50
nRugi=-125.50
ntelp=”08180347857”
nnama=”Sony”
//mencetak data dengan format
@1,1 say nlaba picture ”@E 9,999.99”
//ditampilkan : .125,50 (format inggris, seperti Indonesia
@2,1 say nrugi picture “@)”
//ditampilkan : (125.50)
@3,1 say ntelp picture “@R (999)999-99999”
//ditampilkan 081803-47857”
@4,1 say nnama picture “@!”
//ditampilkan : “SONY”
Gambar 6.5 Contoh Pemakaian Picture

B. Perintah-perintah mengubah Perangkat Output


Secara default pencetakan data akan diarahkan ke layer, tetapi kita dapat
mengubah perangkat output atau keluaran dengan memberikan perintah SET,
yang berfungsi mengubah perangkat output atau keluaran yang digunakan,
yang antara lain dari :

Pemrograman Basis Data dengan Clipper 5.3 lix


STMIK Duta Bangsa Surakarta
1. SET ALTERNATE ON/OFF
Perintah ini berfungsi untuk mengaktifkan (ON) atau menonaktifkan
(OFF) perangkat file yang telah dibuka denga perintah SET
ALTERNATE TO.
Contoh :
Clear
?”Dicetak di layer”
//ditampilkan di layer
SET ALTERNATE TO teks.prn
SET ALTERNATE ON
?”Mencetak data ke dalam file TEKS.PRN”
SET ALTERNATE OFF
SET ALTERNATE TO
?”Kemabali hanya di cetak ke layer”
Return
Gambar 6.6 Contoh Perintah SET ALTERNATE TO

2. SET ALTERNATE TO
Perintah ini berfungsi untuk membuka perangkat file yang akan dipakai
untuk menyimpan hasil keluaran perintah mencetak data dengan perintah ?
atau ??.
Bentuk umum penulisan :
SET ALTERNATE TO <nama file> [ADDITIVE]
Gambar 6.7 Bentuk Penulisan Perintah SET ALTERNATE TO
Keterangan :
 <nama file> adalah nama perangkat file yang dibuka.
 [ADDITIVE] option ini berfungsi untuk mengatur proses perlakuan
terhadap file yang dibuka, jika nama file tersebut sudah ada, maka data
akan ditambahkan sebagai data berikutnya dan jika tidak disertakan
option tersebut, maka file sebelumnya dihapus dan diisikan dengan
data yang baru (overwrite).

Pemrograman Basis Data dengan Clipper 5.3 lx


STMIK Duta Bangsa Surakarta
Untuk menutup perangkat file yang telah dibuka cukup diberi perintah
SET ALTERNATE TO.
3. SET CONSOLE ON/OFF
Perintah ini berfungsi untuk mengaktifkan (ON) atau menonaktifkan
(OFF) perangkat layar. Dalam keadaan default perintah ini adalah aktif
(ON), sehingga dapat menampilkan atau mencetak data ke layar dengan
menggunakan perintah ? atau ??, dan untuk menonaktifkan dapat diberikan
perintah SET CONSOL OFF, sehingga dengan perintah ? atau ??, data
tidak dicetak atau ditampilkan ke layar.
Contoh :
Clear
?”Cetak di layar”
SET CONSOLE OFF
?”Data tidak dicetak di layer”
SET CONSOLE ON
?”Data kembali dicetak di layar”
RETURN
Gambar 6.8 Contoh Penulisan Perintah SET CONSOLE ON/OFF
4. SET PRINT ON/OFF
Perintah ini berfungsi untuk mengaktifkan (ON) atau menonaktifkan
(OFF) perangkat printer. Dalam keadaan default perintah ini adalah
nonaktif (OFF), sehingga anda tidak dapat menampilkan atau mencetak
data ke printer denga menggunakan perintah ? atau ??, dan untuk
mengaktifkan dapat diberikan perintah SET PRINTER ON.
Contoh :
Clear
?”Dicetak di layar”
SET PRINT ON
?”Data tidak dicetak di layer dank e printer”
SET CONSOLE OFF
?”Data hanya dicetak ke printer saja”

Pemrograman Basis Data dengan Clipper 5.3 lxi


STMIK Duta Bangsa Surakarta
SET CONSOLE ON
SET PRINTER OFF
?”Data hanya dicetak ke layer”
Gambar 6.9 Contoh Penulisan Perintah SET PRINT ON/OFF
5. SET DEVICE TO PRINTER / SCREEN
Perintah ini berfungsi untuk mengaktifkan perangkat pencetak (printer)
atau layer (screen). Dalam keadaan default perangkat output atau keluaran
yang diaktifkan adalah layer (screen), sehingga dengan menggunakan
perintah @ … SAY, data akan dicetak atau ditampilkan ke layer. Untuk
mencetak atau menampilkan data ke printer diberikan perintah SET
DEVICE TO PRINTER.
Contoh :
Clear
@10,10 SAY “Di cetak ke layer”
SET DEVICE TO PRINTER
@11,10 SAY “Data hanya dicetak ke printer saja”
SET DEVICE TO SCREEN
@12,10 SAY “Data kembali dicetak ke Layar”
?”Data ini juga dicetak ke layer”
RETURN
Gambar 6.10 Contoh Penulisan Perintah SET DEVICE TO

6. SET PRINTER TO
Perintah ini berfungsi untuk mengubah arah perangkat keluaran, dari data
yang dicetak atau ditampilkan dengan perintah @ ... SAY. Perintah ini
tidak berfungsi mengaktifkan perangkat output printer, tapi hanya
mengubah arah keluaran. Sehingga untuk menggunakan perintah ini
dengan perangkat output printer, maka perangkat printer harus diaktifkan
dengan perintah SET DEVICE TO PRINT.
Bentuk penulisannya :
SET PRINTER TO <arah perangkat output> [ADDITIVE]
Gambar 6.11 Bentuk Penulisan Perintah SET PRINTER TO
Keterangan :

Pemrograman Basis Data dengan Clipper 5.3 lxii


STMIK Duta Bangsa Surakarta
 <arah perangkat output> hanya dapat diisikan denga nama file, jika
menggunakan perangkat keluaran file dan diisikan dengan nama port
(LPT1, LPT2, COM1 atau yang lain)
 [ADDITIVE] option ini berfungsi mengatur proses perlakuan terhadap
file yang dibuka, jika nama file yang disebutkan sudah ada, maka jika
option tersebut diberikan, data akan disertakan akan ditambahkan
sebagai data berikutnya dalam file dan jika tidak disertakan, maka file
sebelumnya dihapus dan diisikan yang baru (overwrite).
Contoh :
Clear
@10,10 SAY “Dicetak di layer”
SET DEVICE TO PRINTER
@11,10 SAY “Data hanya dicetak ke printer saja”
SET DEVICE TO LPT1
@12,10 SAY “Data dicetak ke printer dengan port LPT1”
SET DEVICE TO LPT2
@13,10 SAY “Data dicetak ke printer dengan port LPT2”
SET DEVICE TO COM1
@14,10 SAY “Data dicetak ke printer dengan port COM1”
SET DEVICE TO SCREEN
@15,10 SAY “Data Kembali dicetak ke layer”
?”data kembali dicetak ke layer”

Gambar 6.12 Contoh Penulisan Perintah SET PRINTER TO

C. Perintah-perintah dan Fungsi-Fungsi Perangkat Output Layar


1. Perintah-Perintah Perangkat Output Layar
Perintah-perintah output atau keluaran ini berfungsi khusus untuk
membantu anda dalam merancang tampilan layar, misalkan membuat
kotak, membuat menu pull-down dan lain-lain. Perintah-perintah tersebut
adalah :
a. CLS atau CLEAR
Perintah ini berfungsi untuk menghapus atau membersihkan seluruh
tampilan yang ada pada layar.
Contoh :
CLS

Pemrograman Basis Data dengan Clipper 5.3 lxiii


STMIK Duta Bangsa Surakarta
CLEAR
@0,0 CLEAR
Return
Gambar 6.13 Contoh Penulisan Perintah CLEAR
b. @ ... CLEAR
Perintah ini berfungsi untuk membersihkan atau menghapus sebagian
atau seluruh tampilan yang ada pada layar. Bentuk umum perintah ini
adalah :
@<atas>,<kiri> CLEAR TO <bawah>,<kanan>
Contoh :
//membersihkan seluruh layar
@0,0 CLEAR
//membersihkan layer posisi 24,0 sampai dengan 24,79
@24,0 CLEAR
//membersihkan layer posisi 10,10 sampai dengan 12,60
@10,10 CLEAR TO 12,60
Gambar 6.14 Contoh Penulisan Perintah @ ... CLEAR
c. @ … TO
Perintah ini berfungsi untuk membuat kotak tunggal (single) atau
ganda (double), dengan cara cukup menyebutkan nilai koordinat kotak
yang dibuat. Bentuk umum penulisan perintahnya adalah :
@<atas>,<kiri> TO <bawah>,<kanan> [SINGLE/DOUBLE] [COLOR<warna>]
//membuat kotak garis tunggal
@5,5 TO 20,75
//Membuat kotak garis ganda
@10,10 TO 15,70 DOUBLE
//Membat kotak garis tunggal dengan warna merah
@12,15 TO 14,70 CLOR(“R”)
Gambar 6.15 Contoh Penulisan Perintah @ ... TO
d. @ … BOX

Pemrograman Basis Data dengan Clipper 5.3 lxiv


STMIK Duta Bangsa Surakarta
Sama seperti printah @ … TO, perintah ini berfungsi untuk membuat
kotak di layer, perbedaannya hanya pada bentuk garis yang digunakan.
Bentuk umum perintah ini adalah :
@<atas>,<kiri>,<bawah>,<kanan> BOX <bentuk garis> COLOR<warna>
Contoh :
CLEAR
@5,1,8,15 BOX “abcdefgh:”
RETURN
Gambar 6.16 Contoh Penulisan Perintah @ ... BOX
e. Include “box.ch”
Dari file include BOX.CH yang disediakan oleh program clipper,
bentuk garis yang dapat digunakan dalam perintah @ … BOX,
didefinisikan bias diambil dari file include BOX.CH sebanyak 4
bentuk garis kotak yang disimbolkan dalam konstanta sebagai berikut :
Tabel 6.4 Simbol Konstanta
Konstanta Simbolik Bentuk Garis
B_SINGLE Garis Tunggal
B_DOUBLE Garis Ganda
B_SINGLE_DOUBLE Garis Tunggal Ganda
B_DOUBLE_SINGLE Garis Ganda Tunggal

Contoh :
#include “box.ch”
@5,1,8,15 BOX B_SINGLE
@5,1,8,15 BOX B_DOUBLE
@5,1,8,15 BOX B_SINGLE_DOUBLE
@5,1,8,15 BOX B_DOUBLE_SINGLE
Gambar 6.17 Contoh Penulisan Perintah #Include “BOX.CH”
f. @ … PROMPT
Perintah ini dipakai untuk menentukan suatu pilihan tertentu, misalkan
menu puldown, di mana dengan menggunakan perintah ini, anda dapat
secara otomatis menentukan item data, berikut pesan (jika diperlukan),

Pemrograman Basis Data dengan Clipper 5.3 lxv


STMIK Duta Bangsa Surakarta
cukup dengan menggerakkan anak panah yang dilanjutkan dengan
enter atau menekan huruf pertama dari item data. Bentuk umum
penulisan @ … PROMPT adalah sebagai berikut :
@<baris>,<kolom> PROMT <item pilihan> MESSAGE <pesan>
Perintah SET MESSAGE TO … yang berfungsi untuk untuk
menentukan posisi baris dari pesan yang akan ditampilkan. Bentuk
umum perintah ini adalah :
SET MESSAGE TO <baris> [CENTER/CENTRE]
Nilai hasil pilihan dari menu puldown disimpan ke dalam sauatu
variable numeric, dengan menggunakan perintah MENU TO, bentuk
umumnya adalah :
MENU TO <variable nilai pilihan>
Contoh penggunaan :
CLEAR
Local npil, nsubpil
Npil=0
SET MESSAGE TO 24 CENTER
DO WHILE .T.
CLEAR
@5,10 PROMPT “File Master” MESSAGE “Pengolahan Data Master”
@6,10 PROMPT “Transaksi” MESSAGE “Pencatatan Data Transaksi”
@7,10 PROMPT “Laporan” MESSAGE “Pencetakan laporan-laporan”
@8,10 PROMPT “Utility” MESSAGE “Menggunakan Program Bantu”
@9,10 PROMPT “Konfigurasi MESSAGE “Setup Data Konfigurasi”
@10,10 PROMPT “Selesai” MESSAGE “Keluar Program”
MENU TO npil
DO CASE
CASE npil=0 .or. npil=6
Close all
Return
Case npil=1
………
Case npil=2
Nsubpil=0
Clear

Pemrograman Basis Data dengan Clipper 5.3 lxvi


STMIK Duta Bangsa Surakarta
@5,10 Say “Penjualan” message “Transaksi Penjualan”
@6,10 say “Pembayaran” message “Transaksi Pembayaran”
@7,10 say “Retur” message “Transaksi Retur”
@8,10 say “Selesai” message “Kelaur”
MENU TO npil
DO CASE
Case npil=0 .or. npil-6
EXIT
Case npil=1
…………
Case npil=2
………….
Case npil=3
………….
ENDDO
Case npil=3
…………………..
Case npil=4
………………….
Case npil=5
…………………
ENDDO
RETURN

Gambar 6.18 Contoh Penulisan Perintah @ .... PROMPT


2. Fungsi-Fingsi Perangkat Output Layar
a. ALERT()
Fungsi ini digunakan untuk menampilkan alert atau kotak yang
fungsinya menampilkan informasi suatu kondisi yang terjadi,
kemudian menunggu tindakan tertentu yang dilakukan oleh pemakai
berdasar pilihan dari item yang ditampilkan. Fungsi ini biasanya
digunakan untuk menampilkan pesan kesalahan sekaligus meminta
konfirmasi tindakan selanjutnya. Bentuk umum perintah ini adalah :
Pemrograman Basis Data dengan Clipper 5.3 lxvii
STMIK Duta Bangsa Surakarta
ALERT(<pesan>,<data array item pilihan> nilai balik numeric
Contoh :
CLEAR
Local npilihan, npil
Npilihan:={“Koreksi”,”Hapus”,”Batal”}
Npil:=0
Npil:=ALERT(“Data SUdah Ada ….!”,npilihan)
Do case
Case npil=1
……………..
Case npil=2
…………….
Case npil=3
……………
ENDCASE
…………
RETURN
Gambar 6.19 Bentuk Penulisan Fungsi ALERT()
b. DispBox()
Fungsi ini digunakan sama seperti perintah @ … TO atau @ … BOX,
yaitu membuat atau mencetak kotak dengan koordinat tertentu dan
bentuk garis yang dapat anda tentukan. Bentuk umum penulisan
perintah ini adalah :

DispBox(<atas>,<kiri>,<bawah>,<kanan>,<bentuk garis>,<warna>)
Contoh :
//membuat kotak dengan garis tunggal dengan warna teks merah,
//latar belakang biru
CLEAR
DispBox(2,10,10,70,1,”R/B”)
RETURN

Pemrograman Basis Data dengan Clipper 5.3 lxviii


STMIK Duta Bangsa Surakarta
Gambar 6.20 Bentuk Penulisan Fungsi DisBox()
c. MaxRow() dan MaxCol()
Kedua fungsi ini berguna untuk mengembalikan nailai balik numeric
dari posisi maksimal baris (24) dan kolom (79) yang dapat digunakan.
Bentuk umum penulisan :
MaxRow()
MaxCol()
Gambar 6.21 Bentuk Penulisan Fungsi MaxRow dan MaxCol()
Contoh :
//Membuat kotak dengan garis tunggal dengan warna teks merah
//latar belakang biru
DispBox(0,0,24,79,1,”R/B”)
DispBox(0,0,MaxRow(),MaxCol(),1,”R/B”)
Layar1:=savesreen(0,0,24,79)
Layar2:=save screen(0,0,MaxRow(),MaxCol())
RETURN
Gambar 6.22 Contoh Penulisan Fungsi MaxRow dan MaxCol()
d. SaveScreen dan RestScreen()
Kedua fungsi ini gunanya saling mendukung, yaitu fungsi
SaveScreen() berfungsi untuk menentukan atau menghasilkan nilai
balik data dalam string dari seluruh atau sebagai tampilan di layer yang
disimpan, sedangkan fungsi RestScreen() berfungsi untuk
menampilkan atau mengambil data string tampilan di layer yang
pernah disimpan dalam suatu variable string. Bentuk umum perintah
ini adalah :
<var layer>:=SaveScreen(,atas>,<kiri>,<bawah>,<kanan>)
RestScreen(<atas>,<kiri>,<bawah>,<kanan>,<var layer>)
Gambar 6.23 Bentuk Penulisan Fungsi Savescreen() dan Restscreen()
Penggunaan kedua fungsi ini selalu bersamaam dalam satu program,
yaitu menyimpan seluruh atau sebagai layar dan pada suatu saat jika
diperlukan, dapat anda panggil lagi layar yang disimpan tadi tanpa

Pemrograman Basis Data dengan Clipper 5.3 lxix


STMIK Duta Bangsa Surakarta
harus menampilkan atau mencetak tampilan yang ulang, sehingga akan
mempercepat proses yang dilakukan.
Contoh :
#INCLUDE "BOX.CH"

PUBLIC NO

set wrap on
set mess to 24
do while .t.
set colo to g+/w
@0,0 clea to 0,79
@24,0 clea to 24,79
set colo to b+/w
frame := repl (chr(176),9)
@1,0,23,79 box frame
@0,5 prompt "File" mess "Proses Entry Data"
@0,20 prompt "Informasi" mess "Proses Cetak Informasi"
@0,40 prompt "Utility" mess "Proses Bantuan"
menu to pilih
do case
case pilih = 1
menu1()
case pilih = 2
menu2()
case pilih = 3
menu3()
endcase
end do

func menu1()
local msscreen, mcolor
save screen to msscreen
mcolor := setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,5 clea to 5,24
@1,5 to 5,24
@2,6 prompt "Tabel Klasifikasi"
@3,6 prompt "Tabel Ruang "
@4,6 prompt "Tabel Barang "
menu to P1

do case
case P1 = 0
exit
CASE P1=1
rest screen from msscreen
CASE P1=2
rest screen from msscreen
CASE P1=3
rest screen from msscreen

Pemrograman Basis Data dengan Clipper 5.3 lxx


STMIK Duta Bangsa Surakarta
endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return

func menu2()
local msscreen, mcolor
save screen to msscreen
mcolor:=setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,20 clea to 5,41
@1,20 to 5,41
@2,21 prompt "Daftar Klasifikasi"
@3,21 prompt "Daftar Ruang"
@4,21 prompt "Daftar Barang"
menu to P1
do case
case P1 = 0
exit
case p1=3
rest screen from msscreen
endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return

func menu23()
local msscreen, mcolor
save screen to msscreen
mcolor:=setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@4,30 clea to 8,47
@4,30 to 8,47
@5,31 prompt "Keseluruhan "
@6,31 prompt "Per Klasifikasi"
@7,31 prompt "Per Ruang "
menu to P1
do case
case P1 = 0
exit
endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return

func menu3()
local msscreen, mcolor
save screen to msscreen

Pemrograman Basis Data dengan Clipper 5.3 lxxi


STMIK Duta Bangsa Surakarta
mcolor := setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,40 clea to 7,52
@1,40 to 7,52
@2,41 prompt "Backup"
@3,41 prompt "Restore"
@4,41 prompt "Index"
@5,41 prompt "Help"
@6,41 prompt "Selesai"
menu to P1
set key 4 to
set key 19 to
do case
case P1 = 0
exit
case P1 = 3

case p1=5
quit
endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return
Gambar 6.24 Contoh Penulisan Fungsi Savescreen() dan Restscreen()

e. Scroll()
Berfungsi untuk menggulung sebagian atau seluruh layer ke atas atau
ke bawah sejumlah baris yang ditentukan. Bentuk umum penulisannya
adalah :
Scroll(<atas>,<kiri>,<bawah>,<kanan>,<baris>)
Contoh :
//Menggulung layer diposisi tertentu 1 baris ke atas
Clear
Scroll(2,10,10,50,1)

//Menggulung layer diposisi tertentu 2 baris ke bawah


Clear
Scroll(5,20,12,60,-2)
Gambar 6.25 Bentuk Penulisan Fungsi Scroll()
f. SetColor()

Pemrograman Basis Data dengan Clipper 5.3 lxxii


STMIK Duta Bangsa Surakarta
Berfungsi untuk mengubah atau mengatur warna tampilan di layer.
Fungsi ini menerima 5 data setelan warna dengan masing-masing
fungsi yang berbeda. Bentuk umum penulisannya adalah :
Set Color(<data warna string>
Gambar 6.26 Bentuk Penulisan Fungsi SetColor()
Keterangan :
 <data warna string> adalah 5 data setelan warna dalam bentuk
string dengan masing-masing maksud pewarnaan terhadap bagian
yang berbeda-beda. 5 data setelan tersebut disusun sebagai berikut
:
<warna1>,<warna2>,<warna3>,<warna4>,<warna5>
Gambar 6.27 Setelan warna
Tabel 6.5 Data Warna
Perintah Warna Efek
? atau ?? Warna1 Tampilan keluaran
@ … SAY Warna1 Tampilan keluaran
@ … GET Warna1 Tampilan teks pada GET
Tampilan sel GET yang aktif atau yang
Warna2
disorot
Tampilan sel GET yang aktif atau yang
Warna5
tidak disorot
@ … BOX Warna1 Tampilan kotak
@ .. CLEAR Warna1 Warna daerah layer yang dihapus
Warna bingkai layer yang tidak dapat
Warna3
diisi tampilan
@..PROMPT Warna1 Tampilan menu yang tidak disorot
Warna2 Tampilan menu yang disorot
Achoice Earna1 Tampilan menu yang tidak disorot
Warna2 Tampilan menu yang disorot
Warna3 Tampilan menu yang dipilih
DbEdit Warna1 Warna teks record yang ditampilkan
Warna2 Warna teks recort yang aktif atau disorot
Contoh :
Clear
Local cwarna
Local cnama:=space(20)
Local calamat:=space(30)
Cwarna:=set clolor()
//tentukan tampilan warna

Pemrograman Basis Data dengan Clipper 5.3 lxxiii


STMIK Duta Bangsa Surakarta
Set Color(“W+/B,N/W,,,GR+/B”)
@10,10 SAY “Teks tercetak dengan warna putih terang, dengan latar belakang biru (W+/B)”
@20,10 GET Cnama PICTURE “@!”
@21,10 GET calamat PICTURE “@!”
READ
RETURN
Gambar 6.28 Contoh Penulisan Fungsi SetColor()
g. Set Cursor()
Dalam pemrograman kadang perlu adanya pembentukan tampilan agar
lebih bagus dengan cara mengubah bentuk kursor, misalkan saat
menampilkan atau mencetak laporan, bentuk kursor dihilangkan atau
disembunyikan dan pada saat menjalankan program menyisipkan data,
bentuk kursor dibuat besar dan sebagainya. Bentuk umum
penulisannya adalah :
Set Cursor(<bentuk kursor>)
Gambar 6.29 Bentuk Penulisan Fungsi Set Cursor()
Berikut bentuk kursor berikut kodenya dapat anada lihat pada table
berikut ini :
Tabel 6.6 Bentuk Kursor
Bentuk Kode SETCUSR.CH
Tanpa kursor 2 SC_NONE
Kursor normal 1 SC_NORMAL
Kursor separuh blok bawah 2 SC_INSERT
Kursor blok penuh 3 SC_SPECIAL1
Kursor separuh blok atas 4 SC_SPESIAL2
Untuk pengaktifan diberi perintah :
#INCLUDE "SETCURS.CH"
Nkursor:=set cursor()
Setcursor(0)
Setcursor(SC_SPESIAL1)
Gambar 6.30 Contoh Penulisan Fungsi Set Cursor()
h. Set Mode()
Berfungsi untuk mengubah modus video layer monitor yang
digunakan. Bentuk umum penulisannya adalah :
Set Mode(<baris>,<kolom>)

Pemrograman Basis Data dengan Clipper 5.3 lxxiv


STMIK Duta Bangsa Surakarta
Contoh :
Clear
IF SetMode(43,80)
@42,10 SAY “Pengubah menjadi 43 baris berhasil”
ELSE
@24,10 SAY “Pengubahan menjadi 43 baris gagal”
ENDIF
RETURN
Gambar 6.31 Bentuk Penulisan Fungsi SetMode()
i. TRANSFORM()
Fungsi ini berguna untuk mengkonversikan nilai data berjenis apapun
menjadi data string dengan format tampilan sesuai dengan yang
diberikan. Bentuk umum penulisannya adalah :
Transform(<nilai>,<format>)
Contoh :
Clear
Local nilai
Nilai=700000.50
?Transform(nilai,”999,999,999.99”)
RETURN
Gambar 6.32 Bentuk Penulisan Fungsi Transform()

D. Fungsi-Fungsi Output (Keluaran)


1. Fungsi-Fungsi Kepala Pencetak (Printer Head)
Fungsi ini terdiri dari 3 fungsi dengan masing-masing fungsinya yaitu
Pcol(), Prow() dan SetPrc() yang dapat dijelaskan sebagai berikut :
 Pcol()
Berfungsi untuk menentukan nilai posisi kolom dari kepala pencetak
yang aktif dan dikembalikan sebagai nilai balik dari fungsi tersebt.

 Prow()
Berfungsi untuk menentukan nilai posisi baris dari kepala pencetak
yang aktif dan dikembalikan sebagai nilai balik dari fungsi tersebut.
 SetPrc()

Pemrograman Basis Data dengan Clipper 5.3 lxxv


STMIK Duta Bangsa Surakarta
Digunakan untuk menset posisi kepala pencetak ke kolom dan baris
tertentu sesuai dengan yang disebutkan dalam fungsi tersebut.
Contoh :
CLEAR
SET DEVICE TO PRINT
@10,15 SAY “Teks Judul”
?Prow()
?Pcol()
SetPrc(1,1)
?Prow()
?Pcol()
RETURN
Gambar 6.33 Contoh Penulisan Fungsi Prow(), Pcol(),SetPrc()

2. Fungsi-Fungsi Pengatur Posisi Perangkat Output


Fungsi-fungsi ini terdiri dari 3 buah fungsi dengan masing-masing
kegunaannya yaitu :
 DevPos()
Berfungsi untuk memindahkan kursor atau kepala pencetak ke posisi
kolom dan baris yang ditentukan. Perintah ini tergantung dari
perangkat output yang diaktifkan.
 SetPos()
Berfungsi sama seperti DevPos(), tetapi hanya dapat digunakan untuk
menset posisi kursor di baris dan kolom yang ditentukan dan tidak
dapat digunakan untuk menset posisi kepala pencetak.
 SetPrc()
Contoh :
Clear
SET DEVICE TO PRINT
SetPos(5,10)
DevPos(2,15)
DevOut(“Mencetak ke printer, diposisi 2,15”)
SET DEVICE TO SCREEN
DevOut(“Mencetak ke layer, diposisi 5,10”)

Pemrograman Basis Data dengan Clipper 5.3 lxxvi


STMIK Duta Bangsa Surakarta
DevPos(10,25)
DevOut(“Mencetak ke layer, diposisi 10,25”)
RETURN
Gambar 6.34 Contoh Penulisan Fungsi Devpos(), Setpos(), SetPrc()

E. Perintah-Perintah yang Mempengaruhi Pencetakan Data


1. Perintah SET DECIMAL TO
Perintah ini berfungsi untuk menentukan setiap pencetakan data numeric
yang dilakukan tanpa menggunakan format atau picture, maka akan
ditampilkan secara otomatis nilai decimal yang digunakan sebanyak n
digit, sesuai dengan yang didefinisikan. Bentuk umum penulisannya
adalah :
SET DECIMAL TO <jumlah digit decimal>
Contoh :
Clear
Local angka
Angka:=1234
SET DECIMAL TO 2
?angka
SET DECIMAL TO 4
?4/2
Gambar 6.35 Bentuk Penulisan Perintah SET DECIMAL TO
2. Perintah SET FIXED ON/OFF
Perintah ini berfungsi untuk mengaktifkan atau menonaktifkan pembulatan
terhadap nilai decimal yang ada, sehingga perintah ini juga akan
mempengaruhi perintah SET DECIMAL TO.

Contoh :
Clear

Pemrograman Basis Data dengan Clipper 5.3 lxxvii


STMIK Duta Bangsa Surakarta
Local angka1, angka2
Angka1:=1234
Angka2:=1234.2

SET DECIMAL TO 2
SET FIXET ON
?angka1
SET FIXED OFF
?angka2

Gambar 6.36 Contoh Penulisan Perintah SET DECIMAL TO, SET FIXED

3. Perintah SET MARGIN TO


Perintah ini berfungsi untuk menentukan offset atau batas kolom awal
mulai pencetakan pada kertas, jika menggunakan perangkat keluaran
printer. Bentuk umum penulisannya adalah :
SET MARGIN TO <offset printer>
Gambar 6.37 Bentuk Penulisan Perintah SET MARGIN TO

F. Fungsi Output Suara


Program clipper juga menyediakan satu fungsi dengan output atau keluaran
suara ke perangkat output speaker. Fungsi tersebut adalah Tone(), yang bentuk
umum penulisannya adalah :
Tone(<frekwensi>,<lama bunyi>)
Contoh 1:
Clear
Locak bunyi
For bunyi:=1 to 1000 Step 50
Tone(bunyi,18)
NEXT
RETURN

Pemrograman Basis Data dengan Clipper 5.3 lxxviii


STMIK Duta Bangsa Surakarta

Contoh 2:
Clear
Locak bunyi
For bunyi:=1000 to 1 Step -50
Tone(bunyi,18)
NEXT
RETURN

Gambar 6.38 Bentuk Penulisan Funsi Suara

Pemrograman Basis Data dengan Clipper 5.3 lxxix


STMIK Duta Bangsa Surakarta
BAB VII
MASUKKAN ATAU INPUT DATA
Tujuan Instruksional Umum :
Mahasiswa dapat memahami perintah memasukkan data dengan @..Get, Inkey(), LastKey(),
NextKey() dan Perintah Keyboard.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui dan dapat menerapkan perintah memasukkan data dengan @ .. Get.
2. Mahasiswa mengetahui dan dapat menerapkan perintah memasukkan data dengan fungsi
Inkey(), Lastkey() atau Nextkey().
3. Mahasiswa mengetahui dan dapat menerapkan perintah memasukkan data dengan perintah
KEYBOARD.

Dalam memasukkan atau input data lewat keyboard ada 3 jenis masukan yaitu :
 Memasukkan data dengan perintah @ … GET
 Memasukkan data lewat fungsi Inkey(), LastKey() atau NextKey()
 Memasukkan data dengan perintah KEYBOARD
A. Memasukkan Data dengan Perintah @ … GET
Perintah @ … GET dalah satu-satunya perintah memasukkan atau input data
yang paling interaktif antara program dengan pemakai. Dengan perintah @ …
GET ini, saat dieksekusi akan menciptakan objek terhadap variable yang
digunakan untuk menampung data yang akan kita masukkan. Bentuk umum
penulisan perintah adalah :
@<baris>,<kolom> GET <variable> PICTURE <picture>
COLOR<warna>WHEN<ekspresi logika1>RANGE<nilai terkecil>,<nilai
terbesar>VALID<ekspresi logika2>
Gambar 7.1 Bentuk Penulisan Perintah @ ... GET
Format tampilan <picture> yang digunakan dituliskan sebagai data string
dengan kode tertentu, yang diapit dengan tanda string petik tunggal atau
ganda. Format tampilan yang digunakan untuk perintah ini dikelompokkan
dalam dua kelompok, yaitu Picture Function dan Picture Tamplate.
Tabel 7.1 Picture Fuction
Format Kegunaan
B Menampilkan data angka rata kiri
C Menampilkan data CR setelah angka positif
D Menampilkan data tanggal dalam format SET DATE
E Menampilkan data tanggal dan angka dalam format British
R Menampilkan karakter nontemplete apa adanya
X Menampilkan tanda DB setelah angka negatif
Z Menampilkan angka 0 sebagai data atau karakter kosong
( Menampilkan tanda (), jika angka yang ditampilkan negatif

Pemrograman Basis Data dengan Clipper 5.3 lxxx


STMIK Duta Bangsa Surakarta
! Mengkonversi data abjad menjadi abjad kapital
Tabel 7.2 Picture Template
Format Kegunaan
A Menampilkan data abjad sejumlah yang dituliskan
N Menampilkan data logikal sejumlah yang dituliskan
Menampilkan data umum (abjad atau angka) sejumlah yang
X
dituliskan
9 Menampilkan data angka sejumlah yang dituliskan
# Menampilkan data angka sejumlah yang dituliskan
L Menampilkan data logical ”T” atau ”F”
Y Menampilkan data logical ”Y” atau ”N”
! Mengkonversi data abjad menjadi abjad kapital
Menampilkan tanda dollar sebagai ganti spasi yang berada
$
di awal data angka
Menampilkan tanda bintang sebagai ganti spasi yang
*
berada di awal data angka
Menentukan posisi titik desimal yang digunakan oleh data
.
angka
Menentukan posisi koma sebagai pemisah angka (ribuan,
,
jutaan dll)

Contoh :
MEMVAR Getlist
Procedure isi()
Local jmlanak:=0
Private kawin:=space(1)
@10,10 SAY “Status K/B :“
@11,10 SAY “Jumlah Anak : “
@11,24 GET jmlanak Picture “99” WHEN isikawin()
READ
RETUN
Function Isikawin()
@11,24 get kawin picture “@!” valid kawin$”KB”
Read
If kawin=”K”
Return .T.
Endif

Pemrograman Basis Data dengan Clipper 5.3 lxxxi


STMIK Duta Bangsa Surakarta
Return.f.
Gambar 7.2 Contoh Penulisan Perintah @ ... GET
 SET DELIMITERS
Perintah ini berfungsi untuk mengaktifkan atau menonaktifkan
pembatas yang digunakan saat pengisian data dengan perintah @
… GET. Bentuk umum penulisan perintah SET DELIMITERS
adalah :
SET DELIMITERS ON/OFF
SET DELIMITERS TO <karakter pembatas>
Gambar 7.3 Bentuk Penulisan Perintah SET DELIMITERS

B. Memasukkan Data Lewat Fungsi Inkey(), LastKey() atau NextKey()


1. Inkey()
Fungsi ini berfungsi untuk mengambil buffer keyboard yang diketikan.
Proses yang dilakukan adalah menunggu masukkan sekaligus membaca
dan menghasilkan nilai balikberupa kode tombolyang ditekan. Bentuk
umum penulisannya adalah :
INKEY(<detik>)

Contoh :
#INCLUDE ”INKEY.CH”
Clear
Local tekan:=0
Inkey(0)
Tekan:=0
Do while tekan=0
Tekan:=inkey()
Enddo
Tekan:=inkey(10)
Return
Gambar 7.4 Contoh Penulisan Perintah Fungsi Inkey()

Pemrograman Basis Data dengan Clipper 5.3 lxxxii


STMIK Duta Bangsa Surakarta

Berikut kode-kode tombol :


Tabel 7.3 Tombol Menggerakkan Kursor
Tombol Kode Inkey.ch Keterangan
Uprrow,ctrl-E 5 K_UP
Dnarrow, ctrl-x 24 K_DOWN
Leftarrow,ctrl-s 19 K_LEFT
Rightarrow,ctrl-d 4 K_RIGHT
Home,ctrl-a 1 K_HOME
End, ctrl-f 6 K_END
PgUp, Ctrl-R 18 K_PGUP
PgDn, Ctrl-C 3 K_PGDN
Ctrl-Leftarrow,Ctrl-Z 26 K_CTRL_LEFT
Ctrl-Rightarrow, Ctrl-B 2 K_CTRL_RIGHT
Ctl-Home, Ctrl-] 29 K_CTRL_HOME
Ctrl-End, Ctrl-W 23 K_CTRL_END
CtrlPgUp, Ctrl-Hyphen 31 K_CTRL_PGUP
Ctrl-PgDn, Ctrl-^ 30 K_CTRL_PGDN
Ctrl-Retrun 10 K_CTRL_RET
Ctrl-ScrollLock 3 K_CTRL_C
Esc, Ctrl-[ 27 K_ESC
Return, Ctrl-M 13 K_RETURN
Enter, Ctrl-M 13 K_ENTER

Tabel 7.4 Tombol Editing


Tombol Kode Inkey.ch Keterangan
Del, Ctrl-G 7 K_DEL
Tab, Ctrl –I 9 K_TAB
Shift-Tab 271 K_SH_TAB
Ins, Ctrl-V 22 K_INS
Backspace, Ctrl-H 8 K_BS
Ctrl-Backspace 127 K_CTRL_BS

Tabel 7.5 Tombol Fungsi


Tombol Kode Inkey.ch Keterangan
F1, Ctrl -\ 28 K_F1
F2 -1 K_F2
F3 -2 K_F3
F4 -3 K_F4
F5 -4 K_F5

Pemrograman Basis Data dengan Clipper 5.3 lxxxiii


STMIK Duta Bangsa Surakarta
F6 -5 K_F6
F7 -6 K_F7
F8 -7 K_F8
F9 -8 K_F9
F10 -9 K_F10
Tabel 7.6 Tombol Alt
Tombol Kode Inkey.ch Keterangan
Alt-A 286 K_ALT_A
Alt-B 304 K_ALT_B
Alt-C 302 K_ALT_C
Alt-D 288 K_ALT_D
Alt-E 274 K_ALT_E
Alt-F 289 K_ALT_F
Alt-G 290 K_ALT_G
Alt-H 291 K_ALT_H
Alt-I 279 K_ALT_I
Alt-J 292 K_ALT_J
Alt-K 293 K_ALT_K
Alt-L 294 K_ALT_L
Alt-M 306 K_ALT_M
Alt-N 305 K_ALT_N
Alt-O 280 K_ALT_O
Alt-P 281 K_ALT_P
Alt-Q 272 K_ALT_Q
Alt-R 275 K_ALT_R
Alt-S 287 K_ALT_S
Alt-T 276 K_ALT_T
Alt-U 278 K_ALT_U
Alt-V 303 K_ALT_V
Alt-W 273 K_ALT_W
Alt-X 301 K_ALT_Y
Alt-Y 277 K_ALT_X
Alt-Z 300 K_ALT_Z

Tabel 7.7 Tombol Ctrl


Tombol Kode Inkey.ch Keterangan
Ctrl-A 1 K_ CTRL _A
Ctrl -B 2 K_ CTRL _B
Ctrl -C 3 K_ CTRL _C
Ctrl -D 4 K_ CTRL _D
Ctrl -E 5 K_ CTRL _E
Ctrl -F 6 K_ CTRL _F
Ctrl -G 7 K_ CTRL _G
Ctrl -H 8 K_ CTRL _H

Pemrograman Basis Data dengan Clipper 5.3 lxxxiv


STMIK Duta Bangsa Surakarta
Ctrl -I 9 K_ CTRL _I
Ctrl -J 10 K_ CTRL _J
Ctrl -K 11 K_ CTRL _K
Ctrl -L 12 K_ CTRL _L
Ctrl -M 13 K_ CTRL _M
Ctrl -N 14 K_ CTRL _N
Ctrl -O 15 K_ CTRL _O
Ctrl -P 16 K_ CTRL _P
Ctrl -Q 17 K_ CTRL _Q
Ctrl -R 18 K_ CTRL _R
Ctrl -S 19 K_ CTRL _S
Ctrl -T 20 K_ CTRL _T
Ctrl -U 21 K_ CTRL _U
Ctrl -V 22 K_ CTRL _V
Ctrl -W 23 K_ CTRL _W
Ctrl -X 24 K_ CTRL _Y
Ctrl -Y 25 K_ CTRL _X
Ctrl -Z 26 K_ CTRL _Z

Tabel 7.8 Tombol Shift-Fungsi


Tombol Kode Inkey.ch Keterangan
Shift-F1 -10 K_SH_F1
Shift-F2 -11 K_ SH_F2
Shift-F3 -12 K_ SH_F3
Shift-F4 -13 K_ SH_F4
Shift-F5 -14 K_ SH_F5
Shift-F6 -15 K_ SH_F6
Shift-F7 -16 K_ SH_F7
Shift-F8 -17 K_ SH_F8
Shift-F9 -18 K_ SH_F9
Shift-F10 -19 K_ SH_F10

Tabel 7.9 Tombol Ctrl-Fungsi


Tombol Kode Inkey.ch Keterangan
Ctrl-F1 -20 K_CTRL_F1
Ctrl-F2 -21 K_ CTRL_F2
Ctrl-F3 -22 K_ CTRL_F3
Ctrl-F4 -23 K_ CTRL_F4
Ctrl-F5 -24 K_ CTRL_F5
Ctrl-F6 -25 K_ CTRL_F6
Ctrl-F7 -26 K_ CTRL_F7
Ctrl-F8 -27 K_ CTRL_F8
Ctrl-F9 -28 K_ CTRL_F9

Pemrograman Basis Data dengan Clipper 5.3 lxxxv


STMIK Duta Bangsa Surakarta
Ctrl-F10 -29 K_ CTRL_F10

Tabel 7.10 Tombol Alt-Fungsi


Tombol Kode Inkey.ch Keterangan
Alt_F1 -30 K_ALT_F1
Alt_F2 -31 K_ ALT_F2
Alt_F3 -32 K_ ALT_F3
Alt_F4 -33 K_ ALT_F4
Alt_F5 -34 K_ ALT_F5
Alt_F6 -35 K_ ALT_F6
Alt_F7 -36 K_ ALT_F7
Alt_F8 -37 K_ ALT_F8
Alt_F9 -38 K_ ALT_F9
Alt_F10 -39 K_ ALT_F10

Contoh :
# INCLUDE "INKEY.CH"

CLEA
TUNJUK()
DO WHILE .T.
X:=inkey(0)
do Case
Case X=K_F1
F1()
Case X=K_F2
F2()
Case X=K_F3
F3()
endcase
ENDDO

Func Tunjuk()
set colo to w+/b
@24,0 clea to 24,79

Pemrograman Basis Data dengan Clipper 5.3 lxxxvi


STMIK Duta Bangsa Surakarta
@24,5 say 'Pres =>[F1] [F2] [F3] '
Return
FUNC F1()
set colo to w+/bg
@2,05 CLEA to 10,75
@2,05 TO 10,75
KATA1="TOMBOL YANG ANDA TEKAN"
@3,40-LEN(KATA1)/2 say kata1
@07,10 say ' TOMBOL F1 '
return

FUNC F2()
set colo to w+/bg
@2,05 CLEA to 10,75
@2,05 TO 10,75
KATA1="TOMBOL YANG ANDA TEKAN"
@3,40-LEN(KATA1)/2 say kata1
@07,10 say ' TOMBOL F2 '
return
FUNC F3()
set colo to w+/bg
@2,05 CLEA to 10,75
@2,05 TO 10,75
KATA1="TOMBOL YANG ANDA TEKAN"
@3,40-LEN(KATA1)/2 say kata1
@07,10 say ' TOMBOL F3 '
return

Gambar 7.5 Contoh Penulisan Perintah Fungsi Tombol


2. LastKey()
Fungsi ini berguna untuk membaca tombol terakhir yang ditekan. Fungsi
ini juga menghasilkan nilai balik kode tombol yang ditekan. Bentuk umum
penulisannya adalah :
LASTKEY()
Gambar 7.6 Bentuk Penulisan Fungsi LASTKEY()
3. NextKey()

Pemrograman Basis Data dengan Clipper 5.3 lxxxvii


STMIK Duta Bangsa Surakarta
Sama seperti fungsi Inkey(), fungsi ini berguna untuk mengambil buffer
keyboard yang diketikkan. Perbedaannya, perintah NextKey() setelah
membaca dan menghasilkan nilai balik kode tombol yang ditekan, maka
nilai NextKey() tidak akan diset menjadi 0, tetapi fungsi Inkey() akan diset
menjadi 0. Bentuk umum penulisan fungsi ini adalah :
NEXTKEY()
Gambar 7.7 Bentuk Penulisan Fungsi NEXTKEY()
C. Memasukkan Data Lewat Fungsi Keyboard()
Dalam program clipper memberikan fasilitas memasukkan data ke dalam
buffer keyboard tanpa melalui proses pengetikan, jadi seolah-olah anda
menekan suatu tombol tanpa menekan tomol, dapat dilakukan dengan
menggunakan fungsi Keyboard(). Bentuk umum penulisan fungsi ini adalah :
Keyboard(<data string>)
Gambar 7.8 Bentuk Penulisan Fungsi KEYBOARD()

D. Perintah danFungsi Mendefinisikan Kunci (SET KEY & SetKey)


Program clipper menyediakan fasilitas SETKEY() atau perintah SET KEY
1. Fungsi SetKey()
Fungsi ini berguna untuk menandai suatu evaluasi data blok kode dengan
suatu kunci penekanan tertentu. Misalkan, jika ditekan kunci F1 akan
menjalankan blok kode bantuan. Fungsi ini bekerja hanya pada saat
keadaan menunggu sauatu masukkan dari keyboard, terhadap fungsi atau
perintah masukkan kecuali fungsi Inkey(), seperti DbEdit(), Achoice(),
MemoEdit(), ACCEPT, INPUT, READ dan WAIT. Bentuk umum
penulisan fungsi ini adalah :
SETKEY(<kode tombol>,<blok kode>)
Gambar 7.9 Bentuk Penulisan Fungsi SETKEY()
2. Perintah SET KEY
Perintah ini berguna sama seperti fungsi SetKey(), yaitu untuk menandai
suatu evaluasi atau penjalanan fungsi atau prosedur dengan suatu
penekanan kunci tertentu. Misalkan, jika ditekan kunci F1 akan

Pemrograman Basis Data dengan Clipper 5.3 lxxxviii


STMIK Duta Bangsa Surakarta
menjalankan blok kode bantuan. Fungsi ini bekerja hanya pada saat
keadaan menunggu sauatu masukkan dari keyboard, terhadap fungsi atau
perintah masukkan kecuali fungsi Inkey(), seperti DbEdit(), Achoice(),
MemoEdit(), ACCEPT, INPUT, READ dan WAIT. Bentuk umum
penulisan fungsi ini adalah :
SET KEY <kode tombol> TO <fungsi atau prosedur>
Gambar 7.10 Bentuk Penulisan Perintah SET KEY

Contoh :
#include ”inkey.ch”
Clear
MEMVAR GetList
Procedure isiagama()
Local agama1:=space(7)
Set key K_f! TO pilihagama()
@11,10 say “Agama : “ get agama picture “@!”
Read
Return
Function pilihagama()
Local agama2:={“Islam”,”Kristen”,”Katolik”,”Hindu”,”Budha”}
Local I, pil, layer
Layer:=savescreen(0,0,MaxRow(),MaxCol())
@10,34 clear to 16,42
@10,34 to 16,42 double
Do while.t.
For i:=1 to 5
@10+I,35 Prompt agama2[i]
Next
Menu to pil
If pil<>0
Keyboard(agama2[pil]+chr(13))

Pemrograman Basis Data dengan Clipper 5.3 lxxxix


STMIK Duta Bangsa Surakarta
Restscreen(0,0,maxrow(),maxcol(),layer)
Exit
Endif
Enddo
Return.t.

Gambar 7.11 Bentuk Penulisan Perintah dan Fungsi SET KEY

BAB VIII
APLIKASI MENGGUNAKAN DATABASE
Tujuan Instruksional Umum :
Mahasiswa dapat mengenal database dan mengaplikasikannya ke dalam program.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui definisi dan fungsi database, dapat menciptakan database dengan perintah fungsi Dbcreate()
dan dengan DBU Utility, dapat membuka dan menutup file database.
2. Mahasiswa dapat menciptakan file index dan dapat mengaktifkannya dan menutupnya.
3. Mahasiswa dapat mengoperasikan pencarian data record database.
4. Mahasiswa mengetahui dan dapat menggunakan perintah query database.
5. Mahasiswa mengetahui dan dapat menggunakan perintah menggerakkan record.
A. Definisi DATABASE
Database yang dimaksud di sini adalah suatu file dengan format
khusus yang berfungsi untuk menyimpan data-data dalambentuk lajur record.
Setiap file dapat terdiri lebih dari satu record yang diberi indentitas nomor
record, dan masing-masing record merupakan kelompok yang terdiri dari satu
atau lebih field dengan identitas nama field.
Seperti yang sudah kita kenal dalam pemrograman Dbase atau
FoxBase, spesifikasi database yang dipakai oleh program clipper yang
dibentuk dengan fungsi DbCreate(), adalah sama. Misalkan antara variable
memori dan nama filed yang data digunakan sama, hanya untuk variable
memory data tersimpan dalam memory, sedangkan untuk field data field
tersimpan dalam database (disk).
Secara default nama database menggunakan extension .DBF,
kecuali anda menentukan sendiri extention yang digunakan. Jika berekstention

Pemrograman Basis Data dengan Clipper 5.3 xc


STMIK Duta Bangsa Surakarta
.DBF ada dapat menggunakan database tersebut cukup dengan menyebutkan
nama filenya saja.
B. Menciptakan Database
Untuk menciptakan file database, tidak seperti dalam program
dBase atau FoxBase, cukup memberikan perintah CREATE, kemudian tinggal
anda masukkan spesifikasi field-field database yang akan digunakan, tetapi
karena program clipper tidak mengenal perintah langsung, maka anda harus
membuat file database dengan menyusun sauatu program yang menggunakan
fungsi standar DbCreate(). Bentuk umum penulisan fungsi ini adalah :
DBCREATE(<nama database>,<variable struktur database>)
Gambar 8.1 Bentuk Penulisan Fungsi DbCreate()
Contoh :
Buatlah database di bawah ini :
Tabel 8.1 Contoh Tabel
Nama Field Type Lebar/Width Dec
Kd_brg C 5
Nm_brg C 20
Merk C 15
Satuan C 10
Harga N 7 0
stok N 4 0

Untuk membuat atau menciptakan database dengan struktur tersebut di atas


dapat anda gunakan program seperti berikut :
function database()
local struktur:={{“kd_brg”,”C”,5,0},;
{“nm_brg”,”C”,20,0}.;
{“merk”,”C”,15,0},;
{“satuan”,”C”,10,0},;
{“harga”,”N”,7,0},;
{“stok”,”N”,4,0}}
DbCreate(“Barang.DBF”,struktur)
Return

Pemrograman Basis Data dengan Clipper 5.3 xci


STMIK Duta Bangsa Surakarta
Atau
function database()
DbCreate(“Barang.DBF”,;
{{“kd_brg”,”C”,5,0},;
{“nm_brg”,”C”,20,0}.;
{“merk”,”C”,15,0},;
{“satuan”,”C”,10,0},;
{“harga”,”N”,7,0},;
{“stok”,”N”,4,0}}
INDEX ON NO_BAR TO BARANG.NTX
Return
Gambar 8.2 Contoh Penulisan Fungsi DbCreate()

Atau
Dengan melalui DBU Utility bawaan dari program clipper, yaitu dengan
menjalankan lewat Command Prompt :
Contoh :
D:\DBU
Gambar 8.3 Menjalankan DBU Utility lewat Command Prompt

Maka Akan muncul Database Utility seperti berikut :

Gambar 8.4 Database Utility

Pemrograman Basis Data dengan Clipper 5.3 xcii


STMIK Duta Bangsa Surakarta
Kemudian tekan F3 (Create) dan pilih database untuk membuat database,
kemudian masukkan field beserta type dan widthnya seperti berikut :

Gambar 8.5 Mendesain database pada database utility


Kemudian tekan F4 (Save) untuk menyimpan database, dan berinama file
database pada file name, sepert pada gamabar berikut :

Gambar 8.6 Menyimpan file database pada database utility


Dengan demikian file database sudah terbentuk, dan siap dipanggil dan diisi
data atau record.

Pemrograman Basis Data dengan Clipper 5.3 xciii


STMIK Duta Bangsa Surakarta
Kemudian pembuatan file index, yaitu Tekan Tombol F3 (create), pilih index,
pada file name beri nama file index, misal Barang.NTX, kemudian pada KEY
isikan yang menjadi field kunci, dalam hal ini field kuncinya adalah kd_brg.

Gambar 8.7 Membuat file index dengan DBU Utility

C. Menggunakan atau Mengaktifkan Database


Database yang dibuat baik dengan fungsi DbCreate() ataupun
dengan program dBase atau Foxbase atau dengan DBU Utility selanjutnya
dapat anda gunakan untuk berbagai aplikasi yang diinginkan. Untuk
menggunakan database tersebut terlebih dahulu database dibuka atau
diaktifkan, dengan menggunakan perintah USE, bentuk umum perintah ini
adalah :
USE <nama database> INDEX <daftar file index>
Atau
USE <nama database> INDEX <daftar file index> NEW
Gambar 8.8 Bentuk Penulisan Pemanggilan Database
Keterangan :
 <nama database> adalah nama file database yang akan dibuka dan
digunakan

Pemrograman Basis Data dengan Clipper 5.3 xciv


STMIK Duta Bangsa Surakarta
 INDEX <daftar file index> option ini diberikan jika akan menggunakan
file index.
 NEW, option ini digunakan atau dituliskan seandainnya anda akan
menggunakan atau membuka lebih dari satu database pada saat bersamaan.
Kesalahan yang mungkin terjadi pada saat diberikan perintah USE adalah
nama file tidak ada dalam directory yang aktif, oleh kare itu sering digunakan
sauatu fungsi standar yang dipakai untuk mengetahui apakah nama file yang
disebutkan ada dalam direktory ataukah tidak, yaitu fungsi File().
 File()
Fungsi ini digunakan untuk mengetahui apakah nama file yang disebutkan
terdapat dalam directory ataukah tidak, dengan bentuk umum penulisan :
File <nama file>
Gambar 8.9 Bentuk Penulisan Fungsi File()

Contoh 1:
if file (“barang.dbf”)
use barang index barang
else
DbCreate(“Barang.DBF”,;
{{“kd_brg”,”C”,5,0},;
{“nm_brg”,”C”,20,0}.;
{“merk”,”C”,15,0},;
{“satuan”,”C”,10,0},;
{“harga”,”N”,7,0},;
{“stok”,”N”,4,0}}
Use barang
INDEX ON NO_BAR TO BARANG.NTX
Endif
Return

Contoh 2 :
if file (“barang.dbf”)
use barang index barang
else
Alert(“Database tidak ada dalam directory”)
Endif
Return

Pemrograman Basis Data dengan Clipper 5.3 xcv


STMIK Duta Bangsa Surakarta
Gambar 8.10 Contoh Penulisan Fungsi File()

Selain dengan cara tersebut, mengaktifkan database dapat dilakukan dengan


menggunakan operator makro (&).
Contoh :
clear
local nmfile:=space(8)
@10,10 say “Nama File Database yang dibuka : “ get
nmfile picture ”@A”
Read
Use &nmfile
Gambar 8.11 Contoh Penulisan Operator makro(&)

Selain menggunakan operator makro (&), dalam program clipper juga sudah
disediakan suatu penggunaan ekspresi karakter yang diperluas, yaitu tanda
makro atau tanda data string (petik ganda) yang dipakai dalam suatu ekspresi
dapat diganti dengan tanda kurung buka dan kurung tutup.

Contoh :
clear
local nmfile:=space(8)
@10,10 say “Nama File Database yang dibuka : “ get nmfile picture ”@A”
Read
if file(nmfile)
Use (nmfile)
Else
Alert(“Database tidak ada didirectory”)
Endif
return
Gambar 8.12 Contoh Pemanggilan Database dengan ekspresi karakter

D. Area Kerja Database


Database yang anda aktifkan atau anda gunakan selalu menempati
suatu area tertentu yang disebut dengan area kerja database. Perintah yang
digunakan untuk mengaktifkan atau menentukan area kerja yang dimaksud
adalah sama seperti dalam program dBase atau FoxBase yaitu SELECT. Jika
anda menggunakan cara tersebut, maka database yang diproses adalah

Pemrograman Basis Data dengan Clipper 5.3 xcvi


STMIK Duta Bangsa Surakarta
database yang berada di dalam area kerja yang aktif. Suatu perbedaan yang
sangat menyolok dari antara penggunaan SELECT dalam dBase atau
FoxBase dengan program clipper, yaitu jumlah area kerja yang disediakan,
jika dalam dBase atau FoxBase hanya diberikan sebanyak 10 area kerja, tetapi
dalam program clipper disediakan sebanyak 250 area kerja yang dapat
digunakan bersama-sama. Namun-dapat kita ketahui bahwa untuk dapat
menggunakan secara bersama-sama file dalam suatu saat, tergantung juga dari
konfigurasi dari Dos yang dipakai, yaitu pada file CONFIG.SYS dari Dos
yang dipakai untuk proses Booting.
Bentuk umum penulisan perintah adalah :
SELECT <area kerja> / <nama alias database>
Gambar 8.13 Bentuk Penulisan Perintah SELECT
Keterangan :
 <area kerja> adalah nilai angka dari area kerja yang diaktifkan, yang
terdiri antara 1 sapai 250
 <nama alias database>, nama alias dari database di area kerja tertentu,
yang untuk selanjutnya dalam mengaktifkan area kerja database yang
digunakan oleh masing-masing database, bisa dilakukan dengan cukup
menyebutkan nama alias dari database, misalkan SELECT barang.
Contoh :
clear
select 1
use barang
select 2
use supplier
select 3
use customer
select 4
use transaksi
atau dapat dituliskan
clear

Pemrograman Basis Data dengan Clipper 5.3 xcvii


STMIK Duta Bangsa Surakarta
Use barang NEW
Use supplier NEW
Use customer NEW
Use transaksi NEW
Gambar 8.14 Contoh Penulisan Perintah SELECT

Selain menggunakan option NEW, anda juga dapat menggunakan nilai 0


dalam perintah SELECT yang fungsinya sama seperti option NEW, yaitu
secara otomatis akan membuka atau mengaktifkan area kerja yang berbeda
secara berurutan dari area kerja yang kecil ke yang besar.
Contoh :
select 0
use barang
select 0
use supplier
select 0
use customer
select 0
use transaksi
Gambar 8.15 Contoh Penulisan Perintah SELECT ... NEW
E. Menutup Database
Setelah selesai anda menggunakan database, anda harus menutup
file database tersebut agar perubahan-perubahan yang terjadi misalkan
penambahan record, mengedit record dapat dituliskan secara permanen ke
dalam penyimpanan (disket atau hardisk), juga agar mengurangi penggunaan
memory yang berlebihan. Untuk menutup file database digunakan perintah
yaitu :
USE
CLOSE DATABASE
CLOSE ALL
CLOSE <nama alias database>
Gambar 8.16 Bentuk Penulisan Perintah Menutup File

Pemrograman Basis Data dengan Clipper 5.3 xcviii


STMIK Duta Bangsa Surakarta
Keterangan :
 Perintah USE, digunakan untuk menutup file database yang diaktifkan
pada area kerja yang aktif.
 Perintah CLOSE DATABASE, digunakan untuk menutup seluruh file
database yang diaktifkan pada semua area kerja yang digunakan.
 Perintah CLOSE ALL, digunakan untuk menutup semua file yang
diaktifkan dalam programtermasuk file-file database yang digunakan atau
diaktifkan.
 Perintah CLOSE <nama alias database>, digunakan untuk menutup file
database yang disebutkan nama aliasnya dalam perintah.
Contoh :
clear
select 1
use barang
select 2
use supplier
select 3
use customer
select 4
use transaksi
select 1
use
close supplier
close database
Gambar 8.17 Contoh Penulisan Perintah Menutup File

F. File INDEX
Secara umum spesifikasi dari file index dan penggunaan dalam
program clipper sama dengan yang ada dalam program dBase atau FoxBase.
File index yang diciptakan oleh program clipper mempunyai ekstension
.NTX. file index ini selain untuk mengurutkan data, lebih lanjut tentang
penggunaannya dipakai dalam melakukan pencarian data. Pencarian data
secara biner dengan menggunakan file index dalam database yang mempunyai
jumlah record banyak akan sangat menguntungkan dibandingkan pencarian
data secara biasa tanpa file index.
1. Menciptakan File Index

Pemrograman Basis Data dengan Clipper 5.3 xcix


STMIK Duta Bangsa Surakarta
File index yang akan kita gunakan terlebih dahulu harus dibuat atau
diciptakan dengan menggunakan perintah INDEX ON atau dengan fungsi
DbCreateIndex(). Bentuk umum penulisannya adalah :
INDEX ON <ekspresi kunci index> TO <nama file index> <daerah>
FOR <kondisi> WHILE <kondisi> EVAL<blok kode evaluasi>
ASCENDING/DESCENDING
Gambar 8.18 Bentuk Penulisan Menciptakan File Index dengan INDEX ON
Keterangan :
 <ekspresi kunci index> ekspresi dari field database yang dipakai
sebagai kunci index.
 <nama file index> adalah nama file index yang dipakai untuk
menyimpan data index, sekaligus yang selanjutnya akan dipakai.
 <daerah> digunakan jika anda akan mengindex database dengan
daerah atau scope tertentu.
 WHILE<kondisi>, option ini jika diberikan akan mengindex record-
record database yang memenuhi syarat kondisi FOR yang diberikan.
 ASCENDING/DISCENDING, secara normal proses index database
dilakukan secara menaik atau ascending, anda dapat dapat mengubah
perlakuan yang yang terjadi dengan yang terjadi dengan memberikan
option tersebut.
Sedangkan perintah fungsi DbCreateIndex(), bentuk umum penulisannya
adalah :
DbCreateIndex(<ekspresi kunci index>,<nama file index>)
Gambar 8.18 Bentuk Penulisan Menciptakan File Index dengan DbCreateIndex()
Keterangan :
 <ekspresi kunci index> adalah ekspresi dari field database yang
dipakai sebagai kunci index yang dituliskan sebagai data string.
 <nama file index> adalah nama file index yang dipakai untuk
menyimpan data index, sekaligus yang selanjutnya akan dipakai, yang
dituliskan sebagai data string. Jika dalam penulisan nama file index

Pemrograman Basis Data dengan Clipper 5.3 c


STMIK Duta Bangsa Surakarta
tanpa ekstension .NTX, maka file index yang dibuat secara otomatis
akan diberikan ekstension .NTX.
Contoh 1 :
Use Barang
INDEX ON kd_brg TO barang1
INDEX ON nm_brg TO barang2 DESCENDING

Contoh 2 :
Use barang
DbCreateIndex(“kd_brg”,”barang”)
Gambar 8.18 Contoh Penulisan DbCreateIndex()
2. Menggunakan atau Mengaktifkan File Index
Perintah-perintah dan fungsi yang dapat dipakai untuk mengaktifkan file
index adalah USE ... INDEX, SET INDEX TO dan fungsi DbSetIndex().
Perintah USE ... INDEX, bentuk umum penulisannya sudah pernah
dijelaskan di depan, dan penulisan fungsi DbSetIndex() adalah :
SET INDEX TO <daftar file index>
DbSetIndex(<daftar file index>)
Gambar 8.19 Bentuk Penulisan Perintah SET INDEX, DbSetIndex()
Keterangan :
 <daftar file index> adalah satu atau lebih nama file index yang akan
diaktifkan, jika lebih dari satu file index anatar file index satu dengan
lainnya disisipkan dengan tanda koma.

Contoh :
//Mengaktifkan file index 1
Clear
Use barang Index barang NEW
//Mengaktifkan file index 2
Use supplier index supplier NEW
//Mengaktifkan fiel index 3

Pemrograman Basis Data dengan Clipper 5.3 ci


STMIK Duta Bangsa Surakarta
Use customer
SET INDEX TO customer1,customer2
Gambar 8.20 Contoh Penulisan Perintah SET INDEX, DbSetIndex()
3. Urutan File Index
Jika anda menggunakan lebih satu file index, dari semua file index
yang aktif hanya ada satu yang menjadi master atau yang menjadi dasar
proses, yaitu file index terakhir hanya ada satu yang menjadi dasar proses,
yaitu file index terakhir dalam daftar file index yang diaktifkan. Di sini
maka anda dapat secara bergantian mengubah-ubah master file index yang
digunakan, yaitu dengan cara memberikan perintah SET ORDER TO
atau fungsi DbSetOrder(), bentuk umum penulisannya adalah :
SET ORDER TO <nomor urutan file index>
DbSetOrder(<nomor urutan file index>)
Gambar 8.21 Bentuk Penulisan Perintah SET ORDER TO, DbSetOrder()
Keterangan :
 <nomor urut file index> adalah nomor dari file index yang akan
dijadikan sebagai master, sesuai dengan urutannya.
Contoh :
Use barang
SET INDEX TO barang
Gambar 8.22 Contoh Penulisan Perintah SET ORDER TO, DbSetOrder()
4. mengindex Ulang File Database
Pada saat kita mengubah atau mengedit database, kemungkinan file index
tidak diaktifkan bisa saja terjadi, sehingga antara data-data dalam file
database dan file index tidak sesuai. Hal ini jika terjadi, maka dapat
ditanggulangi dengan cara mengindex ulang file database dengan cara
memberikan perintah INDEX ON … lagi atau dengan memberikan
perintah REINDEX atau fungsi DbReindex(), bentuk umum
penulisannya adalah :
REINDEX
DbReindex()

Pemrograman Basis Data dengan Clipper 5.3 cii


STMIK Duta Bangsa Surakarta
Gambar 8.23 Bentuk Penulisan Perintah REINDEX, DbReindex()

Contoh :
Select a
Use barang index barang
Reindex
Select b
Use customer index customer
Reindex
Select c
Use supplier index supplier
DbReindex()
Gambar 8.24 Contoh Penulisan Perintah REINDEX, DbReindex()
5. Menmutup atau Menonaktifkan file Index
Untuk menutup file index yang digunakan tanpa menutup file database,
program clipper menyediakan dua cara yaitu dengan memberikan perintah
CLOSE INDEX dan fungsi DbClearIndex().
Contoh :
Select barang
Close index
Select customer
DbClearIndex()
Gambar 8.25 Contoh Penulisan Perintah Close Index, DbClearindex()

G. Pencarian Data Record Database


1. Pencarian Secara Linier
Pencarian secara linier ini dilakukan dengan metode pencarian urut atau
sequensial, dengan cara membandingkan kondisi pencarian yang
dilakukan terhadap record database mulai record awal sampai dengan

Pemrograman Basis Data dengan Clipper 5.3 ciii


STMIK Duta Bangsa Surakarta
record akhir. Jika pencarian ketemu, maka pointer atau penunjuk record
akan berhenti di posisi record yang ketemu, jika tidak ketemu pointer akan
berada di posisi akhir file atau EOF(). Dalam pencarian liner ini dapat
dilakukan dengan memberikan perintah LOCATE yang bentuk umum
penulisannya adalah :
LOCATE <daerah> FOR <kondisi> WHILE<kondisi>
Gambar 8.26 Bentuk Penulisan Perintah LOCATE FOR
Keterangan :
 <daerah> digunakan jika anda akan mencari dengan daerah atau scope
record tertentu.
 <kondisi>, digunakan untuk menentukan kondisi pencarian yang
dilakukan.
 WHILE<kondisi>, option ini merupakan konsisi kedua yang
diberikan setelah FOR yang juga digunakan untuk menentukan
kondisi pencarian yang dilakukan.
Indikator atau tanda yang menyatakan ketemu atau tidaknya proses
pencarian dapat dilakukan dengan mengambil nilai balik dari fungsi
Found() yang akan bernilai .T. jika ketemu dan .F. jika tidak ketemu, atau
dengan fungsi EOF() yang akan bernilai .T. artinya data tidak ditemukan
dan .F. artinya data berhenti disuatu record yang ketemu. Untuk
melanjutkan pencarian data berikutnya dapat diberikan perintah
CONTINUE.
Contoh :
Clear
Local cari
Cari=space(7)
Field kd_brg,nm_brg
Use barang
@10,10 say “Kode Barang Yang Dicari : “ get cari
Locate for kd_brg=cari
Do while .not. found()

Pemrograman Basis Data dengan Clipper 5.3 civ


STMIK Duta Bangsa Surakarta
?kd_brg,nm_brg
CONTINUE
ENDDO
Return
Gambar 8.27 Contoh Bentuk Penulisan Perintah LOCATE FOR
2. Pencarian Secara Biner
Pencarian secara biner ini dilakukan dengan metode pemrosesan
secara biner terhadap data field urut yang tersimpan dalam file index. Jika
pointer berhenti di posisi data index yang ketemu, maka pointer record
akan menunjuk ke record database sesuai dengan nomor record yang
tercantum dalam file index. Untuk melakukan pencarian secara biner,
dalam program clipper dapat menggunakan perintah SEEK atau FIND
serta fungsi DbSeek(), yang bentuk umum penulisannya adalah :
SEEK <data kunci pencarian>
FIND <data kunci pencarian>
DbSeek(<data kunci pencarian>)
Gambar 8.28 Bentuk Penulisan Perintah SEEK, FIND, DbSeek()
Keterangan :
 <data kunci pencarian> adalah data yang dapat berupa variable atau
konstanta yang merupakan data pencarian terhadap kunci index yang
dipakai oleh database.
 Perintah SEEK dan FIND mempunyai metode pemrosesan yang sama,
perbedaan antara kedua perintah ini hanya pada <data kunci
pencarian>, dimana kalau SEEK dapat menggunakan bentuk ekspresi
atau konstanta, tetapi kalu FIND hanya menerima data konstanta saja.

Contoh 1 :
Clear
Local kdcari

Pemrograman Basis Data dengan Clipper 5.3 cv


STMIK Duta Bangsa Surakarta
Kdcari=space(7)
Use barang index barang
@10,10 say “Kode Barang Yang dicari : “ get kdcari
Seek kdcari
If .not. found()
Alert(“Kode yang anda cari tidak ada …!”)
Innkey(0)
Endif

Contoh 2 :
Clear
Local kdcari
Kdcari=space(7)
Use barang index barang
@10,10 say “Kode Barang Yang dicari : “ get kdcari
FIND kdcari
If .not. found()
Alert(“Kode yang anda cari tidak ada …!”)
Inkey(0)
Else
@11,10 say ”Data tersebut ditemukan di record : ”+trans(recno(),”999”)
Endif
Return

Contoh 3 :
Clear
Local kdcari
Kdcari=space(7)
Use barang index barang
@10,10 say “Kode Barang Yang dicari : “ get kdcari
If ! DbSeek(kdcari)

Pemrograman Basis Data dengan Clipper 5.3 cvi


STMIK Duta Bangsa Surakarta
Alert(“Kode yang anda cari tidak ada …!”)
Inkey(0)
Else
@11,10 say ”Data tersebut ditemukan di record : ”+trans(recno(),”999”)
Endif
Return
Gambar 8.29 Contoh Penulisan Perintah SEEK, FIND, DbSeek()

H. Query Database
Query database adalah suatu proses pengambilan informasi yang
terkandung dalam seluruh atau sebagian dari isi database, misalkan
menjumlahkan seluruh data dalam field tertentu dengan kondisi tertentu.
Seperti dalam program dBase atau FoxBase, perintah-perintah query yang
digunakan adalah sama, seperti COUNT, SUM dan lain-lain.
1. COUNT
Perintah ini berfungsi untuk menentukan jumlah record dalam database
yang memenuhi syarat atau criteria yang disertakan dalam option FOR
atau dan WHILE. Bentuk umum penulisannya adalah :
COUNT TO <variable> <daerah> WHILE <kondisi> FOR <kondisi>
Gambar 8.30 Bentuk Penulisan Perintah COUNT
Keterangan :
 <variable> adalah variable numeric yang dipakai untuk menyimpan
hasil perintah COUNT.
 <daerah> digunakan jika anda akan menentukan jumlah record
dengan daerah atau scope tertentu.
 WHILE <kondisi>, option ini jika diberikan akan menentukan jumlah
record dalam database yang memenuhi syarat kondisi WHILE yang
diberikan.
 FOR <kondisi>, option ini jika diberikan akan menentukan jumlah
record dalam database yang memenuhi sayarat kondisi FOR yang
diberikan.

Pemrograman Basis Data dengan Clipper 5.3 cvii


STMIK Duta Bangsa Surakarta
2. SUM
Perintah ini berfungsi untuk menjumlahkan nilai-nilai field tertentu atau
ekspresinya dalam suatu database, yang memenuhi syarat aatau criteria
yang disertakan dalam option FOR atau dan WHILE. Bentuk umum
penulisannya adalah :
SUM <ekspresi> TO <variable> <daerah> WHILE <kondisi> FOR
<kondisi>
Gambar 8.31 Bentuk Penulisan Perintah SUM
Keterangan :
 <ekspresi> adalah ekspresi dari field yang akan dijumlahkan
 <variable> adalah variable numeric yang dipakai untuk menyimpan
hasil perintah SUM.
 <daerah> digunakan jika anda akan menentukan daerah atau scope
record dalam database yang field atau ekspresinya dijumlahkan.
 WHILE <kondisi>, option ini jika diberikan akan menentukan jumlah
record dalam database yang memenuhi syarat kondisi WHILE yang
diberikan.
 FOR <kondisi>, option ini jika diberikan akan menentukan jumlah
record dalam database yang memenuhi sayarat kondisi SUM yang
diberikan.
3. AVERAGE
Perintah ini berfungsi untuk menentukan nilai rata-rata dari field tertentu
atau ekspresinya dalam database, yang memenuhi syarat atau criteria yang
disertakan dalam option FOR atau dan WHILE. Bentuk umum
penulisannya adalah :
AVERAGE <ekspresi> TO <variable> <daerah> WHILE <kondisi>
FOR <kondisi>
Gambar 8.32 Bentuk Penulisan Perintah AVERAGE

Keterangan :

Pemrograman Basis Data dengan Clipper 5.3 cviii


STMIK Duta Bangsa Surakarta
 <ekspresi> adalah ekspresi dari field yang akan ditentukan nilai rata-
ratanya
 <variable> adalah variable numeric yang dipakai untuk menyimpan
hasil perintah AVERAGE.
 <daerah> digunakan jika anda akan menentukan daerah atau scope
record dalam database yang field atau ekspresinya dicari nilai rata-
ratanya.
 WHILE <kondisi>, option ini jika diberikan akan menentukan nilai
rata-rata record dalam database yang memenuhi syarat kondisi
WHILE yang diberikan.
 FOR <kondisi>, option ini jika diberikan akan menentukan jumlah
record dalam database yang memenuhi sayarat kondisi AVERAGE
yang diberikan.

I. Menggerakkan Record
1. Perintah-Perintah Menggerakkan Record
 SKIP
Perintah ini berfungsi menggerakkan pointer record dengan cara
meloncatkan pointer ke rcord sebelum atau sesudah record yang aktif
sebanyak n record sesuai dengan yang ditemukan. Bentuk umum
penulisannya adalah :
SKIP <n record>
Gambar 8.33 Bentuk Penulisan Perintah SKIP
Keterangan :
 <n record> adalah option data angka yang dapat berupa nilai atau
ekspresi yang merupakan jumlah loncatan yang dilakukan. Jika
data tersebut bernilai positif, maka akan meloncat ke record
selanjutnya sebanyak nilai yang ditentukan dan jika bernilai
negative, akan meloncat ke record sebelumnya sebanyak nilai yang
ditentukan.

Pemrograman Basis Data dengan Clipper 5.3 cix


STMIK Duta Bangsa Surakarta
Contoh :
clear
Local nrec
Use barang
Skip
Skip 2
Skip -1
Nrec=4
Skip nrec
Gambar 8.34 Contoh Penulisan Perintah SKIP
 GO TO atau GO
Perintah ini berfungsi menggerakkan pointer ke record yang ditunjuk.
Bentuk umum penulisannya adalah :
GO TO <n record>
GO <n record>
Gambar 8.35 Bentuk Penulisan Perintah GO TO, GO
Keterangan :
 <n record> adalah option data angka yang dapat berupa nilai atau
ekspresi yang merupakan nomor record yang dituju.
Contoh :
clear
Local nrec
Use barang
GO TO 5
Go 2
Nrec=2
GO TO nrec
Nrec=nrec*2
SKIP nrec
Gambar 8.36 Contoh Penulisan Perintah GO TO, GO

Pemrograman Basis Data dengan Clipper 5.3 cx


STMIK Duta Bangsa Surakarta

 GO TOP
Perintah ini berfungsi untuk menggerakkan pointer ke record awal
database. Record awal di sini bisa record 1, jika tidak digunakan file
index, atau record awal sesuai dengan urutan record dalam file index
yang digunakan. Bentuk umum penulisannya adalah :
GO TOP
Contoh :
Use barang
GO 5
GO TOP
Gambar 8.37 Bentuk Penulisan Perintah GO TOP
 GO BOTTOM
Perintah iniberfungsi menggerakkan pointer ke record akhir database.
Record akhir di sini bisa record dari data terakhir yang kita masukkan,
jika tidak digunakan file index, atau record akhir sesuai dengan urutan
record dalam file index yang digunakan. Bentuk umum penulisannya
adalah :
GO BOTTOM
Gambar 8.38 Bentuk Penulisan Perintah GO BOTTOM
Contoh :
Use barang
GO 5
GO BOTTOM
Gambar 8.39 Contoh Penulisan Perintah GO BOTTOM

2. Fungsi-Fungsi Menggerakkan Pointer Record


Fungsi-fungsi yang dapat dipakai untuk menggerakkan pointer dalam
program clipper adalah :
 DbSkip()

Pemrograman Basis Data dengan Clipper 5.3 cxi


STMIK Duta Bangsa Surakarta
Fungsi ini berguna untuk menggerakkan pointer record dengan cara
meloncatkan pointer ke record sebelum atau sesudahnya sebanyak n
record sesuai dengan yang ditentukan sama seperti perintah SKIP.
Bentuk umum penulisannya adlah :
DbSkip( <n record>)
Gambar 8.40 Bentuk Penulisan Perintah DbSkip()
Keterangan :
 <n record> adalah option data angka yang dapat berupa nilai atau
ekspresi yang merupakan jumlah loncatan yang dilakukan. Jika
data tersebut bernilai positif, maka akan meloncat ke record
selanjutnya sebanyak nilai yang ditentukan dan jika bernilai
negative, akan meloncat ke record sebelumnya sebanyak nilai yang
ditentukan.
Contoh :
clear
Local nrec
Use barang
DbSkip()
DbSkip (2)
DbSkip (-1)
Nrec=4
DbSkip (nrec)
Gambar 8.41 Contoh Penulisan Perintah DbSkip()
 DbGoto()
Fungsi ini berguna untuk menggerakkan pointer ke record yang
ditunjuk. Bentuk umum penulisannya adalah :
DbGoto (<record>)
Gambar 8.42 Bentuk Penulisan Perintah DbGoto()
Keterangan :
 <record> adalah option data angka yang dapat berupa nilai atau
ekspresi yang merupakan nomor record yang dituju.

Pemrograman Basis Data dengan Clipper 5.3 cxii


STMIK Duta Bangsa Surakarta
Contoh :
clear
Local nrec
Use barang
DbGoto (5)
Nrec=2
DbGoto (nrec)
Gambar 8.43 Contoh Penulisan Perintah DbGoto()
 DbGotop()
Perintah ini berfungsi untuk menggerakkan pointer ke record awal
database. Record awal di sini bisa record 1, jika tidak digunakan file
index, atau record awal sesuai dengan urutan record dalam file index
yang digunakan. Bentuk umum penulisannya adalah :
DbGoTop ()
Contoh :
Use barang
GO 5
DbGoTop()
Gambar 8.44 Contoh Penulisan Perintah DbGotop()
 DbGoBottom()
Perintah iniberfungsi menggerakkan pointer ke record akhir database.
Record akhir di sini bisa record dari data terakhir yang kita masukkan,
jika tidak digunakan file index, atau record akhir sesuai dengan urutan
record dalam file index yang digunakan. Bentuk umum penulisannya
adalah :
DbGoBottom()
Gambar 8.45 Bentuk Penulisan Perintah DbGoBottom()
Contoh :
Use barang
GO 5
DbGoBottom()

Pemrograman Basis Data dengan Clipper 5.3 cxiii


STMIK Duta Bangsa Surakarta
Gambar 8.46 Contoh Penulisan Perintah DbGoBottom()

BAB IX
PROSES TERHADAP DATABASE
Tujuan Instruksional Umum :
Mahasiswa mampu memproses database atau table dengan program.

Tujuan Instruksional Khusus :


1. Mahasiswa dapat mengubah data record database dengan program input data, edit data atau
ubah data, mencari dan menampilkan data dan menghapus data record.
2. Mahasiswa dapat menerapkan fungsi-fungsi database.
3. Mahasiswa dapat membuat program Master Data.

A. Mengubah atau Memodifikasi Data Record Database


1. Program Menambah Data
 APPEND BLANK
Perintah ini berfungsi untuk menambah data record kosong dari
database yang aktif.
 REPLACE
Perintah ini berfungsi untuk memasukkan data ke dalam field dari
variabel atau ekspresi yang digunakan, yang bentuk umum perintahnya
adalah :
REPLACE <field> WITH <ekspresi> <field> WITH <ekspresi>
<daerah> WHILE <kondisi> FOR <konsisi>
Gambar 9.1 Bentuk Penulisan Perintah REPLACE
 DbAppend()
Fungsi ini sama seperti perintah APPEND BLANK berfungsi untuk
menambah satu data record kosong. Bentuk umum penulisan fungsi ini
adalah :
DbAppend()
Contoh :

Pemrograman Basis Data dengan Clipper 5.3 cxiv


STMIK Duta Bangsa Surakarta
Gambar 9.2 Contoh Form Input Data
Listing program dari tampilan di atas adalah :
IF ! FILE("barang.DBF")
dbcreate("barang.dbf",{{"KD_brg","C",5,0},;
{"nama_brg","C",20,0},;
{"satuan","C",10,0},;
{"merk","C",15,0},;
{"harga","n",7,0},;
{"stok","N",2,0}})
use barang
index on kd_brg to barang
ENDIF
use barang index barang
LABEL()
pil=space(1)
DO WHILE .T.
mkd_brg=SPACE(5)
@9,34 get MKD_BRG
read
If MKD_BRG=SPAC(5)
EXIT
endif
seek (mkd_brg)
if found()
Alert('Perhatian Kode Barang Tersebut Sudah Ada')
loop
else
APPEN BLANK
REPL KD_BRG WITH MKD_BRG
@10,34 GET NAMA_BRG
@11,34 GET SATUAN
@12,34 get MERK
@13,34 GET HARGA
@14,34 GET STOK
read
endif

@16,25 say 'ISI Lagi [Y/T] :' get pil pict '@!' valid
pil$'Y/T'

Pemrograman Basis Data dengan Clipper 5.3 cxv


STMIK Duta Bangsa Surakarta
read
if pil='T'
exit
endif
enddo
close database
Func LABEL()
clea
set colo to w+/bg
@5,15 clea to 20,60
@5,15 to 20,60 DOUB
@7,33 say "ISI DATA BARANG"
@09,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Gambar 9.3 Listing Program Form Input Data

2. Program Mengedit Data


Untuk mengedit data record database yang pernah anda masukkan lewat
program menambah data, digunakan perintah-perintah atau fungsi
pencarian baik secara linier, jika database tidak diindex, seperti LOCATE
FOR, ataupun dengan pencarian secara biner, jika database diindex,
seperti SEEK, FIND atau fungsi DbSeek(). Untuk menyimpan kembali
ke database, digunakan perintah REPLACE.
Contoh :

Pemrograman Basis Data dengan Clipper 5.3 cxvi


STMIK Duta Bangsa Surakarta

Gambar 9.4 Contoh Form Edit Data

Listing Program :
use barang index barang
LABEL()
pil=space(1)
DO WHILE .T.
mkd_brg=SPACE(5)
@9,34 get MKD_BRG
read
If MKD_BRG=SPAC(5)
EXIT
endif
seek (mkd_brg)
if ! found()
Alert('Perhatian Kode Barang Tersebut Tidak Ada')
loop
else
REPL KD_BRG WITH MKD_BRG
@10,34 GET NAMA_BRG
@11,34 GET SATUAN
@12,34 get MERK
@13,34 GET HARGA
@14,34 GET STOK
read
endif
@16,25 say 'Ubah Data Lagi [Y/T] :' get pil pict '@!'
valid pil$'Y/T'
read
if pil='T'
exit
endif
enddo
close database
Func LABEL()
clea

Pemrograman Basis Data dengan Clipper 5.3 cxvii


STMIK Duta Bangsa Surakarta
set colo to w+/bg
@5,15 clea to 20,60
@5,15 to 20,60 DOUB
@7,33 say "ISI DATA BARANG"
@09,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Gambar 9.5 Listing Program Form Edit Data


3. Program Menghapus Data
Untuk membuat programa menghapus data ada sua model penghapusan
yaitu menghapus data dengan cara menandai, yaitu dengan perintah
DELETE dan menghilangkan data record dari database, yaitu dengan
perintah PACK.
 DELETE
Berfungsi untuk menghapus data dengan cara memberi tanda data
reocrd database.
DELETE <daerah> WHILE<kondisi> FOR <kondisi>
Gambar 9.6 Bentuk Penulisan Perintah DELETE

Record yang dihapus dengan perintah DELETE, akan diberi tanda


artisti atau *, pada awal nomor record, untuk menghilangkan tanda
tersebut maka diberi perintah PACK, dan jika inging mengaktifkan
kembali atau menggunakan kemabali record tersebut maka doberi
perintah RECALL. Perintah DELETE untuk dapat diakses atau tidak
digunakan perintah SET DELETE ON/OFF
 PACK
Berfungsi untuk menghilankan atau mempertegas proses penghapusa
data yaitu dengan perintah DELETE.
 RECALL

Pemrograman Basis Data dengan Clipper 5.3 cxviii


STMIK Duta Bangsa Surakarta
Berfungsi untuk memanggil atau mengaktifkan kembali data record
yang telah dihapus dengan perintah DELETE, sebelum ditegaskan
dengan perintah PACK.
RECALL <daerah> WHILE <konsisi> FOR <kondisi>
Gambar 9.7 Bentuk Penulisan Perintah RECALL
 SET DELETE ON/OFF
Berfungsi untuk mengaktifkan atau menonaktifkan proses
penyembunyian data record yang telah dihapus dengan perintah
DELETE, ON berarti aktif dan OFF berarti tidak aktif.
 ZAP
Berfungsi untuk menghilangkan atau menghapus seluruh data record
yang ada dalam database. Perintah ini sama denga perintah DELETE
ALL kemudian diberi perintah PACK.
Fungsi-fungsi yang digunakan dalam proses pemghapusan data record :
 Deleted()
Berfungsi untuk menghapus data record yang aktif, fungsi ini sama
dengan perintah DELETE.
 DbDeleted()
Berfungsi sama dengan perintah DELETE, yaitu untuk menghapus
data record yang aktif dengan memberitakan tanda artistik atau *.
 DbRecall()
Berfungsi untuk mengaktifkan kembali data record yang telah di hapus
dengan perintah DELETE atau fungsi DbDelete dari data record yang
aktif, fungsi ini sama dengan perintah RECALL.
Contoh :

Pemrograman Basis Data dengan Clipper 5.3 cxix


STMIK Duta Bangsa Surakarta
Gambar 9.8 Contoh Form Hapus Data
Listing program dari tampilan di atas adalah :
# INCLUDE "INKEY.CH"

use barang index barang


LABEL()
tunjuk()
LAYAR=SAVESCREEN(0,0,24,79)
MKD_BRG=SPACE(5)

do while.t.
X:=inkey(0)
do Case
case X=K_F1
CARIDATA()
case X=K_DEL
HA_PUS()
Case X=K_ESC
kunci= .F.
exit
endcase
enddo
func CARIDATA()

RESTSCREEN(0,0,24,79,LAYAR)
DO WHILE.T.
@9,34 GET MKD_BRG PICT '@!'
READ
IF MKD_BRG=SPACE(5)
EXIT
ENDIF

SEEK (MKD_BRG)
IF ! FOUND()
ALERT('MAAF KODE BARANG TIDAK DITEMUKAN ......!')
LOOP
ENDIF

@10,34 say NM_BRG PICT '@!'


@11,34 say SATUAN PICT '@!'
@12,34 say MERK PICT '@!'
@13,34 say HARGA PICT '9,999,999'
@14,34 say STOK PICT '9,999'
retu
ENDDO

func HA_PUS()
SETCOLOR('B/W,W+*/B')
pilih:=alert('Konfirmasi',{'Hapus','Batal'})
do case
case pilih=1
dele for KD_BRG=MKD_BRG
pack
case pilih=2
return

Pemrograman Basis Data dengan Clipper 5.3 cxx


STMIK Duta Bangsa Surakarta
endcase
return

Func LABEL()
clea
set colo to w+/bg
@5,15 clea to 20,65
@5,15 to 20,65 DOUB
@7,33 say " DATA BARANG"
@9,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Func Tunjuk()
set colo to w+/bg
@18,18 clea to 16,59
@18,18 say ' [F1]CARI [DEL]HAPUS [ESC]KELUAR'
set colo to Gr+/bg
@18,23 say 'F1'
@18,35 SAY 'DEL'
@18,49 SAY 'ESC'
Return
Gambar 9.9 Listing Program Form Hapus Data
4. Program Display Data
Berfungsi untuk menapilkan data per record, dengan menggunakan
perintah untuk menampilkan data ke layar, dan dapat menggerakkan
pointer record yang dimaksud dengan kunci tertentu sesuai yang telah
disefinisikan.
Contoh :

Gambar 9.10 Contoh Form Program Display


Listing program dari tampilan di atas adalah :
# INCLUDE "INKEY.CH"

use barang index barang

Pemrograman Basis Data dengan Clipper 5.3 cxxi


STMIK Duta Bangsa Surakarta

LABEL()
tunjuk()
tampil()
do while.t.
X:=inkey(0)
do Case
case X=K_LEFT
SKIP -1
tampil()
case X=K_RIGHT
SKIP
tampil()
case x=K_HOME
go top
tampil()
case X=K_END
go bottom
tampil()
Case X=K_ESC
kunci= .F.
exit
otherwise
return .f.
endcase
enddo

func tampil()
@9,34 say KD_BRG PICT '@!'
@10,34 say NM_BRG PICT '@!'
@11,34 say SATUAN PICT '@!'
@12,34 say MERK PICT '@!'
@13,34 say HARGA PICT '9,999,999'
@14,34 say STOK PICT '9,999'

retu
Func LABEL()
clea
set colo to w+/bg
@5,15 clea to 20,65
@5,15 to 20,65 DOUB
@7,33 say " DATA BARANG"
@9,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Func Tunjuk()
set colo to w+/bg
@18,18 clea to 16,59
@18,18 say '[HOME]AWAL [<-]PREV [->]NEXT [END]AKHIR'
set colo to Gr+/bg
@18,19 say 'HOME'
@18,30 say '<-'

Pemrograman Basis Data dengan Clipper 5.3 cxxii


STMIK Duta Bangsa Surakarta
@18,44 SAY '->'
@18,53 SAY 'END'
Return
Gambar 9.11 Listing Program Form Program Display
5. Program Mencetak Laporan
Dalam melakukan pencetakan data atau laporan, ada tiga perangkat
keluaran yaitu layar, printer atau file. Secara umum pencetakan ke tiga
perangkat di atas adalah sama, hanya dalam pendefinisian perangkatnya
saja yang berdeda.
Contoh :
local mscreen, mcolor
save scre to mscreen

CLOSE DATABASE
use BARANG index BARANG

pilih=0
pilih:=alert("Media Cetakan",{"Layar","Printer","Batal"})
Do case
case pilih=1
set printer off
set cons off
set alter to lapor.txt
set alter on
case pilih=2
if ! isprinter()
alert("Printer Belum Siap")
return
endif
set cons off
set printer on
case pilih=3 .or. pilih=0
return
endcase
CLEA

? "TOKO ADI JAYA UTAMA"


? "Jl. DR. Radjiman No. 525 Surakarta"
?
? space(33)+"LAPORAN DATA BARANG"
? "------------------------------------------------------------"
? " No Kode Barang Nama Barang Satuan Merk Harga Stok"
? “------------------------------------------------------------“

no=0
hal=1
br=1
SET FILTER TO
GO TOP
do while .not. eof()
NO=NO+1
A1="|”+TRAN(NO,"999")+"|"+KD_BRG+"|"+NM_BRG+"|"
A2=SATUAN+"|"+MERK+"|"+TRAN(HARGA,"9,999,999")+"|"
A3=TRAN(STOK,"999")

Pemrograman Basis Data dengan Clipper 5.3 cxxiii


STMIK Duta Bangsa Surakarta
? A1+A2+A3
SKIP
ENDDO
if pilih=1
if pilih=1
set colo to w+/b
@1,0 to 23,79
@24,1 clea to 24,78
set print off
set cons on
set alter to
set colo to w+/b
geser := memoedit(memoread("LAPOR.txt"),2,1,22,78,.F.,,350,10)
endif
endif
RETURN
Gambar 9.12 Listing Program Cetak Laporan
B. Fungsi-Fungsi Database
1. Fcount()
Berfungsi untuk mengetahui jumlah field yang terdapat dalam database
yang sedang diaktifkan.
Fcount()
Gambar 9.13 Bentuk Penulisan Fungsi Fcount()
Contoh :
Local jml,I,mfield
Use barang
Jml=Fcount()
For i:= 1 TO jml
FieldPut(i,mfield[i])
Next
Gambar 9.14 Contoh Penulisan Fungsi Fcount()
2. Field()
Berfungsi untuk mengetahui nama field di posisi tertentu dari database
yang sedang diaktifkan.
Field (<posisi>)
FieldName (<posisi>)
Gambar 9.15 Bentuk Penulisan Fungsi Field()
Contoh :
Local jml,i

Pemrograman Basis Data dengan Clipper 5.3 cxxiv


STMIK Duta Bangsa Surakarta
Use barang
Jml=Fcount()
For i:= 1 TO jml
?barang->(fieldname(z))
Next
Gambar 9.16 Contoh Penulisan Fungsi Field()
3. RecNo()
Berfungsi untuk mengetahui nomor record dari database yang aktif.
RecNo()
Gambar 9.17 Bentuk Penulisan Fungsi RecNo()
Contoh :
Local jml,i
Use barang
Jml=Fcount()
For i:= 1 TO jml
?Trans(recno(),”999”)+” “+barang->(fieldname(i))
Next
Gambar 9.18 Contoh Penulisan Fungsi RecNo()
4. RecCount()
Berfungsi untuk mengetahui jumlah record database yang sedang aktif.
RecCount()
Gambar 9.19 Bentuk Penulisan Fungsi RecCount()
Contoh :
Local jml
Use barang
Jml=Reccount()
?”Jumlah record database : “+trans(jml,”999”)
Gambar 9.20 Contoh Penulisan Fungsi RecCount()
5. LastRec()
Berfungsi seperti RecCount(), fungsi ini juga berguna untuk mengetahui
jumlah record database yang aktif.
LastRec()

Pemrograman Basis Data dengan Clipper 5.3 cxxv


STMIK Duta Bangsa Surakarta
Gambar 9.21 Bentuk Penulisan Fungsi LastRec()
Contoh :
Local jml
Use barang
Jml=LastRec()
?”Jumlah record database : “+trans(jml,”999”)
Gambar 9.22 Contoh Penulisan Fungsi LastRec()
6. RecSize()
Berfungsi untuk mengetahui jumlah byte yang digunakan oleh tiap record
database yang sedang aktif.
RecSize()
Gambar 9.23 Bentuk Penulisan Fungsi RecSize()
Contoh :
Use barang
?”Ukuran database barang.dbf : “+trans(RecSize()*RecCount+Header()+1,”999,999 Bytes”)

Gambar 9.24 Contoh Penulisan Fungsi RecSize()


7. Header()
Berfungsi untuk mengetahui jumlah byte yang digunakan oleh header
database yang sedang aktif.
Header()
Gambar 9.25 Bentuk Penulisan Fungsi Header()
Contoh :
Use barang
?”Ukuran Header database barang.dbf : “+trans(Header())

Gambar 9.26 Contoh Penulisan Fungsi Header()


8. LUpdate()
Berfungsi untuk mengetahui tanggal terakhir terjadinya modifikasi atau
perubahan data record database yang sedang aktif.
LUpdate()
Gambar 9.27 Bentuk Penulisan Fungsi LUpdate()
Contoh :
Use barang
?”Tanggal Terakhir Modifikasi database barang.dbf : “+Dtoc(LUpdate())

Pemrograman Basis Data dengan Clipper 5.3 cxxvi


STMIK Duta Bangsa Surakarta
Gambar 9.28 Contoh Penulisan Fungsi LUpdate()
9. BOF()
Berfungsi untuk mengetahui apakah pointer berada di awal file database
yang sedang aktif atau tidak.
Bof()
Gambar 9.29 Bentuk Penulisan Fungsi Bof()
Contoh :
Use barang
If Bof()
?”Berada di awal file …………!”
Endif
Gambar 9.30 Contoh Penulisan Fungsi Bof()

10. Eof()
Berguna untuk mengetahui apakah pointer berada di akhir file database
yang sedang aktif atau tidak.
Eof()
Gambar 9.31 Bentuk Penulisan Fungsi Eof()
Contoh :
Use barang
If Eof()
?”Berada di akhir file …………!”
Endif
Gambar 9.32 Contoh Penulisan Fungsi Eof()
11. FieldGet()
Berguna untuk mengambil data dari database pada field tertentu sesuai
dengan nomor field yang ditentukan.
FieldGet(<nomor field>)
Gambar 9.33 Bentuk Penulisan Fungsi FieldGet()
Contoh :
if file (“barang.dbf”)
use barang index barang
else

Pemrograman Basis Data dengan Clipper 5.3 cxxvii


STMIK Duta Bangsa Surakarta
DbCreate(“Barang.DBF”,;
{{“kd_brg”,”C”,5,0},;
{“nm_brg”,”C”,20,0}.;
{“merk”,”C”,15,0},;
{“satuan”,”C”,10,0},;
{“harga”,”N”,7,0},;
{“stok”,”N”,4,0}}
Use barang
INDEX ON NO_BAR TO BARANG.NTX
Endif
Cetak()
Func cetak()
Locl i
For i:=1 to 7
?FieldGet(i)
Next
Retun
Gambar 9.34 Contoh Penulisan Fungsi FieldGet()
12. FieldPut()
Berguna untuk menyimpan data ke dalam field tertentu dalam database
sesuai dengan nomor field yang ditentukan , jadi kebalikan dari fungsi
FieldGet().
FieldPut()
Gambar 9.35 Bentuk Penulisan Fungsi FiledPut()
Contoh :
Private mfield
Mfiled:=(space(5),space(20),space(15),0,0,0)
if file (“barang.dbf”)
use barang index barang
else
DbCreate(“Barang.DBF”,;
{{“kd_brg”,”C”,5,0},;
{“nm_brg”,”C”,20,0}.;
{“merk”,”C”,15,0},;
{“satuan”,”C”,10,0},;
{“harga”,”N”,7,0},;
{“stok”,”N”,4,0}}
Use barang
INDEX ON NO_BAR TO BARANG.NTX
Endif

Pemrograman Basis Data dengan Clipper 5.3 cxxviii


STMIK Duta Bangsa Surakarta

Cari()
@10,10 GET mfiled[1]
simpan()

Func cari()
Locl i
For i:=1 to len(mfield()
Mfield(i):=fieldGet(i)
?FieldGet(i)
Next
Retun
Func simpan()
Local i
For i:= 1 TO Len(mfield)
FieldGet(I,mfield[i])
NEXT
Return
Gambar 9.36 Contoh Penulisan Fungsi FiledPut()

C. Membuat Program Master Data


Contoh Program Master Data :

Gambar 9.37 Contoh Program Master Data


Listing Program dari tampilan form di atas adalah :
# INCLUDE "INKEY.CH"
# INCLUDE "SETCURS.CH"

IF ! FILE("barang.DBF")
dbcreate("barang.dbf",{{"KD_brg","C",5,0},;
{"nama_brg","C",20,0},;
{"satuan","C",10,0},;
{"merk","C",15,0},;
{"harga","n",7,0},;
{"stok","N",2,0}})

use barang

Pemrograman Basis Data dengan Clipper 5.3 cxxix


STMIK Duta Bangsa Surakarta
index on kd_brg to barang
ENDIF
use barang index barang

CLEAR
LABEL()
TUNJUK()

DO WHILE .T.
X:=inkey(0)
do Case
Case X=K_ESC
kunci= .F.
exit
Case X=K_INS
TAMBAH()
Case X=K_F2
UBAH()
Case X=K_F4
CARI()
Case X=K_DEL
HAPUS()
endcase
ENDDO

FUNCTION TAMBAH()
layar:=savescreen(0,0,24,79)

do while.t.
pil=space(1)
mkd_brg=SPACE(5)

@9,34 get MKD_BRG


read
if MKD_BRG=SPAC(5)
EXIT
endif

seek (mkd_brg)
if found()
Alert('Perhatian Kode Barang Tersebut Sudah Ada')
loop
else
APPE BLANK
REPL KD_BRG WITH MKD_BRG
@10,34 GET NAMA_BRG
@11,34 GET SATUAN
@12,34 get MERK
@13,34 GET HARGA
@14,34 GET STOK
read
endif

Pemrograman Basis Data dengan Clipper 5.3 cxxx


STMIK Duta Bangsa Surakarta
exit
enddo
setcursor(1)
restscreen(0,0,24,79,layar)
retu

FUNCTION UBAH()
RESTSCREEN(0,0,24,79,LAYAR)
MKD_BRG=SPACE(5)

DO WHILE.T.
@9,34 GET MKD_BRG PICT '@!'
READ
IF MKD_BRG=SPACE(5)
EXIT
ENDIF

SEEK (MKD_BRG)
IF ! FOUND()
ALERT('MAAF KODE BARANG TIDAK DITEMUKAN ......!')
LOOP
ENDIF

MKD_BRG=KD_BRG
MNM_BRG=NM_BRG
MSATUAN=SATUAN
MMERK=MERK
MHARGA=HARGA
MSTOK=STOK

@10,34 GET MNM_BRG PICT '@!'


@11,34 GET MSATUAN PICT '@!'
@12,34 GET MMERK PICT '@!'
@13,34 GET MHARGA PICT '9,999,999'
@14,34 GET MSTOK PICT '9,999'
READ

REPL KD_BRG WITH MKD_BRG


REPL NM_BRG WITH MNM_BRG
REPL SATUAN WITH MSATUAN
REPL MERK WITH MMERK
REPL HARGA WITH MHARGA
REPL STOK WITH MSTOK
retu
ENDDO

FUNCTION CARI()
RESTSCREEN(0,0,24,79,LAYAR)

DO WHILE.T.
@9,34 GET MKD_BRG PICT '@!'
READ
IF MKD_BRG=SPACE(5)
EXIT
ENDIF

Pemrograman Basis Data dengan Clipper 5.3 cxxxi


STMIK Duta Bangsa Surakarta
SEEK (MKD_BRG)
IF ! FOUND()
ALERT('MAAF KODE BARANG TIDAK DITEMUKAN ......!')
LOOP
ENDIF

@10,34 say NM_BRG PICT '@!'


@11,34 say SATUAN PICT '@!'
@12,34 say MERK PICT '@!'
@13,34 say HARGA PICT '9,999,999'
@14,34 say STOK PICT '9,999'
retu
ENDDO
func HAPUS()
SETCOLOR('B/W,W+*/B')
pilih:=alert('Konfirmasi',{'Hapus','Batal'})
do case
case pilih=1
dele for KD_BRG=MKD_BRG
pack
case pilih=2
return
endcase
return

Func LABEL()
clea
set colo to w+/bg
@5,15 clea to 20,72
@5,15 to 20,72 DOUB
@7,33 say " DATA BARANG"
@09,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Func Tunjuk()
set colo to w+/bg
@18,18 clea to 16,63
@18,18 say '[INS]TAMBAH [F2]UBAH [DEL]HAPUS [F4]CARI [ESC]KELUAR'
set colo to Gr+/bg
@18,19 say 'INS'
@18,31 SAY 'F2'
@18,40 SAY 'DEL'
@18,51 SAY 'F4'
@18,60 SAY 'ESC'
Return

Gambar 9.38 Listing Program Master Data

Pemrograman Basis Data dengan Clipper 5.3 cxxxii


STMIK Duta Bangsa Surakarta

BAB X
MENYARING ATAU FILTER DATA DAN MENGHUBUNGKAN
DATABASE
Tujuan Instruksional Umum :
Mahasiswa dapat memahami proses penyaringan data dan relasi antar tabel atau database.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui dan dapat menerapkan perintah menyaring data field dengan perintah
Set Filter to.
2. Mahasiswa dapat mengetahui cara menghubungkan antar database atau relasi database dan
dapat mempraktekkannya.

A. Menyaring Data Field Database


Untuk menyaring data berdasarkan field tertentu, di pemrograman clipper
disediakan perintah SET FILTER TO.
SET FILTER TO <konsisi>
Gambar 10.1 Bentuk Penulisan SET FILTER TO
Contoh :

Pemrograman Basis Data dengan Clipper 5.3 cxxxiii


STMIK Duta Bangsa Surakarta

Gambar 10.1 Contoh Program Pencarian Data dengan SET FILTER TO


Listing Program dari tampilan form di atas adalah :
# INCLUDE "INKEY.CH"
IF ! FILE("barang.DBF")
dbcreate("barang.dbf",{{"KD_brg","C",5,0},;
{"nama_brg","C",20,0},;
{"satuan","C",10,0},;
{"merk","C",15,0},;
{"harga","n",7,0},;
{"stok","N",2,0}})

use barang
index on kd_brg to barang
ENDIF
use barang index barang
LABEL()
tunjuk()
LAYAR=SAVESCREEN(0,0,24,79)
do while.t.
X:=inkey(0)
do Case
case X=K_F1
CARIDATA()
Case X=K_ESC
kunci= .F.
exit
endcase
enddo

func CARIDATA()
RESTSCREEN(0,0,24,79,LAYAR)

MKD_BRG=SPACE(5)
DO WHILE.T.
@9,34 GET MKD_BRG PICT '@!'
READ

IF MKD_BRG=SPACE(5)
EXIT
ENDIF
SET FILTER TO
SET FILTER TO KD_BRG=MKD_BRG
GO TOP
@10,34 say NM_BRG PICT '@!'
@11,34 say SATUAN PICT '@!'
@12,34 say MERK PICT '@!'
@13,34 say HARGA PICT '9,999,999'
@14,34 say STOK PICT '9,999'

Pemrograman Basis Data dengan Clipper 5.3 cxxxiv


STMIK Duta Bangsa Surakarta
retu
ENDDO

Func LABEL()
clea
set colo to w+/bg
@5,15 clea to 20,65
@5,15 to 20,65 DOUB
@7,33 say " DATA BARANG"
@9,18 SAY"KODE BARANG : "
@10,18 SAY"NAMA BARANG : "
@11,18 SAY"SATUAN : "
@12,18 SAY"MERK : "
@13,18 SAY"HARGA : "
@14,18 SAY"STOK : "
return

Func Tunjuk()
set colo to w+/bg
@18,18 clea to 16,59
@18,18 say ' [F1]CARI [ESC]KELUAR'
set colo to Gr+/bg
@18,27 say 'F1'
@18,43 SAY 'ESC'
Return
Gambar 10.2 Listing Program Pencarian Data dengan SET FILTER TO

B. Menghubungkan Dua Buah Database atau Relasi antar Database


Di dalam DBMS atau Database Manajemen Sistem, dalam pengolahan data
akan melakukan pembagian data ke masing-masing database yang saling
berhubungan atau biasa disebut dengan Relasi antar database. Seperti contoh
dua database yang saling berhubungan , yaitu database Barang.dbf yang
berisikan data tentang barang, dan database Beli.DBF yang berisikan data atau
inforamsi pembelian.
SET RELATION TO <ekspresi field> INTO <alias/area dbf>
Gambar 10.3 Bentuk Penulisan Perintah SET RELATION TO

Barang.dbf

Kd_brg
Nm_brg
Merk
Satuan
Harga Beli.dbf
Stok
Pemrograman Basis Data dengan Clipper 5.3 No_faktur cxxxv
Tgl_tran
Kd_brg
Jml_beli
Harga
STMIK Duta Bangsa Surakarta

Kd_brg Nm_brg Merk Satuan Harga


B-001 Disket MAXDATA BOX 20000
A-002 Hardisk Quantum BUAH 400000
C-004 Flash Disk Kingston BUAH 100000
D-005 CD CD-R GT Pro BOX 90000

No_faktur Kd_brg Tgl_tran Jml_beli Harga


00001 B-001 01/03/09 2 20000
00002 A-002 01/03/09 2 400000
00004 C-004 01/03/09 2 100000
00005 D-005 01/03/09 2 90000

Gambar 10.4 Contoh Relasi antar Database atau Tabel

Contoh :
# INCLUDE "INKEY.CH"
# INCLUDE "SETCURS.CH"
# INCLUDE "BOX.CH"

set score off


CLEA
close Database

SELECT A
use BARANG index BARANG alias barang

SELECT B
use BELI index BELI
mNO_FAKTU=space(5)

@7,10 SAY “No Faktur : “ GET mNO_FAKTUR


read
IF mNO_FAKTUR=SPACE(5)
RETURN
ENDIF
SELE B
SEEK mNO_FAKTUR
IF ! FOUND()
alert("NO_FAKTUR tidak ada, silahkan yang lain")

Pemrograman Basis Data dengan Clipper 5.3 cxxxvi


STMIK Duta Bangsa Surakarta
sele B
set filter to
return
else
SELE B
SET RELA TO NO_BAR INTO BARANG

@8,10 say “Kode Barang : “+KD_BRG


@09,10 say “Nama Barang : “+barang->NM_BRG
@11,10 say “MERK : “+barang->merk
@10,10 say “Satuan : “+barang->satuan
@11,10 say “Harga : “+harga pict”99,999,999”
@12,19 say “Jumlah Beli : “+jml_beli pict “999”
ENDIF
RETURN

Gambar 10.5 Contoh Program Relasi antar Database atau Tabel

BAB XI
PRAPROSESOR, ARRAY DAN BLOK KODE
Tujuan Instruksional Umum :
Mahasiswa dapat memahami Praprosesor, Array dan Blok Kode dalam Clipper Compiler.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui tentang Praprosesor.
2. Mahasiswa dapat mengetahui dan menggunakan perlakuan praprosesor seperti penggunaan
file header, proses kompilasi bersyarat dan menerjemahkan konstanta simbolik dan makro
compiler.
3. Mahasiswa dapat mengetahui definisi data array dan dapat mengetahui fungsi-fungsi
manipulasi array dan cara penggunannya.
4. Mahasiswa dapat mengenal dan menggunakan blok kode.

A. PRAPROSESOR
Adalah paket tambahan program clipper yang disediakan dalam compiler,
yang berfungsi untuk memproses kode sumber (source code) agar siap untuk
dikompilasi.
Perlakuan yang dapat digunakan dalam praprosesor :

Pemrograman Basis Data dengan Clipper 5.3 cxxxvii


STMIK Duta Bangsa Surakarta
1. Menggabungkan File Header ke dalam Program
File header yang dapat digabungkan di dalam program, biasanya file
include yang berekstension .CH, contoh INKEY.CH.
#INCLUDE “<file header>”
Gambar 11.1 Bentuk Penulisan File Header #INCLUDE
Contoh :
# INCLUDE "INKEY.CH"
CLEA
TUNJUK()
DO WHILE .T.
X:=inkey(0)
do Case
Case X=K_ESC
kunci= .F.
exit
Case X=K_INS
Clear
?”Tombol INSERT”
Case X=K_F1
Clear
?”Tombol F1”
Case X=K_F2
Clear
?”Tombol F2”
endcase
ENDDO
Func Tunjuk()
set colo to w+/b
@24,0 clea to 24,79
@24,5 say 'Pres -->[F1] [F2] [INS] [ESC] '
Return
Gambar 11.2 Contoh Penulisan File Header #INCLUDE
2. Memproses Kompilasi Bersyarat
Untuk memberikan syarat kompilasi digunakan perintah-perintah
PraProsesor #ifdef, #ifndef,#else dan #endif.
#ifdef <simbol>
#define <konstanta simbolik>
[#else
#define <konstanta simbolik>
#endif]

#ifndef <simbol>
#define <konstanta simbolik>
[#else
#define <konstanta simbolik>

Pemrograman Basis Data dengan Clipper 5.3 cxxxviii


STMIK Duta Bangsa Surakarta
#endif]
Gambar 11.3 Penulisan Perintah #ifdef, #ifndef,#else dan #endif

Contoh :
#ifndef MONO
#define warna_konstruksi {”B+/GR+”,”N/W”,”GR+/B”,”B+/R”}
#define warna_layar ”BG+/B”,”B/BG+”
#else
#define warna_konstruksi {”B+/GR+”,”N/W”,”GR+/B”,”B+/R”}
#define warna_layar ”BG+/B”,”B/BG+”
#endif

Set color(warna_layar)
…………………..
Set color (warna_konstruksi)
Gambar 11.4 Contoh Penulisan Perintah #ifdef, #ifndef,#else dan #endif

3. Menerjemahkan Konstanta Simbolik dan Makro Compiler


#define <konstanta/ekspresi simbolik>
Gambar 11.5 Bentuk Penulisan Perintah #define

Contoh 1:
#define ESCAPE 27
#define kiri 19
#define kanan 4

Clear
Local tekan
Tekan=0
Do WHLIE .T.
Tekan:=inkey(0)
Do case

Pemrograman Basis Data dengan Clipper 5.3 cxxxix


STMIK Duta Bangsa Surakarta
Case tekan=ESCAPE
Clear
?”SELESAI”
EXIT
Case tekan=kiri
Clear
?”Panah Kiri”
Case tekan=kanan
Clear
?”Panah Kanan”
Endcase
Enddo
Return

Contoh 2 :

#define LUASSEGITIGA(alas,tinggi) alas*tinggi/2


Local malas,mtinggi,mluas
Clear
@10,10 say “Masukkan Alas : “ get malas pict “9999”
@11,10 say “Masukkan Tinggi: “ get mtinggi pict “9999”
Read
Mluas:=luassegitiga(malas,mtinggi)
@13,10 say “Luas Segitiga : “+trans(mluas,”9999.99”
Return

Gambar 11.6 Contoh Penulisan Perintah #define

4. Menerjemahkan Perintah yang disusun oleh Programmer


Disamping menggunakan fungsi-fungsi standar, fungsi yang kita buat dan
perintah-perintah standar, kita juga dapat membuat perintah tersendiri
dengan menggunakan perintah PraProsesor #command atau #translate.
#command <pola perintah> => <proses perintah>
#translate <pola perintah> => <proes perintah>
Gambar 11.7 Bentuk Penulisan Perintah #command atau #translate.

Contoh :
#command Copy file <(asal)> TO <(hasil)> =>
copyfile(<(asal)>,<(hasil)>
Local asal, hasil

Pemrograman Basis Data dengan Clipper 5.3 cxl


STMIK Duta Bangsa Surakarta
Asal:=space(12)
Hasil:=space(12)
@10,10 say “Masukkan Nama File yang di Copy : “ get asal
@11,10 say “Masukkan nama file tujuan : “get
hasil
Read
COPY FILE (<asal) TO (hasil)
Retun

Gambar 11.8 Contoh Penulisan Perintah #command atau #translate.

B. DATA ARRAY
Adalah kelompok data yang dapat diakses secara keseluruhan atau sendiri-
sendiri.
Contoh :
Clear
Local marray[5], i
For i:=1 to 5
@10+i,10 say “Masukkan Angka “+ltrim(str(i)+” : “ get marray[i]
Read
Next
For i:=1 to 5
@10+I,10 say “Angka Ke “+ltrim(str(i)+” : “ +trans(marray[n],”999”)
Next
Retun
Gambar 11.9 Contoh Data Array
1. Mendefinisikan atau Mendeklarasikan Data Array
Perintah DECLARE <variable> <jumlah elemen>
Gambar 11.10 Bentuk Perintah DECALARE
Contoh :
DECLARE nilai[10]
DECLARE nama[10]
Gambar 11.11 Contoh Penulisan Perintah DECALARE
Pernyataan kelas variable :
PRIVATE
PUBLIC
LOCAL
STATIC
Pemrograman Basis Data dengan Clipper 5.3 cxli
STMIK Duta Bangsa Surakarta

2. Fungsi-Fungsi Manipulasi Array


a. Aadd()
Berfungsi untuk menambah elemen data array.
Aadd (<variabel array>,<elemen>)
Gambar 11.12 Bentuk Penulisan Fungsi Aadd()
Contoh 1 :
Local i, isi
i=0
isi={}
clear
DO WHILE .T.
i ++
Aadd(isi,space(20))
@10,10 say “masukkan Data Array Ke – “ +Trans(n,”99”)+” : “ get isi[i]
Read
@24,1 say “Tekan ESC untuk selesai ….!”
Inkey(0)
If lastkey()==27
Exit
Endif
Enddo
Clear

@5,0
?”Data Array yang dimasukkan : “
?”--------------------------------------”
For i:=1 to len(isi) -1
?”Data ke – “ +trans(i,”99”)+” : “+isi[i]
Next
?”--------------------------------------“

Contoh 2 :
Local i, isi
i=0
isi={}

Pemrograman Basis Data dengan Clipper 5.3 cxlii


STMIK Duta Bangsa Surakarta
clear
DO WHILE .T.
i ++
Aadd(isi,{space(5),space(20),space(10),0})
@10,10 say “Masukkan Kode Barang : “ get isi[i,1]
@11,10 say “Masukkan Nama Barang : “ get isi[i,2]
@12,10 say “Masukkan Merk Barang : “ get isi[i,3]
@13,10 say “Masukkan Harga Barang : “ get isi[i,4] picture “99,999,999”
Read
@24,1 say “Tekan ESC untuk selesai ….!”
Inkey(0)
If lastkey()==27
Exit
Endif
Enddo
Clear
@5,0
?”---------------------------------------Cetak Data Barang----------------------------------- “
?”--------------------------------------------------------------------------------------------------”
?”No. Kode Nama Barang Merk Harga “
?” Barang”
?”------------------------------------------------------------------------------------------------- “
For i:=1 to len(isi) -1
? trans(i,”99”)+” : “+isi[i,1]+” ”+isi[i,2]+” ”+isi[i,3]+” ”+tran(isi[i,4],”99,999,999”)
Next
?”-------------------------------------------------------------------------------------------------“

Gambar 11.13 Contoh Penulisan Fungsi Aadd()

b. ADel()
Berfungsi untuk menghapus suatu nilai elemen data array dan akan
menggeser nilai-nilai elemen selanjutnya mulai posisi elemen yang
hapus.
Adel(<variabel array>,<nomor elemen>)
Gambar 11.14 Bentuk Penulisan Fungsi ADel()

Contoh :
Local nilai

Pemrograman Basis Data dengan Clipper 5.3 cxliii


STMIK Duta Bangsa Surakarta
Clear
Nilai:={10,20,30,40,50}
?len(nilai)
Adel(nilai,2)
?len(nilai)
?nilai[1]
?nilai[2]
?nilai[3]
?nilai[4]
?nilai[5]
Gambar 11.15 Contoh Penulisan Fungsi ADel()
c. Asize()
Berfungsi untuk mengubah jumlah data array, untuk menghilangkan
nilai data terakhir atau NIL.
Adel(<variabel array>,<jumlah elemen>)
Gambar 11.16 Bentuk Penulisan Fungsi Asize()

Contoh :
Local nilai
Clear
Nilai:={10,20,30,40,50}
?len(nilai)
Adel(nilai,2)
?len(nilai)
Asize(nilai,len(nilai)-1)
?len(nilai)
Gambar 11.17 Contoh Penulisan Fungsi Asize()

d. ADELARRAY()
#define ADELARRAY(ar,pos)
Adel(ar,pos);Asize(ar,len(ar)-1)

Pemrograman Basis Data dengan Clipper 5.3 cxliv


STMIK Duta Bangsa Surakarta
Gambar 11.18 Bentuk Penulisan Fungsi ADELARRAY()

Contoh :
#define ADELARRAY(ar,pos) Adel(ar,pos);ASize(ar,len(ar)-1)
clear
Local nilai:={10,20,30,40}
ADELARRAY(nilai,2)
?len(nilai)
Gambar 11.19 Contoh Penulisan Fungsi ADELARRAY()

e. AIns()
Berfungsi untuk menyisipkan elemen kosong ke dalam data array,
diposisi elemen tertentu.
AIns(<variable array>,<posisi elemen>)
Gambar 11.20 Bentuk Penulisan Fungsi AIns()

Contoh :
Local nilai
Clear
Nilai:={10,20,30,40}
?len(nilai)
AIns(nilai,2)
?len(nilai)
?len(nilai)
Asize(nilai,len(nilai)+1)
?len(nilai)
Ains(nilai,2)
?len(nilai)
Gambar 11.21 Contoh Penulisan Fungsi AIns()

f. AINSARRAY()

Pemrograman Basis Data dengan Clipper 5.3 cxlv


STMIK Duta Bangsa Surakarta
#define AINSARRAY(ar,pos) Asize(ar,len(ar)+1);Ains(ar,pos)
Gambar 11.22 Bentuk Penulisan Fungsi AINSARRAY()

Contoh :
#define ADELARRAY(ar,pos) ASize(ar,len(ar)+1);AINS(ar,pos)
clear
Local nilai
Nilai:={10,20,30,40}
AINSARRAY(nilai,2)
?len(nilai)
Gambar 11.23 Contoh Penulisan Fungsi AINSARRAY()

g. AFill()
AFill(<variable array>,<nilai><posisi awal>,<njumlah>)
Gambar 11.24 Bentuk Penulisan Fungsi AFill()
Contoh :
Clear
Local nilai, nama
Nilai:={10,20,30,40}
Nama:={“Ani”,”Hendi”,”Rudi”}
Nilai[1]:=0
Nilai[2]:=0
Nilai[3]:=0
Afill(nama,space(20),1,3)
Gambar 11.25 Contoh Penulisan Fungsi AFill()
h. Array()
Untuk menciptakan suatu data array secara dinamis.
ARRAY(<elemen1>,[<elemen2>....])
Gambar 11.26 bentuk Penulisan Fungsi Array()

i. Acopy()
Berfungsi untuk menyalin isi suatu data array ke data array lain.
Acopy(<asal>,<tujuan>,<nawalasal>,<njumlah>,<nawaltujuan>])

Pemrograman Basis Data dengan Clipper 5.3 cxlvi


STMIK Duta Bangsa Surakarta
Gambar 11.27 Bentuk Penulisan Fungsi Acopy()

Contoh :
clear
local asal, tujuan1[5],tujuan2[2]
asal:={10,20,30,40,50}
ACopy(asal,tujuan1)
ACopy(asal,tujuan2,3,2,1)
Gambar 11.28 Contoh Penulisan Fungsi Acopy()
j. AClone()
Berfungsi untuk menerima argument yang akan digandakan dan
mengembalikan array salin.
Aclone(<asal>)
Gambar 11.29 Bentuk Penulisan Fungsi AClone()

Contoh :
Clear
Local asal,tujuan
Asal:={10,20,30,40,50}
Tujuan:={}
Tujuan:=AClone(asal)
Gambar 11.30 Contoh Penulisan Fungsi AClone()

k. AScan()
Berfungsi untuk mencari suatu nilai yang ditentukn ke dalam elemen
array, dan akan mengembalikan nilai balik posisi elemen dimana
pencarian berhasil ditemukan.
AScan(<array>,<kunci>,<awal>,<jumlah>)
Gambar 11.31 Contoh Penulisan Fungsi AScan()

Contoh :

Pemrograman Basis Data dengan Clipper 5.3 cxlvii


STMIK Duta Bangsa Surakarta
Clear
Local nama,nilai
Nama:={“Andi”,”Ani”,”Ali”,”Heri”}
Nilai:={10,20,30,40,50}
Set exact off
Ascan(nama,”Ani”)
AScan(nilai,30)
Gambar 11.32 Contoh Penulisan Fungsi AScan()

l. Asort()
Berfungsi untuk mengurutkan elemen data array, sehingga akan
tersusun elemen data array baru yang sudah urut.
ASort(<array>,<awal>,<njumlah>,<blok kode>)
Gambar 11.33 Bentuk Penulisan Fungsi ASort()

Contoh :
Clear
Local niali, nama
Nilai:={10,20,30,40,50}
Nama:={“Ani”,”Andi”,”Ali”,”Rudi”,”Rina”}
Asort(nilai)
Asort(nilai,2,3)
Asort(nama)
Asort(nama,,,{|c1,c2|upper(c1)<upper(c2)})
Gambar 11.34 Contoh Penulisan Fungsi ASort()

m. AEval()
Berfungsi untuk mengevaluasi data array dengan proses sesuai dengan
yang kita berikan.
Aeval(<array>,<blok kode>,<nawal>,<nakhir>)
Gambar 11.35 Bentuk Penulisan Fungsi AEval()

Contoh :
Clear

Pemrograman Basis Data dengan Clipper 5.3 cxlviii


STMIK Duta Bangsa Surakarta
Local nilai,jumlah,besar,kecil
Nilai:={10,20,30,40,50}
Jumlah:=0
Besar:=0
Kecil:=0
Jumlah:=ASum(nilai)
Besar:=Amax(nilai)
Kecil:=Amin(nilai)
?jumlah,besar,kecil
Gambar 11.36 Contoh Penulisan Fungsi AEval()

C. Blok Kode
Adalah merupakan suatu tpe atau seperti tiap-tiap yang lain.
{|<daftar argument>|<daftar ekspresi>}
Eval(<blik kode>,<daftar parameter>)

Gambar 11.37 Bentuk Penulisan Blok Kode

Latihan :
1. Jalankan dari promt dos program SK.com, kemuidan ketik perintah
berikut:
clear:
set color to ”W*/b”
@5,5 clear to 10,40
@7,20 say “belajar clipper”

Pemrograman Basis Data dengan Clipper 5.3 cxlix


STMIK Duta Bangsa Surakarta
Retu
- Simpan program tersebut dengan nama file yang berextentioan .prg
- Compail
- link
2. Berapakah hasil dari expresi berikut?
a. 215/3
b. 3^2*6-2
c. 60/(612)
3. Apakah hasilnya:
a. 7>2 .and. 2<1
b. .not. 2 >1 .and. 4<2
c. G>5 .or. 2<10
4. Buatlah prosedure untuk mengalikan dua buah bilangan
5. Buatlah fungsi untuk menjumlahkan dua buah bilangan

BAB XII
PROGRAM MENU PENGENDALI
Tujuan Instruksional Umum :
Mahasiswa mampu mengolah data dengan menu pengendali.

Tujuan Instruksional Khusus :


1. Mahasiswa dapat membuat program menu pull-down.
2. Mahasiswa dapat memanggil function dan procedure dari menu pull-down.
3. Mahasiswa dapat menghubungkan atau memanggil file program lainnya dari menu pull-down.

Pemrograman Basis Data dengan Clipper 5.3 cl


STMIK Duta Bangsa Surakarta
Menu Pull-Down

Gambar 12.1 Contoh Menu Pull-Down


Listing Program tampilan menu pull-down di atas adalah :
#INCLUDE "INKEY.CH"
#INCLUDE "SETCURS.CH"
#INCLUDE "BOX.CH"

set wrap on
set mess to 24
do while .t.
set colo to g+/w
@0,0 clea to 0,79
@24,0 clea to 24,79
set colo to b+/w
frame := repl (chr(176),9)
@1,0,23,79 box frame
@0,5 prompt "File" mess "Proses Entry Data"
@0,20 prompt "Informasi" mess "Proses Cetak Informasi"
@0,40 prompt "Utility" mess "Proses Bantuan"
menu to pilih
do case
case pilih = 1
menu1()
case pilih = 2
menu2()
case pilih = 3
menu3()
endcase
end do

func menu1()
local msscreen, mcolor
save screen to msscreen
mcolor := setcolor()
do while .t.

Pemrograman Basis Data dengan Clipper 5.3 cli


STMIK Duta Bangsa Surakarta
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,5 clea to 5,24
@1,5 to 5,24
@2,6 prompt "Tabel Klasifikasi"
@3,6 prompt "Tabel Ruang "
@4,6 prompt "Tabel Barang "
menu to P1
set key 4 to
set key 19 to
do case
case P1 = 0
exit
CASE P1=1
//BUATFILE1()
//ISI()
rest screen from msscreen
CASE P1=2
//BUATFILE2()
//ISI2()
rest screen from msscreen
CASE P1=3
//BUATFILE4()
//ISI4()
rest screen from msscreen

endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return

func menu2()
local msscreen, mcolor
save screen to msscreen
mcolor:=setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,20 clea to 5,41
@1,20 to 5,41
@2,21 prompt "Daftar Klasifikasi"
@3,21 prompt "Daftar Ruang"
@4,21 prompt "Daftar Barang"
menu to P1
set key 4 to
set key 19 to
do case
case P1 = 0
exit
case p1=3
//menu23()
rest screen from msscreen
endcase
enddo

Pemrograman Basis Data dengan Clipper 5.3 clii


STMIK Duta Bangsa Surakarta
rest screen from msscreen
setcolor(mcolor)
return

func menu23()
local msscreen, mcolor
save screen to msscreen
mcolor:=setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@4,30 clea to 8,47
@4,30 to 8,47
@5,31 prompt "Keseluruhan "
@6,31 prompt "Per Klasifikasi"
@7,31 prompt "Per Ruang "
menu to P1
set key 4 to
set key 19 to
do case
case P1 = 0
exit
endcase
enddo
rest screen from msscreen
setcolor(mcolor)
return

func menu3()
local msscreen, mcolor
save screen to msscreen
mcolor := setcolor()
do while .t.
set key 4 to rkey
set key 19 to lkey
set colo to w+/b
@1,40 clea to 7,52
@1,40 to 7,52
@2,41 prompt "Backup"
@3,41 prompt "Restore"
@4,41 prompt "Index"
@5,41 prompt "Help"
@6,41 prompt "Selesai"
menu to P1
set key 4 to
set key 19 to
do case
case P1 = 0
exit
case P1 = 3
//Lyt_Rest()
//REIN()
case p1=5
quit
endcase
enddo

Pemrograman Basis Data dengan Clipper 5.3 cliii


STMIK Duta Bangsa Surakarta
rest screen from msscreen
setcolor(mcolor)
return

funct rkey()
keyboard chr(27) + chr(4) + chr(13)
retu

funct lkey()
keyboard chr(27) + chr(19) + chr(13)
retu

func kursor(t,k)
do case
case k=K_UP
t:up()
case k=K_DOWN
t:down()
case k=K_LEFT
t:left()
case k=K_RIGHT
t:right()
case k=K_PGUP
t:pageup()
case k=K_PGDN
t:pagedown()
case k=K_HOME
t:gotop()
case k=K_END
t:gobottom()
otherwise
return .f.
endcase
return .t.

Gambar 12.2 Listing Program Contoh Menu Pull-Down

BAB XIII
FUNGSI-FUNGSI STRING

Tujuan Instruksional Umum :


Mahasiswa dapat memahami penggunaan fungsi-fungsi string dalam clipper compiler.

Pemrograman Basis Data dengan Clipper 5.3 cliv


STMIK Duta Bangsa Surakarta

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui operasi fungsi string, fungsi-fungsi string dan dapat menerapkan ke
dalam program clipper compiler.
2. Mahasiswa mengetahui dan dapat menggunakan fungsi pengembalian data string.
3. Mahasiswa mengetahui dan dapat menerapkan fungsi manipulasi spasi.
4. Mahasiswa mengetahui dan dapat menerapkan fungsi manipulasi data string.

A. Operasi String
Adalah operasi yang dituliskan berupa ekspresi yang bekerja terhadap data
string.
Operator-operator yang digunakan :
Tabel 13.1 Operator String
Operator Fungsi
+ Menggabungkan dua buah data string
Menggabungkan dua buah data string dengan
-
menghilangkan spasi
= Apakah kedua data string sama
== Apakah kedua data string benar-benar sama
<> != # Apakah kedua data string tidak sama
> Apakah data string 1 lebih besar dari data string 2
< Apakah data string 1 lebih kecil dari data string 2
Apakah data string 1 lebih besar atau sama dengan
>=
data string 2
Apakah data string 1 lebih kecil atau sama dengan
<=
data string 2
$ Data string 1 merupakan himpunan dari data string 2

B. Fungsi_fungsi String
1. Fungsi Pengujian.
Digunakan untuk memeriksa kondisi suatau data string.
a. Empty()
Digunakan untuk memeriksa apakah data string merupakan data
kosong atau hanya berisi karakter saja.
EMPTY(<data string>)
Gambar 13.1 Bentuk Penulisan Fungsi Empty()
Contoh :
Clear

Pemrograman Basis Data dengan Clipper 5.3 clv


STMIK Duta Bangsa Surakarta
Local kd_brg
Kd_brg=space(5)
Do While.T.
@10,10 say “Kode Barang : “ get kd_brg Picture”@!”
Read
If Empty(kd_brg)
Alert(“Maaf Kode Barang tidak Boleh Kosong …”)
loop
Else
Exit
Endif
Enddo
Gambar 13.2 Contoh Penulisan Fungsi Empty()

b. IsAlpha()
Digunakan untuk memeriksa karakter pertama dari data string apakah
merupakan karakter alpabetik.
IsAlpha(<data string>)
Gambar 13.3 Bentuk Penulisan Fungsi IsAlpha()

Contoh :
Clear
Local kd_brg
Kd_brg=space(5)
Do While.T.
@10,10 say “Kode Barang : “ get kd_brg Picture”@!”
Read
If IsAlpha(kd_brg)
Alert(“Huruf awal alphabetik …”)
exit
Else

Pemrograman Basis Data dengan Clipper 5.3 clvi


STMIK Duta Bangsa Surakarta
Alert(“Huruf awal bukan alphabetik …”)
loop
Endif
Enddo
Gambar 13.4 Contoh Penulisan Fungsi IsAlpha()
c. IsDigit()
Digunakan untuk memeriksa karakter pertama dari data string apakah
merupakan karakter angka.
IsDigit(<data string>)
Gambar 13.5 Bentuk Penulisan Fungsi IsDigit()

Contoh :
Clear
Local kd_brg
Kd_brg=space(5)
Do While.T.
@10,10 say “Kode Barang : “ get kd_brg Picture”@!”
Read
If IsDigit(kd_brg)
Alert(“Huruf awal Karakter Angka …”)
exit
Else
Alert(“Huruf awal bukan Karakter Angka …”)
loop
Endif
Enddo
Gambar 13.6 Contoh Penulisan Fungsi IsDigit()
d. IsLower()
Digunakan untuk memeriksa karakter pertama dari data string apakah
merupakan karakter huruf kecil.
IsLower(<data string>)

Pemrograman Basis Data dengan Clipper 5.3 clvii


STMIK Duta Bangsa Surakarta
Gambar 13.7 Contoh Penulisan Fungsi IsLower()

Contoh :
Clear
Local kd_brg
Kd_brg=space(5)
Do While.T.
@10,10 say “Kode Barang : “ get kd_brg Picture”@!”
Read
If IsLower(kd_brg)
Alert(“Huruf awal adalah Huruf Kecil …”)
exit
Else
Alert(“Huruf awal bukan Huruf Kecil …”)
loop
Endif
Enddo
Gambar 13.8 Contoh Penulisan Fungsi IsLower()
e. IsUpper()
Digunakan untuk memeriksa karakter pertama dari data string apakah
merupakan karakter huruf besar.
IsUpper(<data string>)
Gambar 13.9 Bentuk Penulisan Fungsi IsUpper()

Contoh :
Clear
Local kd_brg
Kd_brg=space(5)
Do While.T.
@10,10 say “Kode Barang : “ get kd_brg Picture”@!”
Read

Pemrograman Basis Data dengan Clipper 5.3 clviii


STMIK Duta Bangsa Surakarta
If IsUpper(kd_brg)
Alert(“Huruf awal adalah Huruf Besar …”)
exit
Else
Alert(“Huruf awal bukan Huruf Besar …”)
loop
Endif
Enddo
Gambar 13.10 Contoh Penulisan Fungsi IsUpper()
2. Fungsi Pengambilan Data String
Digunakan untuk mengembalikan informasi mengenai data string.
a. At()
Digunakan untuk menentukan posisi sebuah karakter string dalam
suatu data string, dimulai karakter pertama.
At(<sub string>,<data string>)
Gambar 13.11 BentukPenulisan Fungsi At()

Contoh :
Clear
Local pilih
Pilih=space(1)
Do While.T.
@10,10 say “Tambah Data Lagi [Y/T] : “ get pilih pict”!”
Read
If At(pilih,”YT”)=0
Alert(“Tombol yang anda tekan salah …!”)
Inkey(0)
Loop
Else
Exit
endif
enddo

Gambar 13.12 Contoh Penulisan Fungsi At()

b. Rat()
Pemrograman Basis Data dengan Clipper 5.3 clix
STMIK Duta Bangsa Surakarta
Digunakan untuk menentukan posisi sebuah karakter string dalam data
string dimulai dari sebelah kanan.
Rat(<sub string>,<data string>)
Gambar 13.13 Contoh Penulisan Fungsi Rat()

Contoh :
Clear
Local data,hasil
@10,10 say “Masukkan Data String : “ get data pict”@!”
Read
Hasil=Rat(“A”,data)
@12,10 say “Karakter A ada di karakter ke : “ +trans(hasil,”99”)
Gambar 13.14 Contoh Penulisan Fungsi Rat()
c. Len()
Digunakan untuk menghitung panjang data string atau mengetahui
jumlah karakter termasuk spasi.
Len(<data string>)
Gambar 13.15 Contoh Penulisan Fungsi Len()

Contoh :
Local data,hasil
clear
@10,10 say “Masukkan Data String : “ get data pict”@!”
Read
Hasil=Len(data)
@12,10 say “Panjang Data adalah : “ +trans(hasil,”99”)

Gambar 13.16 Contoh Penulisan Fungsi Len()

3. Fungsi Manipulasi Spasi

Pemrograman Basis Data dengan Clipper 5.3 clx


STMIK Duta Bangsa Surakarta
Digunakan untuk memanipulasi data string khususnya karakter spasi.
a. AllTrim()
Digunakan untuk menghilangkan spasi di depan dan belakang dari
suatu data string.
Alltrim(<data string>)
Gambar 13.17 Contoh Penulisan Fungsi Alltrim()
Contoh :
Local data,hasil
clear
@10,10 say “Masukkan Data String : “ get data pict”@!”
Read
Hasil=Len(Alltrim(data))
@12,10 say “Panjang Data adalah : “ +trans(hasil,”99”)
Gambar 13.18 Contoh Penulisan Fungsi Alltrim()
b. LTrim()
Digunakan untuk menghilangkan karakter spasi dari data string yang
berada di depan.
LTrim(<data string>)
Gambar 13.19 Contoh Penulisan Fungsi LTrim()
Contoh :
clear
? Ltrim(” didik nugroho”) // ”didik nugroho”
Gambar 13.20 Contoh Penulisan Fungsi LTrim()
c. RTrim() atau Trim()
Digunakan untuk menghilangkan karakter spasi dari data string yang
berada di belakang.
Trim(<data string>) atau RTrim(<data string>)
Gambar 13.21 Contoh Penulisan Fungsi RTrim() atau Trim()

Contoh :
Pemrograman Basis Data dengan Clipper 5.3 clxi
STMIK Duta Bangsa Surakarta
clear
? Trim(”Didik Nugroho ”) // ”Didik Nugroho”
Gambar 13.22 Contoh Penulisan Fungsi RTrim() atau Trim()
d. PadC()
Digunakan untuk mengganjal suatu data string dengan karakter spasi
di depan dan di belakang, sehingga akan menghasilkan data string
yang terletak di tengah diantara karakter spasi.
PadC(<data string>)
Gambar 13.23 Bentuk Penulisan Fungsi PadC()
Contoh :
clear
? PadC(”Didik Nugroho”) // ” Didik Nugroho ”
Gambar 13.24 Contoh Penulisan Fungsi PadC()
e. PadL()
Digunakan untuk data string dengan karakter spasi di depan atau
sebelah kiri dari data string.
PadL(<data string>)
Contoh :
clear
? PadL(”Didik Nugroho”) // ” Didik Nugroho”
Gambar 13.25 Bentuk Penulisan Fungsi Padl()
f. PadR()
Digunakan untuk data string dengan karakter spasi di belakang atau
sebelah kanan dari data string.
PadR(<data string>)
Gambar 13.26 Bentuk Penulisan Fungsi PadR()
Contoh :
clear
? PadR(”Didik Nugroho”) // ”Didik Nugroho ”
Gambar 13.27 Contoh Penulisan Fungsi PadR()

Pemrograman Basis Data dengan Clipper 5.3 clxii


STMIK Duta Bangsa Surakarta
4. Fungsi Edit dan Manipulasi Data String
a. Left()
Mengambil sejumlah n karakter dari sebelah kiri.
Left(<data string>,<njumlah>)
Gambar 13.28 Bentuk Penulisan Fungsi Left()
Contoh :
clear
? Left(”Didik Nugroho”,5) // Didik
Gambar 13.29 Contoh Penulisan Fungsi Left()
b. Right()
Mengambil sejumlah n karakter dari sebelah kanan.
Right(<data string>,<njumlah>)
Gambar 13.30 Bentuk Penulisan Fungsi Right()
Contoh :
clear
? Right(”Didik Nugroho”,5) // Didik
Gambar 13.31 Contoh Penulisan Fungsi Right()
c. SubStr()
Digunakan untuk mengambil potongan karakter string dari suatu data
string, mulai posisi tertentu, sebanyak <njumlah> karakter sesuai yang
ditentukan.
SubStr(<data string>,<nposisi>,<njumlah>)
Gambar 13.32 Bentuk Penulisan Fungsi SubStr()
Contoh:
clear
? Substr(“Didik Nugroho”,3,5) // ”dik N”
Gambar 13.33 Contoh Penulisan Fungsi SubStr()
d. Upper()
Berguna untuk mengubah semua karakter alphabetic menjadi huruf
besar atau capital.

Pemrograman Basis Data dengan Clipper 5.3 clxiii


STMIK Duta Bangsa Surakarta

Upper(<data string>)
Gambar 13.34 Bentuk Penulisan Fungsi Upper()
Contoh :
clear
? Upper(”didik”) // ”DIDIK”
Gambar 13.35 Contoh Penulisan Fungsi Upper()
e. Lower()
Digunakan utnuk mengubah semua karakter alphabetik menjadi huruf
kecil.
Lower(<data string>)
Gambar 13.36 Contoh Penulisan Fungsi Lower()
Contoh :
? lower (”Didik Nugroho”) // didik nugroho
Gambar 13.37 Contoh Penulisan Fungsi Lower()
f. Stuff()
Berguna untuk menyisipkan atau menghapus satu atau lebih karakter
di posisi tertentu dari suatu data string.
Stuff(<expn1>,<expn2>,<expc2>)
Gambar 13.38 Bentuk Penulisan Fungsi Stuff()
Mengubah beberapa karakter expc1, sejumlah expc2, mulaiexpn1
dengan karakter pengganti expc2.
Contoh :
Nama=”Didik Nugroho”
? Stuff(nama,2,1,”0”) // “Dodik Nugroho”
Gambar 13.39 Contoh Penulisan Fungsi Stuff()
g. Operator untuk data string
Contoh :
? “didik”+” nugroho” // “didik nugroho”
? “didik”+”nugroho” //”didiknugroho”

Pemrograman Basis Data dengan Clipper 5.3 clxiv


STMIK Duta Bangsa Surakarta
Gambar 13.40 Contoh Operator Data String

h. Str()
Mengubah expresi/data numerik menjadi data string.
str(<expc>)
Gambar 13.41 Bentuk Penulisan Fungsi Str()
Contoh :
? str(5) // “5”
Gambar 13.42 Contoh Penulisan Fungsi Str()
i. Val()
Mengubah data tipe string yang berupa angka menjadi data numerik
Val(<expc>)
Gambar 13.43 Bentuk Penulisan Fungsi Val()
Contoh
? val(”55”) //55
Gambar 13.44 Contoh Penulisan Fungsi Val()

Pemrograman Basis Data dengan Clipper 5.3 clxv


STMIK Duta Bangsa Surakarta

BAB XIV
FUNGSI MATEMATIK

Tujuan Instruksional Umum :


Mahasiswa dapat memahami dan menerapkan fungsi matematik dalam clipper compiler.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui operasi matematik dan cara penerapannya ke dalam program.
2. Mahasiswa mengetahui dan dapat menerapkan perintah Set Decimal dan Set Fixed.
3. Mahasiswa mengetahui fungsi-fungsi matematika dan dapat menerapkan ke dalam program.

A. Operasi Matematik
Tabel 14.1 Operator Matematik
Operator Guna
++ Penaikan suatu nilai numerik secara otomatis
-- Penurunan suatu niali numerik secara otomatis
+ Menjumlahkan dua buah nilai numerik
- Mengurangkan dua buah nilai numerik
** / ^ Perpangkatan
* Perkalian dua buah nilai numerik
/ Pembagian dua buah nilai numerik
% Penentuan nilai sisa bagi (Modulus)
:= Pemuatan niali

Contoh :
Local nilai1,nilai2,nilai3,jml
Clear
Nilai1=10
Nilai2=20
Nilai3=30
Jml=nilai1+nilai2+nilai3
?trans(jml,”99999”)
Gambar 14.1 Contoh Penulisan Operator Matematik

B. Perintah SET DECIMALS dan SET FIXED


SET DECIMALS TO digunakan untuk menentukan jumlah digit decimal
yang harus ditampilkan oleh program clipper.

Pemrograman Basis Data dengan Clipper 5.3 clxvi


STMIK Duta Bangsa Surakarta
Perintah SET FIXED ON/OFF digunakan untuk mengaktifkan (ON) bahwa
penentuan jumlah digit decimal dengan perintah SET DECIMALS TO
berlaku, dan menonaktifkan (OFF).
C. Fungsi-Fungsi Matematika
1. Abs()
Berguna untuk mengembalikan nilai numerik menjadi nilai mutlak. Yang
dimaksudkan dengan nilai mutlak di sini adalah nilai tanpa adanya tanda
negative atau positif.
Abs(<data numeric>)
Gambar 14.2 Bentuk Penulisan Fungsi Abs()
Contoh :
Local nilai1,nilai2
Clear
Nilai1=100
Nilai2=-100
?Abs(nilai1)
?Abs(nilai2)
Gambar 14.3 Contoh Penulisan Fungsi Abs()
2. Int()
Berguna untuk mengembalikan nilai numerik menjadi nilai integer
(bilangan bulat) dari suatu nilai data numerik. Nilai integer adalah nilai
yang dihilangkan fraksi atau nilai pecahan atau desimalnya (berbeda
dengan proses pembulatan).
Int(<data numerik>)
Gambar 14.4 Bentuk Penulisan Fungsi Int()
Contoh :
Local nilai1,nilai2
Clear
Nilai1=100.50
Nilai2=100.77
?Int(nilai1)

Pemrograman Basis Data dengan Clipper 5.3 clxvii


STMIK Duta Bangsa Surakarta
?Int(nilai2)
Gambar 14.5 Contoh Penulisan Fungsi Int()

3. Max()
Berguna untuk membandingkan dua buah nilai data numerik data
mengembalikan nilai terbesar di antara keduanya.
Max(<data numerik1>,<data numerik2>)
Gambar 14.6 Bentuk Penulisan Fungsi Max()
Contoh :
local nilai1,nilai2,tinggi
clear
niali1=100
nilai2=200
tinggi=Max(nilai1,nilai2)
?tinggi
Gambar 14.7 Contoh Penulisan Fungsi Max()
4. Min()
Berguna untuk membandingkan dua buah nilai data numerik dan
mengembalikan nilai terkecil di antara keduannya.
Min(<data numerik1>,<data numerik>)
Gambar 14.8 Contoh Penulisan Fungsi Min()
Contoh :
local nilai1,nilai2,rendah
clear
nilai1=100
nilai2=150
rendah=Min(nilai1,nilai2)
?rendah
Gambar 14.9 Contoh Penulisan Fungsi Min()
5. Round()
Beguna untuk mengembalikan nilai pembulatan ke atas, jika nilai yang
dibulatan lebih dari atau sama dengan 5.
Round(<data numerik>,<desimal>)
Contoh :
Local nilai
Nilai=12345.568745
Clear
Pemrograman Basis Data dengan Clipper 5.3 clxviii
STMIK Duta Bangsa Surakarta
?Round(nilai,4)
?Round(nilai,3)
?Round(nilai,2)
Gambar 14.10 Bentuk Penulisan Fungsi Round()

6. Sqrt()
Berguna untuk mengembalikan nilai akar dari suatu data numeric.
Sqrt(<data numeric>)
Gambar 14.11 Bentuk Penulisan Fungsi Sqrt()
Contoh :
Local nilai
Nilai=100
Clear
?sqrt(nilai)
?sqrt(10^2)
?sqrt(2)
Gambar 14.12 Contoh Penulisan Fungsi Sqrt()

Pemrograman Basis Data dengan Clipper 5.3 clxix


STMIK Duta Bangsa Surakarta

BAB XV
FUNGSI TANGGAL DAN WAKTU
Tujuan Instruksional Umum :
Mahasiswa mampu menerapkan fungsi tanggal dan waktu dalam program clipper compiler 5.3.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui operasi tanggal, variabel tanggal dan cara penerapannya dalam
program.
2. Mahasiswa mengerti format tanggal, fungsi-fungsi tanggal, fungsi-fungsi waktu dan dapat
menerapkannya dalam program.

A. Operasi Tanggal
Adalah operasi yang dituliskan berupa ekspresi yang bekerja terhadap data
jenis tanggal.
Operator yang digunakan :
Tabel 15.1 Operator Operasi Tanggal
Operator Guna
+ Menaikkan tanggal sebanyak n hari sesuai yang ditentukan
Mengurutkan tanggal sebanyak n hari sesuai yang
-
ditentukan
Contoh :
Local tanggal
Clear
Tanggal=date()
?tanggal+1
?tanggal-3
Tanggal++
?tanggal
?++tanggal
Gambar 15.1 Contoh Operasi Tanggal
B. Mendefinisikan Variabel Tanggal
Fungsi tanggal Data(), cara mendefinisikannya dengan fungsi Ctod().
Pemrograman Basis Data dengan Clipper 5.3 clxx
STMIK Duta Bangsa Surakarta
Contoh :
Local tanggal1,tanggal2
Clear
Tanggal1=date()
Tanggal2=”02/03/09”
Tanggal1=ctod(tanggal2)
Gambar 15.2 Contoh Mendefinisikan Variabel Tanggal
C. Format Tanggal
Dalam program clipper format tanggal defaultnya adalah :
Mm/dd/yy [bulan/tanggal/tahun]
Gambar 15.3 Bentuk Penulisan Format Tanggal
Selain format di atas kita juga dapat menentukan format tanggal sendiri
dengan perintah SET DATE atau SETDATE FORMAT TO.
SET DATE <format>
Atau
SET DATE FORMAT TO <format>
Gambar 15.4 Bentuk Penulisan Format Tanggal
Format tanggal yang dapat digunakan :
Tabel 15.2 Format Tanggal
Format Bentuk keluaran
American Mm/dd/yy
Ansi yy.mm.dd
British Dd/mm/yy
French Dd/mm/yy
German dd.mm.yy
Italian dd-mm-yy
Japanese Yy/mm/dd
Usa mm-dd-yy

Contoh :
Local tanggal
Clear
Tanggal=date()
SET DATE BRITISH
?tanggal

Pemrograman Basis Data dengan Clipper 5.3 clxxi


STMIK Duta Bangsa Surakarta
SET DATE ANSI
?tanggal
Gambar 15.5 Contoh Penulisan Format Tanggal
Dalam keadaan default angka tahun yang ditampilkan adalah dua angka
belakang atau tanpa angka abad, perintah yang digunakan :
SET CENTURY ON/OFF
Contoh :
Local tanggal
Tanggal=date()
Clear
Set date british
Set century off
?tanggal
Set Century ON
?tanggal
Gambar 15.6 Contoh Penulisan Format Tanggal dengan Set Century

D. Fungsi-Fungsi Tanggal
1. Date()
Berfungsi untuk menentukan dan mengembalikan nilai balik data tanggal
dari system computer yang ada.
Date()
Gambar 15.7 Bentuk Penulisan Fungsi Date()
Contoh :
Local tanggal
Tanggal=date()
?tanggal
?date()
Gambar 15.8 Contoh Penulisan Fungsi Date()
2. Cdow()
Mengubah tanggal menjadi nama hari.

Pemrograman Basis Data dengan Clipper 5.3 clxxii


STMIK Duta Bangsa Surakarta
Cdow(<data tanggal>)
Gambar 15.9 Bentuk Penulisan Fungsi CDow()
Contoh
clear
? cdow(date()) // Tuesday
Gambar 15.10 Contoh Penulisan Fungsi CDow()
3. Cmoth()
Untuk menampilkan nama bulan dari sebuah tanggal.
Cmont(<data tanggal>)
Gambar 15.11 Bentuk Penulisan Fungsi CMonth()
Contoh :
? Cmonth(date()) // March
Gambar 15.12 Contoh Penulisan Fungsi CDow()
4. Dow()
Menampilkan hari keberapa dalam satu minggu.
Dow(<data tanggal>)
Gambar 15.13 Bentuk Penulisan Fungsi Dow()
Contoh :
clear
? dow(date()) // 2
Gambar 15.14 Contoh Penulisan Fungsi Dow()
5. Day()
Fungsi ini digunakan untuk mengambil data tanggal saja dari exprl
tanggal, bulan dan tahun.
Day(<data tanggal>)
Gambar 15.15 Contoh Penulisan Fungsi Day()
Contoh :
? day(date()) // 22
Gambar 15.16 Contoh Penulisan Fungsi Day()
6. Month(var day)

Pemrograman Basis Data dengan Clipper 5.3 clxxiii


STMIK Duta Bangsa Surakarta
Fungsi ini mengambil angnka bulan dari expresi tanggal.
Month(<data tanggal>)
Gambar 15.17 Bentuk Penulisan Fungsi Month()
Contoh
? month(date)) //3
Gambar 15.18 Contoh Penulisan Fungsi Month()

7. Year()
Fungsi ini untuk mengnambil angka tahun dari expresi tanggal yang
diberikan.
Year(<data tanggal>)
Gambar 15.19 Bentuk Penulisan Fungsi Year()
Contoh
? year(date)) //1998
Gambar 15.20 Contoh Penulisan Fungsi Year()
8. Dtoc()
Fungsi untuk mengubah exp tanggal menjadi data tipe character.
Dtoc(<data tanggal>)
Gambar 15.21 Bentuk Penulisan Fungsi Dtoc()
Contoh :
Local tanggal1,tanggal2
Clear
Tanggal1=date()
Tanggal2=dtoc(tanggal1)
?tanggal2
Gambar 15.22 Contoh Penulisan Fungsi Dtoc()
9. Ctod()
Fungsi ini digunakan untuk mengubah tipe charakter menjadi data bertipe
date.
Ctod(<data karakter>)

Pemrograman Basis Data dengan Clipper 5.3 clxxiv


STMIK Duta Bangsa Surakarta
Gambar 15.23 Contoh Penulisan Fungsi Ctod()
Contoh:
? ctod(”12/12/98”) // 12/12/98 berupa tanggal
Gambar 15.24 Contoh Penulisan Fungsi Ctod()
E. Fungsi-Fungsi Waktu
1. Time()
Fungsi ini akan menghasilkan data jam system dengan format
HH:MM”SS.
Time()
Contoh :
Clear
?Time()
Gambar 15.25 Contoh Penulisan Fungsi Time()
2. Second()
Fungsi ini akan menghasilkan data jam sistem dengan format detik
seperseratus detik yang dihitung mulai 24.00 (jam 12 malam).
Second()
Gambar 15.26 Bentuk Penulisan Fungsi Second()

Pemrograman Basis Data dengan Clipper 5.3 clxxv


STMIK Duta Bangsa Surakarta

BAB XVI
FILE TEKS DAN FIELD MEMO

Tujuan Instruksional Umum :


Mahasiswa dapat memahami penggunaan field Teks dan Field Memo.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui cara membaca dan menulis field memo dan dapat mempraktekkannya
ke dalam program.
2. Mahasiswa mengetahui cara membaca dan menulis file teks dan dapat mempraktekkannya ke
dalam program.

A. Membaca Field Memo dan Menulis ke Field Memo


Biasanya ada field dari suatu database yang bertype memo, field ini biasanya
untuk menampung data pesan yang panjang.
1. Membaca Data dari Field Memo
Untuk membaca field memo yang disimpan ke dalam variable memo dapat
dilakukan dengan :
 Menggunakan operator pemuat nilai
 Menggunakan fungsi FieldGet()
Contoh :
Use pasien
Local teks
Teks=bacamemo((pasien->catatan),60)
Retun
Gambar 16.1 Contoh Pembacaan Field Memo
2. Menulis Data ke dalam Field Memo

Pemrograman Basis Data dengan Clipper 5.3 clxxvi


STMIK Duta Bangsa Surakarta
Perintah yang dapat dipakai :
 Menggunakan operator pemuat nilai
 Menggunakan fungsi FieldPut()
Contoh 1 :
Use pasien
Dbeval({||catatan:=”Pasien pernah menderita diabetes”})
Retu
Contoh 2 :
Use pasien
Dbeval({||fieldPut(7,”Pasien pernah menderita diabetes”})
Retun
Gambar 16.2 Contoh Menulis Data Ke dalam Field Memo
B. Membaca File Teks dan Menulis ke File Teks
1. Memoread()
Digunakan untuk membaca file teks dan mengembalikan nilai balik data
teks dari teks dalam file yang dibaca.
MemoRead(“<file teks>”)
Gambar 16.3 Bentuk Penulisan Fungsi MemoRead()
Contoh :
Local mmemo
Mmemo:=memoread(“Confiq.SYS”)
Gambar 16.4 Contoh Penulisan Fungsi MemoRead()
2. MemoEdit()
Digunakan untuk menampilkan sekaligus mengedit teks dalam file teks
yang dibaca ke layer.
MemoEdit([<variable memo>],<atas>,<kiri>,<bawah>,<kanan>
,<edit>,<fungsi>,<panjang>,<tabulasi>,<baris teks>
,<kolom>,<baris jendela>,<kolom jendela>)
Gambar 16.5 Bentuk Penulisan Fungsi MemoEdit()
Contoh :
Local mmemo
Mmemo:=memoread(”Confiq.SYS”)
MemoEdit(mmemo,5,2,17,60,.T.)

Pemrograman Basis Data dengan Clipper 5.3 clxxvii


STMIK Duta Bangsa Surakarta
Gambar 16.6 Contoh Penulisan Fungsi MemoEdit()
3. MemoWrite()
Setelah kita membaca dan mengedit data teks dalam suatu file teks, kita
dapat menyimpan kembali ke dalam file.
MemoWrite(“<file teks>”,<variable memo>)
Gambar 16.7 Bentuk Penulisan Fungsi MemoWrite()
Contoh :
Local mmemo
Mmemo:=memoread(“Confiq.SYS”)
Memoedit(mmemo,5,2,17,60,.T.)
memoWrite(“Confiq.SYS”,mmemo)
Gambar 16.8 Contoh Penulisan Fungsi MemoWrite()
BAB XVII
FILE MEMORY

Tujuan Instruksional Umum :


Mahasiswa dapat memahami fungsi File Memory.

Tujuan Instruksional Khusus :


1. Mahasiswa mengetahui dan dapat mendefinisikan variabel memory.
2. Mahasiswa mengetahui perintah-perintah file memory.
3. Mahasiswa dapat mempraktekkan perintah-perintah file memory.

A. Variabel Memory
Variable memory dipakai sebagai data konfigurasi atau yang akan disimpan ke
dalam file memory harus variable yang berkelas PRIVATE atau PUBLIC,
jadi kita harus mendefinisikan dengan perintah PUBLIC atau PRIVATE dan
ditentukan atau dialokasikan sebagai data memory dengan perintah
MEMVAR.
Contoh :
#Include “INKEY.CH”
PUBLIC zTg_Proses,zPass,Drv,drive,mNO_BAR,mGOL,mNO_FAKTUR
Gambar 17.1 Deklarasi Variabel Memory
B. Perintah-Perintah File Memory
1. Menyimmpan Data ke dalam File Memory
Perintah yang digunakan :

Pemrograman Basis Data dengan Clipper 5.3 clxxviii


STMIK Duta Bangsa Surakarta
SAVE TO <file memory> ALL LIKE / EXCEPT <variable dengan
wild card>
Gambar 17.2 Bentuk Penulisan Perintah SAVE TO
Contoh :
//menyimpan semua variable memory yang aktif
SAVE TO mmemo1 ALL
//menyimpan semua variable memory yang berawalan karakter z
SAVE TO mmemo2 ALL LIKE Z*
//menyimpan semua variable memory kecuali yang berawalan Z
SAVE TO mmemo3 ALL EXCEPT Z*
Gambar 17.3 Contoh Penulisan Perintah SAVE TO
2. Menyimpan Data ke dalam File Memory
Untuk memanggil variable memory yang tersimpan dalam file memory
agar diaktifkan dalam memory perintah RESTORE FROM….
RESTORE FROM <file emory> ADDITIVE
Gambar 17.4 Bentuk Penulisan Perintah RESTORE FROM
Contoh :
//memanggil variable dari file memory tanpa option ADDITIVE
RESTORE FROM mmemo1
//memanggil variable dari file memory dengan option ADDTIVE
RESTORE FROM mmemo1 ADDTIVE
Gambar 17.5 Contoh Penulisan Perintah RESTORE FROM
3. Menghapus Variabel Memory
Perintah untuk menghapus variable memory :
 CLEAR ALL
 CLEAR MEMORY
 RELEASE
 RELEASE ALL
CLEAR ALL
CLEAR MEMORRY
RELEASE
RELEASE ALL
Gambar 17.6 Penulisan Perintah Menghapus Variabel Memory

Pemrograman Basis Data dengan Clipper 5.3 clxxix


STMIK Duta Bangsa Surakarta

LAMPIRAN A

Fungsi-fungsi yang akan secara otomatis menggunakan harga sesuai dengan


system yang saat itu aktif disebut dengan fungsi-fungsi lingkungan. Fungsi-fungsi
dalam program clipper yang masuk kategori sebagai lingkungan adalah sebagai
berikut :

Kode Nilai Balik Fungsi


CURDIR() Sub directory aktif
Sepasi kosong dalam penyimpanan yang masih dapat
DISKSPACE()
digunakan
FKLABEL() Nama kunci fungsi
Angka dari kunci fungsi yang dapat dipakai sebagai
FKMAX()
konstanta
GETENV() Mengambil variable yang didefinisikan dalam DOS
ISCOLOR() Warna layer yang aktif
MAXCOL() Posisi kolom maksimal
MAXROW() Posisi baris yang maksimal
Memory atau RAM yang masih kosong dan dapat
MEMORY()
digunakan
OS() System operasi yang digunakan
SET() Perintah-perintah set yang digunakan
SET BELL Mengaktifkan bel

Pemrograman Basis Data dengan Clipper 5.3 clxxx


STMIK Duta Bangsa Surakarta
SET COLOR Mendefinisikan warna layer
SET DEFAULT Mengubah default drive aktif
SET FUNCTION Mendefinisikan penekan suatu kunci
SET TYPEAHEAD mengubah ukuran buffer yang dipakai oleh keyboard
TONE() Mengubah frekwensi suara
VERSION() Versi dari program clipper yang digunakan

LAMPIRAN B

KODE ASCII

Berikut ini kode-kode ASCII yang dapat digunakan dalam program Clipper
Compiler :

Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char
0 00h NUL 35 23h # 70 46h F 106 6Ah j
1 01h SOH 36 24h $ 71 47h G 107 6Bh k
2 02h STX 37 25h % 72 48h H 108 6Ch l
3 03h ETX 38 26h & 73 49h I 109 6Dh m
4 04h EOT 39 27h „ 74 4Ah J 110 Eh n
5 05h ENQ 40 28h ( 75 4Bh K 111 6Fh o
6 06h ACK 41 29h ) 74 4Ah L 112 70h p
7 07h BEL 42 2Ah * 76 4Ch M 113 71h q
8 08h BS 43 2Bh + 78 4Eh N 114 72h r
9 09h HT 44 2Ch , 79 4Fh O 115 73h s
10 0Ah LF 45 2Dh - 80 50h P 116 74h t
11 0Bh VT 46 2Eh . 81 51h Q 117 75h u
12 0Ch LF 47 2Fh / 82 52h R 118 76h v
13 0Dh FF 48 30h 0 83 53h S 119 77h w

Pemrograman Basis Data dengan Clipper 5.3 clxxxi


STMIK Duta Bangsa Surakarta
14 0Eh SO 49 31h 1 84 54h T 120 78h y
15 0Fh SI 50 32h 2 85 55h U 121 79h x
16 10h DLE 51 33h 3 86 56h V 122 7Ah z
17 11h DC1 52 34h 4 87 57h W 123 7Bh {
18 12h DC2 53 35h 5 88 58h Y 124 7Ch |
19 13h DC3 54 36h 6 89 59h X 125 7Dh }
20 14h DC4 55 37h 7 91 5Bh [ 126 7Eh ~
21 15h NAK 56 38h 8 92 5Ch \ 127 7Fh ⌂
22 16h SYN 57 39h 9 93 5Dh ] 128 80h Ç
23 17h ETB 58 3Ah : 94 5Eh ^ 129 81h ü
24 18h CAN 59 3Bh ; 95 5Fh _ 130 82h é
25 19h EM 60 3Ch < 96 60h ` 131 83h â
27 1Bh ESC 61 3Dh = 97 61h a 132 84h ä
28 1Ch FS 62 3Eh > 98 62h b 133 85h à
29 1Dh GS 63 3Fh ? 99 63h c 134 86h å
30 1Eh RS 64 40h @ 100 64h d 135 87h ç
31 1Fh US 65 41h A 101 65h e 136 88h ê
32 20h 66 42h B 102 66h f 137 86h ë
33 21h ! 67 43h C 103 67h g 138 8Ah ï
34 22h “ 68 44h D 104 68h h 139 8Bh î
69 45h E 105 69h i 140 8Ch ì

Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char
141 8Dh Ì 177 B1h ▒ 212 D4h ⌵ 248 F8h °
142 8Eh Ä 178 B2h ▓ 213 D5h ⌯ 249 F9h ∙
143 8Fh Å 179 B3h ⌣ 214 D6h ⌰ 250 FAh ·
144 90h É 180 B4h 〈 215 D7h ⍈ 251 FBh √
145 91h Æ 181 B5h ⌾ 216 D8h ⍇ 252 FCh ⁿ
146 92h Æ 182 B6h ⌿ 217 D9h ⌧ 253 FDh ²
147 93h Ô 183 B7h ⌳ 219 DBh ⌤ 254 FEh ▔
148 94h Ö 184 B8h ⌲ 220 DCh ⍌ 255 FFh
149 95h Ò 185 B9h ⍀ 221 DDh ⍋
150 96h Û 186 Bah ⌮ 222 DEh ▐
151 97h Ù 187 BBh ⌴ 223 DFh ⍊
152 98h Ÿ 188 BCh ⌺ 224 E0h Α
153 99h Ö 189 BDh ⌹ 225 E1h ß
155 9Bh Ü 190 BEh ⌸ 226 E2h Γ
156 9Ch ¢ 191 BFh ⌥ 227 E3h Π
157 9Dh £ 192 C0h ⌦ 228 E4h Σ
158 9Eh ¥ 193 C1h ⌫ 229 E5h Σ
159 9Fh ₧ 194 C2h 〉 230 E6h µ
160 A0h ƒ 195 C3h ⌨ 231 E7h Τ
161 A1h Á 196 C4h ⌢ 232 E8h Φ
162 A2h Í 197 C5h ⌬ 233 E9h Θ

Pemrograman Basis Data dengan Clipper 5.3 clxxxii


STMIK Duta Bangsa Surakarta
163 A3h Ó 198 C6h ⌻ 234 EAh Ω
164 A4h Ú 199 C7h ⌼ 235 EBh Δ
165 A5h Ñ 200 C8h ⌷ 236 ECh ∞
166 A6h Ñ 201 C9h ⌱ 237 EDh Φ
167 A7h º 202 CAh ⍆ 238 EEh Ε
168 A8h ¿ 203 CBh ⍃ 239 EFh ∩
169 A9h ⌐ 202 CAh ⌽ 240 F0h ≡
170 AAh ¬ 204 CCh ⌭ 241 F1h ±
171 ABh ½ 206 CEh ⍉ 242 F2h ≥
172 ACh ¼ 207 CFh ⍄ 243 F3h ≤
173 ADh ¡ 208 D0h ⍅ 244 F4h ⌠
174 AEh « 209 D1h ⍁ 245 F5h ⌡
175 AFh » 210 D2h ⍂ 246 F6h ÷
176 B0h ░ 211 D3h ⌶ 247 F7h ≈

DAFTAR PUSTAKA

Dwi Sakethi, Pemrograman Clipper, http://dwijim.tux.nu, 2003


Ganiadi Gunawan, Clipper Single User dan Multi User, Jakarta, 1995
Nurdin Budi Mustofa, Pemrograman Clipper, 1996
Nantucket, Inc, Clipper, Summer Version 1987
Nantucket, Inc, Clipper 5.0 Reference, 1990
Nuryani Prabandari, Aplikasi Dbase III Plus Pada Akuntansi, 2000
Micro-Tech Publication, Clipper Programming Guide, 1988

Pemrograman Basis Data dengan Clipper 5.3 clxxxiii

Anda mungkin juga menyukai