Dokumen tersebut merupakan modul kuliah tentang algoritma dan pemograman yang membahas definisi algoritma dan pemograman serta unsur-unsur dasar pemograman seperti tipe data, operator, fungsi dan prosedur."
1. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 1 :
Definisi Agoritma dan Pemograman
Page 1 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. DEFINISI ALGORITMA
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang
aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan
angka arab.
Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli
bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya
para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama
seorang ahli matematika dari Uzbekistan Abu Abdullah Muhammad Ibnu Musa
Al‐Khuwarizmi (770‐840). Al‐Khuwarizmi dibaca orang barat menjadi Algorism.
Al‐Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal‐Muqabala yang artinya
“Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku
itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi
Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran
–sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang
biasa. Maka lambat laun kata Algorithm berangsur‐angsur dipakai sebagai metode perhitungan
(komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia,
kata Algorithm diserap menjadi Algoritma.
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah
program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program
menjadi kurang baik, semikian juga sebaliknya.
Menilai Sebuah Algoritma ketika manusia berusaha memecahkan masalah, metode atau
teknik yang digunakan untuk memecahkan masalah kemungkinan bisa lebih dari satu. Dan kita
memilih mana yang terbaik diantara teknik‐teknik itu. Hal ini sama juga dengan algoritma, yang
memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan.
Lalu bagaimana mengukur mana algoritma yang terbaik ? Beberapa persyaratan untuk
menjadi algoritma yang baik adalah:
1. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi
tinggi dan benar.
2. Pemrosesan yang efisien (low cost). Proses harus diselesaikan secepat mungkin dan jumlah
kalkulasi yang sependek mungkin.
3. Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga
untuk kasus lain yang lebih general.
4. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh
berdasarkan perubahan requirement yang ada.
5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Sulit
dimengertinya suatu program akan membuat sulit pengelolaan.
2. Diktat Kuliah: Algoritma dan Pemograman III
6. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai
Page 2 of 67
platform komputer.
Berdasarkan hal diatas dapat diartikan Algoritma adalah sebuah strategi yang
mengandalkan kemampuan berpikir secara logis untuk memecahkan suatu masalah. Dalam
algoritma, kita mulai dengan berpikir apa yang kita miliki (kekuatan dan kelemahan), selanjutnya
kita atur langkah (aksi) agar tujuan atau sasaran yang kita harapkan dapat terwujud.
Begitu juga dalam hal membuat program komputer. Ada keterbatasan statemen yang
disediakan, namun dengan keterbatasan itu kita siasati langkah-langkah untuk mencapai hasil
program yang sesuai dengan keinginan. Misalnya di dalam bahasa pemrograman tidak ada
fungsi/prosedur bawaan yang mengkonversi nilai nominal mata uang menjadi bentuk terbilang.
Dengan menggunakan strategi/algoritma kita dapat memecahkan persoalan tersebut dan dapat
membuat programnya. Namun demikian, awal pembuatan algoritma tidak perlu memperhatikan
statemen yang ada di suatu bahasa pemrograman karena algoritma bersifat umum.
Contoh algoritma dengan bahasa natural :
Masukkan Nilai jari – jari lingkaran ke dalam R
Ambil nilai Pi sebagai konstan 3.14
Masukkan L dalam rumus Pi * R * R
Tampilkan L sebagai hasil Luas lingkaran
Contoh menggunakan pseudo code : Mencari luas lingkaran dengan rumus : L=Π R2
Algoritmanya adalah sebagai berikut :
R jari - jari
Pi 3.14
L Pi * R * R
Print L
B. PENGERTIAN PROGRAM DAN PEMROGRAMAN
Dalam kehidupan sehari – hari, untuk berkomunikasi dengan orang lain, kita harus
menggunakan bahasa yang sama dengan orang tersebut. Jika kita tidak menggunakan bahasa
yang bias saling dipahami maka kita tidak bias berkomunikasi dengan orang lain.
Dalam pemrograman computer berlaku juga hal seperti tersebut diatas, kita harus
menggunakan bahasa yang dimengerti oleh computer untuk memberikan suatu instruksi. Yang
dimaksud dengan pemrograman computer adalah lagkah-langkah yang dilakukan untuk
memberikan instruksi kepada komputer untuk memecahkan masalah.
Secara umum terdapat 4 kelompok Bahasa Pemrograman, yaitu :
1. Low Level Language (seperti bahasa Assembly)
Level terendah
Isi: kode-kode mesin yg hanya dapat di interpretasikan langsung oleh mesin komputer
berupa kode numerik 0 dan 1
Microcode: Sekumpulan instruksi dalam bahasa mesin
(+): Eksekusicepat
3. Diktat Kuliah: Algoritma dan Pemograman III
Page 3 of 67
(-): Sulitdipelajarimanusia
2. Middle Level Language (seperti bahasa C)
Bahasasimboldaribahasamesin
Contoh: ADD, MUL, SUB, dll
Macro instruksi: sekumpulan kode dalam bahasa assembly
(+): Eksekusicepat, masih dapat dipelajari daripada bahasa mesin, file kecil
(-): Tetap sulit dipelajari, program sangat panjang
3. High Level Language (seperti Pascal, FoxBase dan Basic)
The 3rd Generation Programming Language
Lebih dekat dengan bahasa manusia
Memberi banyak fasilitas kemudahan dalam pembuatan program, mis.: variabel, tipe
data, konstanta, struktur kontrol, loop, fungsi, prosedur, dll.
Contoh: Pascal, Basic, C++, Java
(+): Mudah dipelajari, mendekati permasalahan yang akan dipecahkan, kode program
pendek
(-): Eksekusi lambat
4. Object Oriented Language (Visual FoxPro, Visual Basic, Visual dBase, Delphi, Visual C)
The 4th Generation Programming Language
Digunakan langsung untuk memecahkan suatu masalah tertentu
Contoh: SQL atau MySQL untuk database, Visual Foxpro, Visual Basic, Delphi, dll
(+): Object Oriented
(-): Eksekusi Cepat
C. ALGORITMA PEMROGRAMAN
Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu bahasa
pemrograman tertentu (tingkat mahir), biasanya tidak lagi memerlukan kertas coret-coretan
untuk membuat suatu program komputer. Namun bagi pemula, pembelajar, atau yang belum
mahir, diperlukan kertas coret-coretan tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun algoritma (langkah-langkah
penyelesaian masalah), flowcharting (alur logika perintah, yang merupakan aplikasi dari
algoritma), maupun menuliskan perintah sesuai dengan kaidah dari bahasa pemrograman yang
akan digunakannya.
Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu menyesuaikan
dengan) bahasa pemrograman yang nanti akan kita gunakan. Hal utama yang kita pikirkan adalah
kaidah (hirarki) dari komputer itu sendiri, yaitu input-proses-output.
Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat diproses dengan
aturan-aturan tertentu untuk menghasilkan output seperti yang dikehendaki. Data yang ada harus
logis (masuk akal) bahwa “ia” dapat diproses untuk menghasilkan output.
sewaktu menyusun algoritma walau kita tidak perlu tahu bahasa pemrograman apa yang
akan digunakan kelak, namun, untuk penulisan algoritma yang lebih efisien dan efektif, maka
penggunaan sebagian perintah yang ada di dalam bahasa pemrograman perlu dilakukan juga.
4. Diktat Kuliah: Algoritma dan Pemograman III
Page 4 of 67
D. DASAR PEMROGRAMAN
Sebagaimana telah dijelaskan diatas, bahwa Program komputer adalah kumpulan
instruksi (statements) yang disusun secara logis untuk memecahkan suatu masalah. Instruksi-instruksi
yang digunakan disesuaikan dengan jenis bahasa pemrograman yang digunakan.
Ada dua jenis utama dalam bahasa pemrograman, yaitu bahasa pemrograman berbasis
bisnis dan berbasis matematis (science). Bahasa pemrograman yang berbasis bisnis biasanya
merupakan program aplikasi siap pakai, seperti Visual dBase, Visual Foxpro, Visual Basic,
FoxBase, Clipper, COBOL dan sejenisnya yang merupakan program aplikasi basis data. Ada
juga Photoshop, Corel Draw, dan sejenisnya yang merupakan program aplikasi untuk
pengolaman gambar (image processing) atau multimedia. Sedangkan yang berbasis science
seperti Pascal, C, Fortran, Mathlab, dan sejenisnya.
Program yang baik memiliki kriteria, antara lain:
1. menghasilkan keluaran (output) yang sesuai dan benar.
2. memiliki kompleksitas algoritma yang minimal.
3. memiliki kecocokan dengan peruntukan bahasa programnya.
4. memiliki batas akhir penyelesaian.
Dalam membuat program seorang programmer menuliskan sebuah program dalam satu
rangkaian penuh, tapi ada yang membagi-bagi programnya menjadi program utama (main
program) dan sub-sub program (subroutine atau procedure). Contoh skema program utama dan
sub-sub programnya dapat digambarkan sebagai berikut:
*--- Set Environtment Mis. :
Set Talk Off
Set Status Off
...
*--- Cleaning Memory
Clear All
Close All
...
*--- Set Variable Public
PUBLIC oFormSort As Form
PUBLIC nMaxRec
...
*--- Define Class
WITH _Screen
.AddObject("Judul","myJudul") && label Judul 1
.AddObject("TxtNama","myTxtNama")
…
.Show
ENDWITH
Start() && aktifkan prosedur Start()
5. Diktat Kuliah: Algoritma dan Pemograman III
SetField(.F.) && aktifkan prosedur SetField()
TampilkanData(.T.) && aktifkan prosedur TampilkanData()
READ EVENTS && proses semua event
RETURN && selesai
DEFINE CLASS myJudul AS Label && sebagai Title judul
Top = 12 && posisi atas
Left = 11 && posisi kiri
Visible = .T. && tampil dilayar monitor
...
Page 5 of 67
ENDDEFINE
...
*--- Define Procedure
PROCEDURE SetButton
PARAMETERS xPar && menerima variabel kiriman
* mengatur button dalam form _SCREEN
WITH _Screen
.cmdFirst.Enabled = xPar && button ON/OFF
.cmdPrev.Enabled = xPar && button ON/OFF
...
IF xPar = .T.
.cmdAdd.Caption = "ADD" && isi button
.cmdEdit.Caption = "EDIT" && isi button
...
ENDIF
ENDWITH
ENDPROC
Contoh skema program utama dan sub-sub programnya
Penulisan program yang terstruktur dan menggunakan sub-sub program tentunya
dimaksudkan agar ketika terjadi kesalahan proses atau penulisan akan lebih mudah
menelusurinya (terutama untuk program yang besar atau memiliki banyak fungsi).
6. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 2 :
Elemen Dasar Pemrograman
Page 6 of 67
Materi Kuliah :
Algoritma dan Pemograman III
Elemen dasar Pemograman The 4th Generation Programming Language (Object Oriented
Language) terdiri dari Tipe Data (Type Data), Operator, Fungsi/Procedure dan perintah.
A. TIPE DATA
Dalam membuat program tidak terlepas dari rumus dan formula yanng berupa ekspresi.
Dalam Visual Foxpro ekspresi atau rumus tidak boleh jenis data (type data) bercampur. Berikut
Tipe-tipe data yang tersedia dalam Bahasa Pemrograman yang umum adalah karakter, karakter
biner, numerik dan bilangan pecahan, bilangan bulat, bilangan pecahan ganda, bilangan uang,
tanggal, tanggal plus jam, logika (L) dan memo (M).
1. Tipe Karakter
Tipe karakter adalah tipe data string berupa deretan karakter alfabet, dari A sampai Z, dan
angka 0 – 9 yang dingggap karakter. Tipe karakter dibuat menggunakan (diapit) tanda kutip
tunggal, kutip ganda atau tanda siku.
Contoh :
‘STT Ibnu Sina’
“Program Studi Teknik Informatika”
[Materi Kuliah Algoritma dan Pemrograman III]
2. Tipe karakter Biner
Tipe karakter biner seperti tipe data karakter biasa, tetapi bersifat permanen.
3. Tipe Numerik dan Bilangan Pecahan
Tipe numerik (float) adalah tipe angka atau angka pecahan yang mempunyai jangkauan dari -
0.999999999E+19 sampai dengan 0.999999999E+20.
4. Tipe Bilangan Bulat
Tipe bilangan bulat adalah tipe data angka yang mempunyai jangkauan antara angka dari -
2147483647 sampai dengan 2147483646.
5. Tipe Bilangan Pecahan Ganda
Tipe bilangan pecahan ganda (lebih besar dari tipe float) adalah tipe angka atau angka
pecahan yang mempunyai jangkauan +/-4.94065645841247E-324 sampai +/-
8.9884656743115E307.
6. Tipe Bilangan Uang
Tipe bilangan uang adalah tipe data untuk bentuk data berupa uang yang mempunyai
jangkauan -922337203685477.5808 sampai dengan 922337203685477.5807. Untuk
menyatakan bilangan bentuk uang kita harus menggunakan simbol $ (bentuk default).
7. Tipe Tanggal
Tipe tanggal adalah tipe data untuk bentuk data tanggal (date). Format defaultnya adalah
bentuk tanggal US, dengan format mm/dd/yy (jika SET CENTURY OFF). Untuk
memudahkan kita membentuk format tanggal tertentu, perhatikan tabel dibawah ini :
7. Diktat Kuliah: Algoritma dan Pemograman III
Pengaturan Format saat SET
CENTURY OFF
AMERICAN mm/dd/yy
ANSI yy.mm.dd
BRITISH/FRENCH dd/mm/yy
GERMAN dd.mm.yy
ITALIAN dd-mm-yy
JAPAN / TAIWAN yy/mm/dd
USA mm-dd-yy
MDY mm/dd/yy
DMY dd/mm/yy
YMD yy/mm/dd
Tabel 2.1 Format Tanggal
Page 7 of 67
8. Tipe Logika (L)
Tipe logika (L) adalah tipe data untuk bentuk logika TRUE (benar), dapat digunakan simbol
T,t,Y atau FALSE (salah) dapat digunakan simbol F,f,N,n.
9. Tipe Memo
Tipe memo adalah tipe data untuk digunakan sebagai karakter panjang, dan hanya berlaku
untuk field bukan variabel. Memo berukuran tidak tetap, seperti karakter dan disimpan dalam
file .FPT.
10. Tipe Umum (G)
Tipe data umum biasa dapat dipakai untuk menyimpan data OLE (Object Linking
Embedded), seperti spreadsheet, grafik, suara yang dibuat dari aplikasi lain.
B. OPERATOR
Operator adalah simbol yang dipakai untuk operasi tertentu, biasanya dipakai dalam
kpresi atau rumus tertentu. Contoh simbol – simbol operator seperti pada tabel berikut :
Operator Kegunaannya Untuk tipe data
= Pengujian kesamaan Semua tipe
+ Penjumlahan Numeric, Character, Date,
DateTime
! atau <> atau # Negasi (kebalikan) Logical
*, / Perkalian/Pembagian Numeric
^ Perpangkat Numerik
Catatan : Dalam suatu ekspresi variabel harus memiliki tipe data yang sama, jika tidak
sama harus dikonversikan dahulu tipe datanya.
C. FUNGSI/ PROCEDURE
Fungsi atau procedure adalah kumpulan instruksi tertentu untuk tujuan tertentu yang
diberi nama, sehingga jika ingin dipakai hanya menyebutkan nama fungsinya saja.
Procedure berguna untuk mengumpulkan statement‐statement yang dapat dijalankan
menjadi satu dalam suatu blok dan untuk menjalankannya kembali hanya dengan menuliskan
8. Diktat Kuliah: Algoritma dan Pemograman III
nama procedure yang menampungnya. Selain itu procedure juga banyak dipakai untuk
menampung baris‐baris perintah yang sering dipakai dalam sebuah program.
Jika dalam bahasa pemrograman dibawah Object Oriented Language seperti didalam
High Level Language kita memandang program sebagai serangkaian instruksi yang disusun
daiam bentuk procedure/fungsi, maka dengan pembahasan kita yang menggunakan Object
Oriented Language program kita harus memandang program sebagai serangkaian instruksi yang
tersimpan dalam sekumpulan objek, dimana masing-masing objek memiliki data dan procedure
(fungsi tersendiri).
Data daiam objek disebut dengan Propertis, sedangkan Procedure / Fungsi dalam objek
Page 8 of 67
disebut Method.
D. PERINTAH DASAR PEMOGRAMAN
SET DEFAULT TO <path-drive>
Digunakan untuk mengaktifkan/merubah drive kerja.
Contoh :
SET DEFAULT TO C:STTTF
CLOSE ALL
Digunakan untuk menutup semua jendela yang aktif.
QUIT
Perintah untuk keluar dari program
9. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 3 :
Logika Percabangan
Page 9 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. PROSES PERCABANGAN BERSYARAT
Dari pertemuan sebelumnya, program yang kita buat adalah program yang bersifat
sequence/terurut Artinya proses dimulai dari baris instruksi pertama dan berlanjut terus sampai
instruksi terakhir secara terurut. Seandainya sebuah instruksi perlu meloncat atau mengerjakan
sebuah instruksi dengan suatu syarat tertentu, maka diperlukan suatu perintah pengulangan dan
perintah percabangan.
B. STRUKTUR PERCABANGAN
Percabangan kondisional memungkinkan kita memeriksa suatu kondisi, kemudian
berdasarkan hasil pemeriksaan tersebut membentuk operasi berbeda. Terdapat dua perintah di
Visual Foxpro yang dipakai untuk membuat percabangan kondisional.
1. Perintah Logika IF
Perintah ini mengeksekusi secara kondisional sekumpulan perintah berdasarkan nilai
ekspresi logika. Secara umum, perintah percabangan bersyarat yang biasa digunakan antara lain :
• IF … ENDIF
• IF … ELSE … ENDIF
a. Perintah IF … ENDIF
Sintak perintah ini adalah :
IF <kondisi>
………………………
……………………… Bagian program yang dijalankan bila
……………………… kodisi terpenuhi/benar
ENDIF
b. Perintah IF … ELSE ….. ENDIF
IF
<Bagian program yang akan dijalankan bila kondisi benar>
ELSE
<Bagian program yang akan dijalankan bila kondisi salah>
ENDIF
10. Diktat Kuliah: Algoritma dan Pemograman III
Page 10 of 67
2. Perintah DO CASE … ENDCASE
Perintah ini mengeksekusi sejumlah perintah pertama yang ekspresi kondisinya bernilai
True (.T). Sintak perintah ini adalah :
DO CASE
CASE <expresi-1>
<Bagian program yang akan dijalankan bila kondisi-1 benar>
CASE <expresi-2>
<Bagian program yang akan dijalankan bila kondisi-2 benar>
…
CASE <expresi-n>
<Bagian program yang akan dijalankan bila kondisi-n benar>
OTHERWISE
<Bagian program yang akan dijalankan bila semua kondisi salah>
ENDCASE
11. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 4 :
Logika Pengulangan / looping
Page 11 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. PROSES PENGULANGAN
Perulangan memungkinkan kita mengeksekusi satu atau lebih baris kode sebanyak yang
kita kehendaki. Terdapat tiga perintah di Visual Foxpro yang dipakai untuk perulangan, yaitu :
1. Perintah DO WHILE – ENDDO
Perintah ini mengeksekusi perintah-perintah yang ada didalam loop kondisional.
Perulangan akan dilakukan terus menerus selama kondisi tersebut terpenuhi (.T. atau Benar).
Sintak dari perintah pengulangan tersebut adalah :
DO WHILE
…………………….
……………………. Bagian program yang akan diulang
…………………….
ENDDO
Pengulangan tersebut akan dilakukan bila kondisi benar. Pengulangan dengan kondisi ini
dapat pula menggunakan kondisi .T., yaitu :
DO WHILE .T.
…………………….
……………………. Bagian program yang akan diulang
…………………….
[Loop] [Exit]
ENDDO
Contoh :
x=1
DO WHILE x <= 20
? x x=x+1
ENDDO
12. Diktat Kuliah: Algoritma dan Pemograman III
2. Pengulangan EOF() dan BOF() Dalam Proses Berulang
Proses pengulangan dapat dilakukan dalam memproses record-record dalam suatu tabel
satu persatu hingga habis. Untuk membatasi pengulangan biasa digunakan fungsi EOF() (End Of
File) dan BOF() (Begin Of File). Fungsi tersebut akan memberikan fungsi nilai logika .T. bila
pointer telah berada diakhir file.
Bentuk pengulangan untuk memproses file data sampai habis :
DO WHILE.NOT.EOF()
…………………….
……………………. Bagian program yang akan diulang
…………………….
Page 12 of 67
ENDDO
3. Perintah FOR . . . ENDFOR
Perulangan ini akan mengeksekusi perintah-perintah sebanyak yang kita tentukan. Nilai
yang kita tentukan merupakan nilai tetap/konstanta.
Sintak dari perintah pengulangan tersebut adalah :
FOR <var>=<nilai_awal> TO <nilai_akhir>
…………………….
……………………. Bagian program yang akan diulang
…………………….
ENDFOR
Contoh :
FOR v_angka = 1 TO 10
? v_angka
ENDFOR
4. Perintah SCAN . . . ENDSCAN
Perintah ini memindahkan pointer record melewati tabel yang sedang dipilih dan
mengeksekusi blok perintah setiap kali record memenuhi syarat kondisi yang ditentukan.
Sintak dari perintah pengulangan tersebut adalah :
13. Diktat Kuliah: Algoritma dan Pemograman III
SCAN [FOR <kondisi1>] [WHILE <kondisi2>]
…………………….
……………………. Bagian program yang akan diulang
…………………….
[loop]
Page 13 of 67
[Exit] ENDSCAN
Contoh :
SCAN FOR kota = “Jakarta STI&K”
? nama, jurusan
ENDSCAN
14. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 5 :
Function, Message, Properties dan Event
Page 14 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. FUNCTION/ FUNGSI
Dalam Visual Foxpro menyediakan beberapa fungsi yang biasa dipakai dalam
pemograman. Fungsi tersebut antara lain fungsi konversi, fungsi string, fungsi tanggal dan waktu
dll.
1. Fungsi Konversi
Fungsi ini berguna untuk mengubah elemen data dari suatu jenis ke jenis yang lainnya.
Fungsi tersebut antara lain :
o VAL (string alphanumerik)
Untuk mengubah string bilangan ke nilai numerik
o DTOC (date)
Untuk merubah isi field date(tanggal) menjadi karakter
o CTOD (string alphanumerik)
Untuk merubah string alphanumerik menjadi bentuk tanggal.
o TIME()
Menampilkan waktu yang ditunjukkan sistem komputer pada saat sekarang.
o DATE()
Menampilkan tanggal sekarang
o CDOW(date)
Menunjukkan nama hari yang ditunjukkan date.
o CMONTH(date)
Menunjukkan nama bulan yang ditunjukkan date.
o DOW(date)
Menunjukkan nama hari dalam seminggu.
1= Minggu, 2=Senin, 3=Selasa, 4=Rabu, 5=Kamis, 6=Jum’at, 7=Sabtu
2. Fungsi String
o UPPER<alphanumerik> : Merubah teks/huruf menjadi huruf kapital.
o LOWER<alphanumerik> : Merubah teks/huruf menjadi huruf kecil.
o TRIM<alphanumerik> : Untuk menghapus/memotong spasi.
o LTRIM<aplanumerik> : Untuk menghapus spasi dari sebelah kiri.
o RTRIM<alphanumerik> : untuk menghapus spasi dari sebelah kanan.
o SUBSTR<alphanumerik> : untuk mengambil karakter/kata dari suatu kalimat/kata.
o LEFT<alpanumerik> : untuk mengambil karakter dari kiri.
o RIGHT<alphanumerik> : untuk mengambil karakter dari kanan.
o LEN<alphanumerik>: untuk menghitung jumlah karakter.
o ASC<alphanumerik>: untuk menghasilkan nilai numerik dari karakter ASCII
15. Diktat Kuliah: Algoritma dan Pemograman III
Page 15 of 67
B. KOTAK DIALOG / MESSAGEBOX
Kotak dialog digunakan untuk memberitahukan suatu informasi kepada user/pemakai,
misalnya menampilkan suatu pesan kesalahan. Selain itu, kotak dialog messagebox juga
digunakan untuk melakukan konfirmasi terhadap pemakai, misalnya konfirmasi YES dan NO.
Sintak Mesagebox :
Messagebox(“pesan”,<tipe_kotak_dialog>,<judul>) Argument kedua dan ketiga dapat
juga tidak diikut sertakan. Contoh penggunaannya :
Messagebox(“Yakin akan menutup program ini?”,4+32+”Konfirmasi”)
Atau
Messagebox(“Data yang dimasukkan sudah ada !!!”)
Ini layout untuk pesan konfirmasi “Yes” dan “No”.
Tabel Nilai untuk jenis Kotak dialog :
Nilai Tipe Kotak Tombol yang tersedia/tampil
0 Ok
1 Ok, Cancel
2 Abort, Retry, Ignore
3 Yes, No, Cancel
4 Yes, No
5 Retry, Cancel
Tabel Icon yang akan ditampilkan pada Kotak Dialog :
Nilai Icon Icon Contoh
16
MESSAGEBOX("Hello STT", 64)
32
MESSAGEBOX("Silahkan Dicoba Ulang", 48)
48
MESSAGEBOX("System
Error”+Chr(13)+”System akan Dishutdown
Sekarang.",16)
64
IF MESSAGEBOX("
Apakah Program Akan Ditutup??",36)=6
QUIT
ENDIF
16. Diktat Kuliah: Algoritma dan Pemograman III
Page 16 of 67
C. PENGATURAN PROPERTIES
Obyek Keterangan Name Memberikan nama sebuah obyek Caption Memberikan judul
pada sebuah obyek Text Hampir sama dengan caption FontName Menetukan jenis huruf
o Backcolor Menentukan warna latar belakang
o Forecolor Menentukan warna text atau huruf
o Enabled Mengatur kontrol supaya tidak dapat diakses
o Visible Menyembunyikan obyek
o Height Menentukan tinggi dari sebuah obyek Width Menentukan lebar dari sebuah obyek
Top Menentukan posisi obyek dari atas Left Menentukan posisi obyek dari kiri Tabindex
Menentuka urutan pemfocusan
o Dragmode Mengatur tingkah laku kontrol selama dragand drop
o Mousepointer Memungkinkan perubahan bentuk mouse pada saat melewati obyek
o Autosize Mengatur agar lebar suatu objek menyesuaikan dengan lebar objek
o FontBold Mengatur agar objek di Bold/cetak tebal
o BackStyle Mengatur agar objek transparan atau tidak.
D. EVENT OBJECT
Macam-macam Event
o Click Terjadi apabila menekan dan melepaskan tombol kiri mouse pada obyek
o DblClick Menekan tombol kiri 2 x pada sebuah obyek
o DragDrop Menahan tombok kiri dan menyeret obyek dari satu tempat ke tmpt lain
o Activate Terjadi apabila sebuah obyek sedang aktif
o DeActiave Kebalikan dari activate
o GotFocus Terjadi apabila sebuah obyek satu-satunya menjadi focus
o LostFocus Terjadi apabila sebuah obyek kehilangan Focus
o Load Terjadi apabila sebuah form dibuka atau dipanggil
o UnLoad Terjadi apabila sebuah form ditutup
o Init Memberikan nilai awal pada sebuah form
o Valid Memberikan validasi terhadap objek
o KeyPress Terjadi apabila menerima input tombol dari keyboard
o Interactive Change Terjadi apabila sebuah objek terjadi perubahan nilai
17. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 6 :
Komponen Utama Dalam Menyusun
Sebuah Aplikasi
Page 17 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. KOMPONEN UTAMA
Dalam menyusun sebuah aplikasi dengan Bahasa pemrograman Visual FoxPro
diperlukan komponen-komponen utama, yaitu :
1. Project
2. Database File
3. Startup File
2. Form
3. Report
4. Menu
B. PROJECT
File : nama_file.pjx, nama_file.pjt
Fungsi : Mengorganisasikan semua file yang dignakan untuk membuat aplikasi
mnggunakan Bahasa Pemrograman Visual FoxPro sehingga semua file penyusun aplikasi
terstruktur dalam hierarki yang jelas. Seperti cntoh dibawah ini nama projectnya adalah
STT_Ibsi
Gambar 6.1. Project Manager
18. Diktat Kuliah: Algoritma dan Pemograman III
Page 18 of 67
C. DATABASE FILE
Dalam Bahasa Pemrograman Visual FoxPro database terdiri atas 2 jenis, yaitu :
1. Databases
File: nama_file.dbc, nama_file.dct, nama_file.dcx, nama_fil.dbf
Fungsi: Mengorganisasikan semua filr dbf (dbf) yang digunakan untuk aplikasi. Database
seakan-akan merupakan root directory dari file-file data (dbf) yang terdapat dalam project.
2. Free Table
File: nama_file.dbf, nama_file.cdx
Fungsi: Menampung record-record yang berisi data dalam sebuah file (dbf). Bagian ini
paling sering digunakan untuk memodifikasi database (menambahkan/mengurangi field-field
sesuai dengan kebutuhan)
Gambar 6.2. Contoh Struktur Database
Seperti contoh diatas dalam Gambar 6.2, project diatas memiliki file Free Tables
(Tek_Inf.dbf) dengan field-field yang dibutuhkan.
19. Diktat Kuliah: Algoritma dan Pemograman III
Page 19 of 67
D. STARTUP FILE
File: nama_file.prg, nama_file_file.fxp
Fungsi: file yang dijalankan pertama kali oleh aplikasi berfungsi untuk loading seluruh
database file terlibt dalam aplikasi. Seperti contoh dibawah ini, nama file startup programmnya
adalah startup_tf_ibsi
Gambar 6.3. Contoh Startup File
E. FORM
File: nama_file.scx, nama_file.sct
Fungsi: Mengelola record-record file dalam artian menambahkan record baru,
menampilkan record yang sudah ada, mengedir record yang sudah ada, menghapus record yang
sudah ada dan lain sebagainya. Seperti contoh di bawah ini, nama formnya adalah form_tf_ibsi.
Gambar 6.3. Contoh Form
20. Diktat Kuliah: Algoritma dan Pemograman III
Page 20 of 67
F. REPORT
File: nama_file.frx, nama_file.frt
Fungsi: Menghasilkan output dari pegolahan data kelayar ataupun untuk mencetak ke
printer. Seperti contoh dibawah ini, nama reportnya adalah lap_tf_ibsi.
Gambar 6.4. Contoh Report
G. MENU
File: nama_file.mnx, nama_file.mpr
Fungsi: Mengorganisasikan semua form yang terdapat dalam aplikasi supaya terstruktur
dengan baik dan memudahkan pengoperasian oleh user. Seperti contoh dibawah ini, nama
menunya adalah menu_tf_ibsi.
Gambar 6.5. Contoh Menu
21. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 7 :
Membuat Project dan Database
Page 21 of 67
Materi Kuliah :
Algoritma dan Pemograman III
Dalam program Visual Foxpro sebaiknya kita membuat program diawali dengan
membuat sebuah Project, karena seluruh program, form, database, report, view, query dan lain-lainnya
terletak dalam project. Hal ini akan memudahkan kita mengorganisasikannya. Dalam
project bisa terdapat beberapa database yang bisa saling berhubungan. Sementara itu, dalam
database bisa terdapat beberapa tabel yang masing-masing tabel dapat dihubungkan oleh kunci.
A. Project
Project adalah suatu tempat untuk meletakkan data, dokumen, kelas, kode/program, dan
lain-lainnya. Untuk membuat project ada 2 cara yaitu :
1. Lewat menu
2. Lewat perintah Visual Foxpro (pada command window)
Membuat Project Lewat Menu
Untuk membuat Project lewat menu, lakukan langkah-langkah berikut ini :
a. Pada menu, pilih File > New
b. Kemudian pilih option Project
c. Klik New
Gambar 7.1 Membuat Project Lewat Menu
22. Diktat Kuliah: Algoritma dan Pemograman III
Page 22 of 67
Membuat Project Perintah
Untuk membuat Project lewat perintah Visual Foxpro, kita dapat mengetikkam perintah
pada jedela Command Window. Perintahnya adalah :
Create Project [namaproject]
B. Database
Pengertian database dalam Visual foxpro berbeda dengan pengertian database dalam
Generasi ke 4 Bahasa Pemograman yang berarti tabel. Dalam Visual Foxpro, database adalah
seuatu jenis file yang extensinya adalah .DBC. Database merupakan kumpulan tabel-tabel.
Membuat tabel dalam database, mempunyai beberapa keuntungan, antara lain :
Menentukan jenis kunci primary atau candidate
Membuat relasi permanen (Persitant Relation) antar tabel
Membuat Caption (judul) field untuk judul Grid
Mendefinisikan nama panjang untuk field
Menentukan nilai default field
Menentukan Input Mask (Format masukkan field)
Membuat Tingger
Membuat prosedur tersimpan (Stored Procedure)
Membuat File View
Membuat aturan Level Field dan Level Record
Memberikan komentar untuk tabel, field dam database.
Membuat Database
Untuk membuat database dalam project, dapat dilakukan 2 cara yaitu :
a. Membuat Database Lewat Project Manager
Untuk membuat database lewat project manager, lakukan :
Di project manager, pilih halaman Data > Database > New
b. Membuat Database Lewat Perintah Visual Foxpro
Untuk membuat database lewat perintah visual foxpro, kita dapat mengetikkan perintah
berikut pada jendela Command Window :
Create Database [namadatabase]
23. Diktat Kuliah: Algoritma dan Pemograman III
Page 23 of 67
C. TABEL
Tabel merupakan tempat kita meletakkan record atau data. Nama file perluasan
(Extention) file tabel adalah .DBF.
1. Membuat Tabel
Cara membuat tabel ada dua cara, yaitu :
• Lewat Project Manager
Untuk membuat tabel lewat project, langkahnya adalah : Pada Project Manager, pilih Data |
Free Table | New
2. Lewat Perintah Menu Visual Foxpro
Untuk membuat tabel lewat perintah visual foxpro, ketikkan perintah berikut pada
Command Window :
Create [NamaTable]
Maka dilayar akan Visual Foxpro akan tampil :
Gambar 7.1 Membuat Table
masukkanlah struktur tabel tersebut. Kemudian klik OK.
24. Diktat Kuliah: Algoritma dan Pemograman III
Keterangan Structure Designer Dialog :
Nama Kolom Keterangan
Name Menyatakan nama Field
Type Menyatakan type data yang ditampung
Width Menyatakan lebar/panjang untuk data field
Decimal Menyatakan jumlah digit bagian pecahan.
Null Bila muncul tanda checklist, dapat diberikan
Page 24 of 67
3. Lewat Perintah Kode Program
Atau Create Table - SQL Command
CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE]
[CODEPAGE = nCodePage]
( FieldName1 FieldType [( nFieldWidth [, nPrecision] )] [NULL | NOT NULL]
[CHECK lExpression1 [ERROR cMessageText1]]
[AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1]
[PRIMARY KEY | UNIQUE [COLLATE cCollateSequence]]
[REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS]
[, FieldName2 ... ]
[, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpression3 TAG
TagName3
[COLLATE cCollateSequence]]
[, FOREIGN KEY eExpression4 TAG TagName4 [NODUP]
[COLLATE cCollateSequence]
REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR
cMessageText2]] )
| FROM ARRAY ArrayName
Contoh :
CREATE TABLE Customer (MyField i AUTOINC NEXTVALUE 1 STEP 1, name
c(40))
25. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 8 :
Type Field dan Operasi Pada Tabel
Page 25 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. PENULISAN FIELD
Penulisan nama field, tidak boleh menggunakan spasi dan tidak menggunakan tanda
koma (,), tanda pipe (|) dan tanda seru (!).
Type Field Keterangan
Character (C) Untuk menampung kumpulan karakter huruf, angka dan karakter
ASCII
yang dapat tercetak, lebar field tipe antara 1 sampai dengan 254
karakter.
Currency Untuk menyimpan nilai mata uang dan berisi hingga 20 digit,
termasuk +,
-, dan . (tanda decimal)
Float (F) Merupakan tipe data special dari field numeric yang didesain untuk
data
scientific
Date Untuk menyimpan data tanggal memasukkan dengan format
mm/dd/yy.
DateTime Berisi nilai dari tanggal, waktu atau tanggal dan waktu nilai tersebut.
Data
nilai tersebut disimpan dengan format yy/mm/dd/hh/mm/ss
Double Digunakan untuk melakukan perhitungan dengan nilai yang berisi
tanda
desimal (float)
Integer Untuk menyimpan bilangan bulat 4-byte, value -2147483647 s/d
2147483647
Logical Untuk menyimpan masukan True (T) atau False (F)
Memo Untuk menyimpan sejumlah besar data, field memo dapat berisi tipe
data
apa saja.
General Digunakan untuk menyimpan OLE (object Lingking and
Embedding).
Character
(Binary)
Digunakan untuk menampung banyaknya data karakter . dengan
ukuran
1 byte perkarakter s/d 254.
Memo (binary) Digunakan untuk menampung banyaknya data memo dengan
perawatan
tanpa mengunah kode dengan ukuran 4 byte dalam tabel.
26. Diktat Kuliah: Algoritma dan Pemograman III
Page 26 of 67
B. OPERASI PADA TABEL
1. Mengaktifkan/membuka Tabel
Untuk mengaktifkan tabel, maka perintahnya : USE <nama_tabel>
Misalnya kita akan mengaktifkan tabel barang, maka : Use Barang
2. Membuka/Memodifikasi Struktur Tabel
Pada saat tabel telah dibuat, jika terdapat kesalahan dalam pengetikan nama field, tipe
data atau lebarnya dll, maka kita perlu memodifikasi struktur tabelnya tetapi harus diaktifkan
dulu nama tabelnya. Sintaknya :
USE <nama_tabel> <enter>
MODIFY STRUCTURE <enter>
Menampilkan struktur tabel ke layar
3. Untuk menampilkan struktur tabel yang aktif, maka ketikkan perintah
LIST STRUCTURE
DISPLAY STRUCTURE
4. Mengisi Data Langsung kedalam Tabel
Untuk memasukkan data kedalam tabel, pertama pastikan tabel tersebut sudah aktif,
kemudian ketikkan perintah : APPEND <enter>
untuk mengisi data tabel, tetapi data nya diambil dari tabel lain, langkahnya :
27. Diktat Kuliah: Algoritma dan Pemograman III
- Aktifkan tabel yang akan diisi :
USE <nama_tabel>
- Kemudian ketikkan perintah.
APPEND FROM <nama_tabel_data> [FOR <kondisi>]
Page 27 of 67
5. Melihat isi Tabel
Untuk melihat hasilnya bahwa data telah ditambahkan/dimasukkan, ketikkan perintah :
BROWSE <enter> Maka akan muncul :
6. Mengatur Letak Pointer
Ada beberapa perintah untuk mengatur letak pointer :
a. Menuju record paling atas/awal : GO TOP
b. Menuju record paling akhir/bawah : GO BOTTOM
c. Menuju record tertentu : GO <no_record>
7. Menghapus data dalam Tabel
Untuk menghapus data pada tabel, menggunakan perintah : DELETE
Dalam penghapusan, ada beberapa cara/teknik yaitu :
a. Menghapus data record ke 2, maka perintahnya :
GO 2
DELETE
b. Menghapus data yang kode barangnya = B0003, maka perintahnya :
DELETE FOR kode_brg=’B000003’
Untuk melihat hasilnya bahwa data telah dihapus, ketikkan perintah Browse Ternyata
data belum dihapus, tapi diberi tanda hitam disebelah kirinya. Karena perintah DELETE ini
hanya memberi tanda pada data yang akan dihapus. Untuk melakukan penghapusan, maka
ketikkan perintah :
PACK <enter>
28. Diktat Kuliah: Algoritma dan Pemograman III
Untuk melihat hasilnya bahwa data telah dihapus, ketikkan perintah Browse.
Page 28 of 67
8. Mengedit data tabel
Untuk mengedit/merubah data dalam tabel, kita bisa melakukan pengeditan langsung
melalui tabel, atau menggunakan perintah :
EDIT [FIELDS <field1>,<field2>,…] [FOR <kondisi>]
9. Mengganti data dalam Tabel
Untuk mengganti/update/ memasukkan data pada tabel, maka digunakan perintah :
REPLACE … WITH …
Misalnya mengganti nama barang untuk kode barang ‘B001’ menjadi ”Hardisk”, maka
perintahnya :
REPLACE nama_brg WITH ‘Hardisk Seagete 80 GB’ FOR kode_brg=’B0000001’
10. Menutup Tabel yang sedang Aktif
Untuk menutup tabel yang sedang aktif, maka ketikkan perintah :
CLOSE DATABASE <enter>
Untuk menutup semua yang sedang aktif, maka ketikkan perintah :
CLOSE ALL <enter>
11. Mengcopy tabel dan mengcopy struktur tabel
Untuk mengcopy tabel, pertama pastikan seluruh tabel telah di tutup/nonaktif. Kemudian
ketikkan perintah :
COPY FILE <nama_tabel> TO <nama_tabel_baru> <enter>
Dengan cara ini kita telah mengcopykan struktur dan isi data tabel tersebut. Untuk
mengcopykan struktur tabelnya, maka langkahnya :
- Tutup semua tabel yang aktif
CLOSE DATABASE
- Aktifkan tabel yang akan di copy
USE <nama_tabel>
- Kemudian ketikkan perintah :
COPY STRUCTURE TO <nama_tabel_baru>
29. Diktat Kuliah: Algoritma dan Pemograman III
Page 29 of 67
C. Bekerja Dengan Multi Table
Dalam database yang kompleks dan besar, penggunaan file tabel data sering dipakai lebih
dari satu tabel. Sementara secara standar file tabel hanya bisa digunakan satu buah pada saat
yang sama. Untuk menggunakan lebih dari satu tabel pada waktu yang bersamaan digunakan
perintah SELECT.
Bentuk dari perintah SELECT ini adalah :
SELECT <daerah-kerja>
Contoh : untuk membuat program yang menggunakan 2 file data GAJI.DBF dengan
PEGAWAI.DBF, kita dapat melakukan perintah dibawah ini :
Select 1
Use Pegawai
Select 2
Use Gaji
atau
Select A
Use Pegawai
Select B
Use Gaji
File-file yang telah dibuka di daerah kerja masing-masing/berbeda dapat dihubungkan
satu sama lain dengan menggunakan perintah khusus, diantaranya perintah :
SET RELATION TO
Perintah SET RELATION TO
Perintah ini digunakan untuk menghubungkan / mengaitkan file tabel database aktif
dengan file database yang berada di daerah kerja lain, berdasarkan suatu Field kunci tertentu.
Sintaknya :
SET RELATION TO <Field-kunci> INTO <Alias>
2. Catatan :
- Field kunci harus terdapat dalam kedua file tersebut.
- Field kunci yang dikaitkan harus telah di Index berdasarkan Field kunci.
30. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 9 :
Mengolah Data dengan Form
Page 30 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. PENYIMPANAN DATA
Memasukkan data ke dalam tabel dapat dilakukan dengan beberapa cara, diantarnya
dengan langsung memasukkan kedalam tabel browse atau menggunakan Form. Form digunakan
untuk mengolah data tabel. Kita dapat menambah, mengedit/merubah, menghapus atau mencari
data melalui Form yang telah kita program/rancang dengan cepat dan mudah.
Pemasukkan data pada form kemudian akan disimpan ke dalam database / tabel yang
telah ditentukan. Proses penyimpanan tersebut pada saat kita melakukan event pada objek pada
form, misalnya pada umumnya pada objek Command button. Sintak perintah untuk
penyimpanan yaitu sebagai berikut :
Replace <field_name> With <variable>
Misal Perintah dalam Pemasukkan Data Barang :
Append Blank
Replace kode_brg With Thisform.text1.value
Replace Nm_Brg With Thisform.text2.value
. . .
. . . Atau
Append Blank
Replace Kode_brg with Thisform.text1.value,Nm_Brg With Thisform.text2.value,
. . .
. . .
Catatan :
Perintah Append Blank digunakan apabila kita akan menambahkan data baru kedalam
tabel. Append Blank berfungsi menambahkan record kosong pada tabel. Jika penyimpanan
tersebut berfungsi untuk menggantikan/replace, maka perintah Append Blank tidak digunakan.
31. Diktat Kuliah: Algoritma dan Pemograman III
Page 31 of 67
B. INDEX
File Indeks merupakan file berisi data atau record yang terurut berdasarkan field tertentu.
Kegunaan utama file indeks adalah untuk mencari data tertentu berdasarkan field yang diketahui,
dan untuk pengurutan di laporan (report).
1. Jenis File Indeks
Dilihat dari jenis indeksnya, file indeks dalam Visual foxpro terdiri dari beberapa jenis :
a. File Indeks Primer (Primary Index)
File indeks primer atau file index utama merupakan file indeks yang tidak
memperbolehkan duplikasi data kunci indeks, biasanya dipakai untuk relasi pada tabel
primer (tabel satu).
b. File Indeks Kandidat (Candidate Index)
File indeks kandidat merupakan file indeks seperti file indeks primer, tetapi dalam satu
tabel dapat memiliki lebih dari satu file indeks kandidat.
c. File Indeks Reguler (Reguler Index)
File indeks reguler merupakan file indeks yang memperbolehkan duplikasi data, biasanya
dipakai pada tabel sekunder (tabel banyak).
d. File Indeks Unik (Unique Index)
File indeks unik merupakan file indeks yang tidak sesuai dengan nama. File indeks ini
seperti file indeks reguler, tetapi hanya mencatat nilai kunci pertama dalam file indeks.
2. Membuat File Indeks
Untuk membuat file index ada beberapa cara yaitu :
a. Membuat File Indeks Lewat Table Designer
Untuk membuat file indeks lewat Table Designer, yaitu dengan cara berikut. Pada Table
Designer, pilih halaman Indexes.
b. Membuat File Indeks Lewat Perintah Visual Foxpro
Membuat file indeks lewat perintah, untuk itu indeks jenis .IDX, sintaknya adalah :
Index On <field_kunci> To <FileIndeks> [Ascending|Descending]
Contoh :
Use Tbl_Mhsw
Index On Npm To MhswIdx
32. Diktat Kuliah: Algoritma dan Pemograman III
Page 32 of 67
3. Membuka File Indeks
Dalam Visual foxpro untuk membuka file indeks dapat dilakukan beberapa cara yaitu :
a. Membuka File Indeks Lewat Menu
Pada menu, pilih File > Open
Pilih File of type (IDX, *.CDX), akan tampil file-file indeks
Klik nama file indeks, kemudian klik Ok
b. Membuka File Index Lewat Perintah
Untuk membuka file indeks lewat perintah, bentuk umum perintahnya adalah :
Set Index To <FileIndeksList>
Atau
Use <TableMaster> Index <FileIndeks>
Contoh :
Set Index To MhswIdx
[atau]
Use Tbl_Mhsw Index MhswIdx
4. Memilih File Indeks
Untuk menentukan file indeks yang aktif pada jenis file indeks, gunakan perintah :
Set Order To <indexNumber>
5. Mereindeks Data atau Record
Jika sebuah file indeks sudah tidak sesuai dengan kondisi terbaru, kita dapat mereindeks
ulang (reindeks). Ada beberapa cara untuk mereindeks.
a. Mereindeks Data Lewat Table Designer :
• Buka tabel, kemudian pilih menu View > Browse
• Pilih Table > Rebuild Indexes
b. Mereindeks Data Lewat Perintah Visual Foxpro :
Untuk mereindeks data lewat perintah, gunakan perintah seperti contoh dibawah ini : Use
Tbl_Mhsw
Reindex
33. Diktat Kuliah: Algoritma dan Pemograman III
Page 33 of 67
C. PENCARIAN DATA
Data yang kita inputan/masukkan terkadang ingin kita lihat kembali untuk mengetahui
informasi data tersebut. Misalnya pada data pegawai, kita ingin mengetahui alamat dari pegawai
yang mempunyai NIP = “98012”. Cara pertama kita bisa melihatnya langsung ke tabel browse.
Tetapi hal tersebut bisa kita lakukan mungkin untuk data yang sedikit, untuk data yang banyak,
kita memerlukan waktu yang agak lama untuk pencariannya.
Cara yang cepat yaitu kita membuat Form dan merancang program untuk pencarian data
tersebut. Proses pencarian data kita dapat menggunakan perintah :
a. LOCATE <Expresi-Logika>
b. SEEK <var>
Misal untuk dalam pencarian data barang : Menggunakan Perintah LOCATE
Locate for kd_brg = Thisform.text1.value
If Found()
*Jika diketemukan
. . .
Else
*Jika tidak diketemukan
. . .
Endif
Menggunakan Perintah SEEK Kode = Thisform.Text1.Value Seek Kode
If Found()
*Jika diketemukan
. . .
Else
*Jika tidak diketemukan
. . .
Endif
34. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 10 :
Object Grid. Listbox dan Pageframe
Page 34 of 67
Materi Kuliah :
Algoritma dan Pemograman III
A. OBJECT GRID
Object Grid merupakan salah satu object dalam pembuatan suatu program aplikasi yang
dapat digunakan untuk menampilkan data dari tabel atau juga dapat digunakan dalam
pemasukkan data kedalam tabel. Cara pembuatan Object Grid :
1. Aktifkan/klik object Grid pada tollbal Form Controls Æ
2. Kemudian Drag & Drop pada form designer, sehingga tampilannya seperti gambar dibawah
ini:
3. Kemudian aturlah beberapa properties Grid diantaranya:
Properties Function
AllowAddNew Untuk mengaktifkan grid supaya dapat menambah record. [.T. Or .F.]
ColumnCount Menentukan/membuat jumlah kolom yang diperlukan didalam grid.
DeleteMark Untuk menampilkan atau menghilangkan tanda pada saat penghapusan
(DELETE) pada Grid. [.T. Or .F.]
GridLine Untuk mengatur line/garis pembatas baris/kolom.
ReadOnly Mengatur agar data didalam Grid hanya dapat dibaca.
RecordMark Untuk menampilkan atau menghilangkan tanda pointer didalam Grid.
RecordSource Menentukan sumber data/tabel yang akan ditampilkan didalam Grid.
RecordSourceType Menentukan jenis pemanggilan sumber data tabel.
Setelah pengaturan Object Grid, kemudian atur juga properties tiap-tiap kolom didalam
grid diantaranya Caption Header tiap-tiap column yang ada didalam Grid.
35. Diktat Kuliah: Algoritma dan Pemograman III
Page 35 of 67
B. OBJECT LISTBOX
Object ListBox merupakan object yang fungsinya hampir sama dengan object Grid yaitu
dapat menampilkan data dari tabel atau menampilkan data yang kita atur sendiri pada properties
RowSource dan RowSourceType. Tetapi object ListBox ini tidak dapat berfungsi sebagai input
data kedalam tabel seperti halnya object Grid.
Cara pembuatan Object ListBox :
1. Aktifkan/klik Toolbar ListBox pada Toolbar Form Controls Æ
2. Kemudian Drag & Drop Object tersebut pada Form Designer sehingga akan tampil object
ListBox pada Form seperti gambar :
3. Aturlah Propertiesnya.
Properties Function
RowSource Menetukan Sumber Data
RowSourceType Menentukan/mengatur jenis/tipe data tersebiut ditampilkan kedalam
object ListBox.
C. OBJECT PAGEFRAME
Object PageFrame merupakan object yang berfungsi untuk membagi tampilan menjadi
beberapa frame/bagian. Jadi dalam suatu form dapat dibuat menjadi beberapa page/halaman yang
terpisah menggunakan object PageFrame.
Langkah pembuatan PageFrame :
1. Aktifkan/Klik object PageFrame pada Toolbar
Form Controls Æ
2. Kemudian Drag & Drop object tersebut pada
Form Designer sehingga tampilan object tersebut
seperti gambar.
3. Aturlah beberapa propertiesnya.
Properties Function
PageCount Menentukan jumlah Page/halaman yang diperlukan
TabStyle Mengatur bentuk tampilan perataan Tab/frame
36. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 11 :
Membuat Laporan serta Menu dan
Kompilasi
Page 36 of 67
Materi Kuliah :
Algoritma dan Pemograman III
Sebagian besar konsentrasi dari pengembang aplikasi (programmer) dalam membuat atau
mengembangkan sistem atau program adalah pembuatan laporan (report). Tujuan akhir sistem
atau program hampir dapat dipastikan adalah laporan (pencetakan) ke kertas. Dalam pembuatan
report, pengembang harus membuat report mendekati bentuk laporan manual. Pengaturan printer
yang dimilikinya juga membutuhkan waktu yang banyak, untuk itulah programmer harus
berkonsentrasi pada laporan.
A. Bentuk Laporan
Untuk memahami cara membuat laporan (report) di Visual Foxpro, kita harus memahami
bentuk laporan (layout), yaitu sebagi berikut :
1. Title, merupakan judul laporan, yang akan muncul pada awal laporan.
3. Page Header, Merupakan judul halaman, yang dipakai untuk judul field-field (atribut) pada
laporan.
4. Group Header, merupakan judul group, ditampilkan untuk mengklasifikasi record,
berdasarkan group tertentu pada field.
5. Detail, merupakan bagian untuk menampilkan record data yang berulang.
37. Diktat Kuliah: Algoritma dan Pemograman III
6. Group Footer, dipakai untuk meletakkan subtotal group record tertentu dan letaknya
Page 37 of 67
dibawah.
7. Page Footer, merupakan catatan di bawah halaman, ditampilkan sekali akhir halaman.
8. Summary, merupakan ringkasan yang akan ditampilkan diakhir report.
B. Objek-Objek Pembentuk Laporan
Dalam pembuatan report di Visual Foxpro, kita banyak menggunakan objek-objek
pembentuk report. Kelompok objek pada Toolbar Control Report (Report Control Toolbar),
seperti gambar dibawah ini :
Icon Name Function
Select Object Digunakan untuk memilih objek/mengaktifkan suatu objek
didalam laporan (memindahkan atau menghapus objek).
Label Untuk membuat seperti Judul laporan, informasi/keterangan pada
laporan.
Field Untuk menampilkan data dari tabel dan sering diletakkan pada
bagian Detail pada laporan.
Line Untuk membuat garis pada desain laporan.
Picture Digunakan untuk menampilkan gambar (bisa berupa logo
perusahaan) pada desain laporan.
C. Pembuatan Report Secara Wizard
Sama halnya dalam pembuatan Form, dalam pembuatan Report/laporan juga kita dapat
menggunakan fasilitas Wizard. Dengan menggunakan wizard, kita dapat membuat laporan
dengan mudah dan cepat dengan cara mengikuti langkah-langkahnya.
Langkah Pembuatan Laporan secara Wizard :
1. Pilih menu File – New – Report – Wizard
Pada kotak dialog Wizard Selection, Pilih :
o One-to-Many Report Wizard untuk membuat laporan yang datanya lebih dari satu tabel.
o Report Wizard untuk membuat laporan dari satu tabel.
38. Diktat Kuliah: Algoritma dan Pemograman III
2. Step 1, memilih Field yang akan ditampilkan pada laporan. Urutannya :
o Pilih tabel yang akan dibuat laporan.
o Pilih beberapa/seluruh field yang akan ditampilkan pada laporan.
Untuk memilih Beberapa Field satu Persatu
Untuk Memilih Seluruh Field Tabel
Page 38 of 67
- Klik tombol Next>
3. Step 2, menentukan apakah kita akan melakukan Grouping Record.
4. Step 3, Tentukan Style laporan yang kita ingin inginkan.
5. Step 4, Tentukan bentuk laporan (Column atau Row), jumlah kolom dan posisi kertas.
6. Step 5, Tentukan apakah kita akan melakukan pengurutan data.
7. Step 6, Tentukan Judul untuk laporan tersebut.
9. Kemudian klik FINISH, simpan laporan tersebut.
Menampilkan Field Data pada laporan secara cepat :
1. Pilih Quick Report dari menu Report
2. Pilih nama tabel sumber data
3. Pilih bentuk laporan (Column atau Row)
39. Diktat Kuliah: Algoritma dan Pemograman III
Page 39 of 67
D. Memanggil Laporan
Setelah kita rancang/desain laporan sesuai dengan keinginan kita, kita tinggal
menampilkan laporan tersebut dan melakukan pencetakan ke media kertas atau printer. Untuk
menampilkan hasil desain laporan dari Report Desiger, kita tinggal pilih Print Preview pada
menu File untuk melihat dilayar monitor atau pilih Print untuk mencetak ke printer.
Tetapi untuk memanggil laporan tersebut dari sebuah form yang telah kita buat
sebelumnya, kita memerlukan perintah untuk menampilkan laporan tersebut.
Perintah Untuk memanggil/menampilkan Laporan :
REPORT FORM <nama-file-lap.> PREVIEW Æ Untuk mencetak ke Layar
REPORT FORM <nama-file-lap.> TO PRINTER Æ Untuk mencetak ke printer
Perintah tersebut kita ketikkan pada Command Button yang sebelumnya kita buat pada
Procedure Click.
E. Membuat Menu
Agar program yang dibuat lebihmudah dipakai, pengembang perlu membuat menu. Menu
merupakan salah satu objek Visual Foxpro. Dengan menu, pemakai akhir (end user) hanya
memilih menu untuk menjalankan aplikasi tertentu. File menu di Visual Foxpro mempunyai
extensi file .MNX dan file memonya .MPR.
Perencanaan menu yang tepat sangat penting untuk meyakinkan bahwa semua fungsi
dalam aplikasi yang kita buat akan dimanfaatkan oleh pemakai secara maksimal dan tidah
membingungkan. Pada saat merancang menu pertimbangkan pedoman berikut ini :
o Organisasikan sistem menurut tugas yang akan dilakukan user, bukan menurut hirarki
program dalam aplikasi.
o Berikan judul yang memiki arti yang jelas dan mudah bagi setiap menu.
o Organisasikan item-item menu menurut frekuensi penggunaannya.
o Buat garis pemisah diantara kelompok ke kelompok item menu.
o Batasi jumlah item dimenu pada saat satu layar komputer
o Juka panjangnya melebih panjang layar komputer.
o Jika jumlahnya melebihi panjang layar, buatlah submeu untuk menu item yang sesuai
o Pilih tombol akses dan shortcut keyboard bagi menu dan item menu
o Gunakan kata yang jelas makanya bagi2 item-item menu.
o Gunakan kombinasi huruf besar dan huruf kecil pada item menu.
Untuk menyajikan semua fasilitas seperti diatas, misalnya dibuatlah rancangan menu
sebagai berikut :
Menu Utama Submenu
File Input Data Pegawai
Edit & Hapus Data Pegawai
Pencarian Data Pegawai
Keluar
Laporan Laporan Pegawai keseluruhan
Laporan Pegawai Per Golongan
Info Tentang Program
40. Diktat Kuliah: Algoritma dan Pemograman III
Page 40 of 67
1. Membuat Menu
Untuk membuat menu di Visual Foxpro ada beberapa cara yang bisa kita lakukan, yaitu
diantaranya :
a. Membuat Menu Lewat Menu Utama
Untuk membuat menu lewat menu tama, caranya adalah :
Dari menu utama, pilih File > New
Pilih File Type nya > Menu
Klik New File
b. Membuat Menu Lewat Quick Menu
Untuk membuat menu lewat Quick Menu, langkahnya adalah :
Di Project Manager, pilih tab Other > Menus
Klik tombol New
Pada kotak dialog New Menu, klik Menu sehingga tampil Menu Designer
41. Diktat Kuliah: Algoritma dan Pemograman III
Page 41 of 67
c. Men-generate Menu
Untuk menjalankan menu harus di generate dahulu, sehingga menjadi file berekstensi
.MPR. cara men-generate menu sebagai berikut :
Di Project Manager, pilih tab Other > Menus
Pilih Menu
Pilih Menu > Generate ... > Generate
Tentukan nama file menu tersebut.
2. Membuat Menu SDI ( Single-document Interface )
Menu SDI adalah menu yang tampil pada window in Single-Document Interface (SDI).
Untuk membuat menu SDI, kita harus menandai bahwa menu tersebut akan digunakan pada form
SDI saat kita merancang menu tersebut. Untuk membuat menu SDI, pada saat menu designer
tampil :
a. Pilih menu View – General Options
b. Aktifkan tanda cek Top-Level Form
42. Diktat Kuliah: Algoritma dan Pemograman III
Sekolah Tinggi Teknik (STT) Ibnu Sina Batam
Program Studi : Teknik Informatika Lecturer : Firman, S. Kom
MODUL 12 :
Pratikum : Kode Program
Page 42 of 67
Materi Kuliah :
Algoritma dan Pemograman III
Berikut ini listing kode program MyKode:
******************************************************
* Nama Program : MyCode.prg *
* Keterangan : menggunakan program aplikasi (CODE) *
* menangani 1(satu) tabel MyCode.dbf *
* menggunakan perintah reguler tabel *
* (USE,APPEND,REPLACE,DELETE,PACK) *
* - single user version (exclusive) - *
******************************************************
*--- Set Environtment ---*
Set Talk Off
Set Status Off
Set Status Bar Off
Set Sysmenu Off
Set Escape On
Set Century On
Set Exclusive On
Set Date Italian
*--- bersihkan memori ---*
Clear All
Close All
Close Tables All
*--- persiapan variabel public ---*
Public oFormSort As Form
Public nMaxRec
* jumlah record maksimum (disesuaikan kebutuhan)
nMaxRec = 1000
*--- persiapan tampilan form _SCREEN ---*
With _Screen && form _SCREEN (milik Visual FoxPro)
.Top = 0 && posisi atas
.Left = 0 && posisi kiri
.Width = 700 && lebar form
.Height = 600 && tinggi form
.AutoCenter = .T. && form di tengah layar monitor
.ControlBox = .F. && button controlbox dinon-aktifkan
.Closable = .F. && button close dinon-aktifkan
.MaxButton = .F. && button max dinon-aktifkan
.MinButton = .F. && button min dinon-aktifkan
.ShowTips = .T. && tampilkan semua tooltip text
.BorderStyle = 2 && border diset fix dialog
.Caption = "MyCode - menggunakan perintah native "+;
"(USE,APPEND,REPLACE,PACK)" && judul form
.BackColor = Rgb(128,128,255) && warna latar form
****************************************************
* cara mengisi form _Screen, yaitu: *
* 1. menambahkan objek (nama objek,nama definisi), *
* kemudian *
* 2. mendefinisikan objek bersama atributnya *
43. Diktat Kuliah: Algoritma dan Pemograman III
* (DEFINE CLASS) *
****************************************************
* tambahkan objek Label
.AddObject("Judul1","myJudul1") && label Judul 1
.AddObject("Judul2","myJudul2") && label Judul 2
.AddObject("Waktu", "myWaktu") && timer Waktu Digital
.AddObject("Tanggal","myTanggal") && label Tanggal
.AddObject("Jam", "myJam") && label Jam Digital
.AddObject("Versi", "myVersion") && label Version
.AddObject("Npm", "myKode") && label Kode
.AddObject("Nama", "myNama") && label Nama
.AddObject("JenKel","myJenKel") && label Jenis Kelamin
.AddObject("Alamat","myAlamat") && label Alamat
.AddObject("Kota", "myKota") && label Kota
.AddObject("KodePos","myKodePos") && label Kode Pos
Page 43 of 67
* tambahkan objek Label titik-dua
.AddObject("Titik01","myTitik01") && label Titik Dua
.AddObject("Titik02","myTitik02") && label Titik Dua
.AddObject("Titik03","myTitik03") && label Titik Dua
.AddObject("Titik04","myTitik04") && label Titik Dua
.AddObject("Titik05","myTitik05") && label Titik Dua
.AddObject("Titik06","myTitik06") && label Titik Dua
* tambahkan objek No.Record - label dan text box
.AddObject("NoRecord", "myNoRecord") && label No.Record
.AddObject("txtNoRec", "myNoRec") && No.Record
.AddObject("txtTotRec","myTotRec") && Total Record
* tambahkan objek TextBox
.AddObject("txtKode", "myTxtKode") && Kode
.AddObject("txtNama", "myTxtNama") && Nama
.AddObject("optJenKel", "myOptJenKel") && Jenis Kelamin
.AddObject("txtAlamat", "myTxtAlamat") && Alamat
.AddObject("txtKota", "myTxtKota") && Kota
.AddObject("txtKodePos","myTxtKodePos") && Kode Pos
* tambahkan objek Grid
.AddObject("myGrid","myGrdGrid") && grid myGrid
* tambahkan objek Command Button
.AddObject("cmdFirst", "myFirst") && button First
.AddObject("cmdPrev", "myPrev") && button Previous
.AddObject("cmdNext", "myNext") && button Next
.AddObject("cmdLast", "myLast") && button Last
.AddObject("cmdAdd", "myAdd") && button Add
.AddObject("cmdEdit", "myEdit") && button Edit
.AddObject("cmdDelete","myDelete") && button Delete
.AddObject("cmdSort", "mySort") && button Sort
.AddObject("cmdAbout", "myAbout") && button About
.AddObject("cmdClose", "myClose") && button Close
* tampilkan form _SCREEN
.Show
Endwith
Start() && aktifkan prosedur Start()
SetField(.F.) && aktifkan prosedur SetField()
SetButton(.T.) && aktifkan prosedur SetButton()
GridRefresh() && aktifkan prosedur GridRefresh()
TampilkanData(.T.) && aktifkan prosedur TampilkanData()
Read Events && proses semua event
Return && selesai
*****************************************
44. Diktat Kuliah: Algoritma dan Pemograman III
* definisi objek timer, label, textbox, *
* optiongroup dan command button *
*****************************************
*--- definisi timer myWaktu ---*
Define Class myWaktu As Timer
Top = 0 && posisi atas
Left = 0 && posisi kiri
Interval = 1000 && interval 1 detik
Procedure Timer
Page 44 of 67
* label Jam diisi jam 00:00:00
_Screen.Jam.Caption = Time()
Endproc
Enddefine
*--- definisi label myTanggal ---*
Define Class myTanggal As Label
Top = 10 && posisi atas
Left = 250 && posisi kiri
Width = 200 && lebar label
Height = 20 && tinggi label
Caption = "" && isi label
Alignment = 1 && rata kanan
FontName = "Arial" && jenis huruf
FontSize = 10 && besar huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && label tampil
Enddefine
*--- definisi label myJam ---*
Define Class myJam As Label
Top = 10 && posisi atas
Left = 465 && posisi kiri
Width = 50 && lebar textbox
Height = 20 && tinggi label
Caption = Time() && label diisi jam 00:00:00
Alignment = 1 && rata kanan
FontName = "Arial" && jenis huruf
FontSize = 10 && besar huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && label tampil
Enddefine
*--- definisi label myNoRecord ---*
Define Class myNoRecord As Label
Top = 35 && posisi atas
Left = 350 && posisi kiri
Width = 50 && lebar label
Height = 20 && tinggi label
Caption = "No.Rec.:" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && besar huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && label tampil
Enddefine
*--- definisi textbox myNoRec ---*
Define Class myNoRec As TextBox
Top = 35 && posisi atas
Left = 410 && posisi kiri
Width = 50 && lebar textbox
Height = 24 && tinggi textbox
45. Diktat Kuliah: Algoritma dan Pemograman III
Value = 0 && isi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && besar huruf
BackColor = _Screen.BackColor && warna dasar
DisabledForeColor = Rgb(255,0,0) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
InputMask = "99999" && bentuk masukan
Format = "99999" && bentuk tampilan
Enabled = .F. && textbox tidak aktif
Visible = .T. && textbox tampil
Page 45 of 67
Enddefine
*--- definisi textbox myTotRec ---*
Define Class myTotRec As TextBox
Top = 35 && posisi atas
Left = 465 && posisi kiri
Width = 50 && lebar textbox
Height = 24 && tinggi textbox
Value = 0 && isi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && besar huruf
BackColor = _Screen.BackColor && warna dasar
DisabledForeColor = Rgb(255,0,0) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
InputMask = "99999" && bentuk masukan
Format = "99999" && bentuk tampilan
Enabled = .F. && textbox tidak aktif
Visible = .T. && textbox tampil
Enddefine
*--- 2 judul memberi efek bayangan ---*
*--- definisi label myJudul1 ---*
Define Class myJudul1 As Label && sebagai bayangan judul
Top = 12 && posisi atas
Left = 11 && posisi kiri
Width = 250 && lebar label
Height = 22 && tinggi label
Caption = "Data Akademik STT Ibnu Sina" && isi label
FontName = "Arial" && jenis huruf
FontBold = .T. && huruf tebal
FontSize = 12 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf hitam
BackStyle = 0 && transparan
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myJudul2 ---*
Define Class myJudul2 As Label && sebagai judul (merah)
Top = 10 && posisi atas
Left = 10 && posisi kiri
Width = 250 && lebar label
Height = 22 && tinggi label
Caption = "Data Akademik STT Ibnu Sina" && isi label
FontName = "Arial" && jenis huruf
FontBold = .T. && huruf tebal
FontSize = 12 && ukuran huruf
ForeColor = Rgb(255,0,0) && warna huruf merah
BackStyle = 0 && transparan
BackColor = _Screen.BackColor && warna dasar
46. Diktat Kuliah: Algoritma dan Pemograman III
Visible = .T. && tampil dilayar monitor
Page 46 of 67
Enddefine
*--- definisi label myVersion ---*
Define Class myVersion As Label
Top = 35 && posisi atas
Left = 10 && posisi kiri
Width = 300 && lebar label
Height = 20 && tinggi label
Caption = "Program Studi Teknik Informatika Semester III" && isi label
Alignment = 2 && di tengah
FontName = "Arial" && jenis huruf
FontSize = 10 && besar huruf
FontBold = .T. && huruf tebal
ForeColor = Rgb(0,0,255) && warna huruf biru
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && label tampil
Enddefine
*--- definisi label myKode ---*
Define Class myKode As Label
Top = 55 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 1. No NPM" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myNama ---*
Define Class myNama As Label
Top = 80 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 2. Nama Mhs" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myJenKel ---*
Define Class myJenKel As Label
Top = 105 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 3. Jenis Kelamin" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myAlamat ---*
47. Diktat Kuliah: Algoritma dan Pemograman III
Page 47 of 67
Define Class myAlamat As Label
Top = 130 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 4. Alamat" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myKota ---*
Define Class myKota As Label
Top = 155 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 5. Kota" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label myKodePos ---*
Define Class myKodePos As Label
Top = 180 && posisi atas
Left = 10 && posisi kiri
Width = 100 && lebar label
Height = 20 && tinggi label
Caption = " 6. Kode Pos" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label Titik01 ---*
Define Class myTitik01 As Label
Top = 55 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label Titik02 ---*
Define Class myTitik02 As Label
Top = 80 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
48. Diktat Kuliah: Algoritma dan Pemograman III
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Page 48 of 67
Enddefine
*--- definisi label Titik03 ---*
Define Class myTitik03 As Label
Top = 105 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label Titik04 ---*
Define Class myTitik04 As Label
Top = 130 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label Titik05 ---*
Define Class myTitik05 As Label
Top = 155 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
Visible = .T. && tampil dilayar monitor
Enddefine
*--- definisi label Titik05 ---*
Define Class myTitik06 As Label
Top = 180 && posisi atas
Left = 120 && posisi kiri
Width = 10 && lebar label
Height = 20 && tinggi label
Caption = ":" && isi label
FontName = "Arial" && jenis huruf
FontSize = 10 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
BackColor = _Screen.BackColor && warna dasar
49. Diktat Kuliah: Algoritma dan Pemograman III
Visible = .T. && tampil dilayar monitor
Page 49 of 67
Enddefine
*--- definisi textbox myTxtKode ---*
Define Class myTxtKode As TextBox
Top = 55 && posisi atas
Left = 135 && posisi kiri
Width = 50 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
MaxLength = 5 && panjang maksimum isian textbox
Value = "" && nilai textbox dokosongkan
Visible = .T. && tampil di layar monitor
Enddefine
*--- definisi textbox myTxtNama ---*
Define Class myTxtNama As TextBox
Top = 80 && posisi atas
Left = 135 && posisi kiri
Width = 380 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
MaxLength = 50 && panjang maksimum isian textbox
Value = "" && nilai textbox dokosongkan
Visible = .T. && tampil di layar monitor
Enddefine
*--- definisi optiongroup myOptJenKel ---*
Define Class myOptJenKel As OptionGroup
Top = 105 && posisi atas
Left = 135 && posisi kiri
Width = 200 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
ButtonCount = 2 && 2 pilihan Laki-laki atau Perempuan
Enabled = .T. && optiongroup di-aktifkan
Visible = .T. && tampil di layar monitor
Enddefine
*--- definisi textbox myTxtAlamat ---*
Define Class myTxtAlamat As TextBox
Top = 130 && posisi atas
Left = 135 && posisi kiri
Width = 380 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
50. Diktat Kuliah: Algoritma dan Pemograman III
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
MaxLength = 50 && panjang maksimum isian textbox
Value = "" && nilai textbox dokosongkan
Visible = .T. && tampil di layar monitor
Page 50 of 67
Enddefine
*--- definisi textbox myTxtKota ---*
Define Class myTxtKota As TextBox
Top = 155 && posisi atas
Left = 135 && posisi kiri
Width = 380 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
MaxLength = 50 && panjang maksimum isian textbox
Value = "" && nilai textbox dokosongkan
Visible = .T. && tampil di layar monitor
Enddefine
*--- definisi textbox myTxtKodePos ---*
Define Class myTxtKodePos As TextBox
Top = 180 && posisi atas
Left = 135 && posisi kiri
Width = 60 && lebar textbox
Height = 24 && tinggi textbox
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
BackColor = Rgb(255,255,255) && warna dasar
DisabledForeColor = Rgb(0,0,255) && warna non-aktif
DisabledBackColor = Rgb(224,224,224) && warna non-aktif
MaxLength = 5 && panjang maksimum isian textbox
Value = "" && nilai textbox dokosongkan
Visible = .T. && tampil di layar monitor
Enddefine
*--- definisi grid myGrdGrid ---*
Define Class myGrdGrid As Grid
Top = 210 && posisi atas
Left = 10 && posisi kiri
Width = 520 && lebar grid
Height = 265 && tinggi grid
ColumnCount = 6 && jumlah kolom
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,255) && warna huruf
SplitBar = .F. && splitbar di-non-aktifkan
* tambahkan prosedur AfterRowColChange
Procedure AfterRowColChange
* parameter harus ada, tapi tidak digunakan
Lparameters nColIndex
* aktifkan prosedur TampilkanData()
51. Diktat Kuliah: Algoritma dan Pemograman III
Page 51 of 67
TampilkanData(.T.)
Endproc
Enddefine
*--- definisi command button myFirst ---*
Define Class myFIRST As CommandButton
Top = 500 && posisi atas
Left = 10 && posisi kiri
Width = 40 && lebar button
Height = 25 && tinggi button
Caption = "|<" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Record Awal" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button FIRST diklik
Select MyCode && aktifkan tabel MyCode.dbf
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("Sorry.....File Kosong!")
Else && jika file isi, maka:
If Recno()=1 && jika posisi di record awal, maka:
* tampilkan pesan
TampilkanSorry("Sorry.....Top Of File!")
Else && jika posisi tidak di record awal, maka:
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("Permulaan...")
Endif
Endif
Endproc
Enddefine
*--- definisi command button myPrev ---*
Define Class myPREV As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdFirst.Left + ;
_Screen.cmdFirst.Width && posisi kiri
Width = _Screen.cmdFirst.Width && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "<" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Record Sebelumnya" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button NEXT diklik
Select MyCode && aktifkan tabel MyCode.dbf
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("Sorry..... File kosong!")
Else && jika file isi, maka:
If Recno()=1 && jika posisi di record awal, maka:
* tampilkan pesan
TampilkanSorry("Sorry.....Top of File!")
Else
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("PREV")
Endif
52. Diktat Kuliah: Algoritma dan Pemograman III
Page 52 of 67
Endif
Endproc
Enddefine
*--- definisi command button myNext ---*
Define Class myNEXT As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdPrev.Left + ;
_Screen.cmdPrev.Width && posisi kiri
Width = _Screen.cmdFirst.Width && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = ">" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Record Berikutnya" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button NEXT diklik
Select MyCode && aktifkan tabel MyCode.dbf
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....file kosong!")
Else && jika file isi, maka:
* jika posisi di record akhir, maka:
If Recno() = Reccount()
* tampilkan pesan
TampilkanSorry("SORRY.....end of file!")
Else && jika posisi tidak di record akhir, maka:
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("NEXT")
Endif
Endif
Endproc
Enddefine
*--- definisi command button myLast ---*
Define Class myLAST As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdNext.Left + ;
_Screen.cmdNext.Width && posisi kiri
Width = _Screen.cmdFirst.Width && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = ">|" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Record Akhir" && keterangan singkat
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button LAST diklik
Select MyCode && aktifkan tabel MyCode.dbf
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....file kosong!")
Else && jika file isi, maka:
* jika posisi di record akhir, maka:
If Recno() = Reccount()
* tampilkan pesan
TampilkanSorry("SORRY.....end of file!")
Else && jika posisi tidak di record akhir, maka:
53. Diktat Kuliah: Algoritma dan Pemograman III
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("LAST")
Page 53 of 67
Endif
Endif
Endproc
Enddefine
*--- definisi command button myAdd ---*
Define Class myADD As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdLast.Left + ;
_Screen.cmdLast.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "ADD" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Tambah Data" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button ADD diklik
Local nRecPos && variabel lokal
Select MyCode && aktifkan tabel MyCode.dbf
* periksa isi button
If Thisform.cmdAdd.Caption = "ADD" && tambah data
* jika jumlah record maksimum, maka:
If Reccount() >= nMaxRec
* tampilkan pesan
TampilkanSorry("SORRY.....maksimum record 1.000!")
* posisi kursor di field Kode
Thisform.txtKode.SetFocus
Else && jika jumlah record belum maksimum, maka:
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("ADD")
Endif
Else && simpan data (SAVE)
* jika Kode kosong, maka:
If Empty(Thisform.txtKode.Value)
* tampilkan pesan
TampilkanSorry("SORRY.....No NPM kosong!")
* posisi kursor di field Kode
Thisform.txtKode.SetFocus
Else && jika Kode isi, maka:
nRecPos = Recno() && posisi record sekarang
* cari Kode yang sama
Locate For MyCode.Kode=Thisform.txtKode.Value
If Found() && jika Kode sama, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....No NPM sudah ada!")
* posisi kursor di field Kode
Thisform.txtKode.SetFocus
Go nRecPos && menuju record xRecPos
Else && jika Kode tidak sama, maka:
Append Blank && tambahkan record kosong
* isi dengan data berikut ini:
Replace MyCode.Kode With ;
ThisForm.txtKode.Value
Replace MyCode.Nama With ;
54. Diktat Kuliah: Algoritma dan Pemograman III
ThisForm.txtNama.Value
If Thisform.optJenKel.Value = 1
Replace MyCode.JenKel With "Laki-laki"
Page 54 of 67
Else
Replace MyCode.JenKel With "Perempuan"
Endif
Replace MyCode.Alamat With ;
ThisForm.txtAlamat.Value
Replace MyCode.Kota With ;
ThisForm.txtKota.Value
Replace MyCode.KodePos With ;
ThisForm.txtKodePos.Value
Flush && pastikan data disimpan
Go Bottom && menuju record akhir
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("SAVE")
Endif
Endif
Endif
Endproc
Enddefine
*--- definisi command button myEdit ---*
Define Class myEDIT As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdAdd.Left + ;
_Screen.cmdAdd.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "EDIT" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Ubah Data" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button EDIT diklik
Select MyCode && aktifkan tabel MyCode.dbf
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....file kosong!")
Else && jika file isi, maka:
Do Case && periksa isi (caption) button
Case Thisform.cmdEdit.Caption="EDIT" && ubah data
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("EDIT")
Case Thisform.cmdEdit.Caption="SAVE" && simpan data
* simpan data berikut ini:
Replace MyCode.Nama With ;
ThisForm.txtNama.Value
If Thisform.optJenKel.Value = 1
Replace MyCode.JenKel With "Laki-laki"
Else
Replace MyCode.JenKel With "Perempuan"
Endif
Replace MyCode.Alamat With ;
ThisForm.txtAlamat.Value
Replace MyCode.Kota With ;
ThisForm.txtKota.Value
55. Diktat Kuliah: Algoritma dan Pemograman III
Replace MyCode.KodePos With ;
ThisForm.txtKodePos.Value
Flush && pastikan data disimpan dalam tabel
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("SAVE")
Otherwise && batal (CANCEL)
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("SAVE")
Page 55 of 67
Endcase
Endif
Endproc
Enddefine
*--- definisi command button myDelete ---*
Define Class myDELETE As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdEdit.Left + ;
_Screen.cmdEdit.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "DELETE" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Hapus Data" && keterangan singkat
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button DELETE diklik
Local xYesNo, xRecSek && variabel lokal
Select MyCode && aktifkan tabel MyCode.dbf
xRecSek = Recno() && variabel posisi record sekarang
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....file kosong!")
Else && jika file isi, maka:
* periksa isi button (Caption)
If Thisform.cmdDelete.Caption="DELETE" && hapus data
* tampilkan pesan untuk memilih YES atau NO
If Messagebox("Anda ingin menghapus data ini?",;
4+32+256,"Konfirmasi") = 6 && pilih YES
Delete && hapus data
Pack && pastikan data terhapus dalam tabel
* aktifkan prosedur GridRefresh()
GridRefresh()
* aktifkan prosedur SetButton()
SetButton(.T.)
* aktifkan prosedur SetField()
SetField(.F.)
If Reccount()=0 && jika tabel kosong, maka:
* aktifkan prosedur TampilkanData()
TampilkanData(.F.)
* tampilkan pesan
Messagebox("Data Anda sudah dihapus.....!"+;
CHR(13)+Chr(13)+"SORRY.....file
kosong!",;
0,"Delete")
Else
* jika posisi record > jumlah record
If xRecSek > Reccount()
56. Diktat Kuliah: Algoritma dan Pemograman III
Go Bottom && menuju record akhir
Page 56 of 67
Else
Go xRecSek && menuju record sekarang
Endif
* aktifkan prosedur TampilkanData()
TampilkanData(.T.)
* tampilkan pesan
Messagebox("Data Anda sudah dihapus.....!",;
0,"Delete")
Endif
Else
* aktif prosedur TampilkanRecord()
TampilkanRecord("SAVE")
Endif
Else
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("SAVE")
Endif
Endif
Endproc
Enddefine
*--- definisi command button mySort ---*
Define Class mySORT As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdDelete.Left + ;
_Screen.cmdDelete.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "SORT" && isi button
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Urut Data" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button SORT diklik
Local nRecPos && variabel lokal
Select MyCode && aktifkan tabel MyCode.dbf
nRecPos = Recno() && variabel posisi record sekarang
If Reccount() = 0 && jika file kosong, maka:
* tampilkan pesan
TampilkanSorry("SORRY.....file kosong!")
Else && jika file isi, maka:
SortData() && aktifkan prosedur SortData()
Go nRecPos && menuju posisi record sekarang
* aktifkan prosedur TampilkanRecord()
TampilkanRecord("SORT")
Endif
Endproc
Enddefine
*--- definisi command button myAbout ---*
Define Class myABOUT As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdSort.Left + ;
_Screen.cmdSort.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "ABOUT" && isi button
57. Diktat Kuliah: Algoritma dan Pemograman III
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor = Rgb(0,0,0) && warna huruf
ToolTipText = "Tentang Program" && tips kecil
Visible = .T. && tampil di layar monitor
Procedure Click && aktif, jika button ABOUT diklik
Page 57 of 67
* tampilkan pesan
Messagebox("Program ini dimamfaatkan untuk kebutuhan Mahasiswa"+;
CHR(13)+"Teknik Informatika Semester III STT Ibnu Sina Batam"+;
CHR(13)+"Contoh Coding Pemograman Materi Algoritma dan Pemograman
III"+;
CHR(13)+Chr(13)+"Semoga bermanfaat.....",0,"About")
Endproc
Enddefine
*--- definisi command button myClose ---*
Define Class myCLOSE As CommandButton
Top = _Screen.cmdFirst.Top && posisi atas
Left = _Screen.cmdAbout.Left + ;
_Screen.cmdAbout.Width && posisi kiri
Width = _Screen.cmdFirst.Width + 20 && lebar button
Height = _Screen.cmdFirst.Height && tinggi button
Caption = "CLOSE" && isi button
Cancel = .T. && aktif jika tombol ESC ditekan
FontName = "Arial" && jenis huruf
FontSize = 9 && ukuran huruf
ForeColor =Rgb(0,0,0) && warna huruf
ToolTipText="Selesai, kembali ke Windows" && tips kecil
Visible =.T. && tampil di layar monitor
Procedure Click && aktif, jika button CLOSE diklik
* tampilkan pesan, pilih YES atau NO
If Messagebox("Anda ingin selesai?",4+32,;
"Konfirmasi") = 6 && pilihan YES
Stop() && aktifkan prosedur Stop()
Endif
Endproc
Enddefine
******************************
* definisi prosedur-prosedur *
******************************
*--- prosedur SetButton ---*
Procedure SetButton
Parameters xPar && menerima variabel kiriman
* mengatur button dalam form _SCREEN
With _Screen
.cmdFirst.Enabled = xPar && button ON/OFF
.cmdPrev.Enabled = xPar && button ON/OFF
.cmdNext.Enabled = xPar && button ON/OFF
.cmdLast.Enabled = xPar && button ON/OFF
.cmdAdd.Enabled = xPar && button ON/OFF
.cmdEdit.Enabled = xPar && button ON/OFF
.cmdDelete.Enabled = xPar && button ON/OFF
.cmdSort.Enabled = xPar && button ON/OFF
.cmdAbout.Enabled = xPar && button ON/OFF
.cmdClose.Enabled = xPar && button ON/OFF
If xPar = .T.
.cmdAdd.Caption = "ADD" && isi button
.cmdEdit.Caption = "EDIT" && isi button
58. Diktat Kuliah: Algoritma dan Pemograman III
.cmdDelete.Caption = "DELETE" && isi button
.cmdAdd.ToolTipText = "Tambah Data" && tips
.cmdEdit.ToolTipText = "Ubah Data" && tips
.cmdDelete.ToolTipText = "Hapus Data" && tips
Page 58 of 67
Endif
Endwith
Endproc
*--- prosedur SetField ---*
Procedure SetField
Parameters xPar && menerima variabel kiriman
* mengatur field dalam form _SCREEN
With _Screen
.txtKode.Enabled = xPar && textbox ON/OFF
.txtNama.Enabled = xPar && textbox ON/OFF
.optJenKel.Enabled = xPar && textbox ON/OFF
.txtAlamat.Enabled = xPar && textbox ON/OFF
.txtKota.Enabled = xPar && textbox ON/OFF
.txtKodePos.Enabled = xPar && textbox ON/OFF
If xPar && jika bernilai TRUE, maka:
* warna dasar putih
.optJenKel.BackColor = Rgb(255,255,255)
.optJenKel.Option1.BackColor = Rgb(255,255,255)
.optJenKel.Option2.BackColor = Rgb(255,255,255)
Else && jika bernilai FALSE, maka:
* warna dasar abu-abu
.optJenKel.BackColor = Rgb(224,224,224)
.optJenKel.Option1.BackColor = Rgb(224,224,224)
.optJenKel.Option2.BackColor = Rgb(224,224,224)
Endif
.myGrid.Enabled = Not xPar && grid ON/OFF
Endwith
Endproc
*--- prosedur TampilkanData ---*
Procedure TampilkanData
Parameters xPar && menerima variabel kiriman
If xPar && jika bernilai TRUE, maka:
* tampilkan data berikut
With _Screen
.txtNoRec.Value = Recno() && NoRec
.txtTotRec.Value = Reccount() && TotRec
.txtKode.Value = MyCode.Kode && Kode
.txtNama.Value = MyCode.Nama && Nama
If MyCode.JenKel = "Laki-laki"
.optJenKel.Value = 1 && JenKel
Else
.optJenKel.Value = 2 && JenKel
Endif
.txtAlamat.Value = MyCode.Alamat && Alamat
.txtKota.Value = MyCode.Kota && Kota
.txtKodePos.Value = MyCode.KodePos && KodePos
.myGrid.Refresh
Endwith
Else && jika bernilai FALSE, maka
* tampilkan data berikut
With _Screen
.txtNoRec.Value = Reccount()+1 && NoRec
.txtTotRec.Value = Reccount() && TotRec
59. Diktat Kuliah: Algoritma dan Pemograman III
.txtKode.Value = "" && isi textbox Kode
.txtNama.Value = "" && isi textbox Nama
.optJenKel.Value = 1 && isi textbox JenKel
.txtAlamat.Value = "" && isi textbox Alamat
.txtKota.Value = "" && isi textbox Kota
.txtKodePos.Value = "" && isi textbox KodePos
Page 59 of 67
Endwith
Endif
Endproc
*--- prosedur TampilkanRecord ---*
Procedure TampilkanRecord
Parameters cPar && menerima variabel kiriman
Do Case
Case cPar = "FIRST"
Go Top && menuju record awal
Case cPar = "PREV"
Skip -1 && menuju record sebelumnya
Case cPar = "NEXT"
Skip && menuju record berikutnya
Case cPar = "LAST"
Go Bottom && menuju record akhir
Case cPar = "ADD"
SetButton(.F.) && aktifkan prosedur SetButton()
SetField(.T.) && aktifkan prosedur SetField()
With _Screen
.cmdAdd.Enabled = .T. && aktifkan button cmdADD
.cmdEdit.Enabled = .T. && aktifkan button cmdEDIT
.cmdAdd.Caption = "SAVE" && isi button cmdADD
.cmdEdit.Caption = "CANCEL" && isi button cmdEDIT
.cmdAdd.ToolTipText = "Simpan Data" && tip kecil
.cmdEdit.ToolTipText = "Batal" && tip kecil
.txtKode.SetFocus && kursor di field txtKode
Endwith
Case cPar = "EDIT"
SetButton(.F.) && aktifkan prosedur SetButton()
SetField(.T.) && aktifkan prosedur SetField()
With _Screen
.txtKode.Enabled = .F. && textbox Kode nonaktif
.cmdEdit.Enabled = .T. && button cmdEDIT aktif
.cmdDelete.Enabled = .T. && button cmdDELETEaktif
.cmdEdit.Caption = "SAVE" && button cmdEDIT
.cmdDelete.Caption = "CANCEL" && button cmdDELETE
.cmdEdit.ToolTipText ="Simpan Data" && tip kecil
.cmdDelete.ToolTipText="Batal" && tip kecil
.txtNama.SetFocus && kursor di field txtNama
Endwith
Case cPar = "SAVE"
SetButton(.T.) && aktifkan prosedur SetButton()
SetField(.F.) && aktifkan prosedur SetField()
Otherwise
SetButton(.T.) && aktifkan prosedur SetButton()
SetField(.F.) && aktifkan prosedur SetField()
Endcase
If cPar = "ADD"
TampilkanData(.F.) && aktif prosedur TampilkanData()
Else
TampilkanData(.T.) && aktif prosedur TampilkanData()