Anda di halaman 1dari 54

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[1]::

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.

form yang kita inginkan untuk meletakkan komponen tersebut. Gambar 1 – C++ Builder IDE dan form

Gambar 1 C++ Builder IDE dan form awal

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[2]::

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!.

menghilang dan form ditampilkan dengan judul Hello World!. Gambar 2 – Compiler status dialog box Berikutnya

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[3]::

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

tampilan seperti yang terlihat pada gambar di bawah ini Gambar 3 – Program Hello World! Dari

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[4]::

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.

OK. Maka bagian Code Editor akan terlihat seperti gambar 4. Gambar 4 – Code Editor dari

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 “*/”.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[5]::

- 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

-2.147.483.648 sampai

long

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,4x10 381

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[6]::

double

2,2x10 -308 sampai 1,8x10 3082

bool

true atau false

string

kalimat

char

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++:

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[7]::

Operator

Deskripsi

Contoh

+

tambah

x=y+z

-

kurang

x=y-z

*

kali

x=y*z

/

bagi

x=y/z

=

isi isi dan tambahkan isi dan kurangkan isi dan kalikan isi dan bagi

x=11

+=

x+=11 (i.e. x=x+11)

-=

x-=11

*=

x*=11

\=

x\=11

&&

AND

if (x && y) { if (x || y) {

}

}

||

OR

==

sama dengan tidak sama dengan

if (x==y) { if (x!=y) {

}

!=

}

<

lebih kecil

if (x<y) { } if (x>y) { } if (x<=y) { if (x>=y) {

}

}

 

>

lebih besar lebih kecil sama dengan lebih besar sama dengan

<=

>=

++

tambah 1

x++ (i.e. x=x+1)

--

kurang 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;

}

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[8]::

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[9]::

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

T U l i s a n i n i a r r a y

i

n

i

T U l i s a n i n i a r r a y

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[10]::

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

jangan

yang kita tetapkan, yaitu x>11. Perhatikan setelah perintah if(

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

else {

true_2;

}

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[11]::

Contoh program

Program

y=ax 2 +bx+c

untuk

menghitung

#include <conio.h> #include <iostream.h> #include <math.h> #pragma hdrstop #include <condefs.h>

akar-akar

dari

suatu

persamaan

kuadrat

//-----------------------------------------------------------------

#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>.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[12]::

Switch

kita dapat menggunakan switch untuk

melakukan pencabangan. Switch memungkinkan kita untuk mengeksekusi satu dari beberapa blok perintah sebagai hasil dari suatu kondisi. Perhatikan contoh

Selain menggunakan if

(else)

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;

}

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[13]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[14]::

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[15]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[16]::

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

muncul jendela Alignment seperti terlihat dalam gambar Gambar 5 – Alignment Palette 3. Pilih ketiga komponen

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[17]::

Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[17]:: Gambar 6 – Posisi Button pada Panel

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

aplikasi yang kita buat akan memiliki icon seperti ini Kita dapat menggunakan icon lain yang kita

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[18]::

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

susun masing-masing komponen seperti gambar di bawah ini Gambar 7 – Susunan komponen pada Form1 2.

Gambar 7 Susunan komponen pada Form1

2.

-

-

-

-

3.

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

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[19]::

//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

x2. Dengan ini, hapus komponen edit txtx1 dan txtx2 di Form1 Gambar 8 – Susunan komponen

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=…

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[20]::

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=””;

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[21]::

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

11.Jalankan program dengan menekan F9 Gambar 9 – Aplikasi yang menunjukkan waktu pada

Gambar 9 Aplikasi yang menunjukkan waktu pada StatusBar

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[22]::

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

komponen RadioButton dan susun seperti gambar di bawah ini Gambar 10 – Susunan komponen pada Form1

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;}

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[23]::

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

Align

alTop

Caption

-kosongkan-

StatusBar1

FileListBox1

Align

alClient alLeft

DirectoryListBox1

Align

FileList

FileListBox1

DriveComboBox1 (di Panel1) FilterComboBox1 (di Panel1)

DirList

DirectoryListBox1

FileList

FileListBox1

 

Filter

All Files *.*, Program Files *.exe,

Document

Media Files *.mp3;*.wav;*.mid

Files

*.doc;*.txt;*.xls,

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[24]::

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

Jalankan program dengan menekan F9 Gambar 11 – Contoh aplikasi saat run-time Komponen

Gambar 11 Contoh aplikasi saat run-time

Komponen FileListBox, DirectoryListBox, DriveComboBox dan FilterComboBox terdapat dalam tab Win 3.1

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[25]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[26]::

HTML1->Cancel(Edit1->Text);

10.Jalankan program dengan menekan F9

10.Jalankan program dengan menekan F9 Gambar 12 – Susunan komponen pada form © 2001 –

Gambar 12 Susunan komponen pada form

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[27]::

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

Caption

Color Selector

- Panel1

Caption

Kosongkan

- Button1

Caption

Pilih Warna

- ColorDialog1

GroupBox2

Caption

Audio Player

- Button2

