23.10.2014 Views

konsep dan aplikasi pemrograman menggunakan borland c__ ...

konsep dan aplikasi pemrograman menggunakan borland c__ ...

konsep dan aplikasi pemrograman menggunakan borland c__ ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

KONSEP DAN APLIKASI<br />

PEMROGRAMAN MENGGUNAKAN<br />

BORLAND C++ BUILDER 6<br />

BAGIAN 2:<br />

APLIKASI VISUAL DATABASE<br />

DENGAN ADO.NET<br />

(MS ACCESS & MS SQL SERVER 2000)<br />

M. F ACHRURROZI


Daftar Isi<br />

MUQADDIMAH<br />

1. PENDAHULUAN<br />

2. KONSEP DASAR PEMROGRAMAN VISUAL<br />

3. PEMROGRAMAN VISUAL MENGGUNAKAN BORLAND C++ BUILDER 6<br />

4. KONSEP DASAR PERANCANGAN DATABASE<br />

5. PENGENALAN BORLAND DATABASE DESKTOP INTERFACE<br />

6. APLIKASI DATABASE SEDERHANA MENGGUNAKAN BORLAND DATABASE ENGINE<br />

(BDE)<br />

7. KONSEP DASAR PERANCANGAN SOFTWARE SISTEM INFORMASI<br />

8. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS ACCESS DATABASE<br />

9. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS SQL SERVER DATABASE<br />

10. TIPS & TRIKS<br />

11. PENUTUP<br />

REFERENSI<br />

RIWAYAT HIDUP<br />

2


Muqaddimah<br />

“Allah mengangkat derajat orang yang beriman <strong>dan</strong> orang yang berilmu pengetahuan<br />

beberapa derajat”. (Mujaddalah 11)<br />

“Abu Hurairah r.a. berkata: Rasulullah SAW bersabda: Barang siapa yang ditanya suatu<br />

ilmu agama lalu menyembunyikannya, maka akan dikendalikan mulutnya pada hari<br />

kiamat dengan kendali dari api neraka”. (Abu Dawud, Attirmidzi)<br />

“Tiada akan pernah mampu seseorang dalam mengerjakan sesuatu tanpa pernah<br />

mencobanya terlebih dahulu”.<br />

Dari ketiga sumber ilmu inilah penulis ingin berusaha membuat sesuatu yang<br />

bermanfaat bagi orang lain, walaupun masih banyak kekurangan yang terdapat di<br />

dalam buku ini.<br />

3


Buku merupakan lanjutan dari Konsep <strong>dan</strong> Aplikasi Pemrograman mengunakan Borland C++<br />

Builder 6 Bagian 1 : Aplikasi Konsol. Buku ini membahas mengenai permograman secara<br />

visual yang berorientaskan database. Adapun jenis database yang digunakan adalah MS<br />

Acces <strong>dan</strong> MS SQL Server 2000. Sebagian besar isi dari buku ini merupakan rangkuman<br />

dari sumber-sumber yang telah dibuat penulis lain. Penulis berharap agar buku ini dapat<br />

bermanfaat bagi semua kalangan pembaca. Terima kasih untuk semuanya yang telah<br />

memberikan banyak kritik <strong>dan</strong> saran serta dukungan dalam penulisan buku ini. Dunia<br />

akan selalu indah karena kejujuran <strong>dan</strong> kebersamaan.<br />

Palembang, Juni 2005<br />

Penulis<br />

4


1. Pendahuluan<br />

Situasi persaingan bi<strong>dan</strong>g teknologi informasi membuat semua kalangan berlombalomba<br />

untuk menjadi yang terbaik. Dimulai dari produk sistem informasi yang berbasis<br />

konsol (dos) maupun yang berbasis wndow. Perusahaan-perusahaan telah melirik ke<br />

arah pengembangan sistem informasi yang berbasis window, selain penggunaannya<br />

tidak sulit, fungsi <strong>dan</strong> fasilitasnya sudah memnuhi kebutuhan mereka. Seperti kalu<br />

dilihat pada masa lalu, perusahaaan <strong>menggunakan</strong> <strong>aplikasi</strong> dos untuk pelayanan<br />

terhadap kastamernya.. Selain penggunaannya yang berbelit-belit, penampilan <strong>dan</strong><br />

fasilitasnya tidak memenuhi kebutuhan mereka.<br />

Ambil sebuah contoh kasus sederhana. Sebuah perusahaan yang bergerak di bi<strong>dan</strong>g<br />

tekstil. Perusahaan terserbut memiliki bagian-bagian kerja yang saling berkait. Ada<br />

bagian keuangan yang mengatur pengeluaran <strong>dan</strong> pemasukkan perusahaan, ada bagian<br />

produksi yang hanya memproduksi saja, ada bagian personalia yang mengatur jumlah<br />

<strong>dan</strong> kinerja para karyawan, <strong>dan</strong> ada bagian pemasaran yang akan menawarkan produk<br />

ke konsmen. Bayangkan, jika perusahaan tersebut tidak mempunyai sistem informasi<br />

yang baik untuk pengelolaan perusahaannya, bagaimana bagian pemasarannya bisa<br />

bekerja jika informasi dari bagian produksi tidak cepat diterima atau tidak sama sekali,<br />

bagaimana bagian produksi bisa menghasilkan sebuah produk yang baik jika informasi<br />

kinerja <strong>dan</strong> kebutuhan pegawai produksi lambat diterima oleh bagian personalia, <strong>dan</strong><br />

bagaimana bagian keuangan bisa menerima <strong>dan</strong> mengeluarkan <strong>dan</strong>a jika informasi dari<br />

personalia <strong>dan</strong> pemasaran tidak jelas diterima. Maka akan terjadi inefisiensi dari<br />

perusahaan tersebut, baik dari segi waktu, maupun dari segi materi.<br />

Masalah di atas banyak terjadi di perusahaan-perusahaan, untuk itu perlu dirancang<br />

sebuah sistem informasi yang tepat untuk mengelola alur kerja di perusahaan tersebut.<br />

Analisa penyebab keterlambatan penyampaian informasi, misalkan informasi yang<br />

digunakan masih <strong>menggunakan</strong> kertas., tidak terkomputerisasi, atau data yang<br />

dimasukkan tiap-tiap bagian tidak terintegrasi ke satu tempat, sehingga menyebabkan<br />

data yang ada di tiap bagian itu berbeda satu sama lain.<br />

Dikarenakan keadaan inilah Beberapa pengembang meningkatakan kemampuan<br />

mereka dengan mendalami software yang berbasi window untuk membangun sebuah<br />

sistem informasi yang dapat memenuhi kebutuhan kastamer. Salah satu software<br />

pengembang yang mampu memberikan hal itu adalah Borland C++ Builder 6.<br />

Borland C++ Builder 6 memiliki fasilitas-fasilitas yang penuh dalam mendukung<br />

pengembang software sistem informasi, selain mampu untuk <strong>aplikasi</strong>-<strong>aplikasi</strong> yang<br />

5


sederhana, ia juga mampu untuk pengembangan softaware yang berorientasikan<br />

database standalone (tunggal) maupun client-server (database jaringan).<br />

Sampai saat ini, pembuatan <strong>aplikasi</strong> visual dengan <strong>menggunakan</strong> bahasa C++ masih<br />

merupakan sebuah mimpi buruk bagi para programmer, karena di dalamnya banyak<br />

menuntut pembuatan file-file library yang sangat rumit. Namun sekarang Borland C++<br />

Builder 6 telah mengembangkan <strong>aplikasi</strong> visual secara mudah <strong>dan</strong> cepat dimengerti.<br />

Namum bagi para pemula yang ingin mengembangkan <strong>aplikasi</strong> visual dengan bahasa<br />

C++, ada baiknya tanamkan <strong>konsep</strong>-<strong>konsep</strong> dasarnya dulu yang disediakan di buku dari<br />

Konsep <strong>dan</strong> Aplikasi Pemrograman mengunakan Borland C++ Builder 6 Bagian 1 : Aplikasi<br />

Konsol, karena di dalam buku ini merupakan lanjutan dari buku tersebut <strong>dan</strong> tidak<br />

membahas lagi mengenai sintak-sintak dasar bahasa C++.<br />

6


2. Konsep Dasar<br />

Pemrograman Visual<br />

Borland C++ Builder 6 merupakan salah <strong>aplikasi</strong> pengembang terbaik yang mempunyai<br />

fasilitas yang lengkap. Aplikasi secara visual secara logika hampir sama dengan <strong>aplikasi</strong><br />

secara konsol, karena <strong>aplikasi</strong> secara visual merupakan pengembangan <strong>aplikasi</strong> secara<br />

konsol.<br />

PERBEDAAN PEMROGRAMAN VISUAL DENGAN<br />

PEMROGRAMAN TERSTRUKTUR<br />

Dalam pengeksekusian kode programnya, <strong>pemrograman</strong> visual menerapkan <strong>konsep</strong><br />

event-driven, yaitu peksekusian yang didasarkan atas kejadian (event) tertentu. Setiap<br />

kejadian tersebut mempunyai kode program sendiri yang disimpan dalam sebuah<br />

fungsi. Berbeda dengan <strong>pemrograman</strong> terstruktur atau prosedural yang mengeksekusi<br />

kode-kode programnya mulai dari awal sampai akhir program secara beruntun.<br />

Pada dasarnya <strong>konsep</strong> <strong>pemrograman</strong> visual sama dengan <strong>konsep</strong> <strong>pemrograman</strong><br />

prosedura, yaitu a<strong>dan</strong>ya input, proses <strong>dan</strong> output. Tapi ada penambahan <strong>konsep</strong><br />

pemilihan untuk mengeksekusi proses programnya. Konsep pemilihan inilah yang<br />

dipakai untuk menjalankan eventnya.<br />

event execute<br />

yes<br />

Input<br />

no<br />

other action<br />

Process<br />

Output<br />

7


Untuk memahami <strong>konsep</strong> dasar <strong>pemrograman</strong> secara visual yang menerapkan <strong>konsep</strong><br />

event-driven, perhatikan pada saat <strong>menggunakan</strong> <strong>aplikasi</strong>-<strong>aplikasi</strong> yang yang terdapat<br />

pada Microsoft Windows. Pada Windows pertama kali berjalan (running), <strong>aplikasi</strong><br />

tersebut masih berada dalam keadaan diam. Jika ingin menampilkan menu start, maka<br />

harus mengklik tombol start yang terdapat di pojok kanan paling bawah, tampilan yang<br />

akan muncul sebagai berikut:<br />

Gambar 2.1 Menu Start<br />

artinya, event (kejadian)nya adalah apakah tombol Start diklik. Jika diklik, maka akan<br />

melakukan input data yang diperlukan, lalu memproses pengalohan data, kemudian<br />

menampilkan data , yaitu menampilkan menu start seperti pada Gambar 2.1., <strong>dan</strong> hanya<br />

proses itu yang dilakukan oleh <strong>aplikasi</strong> windows, <strong>aplikasi</strong> lainnya tetap berjalan seperti<br />

semula.<br />

Secara umum <strong>konsep</strong> <strong>pemrograman</strong> visual dapat digambarkan sebagai berikut:<br />

8


Unit<br />

Prosedur A<br />

Prosedur B<br />

Prosedur C<br />

Prosedur D<br />

Project<br />

Unit 1 Unit 2<br />

Unit 3 Unit 4<br />

9


Dari gambar di atas, dapat dijelskan bahwa setiap prosedur atau fungsi yang terdapat di<br />

dalam unit, dapat saling bebas mengekspresikan pernyataan di dalam tubuhnya masingmasing,<br />

namun bisa juga saling membutuhkan. Jika suatu prosedur membutuhkan<br />

