DIKTAT KULIAH PRAKTIKUM PEMROGRAMAN VISUAL
OLEH EDI FAIZAL
PROGRAM STUDI KOMPUTERISASI AKUNTANSI -D3 STMIK EL RAHMA YOGYAKARTA 2010
Materi Pokok Bahasan Kuliah Praktikum Pemrograman Visual Program Studi Manajemen Informatika - D3 STMIK El Rahma
BAB I
APLIKASI DASAR
BAB II
MENGHITUNG LUAS SEGI TIGA
BAB III
KONVERSI ANGKA KE HURUF (TERBILANG)
BAB IV
SISTEM MENU
BAB V
PEMROGRAMAN GRAFIS
BAB VI
APLIKASI JAM DIGITAL DAN ANALOG
BAB VII
DATABASE DESKTOP
BAB I APLIKASI DASAR
A. MENGENAL DELPHI Borland Delphi adalah salah satu developement tools untuk membangun aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi, Borland Delphi menggunakan pendekatan Visual untuk merancang user interface dalam bentuk form, sedangkan untuk kodingnya menggunakan dialek bahasa Pascal yang cenderung mudah dipelajari. Borland Delphi telah menjadi tools yang terkenal bagi para pemula maupun para developer. Dalam lingkungan Window's User-interface sangat memegang peranan penting, karena dalam pemakaian aplikasi yang kita buat, pemakai senantiasa berinteraksi dengan User-interface tanpa menyadari bahwa dibelakangnya berjalan instruksi-instruksi program yang mendukung tampilan dan proses yang dilakukan. Pada pemrograman Visual, pengembangan aplikasi dimulai dengan pembentukkan user interface, kemudian mengatur properti dari objek-objek yang digunakan dalam user interface, dan baru dilakukan penulisan kode program untuk menangani kejadiankejadian (event). Tahap pengembangan aplikasi demikian dikenal dengan istilah pengembangan aplikasi dengan pendekatan Bottom Up IDE Borland Delphi Pertama kali yang perlu dilakukan dalam belajar Visual Basic adalah mengenal IDE (Integrated Developement Environment) dari Borland Delphi yang merupakan Lingkungan Pengembangan Terpadu bagi programmer dalam mengembangkan aplikasinya. Dengan menggunakan IDE programmer dapat membuat user interface, melakukan koding, melakukan testing dan debuging serta menkompilasi program menjadi executable. Penguasaan yang baik akan IDE akan sangat membantu programmer dalam mengefektifkan tugas-tugasnya sehingga dapat bekerja dengan efisien. Menjalankan Borland Delphi Ada beberapa cara untuk mengaktifkan IDE dari Borland Delphi, diantaranya adalah melalui tombol menu Start, Programs, Borland Delphi 7, Delphi 7 (Sesuai Versinya). Seperti aplikasi Windows umumnya, kita dapat juga mengaktifkan IDE Borland Delphi dengan klik dua kali Shortcut Borland Delphi yang ada pada desktop, atau dengan klik dua kali file project yang ekstensi filenya : *.prj melalui Windows Explorer.
Jendela IDE IDE Borland Delphi 7 menggunakan model SDI (Single Document Interface). Berikut ini adalah gambar yang menunjukan bagian-bagian dan nama-nama jendela yang dapat tampil pada IDE Borland Delphi. Masing-masing jendela dapat ditampilkan, dapat pula ditutup sesuai dengan kebutuhan dengan menggunakan menu view.
Gambar 1.1. IDE Delphi 1. 2. 3. 4. 5. 6.
Baris Menu Object TreeView Baris Toolbar Komponen Palete Objek Form Jendela Alignment Palete
7. Jendela 8. Jendela 9. Jendela 10. Jendela 11. Jendela Clases)
Project Manager Object Inspector Code Explorer To Do List Browser (Exploring
Tidak semua jendela di atas kita gunakan, kita akan mencoba membahas beberapa saja. 1. Baris Menu Sebagaimana umumnya program di windows, baris menu disini berisi menu-menu pilihan yang digunakan untuk mengoperasikan aplikasi. Menu File berisi operasi-operasi yang berhubungan
dengan file, misalkan membuka, menutup, menyimpan, dan sebagainya. Menu Edit berisi pilihan-pilihan yang berhubungan dengan editing kode dan desain tampilan form, misalnya menggandakan, memindah,memilih, menghapus, mengatur posisi, dan sebagainya. Menu Search berisi pilihan-pilihan untuk mencari/mengganti suatu kata atau ekspresi di dalam kode. Menu View berisi pilihan yang digunakan untuk menampilkan beberapa jendela/fasilitas yang ada di Borland Delphi. Menu Project berisi pilihan-pilihan yang berhubungan dengan project yang kita buat. Misalnya menambah form kedalam project, atau menghapus form dari project. Menu Run berisi pilihan-pilihan yang digunakan dalam menjalankan suatu project Menu Component berisi pilihan-pilihan untuk menginstall/mengimport/mengkonfigurasi (paket) komponen serta palette yang digunakan suatu project. Menu Database, Tools, Window berisi pilihan-pilihan yang berhubungan dengan alatalat yang digunakan untuk melakukan penyimpanan data serta tool yang lain yang diperlukan juga pilihan-pilihan untuk mengaktifkan jendela yang terbuka di Borland Delphi. 2. Object Treeview Semua objek/kontrol yang terdapat di dalam form yang aktif akan ditampilkan pada jendela ini dengan tampilan struktur tree. 3. Baris Toolbar Toolbar juga banyak terdapat di aplikasi-aplikasi Windows yang digunakan untuk mengoperasikan program sebagaimana baris menu, tetapi dengan cara yang lebih cepat (shortcut). 4. Komponen Palete Seorang ahli masak, ketika memasak tentunya menggunakan peralatan untuk memasak seperti kompor, open, wajan, dsb. Begitu juga seorang programmer Visual mempunyai peralatan di dalam mendesain user interface suatu program. Peralatanperalatan tersebut di delphi terdapat di dalam component palete. Jika peralatan tersebut belum terpasang, programmer bisa menambahkannya dengan memasang komponen baru. 5. Objek Form Objek Form merupakan objek dasar dari suatu jendela di dalam pemrograman Visual yang berbasis Objek. Pada objek form ini diletakkan objek ataupun kontrol-kontrol yang lain semacam kotak teks, tombol, kotak daftar, dan sebagainya. Ibarat kanvas yang digunakan seorang pelukis, maka objek form digunakan programmer untuk meletakkan objek-objek tambahan yang diperlukan oleh suatu aplikasi.
6. Jendela Alignment Palete Jendela ini digunakan untuk mengatur perataan antar suatu objek di dalam form. 7. Jendela Project Manager Pada jendela ini akan ditampilkan semua form, unit yang terdapat di dalam project beserta file-file yang terkait begitu juga tempat penyimpanannya. Sebuah project merupakan sekumpulan file yang kita gunakan untuk membangun sebuah aplikasi. 8. Jendela Object Inspector Setiap obyek mempunyai properti tertentu, yang settingnya mengontrol tampilan dan ulah obyek dalam suatu aplikasi. Beberapa properti terbatas pada nilai tertentu. Contoh : properti visible dari suatu obyek hanya bisa diset True atau False (obyek tampak atau tidak). Setting properti obyek bisa dilakukan saat desain maupun saat aplikasi dijalankan. Jendela Object Inspector berisi properti dari suatu object yang terpilih 9. Jendela Code Explorer Selain mendesain user interface dari suatu form, seorang programmer tentunya harus mengontrol objek-objek yang digunakan di dalam form dengan melakukan pengkodean. Untuk menuliskan kode program di Borland Delphi digunakan jendela Code Explorer. Kode program disimpan di dalam file-file unit. Jendela ini mempunyai dua bagian. Sebelah kiri berisi daftar objek, variabel, konstanta, unit, dan sebagainya yang digunakan di dalam program dan ditampilkan dengan struktur tree. Sedangkan pada sebelah kanan terdapat bagian dimana kita bisa menuliskan kode program.
10. Jendela To Do List Sesuai namanya, jendela ini berisi daftar pesan yang harus dikerjakan 11. Jendela Browser (Exploring Clases) Jendela ini digunakan untuk melakukan eksplorasi terhadap klas yang digunakan di dalam project. Kontrol pada Borland Delphi Kontrol di sini merupakan obyek hubungan dengan pemakai. Obyek-obyek ini tujuannya untuk interaksi antara program dengan pemakai. Obyek ini dapat berupa suatu tools yang digunakan untuk
suatu input maupun output, atau hanya sebagai pesan yang ditampilkan ke layar (bersifat statis). A. Button Fungsi : menjalankan suatu tindakan melakukan pilihan dengan tombol ini.
jika
pemakai
Gambar 1.2. Properties dan Even Button
telah
B. Label Fungsi : digunakan untuk menampilkan tulisan pada form. Pemakai tidak dapat merubah tulisan tersebut secara langsung.
Gambar 1.3. Properties dan Even Label
C. EditBox Fungsi : digunakan sebagai tempat input atau juga untuk menampilkan teks, dan pemakai dapat merubah teks yang terdapat dalam kontrol ini.
Gambar 1.4. Properties dan Even EditBox
D. ListBox Fungsi : menampilkan beberapa item, dan dari kontrol ini item-item tersebut dapat dipilih. Scroll Bar dapat digunakan untuk menggulung pilihan yang tidak dapat ditampilkan semuanya.
Gambar 1.5. Properties dan Even ListBox
E. ComboBox Fungsi : merupakan kombinasi antara textbox dengan listbox. Dengan demikian pemilihan item dapat dilakukan dari listbox atau dengan mengetik langsung pada textbox
Gambar 1.6. Properties dan Even ComboBox
F. GroupBox Fungsi : mengelompokkan control-control secara visual atau secara tindakan.
Gambar 1.7. Properties dan Even GroupBox
G. CheckBox Fungsi : menampilkan keadaan True/False atau Yes/No. Beberapa control ini dapat memiliki keadaan yang sama pad suatu saat.
Gambar 1.8. Properties dan Even CheckBox
H. Radio Button Fungsi : sama seperti check box. Perbedaannya hanya satu control dari beberapa control ini dapat di ON-kan. Jika control dengan tipe yang sama lainnya di-ON-kan, maka control tipe ini yang sebelumnya On akan di-Off-kan.
Gambar 1.9. Properties dan Even CheckBox
B. KONSEP DASAR Didalam delphi ada beberapa pengertian yang memerlukan penjelasan untuk memahami bagaimana dan apa saja komponen yang ada dalam delphi, adapun diantaranya adalah: PROJECT Project delphi adalah sekumpulan file yang akan membangun aplikasi atau library yang dapat disebarkan kepada pemrogram lain. Pada saat memulai delphi, delphi akan membuat sebuah project baru. Setelah itu terserah pengguna apakah apakah ingin memodifikasi projek terasebut, membuat projek baru lagi atau mungkin membuka projek yang sudah ada. Project aplikasi terdiri atas : 1. File project : file ini tersimpan dengan ekstensi .Dpr, hanya ada satu file projek untuk satu projek. 2. File form : file form tersimpan dengan ekstensi .dfm, adalah file biner yang berisi gambaran grafis dari form. Setiap file .dfm selalu pararel dengan satu unit file yang berekstensi .pas. 3. Unit (source) : file unit tersimpan dengan ekstensi .pas, dimana setiap unit berupa file source code dalam bahasa pascal. Tidak setiap file unit memiliki atau terhubung file .dfm File projek menggabung semua file diatas yang digunakan oleh delphi untuk melakukan kompilasi dan membuat file target (.exe atau .dll). FORM Form merupakan tempat kita merancang program. Jika seorang pemogram diibaratkan sebagai seorang pelukis maka form inilah yang menjadi kanvasnya. Form yang dirancang dalam delphi bisa digunakan kembali oleh projek delphi yang lain. Form dapat juga disimpan dalam bentuk dll, sehingga dapat digunakan oleh aplikasi yang lain seperti c++, paradox, atau dbase. Delphi menawarkan kemudahan pembuatan form melalui model template. UNIT Unit merupakan modul yang terpisah yang dapat dikompilasi tersendiri, yang berisi deklarasi bagian publik (antarmuka) dan bagian privat (implementasi). Setiap form dalam delphi mempunyai satu unit yang bersesuaian. Source code unit tersimpan dengan ekstensi pas, sedangkan yang sudah terkompilasi tersimpan dengan ekstensi .dcu. proses link akan menggabung file .dcu menjadi satu file exe atau dll. C. MEMBUAT PROYEK BARU Untuk membuat aplikasi atau proyek baru, langkah-langkah yang harus anda lakukan adalah: 1. Pilih menu File | New Application 2. Tunggu hingga muncul jendela form
3. Dengan memilih component pallette standar, masukan sebuah label dan button 4. Kemudian ubah propertinya dengan menggunakan Object Inspector 5. Pada Fom1: Tform1, caption anda isi dengan pengalaman pertama... 6. Label1, Caption : ini adalah pengalaman pertamaku menggunakan program delphi 7. Button1, Caption : &Tutup 8. Untuk lebih jelasnya, silahkan lihat gambar 1.10.
Gambar 1.10. Jendela Form Hasil Perubahan 9. Klik dua kali pada button hingga muncul jendela pengkodean, kemudian ketik : Close diantara kata begin dan end sehingga terlihat sebagai berikut: procedure TForm1.Button1Click(Sender: TObject); begin Close; end; 10. Jalankan program dengan menu Run | Run. Atau bisa juga dengan langsung menekan tombol F9 11. Untuk keluar dari program klik tombol tutup 12. File menu File | Save All 13. Simpan project anda dengan nama ppertama.dpr dan upertama.pas untuk unitnya. 14. Kembangkan contoh program tersebut.
BAB II MENGHITUNG LUAS SEGI TIGA
A. MENDESAIN FORM Untuk membuat program menghitung luas segitiga ini, kita membutuhkan sebuah form. Namun anda juga bisa membuatnya bersama proyek yang baru. Kemudian anda masukan beberapa komponen diantaranya Label sebanyak empat buah, Edit sebanyak tiga buah dan Button sebanyak dua buah. Anda atur posisinya sehingga terlihat seperti pada Gambar 2.1.
Gambar 2.1. Jendela Desain Form B. MENGUBAH PROPERTI Dengan menggunakan Object Inspector, ubahlah properti dari komponen yang ada dengan ketentuan sebagai berikut : Nama Objek Properti Yang Nilai Diubah Form1 : TForm1 Caption Mata Matiku... Label1 : TLabel1 Caption Menghitung Luas Font : Size Segitiga 15 Label2 : TLabel2 Caption Alas: Label3 : TLabel3 Caption Tinggi: Label4 : TLabel4 Caption Luas: (Kosongkan) Edit1 : TEdit1 Text (Kosongkan) Edit2 : Tedit2 Text (Kosongkan) Edit3 : Tedit3 Text Button1 : TButton1 Caption &Hitung Button2 : Tbutton2 Caption &Tutup Kosongkan Panel1 : TPanel1 Caption Jika sudah selesai seharusnya tampilan form anda akan terlihat seperti gambar 2.2.
Gambar 2.2. Tampilan Hasil Perubahan Properti C. MEMASUKAN KODE Agar desain program yang telah kita buat bisa berfungsi sebagaimana mestinya, tentunya kita harus memasukkan kode kedalam objek tersebut. Anda cukup memasukan kode untuk Button1 dan Button2 saja. Berikut ini kode sumbernya: procedure TForm1.Button1Click(Sender: TObject); var alas,tinggi,luas: real; begin // cek apakah input sudah diisi ? IF edit1.text='' THEN Begin MessageDlg('Alas kosong',mtInformation,[mbOK],0); edit1.setfocus; End ELSE IF edit2.text='' THEN Begin MessageDlg('Tinggi kosong',mtInformation,[mbOK],0); edit2.setfocus; End ELSE // jika sudah : Begin alas:=STRtoFLOAT(edit1.text); tinggi:=STRtoFLOAT(edit2.text); luas:=0.5*alas*tinggi; edit3.text:=FLOATtoSTR(luas); // Edit3.Text:='Bukan Bilangan'; End; End;
Sedangkan untuk kode Button2 adalah sebagai berikut : procedure TForm1.Button2Click(Sender: TObject); begin Close; end; Sehingga kode lengkapnya akan terlihat seperti dibawah ini: unit Usegi3; interface uses Windows, Messages, SysUtils, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
Classes,
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; Edit3: TEdit; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TObject); begin close; end;
TForm1.Button2Click(Sender:
procedure TForm1.Button1Click(Sender: TObject); var alas,tinggi,luas: real; begin // cek apakah input sudah diisi ? IF edit1.text='' THEN Begin MessageDlg('Alas kosong',mtInformation,[mbOK],0); edit1.setfocus; End ELSE IF edit2.text='' THEN Begin MessageDlg('Tinggi kosong',mtInformation,[mbOK],0); edit2.setfocus; End ELSE // jika sudah : Begin alas:=STRtoFLOAT(edit1.text); tinggi:=STRtoFLOAT(edit2.text); luas:=0.5*alas*tinggi; edit3.text:=FLOATtoSTR(luas); Edit3.Text:='Bukan Bilangan'; End; end; end.
D. LATIHAN - Modifikasi program diatas, sehingga ketika user menginputkan nilai alas dan tinggi tidak berupa angka, program bisa menghandlenya. - Buatlah program baru seperti diatas, misalkan untuk menghitung luas lingkaran, volume tabung, dan sebagainya.
BAB III KONVERSI ANGKA KE HURUF (TERBILANG)
A. DESAIN FORM Sekarang kita mencoba membuat sebuah aplikasi untuk menampilkan keterangan bilangan yang dimasukan. Misalkan ketika user atau pengguna mengetik angka 1, maka akan muncul tulisan Satu. Berikut ini contoh desainnya:
Gambar 3.1. Contoh Tampilan Desain Form B. UBAH PROPERTI Untuk memperindah tampilan, ubahlah properti masing-masing dengan ketentuan sebagai berikut: Nama Object Label1 Label2 Panel1 BitBtn1 BitBtn2 Form1 Edit1
Properti Caption Size Caption Caption Caption Glyph Kind Caption Text
Nilai Terbilang 20 Angka: (dikosongkan) &Cek (Tbitmap) bkClose Kubilang Terbilang... (dikosongkan)
Untuk menambahkan icon pada BitBtn1, langkah yang harus anda lakukan adalah: 1. Aktifkan komponen Bitbtn1, sehingga tampil propertinya pada Object Inspector 2. Pada Tab Propeties pilih baris Glyph, kemudian klik tombol 3. Tunggu hingga muncul jendela Picture Editor.
Gambar 3.2. Jendela Picture Editor 4. Klik tombol Load... 5. Ketik muncul jendela berikutnya, pastikan anda aktifkan foder : C:\Program Files\Common Files\Borland Shared\Images\Button, pada bagian Look in: 6. Pilih Check.bmp 7. Klik tombol Open hingga kembali kejendela semula 8. Klik tombol OK.
Gambar 3.3. Jendela Picture Editor Pemilihan Image Jika langkah yang anda lakukan sudah tepat maka form anda akan terlihat seperti dibawah ini:
Gambar 3.4. Tampilan Form Setelah Perubahan C. PENGKODEAN 9. CARA SEDERHANA Untuk cara sederhana ini, kita hanya menyeleksi setiap angka pertama yang dimasukan dengan seleksi Case Of. Sebenarnya kita bisa juga menyeleksi dengan IF Then, namun akan membutuhkan lebih banyak pengkodean. Aktifkan Tombol Cek, dari Object Inspector di tab Events pada event OnClick() anda ketik kode berikut ini: procedure TForm1.BitBtn1Click(Sender: TObject); Var Digit1 : Char; begin Digit1 := Edit1.Text[1]; Case Digit1 Of '0' : Panel1.caption := 'Nol'; '1' : Panel1.caption := 'Satu'; '2' : Panel1.caption := 'Dua'; '3' : Panel1.caption := 'Tiga'; '4' : Panel1.caption := 'Empat'; '5' : Panel1.caption := 'Lima'; '6' : Panel1.caption := 'Enam'; '7' : Panel1.caption := 'Tujuh'; '8' : Panel1.caption := 'Delapan'; '9' : Panel1.caption := 'Sembilan'; End; end; Untuk memeriksa apakah program kita bisa berjalan dengan baik atau tidak, sekarang coba anda jalankan program tersebut dengan menekan tombol F9. Kemudian anda isikan angka pada kotak isian dan klik tombol Cek.
10. DENGAN FUNGSI Cara yang lebih efektif, untuk menerjemahkan banyak angka adalah dengan membuat sebuah fungsi. Fungsi ini harus anda letakkan dibagian bawah dari Implementation. Function TERBILANG( n : longint) : String; Const Bil : Array[0..11] Of String[15] = ('','Satu','Dua','Tiga','Empat','Lima', 'Enam','Tujuh','Delapan','Sembilan','Sepuluh',' Sebelas'); Begin Case n Of 0..11 : Result := Bil[n]; 12..19 : Result := Terbilang(n-10) + ' Belas'; 20..99 : Result := Terbilang(n div 10) + ' Puluh ' + Terbilang(n mod 10); 100..199 : Result := 'Seratus ' + Terbilang(n-100); 200..999 : Result := Terbilang(n div 100) + ' Ratus ' + Terbilang(n mod 100); 1000..1999: Result := 'Seribu ' + Terbilang(n-1000); 2000..9999: Result := Terbilang(n div 1000) + ' Ribu ' + Terbilang(n mod 1000); End; //form1.caption := inttostr(n) End; Kemudian anda hapus dan ganti kode yang ada ditombol check sehingga menjadi sebagai berikut: procedure TForm1.BitBtn1Click(Sender: TObject); Var Digit1 : Char; begin If Edit1.text<>'' Then Begin If Edit1.text='0' Then Panel1.Caption:='Nol' Else Panel1.Caption:= TERBILANG(STRtoINT(Edit1.text)); End Else Panel1.Caption:='Kosong'; end;
Berikut ini Contoh Aplikasi yang sedang di RUN.
Gambar 3.4. Contoh Form Yang Sedang Dijalankan D. LATIHAN DAN TUGAS 1. Buat supaya keterangan tampil ketika kita sedang mengetik angkanya (tanpa mengklik tombol cek) 2. Tambahkan pengkodean sehingga program bisa menghandle hingga bilangan Triliunan.
BAB IV SISTEM MENU
A. DESAIN FORM Untuk membuat sebuah form bermenu caranya sangat mudah sekali yaitu : 1. Buat sebauh aplikasi baru 2. Tambahkan sebuah MainMenu pada form anda.
Gambar 4.1. Rancangan Form Bermenu 3. Double klik pada komponen MainMenu yang ada pada form, tunggu hingga muncul jendela baru 4. Isi Properti Caption pada Object Inspector dengan : &Berkas, sehingga akan terlihat seperti Gambar 4.2
Gambar 4.2. Penambahan Menu Berkas 5. Klik tombol kosong yang ada dibawah tulisan Berkas pada form, kemudian anda tambahkan Caption dengan &Keluar 6. Klik tanda titik-titik yang membentuk kotak kosong dengan disebelah kanan menu Berkas, kemudian anda ubah Captionnya dengan &Warna.
7. Berturut-turut anda buatkan 3 buah sub menu baru dibawah menu Warna dengan Caption masing-masing Hitam, Putih, Standar. 8. Kemudian anda tambahkan menu Help, disamping kanan Warna. 9. Dibawah menu Help, anda tambahkan dua sub menu dengan Caption Program, - , Tentang. 10. Tutup Form rancangan menu tersebut sehingga kita kembali aktif di Form yang pertama dan perhatikan perubahan yang terjadi.
Gambar 4.3. Tampilan Setelah Penambahan Menu B. PENGKODEAN Tambahkan pengkodean sehingga seluruh kodenya akan terlihat seperti dibawah ini: unit Umenu; interface uses Windows, Messages, SysUtils, Controls, Forms, Dialogs, Menus; type TForm1 = class(TForm) MainMenu1: TMainMenu; Berkas1: TMenuItem; Keluar1: TMenuItem; Warna1: TMenuItem; Hitam1: TMenuItem; Putih1: TMenuItem; Standar1: TMenuItem;
Classes,
Graphics,
Help1: TMenuItem; Program1: TMenuItem; N1: TMenuItem; Tentang1: TMenuItem; procedure Keluar1Click(Sender: TObject); procedure Hitam1Click(Sender: TObject); procedure Putih1Click(Sender: TObject); procedure Standar1Click(Sender: TObject); procedure Program1Click(Sender: TObject); procedure Tentang1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Keluar1Click(Sender: TObject); begin if Application.MessageBox( 'Apakah anda yakin keluar program ? ', 'Keluar Program',36) = 6 then Close; end; procedure TForm1.Hitam1Click(Sender: TObject); begin Form1.Color := clBlack; end; procedure TForm1.Putih1Click(Sender: TObject); begin Form1.Color := clWhite; end; procedure TForm1.Standar1Click(Sender: TObject); begin Form1.Color := clLtGray; end;
procedure TForm1.Program1Click(Sender: TObject); begin Application.MessageBox('Program Menu v.0.1'+#13+#13+'Oleh : nama','Tentang Program',64); end; procedure TForm1.Tentang1Click(Sender: TObject); begin Application.MessageBox('Nama : Abu Syafa'+#13+ 'Alamat : Yogyakarta'+#13+ 'Phone : xxx','Programmer...',64); end; end.
BAB V PEMROGRAMAN GRAFIS A. DESAIN FORM Delphi menyediakan Canvas untuk tempat penggambaran. Canvas memiliki Pen, Brush, Color yang dapat digunakan untuk menggambar. Selain itu juga mempunya method MoveTo, LineTo, Circle, Ellipse dan lain-lain yang memungkinkan programmer menggambar bentuk-bentuk primitif dengan mudah. Berikut ini adalah tabel method pokok pada Canvas: Level Tinggi
Operasi Tools Menggambar garis MoveTo, LineTo, Rectangle, dan dan bentuk Ellipsi Menampilkan teks TextOut, TextHeight, TextWidth, dan TextRext method Arsiran FillRect dan FloodFill Sedang Mengubah Pen, Brush, dan Font property grafik/teks Manipulasi pixel Pixels property Menyalin dan Draw, StrectDraw, BrushCopy, menggabung CopyRect method dan gambar CopyMode property Rendah Call fungsi-fungsi Handle property Windows GDI Pada bagian ini kita akan mempelajari bagaimana bentuk-bentuk dasar (primitif) grafik yang didukung oleh delphi. Titik, garis, persegi, dan elips adalah contoh bentuk dasar grafik, yang daripadanya dapat digambar bentuk yang lebih kompleks. Berikut ini desain formnya:
Gambar 5.1. Desain Form Grafis
Kemudian anda ubah propertinya dari Object Inspector: Nama Object Label1 Label2 Label3 Label4 Label5 Button1 Button2 Button3 Button4 Button5 Button6 Button7 Button8 Button9 Button10 Button11 PaintBox1 ColorDialog1 Edit1 Edit2 Edit3 Edit4 Form1
Property Caption Size Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption
Nilai Primitif Gambar 15 X1 Y1 X2 Y2 &Garis &Persegi &Elips &Acak &Rumah &Mobil &Bunga &Kubus &Hapus &Warna &Selesai
Text Text Text Text Caption
0 0 200 100 Gambar Gambaran...
Jika perubahan property anda benar, maka form anda akan terlihat seperti terlihat pada gambar 5.2.
Gambar 5.2. Desain Form Setelah Perubahan B. SOURCE CODE Berikut ini kode untuk tombol Garis, Persegi, Elips, Acak, Hapus, Warna, Rumah dan Selesai. unit Ugrafik; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton;
Button7: TButton; Button8: TButton; ColorDialog1: TColorDialog; PaintBox1: TPaintBox; Button9: TButton; Button10: TButton; Button11: TButton; procedure Button1Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public a,b,c,d : Integer; { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin a:=STRtoINT(edit1.text); b:=STRtoINT(edit2.text); c:=STRtoINT(edit3.text); d:=STRtoINT(edit4.text); PaintBox1.Canvas.MoveTo(a,b); PaintBox1.Canvas.LineTo(c,d); end; procedure TForm1.Button11Click(Sender: TObject); begin close; end; procedure TForm1.Button2Click(Sender: TObject); begin a:=STRtoINT(edit1.text); b:=STRtoINT(edit2.text);
c:=STRtoINT(edit3.text); d:=STRtoINT(edit4.text); PaintBox1.Canvas.Rectangle(a,b,c,d); end; procedure TForm1.Button3Click(Sender: TObject); begin a:=STRtoINT(edit1.text); b:=STRtoINT(edit2.text); c:=STRtoINT(edit3.text); d:=STRtoINT(edit4.text); PaintBox1.Canvas.Ellipse(a,b,c,d); end; procedure TForm1.Button4Click(Sender: TObject); Var i : integer; begin For i:=1 to 1000 Do Begin PaintBox1.Canvas.Pixels[Random(PaintBox1.Width), Random(PaintBox1.height)]:= RGB(Random(256),Random(256),Random(256)); Application.ProcessMessages; End; end; procedure TForm1.Button9Click(Sender: TObject); begin paintBox1.Hide; PaintBox1.Show; end; procedure TForm1.Button10Click(Sender: TObject); begin ColorDialog1.Execute; PaintBox1.Color := ColorDialog1.Color; end; procedure TForm1.FormCreate(Sender: TObject); begin PaintBox1.Canvas.Pen.Color := clBlack; end; procedure TForm1.Button5Click(Sender: TObject); Var tinggi,lebar,atap,tengah :integer;
begin lebar := PaintBox1.Width; tengah:= lebar div 2; tinggi:= PaintBox1.Height; atap := tinggi div 3; // gambar atap: PaintBox1.Canvas.MoveTo(0,atap); PaintBox1.Canvas.LineTo(lebar,atap); PaintBox1.Canvas.LineTo(lebar - lebar div 4,0); PaintBox1.Canvas.LineTo(lebar div 4,0); PaintBox1.Canvas.LineTo(0,atap); // gambar dinding: PaintBox1.Canvas.MoveTo(lebar div 4,atap); PaintBox1.Canvas.LineTo(lebar div 4,tinggi -1); PaintBox1.Canvas.LineTo(lebar lebar div 4,tinggi -1); PaintBox1.Canvas.LineTo(lebar lebar div 4,atap); // gambar pintu: with PaintBox1.canvas DO Begin Pen.Color := clBlue; Pen.Width := 5; MoveTo(tengah - lebar div 8, tinggi -1); LineTo(tengah + lebar div 8, tinggi -1); LineTo(tengah + lebar div 8, tinggi div 2); LineTo(tengah - lebar div 8, tinggi div 2); LineTo(tengah - lebar div 8, tinggi -1); MoveTo(tengah, tinggi -1); LineTo(tengah, tinggi div 2); Pen.Color := clBlack; Pen.Width := 1; End; end; end. C. LATIHAN 1. Lengkapi program diatas untuk tombol Mobil, Bunga, dan Kubus ! 2. Lengkapi pula fasilitas program untuk mengganti warna garis ! 3. Buat aplikasi sederhana semacam PaintBrush milik Windows !
BAB VI APLIKASI JAM DIGITAL DAN ANALOG
A. DESAIN FORM Dengan menggunakan komponen MainMenu, StaticText serta Timer dan PaintBox, buatlah desain form seperti dibawah ini:
Gambar 6.1. Desain Form Jam Susunan menu sebagai berikut : Tampilan
Set
Nama Komponen Form1 MainMenu1.Analog1 MainMenu1.Digital1 MainMenu1.Jalan1 MainMenu1.Berhenti1 MainMenu1.Tentang1 StaticText1
Timer1 PaintBox1
Help
Properti Caption Caption Caption Checked Caption Checked Caption Caption Name Font.Size Font.Name Interval
Nilai Jam Jaman... &Analog &Digital True &Jalan True &Berhenti &Tentang lblJAM 72 Garamond 100
B. SOURCE CODE Seperti halnya dialam pascal, dalam program delphi ini kita juga bisa membuat prosedur sendiri. Caranya ketik dahulu Header prosedur yang akan dibuat (Bagian kepala prosedur) dan tempatkan dibagian private atau public. Misalkan kita ingin membuat prosedur BingkaiJam, JamDigital, dan JamAnalog maka anda harus mengetikkannya pada bagian private sehingga terlihat sebagai berikut: xjam,yjam,xmen,ymen,xdet,ydet : integer; procedure JamAnalog(Sender : TObject); procedure JamDigital(Sender : TObject); procedure BingkaiJam; Kemudian anda ketik isi prosedur tersebut dibagian implementation: procedure TForm1.JamAnalog(Sender : TObject); Var AmpJam,AmpMen,AmpDet,Jam,Men,Det,Det100 : word; Begin // Gambar Jam: SetMapMode(paintbox1.Canvas.Handle, MM_LOMETRIC); SetViewPortOrgEx(PaintBox1.Canvas.Handle, PaintBox1.Width div 2, PaintBox1.Height div 2, nil); If (PaintBox1.Height<PaintBox1.Width) Then AmpDet := PaintBox1.Height div 2 -10 Else AmpDet := PaintBox1.Width div 2 -10; // Set Panjang Jarum Jam,Menit, dan Detik AmpDet := AmpDet*3 div 2; AmpMen := AmpDet-20; AmpJam := AmpMen-30; DecodeTime(Time,Jam,Men,Det,Det100); // catat waktu ini With PaintBox1.Canvas DO Begin Pen.Color := clBtnFace; MoveTo(0,0); LineTo(xdet,ydet); MoveTo(0,0); LineTo(xmen,ymen); MoveTo(0,0); LineTo(xjam,yjam); xdet := Round(AmpDet*cos(DegToRad(90det*6))); ydet := Round(AmpDet*sin(DegToRad(90det*6))); xmen := Round(AmpMen*cos(DegToRad(90men*6)));
ymen := Round(AmpMen*sin(DegToRad(90men*6))); xJam := Round(AmpJam*cos(DegToRad(90jam*30))); yJam := Round(AmpJam*sin(DegToRad(90jam*30))); // Gambar Jarum Detik: Pen.Color := clRed; MoveTo(0,0); LineTo(xdet,ydet); // Gambar Jarum Menit: Pen.Color := clBlack; MoveTo(0,0); LineTo(xmen,ymen); // Gambar Jarum Jam MoveTo(0,0); LineTo(xjam,yjam); End; End; procedure TForm1.JamDigital(Sender:TObject); Begin lblJam.Caption := TIMEtoSTR(Time); End; procedure TForm1.BingkaiJam; Var Amp,Amp1,i :integer; Begin // Gambar Jam: SetMapMode(paintbox1.Canvas.Handle, MM_LOMETRIC); SetViewPortOrgEx(PaintBox1.Canvas.Handle, PaintBox1.Width div 2, PaintBox1.Height div 2, nil); If (PaintBox1.Height<PaintBox1.Width) Then Amp := PaintBox1.Height div 2 -10 Else Amp := PaintBox1.Width div 2 -10; // Set Panjang Jarum Jam,Menit,Detik: Amp := Amp*3 div 2; Amp1 := Amp - 10; For i:=0 to 60 Do Begin If (i mod 5 )=0 Then PaintBox1.Canvas.Pen.Color := clRed Else PaintBox1.Canvas.Pen.Color := clBlack; PaintBox1.Canvas.MoveTo(Round(Amp*cos(i/30*pi)),Roun d(Amp*sin(i/30*pi)));
PaintBox1.Canvas.LineTo(Round(Amp*cos(i/30*pi)),Roun d(Amp*sin(i/30*pi))); End; End; Sehingga kode lengkapnya terlihat sebagai berikut: unit Ujam; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ExtCtrls, Math; type TForm1 = class(TForm) MainMenu1: TMainMenu; Tampilan1: TMenuItem; Analog1: TMenuItem; Digital1: TMenuItem; Set1: TMenuItem; Help1: TMenuItem; N1: TMenuItem; Selesai1: TMenuItem; Jalan1: TMenuItem; Berhenti1: TMenuItem; Tentang1: TMenuItem; Timer1: TTimer; PaintBox1: TPaintBox; lblJAM: TStaticText; procedure Analog1Click(Sender: TObject); procedure Digital1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Selesai1Click(Sender: TObject); procedure Jalan1Click(Sender: TObject); procedure Berhenti1Click(Sender: TObject); procedure Tentang1Click(Sender: TObject); private { Private declarations } xjam,yjam,xmen,ymen,xdet,ydet : integer; procedure JamAnalog(Sender : TObject); procedure JamDigital(Sender : TObject); procedure BingkaiJam;
public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.JamAnalog(Sender : TObject); Var AmpJam,AmpMen,AmpDet,Jam,Men,Det,Det100 : word; Begin // Gambar Jam: SetMapMode(paintbox1.Canvas.Handle, MM_LOMETRIC); SetViewPortOrgEx(PaintBox1.Canvas.Handle, PaintBox1.Width div 2, PaintBox1.Height div 2, nil); If (PaintBox1.Height<PaintBox1.Width) Then AmpDet := PaintBox1.Height div 2 -10 Else AmpDet := PaintBox1.Width div 2 -10; // Set Panjang Jarum Jam,Menit, dan Detik AmpDet := AmpDet*3 div 2; AmpMen := AmpDet-20; AmpJam := AmpMen-30; DecodeTime(Time,Jam,Men,Det,Det100); // catat waktu ini With PaintBox1.Canvas DO Begin Pen.Color := clBtnFace; MoveTo(0,0); LineTo(xdet,ydet); MoveTo(0,0); LineTo(xmen,ymen); MoveTo(0,0); LineTo(xjam,yjam); xdet := Round(AmpDet*cos(DegToRad(90det*6))); ydet := Round(AmpDet*sin(DegToRad(90det*6))); xmen := Round(AmpMen*cos(DegToRad(90men*6))); ymen := Round(AmpMen*sin(DegToRad(90men*6))); xJam := Round(AmpJam*cos(DegToRad(90jam*30)));
yJam := Round(AmpJam*sin(DegToRad(90jam*30))); // Gambar Jarum Detik: Pen.Color := clRed; MoveTo(0,0); LineTo(xdet,ydet); // Gambar Jarum Menit: Pen.Color := clBlack; MoveTo(0,0); LineTo(xmen,ymen); // Gambar Jarum Jam MoveTo(0,0); LineTo(xjam,yjam); End; End; procedure TForm1.JamDigital(Sender:TObject); Begin lblJam.Caption := TIMEtoSTR(Time); End; procedure TForm1.BingkaiJam; Var Amp,Amp1,i :integer; Begin // Gambar Jam: SetMapMode(paintbox1.Canvas.Handle, MM_LOMETRIC); SetViewPortOrgEx(PaintBox1.Canvas.Handle, PaintBox1.Width div 2, PaintBox1.Height div 2, nil); If (PaintBox1.Height<PaintBox1.Width) Then Amp := PaintBox1.Height div 2 -10 Else Amp := PaintBox1.Width div 2 -10; // Set Panjang Jarum Jam,Menit,Detik: Amp := Amp*3 div 2; Amp1 := Amp - 10; For i:=0 to 60 Do Begin If (i mod 5 )=0 Then PaintBox1.Canvas.Pen.Color := clRed Else PaintBox1.Canvas.Pen.Color := clBlack; PaintBox1.Canvas.MoveTo(Round(Amp*cos(i/30*pi)),Roun d(Amp*sin(i/30*pi))); PaintBox1.Canvas.LineTo(Round(Amp*cos(i/30*pi)),Roun d(Amp*sin(i/30*pi))); End; End;
procedure TForm1.Analog1Click(Sender: TObject); begin Analog1.Checked := True; Digital1.Checked := False; lbljam.visible := false; Caption := 'Jam Analog'; PaintBox1.Visible := True; Application.ProcessMessages; BingkaiJam; Timer1.OnTimer := JamAnalog; end; procedure TForm1.Digital1Click(Sender: TObject); begin Digital1.Checked := True; Analog1.Checked := False; lbljam.visible := True; Caption := 'Jam Digital'; PaintBox1.Visible := False; Timer1.OnTimer := JamDigital; end;
procedure TForm1.FormActivate(Sender: TObject); begin Timer1.OnTimer := JamDigital; end; procedure TForm1.Selesai1Click(Sender: TObject); begin Close; end; procedure TForm1.Jalan1Click(Sender: TObject); begin Jalan1.Checked := True; Berhenti1.Checked := False; Timer1.Enabled := True; end; procedure TForm1.Berhenti1Click(Sender: TObject); begin Jalan1.Checked := False; Berhenti1.Checked := True; Timer1.Enabled := False; end;
procedure TForm1.Tentang1Click(Sender: TObject); begin Application.MessageBox('Buatan Orang Muslim !','Jam...',64); end; End.
BAB VII DATABASE DESKTOP
A. MEMBUAT TABLE Untuk membuat tabel dengan menggunakan delphi, anda membutuhkan sebuah program bantual lain yang menjadi satu dengan delphi yaitu Database Desktop. Cara untuk membuat table, bisa anda lakukan dengan mengikuti langkah-langkah dibawah ini: 1. Dari program delphi, pilih menu Tools | DataBase Desktop. 2. Tunggu beberapa saat hingga muncul jendela Database Desktop.
Gambar 7.1. Jendela Database Desktop 3. Dari jendela tersebut, anda pilih menu Tools | Alias Manager.
Gambar 7.2 Jendela Alias Manager
4. Klik tombol New. 5. Pada isian Database alias: anda ketikkan nama aliasnya misalkan Akademik. 6. Driver type: anda pilih STANDAR. 7. Path: diisi dengan letak penyimpanan tabel anda. Jika anda tidak hapal nama direktorinya, silahkan klik tombol Browse untuk mencarinya. 8. Klik tombol OK, ketika muncul konfirmasi, anda pilih tombol Yes.
Gambar 7.3. Jendela Konfirmasi 9. Kemudian anda pilih menu File | Working Directory... 10. Setelah muncul jendela Set Working Directory, anda pilih Akademik pada bagian Aliases: 11. Jika tidak muncul, kemungkinan ada kesalahan ketika anda membuat Alias Manager.
Gambar 7.4. Jendela Working Directory 12. Klik tombol OK. 13. Pilih menu File | New | Table.
Gambar 7.5. Jendela Create Tabel
14. Ketika muncul jendela Create Table, anda pilih type table Paradox 7, kemudian klik tombol OK 15. Setelah muncul jendela Create Paradox 7 Table, anda buat struktur tabel sebagai berikut:
Gambar 7.6. Jendela Desain Tabel 16. Klik tombol Save As...
Gambar 7.7. Jendela Save As 17. Pada isian File name, anda isikan nama tabelnya, misalkan Mhs, sedangkan pada bagain Alias anda pilih Akademik. 18. Klik tombol Save.
19. Buka tabel anda, dengan memilih menu File | Open | Table
Gambar 7.8. Jendela Open 20. Ketika muncul jendela open, anda pilih table Mahasiswa 21. Pilih menu Table | Edit Data, kemudin anda masukan record seperti dibawah ini:
Gambar 7.9. Contoh Data Tabel Mahasiswa 22. Pilih menu File | Close. Ketika muncul konfirmasi penyimpanan, anda pilih yes.
Gambar 7.10. Jendela Konfirmasi 23. Pilih menu File | Exit, untuk keluar dari program Database Desktop dan kembali ke program Delphi. B. MENDESAIN FORM Untuk merancang aplikasi database ini, kita membutuhkan beberapa komponen pallete antara lain: Table, DataSource, DBGrid, dan DBNavigator. Anda bisa menambahkan komponen tersebut dari tab Data Access dan Data Control. Jangan lupa untuk menambahkan sebuah label dan dua buah Bitbtn. Atur sedemikian rupa sehingga terlihat seperti pada gambar 6.11.
Gambar 7.11. Rancangan Form Database Atur propertinya sebagai berikut: Nama Object Form1 Table1
Properti BorderStyle Caption DatabaseName TableName
Nilai bsDialog Basis Data... Akademik Mahasiswa.db
DataSource1 DBGrid1 DBNavigator1 Bitbtn1 Bitbtn2 Label1
IndexFieldName Active DataSet DataSource DataSource Caption Glyph Kind Caption Font.Name Font.Size
Nim; Nama Mahasiswa True Table1 DataSource1 DataSource1 &Laporan report.bmp bkClose DATABASE MAHASISWA Verdana 20
Gambar 7.12. Form Setelah Perubahan Property Sekarang coba anda jalankan form tersebut. C. REPORT Sebelum anda bisa menampilkan laporan terlebih dahulu anda harus mempersiapkan hal dibawah ini: 1. Tambahkan sebuah form baru, dengan memilih menu File | New Form. 2. Dengan menggunakan pallete QReport, masukkan beberapa komponen antara lain: a. Sebuah QuickRep b. Empat buah QRBand c. Enam buah QRLabel d. Enam buah QRDBtext e. Satu buah Table
3. Ubah propertinya sebagai berikut: Nama Objek Form1 Table1
QRBand1 QRBand2 QRBand3 QRBand4 QRLabel1 QRLabel2 QRLabel3 QRLabel4 QRLabel5 QRLabel6 QRDBtext1 QRDBtext2 QRDBtext3 QRDBtext4 QRDBtext5 QRDBtext6 QuickRep1
Properti Caption DatabaseName TableName IndexFieldName Active BandType BandType BandType BandType Caption Caption Caption Caption Caption Caption DataSet DataField DataSet DataField DataSet DataField DataSet DataField DataSet DataField DataSet DataField DataSet ReportTitle
Nilai Laporan... Akademik Mahasiswa.db Nim; Nama Mahasiswa True rbTitle rbClumnHeader rbDetail rbPageFooter NIM Nama Mahasiswa Tempat Lahir Tanggal Lahir Jurusan Alamat Table1 Nim Table1 Nama Mahasiwa Table1 Tempat Lahir Table1 Tanggal Lahir Table1 Jurusan Table1 Alamat Table1 Laporan Mahasiswa
4. Pastikan Tampilan Form anda akan terlihat seperti berikut :
Gambar 7.13. Tampilan Form Setelah Perubahan 5. Aktifkan kembali Form1 anda 6. Double Klik pada Bibtn1 (tombol Laporan), kemudian anda ketik: Form2.QuickRep1.Preview; 7. Tekan tombol F9 8. Ketika muncul konfirmasi, pilih tombol yes
Gambar 7.14. Jendela Konfirmasi 9. Tekan tombol F9 sekali lagi 10. Sekarang aplikasi anda bisa diuji coba. D. LATIHAN 1. Lengkapi laporan diatas dengan menambahkan Judul Laporan, Garis pembatas antar data, dan tanggal pencetakan laporan pada bagian footer. 2. Buat sebuah aplikasi utuh dengan menggunakan menu, grafik dan database seperti yang telah anda buat sebelumnya.