Caption

Buka File

- MediaPlayer1

DeviceType

dtAutoSelect

+VisibleButtons

-btPlay

true

-btPause

true

-btStop

true

-<lainnya>

false

- OpenDialog1

+Options

-ofFileMustExist

true MPEG Layer 3*.mp3 Wave*.wav

Filter

- ProgressBar1

Min

0

Max

100

Position

0

- Timer

Enabled

false

Interval

200

GroupBox3

Caption

Word Processor

- Button4

Caption

Pilih Font

- Button5

Caption

Print Teks

- Memo1

Lines

-kosongkan-

- FontDialog1

- PrintDialog1

BitButton

Kind

bkClose

Tabel 4 Pengaturan komponen

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[28]::

Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[28]:: Gambar 13 – Susunan komponen Kemudian ikuti

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;

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[29]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[30]::

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

Align

alClient

Lines

-kosongkan-

PlainText

true

ScrollBars

ssBoth

WantTabs

true

Panel1

Align

alTop

BevelOuter

bvNone

Caption

-kosongkan-

Height

35

ShowHint

true

SpeedButton1 (pada Panel1)

Glyph

filesave.bmp

Height

25

Hint

Save

Left

10

Top

5

Width

25

SpeedButton2 (pada Panel1)

Glyph

print.bmp

Height

25

Hint

Print

Left

40

Top

5

Width

25

Bevel1 (pada Panel1)

Align

alTop

Height

5

Shape

bsTopLine

StatusBar1

OpenDialog1

Filter

Document Files

 

*.txt;*.rtf;

 

+Options

-ofPathMustExist

true

-ofFileMustExist

true

-ofShareAware

true

SaveDialog1

DefaultExt

TXT

Filter

Document Files

 

*.txt;*.rtf;

PrintDialog1

PrinterSetupDialog1

Tabel 5 Susunan dan nilai property komponen

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[31]::

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:

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[32]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[33]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[34]::

Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[34]:: Gambar 14 – Susunan komponen pada Form1

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

}

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[35]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[36]::

Komponen

Property

Nilai

SpeedButton3

Glyph

ARROW3L.BMP

Height/Width

25

Hint

Rata kiri

Left

80

Top

5

SpeedButton4

Glyph

ARROW3R.BMP

Height/Width

25

Hint

Rata kanan

Left

140

Top

5

SpeedButton5

Glyph

ARROW3D.BMP

Height/Width

25

Hint

Rata tengah

Left

110

Top

5

FontDialog1

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[37]::

GRAFIK DAN MULTIMEDIA

Membuat Grafik dalam Koordinat Kartesian

DAN MULTIMEDIA  Membuat Grafik dalam Koordinat Kartesian Gambar 15 – Tampilan aplikasi ketika di-run Biasanya

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

Align

alBottom

Caption

-kosongkan-

Panel2

Align

alRight

Caption

-kosongkan-

Panel3

Align

alTop

Caption

-kosongkan

TrackBar1 (di Panel2)

Min

1

Max

10

Position

5

Orientation

trVertical

TickMarks

tmBoth

TickStyle

tsAuto

TrackBar2 (di Panel3)

Min

1

Max

10

Position

5

Orientation

trHorizontal

TickMarks

tmBoth

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[38]::

 

TickStyle

tsAuto

PaintBox1

Align

alClient

RadioButton1 (di Panel1)

Caption

&Sinus

RadioButton2 (di Panel1)

Caption

&Cosinus

RadioButton3 (di Panel1)

Caption

&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;

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[39]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[40]::

komponen tersebut. Siapkan komponen-komponen dan nilai property sesuai dengan tabel di bawah ini

Komponen

Property

Nilai

Form1

ClientWidth

275

ClientHeight

275

Panel1

Align

alClient

Caption

-kosongkan-

Visible

false

Panel2

Align

alBottom

Caption

-kosongkan-

MediaPlayer1

DeviceType

dtAVIVideo

Display

Panel1

+VisibleButtons

-btRecord

false

-btEject

false

-<lainnya>

true

OpenDialog1

+Options

-ofFileMustExist

true Video Files *.avi

Filter

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;

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[41]::

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

Close(); Kemudian jalankan program dengan menekan F9 Gambar 16 – Susunan komponen AVI Player  Membuat

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

Enabled

false

Interval

1

Timer2

Enabled

false

Interval

1

Timer3

Enabled

false

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[42]::

 

Interval

1

Timer4

Enabled

false

Interval

1

SpeedButton1

Glyph

ARROW1R.BMP

SpeedButton2

Glyph

ARROW1U.BMP

SpeedButton3

Glyph

ARROW1L.BMP

SpeedButton4

Glyph

ARROW1D.BMP

Shape1

Shape

stCircle

Height

10

Weight

10

Tabel 9 Susunan komponen dan nilai property

Susun komponen SpeedButton1 sampai 4 seperti terlihat dalam gambar di bawah ini

sampai 4 seperti terlihat dalam gambar di bawah ini Gambar 17 – Susunan komponen pada form

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;

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[43]::

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[44]::

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