informasi dari prosedur lain, maka ia harus mendefinisikan atau memasukkan (include)<br />

nama prosedur yang ia ingingkan tersebut. Begitu juga yang terjadi di dalam suatu<br />

project.<br />

10


3. Pemrograman Visual<br />

Menggunakan Borland C++<br />

Builder 6<br />

Borland C++ Builder 6, merupakan bahasa <strong>pemrograman</strong> yang mempunyai cakupan<br />

kemampuan yang luas <strong>dan</strong> sangat canggih. Berbagai jenis <strong>aplikasi</strong> dapat dibuat dengan<br />

software ini, termasuk <strong>aplikasi</strong> untuk mengolah teks, grafik, angka, database <strong>dan</strong> <strong>aplikasi</strong><br />

web. Khusus untuk <strong>pemrograman</strong> database, software ini menyediakan object yang<br />

sangat kuat, canggih <strong>dan</strong> lengkap, sehingga memudahkan pemrogram dalam<br />

merancang, membuat <strong>dan</strong> menyelesaikan <strong>aplikasi</strong> database yang diinginkan. Selain itu<br />

software ini juga menangani data dalam berbagai format database, misalnya format MS<br />

Access, Sybase, Oracle, FoxPro, dBase, Informix, MS SQL Server, MySQL <strong>dan</strong> lain-lain.<br />

Namun secara default software <strong>menggunakan</strong> format Paradox <strong>dan</strong> dBase.<br />

APLIKASI SEDERHAN MENGUNAKAN BORLAND C++<br />

BUILDER 6<br />

Untuk membuat <strong>aplikasi</strong> baru, langkah-langkah yang harus dilakukan yaitu:<br />

1. Tutup semua <strong>aplikasi</strong> yang ada dengan cara memilih menu File Close All.<br />

2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application, seperti<br />

pada tampilan berikut:<br />

11


3. Setelah itu akan muncul <strong>aplikasi</strong> baru dengan tampilan Form awal yang masih<br />

kosong.<br />

4. Untuk <strong>aplikasi</strong> pertama ini, pengaturan properti untuk <strong>aplikasi</strong> ini, tetap<br />

dibiarkan secara default terlebih dahulu, sebagai dasar pemahaman kerja sebuah<br />

<strong>aplikasi</strong> visual. Simpan <strong>aplikasi</strong> baru yang telah dibuat dengan memilih menu<br />

File Save All. Pastikan selalu memilih Save All setiap kali penyimpanan,<br />

12


karena semua file-file yang terbentuk (file project, file source, file h, dll) akan<br />

tersimpan secara keseluruhan.<br />

5. Buat folder baru sebagai tempat penyimpanan file-file <strong>aplikasi</strong>, agar tidak<br />

berantakan <strong>dan</strong> bercampur dengan file-file selain file <strong>aplikasi</strong> yang telah dibuat.<br />

6. Pada setelah menyimpan, beberapa file terbentuk (created) secara otomatis,<br />

seperti terlihat pada tampilan berikut:<br />

13


a. File Project1.bpr (berektensi bpr)<br />

File ini merupakan file project yang berfungsi sebagai penggabung antara<br />

unit – unit yang terbentuk dengan program utama.<br />

b. File Project1.cpp (berektensi cpp)<br />

File ini merupakan program utama yang berisi kode untuk proses inisialisasi<br />

<strong>dan</strong> jalannya <strong>aplikasi</strong> (application running). Bagi programmer pemula, file<br />

ini biasanya tidak diubah. Namun bagi programmer yang berpengalaman<br />

sering kali melakukan penambahan kode program pada file ini untuk<br />

keperluan – keperluan tertentu. Untuk melihat isi file ini, pilihlah menu<br />

project – view source pada C++ Builder IDE. Adapun kerangka dari file ini<br />

dapat di lihat pada listing dibawah ini.<br />

//---------------------------------------------------------------------------<br />

14


#include <br />

#pragma hdrstop<br />

//---------------------------------------------------------------------------<br />

USEFORM("Unit1.cpp", Form1);<br />

//---------------------------------------------------------------------------<br />

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)<br />

{<br />

try<br />

{<br />

Application->Initialize();<br />

Application->CreateForm(__classid(TForm1), &Form1);<br />

Application->Run();<br />

}<br />

catch (Exception &exception)<br />

{<br />

Application->ShowException(&exception);<br />

}<br />

catch (...)<br />

{<br />

try<br />

{<br />

throw Exception("");<br />

}<br />

catch (Exception &exception)<br />

{<br />

Application->ShowException(&exception);<br />

}<br />

}<br />

return 0;<br />

}<br />

//---------------------------------------------------------------------------<br />

c. Unit1.h (berekstensi h)<br />

File ini merupakan file header yang berisi pendeklarasian data <strong>dan</strong> fungsi –<br />

fungsi yang akan digunakan di dalam pembuatan <strong>aplikasi</strong>. Untuk melihat<br />

<strong>dan</strong> memodifikasi isi file ini, tekanlah tombol F12 <strong>dan</strong> memilih tab Unit1.h di<br />

bawah source code atau lakukan klik kanan pada Code Editor dalam IDE<br />

C++ Builder, kemudian akan tampil sebuah popup menu, pilih menu open<br />

15


source / header file. Adapun kerangka dari file ini dapat dilihat pada listing<br />

di bawah ini.<br />

//---------------------------------------------------------------------------<br />

#ifndef Unit1H<br />

#define Unit1H<br />

//---------------------------------------------------------------------------<br />

#include <br />

#include <br />

#include <br />

#include <br />

//---------------------------------------------------------------------------<br />

class TForm1 : public TForm<br />

{<br />

__published: // IDE-managed Components<br />

private: // User declarations<br />

public: // User declarations<br />

__fastcall TForm1(TComponent* Owner);<br />

};<br />

//---------------------------------------------------------------------------<br />

extern PACKAGE TForm1 *Form1;<br />

//---------------------------------------------------------------------------<br />

#endif<br />

d. Unit1.cpp (berekstensi cpp)<br />

File ini merupakan file yang bertipe C++ Builder Source <strong>dan</strong> akan digunakan<br />

untuk mendefinisikan fungsi – fungsi yang telah dideklarasikan pada file<br />

header (unit1.h) di atas. Pada file inilah programmer akan banyak bekerja<br />

untuk menuliskan kode – kode program. Adapun kerangka dari file ini dapat<br />

dilihat pada listing di bawah ini.<br />

//---------------------------------------------------------------------------<br />

#include <br />

#pragma hdrstop<br />

#include "Unit1.h"<br />

//---------------------------------------------------------------------------<br />

16


#pragma package(smart_init)<br />

#pragma resource "*.dfm"<br />

TForm1 *Form1;<br />

//---------------------------------------------------------------------------<br />

__fastcall TForm1::TForm1(TComponent* Owner)<br />

: TForm(Owner)<br />

{<br />

}<br />

//---------------------------------------------------------------------------<br />

e. Unit1.dfm (berekstensi dfm)<br />

File ini berfungsi menyimpan form yang dibuat.<br />

f. Project1.res (berekstensi res)<br />

File ini berfungsi sebagai compiled resource yang berisi file-file pelengkap<br />

yang digunakan oleh <strong>aplikasi</strong>, misalnya file gambar ataupun suara.<br />

Setelah <strong>aplikasi</strong> disimpan, maka <strong>aplikasi</strong> siap untuk dimodifikasi sesuai kebutuhan.<br />

BORLAND C++ BUILDER 6 BAGI PROGRAMMER C++<br />

C++ Builder tentu mudah sekali digunakan oleh mereka yang telah terbiasa<br />

membuat program dengan compiler C++. Meskipun demikian terdapat sedikit<br />

perbedaan antara bahasa C++ tradisional dengan C++ Builder. C++ Builder tidak<br />

mengizinkan programmer C++ untuk melakukan visualisasi program seperti yang<br />

biasa mereka lakukan dalam compiler C++. Perbedaan yang paling terlihat adalah<br />

bahwa C++ Builder itu didasarkan pada <strong>pemrograman</strong> dengan model property<br />

method – event (PME), se<strong>dan</strong>gkan C++ masih bersifat prosedural.<br />

VCL (VISUAL COMPONENT LIBRARY)<br />

Istilah VCL (Visual Component Library) pada C++ Builder sebenarnya adalah<br />

sebuah kelas juga, sama halnya dengan kelas – kelas yang didefinisikan di dalam<br />

C++. Namun keduanya berbeda dalam hal –hal berikut.<br />

- VCL <strong>dan</strong> kelas dalam C++ mempunyai induk hirarki yang berbeda. Semua<br />

VCL pada C++ Builder diturunkan dari kelas TObject.<br />

- Pada VCL proses pengesetan data dilakukan melalui propertinya, se<strong>dan</strong>gkan<br />

pada C++ dilakukan melalui penggunaan atau pendefenisian fungsi.<br />

17


- Setiap VCL hanya dapat dialokasikan pada head memory, bukan pada stack.<br />

Artinya, VCL harus dibuat dengan <strong>menggunakan</strong> operator new, se<strong>dan</strong>gkan<br />

kelas dalam C++ masih dapat dialokasikan di dalam stack.<br />

Komponen-komponen yang sering digunakan di dalam <strong>aplikasi</strong> visual Borland<br />

C++ Builder 6.<br />

Gambar<br />

Nama<br />

Komponen<br />

Default<br />

Name<br />

Posisi<br />

Tab<br />

Fungsi Dasar<br />

Button Button1 Standard Proses/event<br />

Komponen Sejenis<br />

BitBtn, SpeedButton<br />

Edit Edit1 Standard<br />

ListBox ListBox1 Standard<br />

ComboBox ComboBox1 Standard<br />

Memo Memo1 Standard<br />

Label Label1 Standard<br />

CheckBox CheckBox1 Standard<br />

RadioButton RadioButton1 Standard<br />

GroupBox GroupBox1 Standard<br />

Panel Panel1 Standard<br />

Image Image1 Additional<br />

Shape Shape1 Additional<br />

Timer Timer1 System<br />

Input/output<br />

berupa teks<br />

Input/output<br />

berupa pilihan<br />

Input berupa<br />

pilihan<br />

Input/output<br />

dengan length<br />

yang lebih<br />

panjang<br />

Teks tetap,<br />

output<br />

Input dengan<br />

nilai True or<br />

False<br />

Input berupa<br />

pilihan<br />

Group<br />

beberapa<br />

komponen<br />

Group<br />

beberapa<br />

komponen<br />

Memasukkan<br />

gambar<br />

Membuat<br />

bentuk gambar<br />

bulat,<br />

lingkaran dll<br />

Proses<br />

perulangan<br />

<strong>menggunakan</strong><br />

satuan interval 1<br />

MaskEdit,<br />

LabeledEdit, DBEdit<br />

DBListBox,<br />

DBLookupListBox<br />

DBComboBox,<br />

DBLookupComboBox<br />

DBMemo<br />

DBLabel<br />

DBCheckBox<br />

RadioGroup,<br />

DBRadioGroup<br />

Panel<br />

GroupBox<br />

DBImage<br />

18


MainMenu MainMenu1 Standard<br />

UpDown UpDown1 Win32<br />

mili detik<br />

Membuat menu<br />

<strong>aplikasi</strong><br />

Menambahkan/<br />

mengurangkan<br />

nilai dengan step<br />

tertentu<br />

CSpinEdit<br />

Kasus 1 (Penerapan <strong>konsep</strong> dasar <strong>pemrograman</strong> visual):<br />

Buat Aplikasi menghitung Luas Segitiga sama kaki.<br />

Langkah-langkah:<br />

1. Buat <strong>aplikasi</strong> baru, lalu set properti-properti komponen sebagai berikut:<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Aplikasi Segitiga<br />

