Oleh
Firman, S. Kom
Sekolah Tinggi Teknik
STT IBNU SINA
Batam
Diktat Kuliah: Algoritma dan Pemograman I
KATA PENGANTAR
Bismillahirrohmanirrohim
Puju syukur kehadirat ALLAH SWT yang telah melimpahkan rahmatnya, yang telah
memberikan nikmat kesehatan serta kesempatan yangdiberikan hingga dapat menyelesaikan
pembuatan modul Algoritma dan Pemograman III ini.
Modul ini disusun untuk membantu para mahasiswa dalam mencari referensi kuliah program
studi Teknik Informatika STT Ibnu Sina Batam serta menambah ilmu pengetahuan.
Didalam Referensi ini tentunya tidak terlepas dari kesalahan dan kekurangan, maka dari itu
diharapkan juga agar dapat menambah referensi lain dari berbagai sumber.
Wassallamu’alaikum, wr, wb
Penyusun
Page 2 of 80
Diktat Kuliah: Algoritma dan Pemograman I
DAFTAR ISI
Page 3 of 80
Diktat Kuliah: Algoritma dan Pemograman I
C. Pengaturan Properties………………………………………………………… 21
D. Event Object………………………………………………………………….. 21
Page 4 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 5 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
Page 6 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 7 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
(-): 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)
rd
The 3 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
Page 8 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
D. DASAR PEMROGRAMAN
Page 9 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 10 of 80
Diktat Kuliah: Algoritma dan Pemograman I
...
ENDIF
ENDWITH
ENDPROC
Contoh skema program utama dan sub-sub programnya
Page 11 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan
penanganan informasi atau penggambaran secara grafik dari langkah-langkah dan urut-urutan
prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan
masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-
alternatif lain dalam pengoperasian. System flowchart adalah urutan proses dalam system
dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses
pengolahan data. Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi)
dengan proses lainnya dalam suatu program.
Page 12 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 13 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 14 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
IF <kondisi>
………………………
……………………… Bagian program yang dijalankan bila
……………………… kodisi terpenuhi/benar
ENDIF
IF
<Bagian program yang akan dijalankan bila kondisi benar>
ELSE
<Bagian program yang akan dijalankan bila kondisi salah>
ENDIF
Page 15 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 16 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Perulangan memungkinkan kita mengeksekusi satu atau lebih baris kode sebanyak yang
kita kehendaki. Terdapat tiga perintah di Visual Foxpro yang dipakai untuk perulangan, yaitu :
Page 17 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 18 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 19 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Program adalah kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai
menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang
diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh
computer. Program Dibuat dengan tujuan untuk mempermudah user dalam memberikan instruksi
atau perintah ke computer.
Bahasa Pemograman merupakan prosedur/tata cara penulisan program. Pada bahasa
pemrograman terdapat dua faktor penting, yaitu sintaks dan semantik. Sintaks adalah aturan
gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan. Semantik adalah
aturan-aturan untuk menyatakan arti. Fungsi Bahasa pemrograman adalah sebagai media untuk
menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.
Page 20 of 80
Diktat Kuliah: Algoritma dan Pemograman I
B. Visual Foxpro 9
Visual FoxPro 9 adalah bahasa pemograman berbasiskan prosedur yang pertama kali
dikembangkan oleh Fox Techonologies pada awal tahun 1984. Program ini dikembangkan untuk
menyaingi dBase II. Dalam perkembangannya Foxpro tetap memperhatikan kemampuan
pemograman prosedural dan dilengkapi dengan pemograman berorientasi objek. FoxPro
pertama kali dikembangkan berbasis text dan dapat dijalankan pada MS-DOS, Windows, Mac
OS, dan UNIX. Versi terakhir dari FoxPro adalah versi 9.0 dan service pack untuk versi 9.0
dirilis pada tahun 2007
Microsoft Visual Fox Pro adalah salah satu bahasa pemrograman prosedural dan bahasa
pemrograman berorientasi objek yang dikembangkan oleh Microsoft. Visual Foxpro dikenal
sebagai Software Developer Tool menyediakan pula fasilitas prototyping dan RAD untuk
membangun aplikasi yang cepat.
Software ini dimulai dari FoxPro (FoxBASE) yang awalnya dikembangkan oleh Fox
Technology pada 1984.Fox Technology kemudian bergabung dengan Microsoft pada
1992.Awalnya Foxpro dapat berjalan pada sistem operasi Mac OS, DOS, Windows, dan UNIX
(2.6 Version) tapi pada perkembangannya (3.0 Version) hanya mampu berjalan pada Mac OS
dan Windows saja, bahkan pada versi-versi berikutnya hanya berjalan pada Windows saja.
Visual FoxPro 9.0 merupakan sarana pemrograman yang handal dan banyak digunakan
dalam pembuatan aplikasi karena dapat menggabungkan sisi efisiensi dan nilai estetika pada
sebuah aplikasi.
Page 21 of 80
Diktat Kuliah: Algoritma dan Pemograman I
pemrograman lain VFP sudah berorientasi obyek sejak pertama kali diperkenalkannya
Visual FoxPro 3 di Windows 3.1.
c. Alasan ketiga, Visual FoxPro is extremely fast database engine … seberapa cepat VFP
dapat berlari?
d. Alasan keempat, Visual FoxPro is remote access data … VFP mendukung untuk
mengakses data diluar dari database native yang dimilikinya, seperti Microsoft SQL
Server, Oracle, mySQL, PostGreSQL, Thunderbird, Access dan lain sebagainya dengan
menggunakan koneksi ODBC dan ADO.
e. Alasan kelima, Visual FoxPro is excellent RAD tools … dimana dengan kemampuan
OOP yang dimiliki oleh VFP, kita dapat membangun sebuah aplikasi yang cepat
berdasarkan class yang sudah kita bangun sebelumnya. Bahkan kalau seandainya ada
perubahan interface atau business rules, dengan mudah kita ubah berdasarkan classnya.
It’s really Rapid Application Development Tools.
f. Alasan keenam, Visual FoxPro is COM Based Complaint … merupakan standar
komponen yang dapat digunakan oleh bahasa pemrograman lain yang juga COM Based
Complaint, sehingga memungkinkan suatu proyek aplikasi yang besar dibuat lebih dari 1
bahasa pemrograman … sebagai contoh, modul inventory dibuat dengan VFP, modul
sales dibuat dengan Delphi, sedangkan menu utamanya dibuat dengan Visual Basic.
g. Alasan ketujuh, Visual FoxPro is web-enabled … membuat aplikasi berbasis web
bukanlah sesuatu yang sulit bagi VFP, dimana VFP menyediakan fasilitas FoxISAPI
sebagai penghubung VFP dengan Web-Server. Atau jika ingin menggunakan fasilitas
ASP atau ASP.NET.
h. Alasan kedelapan, Visual FoxPro is backwards compatibility… hal ini memudahkan
bagi rekan-rekan programmer yang masih menggunakan FoxPro for Dos/Windows untuk
beralih ke VFP, karena syntax yang biasa sudah dikenal di FoxPro for DOS/Windows
masih dikenal dengan baik oleh VFP sehingga memungkinkan aplikasi yang dibuat
dengan FoxPro for DOS/Windows dapat berjalan dengan baik di VFP (dengan sedikit
perbedaan di tampilan layar, mengingat VFP sudah menggunakan fasilitas Windows GUI
32Bit).
i. Alasan kesembilan, Visual FoxPro is flexible & easy to use … kalimat ini bukan sekedar
jargon, tetapi memang benar-benar mudah menggunakan VFP, bahkan bagi seseorang
yang tidak mengerti bahasa pemrograman sekalipun. Lebih dari selusin Wizard yang
disediakan oleh VFP untuk mempermudah pemakai menggunakan fasilitas didalamnya,
dari Wizard membuat tabel hingga Wizard membuat aplikasi berikut interface-nya.
j. Alasan kesepuluh, Visual Foxpro is supported by Microsoft … microsoft memiliki
komitmen untuk terus mengembangkan Visual Foxpro.
k. Visual Foxpro merupakan Software yang tangguh dalam merncang sistem Basis Data,
penggunaan prototyping dan RAD –nya pun memiliki fitur – fitur yang lengkap untuk
membangun basis data. Dimana tujuan dari prototyping adalah (menurut banyak para
software developer ) adalah:
Page 22 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Visual Foxpro menyediakan fasilitas seperti : wizards, builders, toolbars, and designers
dan project manager yang mampu membangun aplikasi dengan cepat. Prototype yang dihasilkan
lebih berkuliatas dan bermutu yang bahkan dapat dengan mudah dikembangkan untuk digunakan
sebagai sistem informasi tanpa harus membuang prototype dan melakukan rancang bangun
kembali.
Page 23 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
Page 24 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
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
Page 25 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
disebut Method.
Page 26 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 27 of 80
Diktat Kuliah: Algoritma dan Pemograman I
1 Ok, Cancel
4 Yes, No
5 Retry, Cancel
48 MESSAGEBOX("System
Error”+Chr(13)+”System akan Dishutdown
Sekarang.",16)
64 IF MESSAGEBOX("
Apakah Program Akan Ditutup??",36)=6
QUIT
ENDIF
Page 28 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 29 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 30 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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)
Seperti contoh diatas dalam Gambar 6.2, project diatas memiliki file Free Tables
(Tek_Inf.dbf) dengan field-field yang dibutuhkan.
Page 31 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
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.
Page 32 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
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.
Page 33 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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)
Page 34 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
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]
Page 35 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
Page 36 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Contoh :
CREATE TABLE Customer (MyField i AUTOINC NEXTVALUE 1 STEP 1, name
c(40))
Page 37 of 80
Diktat Kuliah: Algoritma dan Pemograman I
A. PENULISAN FIELD
Penulisan nama field, tidak boleh menggunakan spasi dan tidak menggunakan tanda
koma (,), tanda pipe (|) dan tanda seru (!).
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 Digunakan untuk menampung banyaknya data karakter . dengan
(Binary) 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.
Page 38 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
Page 39 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 40 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Untuk melihat hasilnya bahwa data telah dihapus, ketikkan perintah Browse.
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>
Page 41 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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 :
Page 42 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
Page 43 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
Page 45 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 46 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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:
Properties Function
AllowAddNew Untuk mengaktifkan grid supaya dapat menambah record. [.T. Or .F.]
Setelah pengaturan Object Grid, kemudian atur juga properties tiap-tiap kolom didalam
grid diantaranya Caption Header tiap-tiap column yang ada didalam Grid.
Page 47 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
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
Page 48 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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.
Page 49 of 80
Diktat Kuliah: Algoritma dan Pemograman I
10. Group Footer, dipakai untuk meletakkan subtotal group record tertentu dan letaknya
dibawah.
11. Page Footer, merupakan catatan di bawah halaman, ditampilkan sekali akhir halaman.
12. Summary, merupakan ringkasan yang akan ditampilkan diakhir report.
Page 50 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 51 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 52 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 53 of 80
Diktat Kuliah: Algoritma dan Pemograman I
c. Men-generate Menu
Untuk menjalankan menu harus di generate dahulu, sehingga menjadi file berekstensi
.MPR. cara men-generate menu sebagai berikut :
Page 54 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 55 of 80
Diktat Kuliah: Algoritma dan Pemograman I
* (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
* 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
*****************************************
Page 56 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 57 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 58 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 59 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 60 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 61 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 62 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 63 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
Page 64 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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:
Page 65 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 66 of 80
Diktat Kuliah: Algoritma dan Pemograman I
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
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
Page 67 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 68 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 69 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 70 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 71 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 72 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Endif
Endproc
*--- prosedur TampilkanSorry ---*
Procedure TampilkanSorry
Parameters cPar && menerima variabel kiriman
Messagebox(cPar,0,"SORRY") && tampilkan pesan SORRY
Endproc
*--- prosedur GridRefresh ---*
Procedure GridRefresh
* me-refresh grid myGrid
With _Screen.myGrid
.HighlightStyle = 2 && warna dasar dipilih
.HighlightForeColor = Rgb(0,0,255) && huruf
.HighlightBackColor = Rgb(224,224,224) && dasar
.SelectedItemForeColor = Rgb(0,0,0) && huruf
.SelectedItemBackColor = Rgb(128,255,128) && dasar
.RecordSource = "MyCode" && tabel MyCode
.RecordSourceType = 1 && tipe alias
.AllowAutoColumnFit = 2 && kolom tetap
.AllowHeaderSizing = .F. && header tidak bisa diubah
.DeleteMark = .F. && tidak bisa dihapus
.ReadOnly = .T. && tidak bisa diubah
.Visible = .T. && tampilkan di layar monitor
* lebar masing-masing kolom
.Column1.Width = 50 && lebar kolom1
.Column2.Width = 200 && lebar kolom2
.Column3.Width = 100 && lebar kolom3
.Column4.Width = 200 && lebar kolom4
.Column5.Width = 200 && lebar kolom5
.Column6.Width = 60 && lebar kolom6
* judul masing-masing kolom
.Column1.Header1.Caption = "No NPM" && judul kolom1
.Column2.Header1.Caption = "Nama Mahasiswa" && judul kolom2
.Column3.Header1.Caption = "Jen.Kel." && judul kolom3
.Column4.Header1.Caption = "Alamat" && judul kolom4
.Column5.Header1.Caption = "Kota" && judul kolom5
.Column6.Header1.Caption = "Kode POS" && judul kolom6
Endwith
* me-refresh optiongroup optJenKel
With _Screen.optJenKel
.ForeColor = Rgb(0,0,255) && warna huruf
.BackColor = Rgb(224,224,224) && warna dasar
* mengatur optiongroup.Option1
.Option1.Top = 2 && posisi atas
.Option1.Left = 10 && posisi kiri
.Option1.Width = 80 && lebar option1
.Option1.Height = 22 && tinggi option1
.Option1.ForeColor = Rgb(0,0,0) && warna non-aktif
.Option1.BackColor = Rgb(224,224,224) && non-aktif
.Option1.Caption = "Laki-laki" && isi option1
* mengatur optiongroup.Option2
.Option2.Top = 2 && posisi atas
.Option2.Left = 100 && posisi kiri
.Option2.Width = 80 && lebar option1
.Option2.Height = 22 && tinggi option1
.Option2.ForeColor = Rgb(0,0,0) && warna non-aktif
.Option2.BackColor = Rgb(224,224,224) && non-aktif
Page 73 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 74 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 75 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Caption = "OK", ;
Top = 120, ;
Left = 150, ;
Width = 60, ;
Height = 25, ;
ToolTipText = "Proses dilanjutkan", ;
Visible = .T.
*--- tambahkan button myClose ---*
Add Object myCLOSE As CommandButton With ;
Name = "cmdSortClose", ;
Caption = "Close", ;
Cancel = .T., ;
Top = 120, ;
Left = 210, ;
Width = 60, ;
Height = 25, ;
ToolTipText = "Proses dibatalkan", ;
Visible = .T.
*--- prosedur Init ---*
Procedure Init
* mengatur optiongroup optOption
With Thisform.optOption
.Option1.Name = "optKODE" && nama option1
.Option2.Name = "optNAMA" && nama option1
.Option3.Name = "optJKEL" && nama option2
.Option4.Name = "optKOTA" && nama option3
* mengatur optKODE
.optKODE.Caption = "No NPM" && isi optKODE
.optKODE.ForeColor = Rgb(0,0,255) && warna biru
.optKODE.FontBold = .T. && huruf tebal
.optKODE.BackColor = _Screen.BackColor && dasar
.optKODE.Top = 5 && posisi atas
.optKODE.Left = 5 && posisi kiri
.optKODE.Width = 100 && lebar optKODE
.optKODE.Height = 20 && tinggi optKODE
.optKODE.Visible = .T. && tampilkan di monitor
* mengatur optNAMA
.optNAMA.Caption = "Nama Mhs" && isi optNAMA
.optNAMA.ForeColor = Rgb(0,0,255) && warna biru
.optNAMA.FontBold = .T. && huruf tebal
.optNAMA.BackColor = _Screen.BackColor && dasar
.optNAMA.Top = 30 && posisi atas
.optNAMA.Left = 5 && posisi kiri
.optNAMA.Width = 100 && lebar optNAMA
.optNAMA.Height = 20 && tinggi optNAMA
.optNAMA.Visible = .T. && tampilkan di monitor
* mengatur optJKEL
.optJKEL.Caption = "Jenis Kelamin" && optJKEL
.optJKEL.ForeColor = Rgb(0,0,255) && warna biru
.optJKEL.FontBold = .T. && huruf tebal
.optJKEL.BackColor = _Screen.BackColor && dasar
.optJKEL.Top = 55 && posisi atas
.optJKEL.Left = 5 && posisi kiri
.optJKEL.Width = 110 && lebar optJKEL
.optJKEL.Height = 20 && tinggi optJKEL
.optJKEL.Visible = .T. && tampilkan di monitor
* mengatur optKOTA
Page 76 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 77 of 80
Diktat Kuliah: Algoritma dan Pemograman I
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut KODE - DESCENDING
Case .optOption.Value=1 And .optSort.Value=2
* jika memenuhi syarat, pemindahan data
If xKODE < yKODE
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut NAMA - ASCENDING
Case .optOption.Value=2 And .optSort.Value=1
* jika memenuhi syarat, pemindahan data
If xNAMA > yNAMA
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut NAMA - DESCENDING
Case .optOption.Value=2 And .optSort.Value=2
* jika memenuhi syarat, pemindahan data
If xNAMA < yNAMA
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut JENKEL - ASCENDING
Case .optOption.Value=3 And .optSort.Value=1
* jika memenuhi syarat, pemindahan data
If xJKEL > yJKEL
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
Page 78 of 80
Diktat Kuliah: Algoritma dan Pemograman I
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut JENKEL - DESCENDING
Case .optOption.Value=3 And .optSort.Value=2
* jika memenuhi syarat, pemindahan data
If xJKEL < yJKEL
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut KOTA - ASCENDING
Case .optOption.Value=4 And .optSort.Value=1
* jika memenuhi syarat, pemindahan data
If xKOTA > yKOTA
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
* urut KOTA - DESCENDING
Case .optOption.Value=4 And .optSort.Value=2
* jika memenuhi syarat, pemindahan data
If xKOTA < yKOTA
xUrut = .F. && False (belum urut)
Thisform.SimpanData(I,xKODE,xNAMA,xJKEL,;
xALMT,xKOTA,xKPOS,yKODE,yNAMA,yJKEL,;
yALMT,yKOTA,yKPOS) && simpan data
Endif
Endcase
Endwith
Next
Enddo
Thisform.Release && form dihapus
Endproc
*--- prosedur cmdSortClose.Click ---*
Procedure cmdSortClose.Click
Thisform.Release && form dihapus
Endproc
*--- prosedur SimpanData ---*
Procedure SimpanData
* menerima 13 variabel kiriman
Parameters nRecPos, ;
xKODE,xNAMA,xJKEL,xALMT,xKOTA,xKPOS, ;
yKODE,yNAMA,yJKEL,yALMT,yKOTA,yKPOS
* menuju record xRecPos
Go nRecPos
* menyimpan data di record xRecPos
Replace MyCode.Kode With yKODE && simpan Kode
Replace MyCode.Nama With yNAMA && simpan Nama
Replace MyCode.JenKel With yJKEL && simpan JenKel
Replace MyCode.Alamat With yALMT && simpan Alamat
Page 79 of 80
Diktat Kuliah: Algoritma dan Pemograman I
Page 80 of 80