DatabaseName

BCDEMOS

ReadOnly

true

TableName

ORDERS.DB

Active

false

DataSource1

DataSet

Table1

DBGrid1

Align

alClient

DataSource

DataSource1

Options->dgEditing

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.

Jalankan program dengan menekan F9. Gambar 18 – Tampilan Database  Mengedit Database

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

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[45]::

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

Align

alTop

Caption

-kosongkan-

Height

130

Table1

DatabaseName

BCDEMOS

ReadOnly

false

TableName

ORDERS.DB

Active

false

DataSource1

DataSet

Table1

DBGrid1

Align

alClient

DataSource

DataSource1

+Options

-dgEditing

true

-dgTabs

false

DBText1

DataSource

DataSource1

DataField

CustNo

DBComboBox1

DataSource

DataSource1

DataField

ItemsTotal

DataSource

DataSource1

DataFields

PaymentMethod

Items

AmEx

 

Credit

Check

COD

MC

Visa

DBListBox1

DataSource

DataSource1

DataField

ShipVIA

IntegralHeight

true

Items

DHL

 

Emery

FedEx

UPS

US Mail Nomor Pelanggan Total Item Kirim Melalui Metoda Pembayaran

Label1

Caption

Label2

Caption

Label3

Caption

Label4

Caption

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?",

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[46]::

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.

fungsinya dari lambang yang tertera di setiap tombol. Gambar 19 - DBNavigator Untuk membuat aplikasi dengan

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

BorderStyle

bsSingle

Table1

DatabaseName

BCDEMOS

ReadOnly

true

TableName

BIOLIFE.DB

Active

true

DataSource1

DataSet

Table1

AutoEdit

false

DBNavigator1

DataSource

DataSource1

+VisibleButtons

-nbFirst

true true true true false

-nbPrior

-nbNext

-nbLast

-<lainnya>

DBEdit1

DataSource

DataSource1

DataField

Category true

ReadOnly

DBEdit2

DataSource

DataSource1

DataField

Common_Name true

ReadOnly

DBEdit3

DataSource

DataSource1

DataField

Species Name

ReadOnly

true

DBEdit4

DataSource

DataSource1

DataField

Length (cm)

ReadOnly

true

Button1

Caption

&Gambar

Label1

Caption

Kategori

Label2

Caption

Nama Umum

Label3

Caption

Nama Species

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[47]::

Label4

Caption

Panjang (cm)

Form2

BorderStyle

bsSingle

DBImage1 (di Form2)

DataSource

Form1->DataSource1

DataField

Graphic

ReadOnly

true

Tabel 12 Susunan dan nilai property komponen

true Tabel 12 – Susunan dan nilai property komponen Gambar 20 – Susunan Form1 dan Form2
true Tabel 12 – Susunan dan nilai property komponen Gambar 20 – Susunan Form1 dan Form2

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

DatabaseName

BCDEMOS

TableName

CUSTOMER.DB

Active

true

DataSource1

DataSet

Table1

DBGrid1

Align

alBottom

Height

200

DataSource

DataSource1

Label1

Caption

Cari nomor pelanggan

Button1

Caption

&Cari

MaskEdit1

EditMask

!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);}

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[48]::

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

Auto Increment Long Integer Alpha Alpha Date

 

*

NIM

 

Nama

25

Alamat

50

Tanggal_lahir

Keterangan

Memo

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[49]::

Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[49]:: Gambar 21 – Restruktur Tabel 7. Kemudian

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.

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[50]::

Modul Pelatihan C++ Builder – UPK FISIKA ITB ::[50]:: Gambar 22 – Database Desktop siap untuk

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

Height

345

Width

535

Table1

DatabaseName

Mahasiswa

TableName

db_mahasiswa

Active

true

DataSource1

DataSet

Table1

Panel1

Align

alTop

Caption

-kosongkan-

Height

55

Panel2

Align

alBottom

Caption

-kosongkan

Height

40

CheckBox1 (di Panel2)

Caption

Edit Database

Left

410

Top

5

DBNavigator1 (di Panel2)

DataSource

DataSource1

Left

8

Top

8

DBMemo1

Align

alRight

DataSource

DataSource1

DataField

Keterangan

Font->Name

Courier

ReadOnly

true

DBGrid1

Align

AlClient

DataSource

DataSource1

© 2001 Houari Sabirin http://upk.fi.itb.ac.id/~hikaru

Modul Pelatihan C++ Builder UPK FISIKA ITB ::[51]::

 

ReadOnly

true

ComboBox1 (di Panel1)

Items

Nomor, NIM, Nama, Alamat

Style

csDropDownList

Edit1 (di Panel1)

Text

-kosongkan-

Label1 (di Panel1)

Caption

Field

Label2 (di Panel1)

Caption

Record

Button1 (di Panel1)

Caption

&Cari

Tabel 15 Susunan dan nilai property komponen

&Cari Tabel 15 – Susunan dan nilai property komponen Gambar 23 – Susunan komponen pada Form1

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;

}