Font Ver<strong>dan</strong>a 10<br />

Height 300<br />

Name<br />

FUtama<br />

Position<br />

poScreenCenter<br />

Width 300<br />

2 Label1 Caption Mencari Luas Segitiga<br />

Font<br />

Ver<strong>dan</strong>a 12 Bold<br />

3 Label2 Caption Luas Alas<br />

4 Label3 Caption Tinggi<br />

5 Label4 Caption Luas<br />

6 Button1 Caption Hitung<br />

7 Edit1 MaxLength 5<br />

8 Edit2 MaxLength 5<br />

9 Edit3 ReadOnly true<br />

Hasilnya seperti pada tampilan berikut:<br />

19


2. Simpan <strong>aplikasi</strong> dengan memilih menu File Save All. Pada saat menyimpan,<br />

buat folder tersendiri untuk <strong>aplikasi</strong> ini dengan nama Aplikasi_Segitiga.<br />

• Ganti Unit1.cpp dengan nama lain yaitu dengan nama utama.cpp.<br />

• Ganti Project1.bpr dengan nama lain yaitu dengan nama Segitiga.bpr.<br />

3. Lihat ke bagian object inspector Button1 event Klik 2 kali pada event<br />

OnClick atau langsung double klik pada komponen Button1, akan muncul<br />

tampilan source code sebagai berikut:<br />

Isi dengan sintak seperti pada tampilan berikut:<br />

20


Artinya, sintak yang ada di dalam fungsi ini akan diproses pada saat Button1<br />

diklik satu kali.<br />

Penjelasan sintak:<br />

• StrToInt, berfungsi untuk mengkonversi nilai string ke integer. Dalam kasus<br />

di atas, jika nilai dari Edit1 <strong>dan</strong> Edit2 yang diinput tidak dikonversi, maka<br />

angka yang dibaca oleh komputer adalah sebagai string, artinya tidak dapat<br />

dieksekusi secara aritmatik. Ilustrasinya seperti berikut:<br />

Jika nilai 2 <strong>dan</strong> 3 bertipe string, maka:<br />

2 + 3 = 23,<br />

2 * 3 = Error<br />

Jika nilai 2 <strong>dan</strong> 3 bertipe integer, maka:<br />

2 + 3 = 5<br />

2 * 3 = 6.<br />

• Edit1->Text <strong>dan</strong> Edit2-> Text, adalah mengambil nilai yang berupa<br />

teks/string di komponen Edit1 <strong>dan</strong> Edit2.<br />

• Edit3-> Text = Luas, adalah nilai Luas akan dioutputkan di komponen Edit3.<br />

4. Lihat ke bagian object inspector FUtama event Klik 2 kali pada event<br />

OnCreate atau langsung double klik pada komponen FUtama, akan muncul<br />

tampilan source code sebagai berikut:<br />

21


Isi dengan sintak sebagai berikut:<br />

Artinya, Text di Edit1, Edit2 <strong>dan</strong> Edit3 akan dihapus (dikosongkan). Sintaksintak<br />

yang ada di dalam fungsi ini akan diproses pada saat Futama dibuat<br />

(create).<br />

5. Simpan <strong>aplikasi</strong>, lalu tekan Alt + F9 untuk Compiling. Jika ada error, akan<br />

muncul pesan error. Lihat letak kesalahan yang dibuat, lalu perbaiki.<br />

Contoh kesalahan yang terjadi terlihat pada tampilan berikut:<br />

22


Keterangan error:<br />

• Statement Missing ; , artinya ada baris yang tidak memberikan tanda tutup<br />

baris dengan Semicolon (;).<br />

• Undefined symbol ‘t’, artinya variabel t tidak dideklarasikan dahulu,<br />

sehingga program tidak kenal dengan variabel tersbut.<br />

• Warning, ‘A’ is assigned a value that is never used, artinya variabel<br />

dideklarasikan, tapi tidak berfungsi pada program tersebut.<br />

6. Setelah semua program benar, maka tekan F9 untuk menjalankan <strong>aplikasi</strong>,<br />

seperti pada tampilan berikut ini:<br />

23


Seluruh source program di utama.cpp adalah sebagai berikut:<br />

//---------------------------------------------------------------------------<br />

#include <br />

#pragma hdrstop<br />

#include "utama.h"<br />

//---------------------------------------------------------------------------<br />

#pragma package(smart_init)<br />

#pragma resource "*.dfm"<br />

TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

__fastcall TFUtama::TFUtama(TComponent* Owner)<br />

: TForm(Owner)<br />

