Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[1]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
PENDAHULUAN C++ Builder adalah aplikasi untuk menulis aplikasi menggunakan bahasa C++. Dengan C++ Builder kia dapat menulis program Windows dengan C++ lebih
cepat dan lebih mudah dari yang kita bayangkan. Kita dapat membuat aplikasi konsol (dalam DOS) atau program Win32 GUI (graphical user interface). Dalam penggunaannya untuk membuat program Win32 GUI, kita memiliki semua
keunggulan dalam lingkungan RAD (rapid application development), yaitu kita dapat membuat antarmuka user (menu, dialog box, form, dll) dalam program
menggunakan teknik drag-and-drop. Lingkungan C++ Builder
Lingkungan C++ Builder (IDE, integrated development environment) terbagi atas tiga bagian. Bagian atas adalah yang disebut main window yang berisi
speedbar di sebelah kiri dan Component Palette di sebelah kanan. Speedbar memberi kita access untuk melakukan opening, saving, compiling project dalam satu klik. Component Palette berisi komponen-komponen yang dapat kita
masukkan ke dalam form (komponen adalah sesuatu seperti text labels, edit control, list box, buttons, dll). Komponen dibagi ke dalam grup-grup, yang dapat dilihat dengan meng-klik tab di bagian atas daftar icon komponen. Untuk
meletakkan komponen di dalam form, kita tinggal meng-klik icon-nya kemudian klik bagian form yang kita inginkan untuk meletakkan komponen tersebut.
Gambar 1 – C++ Builder IDE dan form awal
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[2]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Dibawah speedbar dan Component Palette, di sebelah kiri, adalah Object Inspector (OI). Melalui OI kita dapat memodifikasi property dan event dari setiap komponen. Kita akan terus menggunakan OI selama kita bekerja dengan
C++ Builder. OI mempunyai satu atau dua tabs, bergantung kepada komponen yang sedang kita pilih. Yang pertama, dan selalu ada, adalah property tab. Property dari sebuah komponen mengatur bagaimana komponen bekerja.
Contohnya, property Color pada sebuah komponen akan mengatur warna latar belakang komponen tersebut. Biasanya OI memiliki event tab yang mengatur interaksi user dengan komponen. Contohnya, ketika komponen di-klik, sebuah
event memberitahu Windows bahwa komponen tersebut di-klik. Kita dapat menulis kode program yang merespon suatu event.
Di sebelah kanan OI adalah C++ Builder workspace, yang pada awalnya menampilkan sebuah Form Editor kosong. Dalam C++ Builder sebuah form
menggambarkan sebuah window dalam program kita. Yang tersembunyi di belakangnya adalah Code Editor di mana kita menuliskan kode program. Kita akan menggunakan Object Inspector, Form Editor, Code Editor dan Component
Palette selama kita membuat sebuah aplikasi. Dasar Penggunaan C++ Builder
Sekarang kita akan mencoba menggunakan C++ Builder untuk mengetahui dasar penggunaannya. Dengan memahami dasar penggunaan ini, maka kita
akan dengan mudah mengembangkan penggunaan komponen-komponen yang ada dalam C++ Builder.
Sekarang yang anda hadapi adalah form kosong yang, secara default, dinamai Form1. Pada Object Inspector, klik title bar. Property Caption akan ditandai, dan kursor akan berada di sana menunggu anda untuk melakukan sesuatu.
Tuliskan Hello World! di sana kemudian klik tombol Run dari speedbar (atau dengan menekan F9, atau dengan memilih Run|Run dari menu) dan C++ Builder akan memulai membangun (build) program. Compiler status dialog box
akan muncul seperti terlihat dalam gambar 2 dan kita dapat melihat C++ Builder bekerja membangun program. Setelah beberapa saat, status box menghilang dan form ditampilkan dengan judul Hello World!.
Gambar 2 – Compiler status dialog box
Berikutnya kita akan mencoba menggunakan komponen dalam mengetahui dasar kerja C++ Builder. Setelah program tadi kita tutup dan layar kembali
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[3]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
menampilkan form, klik tab Standard pada Component Palette dan klik komponen Label (yang memiliki icon dengan huruf A), kemudian klik di sembarang tempat pada form. Sebuah label akan terletak pada form. Kemudian
kembali kepada Object Inspector, dan property Caption akan ditandai. Tuliskan kembali di sana Hello World! Kemudian atur ukuran huruf (font) dengan melakukan double-klik pada property Font. Untuk mengatur posisi label pada
form, cukup klik label tersebut kemudian geser ke posisi yang anda inginkan. Setelah itu coba jalankan program dengan cara yang sama dengan contoh pertama. Jika prosesnya benar maka anda akan mendapatkan tampilan seperti
yang terlihat pada gambar di bawah ini
Gambar 3 – Program Hello World!
Dari kedua contoh di atas, maka sekarang kita sudah mengetahui dasar-dasar penggunaan C++ Builder. Selanjutnya kita akan mempelajari penggunaan bahasa pemrograman C++ melalui aplikasi konsol.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[4]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
APLIKASI KONSOL WIN32 Untuk memulai penggunaan aplikasi konsol, pilih File|New. Dari window
Application pilih Console Wizard, pilih Console dan tekan OK. Maka bagian Code Editor akan terlihat seperti gambar 4.
Gambar 4 – Code Editor dari aplikasi konsol
Ketika kita bekerja dengan Code Editor, akan terlihat tampilan berikut ini di layar
#pragma hdrstop #include <condefs.h>
//----------------------------------------------- #pragma argsused int main(int argc, char* argv[])
{ return 0; }
List program ini adalah template dasar C++ Builder dan tidak akan mengerjakan perintah apapun. Sekarang perhatikan komponen dari list
tersebut. - Baris-baris yang diawali dengan “#include” adalah perintah untuk
memanggil file header, yaitu file yang berisi deskripsi dari fungsi-fungsi
yang akan digunakan di dalam program. - Setiap teks yang dituliskan dalam satu baris setelah tanda “//”
menunjukkan teks tersebut tidak dijalankan oleh program, yaitu
komentar (comments). Selain “//” kita juga dapat menuliskan komentar lebih dari satu baris di antara tanda “/*” dan “*/”.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[5]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
- Dalam C++, sebuah blok program selalu di awali dengan “{“ dan di akhiri dengan “}”. Tanda ini juga berlaku untuk menandai loop, function, if statements dan lain-lain.
Selama membuat aplikasi konsol kita dapat menutup Object Inspector dengan menekan tombol penutup. Untuk memanggilnya cukup tekan F11.
Variable
Dalam pemrograman kita akan selalu bertemu dengan sesuatu yang bernama variable. Pada dasarnya, variable adalah nama yang ditempatkan kepada lokasi
memori. Setelah menetapkan variable, yaitu apa yang dinamakan mendeklarasikan variable, kita dapat menggunakannya untuk memanipulasi data di dalam memori. Contohnya adalah sebagai berikut
int x; variable dideklarasikan sebagai variabel integer x = 100; variable „x‟ akan berisi 100
x += 50; variable akan berisi 150 int y=150; variable „y‟ dideklarasikan dan berharga awal 150 x += y; variable „x‟ akan berisi 300
x++; variable „x‟ akan berisi 301 Tipe Data C++
Tipe data menetapkan bagaimana kompiler menyimpan informasi dalam memori, contohnya adalah sebagai berikut
int x1 = -1; tipe data integer float y = 3,14; tipe data float
long z = 12345; tipe data long
Selengkapnya mengenai tipe data yang dapat digunakan dalam C++ dapat dilihat dalam tabel berikut ini
Tipe Data Jangkauan Nilai (Range)
char -128 sampai 126
unsigned char 0 sampai 255
short -32.768 sampai 32.767
unsigned
short 0 sampai 65.535
long -2.147.483.648 sampai
2.147.483.648
unsigned long 0 sampai 4.294.967.295
int sama dengan long
unsigned int sama dengan unsigned long
float 1,2x10-38 sampai 3,4x10381
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[6]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
double 2,2x10-308 sampai 1,8x103082
bool
string
char
true atau false
kalimat
satu karakter
Tabel 1 – Tipe data dalam C++ (untuk program 32bit)
Berikutnya kita akan membuat sebuah program. Salin list program di bawah ini, kemudian di-run
#include <iostream.h> #include <conio.h>
#pragma hdrstop int main(int argc, char* argv[])
{ short x = 32767; cout << “x= “ << x << endl;
x++; cout << “x= “ << x << endl; getch();
return 0; }
Hasilnya adalah seperti ini x = 32767
x = -32768 Operator
Operator digunakan untuk memanipulasi data, misalnya untuk menghitung, memeriksa kesamaan, memanipulasi variabel dan lain-lain. Tabel berikut ini
menunjukkan operator-operator yang dapat digunakan dalam C++:
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[7]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Operator Deskripsi Contoh
+
- * /
= +=
-= *= \=
&& ||
== !=
< > <=
>= ++
--
tambah
kurang kali bagi
isi isi dan tambahkan
isi dan kurangkan isi dan kalikan isi dan bagi
AND OR
sama dengan tidak sama dengan
lebih kecil lebih besar lebih kecil sama dengan
lebih besar sama dengan tambah 1
kurang 1
x=y+z
x=y-z x=y*z x=y/z
x=11 x+=11 (i.e. x=x+11)
x-=11 x*=11 x\=11
if (x && y) {..} if (x || y) {..}
if (x==y) {..} if (x!=y) {..}
if (x<y) {..} if (x>y) {..} if (x<=y) {..}
if (x>=y) {..} x++ (i.e. x=x+1)
x--
Tabel 2 – Operator C++
Selain itu terdapat pula operator insertion (<<) yang biasanya digunakan bersama dengan perintah cout dan dan operator extraction (>>)yang biasanya
digunakan bersama dengan perintah cin. Coba salin program berikut ini: #include <conio.h>
#include <iostream.h> #pragma hdrstop #include <condefs.h>
//--------------------------------------------------------------------------- #pragma argsused
int main(int argc, char* argv[]) { int x, y, z;
cout<<"x = "; cin>>x; cout<<"y = ";
cin>>y; z=x+y; cout<<"z = x + y = "<< z <<endl;
getch(); return 0; }
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[8]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Program ini akan meminta kita untuk mengisi variabel x dan y kemudian menjumlahkannya ke dalam variabel z. Dalam pembuatan aplikasi Win32 GUI kita tidak akan menggunakan perintah cin dan cout, namun untuk bagian ini
kita akan selalu menggunakan cin dan cout. Function
Program C++ terdiri dari fungsi utama dan fungsi-fungsi lain. Fungsi utama
adalah main(), sedangkan fungsi-fungsi lain yang dapat kita buat sendiri. Sekarang perhatikan contoh berikut ini:
#include <conio.h> #include <iostream.h> #pragma hdrstop
#include <condefs.h> //-----------------------------------------------------------------
#pragma argsused int kali(int, int);
void tampilkan(int); int main (int argc, char* argv[])
{ int x, y, z; cout<<"x = ";
cin>>x; cout<<"y = "; cin>>y;
z=kali(x,y); tampilkan(z); getch();
return 0; }
int kali(int x, int y) { return x*y;
} void tampilkan(int hasil)
{ cout<<"z = x + y = "<< hasil <<endl;
} Program di atas memiliki 3 fungsi, yaitu fungsi utama (main()), dan dua fungsi
lain: kali() dan tampilkan(). Fungsi kali memiliki tipe balikan int, karena fungsi ini akan memberikan sebuah nilai ke dalam fungsi utama; sedangkan fungsi tampilkan memiliki tipe balikan void, menunjukkan fungsi ini tidak memberikan
nilai ke dalam fungsi utama.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[9]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Array
Array adalah sekumpulan data dalam satu variabel. Sebuah variabel yang dideklarasikan dengan
int myArray[5]; akan menyediakan 5 tempat dalam memori untuk nilai variabel tersebut. Jadi
jika kita tuliskan myArray[0]=10;myArray[1]=20;myArray[2]=30;
myArray[3]=40;myArray[4]=50; maka 10,20,30,40,50 akan mengisi tempat-tempat dalam variabel myArray.
Sehingga bila kita lakukan int jumlah = myArray[2]+myArray[4];
variabel jumlah akan bernilai 80
Untuk mendeklarasikan array yang diberi nilai awal gunakan perintah int myArray[5] = {10,20,30,40,50} atau
int myArray[] = {10,20,30,40,50} Kita juga dapat membuat array multidimensi
int myArray[2][3];
Coba salin program berikut ini untuk mengetahui cara kerja array char str[]="Tulisan ini array";
cout<<"array ke-10 adalah "<<str[10]; Keluaran yang dihasilkan adalah
array ke-10 adalah i Jika kita ilustrasikan, variabel str akan membuat tempat dalam memori seperti
ini
T U l i s a n i n i a r r a y
Array dalam C++ berbasis 0, yaitu tempat pertama dalam array adalah 0, tempat kedua adalah 1, dan seterusnya. Maka array ke-10 adalah huruf „i‟. If…
Ini adalah perintah pencabangan yang umum dikenal di semua bahasa
pemrograman. Gunanya adalah untuk mengambil keputusan yang bergantung dari suatu kondisi yang menggunakan operator relasi. Selain If, kita juga akan membahas operator yang lain. Contoh penggunaan if adalah sebagai berikut
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[10]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
int x; cout<<”masukkan x: “;cin>>x; if (x>11)
cout<<”anda memasukkan angka yang lebih besar dari 11.”<<endl; Jika anda memasukkan angka yang lebih besar dari 11 pada program di atas,
maka pesan akan ditampilkan. Hal ini karena operator if mengambil kondisi yang kita tetapkan, yaitu x>11. Perhatikan setelah perintah if(..) jangan menggunakan tanda “;” karena kita harus memasukkan dulu perintah yang
harus dilakukan program jika kondisi if terpenuhi.
Jika setelah perintah if ada lebih dari satu baris perintah, maka gunakan tanda { dan }
if (x<11) { cout<<”anda memasukkan angka yang lebih besar dari 11.”<<endl;
LakukanSesuatu(x); }
Lebih lanjut, kita dapat menghasilkan dua keputusan dari operator if, dimana yang pertama adalah jika kondisi if terpenuhi (true) dan tidak (false). Untuk itu gunakan perintah else.
int x; cout<<”masukkan x: “;cin>>x;
if (x>11) cout<<”anda memasukkan angka yang lebih besar dari 11.”<<endl; else
cout<<”anda memasukkan angka yang lebih kecil dari 11.”<<endl; Maka program akan menampilkan pesan untuk kedua kondisi, lebih besar dari
11 atau lebih kecil dari 11. Kita juga dapat menggunakan lebih dari satu if…else
if (kondisi_pertama) { true_1;
} else if (kondisi_kedua) { true_2;
} else { false_statements;
} Jika kondisi kondisi_pertama terpenuhi (true) maka program yang
direpresentasikan oleh true_1 akan dieksekusi, jika tidak (false) dan kondisi kondisi_kedua true, maka true_2 akan dieksekusi. Jika kondisi_pertama dan kondisi_kedua false, maka program yang direpresentasikan oleh
false_statements akan dieksekusi.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[11]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Contoh program
Program untuk menghitung akar-akar dari suatu persamaan kuadrat y=ax2+bx+c
#include <conio.h> #include <iostream.h>
#include <math.h> #pragma hdrstop #include <condefs.h>
//----------------------------------------------------------------- #pragma argsused
double determinan(double, double, double);
int main(int argc, char* argv[]) { double a,b,c;
double det, det_positif; double x1,x2; cout<<"a = ";cin>>a;
cout<<"b = ";cin>>b; cout<<"c = ";cin>>c; det=determinan (a,b,c);
//cout<<"determinan ="<<det; if ((det>0) || (det==0)) {
x1=(-b+sqrt(det))/(2*a); x2=(-b-sqrt(det))/(2*a); cout<<"x1 = "<<x1<<endl;
cout<<"x2 = "<<x2<<endl; } else
if (det<0) { det_positif=abs(det);
cout<<"x1 = "<<-b/2*a<<"+"<<det_positif/2*a<<" i"<<endl; cout<<"x2 = "<<-b/2*a<<"-"<<det_positif/2*a<<" i"<<endl; }
getch(); return 0;
} double determinan(double a, double b, double c)
{ return (b*b)-(4*a*c); }
Fungsi untuk melakukan akar kuadrat (sqrt()) dan membuat nilai mutlak (abs()) dipanggil melalui #include <math.h>.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[12]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Switch
Selain menggunakan if..(else) kita dapat menggunakan switch untuk melakukan pencabangan. Switch memungkinkan kita untuk mengeksekusi satu dari beberapa blok perintah sebagai hasil dari suatu kondisi. Perhatikan contoh
berikut ini int bulan;
cout<<”Masukkan nomor bulan: “;cin>>bulan; switch(bulan) { case 1: cout>>”Januari”;
break; case 2: cout>>”Februari”; break;
case 3: cout>>”Maret”; break; case 4: cout>>”April”;
break; case 5: cout>>”Mei”; break;
case 6: cout>>”Juni”; break; case 7: cout>>”Juli”;
break; case 8: cout>>”Agustus”; break;
case 9: cout>>”September”; break; case 10: cout>>”Oktober”;
break; case 11: cout>>”November”; break;
case 12: cout>>”Desember”; break; default: cout>>”Tidak ada!”;
} Contoh di atas akan menampilkan nama bulan jika kita masukkan nomor
bulannya. Perhatikan bahwa bentuk umum switch adalah: switch(kondisi) {
case nilai_kondisi_1: { statement_1; } break;
case nilai_kondisi_2: { statement_2; } break; .
. case nilai_kondisi_n: { statement_n } break;
default: { statement_default } break; }
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[13]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Default berarti, switch akan mengeksekusi blok program bila kita memasukkan nilai kondisi diluar nilai kondisi yang telah kita tetapkan dalam setiap blok case. Loop
Sekarang kita akan membahas operator perulangan. Operator perulangan (loop) digunakan untuk melakukan eksekusi dalam suatu blok program secara berulang-ulang sebanyak jumlah tertentu. Misalnya digunakan dalam
perhitungan deret, matriks dan lain-lain. For
Loop for sering digunakan dalam pembuatan program karena lebih mudah. Bentuk umum for adalah
for (nilai_awal;kondisi;perubahan_nilai_awal) statement;
Contoh di bawah ini menunjukkan penggunaan for untuk menghasilkan deret bilangan ganjil antara 0 dan 20
for (int i=1;i<20;i+=2) cout<<i<<endl; While
Loop while hanya memiliki kondisi yang akan diperiksa setiap kali perulangan
dimulai. Bentuk umumnya adalah while (kondisi) statement;
Contoh dibawah ini adalah versi while dari contoh di atas
int i=1; while (i<20) { i+=2;
cout<<i<<endl; }
Do-While
Do-while mirip dengan while, hanya saja pengecekan kondisi dilakukan di akhir
loop. Bentuk umumnya adalah do { statement; } while (kondisi)
Versi do-while dari contoh di atas adalah
int i=1; do { i+=2;
cout<<i<<endl; }
while (i<20);
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[14]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Dari contoh di atas, perbedaan yang lebih jelas antara penggunaan while dan do-while dapat terlihat jika program di-run. Dengan do-while kita akan mendapatkan angka 21 di akhir deret. Mengapa? Karena program baru akan
mengecek kondisi setelah loop terjadi, oleh karena itulah muncul angka 21. Pemrograman dengan bahasa C++ yang telah kita bahas tidaklah meliputi
seluruh kemampuan yang bisa dilakukan dengan C++, misalnya penggunaan pointer, class, structure dan lain-lain. Namun hal itu tidak menjadi masalah, karena dengan dasar-dasar C++ yang telah dibahas, kita dapat membuat
aplikasi yang baik dengan melalui aplikasi Win32 GUI pada C++ Builder. Oleh karena itu, sekarang kita akan mulai bekerja dengan C++ Builder IDE.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[15]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
APLIKASI WIN32 GUI Pilih File|New Application dari menu untuk memulai bekerja dengan form
kosong. Kita akan membahas penggunaan C++ Builder berdasarkan contoh. Ada beberapa singkatan yang akan digunakan di seluruh bagian ini yang harus anda ingat:
1. OI (Object Inspector) 2. CP (Component Palette)
3. CE (Code Editor) Ketiga-tiganya sudah dijelaskan di awal modul.
FORM DAN PENYUSUNAN KOMPONEN
Membuat Window Baru
Misalnya kita ingin membuat window baru (i.e. form baru) dengan meng-klik
menu. Untuk itu ikuti langkah-langkah berikut ini: 1. Tambahkan form baru dengan memilih File|New Form. Maka akan
muncul form kosong baru dengan caption Form2
2. Ubah ukuran Form2 menjadi lebih kecil dari Form1. 3. Pilih tab Additional dari CP, masukkan komponen BitBtn ke Form2 4. Melalui OI, pilih property Layout dan pilih bkClose untuk komponen
BitBtn 5. Double-klik tombol BitBtn tadi untuk menampilkan CE. Tuliskan perintah
Close(); di tempat yang telah ditunjukkan oleh kursor
6. Sekarang kita kembali ke Form1, caranya tekan Shift+F12 untuk menampilkan daftar form, dan pilih Form1 kemudian tekan OK
7. Pilih tab Standard pada CP, pilih komponen MainMenu dan letakkan di
sembarang tempat pada Form1 8. Double-klik MainMenu untuk membuat item menu pada Form1. Akan
muncul window editor menu
9. Klik tab kosong di bagian kiri atas window, kemudian tuliskan “&File”, lalu tekan Enter. Tuliskan “&Open”, tekan Enter. Tuliskan “&Close”, tekan Enter. Melalui tahap ini kita memberikan Caption pada setiap
menu. Anda juga dapat melakukannya melalui property Caption pada OI 10. Double-klik menu Open, kemudian tuliskan perintah berikut ini pada
tempat yang telah ditunjukkan oleh kursor
Form2->ShowModal();
11. Double-klik menu Close, kemudian tuliskan perintah Close(); 12. Di CE Form1, tambahkan perintah #include “Unit2.h” di bawah perintah
#include “Unit1.h”. Perintah ini berguna untuk menghubungkan Form1 dengan Form2
13. Jalankan program dengan menekan F9
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[16]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Mengatur Posisi Antar Komponen
Disini kita akan mempelajari bagaimana mengatur letak komponen. Ikuti langkah-langkah berikut ini:
1. Letakkan 3 buah komponen Button pada form dengan cara men-double-
klik komponen Button pada CP 2. Pilih View|Alignment Palette sehingga muncul jendela Alignment seperti
terlihat dalam gambar
Gambar 5 – Alignment Palette
3. Pilih ketiga komponen Button dengan men-drag mouse melingkupi seluruh komponen, atau dengan menekan Shift+Klik di setiap komponen
4. Pada jendela Alignment, pilih Align bottom. Akan terlihat setiap
komponen tersusun rapi berdasarkan posisi horizontal 5. Kemudian atur jarak antar-komponen agar serupa dengan memilih
Space equally, horizontally
Anda bisa mencoba Alignment lain yang disediakan oleh C++ Builder dan lihat sendiri hasilnya.
Mengatur Komponen dalam Panel
Dengan menempatkan komponen dalam komponen Panel, kita dapat membuat penampilan aplikasi menjadi lebih baik. Ikuti contoh di bawah ini
1. Pilih komponen Panel dengan men-double-klik iconnya dari CP
2. Melalui OI, pilih property Align, kemudian pilih alBottom. Maka akan terlihat komponen Panel secara otomatis akan terletak di bagian bawah form. Untuk mengetahui kegunaan property Align coba ubah-ubah
ukuran form 3. Hilangkan caption Panel1 dari Panel 4. Klik komponen Panel, kemudian masukkan komponen Button ke dalam
komponen Panel dengan cara men-double-klik icon Button dari CP 5. Ubah tinggi komponen Panel agar sama dengan tinggi komponen Button
melalui OI. Caranya, periksa dulu property Height komponen Button
kemudian ubah property Height komponen Panel sesuai dengan komponen Button
6. Pilih kedua komponen tersebut, kemudian melalui jendela Alignment,
atur posisi Button agar sisi atas dan bawahnya menempel pada sisi atas dan bawah Panel dengan Center vertically in window
7. Melalui OI, ubah property Left komponen Button menjadi 0
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[17]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Gambar 6 – Posisi Button pada Panel
Langkah ini akan membuat komponen Button tetap berada di tempatnya meskipun ukuran form berubah-ubah. Bandingkan hasilnya dengan tanpa menggunakan Panel.
MENGGUNAKAN ICON
Menentukan Icon Aplikasi
Secara default, aplikasi yang kita buat akan memiliki icon seperti ini
Kita dapat menggunakan icon lain yang kita inginkan untuk aplikasi yang kita
buat. Caranya, pilih Project|Options, kemudian pilih tab Application. Klik Load Icon untuk mengganti icon yang ada dengan icon yang baru. Kita juga dapat memberi judul pada aplikasi kita di tempat yang sama.
Memberi Icon pada Button
Untuk memberi gambar pada button ikuti langkah-langkah berikut ini 1. Pilih komponen SpeedButton dari tab Additional pada CP dan letakkan
dalam form kemudian beri caption
2. Pada OI, klik (…) pada property Glyph untuk mengambil gambar bitmap 3. Untuk mengatur posisi gambar, gunakan property Layout
Library C++ Builder menyediakan beberapa gambar yang dapat digunakan. Biasanya terletak dalam directory C:/Program Files/Common Files/Borland
Shared/Images/Buttons
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[18]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
KOMPONEN EDITOR
Menggunakan Edit
Sekarang kita akan menggunakan komponen yang paling sering digunakan
dalam memasukkan data, yaitu Edit. Kita akan mencoba membuat aplikasi untuk menghitung akar persamaan kuadrat, seperti yang telah kita lakukan dalam konsol. Ikuti langkah-langkah berikut ini
1. Siapkan sebuah form berisi komponen Label, Button dan Edit kemudian
susun masing-masing komponen seperti gambar di bawah ini
Gambar 7 – Susunan komponen pada Form1
2. Tentukan property masing-masing komponen: - Kosongkan Nilai property Text komponen Edit1 sampai Edit5
- Beri nama txtA, txtB dan txtC pada property Name komponen Edit1, Edit2 dan Edit3
- Beri nama txtx1 dan txtx2 pada property Name komponen Edit4 dan
Edit5 - Tuliskan &Hitung pada property Caption komponen Button1 3. Sekarang kita akan menuliskan program perhitungannya. Double-klik
komponen Button kemudian tuliskan baris-baris program berikut ini: //deklarasi variabel
float a,b,c; float det, det_positif; float x1,x2;
//mengambil nilai dari komponen edit a=StrToFloat(txtA->Text);
b=StrToFloat(txtB->Text); c=StrToFloat(txtC->Text);
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[19]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
//perhitungan matematik det=b*b-4*a*c; if ((det>0)||(det==0))
{ x1=(-b+sqrt(det))/(2*a); x2=(-b-sqrt(det))/(2*a);
//menampilkan hasil ke dalam komponen edit txtx1->Text=x1;
txtx2->Text=x2; }
else if (det<0) {
det_positif=abs(det); //menampilkan hasil ke dalam komponen edit
txtx1->Text=FloatToStr(-b/2*a) + " + " + FloatToStr(det_positif/2*a) + "i"; txtx2->Text=FloatToStr(-b/2*a) + " - " + FloatToStr(det_positif/2*a) +
"i"; }
4. Jangan lupa untuk menambahkan “#include <math.h>” di awal program 5. Jalankan program dengan menekan F9
PERHATIKAN: C++ Builder termasuk bahasa pemrograman yang Case Sensitive, jadi penggunaan huruf kapital harus sesuai pada tempatnya.
Sekarang bagaimana jika kita ingin mengirimkan hasil perhitungan di atas ke form lain? Caranya amat mudah.
1. Buat form baru, kemudian beri komponen edit untuk menampilkan x1 dan x2. Dengan ini, hapus komponen edit txtx1 dan txtx2 di Form1
Gambar 8 – Susunan komponen pada Form2 2. Beri nama masing-masing komponen edit pada Form2 dengan txtx1 dan
txtx2. 3. Double-klik komponen Button pada Form1 untuk masuk ke CE,
kemudian tambahkan “Form2->” di depan semua teks “txtx1”.
Form2->txtx1->Text=…
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[20]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Jangan lupa untuk menambahkan #include “Unit2.h” di bagian atas kode program
4. Jalankan program dengan menekan F9 Pindah ke Komponen Lain dengan Enter
Dalam aplikasi yang baru kita buat, ketika program dijalankan, untuk pindah
dari satu Editbox ke Editbox yang lain kita harus menggunakan tombol Tab. Berikut ini adalah cara untuk memerintahkan tombol Enter agar berfungsi sama dengan tombol Tab.
1. Di OI Form1, pilih true pada property KeyPreview 2. Ubah property TabOrder txtA, txtB, txtC dan Button1 menjadi berturut-
turut 0,1,2,3
3. Kembali ke OI Form1, di tab Events, double-klik event OnKeyPress dan tuliskan perintah di bawah ini
if (Key==VK_RETURN) { Key=0;
Perform(WM_NEXTDLGCTL,0,0); }
4. Jalankan program dengan menekan F9 Membuat StatusBar dengan Multipanel
Dengan C++ Builder kita dapat membuat status bar dengan multipanel, seperti yang biasa kita lihat pada aplikasi semacam Word, Excel, dll. Berikut adalah
cara membuatnya. 1. Pilih komponen StatusBar dari tab Win32 pada CP dengan men-double-
klik iconnya. Komponen tersebut secara otomatis akan terletak di bagian bawah form
2. Double-klik StatusBar untuk menampilkan StatusBar Panels Editor
3. Klik tombol New untuk membuat panel baru, dan ubah property Width-nya menjadi 300
4. Klik lagi tombol New untuk membuat panel kedua
5. Pilih komponen Timer dari tab System 6. Pilih komponen Panel, dan atur property Align-nya menjadi alClient 7. Letakkan komponen Memo di dalam komponen Panel dan atur property
Align-nya menjadi alClient 8. Pilih komponen MainMenu dan buat menu Tutup, double-klik, tuliskan
Close(); di CE
9. Kembali ke Form1, double-klik komponen Memo untuk menampilkan CE dan tuliskan perintah berikut ini
if (Memo1->Modified) StatusBar1->Panels->Items[0]->Text=”Diubah”; else
StatusBar1->Panels->Items[0]->Text=””;
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[21]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
10. Kembali ke Form1, double-klik komponen Timer dan tuliskan perintah berikut ini
SYSTEMTIME waktu; GetLocalTime (&waktu);
String tampilanwaktu; tampilanwaktu.SetLength(64); int panjang=GetTimeFormat(LOCALE_USER_DEFAULT,0,&waktu,NULL,
tampilanwaktu.c_str(), tampilanwaktu.Length());
tampilanwaktu.SetLength(panjang); StatusBar1->Panels->Items[1]->Text=tampilanwaktu;
11. Jalankan program dengan menekan F9
Gambar 9 – Aplikasi yang menunjukkan waktu pada StatusBar
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[22]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
BERHUBUNGAN DENGAN SISTEM WINDOWS
Me-Restart Windows
Sekarang kita akan belajar bagaimana caranya membuat program yang dapat me-restart dan meng-shut down Windows. Ikuti langkah di bawah ini.
1. Pilih komponen Button dan tiga komponen RadioButton dan susun
seperti gambar di bawah ini
Gambar 10 – Susunan komponen pada Form1
2. Pada OI RadioButton1, pilih true pada property Checked, sedangkan untuk RadioButton2 dan RadioButton3 pilih false
3. Double-klik komponen Button dan tuliskan perintah di bawah ini
UINT flags; if (RadioButton1->Checked) flags = EWX_LOGOFF;
else if (RadioButton2->Checked) flags = EWX_REBOOT; else flags = EWX_SHUTDOWN; ExitWindowsEx(flags,0);
4. Jalankan program dengan menekan F9. Perhatikan! Sebelum program di
jalankan lebih baik simpan dulu semua pekerjaan. Perangkap Error
Suatu aplikasi yang bagus, bila penggunanya melakukan kesalahan (error), akan menampilkan kesalahan apa yang dilakukan pengguna sehingga program
berhenti berjalan. Untuk itu dipergunakan suatu „perangkap‟ error, agar apabila terjadi kesalahan, program akan menjalankan perintah yang terdapat di dalam blok perangkap error.
Perangkap error yang paling sederhana adalah sebagai berikut:
try { program_utama;} catch (…)
{ pesan_error;}
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[23]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Pesan error biasanya ditampilkan oleh kotak pesan (Message Box). Penggunaan perangkap error dapat kita lihat pada contoh Menggunakan Dialog. File Manager
Kita dapat menyusun sebuah aplikasi yang dapat menampilkan daftar file dalam komputer seperti Windows Explorer. Siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Panel1
StatusBar1 FileListBox1 DirectoryListBox1
DriveComboBox1 (di Panel1) FilterComboBox1 (di Panel1)
Align Caption
Align Align
FileList DirList FileList
Filter
alTop -kosongkan-
alClient alLeft
FileListBox1 DirectoryListBox1 FileListBox1
All Files *.*, Program Files *.exe, Document Files *.doc;*.txt;*.xls, Media Files *.mp3;*.wav;*.mid
Tabel 3 – Susunan komponen Selain menampilkan daftar file, program ini juga dapat memeriksa versi
Windows yang sedang digunakan. Untuk itu buat dua buah panel di StatusBar1 (ingat langkah yang digunakan dalam membuat StatusBar dengan multipanel). Pada OI komponen Form1, pilih tab Events, double-klik event OnCreate dan
tuliskan perintah di bawah ini OSVERSIONINFO info;
info.dwOSVersionInfoSize=sizeof(info); GetVersionEx(&info); AnsiString d;
switch(info.dwPlatformId) { case VER_PLATFORM_WIN32s:
d="Win32s";break; case VER_PLATFORM_WIN32_WINDOWS: d="Win95";break;
case VER_PLATFORM_WIN32_NT: d="WinNT";break; default:
d="Unknown"; break; }
StatusBar1->Panels->Items[1]->Text=d+" "+String((int)info.dwMajorVersion) +"."+String((int)info.dwMinorVersion)+" "+String("Build: ")+String((int) (info.dwBuildNumber&0xFFFF));
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[24]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Pada OI komponen DirectoryListBox1, pilih tab Events, double-klik event OnChange dan tuliskan perintah di bawah ini untuk menampilkan nama folder yang sedang dipilih di StatusBar
StatusBar1->Panels->Items[0]->Text=DirectoryListBox1->Directory;
Jalankan program dengan menekan F9
Gambar 11 – Contoh aplikasi saat run-time
Komponen FileListBox, DirectoryListBox, DriveComboBox dan FilterComboBox
terdapat dalam tab Win 3.1
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[25]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
APLIKASI INTERNET
Membuat Browser HTML Sederhana
Misalnya kita akan membuat aplikasi dengan salah satu bagiannya dapat menampilkan file HTML, maka kita dapat membuatnya melalui C++ Builder.
Walaupun bisa digunakan untuk mengakses internet, namun browser sederhana ini tidak mendukung Java, HTTP authentication, document caching atau cookies. Berikut adalah langkah-langkahnya
1. Letakkan komponen StatusBar dan dua buah komponen Panel pada form.
Atur property Align masing-masing Panel menjadi alTop dan alClient
2. Pada Panel bagian atas, letakkan komponen Edit dan Button. Beri caption “Stop” pada komponen Button dan kosongkan text komponen Edit
3. Pilih komponen HTML dari tab Internet pada CP dan letakkan di Panel bagian bawah, atur Align-nya menjadi alClient
4. Melalui tab Event pada OI komponen Edit1, double-klik event
OnKeyPress dan tuliskan perintah di bawah ini if (Key==13)
{ HTML1->RequestDoc(Edit1->Text); StatusBar1->SimpleText=”Menguhubungi “+Edit1->Text;
}
5. Melalui tab Event pada OI komponen HTML1, double-klik event OnError
dan tuliskan perintah di bawah ini
StatusBar->SimpleText=”Tidak dapat menerima dokumen”; Button1->Enabled=false;
6. Melalui tab Event pada OI komponen HTML1, double-klik event OnBeginRetrieval dan tuliskan perintah di bawah ini
StatusBar1->SimpleText=”Menerima “+HTML1->URL; Edit1->Text=HTML1->URL; Button1->Enabled=true;
7. Melalui tab Event pada OI komponen HTML1, double-klik event
OnEndRetrieval dan tuliskan perintah di bawah ini
StatusBar1->SimpleText=”Selesai!”; Button1->Enabled=false;
8. Melalui tab Event pada OI komponen HTML1, double-klik event
OnTimeout dan tuliskan perintah di bawah ini
StatusBar1->SimpleText=”Time-out”; Button1->Enabled=false;
9. Double-klik komponen Button1 dan tuliskan perintah di bawah ini
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[26]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
HTML1->Cancel(Edit1->Text);
10. Jalankan program dengan menekan F9
Gambar 12 – Susunan komponen pada form
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[27]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
MENGGUNAKAN DIALOG
Kita dapat menggunakan berbagai macam komponen dialog yang dapat dipilih
melalui tab Dialog pada Component Palette. Pada bagian ini kita akan menggunakan beberapa dialog dalam satu aplikasi. Kita akan menggunakan ColorDialog, OpenDialog, FontDialog dan PrintDialog. Dalam contoh ini juga
akan diperkenalkan penggunaan komponen MediaPlayer untuk memutar file audio. Untuk itu gunakan komponen-komponen dan atur property-nya sesuai tabel di bawah ini, dan susun posisinya seperti terlihat dalam gambar
Komponen Property Nilai
GroupBox1 - Panel1
- Button1 - ColorDialog1 GroupBox2
- Button2 - MediaPlayer1
- OpenDialog1
- ProgressBar1
- Timer GroupBox3
- Button4 - Button5 - Memo1
- FontDialog1 - PrintDialog1 BitButton
Caption Caption
Caption Caption
Caption DeviceType +VisibleButtons
-btPlay -btPause -btStop
-<lainnya> +Options -ofFileMustExist
Filter Min
Max Position
Enabled Interval Caption
Caption Caption Lines
Kind
Color Selector Kosongkan
Pilih Warna Audio Player
Buka File dtAutoSelect
true true true
false true MPEG Layer 3*.mp3 Wave*.wav
0 100 0
false 200 Word Processor
Pilih Font Print Teks -kosongkan-
bkClose
Tabel 4 – Pengaturan komponen
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[28]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Gambar 13 – Susunan komponen
Kemudian ikuti langkah berikut ini
1. Double-klik Button1 (Pilih Warna) dan tuliskan perintah di bawah ini
if (ColorDialog1->Execute())
{ Panel1->Color=ColorDialog1->Color; }
2. Double-klik Button2 (Buka File) dan tuliskan perintah di bawah ini
if (OpenDialog1->Execute()) {
MediaPlayer1->FileName=OpenDialog1->FileName; try { MediaPlayer1->Open();
} catch (…) { Application->MessageBox(“Tidak ada file”,”Pesan”,MB_OK|MB_ICON
ERROR); } }
3. Double-klik MediaPlayer1 dan tuliskan perintah di bawah ini
if (Button == btPlay)
Timer1->Enabled=true; else if (Button == btStop) Timer1->Enabled=false;
DoDefault=true;
4. Double-klik Timer1 dan tuliskan perintah di bawah ini
ProgressBar1->Position=(TProgressRange)(MediaPlayer1->Position*100/ MediaPlayer1->Length);
if (ProgressBar1->Position==100) Timer1->Enabled=false;
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[29]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
5. Double-klik Button3 (Pilih Font) dan tuliskan perintah di bawah ini
if (FontDialog1->Execute())
{ Memo1->Font=FontDialog1->Font; }
6. Double-klik Button4 (Print Teks) dan tuliskan perintah di bawah ini
if (PrintDialog1->Execute()) {
Printer()->Canvas->Font=Memo1->Font; Printer()->BeginDoc(); for (int i=0;i<Memo1->Lines->Count;i++)
{ Printer()->Canvas->TextOut(0,10,Memo1->Lines->Strings[i]); }
Printer()->EndDoc(); }
7. Tambahkan #include <printers.hpp> di bagian atas program 8. Jalankan program dengan menekan F9
Komponen ColorDialog, OpenDialog, FontDialog dan PrintDialog terdapat dalam tab Dialogs; Komponen Timer dan MediaPlayer terdapat dalam tab System
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[30]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
MEMBUAT WORD PROCESSOR SEDERHANA
Sekarang kita akan membuat sebuah program yang dapat digunakan untuk
menulis, seperti Wordpad. Kita akan mengembangkan aplikasi ini secara bertahap. Membuat Fasilitas Save, Open dan Print
Untuk itu gunakan komponen-komponen dan atur property-nya sesuai tabel di
bawah ini.
Komponen Property Nilai
RichEdit
Panel1
SpeedButton1 (pada Panel1)
SpeedButton2 (pada Panel1)
Bevel1 (pada Panel1)
StatusBar1 OpenDialog1
SaveDialog1
PrintDialog1
PrinterSetupDialog1
Align
Lines PlainText ScrollBars
WantTabs Align
BevelOuter Caption Height
ShowHint Glyph Height
Hint Left Top
Width Glyph Height
Hint Left Top
Width Align Height
Shape Filter
+Options -ofPathMustExist
-ofFileMustExist -ofShareAware DefaultExt
Filter
alClient
-kosongkan- true ssBoth
true alTop
bvNone -kosongkan- 35
true filesave.bmp 25
Save 10 5
25 print.bmp 25
Print 40 5
25 alTop 5
bsTopLine Document Files *.txt;*.rtf;
true
true true TXT
Document Files *.txt;*.rtf;
Tabel 5 – Susunan dan nilai property komponen
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[31]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Kemudian pilih komponen MainMenu dan buat menu &File dengan item-item: &New, &Open, &Save, Save &As, -, Print Set&up, &Print, -, E&xit
Selanjutnya ikuti langkah-langkah dibawah ini: 1. Double-klik komponen StatusBar kemudian klik tombol New unuk
membuat panel
2. Pindah ke CE, klik kanan pada tab Unit1.cpp dan pilih Open Source/Header File, sehingga muncul tab baru pada CE berisi header Unit1.h
3. Tuliskan perintah berikut ini di bagian private:
String Filename; bool SaveFile(); bool SaveFileAs();
bool NewFile();
4. Pindah ke CE Unit1.cpp kemudian tuliskan perintah berikut ini
bool TForm1::SaveFile() {
if (Filename=="") { return SaveFileAs();
} else {
RichEdit1->Lines->SaveToFile(Filename); return false; }
} bool TForm1::SaveFileAs()
{ if (!SaveDialog1->Execute()) return true; Filename=SaveDialog1->FileName;
if (Filename.SubString(Filename.Length()-3,4).UpperCase()==".RTF") RichEdit1->PlainText=false; else
RichEdit1->PlainText=true; StatusBar1->Panels->Items[0]->Text=Filename; SaveFile();
return false; }
bool TForm1::NewFile() { if (RichEdit1->Modified)
{ switch (Application->MessageBox ("Do you wish to save your changes?","Word Processor",MB_YESNOCANCEL))
{ case IDYES:
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[32]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
if (SaveFile()) return true; break; case IDCANCEL:
return true; } }
RichEdit1->Text=""; RichEdit1->Modified=false; Filename="";
StatusBar1->Panels->Items[0]->Text="(Untitled)"; return false;
}
5. Pada OI, pilih komponen Form1 kemudian pilih tab Events dan double-
klik pada event OnCreate kemudian tuliskan perintah di bawah ini
NewFile();
6. Double-klik speedbutton1 dan tuliskan perintah di bawah ini
SaveFile();
7. Double-klik speedbutton2 dan tuliskan perintah di bawah ini
RichEdit1->Print(“”);
8. Pada Form1, pilih menu New dan tuliskan perintah di bawah ini
NewFile();
9. Pada Form1, pilih menu Open dan tuliskan perintah di bawah ini
if (NewFile()) return; if (OpenDialog1->Execute()) {
String file = OpenDialog1->FileName; if (file.SubString (file.Length()-3,4).UpperCase()==".RTF") RichEdit1->PlainText=false;
else RichEdit1->PlainText=true; RichEdit1->Lines->LoadFromFile(file);
RichEdit1->Modified=false; Filename=file; StatusBar1->Panels->Items[0]->Text=file;
}
10. Pada Form1, pilih menu Save dan tuliskan perintah di bawah ini
SaveFile();
11. Pada Form1, pilih menu Save As dan tuliskan perintah di bawah ini
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[33]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
SaveFileAs();
12. Pada Form1, pilih menu Print Setup dan tuliskan perintah di bawah ini
PrinterSetupDialog1->Execute();
13. Pada Form1, pilih menu Print dan tuliskan perintah di bawah ini
if (PrintDialog1->Execute()) RichEdit1->Print(“”);
14. Pada Form1, pilih menu Exit dan tuliskan perintah di bawah ini
Close();
15. Jalankan program dengan menekan F9 Membuat Fasilitas Copy/Cut-Paste
Berikutnya kita akan menambahkan fasilitas Copy/Cut-Paste pada aplikasi kita. Tambahkan pada MainMenu menu &Edit&Copy, Cu&t, &Paste.
Klik menu Copy dan tuliskan perintah di bawah ini RichEdit1->CopyToClipboard();
Klik menu Cut dan tuliskan perintah di bawah ini
RichEdit1->CutToClipboard(); Klik menu Paste dan tuliskan perintah di bawah ini
RichEdit1->PasteFromClipboard();
Melalui OI MainMenu, pilih tab Events, double-klik event OnClick dan tuliskan perintah di bawah ini
if (RichEdit1->SelLength==0) { Cut1->Enabled=false;
Copy1->Enabled=false; } else
{ Cut1->Enabled=true; Copy1->Enabled=true;
} if (Clipboard()->AsText.Length()==0) Paste1->Enabled=false;
else Paste1->Enabled=true;
Jalankan program dengan menekan F9
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[34]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Gambar 14 – Susunan komponen pada Form1 Membuat Fasilitas Find dan Replace
Untuk menambahkan fasilitas ini kita membutuhkan ReplaceDialog dan FindDialog. Pilih komponen ini dari tab Dialogs pada CP. Ubah nilai property HideSelection pada OI komponen RichEdit1 menjadi false. Terakhir, tambahkan
pada MainMenu menu &Find dan &Replace di dalam menu &Edit. Klik menu Find dan tuliskan perintah di bawah ini
FindDialog1->Execute();
Klik menu Replace dan tuliskan perintah di bawah ini ReplaceDialog1->Execute();
Selanjutnya melalui OI komponen FindDialog, pilih tab Events, double-klik event OnFind dan tuliskan perintah di bawah ini
TFindDialog *dialog=(TFindDialog *)(Sender); int posisi;
TSearchTypes options; if(dialog->Options.Contains(frMatchCase)) options<<stMatchCase;
if(dialog->Options.Contains(frWholeWord)) options<<stWholeWord; if(dialog->Options.Contains(frDown))
{ int start=RichEdit1->SelStart; if(RichEdit1->SelLength!=0) ++start;
posisi=RichEdit1->FindText(dialog->FindText,start, RichEdit1->Text.Length()-RichEdit1->SelStart-1,options); }
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[35]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
else if (RichEdit1->SelStart>0) { int search=-1;
do { posisi=search;
search=RichEdit1->FindText(dialog->FindText, search+1, RichEdit1->SelStart-search-1,options); }
while (search>=0); }
else { posisi=-1;
} if (posisi>=0) {
RichEdit1->SelStart=posisi; RichEdit1->SelLength=dialog->FindText.Length(); }
Kemudian melalui OI komponen ReplaceDialog1, pilih tab Events, pada event OnFind pilih FindDialogFind1. Lalu double-klik event OnReplace dan tuliskan
perintah di bawah ini if (ReplaceDialog1->Options.Contains(frReplaceAll))
{ TSearchTypes options; if (ReplaceDialog1->Options.Contains(frMatchCase))
options<<stMatchCase; if (ReplaceDialog1->Options.Contains(frWholeWord)) options<<stWholeWord;
int posisi=RichEdit1->FindText(ReplaceDialog1->FindText,0,-1,options); while (posisi>=0) {
RichEdit1->SelStart=posisi; RichEdit1->SelLength=ReplaceDialog1->FindText.Length(); RichEdit1->SelText=ReplaceDialog1->ReplaceText;
posisi=RichEdit1->FindText(ReplaceDialog1->FindText,0,-1,options); } }
else if (RichEdit1->SelLength>0) RichEdit1->SelText=ReplaceDialog1->ReplaceText; Membuat Fasilitas Pengaturan Huruf (Font)
Tambahkan komponen-komponen pada tabel di halaman berikut pada aplikasi yang sedang kita buat
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[36]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Komponen Property Nilai
SpeedButton3
SpeedButton4
SpeedButton5
FontDialog1
Glyph
Height/Width Hint Left
Top Glyph Height/Width
Hint Left Top
Glyph Height/Width Hint
Left Top
ARROW3L.BMP
25 Rata kiri 80
5 ARROW3R.BMP 25
Rata kanan 140 5
ARROW3D.BMP 25 Rata tengah
110 5
Tabel 6 – Susunan dan nilai property komponen
Kemudian double-klik SpeedButton3 dan tuliskan perintah di bawah ini
RichEdit1->Paragraph->Alignment=taLeftJustify;
Kemudian double-klik SpeedButton4 dan tuliskan perintah di bawah ini RichEdit1->Paragraph->Alignment=taRightJustify;
Kemudian double-klik SpeedButton5 dan tuliskan perintah di bawah ini
RichEdit1->Paragraph->Alignment=taCenter; Tambahkan menu F&ont pada MainMenu. Klik menu Font dan tuliskan perintah
di bawah ini FontDialog1->Font->Assign(RichEdit1->SelAttributes);
if(FontDialog1->Execute()) RichEdit1->SelAttributes->Assign(FontDialog1->Font);
Jalankan program dengan menekan F9.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[37]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
GRAFIK DAN MULTIMEDIA
Membuat Grafik dalam Koordinat Kartesian
Gambar 15 – Tampilan aplikasi ketika di-run
Biasanya jika kita menggambar grafik dalam Windows, maka titik (0,0) akan
dimulai dari ujung kiri atas area gambar. Dengan fungsi Windows Mapping Mode, kita dapat membuat grafik dalam koordinat kartesian, dimana titik (0,0) terletak di tengah-tengah area gambar. Untuk membuat aplikasi seperti terlihat
pada gambar di atas, gunakan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini.
Komponen Property Nilai
Panel1
Panel2 Panel3
TrackBar1 (di Panel2)
TrackBar2 (di Panel3)
Align Caption
Align Caption Align
Caption Min Max
Position Orientation TickMarks
TickStyle Min Max
Position Orientation TickMarks
alBottom -kosongkan-
alRight -kosongkan- alTop
-kosongkan 1 10
5 trVertical tmBoth
tsAuto 1 10
5 trHorizontal tmBoth
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[38]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
PaintBox1
RadioButton1 (di Panel1) RadioButton2 (di Panel1) RadioButton3 (di Panel1)
TickStyle Align
Caption Caption Caption
tsAuto alClient
&Sinus &Cosinus &Tangen
Tabel 7 – Susunan dan nilai property komponen Buka Unit1.h dengan meng-klik kanan tab Unit1.cpp pada CE dan pilih Open
Source/Header File. Kemudian tuliskan perintah di bawah ini pada bagian private:
TRect DrawingRect; void InitializeViewPort(void); void DrawGraph(void);
dan di bagian atasnya
#include <math.h> Selanjutnya ikuti langkah-langkah di bawah ini
1. Melalui OI, pilih komponen Form1, buka tab Events, double-klik event
OnCreate dan tuliskan perintah di bawah ini
DrawingRect.Left=-5000; DrawingRect.Right=5000;
DrawingRect.Top=5000; DrawingRect.Bottom=-5000;
2. Di tab Unit1.cpp pada CE tuliskan peirntah di bawah ini
void TForm1::InitializeViewPort(void)
{ int Lebar=DrawingRect.Right-DrawingRect.Left; int Tinggi=DrawingRect.Top-DrawingRect.Bottom;
SetMapMode(PaintBox1->Canvas->Handle,MM_ANISOTROPIC); SetWindowExtEx(PaintBox1->Canvas->Handle, Lebar, Tinggi, NULL);
SetViewportExtEx(PaintBox1->Canvas->Handle, PaintBox1->Width,
-PaintBox1->Height, NULL); SetWindowOrgEx(PaintBox1->Canvas->Handle, 0,0, NULL);
SetViewportOrgEx(PaintBox1->Canvas->Handle, PaintBox1->Width/2, PaintBox1->Height/2,NULL);
} void TForm1::DrawGraph(void)
{ PaintBox1->Canvas->Brush->Color=clBlack;
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[39]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
PaintBox1->Canvas->FillRect(DrawingRect); PaintBox1->Canvas->Pen->Color=clWhite; PaintBox1->Canvas->Pen->Width=1;
PaintBox1->Canvas->MoveTo(DrawingRect.Left,0); PaintBox1->Canvas->LineTo(DrawingRect.Right,0); PaintBox1->Canvas->MoveTo(0,DrawingRect.Top);
PaintBox1->Canvas->LineTo(0,DrawingRect.Bottom); PaintBox1->Canvas->MoveTo(DrawingRect.Left,0); for(int j=DrawingRect.Left;j<=DrawingRect.Right;j+=5)
{ if (RadioButton1->Checked)
PaintBox1->Canvas->LineTo(j,(int)(1000*sin(float(j)/1000))); else if (RadioButton2->Checked) PaintBox1->Canvas->LineTo(j,(int)(1000*cos(float(j)/1000)));
else if (RadioButton3->Checked) PaintBox1->Canvas->LineTo(j,(int)(1000*tan(float(j)/1000))); }
}
3. Pada OI, pilih komponen PaintBox, buka tab Events, double-klik event
OnPaint dan tuliskan perintah di bawah ini
InitializeViewPort();
DrawGraph();
4. Double-klik komponen RadioButton1 pada Form1, dan tuliskan perintah
di bawah ini (lakukan hal yang sama untuk RadioButton2 dan RadioButton3)
InitializeViewPort(); DrawGraph();
5. Double-klik komponen TrackBar1 dan tuliskan perintah di bawah ini
DrawingRect.Top=1000*TrackBar1->Position;
DrawingRect.Bottom=-1000*TrackBar1->Position; InitializeViewPort(); DrawGraph();
6. Double-klik komponen TrackBar2 dan tuliskan perintah di bawah ini
DrawingRect.Left=-1000*TrackBar2->Position; DrawingRect.Right=1000*TrackBar2->Position; InitializeViewPort();
DrawGraph();
7. Jalankan program dengan menekan F9
Membuat Aplikasi Pemutar File AVI
C++Builder memiliki komponen yang dapat berhubungan dengan fungsi MCI pada Windows. Kita dapat membuat semacam video player sederhana dengan
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[40]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
komponen tersebut. Siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Form1
Panel1
Panel2
MediaPlayer1
OpenDialog1
ClientWidth
ClientHeight Align Caption
Visible Align Caption
DeviceType Display
+VisibleButtons -btRecord -btEject
-<lainnya> +Options -ofFileMustExist
Filter
275
275 alClient -kosongkan-
false alBottom -kosongkan-
dtAVIVideo Panel1
false false
true true Video Files *.avi
Tabel 8 – Susunan dan nilai property komponen Siapkan pula komponen MainMenu dengan menu &File&Open, -, E&xit
Kemudian pada Form1, pilih menu File|Open dan tuliskan perintah di bawah ini
if (OpenDialog1->Execute()) { Update();
Screen->Cursor=crHourGlass; MediaPlayer1->FileName=OpenDialog1->FileName; MediaPlayer1->Open();
Screen->Cursor=crArrow; MediaPlayer1->DisplayRect=Rect(4,4,0,0); int Lebar_sementara=MediaPlayer1->DisplayRect.Right+8;
int Tinggi_sementara=MediaPlayer1->DisplayRect.Bottom+8; int Kiri_sementara; int Atas_sementara;
int Form_tinggi; int Form_lebar; int Media_sementara;
if (Lebar_sementara<MediaPlayer1->Width) { Form_lebar=MediaPlayer1->Width+4;
Media_sementara=2; Kiri_sementara=Media_sementara+(MediaPlayer1->Width-Lebar_sementara)/2;
} else {
Form_lebar=Lebar_sementara+4;
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[41]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Kiri_sementara=2; Media_sementara=(Lebar_sementara-MediaPlayer1->Width)/2; }
Atas_sementara=MediaPlayer1->Top+MediaPlayer1->Height+15; Form_tinggi=Atas_sementara+Tinggi_sementara+2; ClientWidth=Form_lebar;
ClientHeight=Form_tinggi; Panel1->Left=Kiri_sementara; Panel1->Width=Lebar_sementara;
Panel1->Top=Atas_sementara; Panel1->Height=Tinggi_sementara;
MediaPlayer1->Left=Media_sementara; Panel1->Visible=true; }
Setelah itu pilih menu File|Exit dan tuliskan perintah Close(); Kemudian jalankan program dengan menekan F9
Gambar 16 – Susunan komponen AVI Player
Membuat Animasi Sederhana
Kita akan membuat sebuah bola kecil yang dapat berjalan sesuai dengan tombol yang ditekan. Siapkan komponen-komponen dengan nilai property
seperti dalam tabel berikut ini.
Komponen Property Nilai
Timer1
Timer2 Timer3
Enabled Interval
Enabled Interval Enabled
false 1
false 1 false
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[42]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Timer4
SpeedButton1 SpeedButton2
SpeedButton3 SpeedButton4 Shape1
Interval Enabled
Interval Glyph Glyph
Glyph Glyph Shape
Height Weight
1 false
1 ARROW1R.BMP ARROW1U.BMP
ARROW1L.BMP ARROW1D.BMP stCircle
10 10
Tabel 9 – Susunan komponen dan nilai property
Susun komponen SpeedButton1 sampai 4 seperti terlihat dalam gambar di bawah ini
Gambar 17 – Susunan komponen pada form
Double-klik Timer1 dan tuliskan perintah di bawah ini if (Shape1->Left<ClientWidth-Shape1->Width)
Shape1->Left=Shape1->Left+1; Double-klik Timer2 dan tuliskan perintah di bawah ini
if (Shape1->Left>0) Shape1->Left=Shape1->Left-1;
Double-klik Timer3 dan tuliskan perintah di bawah ini
if (Shape1->Top>0) Shape1->Top=Shape1->Top-1;
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[43]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Double-klik Timer4 dan tuliskan perintah di bawah ini if (Shape1->Top<ClientHeight-Shape1->Height)
Shape1->Top=Shape1->Top+1; Untuk event OnMouseDown pada masing-masing komponen SpeedButton
tuliskan perintah di bawah ini TimerX->Enabled=true; //X adalah nomor indeks SpeedButtonX
Sebaliknya untuk event OnMouseUp tuliskan perintah di bawah ini
TimerX->Enabled=false;
Jalankan program dengan menekan F9
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[44]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
DATABASE
Bagian ini akan dijelaskan melalui contoh-contoh mulai dari yang paling mudah
hingga yang cukup rumit Melihat Isi Database
Untuk contoh ini kita akan menggunakan database yang sudah disediakan oleh C++ Builder sebagai sample database. Siapkan komponen-komponen dan nilai
property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Table1
DataSource1
DBGrid1
DatabaseName ReadOnly
TableName Active DataSet
Align DataSource Options->dgEditing
BCDEMOS true
ORDERS.DB false Table1
alClient DataSource1 false
Tabel 10 – Susunan dan nilai property komponen
Kemudian pada OI komponen Form1, pilih tab Events dan double-klik event OnCreate dan tuliskan perintah Table1->Active=true;. Jalankan program
dengan menekan F9.
Gambar 18 – Tampilan Database Mengedit Database
Sekarang kita akan membuat aplikasi yang dapat mengubah isi database. Ubah property Align DBGrid1 menjadi alNone dan ubah ukurannya menjadi kurang
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[45]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
lebih ½ ukuran Form1 untuk memberi tempat pada komponen-komponen lain yang akan kita gunakan. Siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Panel1
Table1
DataSource1 DBGrid1
DBText1 DBComboBox1
DBListBox1
Label1
Label2 Label3
Label4
Align
Caption Height DatabaseName
ReadOnly TableName Active
DataSet Align DataSource
+Options -dgEditing -dgTabs
DataSource DataField DataSource
DataField DataSource DataFields
Items
DataSource DataField IntegralHeight
Items
Caption
Caption Caption
Caption
alTop
-kosongkan- 130 BCDEMOS
false ORDERS.DB false
Table1 alClient DataSource1
true false
DataSource1 CustNo DataSource1
ItemsTotal DataSource1 PaymentMethod
AmEx Credit Check
COD MC Visa
DataSource1 ShipVIA true
DHL Emery FedEx
UPS US Mail Nomor Pelanggan
Total Item Kirim Melalui
Metoda Pembayaran
Tabel 11 – Susunan dan nilai property komponen Kemudian pada OI Form1, pilih tab Events dan double-klik event On Close.
Setelah itu tuliskan perintah di bawah ini: if(Table1->State==dsEdit)
{ if(Application->MessageBox("Perubahan belum disimpan.\n"
"Apakah ingin disimpan?", "Simpan?",
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[46]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
MB_YESNO|MB_ICONQUESTION) == ID_YES) Table1->Post(); }
Jalankan program dengan menekan F9 Menggunakan DBNavigator
Dengan DBNavigator pengguna program dapat menelusuri dan mengedit database dengan mudah. DBNavigator terdiri dari tombol-tombol yang dapat dikenali fungsinya dari lambang yang tertera di setiap tombol.
Gambar 19 - DBNavigator
Untuk membuat aplikasi dengan komponen ini kita masih menggunakan
database yang disediakan oleh C++ Builder. Siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Form1 Table1
DataSource1
DBNavigator1
DBEdit1
DBEdit2
DBEdit3
DBEdit4
Button1 Label1 Label2
Label3
BorderStyle DatabaseName ReadOnly
TableName Active DataSet
AutoEdit DataSource +VisibleButtons
-nbFirst -nbPrior -nbNext
-nbLast -<lainnya> DataSource
DataField ReadOnly
DataSource DataField ReadOnly
DataSource DataField ReadOnly
DataSource DataField ReadOnly
Caption Caption Caption
Caption
bsSingle BCDEMOS true
BIOLIFE.DB true Table1
false DataSource1
true true true
true false DataSource1
Category true
DataSource1 Common_Name true
DataSource1 Species Name true
DataSource1 Length (cm) true
&Gambar Kategori Nama Umum
Nama Species
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[47]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Label4 Form2
DBImage1 (di Form2)
Caption BorderStyle
DataSource DataField ReadOnly
Panjang (cm) bsSingle
Form1->DataSource1 Graphic true
Tabel 12 – Susunan dan nilai property komponen
Gambar 20 – Susunan Form1 dan Form2
Double-klik Button1 dan tuliskan Form2->ShowModal();. Di bagian atas Unit1.cpp tambahkan #include “Unit2.h”. Jalankan program dengan menekan F9.
Mencari Record dalam Database
Siapkan komponen-komponen dan nilai property berdasarkan tabel di bawah ini
Komponen Property Nilai
Table1
DataSource1 DBGrid1
Label1
Button1 MaskEdit1
DatabaseName TableName
Active DataSet Align
Height DataSource Caption
Caption EditMask
BCDEMOS CUSTOMER.DB
true Table1 alBottom
200 DataSource1 Cari nomor pelanggan
&Cari !9999;0;*
Tabel 13 – Susunan dan nilai property komponen
Double-klik komponen Button1 dan tuliskan perintah di bawah ini Table1->SetKey();
Table1->FieldNilais["CustNo"]=MaskEdit1->Text; if (!Table1->GotoKey()) {
AnsiString Str="Tidak dapat menemukan data: " + MaskEdit1->Text; Application->MessageBox(Str.c_str(),"Hasil pencarian", MB_ICONINFORMATION|MB_OK);}
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[48]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Membuat Database Sendiri
Berikut ini adalah sebuah contoh aplikasi database yang cukup kompleks. Kita akan menggunakan fasilitas yang dibawa oleh C++ Builder untuk membuat database, yaitu Borland Database Desktop 7. Untuk membuat database, ikuti
langkah-langkah penggunaan Database Desktop (DD) berikut ini.
1. Buka DD (StartProgramsBorland C++Builder 4Database Desktop)
2. Hal yang pertama dilakukan adalah membuat alias, yaitu nama penunjuk tempat database kita berada. Hal ini digunakan agar memudahkan aplikasi yang akan dibuat memanggil database yang akan digunakan.
Untuk membuat alias, pilih menu Tools|Alias Manager… hingga muncul window Alias Manager
3. Buat sebuah alias database baru dengan meng-klik New. Klik Browse
untuk menentukan lokasi database dan pilih folder C:\My Document. 4. Tuliskan „Mahasiswa‟ pada kotak isian Database alias. Pilih OK untuk
membuatnya
5. Buat tabel baru, dengan memilih menu File|New|Table. Pilih Paradox 7 pada Table Type hingga muncul jendela Create Paradox 7 Table
6. Masukkan data-data sesuai dengan tabel di bawah ini
Field Name Type Size Key
Nomor
NIM Nama Alamat
Tanggal_lahir Keterangan
Auto Increment
Long Integer Alpha Alpha
Date Memo
25 50
240
*
Tabel 14 – Record Database Mahasiswa
Untuk menentukan tipe field, pada kolom Type, tekan spacebar dan pilih tipe data dengan memilih huruf yang diberi garis bawah (underline), atau dengan meng-klik kanan kolom tersebut.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[49]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Gambar 21 – Restruktur Tabel
7. Kemudian kita harus mengatur indeks database. Indeks database berguna untuk memberikan acuan jika kita ingin membuat aplikasi pencarian database. Untuk itu pilih Secondary Indexes pada Table
properties, kemudian klik Define 8. Di window Define Secondary Indexes pilih NIM di list sebelah kiri
kemudian pindahkan ke list sebelah kanan dengan menekan tombol
panah, kemudian klik OK dan simpan dengan nama Indeks_NIM. Ulangi langkah ini untuk field Nama (simpan dengan nama Indeks_nama) dan Alamat (Indeks_alamat). Sekarang kita memiliki tiga indeks pada list
Secondary Indexes 9. Klik Save dan simpan di Alias Mahasiswa dengan nama “db_mahasiswa” 10. Sekarang database baru siap untuk diisi
Masukkan data mahasiswa ke dalam database dengan memilih menu Table|Edit data atau dengan menekan F9. Isikan 4 atau 5 record sesuai
dengan keinginan anda pada setiap field. Perhatikan dalam mengisi field Tanggal_lahir, format yang digunakan adalah bulan/tanggal/tahun (misalnya 11/22/1977 untuk 22 November 1977) sistem ini bergantung
dengan konfigurasi MS Windows yang anda gunakan! Setelah anda selesai mengisikan data, secara otomatis data sudah
tersimpan dalam file “db_mahasiswa”. Kita bisa langsung menuju C++ Builder IDE untuk membuat aplikasi database dengan database yang telah kita buat.
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[50]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Gambar 22 – Database Desktop siap untuk diisi
Pada Form1, siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini
Komponen Property Nilai
Form1
Table1
DataSource1 Panel1
Panel2
CheckBox1 (di Panel2)
DBNavigator1 (di Panel2)
DBMemo1
DBGrid1
Height Width
DatabaseName TableName Active
DataSet Align Caption
Height Align Caption
Height Caption Left
Top DataSource Left
Top Align DataSource
DataField Font->Name ReadOnly
Align DataSource
345 535
Mahasiswa db_mahasiswa true
Table1 alTop -kosongkan-
55 alBottom -kosongkan
40 Edit Database 410
5 DataSource1 8
8 alRight DataSource1
Keterangan Courier true
AlClient DataSource1
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[51]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
ComboBox1 (di Panel1)
Edit1 (di Panel1) Label1 (di Panel1)
Label2 (di Panel1) Button1 (di Panel1)
ReadOnly Items
Style Text Caption
Caption Caption
true Nomor, NIM, Nama, Alamat
csDropDownList -kosongkan- Field
Record &Cari
Tabel 15 – Susunan dan nilai property komponen
Gambar 23 – Susunan komponen pada Form1 1. Double-klik CheckBox1 dan tuliskan perintah di bawah ini
if (CheckBox1->Checked) {
DBGrid1->ReadOnly=false; DBMemo1->ReadOnly=false; }
else { DBGrid1->ReadOnly=true;
DBMemo1->ReadOnly=true; }
2. Double-klik Button1 dan tuliskan perintan di bawah ini
int indeks=ComboBox1->ItemIndex;
switch (indeks) { case 0:
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[52]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Table1->IndexName="";break; case 1: Table1->IndexName="Index_NIM";break;
case 2: Table1->IndexName="Index_nama";break; case 3:
Table1->IndexName="Index_alamat";break; } Table1->FindNearest(OPENARRAY(TVarRec,(Edit1->Text)));
3. Jalankan program dengan menekan F9
Menggunakan Structured Query Language (SQL)
SQL adalah kumpulan perintah yang digunakan untuk membentuk proses Query. Dengan SQL kita bisa melakukan definisi objek-objek database seperti pembuatan tabel, pembuatan dan pengaturan indeks, dan mengolah data pada
tabel yang sudah ada. Perintah-perintah yang dapat dilakukan melalui SQL adalah:
- Pernyataan: SELECT, UPDATE, INSERT, DELETE - Agregat: SUM, AVG, MIN, MAX, COUNT - Clause: FROM, WHERE, ORDER BY, GROUP BY, HAVING
- Operator: +,-,*,/,=,<,<=,>,>=,<>,IS NULL, AND, OR, NOT, || Kita akan mengetahui fungsi dari penintah-perintah tersebut dari contoh yang
akan kita buat. Di contoh ini kita akan membuat aplikasi yang akan meminta pengguna untuk memasukkan perintah SQL ke dalam isian yang sudah ditetapkan. Susun komponen-komponen dan nilai property berdasarkan tabel di
bawah ini.
Komponen Property Nilai
Form1 Query1
Query2
DataSource1
DBGrid1
Panel1
Edit1 Edit2 Label1
Label2 Label3
Height Width CachedUpdate
DatabaseName RequestLive CachedUpdate
DatabaseName RequestLive DataSource
Align DataSource ReadOnly
Align Caption Height
Text Text Caption
Caption Caption
300 435 true
DBDEMOS true false
DBDEMOS true Query1
alClient Query1 true
alTop -kosongkan- 110
-kosongkan- -kosongkan- Insert query
SELECT declaration UPDATE, INSERT, DELETE declarations
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[53]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
Tabel 16 - Susunan dan nilai property komponen
Gambar 24 – Susunan komponen pada Form1
Kemudian ikuti langkah-langkah di bawah ini
1. Pada OI Edit1 pilih tab Events, double-klik event OnKeyPress dan
tuliskan perintah di bawah ini
if (Key==VK_RETURN) { if (Edit1->Text!="")
{ try { Query1->Close();
Query1->SQL->Clear(); Query1->SQL->Add(Edit1->Text); Query1->Open();
Edit2->Text=""; } catch (...) {
Application->MessageBox("Struktur query salah!", "Pesan", MB_OK|MB_ICONERROR); Edit1->SetFocus();
} } }
2. Pada OI Edit2 pilih tab Events, double-klik event OnKeyPress dan
tuliskan perintah di bawah ini
if (Key==VK_RETURN) {
Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[54]::
© 2001 – Houari Sabirin – http://upk.fi.itb.ac.id/~hikaru
if (Edit2->Text!="") { try {
Query2->SQL->Clear(); Query2->SQL->Add(Edit2->Text); Query2->ExecSQL();
Query1->Refresh(); Query2->Close(); Edit1->Text="";
} catch (...) {
Application->MessageBox("Struktur query salah!", "Pesan", MB_OK|MB_ICONERROR); Edit2->SetFocus();
} } }
3. Jalankan program dengan menekan F9
Untuk mengetahui penggunaan SQL, sekarang coba masukkan perintah SQL sesuai pada tempatnya.
- Perintah SELECT
Digunakan untuk memberikan instruksi pada engine SQL agar menyaring field-field tertentu dari tabel yang dipilih, misalnya:
o select * from venues
o select * from orders where OrderNo > 1300 o select CustNo, SUM(AmountPaid) as TotalPaid from orders group
by CustNo
o select AVG(AmountPaid) as AveragePaid from orders o select MIN(Population) as PalingKecil from country o select CustNo, COUNT(ItemsTotal) as JumlahSemua from orders
group by CustNo o select CustNo, OrderNo, from orders where OrderNo>1300 and
CustNo=3052
- Perintah UPDATE Digunakan untuk memodifikasi data dengan proses penggantian data dengan data baru atau proses perubahan nilai pada field, misalnya:
o update venues set Venue=”Stadion Siliwangi” where VenueNo=7 - Perintah INSERT
Digunakan untuk menyisipkan record ke dalam tabel, misalnya
o insert into master (SYMBOL, CO_NAME) Nilais (“CPPB”, “C++ Builder”)