SlideShare a Scribd company logo
1 of 67
Download to read offline
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.
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
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.
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()
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).
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 :
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
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
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
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
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
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 :
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
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
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
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
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
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.
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
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
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
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]
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.
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))
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.
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 :
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>
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>
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.
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.
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
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
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
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.
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
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.
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.
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)
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
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
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
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 *
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 
*****************************************
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
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
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 ---*
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
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
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
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()
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
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:
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 ;
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
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()
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
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
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
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()
Module algoritma
Module algoritma
Module algoritma
Module algoritma
Module algoritma
Module algoritma
Module algoritma
Module algoritma

More Related Content

What's hot

Modul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman IIModul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman IIsyahril17
 
Laporan Praktikum Algoritma Pemrograman
Laporan Praktikum Algoritma PemrogramanLaporan Praktikum Algoritma Pemrograman
Laporan Praktikum Algoritma PemrogramanYulie Astin
 
Makalah algoritma dan hubungannya dengan pemrograman
Makalah algoritma dan hubungannya dengan pemrogramanMakalah algoritma dan hubungannya dengan pemrograman
Makalah algoritma dan hubungannya dengan pemrogramanwanakuroyuri
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma casnadi
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANAziz Moeslim
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMelva Amma Kalian
 
Materi Pemrograman Dasar SMK
Materi Pemrograman Dasar SMKMateri Pemrograman Dasar SMK
Materi Pemrograman Dasar SMKMartin Arale
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma casnadi
 
Makalah logika dan algoritma
Makalah logika dan algoritmaMakalah logika dan algoritma
Makalah logika dan algoritmaAgung Surono
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrogramanMastur Cell
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritmaChusnul Khotimah
 
Modul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrogramanModul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrogramanMuraba Nasuha
 
Modul Logika dan algoritma
Modul Logika dan algoritmaModul Logika dan algoritma
Modul Logika dan algoritmalinda_rosalina
 
Pertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman DasarPertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman DasarDisma Ariyanti W
 

What's hot (20)

Modul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman IIModul 1 Algoritma Dan Pemrograman II
Modul 1 Algoritma Dan Pemrograman II
 
Laporan Praktikum Algoritma Pemrograman
Laporan Praktikum Algoritma PemrogramanLaporan Praktikum Algoritma Pemrograman
Laporan Praktikum Algoritma Pemrograman
 
Makalah algoritma dan hubungannya dengan pemrograman
Makalah algoritma dan hubungannya dengan pemrogramanMakalah algoritma dan hubungannya dengan pemrograman
Makalah algoritma dan hubungannya dengan pemrograman
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Materi 1. algoritma pemrograman
Materi 1. algoritma pemrogramanMateri 1. algoritma pemrograman
Materi 1. algoritma pemrograman
 
Materi Pemrograman Dasar SMK
Materi Pemrograman Dasar SMKMateri Pemrograman Dasar SMK
Materi Pemrograman Dasar SMK
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma
 
Pengenalan Algoritma Komputer
Pengenalan Algoritma KomputerPengenalan Algoritma Komputer
Pengenalan Algoritma Komputer
 
Makalah logika dan algoritma
Makalah logika dan algoritmaMakalah logika dan algoritma
Makalah logika dan algoritma
 
Bab 1
Bab 1 Bab 1
Bab 1
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritma
 
Dasar pemrograman ( algorithma pemrograman )
Dasar pemrograman ( algorithma pemrograman )Dasar pemrograman ( algorithma pemrograman )
Dasar pemrograman ( algorithma pemrograman )
 
Modul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrogramanModul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrograman
 
Modul Logika dan algoritma
Modul Logika dan algoritmaModul Logika dan algoritma
Modul Logika dan algoritma
 
Pertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman DasarPertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman Dasar
 
Dasar dasar algoritma - 1
Dasar dasar algoritma - 1Dasar dasar algoritma - 1
Dasar dasar algoritma - 1
 

Similar to Module algoritma

Algoritma pemrograman terstruktur
Algoritma pemrograman terstrukturAlgoritma pemrograman terstruktur
Algoritma pemrograman terstrukturRaden Maulana
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartSyaiful Ahdan
 
1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritmaHardini_HD
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaAvenzz Venzz
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaFisma Ananda
 
1 adp dasar-dasar pemrograman
1   adp dasar-dasar pemrograman1   adp dasar-dasar pemrograman
1 adp dasar-dasar pemrogramanMuhammad Salihin
 
Algoritma Pemrograman
Algoritma Pemrograman Algoritma Pemrograman
Algoritma Pemrograman hanujisudiman
 
dasar-dasar pemrograman
dasar-dasar pemrogramandasar-dasar pemrograman
dasar-dasar pemrogramanReza Optoriter
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrogramanimmunandar
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrogramanimmunandar
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrogramanimmunandar
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrogramanimmunandar
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritmapakdemamo
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramAkmal Fajar
 
Dasar pemrograman
Dasar pemrogramanDasar pemrograman
Dasar pemrogramanUNTUNGSG
 

Similar to Module algoritma (20)

Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Modul Pemrograman Dasar.pdf
Modul Pemrograman Dasar.pdfModul Pemrograman Dasar.pdf
Modul Pemrograman Dasar.pdf
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Algoritma pemrograman terstruktur
Algoritma pemrograman terstrukturAlgoritma pemrograman terstruktur
Algoritma pemrograman terstruktur
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 ADP Algoritma
1   ADP Algoritma1   ADP Algoritma
1 ADP Algoritma
 
1 adp dasar-dasar pemrograman
1   adp dasar-dasar pemrograman1   adp dasar-dasar pemrograman
1 adp dasar-dasar pemrograman
 
Algoritma Pemrograman
Algoritma Pemrograman Algoritma Pemrograman
Algoritma Pemrograman
 
dasar-dasar pemrograman
dasar-dasar pemrogramandasar-dasar pemrograman
dasar-dasar pemrograman
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrograman
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrograman
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrograman
 
Algoritma dan-pemrograman
Algoritma dan-pemrogramanAlgoritma dan-pemrograman
Algoritma dan-pemrograman
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritma
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan Program
 
Dasar pemrograman
Dasar pemrogramanDasar pemrograman
Dasar pemrograman
 

Recently uploaded

MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfChananMfd
 
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)PUNGKYBUDIPANGESTU1
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah DasarPPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasarrenihartanti
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...Kanaidi ken
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatanssuser963292
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptxSirlyPutri1
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
HiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaaHiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaafarmasipejatentimur
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...Kanaidi ken
 

Recently uploaded (20)

MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah DasarPPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
HiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaaHiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
Hiperlipidemiaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ika
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 

Module algoritma

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