{<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::Button1Click(TObject *Sender)<br />

{<br />

int A,t;<br />

float Luas;<br />

24


A = StrToInt(Edit1->Text);<br />

t = StrToInt(Edit2->Text);<br />

Luas = 0.5 * A * t;<br />

Edit3->Text = Luas;<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::FormCreate(TObject *Sender)<br />

{<br />

Edit1->Clear();<br />

Edit2->Clear();<br />

Edit3->Clear();<br />

}<br />

//---------------------------------------------------------------------------<br />

Isi dari file header utama.h adalah sebagai berikut:<br />

//---------------------------------------------------------------------------<br />

#ifndef utamaH<br />

#define utamaH<br />

//---------------------------------------------------------------------------<br />

#include <br />

#include <br />

#include <br />

#include <br />

//---------------------------------------------------------------------------<br />

class TFUtama : public TForm<br />

{<br />

__published: // IDE-managed Components<br />

TLabel *Label1;<br />

TLabel *Label2;<br />

TLabel *Label3;<br />

TLabel *Label4;<br />

TButton *Button1;<br />

TEdit *Edit1;<br />

TEdit *Edit2;<br />

25


TEdit *Edit3;<br />

void __fastcall Button1Click(TObject *Sender);<br />

void __fastcall FormCreate(TObject *Sender);<br />

private: // User declarations<br />

public: // User declarations<br />

__fastcall TFUtama(TComponent* Owner);<br />

};<br />

//---------------------------------------------------------------------------<br />

extern PACKAGE TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

#endif<br />

Kasus 2 (Penerapan <strong>konsep</strong> logika pemilihan):<br />

Buat <strong>aplikasi</strong> dimana user harus memasukkan password untuk masuk ke <strong>aplikasi</strong><br />

tertentu.<br />

Langkah-langkah:<br />

1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />

All.<br />

2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />

3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />

ini:<br />

4. Atur properti komponen sebagai berikut<br />

26


No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Login<br />

Font Ver<strong>dan</strong>a 12<br />

Height 250<br />

Name<br />

FUtama<br />

Position<br />

poScreenCenter<br />

Width 400<br />

2 Edit1 MaxLength 20<br />

3 Edit2 MaxLength 20<br />

PasswordChar #<br />

5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />

nama unit1.cpp dengan password1.cpp <strong>dan</strong> project dengan Password.bpr.<br />

6. Klik 2 kali di Button1 (login) untuk event Button1Click, isi sintak seperti berikut:<br />

7. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:<br />

27


8. Klik 2 kali di Button2 (Exit) untuk event Button2Click, isi sintak sebagai berikut:<br />

9. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk<br />

menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />

Isi sintak secara keseluruhan di password1.cpp<br />

//---------------------------------------------------------------------------<br />

#include <br />

#pragma hdrstop<br />

#include "password1.h"<br />

//---------------------------------------------------------------------------<br />

#pragma package(smart_init)<br />

28


#pragma resource "*.dfm"<br />

TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

__fastcall TFUtama::TFUtama(TComponent* Owner)<br />

: TForm(Owner)<br />

{<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::Button1Click(TObject *Sender)<br />

{<br />

if(Edit1->Text=="User"&&Edit2->Text=="oke")<br />

{<br />

ShowMessage("Selamat datang di <strong>aplikasi</strong> ini");<br />

}<br />

else<br />

{<br />

ShowMessage("Username <strong>dan</strong> Password Anda SALAH!");<br />

}<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::FormCreate(TObject *Sender)<br />

{<br />

Edit1->Clear();<br />

Edit2->Clear();<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::Button2Click(TObject *Sender)<br />

{<br />

Application->Terminate();<br />

}<br />

//---------------------------------------------------------------------------<br />

Isi sintak di password1.h:<br />

//---------------------------------------------------------------------------<br />

#ifndef password1H<br />

#define password1H<br />

//---------------------------------------------------------------------------<br />

29


#include <br />

#include <br />

#include <br />

#include <br />

//---------------------------------------------------------------------------<br />

class TFUtama : public TForm<br />

{<br />

__published: // IDE-managed Components<br />

TLabel *Label1;<br />

TLabel *Label2;<br />

TButton *Button1;<br />

TButton *Button2;<br />

TEdit *Edit1;<br />

TEdit *Edit2;<br />

void __fastcall Button1Click(TObject *Sender);<br />

void __fastcall FormCreate(TObject *Sender);<br />

void __fastcall Button2Click(TObject *Sender);<br />

private: // User declarations<br />

public: // User declarations<br />

__fastcall TFUtama(TComponent* Owner);<br />

};<br />

//---------------------------------------------------------------------------<br />

extern PACKAGE TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

#endif<br />

Kasus 3 (Latihan logika TRUE <strong>dan</strong> FALSE pada komponen)<br />

Buat <strong>aplikasi</strong> untuk menghitung total biaya pembelian untuk suatu barang tertentu.<br />

Langkah-langkah<br />

1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />

All.<br />

2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />

3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />

ini:<br />

30


4. Atur properti komponen sebagai berikut<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Total Biaya Pembelian<br />

Font Ver<strong>dan</strong>a 12<br />

Height 300<br />

Name<br />

FUtama<br />

Position<br />

poScreenCenter<br />

Width 400<br />

2 Panel1 Caption (kosong)<br />

BorderStyle Single<br />

Height&Width Sesuaikan dengan tampilan<br />

2 Edit1 MaxLength 20<br />

3 Edit2 MaxLength 10<br />

Text 0<br />

4 Edit3 ReadOnly true<br />

Text 0<br />

31


6 CSpinEdit Increment 50<br />

(Tab Sample) Max Value 1000000<br />

TabOrder 1<br />

7 UpDown1 Associate Edit2<br />

Increment 1<br />

Max 200<br />

8 BitBtn1 Caption Mulai<br />

Glyph<br />

Browse (*.bmp), biasanya ada<br />

di<br />

C:\Program<br />

Files\Common Files\Borland<br />

Shared\Images\Buttons<br />

9 BitBtn2 Caption Selesai<br />

Glyph<br />

Browse (*.bmp)<br />

5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />

nama unit1.cpp utama.cpp <strong>dan</strong> project dengan Barang.bpr.<br />

6. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:<br />

7. Klik 2 Kali di Edit2 untuk event Edit2Change, artinya proses akan dijalankan<br />

pada saat nilai di dalam Edit2 berubah. Isi sintak sebagai berikut:<br />

32


8. Klik 2 Kali di CSpinEdit1 untuk event CSpin1EditChange, artinya proses akan<br />

dijalankan pada saat nilai di dalam CSpinEdit1 berubah. isi sintak sebagai<br />

berikut:<br />

9. Klik ganda di BitBtn1, lalu isi sintak dibawah ini:<br />

10. Klik ganda di BitBtn2, lalu isi sintak dibawah ini:<br />

11. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk<br />

menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />

33


Isi sintak secara keseluruhan di utama.cpp<br />

//---------------------------------------------------------------------------<br />

#include <br />

#pragma hdrstop<br />

#include "utama.h"<br />

//---------------------------------------------------------------------------<br />

#pragma package(smart_init)<br />

#pragma link "CSPIN"<br />

#pragma resource "*.dfm"<br />

TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

__fastcall TFUtama::TFUtama(TComponent* Owner)<br />

: TForm(Owner)<br />

{<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::FormCreate(TObject *Sender)<br />

{<br />

Edit1->Clear();<br />

BitBtn1->Enabled = true;<br />

BitBtn2->Enabled = false;<br />

Panel1->Enabled = false;<br />

34


}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::Edit2Change(TObject *Sender)<br />

{<br />

Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::CSpinEdit1Change(TObject *Sender)<br />

{<br />

Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::BitBtn2Click(TObject *Sender)<br />

{<br />

BitBtn1->Enabled = true;<br />

BitBtn2->Enabled = false;<br />

Panel1->Enabled = false;<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::BitBtn1Click(TObject *Sender)<br />

{<br />

BitBtn1->Enabled = false;<br />

BitBtn2->Enabled = true;<br />

Panel1->Enabled = true;<br />

}<br />

//---------------------------------------------------------------------------<br />

Isi utama.h secara keseluruhan<br />

//---------------------------------------------------------------------------<br />

#ifndef utamaH<br />

#define utamaH<br />

//---------------------------------------------------------------------------<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

35


#include <br />

#include "CSPIN.h"<br />

#include <br />

//---------------------------------------------------------------------------<br />

class TFUtama : public TForm<br />

{<br />

__published: // IDE-managed Components<br />

TBitBtn *BitBtn1;<br />

TBitBtn *BitBtn2;<br />

TPanel *Panel1;<br />

TLabel *Label1;<br />

TLabel *Label2;<br />

TLabel *Label3;<br />

TLabel *Label4;<br />

TEdit *Edit1;<br />

TEdit *Edit2;<br />

TEdit *Edit3;<br />

TUpDown *UpDown1;<br />

TCSpinEdit *CSpinEdit1;<br />

void __fastcall FormCreate(TObject *Sender);<br />

void __fastcall Edit2Change(TObject *Sender);<br />

void __fastcall CSpinEdit1Change(TObject *Sender);<br />

void __fastcall BitBtn2Click(TObject *Sender);<br />

void __fastcall BitBtn1Click(TObject *Sender);<br />

private: // User declarations<br />

public: // User declarations<br />

__fastcall TFUtama(TComponent* Owner);<br />

};<br />

//---------------------------------------------------------------------------<br />

extern PACKAGE TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

#endif<br />

Kasus 4 (Aplikasi <strong>menggunakan</strong> komponen ComboBox, CheckBox <strong>dan</strong><br />

RadioButton).<br />

Buat <strong>aplikasi</strong> untuk menghitung total biaya pembelian untuk suatu barang, dengan<br />

diskon tertentu.<br />

36


Jika pembeli adalah langganan lama, maka diskon 20%.<br />

Jika pembeli membayar dengan LUNAS, maka diskon 10%.<br />

Langkah-langkah:<br />

1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />

All.<br />

2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />

3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />

ini:<br />

4. Atur properti komponen sebagai berikut<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Total Biaya Pembelian<br />

37


Font Ver<strong>dan</strong>a 12<br />

Height 420<br />

Name<br />

FUtama<br />

Position<br />

poScreenCenter<br />

Width 400<br />

2 Panel1 Caption (kosong)<br />

BorderStyle Single<br />

Height&Width Sesuaikan dengan tampilan<br />

3 ComboBox1 MaxLength 20<br />

CharCase<br />

ecUpperCase<br />

Text<br />

NAMA BARANG<br />

Items<br />

PENA<br />

PENSIL<br />

PENGHAPUS<br />

4 Edit1 ReadOnly true<br />

Text 0<br />

5 CSpinEdit Increment 1<br />

(Tab Sample) Max Value 100<br />

6 RadioGroup1 Caption Langganan?<br />

Columns 2<br />

Items<br />

Ya<br />

Tidak<br />

7 CheckBox1 Caption Lunas<br />

State<br />

cbChecked<br />

8 Edit2 Text 0<br />

ReadOnly true<br />

9 Edit3 Text 0<br />

ReadOnly true<br />

38


10 Edit4 Text 0<br />

ReadOnly true<br />

11 BitBtn1 Caption Hitung<br />

Glyph<br />

Browse (*.bmp), biasanya ada<br />

di<br />

C:\Program<br />

Files\Common Files\Borland<br />

Shared\Images\Buttons<br />

12 BitBtn2 Caption Keluar<br />

Glyph<br />

Browse (*.bmp)<br />

5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />

nama unit1.cpp dengan utama.cpp <strong>dan</strong> project dengan Barang2.bpr.<br />

6. Klik ganda di komponen ComboBox1 untuk event ComboBox1Change, isi sintak<br />

berikut:<br />

7. Klik ganda di komponen BitBtn1 (Hitung) <strong>dan</strong> isi sintak berikut:<br />

39


8. Klik ganda di BitBtn2 (Keluar) untuk event BitBtn2Click, isi sintak sebagai<br />

berikut:<br />

40


9. Simpan <strong>aplikasi</strong>, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan<br />

F9 untuk menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />

Isi sintak utama.cpp secara keseluruhan:<br />

//---------------------------------------------------------------------------<br />

#include <br />

#pragma hdrstop<br />

#include "utama.h"<br />

//---------------------------------------------------------------------------<br />

41


#pragma package(smart_init)<br />

#pragma link "CSPIN"<br />

#pragma resource "*.dfm"<br />

TFUtama *FUtama;<br />

//---------------------------------------------------------------------------<br />

__fastcall TFUtama::TFUtama(TComponent* Owner)<br />

: TForm(Owner)<br />

{<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::ComboBox1Change(TObject *Sender)<br />

{<br />

if(ComboBox1->Text == "PENA")<br />

{<br />

Edit1->Text = 10000;<br />

}<br />

else if(ComboBox1->Text == "PENSIL")<br />

{<br />

Edit1->Text = 7000;<br />

}<br />

else if(ComboBox1->Text == "PENGHAPUS")<br />

{<br />

Edit1->Text = 4000;<br />

}<br />

else<br />

{<br />

Edit1->Text = 0;<br />

}<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::BitBtn1Click(TObject *Sender)<br />

{<br />

float Jumlah, Total;<br />

float Diskon1,Diskon2,TotDisk;<br />

/* Jumlah awal */<br />

Jumlah = StrToInt(Edit1->Text) * StrToInt(CSpinEdit1->Text);<br />

42


Edit2->Text = Jumlah;<br />

/* Diskon Langganan */<br />

if(RadioGroup1->ItemIndex == 0)<br />

{<br />

Diskon1 = 0.2;<br />

}<br />

else<br />

{<br />

Diskon1 = 0;<br />

}<br />

/* Diskon Lunas */<br />

if(CheckBox1->State == cbChecked)<br />

{<br />

Diskon2 = 0.1;<br />

}<br />

else<br />

{<br />

Diskon2 = 0;<br />

}<br />

TotDisk = Jumlah * (Diskon1 + Diskon2);<br />

Total = Jumlah - TotDisk;<br />

Edit3->Text = TotDisk;<br />

Edit4->Text = Total;<br />

}<br />

//---------------------------------------------------------------------------<br />

void __fastcall TFUtama::BitBtn2Click(TObject *Sender)<br />

{<br />

Application->Terminate();<br />

}<br />

//---------------------------------------------------------------------------<br />

43


KONSEP TIMER<br />

Secara umum Timer didefinisikan sebagai event/proses yang terjadi secara berulang<br />

dengan satuan/interval waktu tertentu. Konsep kerja Timer adalah <strong>menggunakan</strong><br />

<strong>konsep</strong> perulangan for, hanya saja proses <strong>dan</strong> step perulangan ditentukan oleh<br />

interval waktu yang ditentukan. Sebagai contoh, untuk penulisan jam. Jika tanpa<br />

<strong>menggunakan</strong> timer, output yang dihasilkan menunjukkan jam pada saat proses itu<br />

saja, <strong>dan</strong> tidak berubah lagi selayaknya jam pada umumnya. Jika <strong>menggunakan</strong><br />

timer, maka akan menunjukkan yang selalu berubah hasilnya setiap interval waktu<br />

1 detik.<br />

Kasus 5 (penerapan <strong>konsep</strong> Timer):<br />

Membuat <strong>aplikasi</strong> jam digital.<br />

Langkah-langkah:<br />

1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />

All.<br />

2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />

3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />

ini:<br />

4. Atur properti komponen sebagai berikut<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Jam Digital<br />

44


Font Ver<strong>dan</strong>a 22<br />

Height 200<br />

Name<br />

FUtama<br />

Position<br />

poScreenCenter<br />

Width 300<br />

2 Timer1 Interval 1000<br />

3 Label1 Alignment taCenter<br />

Autosize<br />

false<br />

5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />

nama unit1.cpp dengan utama.cpp <strong>dan</strong> project dengan JamDigital.bpr.<br />

6. Klik ganda di komponen Timer1 untuk event Timer1Timer, isi sintak berikut:<br />

7. Simpan <strong>aplikasi</strong>, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan<br />

F9 untuk menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />

45


4. Konsep Dasar<br />

Perancangan Database<br />

Sebelum merancang sebuah <strong>aplikasi</strong> database, haruslah dipahami dulu apa itu database,<br />

bagaimana <strong>konsep</strong> database <strong>dan</strong> bagaiman merancang sebuah database.<br />

APA ITU DATABASE<br />

Database adalah suatu unit yang berisikan data-data yang tersimpan di dalam tabel <strong>dan</strong><br />

query.<br />

Tabel adalah tempat record disimpan berdasarkan baris <strong>dan</strong> kolom.<br />

Query adalah satu kolom atau lebih yang diambil <strong>dan</strong> diacu dari satu atau beberapa<br />

tabel dalam satu database.<br />

Tabel<br />

Tabel Tabel Tabel<br />

Query<br />

Query<br />

Database<br />

TIPS PERANCANGAN DATABASE<br />

Dalam perancangan database, perhatikan betul mana data-data yang harus diinput,<br />

jangan sembarangan dalam menentukan kolom-kolom tabel. Buatlah kolom-kolom<br />

sesuai dengan kebutuhan klien.<br />

Dalam hal perancangan, database dibedakan menjadi 3 jenis tempat data disimpan,<br />

yaitu:<br />

1. Data Master<br />

46


Data master adalah identitas yang didapat dari objek tertentu. Misalkan data<br />

mahasiswa, mata kuliah, barang, pegawai, dll.<br />

2. Data Transaksi<br />

Data transaksi adalah data yang diambil dengan mengacu ke data lain. Misalkan<br />

data pembelian, penjualan, pengambilan mata kuliah, dll.<br />

3. Data Report<br />

Data yang dikeluarkan ke laporan berdasarkan data-data yang ada di data transaksi<br />

<strong>dan</strong> data master. Misalnya Rekap tahunan penjualan, rekap bulanan pembelian, dll.<br />

Contoh Kasus:<br />

Sebuah toko alat tulis ingin membuat sistem pendataan secara komputerisasi untuk data<br />

barang yang masuk <strong>dan</strong> data barang yang keluar. Data yang masuk artinya barang yang<br />

dibeli dari agen, <strong>dan</strong> data yang keluar artinya barang yang dijual ke pelanggan. Dari<br />

hasil transaksi penjualan <strong>dan</strong> pembelian akan direkap setiap satu bulan sekali.<br />

Kebutuhan:<br />

- Jumlah inventaris barang (stock) ditampilkan dalam satu tabel/query<br />

Perancangan database:<br />

Nama database : dbtoko.<br />

Dari kasus di atas, data dapat dibagi menjadi 3 bagian, yaitu:<br />

1. Data Master<br />

a. Data Barang (nama tabel : barang)<br />

b. Data Agen (nama tabel : agen)<br />

c. Data Pelanggan (nama tabel : pelanggan)<br />

2. Data Transaksi<br />

a. Data Penjualan Bulanan (nama tabel : t_jual)<br />

b. Data Pembelian Bulanan (nama tabel : (t_beli)<br />

3. Report (Laporan) yang berupa Rekap.<br />

a. Rekap Penjualan Bulanan (nama query : q_jual)<br />

b. Rekap Pembelian Bulanan (nama query : q_beli)<br />

47


Dari hasil survei terhadap toko tersebut, diperoleh filed-field yang dibutuhkan untuk<br />

diinput dari ketiga jenis data di atas, yaitu:<br />

1. Data Master : Data Barang (nama tabel : barang)<br />

Index<br />

Nama<br />

Allow<br />

Type Size Default<br />

Field<br />

NULL<br />

Unique Primary Arahan<br />

0 kodebrg Char 6 No Yes Yes Kode Barang<br />

1 namabrg Char 50 No No No Nama Barang<br />

4 satuan Char 20 Yes No No Satuan Ukuran<br />

5 hjual Number 10 0 Yes No No Harga Jual<br />

6 hbeli Number 10 0 Yes No No Harga Beli<br />

7 gambar Char 50 Yes No No Gambar Barang<br />

Mengapa Field gambar <strong>menggunakan</strong> Char? Karena data gambar tidak disimpan di<br />

tabel, field tersebut hanya berisikan alamat tempat gambar itu berada.<br />

2. Data Master : Data Agen (nama tabel : agen)<br />

Index<br />

Nama<br />

Allow<br />

Type Size Default<br />

Field<br />

NULL<br />

Unique Primary Arahan<br />

0 kodeagen Char 6 No Yes Yes Kode Agen<br />

1 namagen Char 50 No No No Nama Agen<br />

2 alamat Char 50 Yes No No Alamat Agen<br />

3 telepon Char 25 Yes No No Nomor Telepon<br />

3. Data Master : Data Pelanggan (nama tabel : pelangan)<br />

Index<br />

Nama<br />

Allow<br />

Type Size Default<br />

Field<br />

NULL<br />

Unique Primary Arahan<br />

0 kodeplgn Char 6 No Yes Yes Kode Pelanggan<br />

1 namaplgn Char 50 No No No Nama Pelanggan<br />

2 alamat Char 50 Yes No No Alamat Pelanggan<br />

3 telepon Char 25 Yes No No Nomor Telepon<br />

4. Data Transaksi : Data Penjualan Bulanan (nama tabel : t_jual)<br />

Inde Nama<br />

Siz Defaul Allow<br />

x Field Type e t NULL Arahan Keterangan<br />

0 bulan Char 10 No Bulan Pembelian<br />

48


1 tahun Char 4 No Tahun Pembelian<br />

2 kodeplgn Char 6 No Kode Agen<br />

dari tabel<br />

pelanggan<br />

3 kodebrg Char 6 No Kode Barang dari tabel barang<br />

Numbe<br />

Jumlah<br />

4 qty<br />

r 4 0 No Pembelian<br />

5 lunas Logical Yes Status Pelunasan True atau False<br />

5. Data Transaksi : Data Pembelian Bulanan (nama tabel : t_beli)<br />

Index Nama Field Type Size Default Allow NULL Arahan Keterangan<br />

0 bulan Char 10 No Bulan Pembelian<br />

1 tahun Char 4 No Tahun Pembelian<br />

2 kodeagen Char 6 No Kode Pelanggan dari tabel agen<br />

3 kodebrg Char 6 No Kode Barang dari tabel barang<br />

4 qty Number 4 0 No Jumlah Pembelian<br />

5 lunas Logical Yes Status Pelunasan True atau False<br />

6. Data Report : Rekap Penjualan Bulanan (nama tabel : q_jual)<br />

Index Nama Field Type Size Arahan Keterangan<br />

0 bulan Char 10 Bulan Pembelian dari tabel t_jual<br />

1 tahun Char 4 Tahun Pembelian dari tabel t_jual<br />

2 kodeplgn Char 6 Kode Pelanggan dari tabel t_jual<br />

3 namaplgn Char 50 Nama Pelanggan dari tabel pelanggan<br />

4 kodebrg Char 6 Kode Barang dari tabel t_jual<br />

5 namabrg Char 50 Nama Barang dari tabel barang<br />

6 satuan Char 20 Satuan Ukuran dari tabel barang<br />

7 hjual Number 10 Harga Satuan dari tabel barang<br />

8 qty Number 3 Jumlah Pembelian dari tabel t_jual<br />

9 lunas Logical Status Pelunasan dari tabel t_jual<br />

7. Data Report : Rekap Pembelian Bulanan (nama tabel : q_beli)<br />

Index Nama Field Type Size Arahan Keterangan<br />

0 bulan Char 10 Bulan Pembelian dari tabel t_beli<br />

1 tahun Char 4 Tahun Pembelian dari tabel t_beli<br />

2 kodeagen Char 6 Kode Pelanggan dari tabel t_beli<br />

3 namagen Char 50 Nama Pelanggan dari tabel agen<br />

49


4 kodebrg Char 6 Kode Barang dari tabel t_jual<br />

5 namabrg Char 50 Nama Barang dari tabel barang<br />

8 satuan Char 20 Satuan Ukuran dari tabel barang<br />

9 hbeli Number 9 Harga Satuan dari tabel barang<br />

11 qty Number 3 Jumlah Pembelian dari tabel t_beli<br />

12 lunas Logical Status Pelunasan dari tabel t_beli<br />

Tabel Relationships<br />

1. Transaksi Penjualan<br />

2. Transaksi Pembelian<br />

Setelah rancangan database dibuat, tentukan jenis format tabel yang sesuai. Misalnya<br />

dengan dBase, Ms Access, MySQL, MS SQL Server, dll. Format ini ditentukan sesuai<br />

dengan kebutuhan.<br />

1. Untuk <strong>aplikasi</strong> yang standalone (tunggal), gunakan dBase atau Paradox.<br />

2. Untuk <strong>aplikasi</strong> yang datanya terintegrasi ke satu komputer, gunakan MS Access,<br />

MySQL atau MS SQL Server atau Oracle.<br />

50


5. Pengenalan Borland<br />

Database Desktop Interface<br />

Borland Database Desktop Interface adalah salah satu program <strong>aplikasi</strong> yang tergabung<br />

di Borland C++ Builder 6. Fasilitas ini berfungsi untuk membuat <strong>dan</strong> mengolah database<br />

yang <strong>menggunakan</strong> Jenis Borland Database Engine (BDE) dengan format utama adalah<br />

dBase <strong>dan</strong> Paradox. Fasilitas ini terinstal secara bersamaan pada saat menginstal Borland<br />

C++ Builder 6.<br />

MENGGUNAKAN DATABASE DESKTOP<br />

Cara memanggil <strong>aplikasi</strong> ini yaitu dengan mengklik menu Start Programs Borland<br />

C++ Builder 6 Database Desktop. Setelah <strong>aplikasi</strong> terbuka, akan muncul tampilan<br />

awal seperti berikut:<br />

52


File Database<br />

Secara default, database yang digunakan di <strong>aplikasi</strong> ini adalah dengan nama<br />

“BCDEMOS”, dengan dBase <strong>dan</strong> Paradox (STANDARD) sebagai format tabelnya.<br />

Namun jika ingin membuat database selain itu, caranya adalah:<br />

1. Pilih menu Tools Alias Manager. Muncul tampilan berikut:<br />

2. Klin New, kemudian ketik nama database <strong>dan</strong> pilih format tabelnya.<br />

Membuat Tabel Baru<br />

1. Pilih menu File New Table sehingga muncul tampilan berikut ini:<br />

53


2. Pilih jenis tabel yang diinginkan, lalu klik OK. Lalu akan muncul tampil an sebagai<br />

berikut:<br />

Keterangan:<br />

• Pada kolom Field Name, tentukan nama field yang diinginkan. Nama Field<br />

adalah nama pengenal kolom dalam tabel database. Aturan pemberian nama<br />

filed adalah sebagai berikut:<br />

i. Panjang maksimum 10 karakter untuk format dBase, <strong>dan</strong> 25 Karakter untuk<br />

Paradox.<br />

ii. Tidak boleh diawali dengan spasi, tapi boleh mengandung spasi.<br />

iii. Harus unik, artinya setiap nama field harus berbeda dalam satu tabel.<br />

iv. Jangan <strong>menggunakan</strong> tanda koma (,), tanda pipe (|) <strong>dan</strong> data seru (!).<br />

v. Hindarkan penggunaan kata perintah SQL, misalnya SELECT, WHERE,<br />

COUNT.<br />

• Pada kolom Type, tentukan tipe field yang tepat sesuai kebutuhan. Tekan spasi<br />

untuk menampilkan pilihan yang tersedia. Untuk format dBase, jenis tipe yang<br />

ada, yaitu:<br />

54


i. Character (C), untuk menampung kumpulan karakter huruf, angka <strong>dan</strong><br />

karakter ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 byte.<br />

Jenis ini tidak dapat dieksekusi secara aritmatika.<br />

ii. Float (F), untuk menampung kumpulan angka yang dapat diproses secara<br />

aritmatika dengan range dari -10307 sampai dengan 10308 dengan 15 digit<br />

angka signifikan.<br />

iii. Number (N), untuk menampung kumpulan angka yang dapat diproses secara<br />

aritmatika dengan range dari -2147483648 sampai dengan 2147483647.<br />

iv. Date (D), untuk menampung tanggal sampai dengan 31 Desember 9999.<br />

v. Logical (L), untuk menampung data yang berjenis boolean.<br />

vi. Memo (M), untuk menampung kumpulan karakter huruf, angka <strong>dan</strong> karakter<br />

ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 MB. Jenis ini<br />

tidak dapat dieksekusi secara aritmatika.<br />

3. Setelah semuanya diisi, klik Define untuk menentukan kolom kunci (index primary<br />

key) tabel tersebut. Klik ganda pada filed yang akan dijadikan index seperti tampilan<br />

berikut ini:<br />

55


Jika selesai tekan OK.<br />

4. Setelah semuanya selesai, simpan dengan menekan Save As, letakkan di folder yang<br />

tepat, misalnya di folder data bersamaan dengan folder <strong>aplikasi</strong> yang akan dibuat.<br />

5. Untuk memodifikasi tabel, pilih menu Table Restructure.<br />

Setelah semua tabel dibuat, selanjutkan menghubungkan tabel-tabel tersebut ke dalam<br />

<strong>aplikasi</strong> Borland C++ Builder 6.<br />

56


6. Aplikasi Database<br />

Sederhana Menggunakan<br />

Borland Database Engine<br />

(BDE)<br />

MEMBUAT APLIKASI DATABASE SEDERHANA<br />

Dari tabel yang telah dirancang di bab 4 di atas, sekarang bagaimana merancang <strong>aplikasi</strong><br />

dengan <strong>menggunakan</strong> tabel tersebut.<br />

Persiapan:<br />

- Software Borland C++ Builder 6<br />

- Database Desktop<br />

- Jenis Database <strong>menggunakan</strong> Borland Database Engine (BDE)<br />

- Tabel <strong>menggunakan</strong> format dBase IV<br />

Perancangan Form Aplikasi dengan Borland C++ Builder 6<br />

No<br />

Arahan<br />

Nama<br />

Form<br />

*.cpp *.h<br />

1 Menu Utama Fmenu menu.cpp menu.h<br />

2 Data Modul untuk database DM1 modul1.cpp modul1.h<br />

3 Input Data Barang Fbarang barang.cpp barang.h<br />

4 Input Data Agen Fagen agen.cpp agen.h<br />

5 Input Data Pelanggan Fpelanggan pelanggan.cpp pelanggan.h<br />

6 Transaksi Penjualan Ft_jual t_jual.cpp t_jual.h<br />

7 Transaksi Pembelian Ft_beli t_beli.cpp t_beli.h<br />

8 Lookup Data Barang, Data Agen, Flookup lookup.cpp lookup.h<br />

Data Pelanggan<br />

9 Konfirmasi Rekap Bulanan Penjualan FKRek krek.cpp krek.h<br />

<strong>dan</strong> Pembelian<br />

10 Report Rekap Bulanan Penjualan FRekJual RekJual.cpp RekJual.h<br />

11 Report Rekap Bulanan Pembelian FRekBeli RekBeli.cpp RekBeli.h<br />

12 Password Fpassword password.cpp password.h<br />

57


Persiapan Folder:<br />

Buat Folder baru dengan nama Aplikasi_BDE untuk meletakkan data-data <strong>aplikasi</strong> <strong>dan</strong><br />

tabel yang akan dibuat. Di dalam folder tersebut buat 2 folder lagi dengan nama Data<br />

<strong>dan</strong> Program. Folder Data sebagai tempat menyimpan tabel <strong>dan</strong> folder Program tempat<br />

menyimpan data program <strong>aplikasi</strong> Borland C++ Builder 6, hasilnya seperti pada<br />

tampilan berikut:<br />

Pembuatan Tabel:<br />

Sebelum membuat tabel, atur dulu Working Directory di Database Desktop, arahkan<br />

(browse) ke Folder Data yang telah dibuat di atas. Kemudian buat tabel-tabel dengan<br />

spesifikasi seperti tabel-tabel pada kasus di bab 4 dengan <strong>menggunakan</strong> Database<br />

Desktop (cara membuat tabel dijelaskan di bab 5). Letakkan semua folder di dalam folder<br />

Data dengan hasil akhir seperti pada tampilan berikut:<br />

58


Pembuatan Form Aplikasi:<br />

Setelah semua tabel dibuat, buka <strong>aplikasi</strong> baru di Borland C++ Builder 6, dengan<br />

menutup semua <strong>aplikasi</strong> yang berjalan terlebih dahulu.<br />

1. Form Menu Utama (Fmenu, menu.cpp, menu.h)<br />

Form menu ini adalah form pertama pada saat membuka <strong>aplikasi</strong> baru. Tambahkan<br />

komponen-komponen ke dalam form ini seperti terlihat pada tampilan berikut:<br />

59


Klik ganda di toolbar Menu yang ada di Form, isi menu sesuai kebutuhan<br />

ditambahkan dengan menu Help yang isinya ada pilihan Exit:<br />

60


Setelah selesai, tutup isian Menu, kemudian pilih menu Exit, lalu isi sintak seperti di<br />

bawah ini:<br />

Atur properti komponen seperti dalam tabel berikut:<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle Single<br />

Caption<br />

Toko Maya<br />

Font Ver<strong>dan</strong>a 10<br />

Height 450<br />

Name<br />

Fmenu<br />

61


Position<br />

poScreenCenter<br />

Width 600<br />

FormStyle fsMDIForm<br />

2 MainMenu1 (lihat di gambar<br />

6.2)<br />

Simpan seluruh <strong>aplikasi</strong> (Save All), ganti project dengan nama TokoMaya.bpr<br />

2. Data Modul (DM1, modul1.cpp, modul1.h)<br />

Untuk membuat Data Modul,pil menu File New Data Modul. Karena kasus ini<br />

<strong>menggunakan</strong> format tabel dBase, maka digunakan Database STANDARD yang<br />

ditambahkan dari tab BDE. Seperti pada tampilan berikut:<br />

DataSource, berfungsi sebagai penghubung antar tabel/query ke form<br />

Atur properti komponen sebagai berikut:<br />

No Komponen Properti Nilai<br />

1 DataModule1 Name DM1<br />

2 Database1 DatabaseName dbtoko<br />

Name<br />

dbtoko<br />

DriverName<br />

STANDARD<br />

LoginPrompt<br />

false<br />

Connected<br />

True<br />

62


3 Tabel1 DatabaseName dbtoko<br />

TableName<br />

../data/barang.dbf<br />

IndexFieldName KODEBRG<br />

Name<br />

barang<br />

Active<br />

true<br />

4 Tabel2 DatabaseName dbtoko<br />

TableName<br />

../data/agen.dbf<br />

IndexFieldName KODEAGEN<br />

Name<br />

agen<br />

Active<br />

true<br />

5 Tabel3 DatabaseName Dbtoko<br />

TableName<br />

../data/pelanggan.dbf<br />

IndexFieldName KODEPLGN<br />

Name<br />

pelanggan<br />

Active<br />

true<br />

6 DataSource1 Name DSbarang<br />

DataSet<br />

barang<br />

7 DataSource2 Name DSagen<br />

DataSet<br />

agen<br />

8 DataSource3 Name DSpelanggan<br />

DataSet<br />

pelanggan<br />

9 Query1 DatabaseName dbtoko<br />

Name<br />

Qjual<br />

10 Query2 DatabaseName dbtoko<br />

Name<br />

Qbeli<br />

11 Query3 DatabaseName dbtoko<br />

Name<br />

Qlookup<br />

12 DataSource4 Name DSQjual<br />

DataSet<br />

Qjual<br />

13 DataSource5 Name DSQbeli<br />

DataSet<br />

Qbeli<br />

14 DataSource6 Name DSlookup<br />

DataSet<br />

lookup<br />

63


3. Form Input Data Barang (Fbarang, barang.cpp, barang.h)<br />

Buka Form baru, dengan memilih menu File New Form. Lalu tambahkan <strong>dan</strong><br />

atur setiap komponen dengan mengacu pada rancangan tabel yang telah dibuat,<br />

seperti pada tampilan berikut:<br />

Tab Data Controls<br />

Tambahkan unit Modul (DM1) ke barang.cpp dengan sintak sebagai berikut:<br />

No Komponen Properti Nilai<br />

1 Form1 BorderStyle bsNone<br />

64


Caption<br />

Data Barang<br />

Font Ver<strong>dan</strong>a 10<br />

Height 400<br />

Name<br />

Fbarang<br />

Position<br />

poMainFormCenter<br />

Width 590<br />

FormStyle fsMDIChild<br />

BorderIcons [biMaximize]<br />

WindowStatae wsMaximized<br />

2 Panel1 Caption (kosong)<br />

BorderStyle bsSingle<br />

3 DBEdit1 DataSource DSbarang<br />

DataField KODEBRG<br />

CharCase ecUpperCase<br />

4 DBEdit2 DataSource DSbarang<br />

DataField NAMABRG<br />

CharCase ecUpperCase<br />

5 DBEdit3 DataSource DSbarang<br />

DataField SATUAN<br />

6 DBEdit4 DataSource DSbarang<br />

DataField HJUAL<br />

7 DBEdit5 DataSource DSbarang<br />

DataField HBELI<br />

8 DBEdit6 DataSource DSbarang<br />

DataField GAMBAR<br />

9 BitBtn1 Caption Browse<br />

Glyph<br />

10 OpenDialog1 DefaultExt *.bmp<br />

Filter<br />

Bitmap Files|*.bmp|<br />

65


JPEG Files|*.jpg<br />

11 DBNavigator1 DataSource DSbarang<br />

Show Hints true<br />

Tampilan Filter di OpenDialog1<br />

Klik ganda pada BitBtn1, isi sintaks sebagai beriku untuk melelatakkan alamat folder<br />

tempat gambar berada di DBEdit6:<br />

66


Kemudian masukkan unit ini (barang.h) ke unit menu dengan menambahkan<br />

sintaks di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti<br />

berikut:<br />

Tips:<br />

- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT<br />

+ F11).<br />

- Tekan F12 untuk pindah antar unit.<br />

- Tekan Shift + F12 untuk melihat Form yang lain<br />

- Tekan Ctrl + F12 untuk melihat Unit source yang lain.<br />

Kemudian pada Form menu, klik pada menu Data Master<br />

bawah ini.<br />

Barang, isikan sintak di<br />

Tekan Alt+F9 untuk Compile, jika tidak ada error tekan F9 untuk menjalankan<br />

<strong>aplikasi</strong>, seperti tampilan berikut:<br />

67


First, ke record yang pertama<br />

Previous (Prior), ke record sebelumnya<br />

Next, ke record berikutnya<br />

Last, ke record terakhir<br />

Insert, menambah record<br />

Delete, menghapus record<br />

Edit, mengedit record<br />

Post, konfirmasi Insert atau Edit<br />

Cancel, batal Insert atau Edit<br />

Refresh Data<br />

Untuk melakukan pencarian terhadap record, ada beberapa metode yang dapat<br />

digunakan, antara lain yaitu:<br />

- Menggunakan kolom kunci (index column).<br />

- Menggunakan perintah SQL<br />

Berikut adalah metode pencarian dengan menggunakna kolom kunci (index column)<br />

68


Langkah-langkah:<br />

- Pastikan pada saat membuat tabel, sudah ditentukan kolom (field) kunci terlebih<br />

dahulu, seperti dijelaskan di bab 5.<br />

- Di di Data Module (DM1), pada komponen tabel barang, pastikan set properti<br />

IndexFieldName sudah terisi sesuai dengan kolom kunci yang telah ditentukan.<br />

- Kemudian pada kasus di atas, tambahkan komponen-komponen di form barang<br />

sehingga, seperti tampilan berikut:<br />

Komponen yang ditambahkan:<br />

Komponen Properti Nilai<br />

Edit1 CharCase ecUpperCase<br />

Text<br />

(kosong)<br />

BitBtn2 Caption Cari<br />

Default<br />

True<br />

- Klik ganda pada BitBtn2 (Cari) lalu isi sintak berikut:<br />

69


- Jalankan <strong>aplikasi</strong> (tekan F9), lalu coba ketikkan kode barang di Edit <strong>dan</strong> tekan<br />

tombol Cari. Jika data ditemukan maka akan langsung mengeset record ke kode<br />

yang dicari, jika tidak ketemu, maka akan mengeluarkan pesan “Data tidak<br />

ditemukan!”. Tampilan form saat dijalankan akan seperti berikut:<br />

70


Tips:<br />

o<br />

o<br />

Pelajari juga mengenai FindNearest, FindKey <strong>dan</strong> GotoNearest.<br />

Pelajari untuk mencari berdasarkan nama barang.<br />

4. Form Input Data Agen (Fagen, agen.cpp, agen.h)<br />

Lakukan cara yang sama dengan point 3 (Data Barang).<br />

Tampilan desain:<br />

Tampilan saat <strong>aplikasi</strong> dijalankan:<br />

71


5. Form Input Data Pelanggan (Fpelanggan, pelanggan.cpp, pelanggan.h)<br />

Lakukan cara yang sama dengan point 3 (Data Barang).<br />

Tampilan desain:<br />

72


Tampilan saat <strong>aplikasi</strong> dijalankan:<br />

Pengenalan Perintah SQL<br />

Sebelum masuk ke pembuatan form transaksi <strong>dan</strong> seterusnya, akan dikenalkan apa <strong>dan</strong><br />

bagaimana perintal SQL itu.<br />

Perintah SQL (Structured Query Language) adalah bahasa yang berbasis pada hubungan<br />

relasi kalkulus (relasi aljabar) <strong>dan</strong> banyak digunakan dalam lingkungan back end, baik<br />

untuk membuat tabel, manipulasi data, maupun untuk pengontrolan transaksi yang<br />

dilakukan di dlam database. Di dalam Borland C++ Builder 6, SQL dapat digunakan<br />

melalui komponen Query.<br />

Seara umum SQL dibagi ke dalam tiga kategori, yaiut Data Definition (DDL), Data<br />

Manipulation Language (DML) <strong>dan</strong> Data Control Language (DCL). SQL juga dilengkapi<br />

dengan kemampuan untuk melakukan fungsi-fungsi khusus lainnya seperti menghitung<br />

banyaknya record (count), melakukan penjumlahan nilai dari sebuah field (sum),<br />

menentukan nilai maksimum (max) <strong>dan</strong> sebagainya.<br />

Berikut adalah sintak SQL yang sering digunakan di dalam transaksi.<br />

73


• Insert, digunakan untuk memasukkan sebuah record baru ke dalam tabel.<br />

Contoh:<br />

“ insert into barang values(‘ATK003’,’PENGHAPUS’,’Kodi’,1000,2000,’C:\’) ”<br />

• Update, digunakan untuk mengubah nilai-nilai field yang terdapat pada suatu<br />

tabel.<br />

Contoh:<br />

“Update barang set SATUAN = ‘Lusin’ where KODEBRG = ‘ATK003’ “<br />

Perintah ini akan mengubah nilai SATUAN menjadi Lusin dari tabel barang<br />

yang memiliki KODEBRG = ATK003.<br />

• Select, digunakan untuk menampilkan field-field yang terdapat pada tabel<br />

dalam database.<br />

Bentuk Umum:<br />

“select field1,field2,field3,...,fieldn from nama_tabel”<br />

Contoh:<br />

“ select KODEBRG, NAMABRG, SATUAN from barang “<br />

Peintah ini akan menampilkan field KODEBRG, NAMABRG <strong>dan</strong> SATUAN dari<br />

tabel barang.<br />

“ select * from barang”<br />

Perintah ini akan menampilkan seluruh field dari tabel barang,<br />

“ select * from barang where KODEBRG = ‘ATK001’ “<br />

Perintah ini akan menampilkan seluruh field dari tabel barang dengan klausa<br />

(kondisi) KODEBRG = ATK001.<br />

“ select KODEBRG, NAMABRG, SATUAN from barang<br />

where HJUAL = 2000 and AND Hbeli = 3000 “<br />

Perintah ini akan menampilkan field KODEBRG, NAMABRG <strong>dan</strong> SATUAN dari<br />

tabel barang yang mempunyai nilai HJUAL = 2000 <strong>dan</strong> HBELI = 3000.<br />

“ select * from barang where NAMABRG like ‘%PEN%’ “<br />

74


Perintah ini akan menampilkan seluruh field dari tabel barang dengan nilai<br />

NAMABRG = ??????PEN?????, artinya seluruh NAMABRG yang mempunyai<br />

kata PEN.<br />

Tips:<br />

o<br />

o<br />

o<br />

o<br />

o<br />

Perbanyak latihan dengan <strong>menggunakan</strong> perintah SQL.<br />

Pelajari juga mengenai perintah membuat <strong>dan</strong> menghapus tabel, menambah<br />

field.<br />

Pelajari mengenai penggabungan 2 tabel atau lebih.<br />

Pelajari mengenai berbagai macam klausa yang lain.<br />

Pelajari perintah fungsi0fungsi yang lain.<br />

Setelah paham mengenai perintah SQL, lanjutkan dengan pembuatan form transaksi.<br />

6. Form Transaksi Pembelian (Ft_beli, t_beli.cpp, t_beli.h)<br />

Tampilan desain awal:<br />

Atur properti komponen sebagai berikut:<br />

75


Komponen Properti Nilai Arahan<br />

Form1 BorderStyle bsNone<br />

Caption Transaksi Pembelian<br />

Font Ver<strong>dan</strong>a 10<br />

Height 400<br />

Name Ft_beli<br />

Position poMainFormCenter<br />

Width 590<br />

FormStyle fsMDIChild<br />

BorderIcons [biMaximize]<br />

WindowStatae wsMaximized<br />

Panel1 Caption (kosong)<br />

BorderStyle bsSingle<br />

Panel2 Caption (kosong)<br />

BorderStyle bsSingle<br />

ComboBox1 CharCase ecUpperCase Bulan<br />

Items<br />

Style<br />

Text<br />

JANUARI<br />

FEBRUARI<br />

MARET<br />

.<br />

.<br />

.<br />

DESEMBER<br />

csDropDown<br />

BULAN<br />

CSpinEdit1 MaxValue 3000 Tahun<br />

MinValue 2000<br />

Value 2000<br />

Edit1 CharCase ecUpperCase Kode Barang<br />

MaxLength 6<br />

Text<br />

(kosong)<br />

Button1 Caption List<br />

Edit2 CharCase ecUpperCase Kode Agen<br />

76


MaxLength 6<br />

Text<br />

(kosong)<br />

Button2 Caption List<br />

Edit3 Text 0 Harga Beli<br />

ReadOnly<br />

true<br />

CSpinEdit2 MaxValue 5000 Quantity<br />

MinValue 0<br />

Value 0<br />

Edit4 Text 0 Harga Beli<br />

ReadOnly<br />

true<br />

Panel3 Caption (kosong)<br />

BorderStyle bsSingle<br />

BitBtn1 Caption Simpan<br />

BitBtn2 Caption Update<br />

BitBtn3 Caption Hapus<br />

Panel4 Caption (kosong)<br />

BorderStyle bsSingle<br />

ComboBox2 CharCase ecUpperCase Bulan<br />

Items<br />

Style<br />

Text<br />

JANUARI<br />

FEBRUARI<br />

MARET<br />

.<br />

.<br />

.<br />

DESEMBER<br />

csDropDown<br />

BULAN<br />

CSpinEdit3 MaxValue 3000 Tahun<br />

MinValue 2000<br />

Value 2000<br />

77


Edit5 CharCase ecUpperCase Cari Kode Barang<br />

MaxLength 6<br />

Text<br />

(kosong)<br />

Edit6 CharCase ecUpperCase Cari Kode Agen<br />

MaxLength 6<br />

Text<br />

(kosong)<br />

BitBtn4 Caption Semua Kriteria<br />

BitBtn5 Caption Refresh<br />

DBGrid1 DataSource DM1->DSQbeli<br />

Align<br />

alClient<br />

Pilih menu Event di Ft_beli, klik ganda pada event OnShow pada form Ft_beli untuk<br />

event FormShow, isi sintak sebagai berikut:<br />

Tambahkan sintak berikut ini untuk mendefiniskan dua buah prosedur, yaitu:<br />

78


- EQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str1. Perintah ini<br />

hanya akan berjalan dengan perintah SQL yang <strong>menggunakan</strong> perintah selain<br />

select.<br />

- OQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str2. Perintah<br />

ini hanya akan berjalan dengan perintah SQL yang <strong>menggunakan</strong> perintah select.<br />

Tambahkan juga deklarasi prosedur di t_beli.h seperti tampilan berikut:<br />

Deklarasikan variabel str1 <strong>dan</strong> str2 di kode t_beli.cpp paling atas (variabel bersifat<br />

global), seperti berikut:<br />

Klik ganda pada Edit1 untuk event Edit1OnChange, artinya proses di prosedur ini<br />

akan berjalan pada saat nilai di dalam Edit1 berubah. Isi sintak sebagai berikut:<br />

79


Sintak ini untuk memeriksa apakah kode barang yang ada di Edit1 ada di tabel<br />

barang. Jika ada maka akan menuliskan nama barang di Label6.<br />

Sama halnya untuk validasi kode agen, klik ganda di Edit2 untuk event OnChange,<br />

isi sintak di bawah ini:<br />

80


Klik ganda di CSpinEdit2 untuk event OnChange. Prosedur ini adalah untuk<br />

menghitung jumlah harga dari pembelian. Isi sintak sebagai berikut:<br />

Komponen Button1 <strong>dan</strong> Button2 (List) digunakan untuk melihat data barang <strong>dan</strong><br />

agen. Cara membuat Form Flookup <strong>dan</strong> menghubungkannya dengan form transaksi<br />

dapat dilihat di point 8.<br />

Klik ganda di BitBtn1 (Simpan) untuk event OnClick. Prosedur ini untuk<br />

menyimpan data ke dalam record baru, dengan memvalidasi jika data telah ada,<br />

maka tidak akan disimpan ke data baru.<br />

81


Kemudian, klik ganda pada BitBtn2 (Update) untuk event OnClick. Prosedur ini<br />

digunakan untuk mengupdate data yang telah ada, dengan mencari data tersebut<br />

terlebih dahulu. Acuan yang digunakan adalah ComboBox2, CSpinEdit3, Edit5,<br />

Edit6, CSpinEdit4 <strong>dan</strong>CheckBox2. Isi sintak seperti di bawah ini:<br />

83


Kemudian klik ganda di BitBtn3 (Hapus) untuk even OnClick. Prosedur ini<br />

digunakan untuk menghapus data berdasarkan klausa ada di ComboBox2,<br />

CSpinEdit3, Edit5, Edit6, CSpinEdit4 <strong>dan</strong>CheckBox2. Isi sintak seperti di bawah ini:<br />

84


Kemudian klik ganda di ComboBox2 untuk event OnChange. Prosedur ini untuk<br />

mencari data di tabel transaksi pembelian dengan klausa BULAN. Isi sintak di<br />

bawah ini:<br />

85


Kemudian klik ganda di CSpinEdit3 untuk event OnChange. Prosedur ini untuk<br />

mencari data di tabel transaksi pembelian dengan klausa TAHUN. Isi sintak di<br />

bawah ini:<br />

Kemudian klik ganda di Edit5 untuk event OnChange. Prosedur ini untuk mencari<br />

data di tabel transaksi pembelian dengan klausa KODEBRG. Isi sintak di bawah ini:<br />

Kemudian klik ganda di Edit6 untuk event OnChange. Prosedur ini untuk mencari<br />

data di tabel transaksi pembelian dengan klausa KODEAGEN. Isi sintak di bawah<br />

ini:<br />

86


Kemudian klik ganda di CSpinEdit4 untuk event OnChange. Prosedur ini untuk<br />

mencari data di tabel transaksi pembelian dengan klausa QTY. Isi sintak di bawah<br />

ini:<br />

Kemudian klik ganda di CheckBox2 untuk event OnClick. Prosedur ini untuk<br />

mencari data di tabel transaksi pembelian dengan klausa LUNAS. Isi sintak di bawah<br />

ini:<br />

87


Kemudian klik ganda di BitBtn4 (Semua Klausa) untuk event OnClick. Prosedur ini<br />

untuk mencari data di tabel transaksi pembelian dengan semua klausa di Panel4, jika<br />

ketemu akan menuliskan hasilny ake Panel2. Isi sintak di bawah ini:<br />

88


Kemudian klik ganda di BitBtn5 (Refresh) untuk event OnClick. Prosedur ini untuk<br />

menampilkan seluruh data di tabel transaksi pembelian. Isi sintak di bawah ini:<br />

Jika semuanya telah selesai, jalankan <strong>aplikasi</strong>. Jika tidak ada yang error, tampilan<br />

form akhir saat dieksekusi sebagai berikut:<br />

90


Kemudian masukkan unit ini (t_beli.h) ke unit menu dengan menambahkan sintaks<br />

di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti<br />

berikut:<br />

Tips:<br />

- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT<br />

+ F11).<br />

- Tekan F12 untuk pindah antar unit.<br />

- Tekan Shift + F12 untuk melihat Form yang lain<br />

- Tekan Ctrl + F12 untuk melihat Unit source yang lain.<br />

91


Kemudian pada Form menu, klik pada menu Transaksi<br />

di bawah ini.<br />

Pembelian, isikan sintak<br />

Tombol List digunakan untuk meliahat daftar barang, agen <strong>dan</strong> pelanggan yang<br />

ditampilkan dalam bentuk tabel di Grid. Tabel ini dibuat di form baru dengan nama<br />

Flookup . Cara pembuatan Form akan dijelaskan di nomor 8.<br />

7. Form Transaksi Penjualan (Ft_jual, t_jual.cpp, t_jual.h)<br />

Dengan cara yang sama dengan point 6, Buatlah Form untuk transaksi penjualan.<br />

Tampilan desain form:<br />

92


Tampilan akhir form saat dieksekusi:<br />

8. Form Lookup Data Barang, Data Agen, Data Pelanggan (Flookup, lookup.cpp,<br />

lookup.h)<br />

Komponen Properti Nilai Arahan<br />

Form1 BorderStyle bsSingle<br />

Caption Tabel Lookup<br />

Font Ver<strong>dan</strong>a 8<br />

Height 350<br />

Name Flookup<br />

Position poScreenCenter<br />

Width 430<br />

FormStyle fsStayOnTop<br />

BorderIcons [biSystemMenu,biMinimize]<br />

Panel1 Caption (kosong)<br />

BorderStyle bsSingle<br />

93


Align<br />

ComboBox1 CharCase<br />

Items<br />

Style<br />

Text<br />

alTop<br />

ecUpperCase<br />

BARANG<br />

AGEN<br />

PELANGGAN<br />

csDropDown<br />

TABEL LOOKUP<br />

DBGrid1 DataSource DM1->DSQlookup include modul first<br />

Align alClient<br />

Tampilan Desain awal:<br />

Komponen ComboBox1 berfungsi untuk memilih tabel yang akan dilihat, yaitu tabel<br />

barang, agen <strong>dan</strong> pelanggan. Jika salah satu tabel dipilih, maka secara otimatis akan<br />

menampilkan data-data yang ada di tabel tersebut di Grid1.<br />

Klik ganda di komponen ComboBox1 untuk even OnChange. Isikan sintak di bawah<br />

ini:<br />

94


Kemudian kenalkan (include) unit ini (lookup.h) ke unit transaksi pembelian<br />

(t_beli.h) <strong>dan</strong> unit penjualan (t_jual.h) agar unit ini dapat dipanggil dengan<br />

<strong>menggunakan</strong> tombol list.<br />

Kemudian klik ganda di setiap tombol list, baik itu di Form Pembelian maupun di<br />

Form Penjualan (unit lookup.h telah dikenalkan terlebih dahulu), lalu isi sintak di<br />

bawah ini:<br />

9. Form Konfirmasi Rekap Bulanan Penjualan <strong>dan</strong> Pembelian (FKRek, krek.cpp, krek.h)<br />

95


Sebelum membuat Report, terlebih dahulu buat Form untuk konfirmasinya, antara<br />

lain untuk konfirmasi bulan berapa, tahun berapa <strong>dan</strong> report apa yang akan<br />

ditampilkan.<br />

Untuk membuat Form Konfirmasi report, langkah pertama yaitu buat Form <strong>dan</strong><br />

letakkan komponen-komponen baru dengan rincian sebagai berikut:<br />

Komponen Properti Nilai Arahan<br />

Form1 BorderStyle bsSingle<br />

Caption Konfirmasi Report<br />

Font Ver<strong>dan</strong>a 10<br />

Height 200<br />

Name FKRek<br />

Position poScreenCenter<br />

Width 300<br />

FormStyle fsNormal<br />

BorderIcons [biSystemMenu,biMinimize]<br />

ComboBox1 CharCase ecUpperCase Bulan<br />

Items<br />

Style<br />

Text<br />

JANUARI<br />

FEBRUARI<br />

MARET<br />

.<br />

.<br />

.<br />

DESEMBER<br />

csDropDown<br />

BULAN<br />

ComboBox2 CharCase ecUpperCase Rekap<br />

Items<br />

Style<br />

Text<br />

PENJUALAN<br />

PEMBELIAN<br />

csDropDown<br />

REKAP<br />

CSpinEdit1 MaxValue 3000 Tahun<br />

MinValue 2000<br />

Value 2000<br />

BitBtn1 Caption Preview<br />

96


BitBtn2 Caption Tutup<br />

Tampilan desain awal:<br />

Klik ganda di BitBtn2 (Tutup), isi sintak sebagai berikut:<br />

Sebelum sintak di BitBtn1 (Preview) diisi, buatlah dulu Form untuk Reportnya<br />

terlebih dahulu.<br />

Kemudian Klik ganda di BitBtn1 (Preview), isi sintak di bawah ini:<br />

97


Tambahkan unit Form Rekap Penjualan <strong>dan</strong> Pembelian di unit ini.<br />

10. Form Report Rekap Bulanan Penjualan (FRekJual, RekJual.cpp, RekJual.h)<br />

Pada prinsipnya, sama dengan komponen-komponen standard, Komponenkomponen<br />

yang digunakan di report terdapat di Tab QReport.<br />

Untuk membuat Form report, langkah pertama yaitu buat Form <strong>dan</strong> letakkan<br />

komponen-komponen baru dengan rincian sebagai berikut:<br />

99


Komponen Properti Nilai Arahan<br />

Form1 BorderStyle bsSingle<br />

Caption Konfirmasi Report<br />

Font Ver<strong>dan</strong>a 10<br />

Height 480<br />

Name FrekJual<br />

Position poScreenCenter<br />

Width 700<br />

FormStyle fsNormal<br />

BorderIcons [biSystemMenu,biMinimize]<br />

AutoScroll true<br />

Query1 Name QRJual<br />

DatabaseName DM1 : dbtoko<br />

SQL String<br />

SELECT D.NAMABRG, D1.NAMAPLGN,<br />

D2.BULAN, D2.TAHUN, D2.KODEPLGN,<br />

D2.KODEBRG, D2.QTY, D2.LUNAS<br />

FROM "..\Data\barang.DBF" D,<br />

"..\Data\pelanggan.DBF" D1,<br />

"..\Data\t_jual.DBF" D2<br />

WHERE<br />

(D2.KODEPLGN = D1.KODEPLGN)<br />

AND (D2.KODEBRG = D.KODEBRG)<br />

ORDER BY D.NAMABRG, D1.NAMAPLGN,<br />

D2.BULAN, D2.TAHUN, D2.KODEPLGN,<br />

D2.KODEBRG, D2.QTY, D2.LUNAS<br />

Active<br />

DataSource1 Name<br />

DataSet<br />

true<br />

DSQRJual<br />

QRJual<br />

QuickRep1 Dataset QRJual<br />

Bands HasColumnHeader = true tempat<br />

meletakkan<br />

nama kolom<br />

(field)<br />

HasDetail = true<br />

tempat<br />

melatakkan<br />

record<br />

HasPageFooter = true<br />

HasPageHeader = true<br />

HasSummary = true<br />

100


Tampilan desain awal:<br />

Sebelum menambahkan komponen lain, akan dijelaskan beberapa komponen yang<br />

sering di Qreport, yaitu:<br />

Nama Komponen<br />

QuickRep<br />

QRSubDetail<br />

QRStringsBand<br />

QRband<br />

QRChildBand<br />

QRGroup<br />

QRLabel<br />

QRDBText<br />

QRExpr<br />

QRSysData<br />

QRMemo<br />

Deskripsi<br />

Induk awal dari Report<br />

101


QRShape<br />

QRImage<br />

QRDBImage<br />

Kemudian tambahkan komponen-komponen QRLabel, QRDBText, QRExpr, <strong>dan</strong><br />

QRShape sehingga tampilan seperti di bawah ini:<br />

Tampilan desain:<br />

Tampilan setelah properti tiap kkomponen diisi dengan DataSource <strong>dan</strong> DataField<br />

yang sesuai:<br />

102


Tampilan pada saat di Preview:<br />

103


Tambahkan unit modul1 (DM1) di unit rekjual.cpp seperti di bawah ini:<br />

11. Form Report Rekap Bulanan Pembelian (FRekBeli, RekBeli.cpp, RekBeli.h)<br />

Untuk pembuatan Form Report Pembelian, lakukan cara yang sama dengan Form<br />

Report Penjualan.<br />

12. Form Password (Fpassword, password.cpp, password.h)<br />

Komponen Properti Nilai Arahan<br />

Form1 BorderStyle bsNone<br />

Caption Transaksi Pembelian<br />

Font Ver<strong>dan</strong>a 10<br />

Height 400<br />

Name Ft_beli<br />

Position poMainFormCenter<br />

Width 590<br />

FormStyle fsMDIChild<br />

BorderIcons [biMaximize]<br />

WindowStatae wsMaximized<br />

Panel1 Caption (kosong)<br />

BorderStyle bsSingle<br />

BitBtn1 Caption Login<br />

Default true<br />

BitBtn2 Caption Exit<br />

Tampilan desain:<br />

104


Kemudian tambhakna unit menu di unit ini dengan sintak di bawah ini:<br />

Klik ganda di BitBtn1 (Login), isi sintak di bawah ini:<br />

105


Tambahkan sintak di bawah ini untuk event FpasswordShow:<br />

Lalu pada unit Menu (Fmenu), tambahkan sintak di bawah ini pada event<br />

FmenuShow:<br />

Tampilan hasil akhir <strong>aplikasi</strong>:<br />

106


107


108


Referensi<br />

Al-Qur’an & Al-Hadits.<br />

Heriyanto, Imam, Budi Raharjo (2003). Pemrograman Borland C++ Builder. Informatika<br />

Bandung..<br />

Indrajit, Richardus Eko. Manajemen Sistem Informasi <strong>dan</strong> Teknologi Informasi.<br />

Indrajit, Richardus Eko. Kajian Strategis Analisa Cost-Benefit Investasi Teknologi Informasi.<br />

Lidya, Leoni, rinaldi Munir (2002). Algoritama <strong>dan</strong> Pemrograman dalam Bahas Pascal <strong>dan</strong> C.<br />

Informatika Bandung.<br />

Solichin, Achmad (2003). Pemrograman Bahasa C dengan Turbo C. IlmuKomputer.Com.<br />

Wahono, Romi Satria(2003). Cepat MahirBahasa. IlmuKomputer.Com.<br />

109


Riwayat Hidup<br />

Muhammad Fachrurrozi dilahirkan di Palembang, 22 Mei1980.<br />

Saat ini mengabdikan dirinya untuk sebuah lembaga pendidikan yaitu Program<br />

Diploma Komputer Universitas Sriwijaya di Palembang sebagai Tenaga Laboran <strong>dan</strong><br />

Staff Pengajar. Menyelesaikan studi sarjananya di Jurusan Matematika Fakultas MIPA<br />

Universitas Sriwijaya Desember 2002. Memulai debutnya di bi<strong>dan</strong>g komputer pada usia<br />

11 tahun, dengan berbagai pengalaman selama mendalami <strong>dan</strong> memahani komputer<br />

baik dari sisi hardware maupun software. Saat duduk di bangku kuliah semester 3, ia<br />

telah dipercaya untuk menjadi salah satu asisten laboratorium komputer di jurusannya<br />

di bi<strong>dan</strong>g <strong>pemrograman</strong>. Saat waktu di bangku kuliah juga ia telah ditempa berbagai<br />

pengalaman dalam bi<strong>dan</strong>g teknologi informasi, yaitu pada tahun 2001 <strong>dan</strong> 2002<br />

dipercaya sebagai asissten <strong>dan</strong> instruktur untuk Pelatihan Internet <strong>dan</strong> Database untuk<br />

pegawai Pendidikan Nasional se-Sumsel. Sejak setelah menamatkan kuliahnya ia<br />

mengabdikan diri di Program Diploma Komputer Universitas Sriwijaya. Sehari-hari<br />

dapat dihubungi melalui email m_fach@unsri.ac.id .<br />

110

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!