C++ Builder Training Module

Preview:

DESCRIPTION

Training module of C++ Builder to teach simple usages of C++ in Borland C++ Builder.Written by Houari, 2001In Indonesian language

Citation preview

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”)

Recommended