Modul Praktek Laboratorium Komputer
Disusun Oleh:
Achmad Baroqah Pohan S.Kom Ika Yuniva S.Kom Akademi Manajemen Informatika & Informatika
Jakarta 2012 1
Bab I Mengenal Delphi 1.1.
Pengertian Delphi Delphi adalah suatu bahasa pemograman (development language) yang digunakan untk merancang suatu aplikasi program. Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak yang dikembangkan oleh Borland. Dengan menggunakan Free Pascai yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE
a. Kegunaan Delphi 1. untuk membuat aplikasi windows 2. Untuk merancang aplikasi program berbasis grafis 3. Untuk membuat program berbasis jaringan (client/server) 4. Untuk merancang program .Net (berbasis internet)
b. Keunggulan Delphi 1. IDE (Integrated Development Environment) atau lingkungan pengembangan aplikasi sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat menu menu yang memudahkan kita untuk membuat suatu proyek program. 2. Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi, maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah. 3. Mudah digunakan, source kode delphi yang merupakan turunan dari pascal, sehingga tidak diperlukan suatu penyesuain lagi. 4. Bersifat multi purphase, artinya bahasa pemograman Delphi dapat digunakan untuk mengembangkan berbagai keperluan pengembangan aplikasi.
c. Sejarah Borland Delphi 1. Delphi versi 1 (berjalan pada windows 3.1 atau windows 16 bit) 2. Delphi versi 2 (Berjalan pada windows 95 atau delphi 32 bit) 3. Delphi versi 3 (berjalan pada windows 95 keatas dengan tambahan fitur internet atua web) 4. Perkembangan selanjutnya diikuti dengan Delphi versi 4, 5 dan 6. 5. Delphi versi 7 terdapat vitur .net dengan tambahan file XML 6. Versi yang terkini adalah Delphi 8.0 yang memiliki terdapat komponen BPD (Borland Data Providers)
1.2. OOP (Object Oriented Programming) OOP adalah metode pemograman dengan membentu sebuah aplikasi yang mendekati keadaan dunia yang sesungguhnya. Hal itu bisa dilakukan dengan cara mendisain object untuk menyelesaikan masalah. 2
1. Tiga unsur OOP a. Encapsulation atau pemodelan Encapsulation adalah konsep penggabungan data dengan operator. Dalam konsep pemodelan data dan operasi menjadi satu kesatuan yang disebut object. Encapsulation juga disebut dengan penyembunyian informasi (information hiding) Contoh = ketika kita menyalakan sebuah TV kita tidak tahu apa yang terjadi dengan proses dan percakapan antar alat yang berhubungan dengan TV tersebut sehingga mampu menampilkan sebuah gambar. Atau = ketika melakukan klik pada subuah object dalam suatu aplikasi program kita tidak tahu apa yang dilakukan program sehingga ditampilkan hasil yang sesuai.
Catatan = dari dua contoh kasus tersebut terdapat kesamaan proses mengenai information hiding yang tidak diketahui oleh user sampai hasil ditampilkan.
b. Inheritance atau penurunan Inherintance adalah sebuah object yang dapat diturunkan menjadi object yang baru dengan tidak menghilangkan sifat asli dari object tersebut.
Contoh = TV merupakan salah satu media elektronik yang dgunakan untuk menampilkan gambar dengan tujuan untuk memberikan informasi kepada konsumen. Secara umum TV memunyai cara kerja yang sama dengan media elektronik yang lain dlam proses penyampaian informasi, tetapi mempunyai sifat yang unik yang dapat membedakan dengan media electronik yang ada. Atau = Dalam aplikasi program kita sering menggunakan command button, untuk beberapa perintah yang berbeda.
c. Polymorphism atau Polimorfisme Polymorphism merupakan penggunaan berbagai macam object yang berbeda tetapi secara fungsi bergantung pada satu object sebagai induk, dengan cara pelaksanaan yang berbeda - beda.
Contoh = TV dan radio adalah media electronik yang mempunyai sistem yang sama tentang bagaimana meyebarkan suatu informasi, tetapi cara kerja dari masing - masing sistem pasti berbeda.
Atau Object Simpan dan Update adalah icon yang berasal dari induk yang sama yaitu , command button tetapi cara kerja tersebut berbeda - beda.
3
1.3. Delphi dan OOP (Object Oriented Programming) Secara default ketika kita merancang suatu aplikasi program, mau tidak mua dan tanpa kita sadari bahwa kita telah menerapkan OOP, walupun secara teori kita kurang memahami OOP dalam arti yang sebenarnya.
Contoh sederhananya adalah ketika kita merancang suatu form (Tforml) baru, sadar atau tidak sebenarnya form yang kita aktifkan merupakan turunan dari Tform sebagai induknya atau ketika kita mengaktikan button pada form merupakan turunan dari tbutton. Atau Contoh dalam bahasa program adalah sebagai berikut = ketika merancang suatu label di form secara otomatis delphi akan menuliskan label tersebut dalam jendela code editor tentang turunan dari label tersebut.
Type Tform
=
class(tform)
Labell = tlabel End;
1.4. IDE DELPHI a. langkah - langkah mengaktifkan Delphi a. Klik start b. pilih program Files c. pilih Borland Delphi d. pilih dan klik Delphi 7
b. Jendela Utama Delphi
Gambar 1.1 Jendela Utama Delphi 4
c. Bagian - bagian dari Jendela Delphi
1. Object Tree View Merupakan sebuah diagram pohon yang menggambarkan hubungan logis menghubungkan semua komponen yang terdapat dalam suatu proyek program. Komponen tersebut meliputi form, modul atau frame. Fungsinya digunakan untuk menampilkan seluruh daftar komponen program dalm sebuah aplikasi program sesuai dengan penempatnnya.
Gambar 1.2 Jendela Object Tree View
2. Object Inspector Merupakan jendela yang digunakan utnuk mengatur tampilan komponen pada form, misal bagaimana mengubah tulisan button pada command button menjadi Simpan, atau menghapus tulisan pada label dan mengganti nama menjadi Nama Mahasiswa atau memberikan perintah tertentu pada sebuah komponen sehingga ada interaksi ketika program dijalankan. Secara Umum Object Inspector terbagi menadi 2, yaitu = a. Properties Digunakan untuk mengatur tampilan pada sebuah komponen baik itu meliputi penggantian nama, warna, jenis huruf, border dan lain -lain.
5
Gambar 1.3 Jendela Inspector ( Properties )
b. Events Merupakan jendela properties yang digunakan untuk memberikan fungsi yang lebih detail dari fungsi sebenarnya. Misalnya ketika tombol Simpan di klik maka program akan menjalankan perintah penyimpanan data. Dari kalimat tersebut ada event clik untuk mengeksekusi sebuah tombol simpan. Perintah event clik tersebut dapat diberikan melalui jendela events.
Gambar 1.4 Jendela Events pada Object Inspector
6
3. Form Designer Merupakan tempat yang digunakan untuk merancang semua aplikasi yang diambil dari komponen pallete.
Gambar 1.5. Jendela Events pada Object Inspector
4. Component Pallete Merupakan kumpulan icon yang digunakan untuk merancang suatu aplikasi untuk membentuk sebuah aplikasi user interface. Dalam komponen pallete semua icon dikelompokkan dalam berbagai komponen sesuai dengan fungsi dan kegunaanya.
Gambar 1.6. Jendela Komponen Pallete
7
5. Code Editor Bagian dari delphi yang digunakan untuk menuliskan kode program. Pada bagian code editor terdapat 3 bagian utama yaitu = bagian paling kiri yang berisi berupa angka menunjukan baris dan kolom. Keterangan modified menunjukan bahwa telah terjadi modifikasi terhapap baris program. Dan paling kanan menunjukan status keyboard tentang tombol insert atau over write.
Gambar 1.7 Jendela Code Editor
8
6. Code Explorer Jendela yang digunakan untuk menampilkan seluruh variabel, type, dan rountine yang didefinisikan pada sebuah unit.
Gambar 1.8 Jendela Code Explorer
7. Code Diagram Merupakan fasilitas pada delphi yang digunakan untuk mendesain sebuah diagram atas komponen - komponen yang digunakan dalam seatu rancangan aplikasi.
Gambar 1.9. Jendela Code Diagram
9
d. Proyek Delphi 1. File Proyek File ini disimpan dengan ber-ekstenion .dpr. File ini berisi informasi mengenai seluruh proyek program 2. File Unit File ini merupakan kumpulan dari barisan kode program yang terdapat di jendela code editor, baik itu yang dituliskan oleh progremmer maupun oleh system. Extention file ini adalah . pas File Unit dibagi menjadi 2 a. Bagian Interface Barisan ini dimulai dari kata Interface (setelah nama unit), berisi seluruh deklarasi variabel, tipe data object maupun deklarasi tambahan. b. Bagian Implementation Dimulai dari kata kunci implementation dan diakhiri dengan kata end. Fungsi digunakan untuk menuliskan kode program sebagai bagain dari interaksi antar komponen ataupun dengan user. 3. File Form Berisi tentang seluruh informasi yang ada kaitannya dengan form yang dibuat, meliputi tinggi, lebar, pososi form atau tentang komponen didalmnya. Penggunaan file ini tidak dianjurkan karena untu pengaturan sudah disediakan object inspector sebagai media pengaturan semua komponen.
1.5.
Aplikasi Perkenalkan(LATIHAN 1) a. Hasil Program
Gambar 1.10 Gambar Form Perkenalkan!!!
10
b. Desain Form
Gambar 1.20 Gambar Desain Form Perkenalkan
c. Desian Properties Object
Name
Caption
Label 1
Label 1
Nama Mata Kuliah
Label 2
Label 2
Kampus
Label 3
Lnama
Label3
Label 4
Lalamat
Label4
Label 5
Ltanggal
Label 5
Label 6
Ljam
Label 6
Timer ( diambil dari
Timer1
-
Button1
Btampil
Tampil
Button2
Bkeluar
Keluar
Form 1
Forml
:::Perkenalan:::
component System )
d. Listing program
1. Ketika form dalam keadaan aktif maka form akan menampilkan nama dan alamat pembuat program
procedure TForm1.btampilClick(Sender: TObject); 11
begin label3.Caption:='Borland Delphi 7'; label4.Caption:='Bina Sarana Informatika'; end;
2. Untuk keluar dari program user mengklik Button keluar procedure TForm1.bkeluarClick(Sender: TObject); begin close; end;
1.6. Latihan Membuat Program a. Form Setelah dijalankan
Gambar 1.21 Gambar Form Latihan ”Perkenalan Pert1”
b. Ketentuan yang diinginkan… 1. Jika diklik Button Tampil maka muncul data seperti gambar diatas 2. Jika dklik Button Keluar maka akan keluar dari aplikasi program
12
Bab II Mengenal Form dan Objek Kontrol 2.1 Form Form adalah tempat dimana kita membuat tampilan (user interface) dari program aplikasi. Dengan form, pemakai program dapat berkomunikasi atau berinteraksi dengan program. Pada waktu anda membuat sebuah proyek pada Delphi 7.0 , maka secara default telah terdapat sebuah form pada proyek tersebut. Contoh sebuah form adalah seperti pada gambar 2.1
Gambar 2.1 Tampilan Sebuah Form Berikut ini daftar beberapa contoh properti dari form yang biasanya dipakai untuk membuat form secara umum pada aplikasi database. Properti
Keterangan
Align
Posisi form pada waktu form ditampilkan pertama kali
BorderStyle
Bentuk batasan pinggiran form
BorderWidth
Lebar batasan pinggiran form
Caption
Judul form
ClientHeight
Tinggi Client area pada form
Color
Warna form
Constraints
Batasan ukuran form
Cursor
Bentuk kursor mouse waktu berada pada form
Enabled
Penerimaan event pada form
13
Font
Bentuk teks pada form
FormStyle
Bentuk Form
Height
Tinggi form
Hint
Keterangan apabila kursor mouse masuk dalam area form
HorzScrollBar Horizontal scrollbar pada form Icon
Gambar icon pada judul form dan aplikasi program
Left
Posisi kiri form diukur dari kiri layar
Menu
Menu yang dipakai pada form
Name
Nama Form
PopupMenu
Menu Pop Up untuk Form
Position
Posisi Form pada Monitor
ShowHint
Menampilkan hint
Top
Posisi atas form diukur dari atas layar
VertScrollBar
Vertikal scroll bar pada form
Visible
Jika true form kelihatan, jika false form tidak kelihatan
Widht
Lebar Form
WindowState
Ukuran tampilan form
Selain properti terdapat juga event. Event adalah kejadian yang dapat terjadi atau mempengaruhi form pada waktu program dijalankan. Contoh beberapa event yang dipakai pada form program aplikasi database adalah sebagai berikut. Event
Waktu Terjadi
OnActivate
Form menjadi window aktif
OnShow
Form aktif atau sesaat sebelum ditampilkan
OnHide
Form tidak aktif atau sesaat sebelum hilang
Salah satu contoh penggunaan event yang terdapat pada form adalah OnActivate. Event OnActivate terjadi pada waktu form telah aktif dilayar. Untuk melihat contohnya lakukan langkah berikut. 1. Buat sebuah proyek baru. 2. Klik ganda pada event OnActivate pada kotak dialog Object Inspector tab Events. 14
3. Tuliskan kode program pada kode editor sehingga menjadi seperti berikut ini. procedure TForm1.FormActivate(Sender: TObject); begin form1.Caption:='Selamat Belajar Pemrograman Delphi 7.0'; end; 4. Jalankan program tersebut. Hasilnya seperti yang terlihat pada gambar 2.2. dimana terdapat teks ”Selamat Belajar Pemrograman Delphi 7.0” pada judul form. 5. Untuk kode program selengkapnya adalh sebagai berikut. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); begin form1.Caption:='Selamat Belajar Pemrograman Delphi 7.0'; end; end.
15
Apabila anda menggunakan lebih dari satu form pada satu proyek, secara default Form1 yang akan dijalankan pertama kali. Namun, apabila ingin menjalankan dari form yang lain, anda dapat memilih form mana yang akan dijalankan pertama kali dengan cara seperti berikut : 1. Klik Menu Project. 2. Klik Options. 3. Setelah itu tampil kotak dialog Project Options seperti pada Gambar 2.3.
4. pada kotak dialog Project Options tab Form, pilih form yang akan dijalankan pertama kali pada saat Run-Time pada bagian Main Form
5. Klik Ok
2.2 Objek Kontrol Pada waktu anda membuat program aplikasi, anda memerlukan objek kontrol yang digunakan untuk tampilan form. Objek kontrol banyak digunakan untuk menampilkan data atau juga membaca data. Dengan adanya objek kontrol, pemakai program aplikasi akan lebih mudah untuk menggunakan serta berinteraksi dengan program aplikasi tersebut. Objek kontrol yang digunakan pada form dibuat dari kontrol-kontrol yang terdapat pada component palette.
16
Berikut ini akan dibahas mengenai beberapa contoh kontrol yang sering digunakan dalam pembuatan program aplikasi. 2.2.1. Edit Box Edit box merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun menampilkan data. Dengan edit box user pengguna aplikasi dapat mengisi data ke dalam program. Selain itu, edit box juga dapat digunakan untuk menampilkan data pada user.berikut ini beberapa contoh properti dari edit box yang sering dipakai pada program aplikasi.
Properti
Keterangan
BorderStyle
Bentuk Garis Tepi edit box
CharCase
Bentuk karakter pada edit box
Color
Warna Edit box
Ctl3D
Jika bernilai true, bentuk edit box berbentuk 3 Dimensi
Cursor
Bentuk kursor mouse waktu berada pada edit box
Enabled
Penerimaan event pada edit box
Font
Jenis dan ukuran dari karakter pada edit box
Height
Tinggi edit box
Hint
Keterangan waktu kursor berada pada edit box
Height
Tinggi edit box
Hint
Keterangan waktu kursor berada pada edit box
Left
Posisi edit box diukur dari batas kiri form
Maxlength
Banyaknya karakter maksimum dari edit box
Name
Nama edit box
PasswordChar Untuk karakter password PopupMenu
Menu Pop Up untuk edit box
ReadOnly
Jika bernilai true, tidak bisa mengisi karakter kedalam edit box
ShowHint
Jika bernilai true,hint bisa ditampilkan
Text
Isi edit text
Top
Posisi 17
Visible
Jika true edit box kelihatan, jika false edit box tidak kelihatan
Widht
Lebar edit box
Untuk beberapa contoh event edit box yang sering dipakai pada programn aplikasi adalah sebagai berikut : Event
Waktu Terjadi
OnEnter
Edit box mendapat box.
OnExit
Edit box kehilangan fokus
OnKeyDown
Sebuah tombol keyborad ditekan dan properti keypreview Pada form bernilai false
OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di edit box
OnKeyUp
Tombol yang ditekan dilepas waktu fokus di edit box
2.2.2. Label Label merupakan kontrol yang dipakai sebagai tempat untuk menampilkan keterangan. Berikut ini beberapa Properti
Keterangan
Align
Posisi dari label pada form
Alignment
Posisi horizontal teks pada label
Autosize
Jika true,ukuran label menyesuaikan dengan text
Caption
Teks pada label
Color
Warna Label
Cursor
Bentuk kursor mouse waktu berada pada label
Font
Jenis teks dari label
Enabled
Penerimaan event pada label
Height
Tinggi Label
Hint
Keterangan waktu kursor berada pada label
Layout
Posisi Vertikal dari teks pada label
Left
Posisi label diukur dari batas kiri form
18
Name
Nama Label
PopupMenu Menu Pop Up untuk Label ShowHint
Jika Bernilai true, Hint bisa ditampilkan
Top
Posisi label diukur dari batas atas form
Transparent
Jika bernilai true, label berbentuk transparan
Visible
Jika true label kelihatan, jika false label tidak kelihatan
Widht
Lebar Label
2.2.3. Button Button merupakan kontrol yang dipakai sebagai tombol untuk melakukan suatu proses. Berikut ini beberapa contoh properti dari button yang dipakai pada program aplikasi. Properti
Keterangan
Cancel
Jika bernilai true, tombol ESC akan menjalankan event OnClick
Caption
Teks pada button
Cursor
Bentuk kursor mouse waktu berada pada button
Default
Jika bernilai true,tombol ENTER akan menjalankan event OnClick
Enabled
Penerimaan event pada button
Font
Jenis teks button
Height
Tinggi Button
Hint
Keterangan waktu kursor berada pada button
Left
Posisi button diukur dari batas kiri form
Name
Nama button
PopupMenu Menu Pop Up Untuk button ShowHint
Jika bernilai true, hint bisa ditampilkan
Top
Posisi button diukur dari batas atas form
Visible
Jika true button kelihatan, jika false button tidak kelihatan
Widht
Lebar button
19
Apabila anda mengklik ganda button pada waktu desain, secara otomatis akan menghasilkan event OnClick. Untuk beberapa contoh event button yang dipakai pada program aplikasi adalah sebagai berikut. Event
Waktu Terjadi
OnClick
Button diklik dengan mouse
OnEnter
Button mendapat fokus
OnExit
Button Kehilangan fokus
KeyDown
Sebuah tombol keyboard ditekan dan properti KeyPreview Pada form bernilai false
KeyPress
Sebuah tombol keyboard ditekan waktu fokus di button
KeyUp
Tombol yang ditekan dilepas waktu fokus di button
2.2.4. Combo Box Combo box merupakan kontrol yang dipakai sebagai tempat untuk menampilkan daftar pilihan. Dengan combo box anda tinggal memilih pilihan yang ada pada combo box tersebut. Berikut ini beberapa contoh properti dari combo box yang dipakai pada program aplikasi . Properti
Keterangan
CharCase
Bentuk karakter pada combo box
Color
Warna combo box
Ctl3D
Jika bernilai true, combobox berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada combo box
DropDownCount Jumlah baris yang tampil pada waktu combo box diklik Enabled
Penerimaan event pada combo box
Font
Jenis teks dari combo box
Height
Tinggi combo box
Hint
Keterangan waktu kursor berada pada combo box
Items
Daftar pilihan yang ditampilkan pada combo box
Left
Posisi combo box diukur dari batas kiri form
MaxLength
Banyaknya karakter maksimum dari combo box 20
Name
Nama combo box
PopupMenu
Menu Pop Up untuk combo box
ShowHint
Jika bernilai true,hint bisa ditampilka
Sorted
Jika bernilai true ,daftar pilihan pada combo box diurutkan
Style
Bentuk combo box
Text
Isi Combo box
Top
Posisi combo box diukur dari batas atas form
Visible
Jika true combo box kelihatan , jika false combo box tidak Kelihatan
Width
Lebar combo box
Untuk beberapa contoh event combo box yang dipakai pada aplikasi adalah sebagai berikut : Event
Waktu Terjadi
OnClick
Combo box diklik dengan mouse
OnEnter
Combo box mendapat fokus
OnExit
Combo box kehilangan fokus
OnKeyDown Sebuah tombol keyboard ditekan dan properti keypreview Pada form bernilai true OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di combo box
OnKeyUp
Tombol yang ditekan dilepas waktu fokus di combo box
2.2.5. List Box List box memiliki fungsi yang hampir sama dengan combo box yaitu menampilkan daftar. Perbedaanya yaitu pada combo box hanya satu pilihan yang terlihat sebelum combo box diklik, sedangkan pada list box dapat menampilkan beberapa pilihan. Pada list box anda tinggal memilih pilihan yang ada pad list box yang dipakai pada program aplikasi. Properti
Keterangan
Align
Posisi list box pada form
BorderStyle
Bentuk batasan pinggiran list box 21
Color
Warna list box
Columns
Jumlah kolom list box
Ctl3D
Jika bernilai true, listbox berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada list box
Enabled
Penerimaan event pada list box
Font
Jenis teks dari list box
Height
Tinggi list box
Hint
Keterangan waktu kursor berada pada list box
Items
Daftar pilihan yang ditampilkan pada list box
Left
Posisi list box diukur dari batas kiri form
MultiSelect
Jika bernilai true, user dapat memilih lebih dari satu pilihan
Name
Nama list box
PopUpMenu
Menu Pop Up untuk list box
ScrollWidht
Lebar scroll pada list box
ShowHint
Jika bernilai true,hint bisa ditampilka
Sorted
Jika bernilai true ,daftar pilihan pada list box diurutkan
Style
Bentuk list box
Top
Posisi list box diukur dari batas atas form
Visible
Jika true list box kelihatan , jika false list box tidak Kelihatan
Width
Lebar list box
Untuk beberapa contoh event list box yang dipakai pada program aplikasi adalah sebagai berikut :
Event
Waktu Terjadi
OnClick
List box diklik dengan mouse
OnEnter
List box mendapat fokus
OnExit
List box kehilangan fokus
22
OnKeyDown
Sebuah tombol keyboard ditekan dan properti KeyPreview Pada form bernilai true
OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di list box
OnKeyUp
Tombol yang ditekan dilepas waktu fokus di list box
2.2.6. Check Box Seperti pada combo box dan list box, check box anda dapat memilih lebih dari satu pilihan. Berikut ini beberapa contoh properti dari check box yang dipakai pada program aplikasi. Properti
Keterangan
Alignment
Posisi Kotak pilihan dengan teks
AllowGrayed
Jika bernilai true, kotak pilihan pada check box bisa Berwarna abu abu
Caption
Tulisan pada check box
Checked
Jika bernilai true, terdapat tanda centang pada check box
Color
Warna check box
Ctl3D
Jika bernilai true, check box berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada check box
Enabled
Penerimaan event pada check box
Font
Jenis teks dari check box
Height
Tinggi check box
Hint
Keterangan waktu kursor berada pada check box
Left
Posisi check box diukur dari batas kiri form
Name
Nama check box
PopUpMenu
Menu Pop Up untuk check box
ShowHint
Jika bernilai true,hint bisa ditampilkan
State
Bentuk kotak pilihan pada check box
Top
Posisi check box diukur dari batas atas form
Visible
Jika true check box kelihatan , jika false check box tidak
23
Kelihatan Width
Lebar check box
Untuk beberapa contoh event check box yang dipakai pada program aplikasi adalah sebagai berikut :
Event
Waktu Terjadi
OnClick
Check box diklik dengan mouse
OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di check box
2.2.7. Radio Button Sama seperti combo box, list box dan check box, radio button juga berfungsi untuk menampilkan daftar pilihan. Bentuk radio button hampir sama dengan check box. Perbedaannya pada check box anda dapat memilih satu pilihan, sedangkan pada radio button anda hanya dapat memilih satu pilihan saja. Berikut ini beberapa contoh properti dari radio button yang dipakai pada program aplikasi. Properti
Keterangan
Alignment
Posisi Kotak pilihan dengan teks
Caption
Tulisan pada radio button
Checked
Jika bernilai true, terdapat tanda centang pada radio button
Color
Warna radio button
Ctl3D
Jika bernilai true, radio button berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada radio button
Enabled
Penerimaan event pada radio button
Font
Jenis teks dari radio button
Height
Tinggi radio button
Hint
Keterangan waktu kursor berada pada radio button
Left
Posisi radio button diukur dari batas kiri form
Name
Nama radio button
PopUpMenu
Menu Pop Up untuk radio button 24
ShowHint
Jika bernilai true,hint bisa ditampilkan
Top
Posisi radio button diukur dari batas atas form
Visible
Jika true radio button kelihatan , jika false radio button tidak Kelihatan
Width
Lebar radio button
Untuk beberapa contoh event radio button yang dipakai pada program aplikasi adalah sebagai berikut. Event
Waktu Terjadi
OnClick
Radio Button diklik dengan mouse
OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di Radio Button
2.2.8. Group Box Group box berfungsi untuk mengelompokkan kontrol kontrol pada form menjadi satu bagian. Dengan group box, maka tampilan form pada suatu keadaan tertentu akan menjadi lebih teratur. Selain itu salah satu fungsi dari group box adalah pada penggunaan radio button. Pada satu form, radio button yang dapat dipilih hanya satu. Jika pada form terdapat beberapa bagian, maka pada satu bagian tersebut anda dapat memilih satu radio button. Berikut ini beberapa contoh properti dari group box yang sering dipakai pada program aplikasi. Properti
Keterangan
Align
Posisi group box pada form
Caption
Tulisan pada group box
Color
Warna group box
Ctl3D
Jika bernilai true, group box berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada group box
Enabled
Penerimaan event pada group box
Font
Jenis teks dari group box
Height
Tinggi group box
Hint
Keterangan waktu kursor berada pada group box 25
Left
Posisi group box diukur dari batas kiri form
Name
Nama group box
PopUpMenu
Menu Pop Up untuk group box
ShowHint
Jika bernilai true,hint bisa ditampilkan
Top
Posisi group box diukur dari batas atas form
Visible
Jika true group box kelihatan , jika false group box tidak Kelihatan
Width
Lebar group box
2.2.9. Radio Group Radio box memiliki fungsi yang hampir sama dengan group box. Perbedaanya adalah pada group box anda dapat meletakkan berbagai jenis kontrol, tetapi pada radio group anda hanya bisa meletakkan radio button. Pada radio group juga anda dapat langsung membuat radio button. Berikut ini beberapa contoh properti dari group yang sering dipakai pada program aplikasi. Properti
Keterangan
Align
Posisi radio group pada form
Caption
Tulisan pada radio group
Color
Warna radio group
Columns
Jumlah kolom radio group
Ctl3D
Jika bernilai true, radio group berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada radio group
Enabled
Penerimaan event pada radio group
Font
Jenis teks dari radio group
Height
Tinggi radio group
Hint
Keterangan waktu kursor berada pada radio group
Items
Daftar radio button pada radio group
Left
Posisi radio group diukur dari batas kiri form
Name
Nama radio group
PopUpMenu
Menu Pop Up untuk radio group 26
ShowHint
Jika bernilai true,hint bisa ditampilkan
Top
Posisi radio group diukur dari batas atas form
Visible
Jika true radio group kelihatan , jika false radio group tidak Kelihatan
Width
Lebar radio group
2.2.10. Memo Memo merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun menampilkan data. Fungsinya hampir sama dengan edit box, perbedaannya adalah pada edit box teks yang di masukkan dan ditampilkan hanya dalam satu baris saja, sedangkan pada memo dapat ditampilkan lebih dari satu baris. Dengan memo user pengguna program aplikasi dapat mengisi data ke dalam program. Selain itu memo juga dapat digunakan untuk menampilkan data pada user. Berikut ini beberapa contoh properti dari memo yang sering dipakai pada program aplikasi. Properti
Keterangan
Align
Posisi dari memo pada form
Alignment
Posisi teks pada memo
BorderStyle
Bentuk garis tepi Memo
Color
Warna memo
Ctl3D
Jika bernilai true, bentuk memo berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada memo
Enabled
Penerimaan event pada memo
Font
Jenis dan ukuran dari karakter pada memo
Height
Tinggi Memo
Hint
Keterangan waktu kursor berada pada memo
Left
Posisi radio group diukur dari batas kiri form
Lines
Teks pada memo
MaxLenght
Banyaknya karakter maksimum dari memo
Name
Nama memo 27
PopUpMenu
Menu Pop Up untuk memo
ReadOnly
Jika bernilai true, tidak bisa mengisi karakter ke dalam memo
ScrollBars
Jenis Scroll bar yang digunakan pada memo
ShowHint
Jika bernilai true,hint bisa ditampilkan
Top
Posisi memo diukur dari batas atas form
Visible
Jika true memo kelihatan , jika false memo tidak Kelihatan
Width
Lebar memo
Untuk beberapa contoh event memo yang sering dipakai pada program aplikasi adalah sebagai berikut. Event
Waktu Terjadi
OnEnter
Mendapat fokus
OnExit
Memo Kehilangan fokus
OnKeyDown
Sebuah tombol keyboard ditekan dan properti KeyPreview Pada form bernilai false
OnKeyPress
Sebuah tombol keyboard ditekan waktu fokus di memo
OnKeyUp
Tombol yang ditekan dilepas waktu fokus di memo
2.2.11. Scroll Bar Scrollbar adalah kontrol yang biasanya digunakan untuk menggerakkan sesuatu, contohnya menggerakkan tampilan atau menggerakkan nilai. Scrollbar terdapat dua jenis, yaitu vertical scrollbar dan horizontal scrollbar. Perubahan pada horizontal dan vertical scrollbar ditandai dengan berubahnya posisi penunjuk bar pada horizontal dan vertical scrollbar. Pada horizontal dan vertical scroll bar terdapat dua jenis perubahan posisi, yaitu perubahan kecil dan besar. Untuk perubahan kecil diklik pada tombol navigator di kedua ujung horizontal dan vertical scroolbar. Sedangkan untuk perubahan besar diklik pada bar dari horizontal dan vertical scrollbar tersebut. Berikut ini beberapa contoh properti scrollbar tersebut. Berikut ini beberapa contoh properti scrollbar yang dipakai pada program aplikasi.
28
Properti
Keterangan
Align
Posisi dari scrollbar pada form
Ctl3D
Jika bernilai true, bentuk scrollbar berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada scrollbar
Enabled
Penerimaan event pada scrollbar
Height
Tinggi Memo
Hint
Keterangan waktu kursor berada pada scrollbar
Kind
Jenis Scrollbar
LargeChange
Perubahan posisi penunjuk bar pada waktu user mengklik bar
Left
Posisi scrollbar diukur dari batas kiri form
Max
Nilai maksimum dari scrollbar
Min
Banyaknya karakter maksimum dari scrollbar
Name
Nama scrollbar
PopUpMenu
Menu Pop Up untuk scrollbar
Position
Posisi bar pada scrollbar
ShowHint
Jika bernilai true,hint bisa ditampilkan
SmallChange
Perubahan posisi penunjuk bar pada waktu user mengklik Tombol navogator atau tombol panah
Top
Posisi scroll bar diukur dari batas atas form
Visible
Jika true scroll kelihatan , jika false scroll tidak Kelihatan
Width
Lebar scroll
2.2.12. Panel Panel memiliki fungsi yang hampir sama dengan group box. Panel berfungsi untuk memberikan tempat bagi kontrol-kontrol yang lain. Dengan panel kontrol kontrol pada form dapat dikelompokkan menjadi satu. Berikut ono beberapa contoh properti dari panel yang sering dipakai pada program aplikasi. Properti
Keterangan
Align
Posisi dari panel pada form
29
Alignment
Posisi teks pada panel
AutoSize
Jika bernilai true, ukuran panel akan menyesuaikan dengan Kontrol yang ada pada panel.
BorderStyle
Bentuk garis tepi panel
BorderWidht
Lebar garis tepi panel dengan kontrol yang terdapat pada panel
Caption
Teks pada panel
Color
Warna panel
Ctl3D
Jika bernilai true, bentuk panel berbentuk 3 dimensi
Cursor
Bentuk kursor mouse waktu berada pada panel
Enabled
Penerimaan event pada panel
Font
Jenis dan ukuran dari karakter pada panel
Height
Tinggi panel
Hint
Keterangan waktu kursor berada pada panel
Left
Posisi radio group diukur dari batas kiri panel
Name
Nama panel
PopUpMenu
Menu Pop Up untuk panel
ShowHint
Jika bernilai true,hint bisa ditampilkan
Top
Posisi panel diukur dari batas atas form
Visible
Jika true panel kelihatan , jika false panel tidak Kelihatan
Width
Lebar panel
30
Bab III Deklarasi Variabel, Tipe Data dan Operator 3.1 Deklarasi Dalam setiap penulisan bahasa pemograman deklarasi sangat digunakan apabila dalam penulisan program dibutuhkan indentifier atau tanda pengenal. Indentifier pada umumnya di buat oleh progremmmer yang digunakan untuk mewakili nilai dari suatu object. Indentifier yang dikenal dalam Delphi adalah label, konstanta, tipe, fungsi, procedure maupun variabel. 3.1.1. Deklarasi Konstanta Deklarasi konstanta adalah tanda pengenal dalam Delphi yang mempunyai nilai yang sudah tetap. Definisi konstanta diawali dengan kata baku Const diikuti dengan kumpulan indentifier yang diberi sebuah nilai. Contoh
procedure TForm2.etertulisChange (Sender: TObject); const
nill:='30000'; begin end; 3.1.2. Deklarasi Variabel Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang mana nilai tersebut akan terus berubah selama proses berjalan. Definisi variabel diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan. Contoh procedure TForm2.EpraktekKeyPress(Sender: TObject; var Key: Char); var praktek,nil2,nill =real; 31
begin if (key = #13) then begin nill := strtof loat(ehtulis.Text);end; end;
3.2 Tipe Data Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. logika yang dapat kita berikan adalah ketika kita menempatkan tanda pengenal harga hanya mengenal angka, maka ketika kita memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak karena nilai tersebut tidak dikenali oleh tipe data yang diberikan. 3.2.1. Tipe Data Numeric Integer Tipe data integer merupakan tipe data bilangan bulat yang hanya mengenal bilangan decimal. Dimana tipe data Integer tidak mengenal pecahan
Bentuk Umum: Var Nill: integer; Begin Nill:=5000; End; 3.2.2. Tipe Data Real Tipe data numeric real adalah tipe data dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini juga mengenal nilai angka yang mengenal pecahan.
Bentuk Umum : Var Nil2: real; 32
Begin Nil3:=3,14; End;
3.2.3
Tipe Data String Tipe data string merupakan salah satu jens tipe data selain mengenal angak disini tipe data dapat juga mengenla data berupa huruf maupun tanda baca.
Bentuk umum : Var Nama: string; Begin Nama:='Anton'; End; 3.2.4
Tipe Data Char Secara fungsi tipe data char sama dengan tipe data string tetapi dari segi kapsitas ruang diperoleh tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter. Bentuk umum : Var grade: char; Begin grade:='Anton'; End;
3.2.5
Perubahan Tipe Data Perubahan Tipe data dilakukan pada saat kebutuhan akan perhitungan aritmatika yang nilainya diambil dari Edit Box atau pun sebaliknya hasil nilai tersebut akan ditampilkan ke text box. Secara umum suatu nilai di dalam edit box selalu bertipe data String. Berikut ini beberapa perubahan tipe data yang dikenal di Borland Delphi : 1. StrtoInt = digunakan untuk merubah tipe data string ke integer 2. IntToStr = digunakan untuk merubah tipe data Integer ke String 33
3. StrToFloat = digunakan untuk merubah tipe data String ke Real 4. FloatToStr = digunakan untuk merubah tipe data Real ke String 5. StrToCurr = digunakan untuk merubah tipe data String ke Currency 6. CurrToStr = digunakan untuk merubah tipe data Currency ke String 7. StrToDate = digunakan untuk merubah tipe data String ke Date 8. DateToStr = digunakan untuk merubah tipe data Date ke String 9. StrToTime = digunakan untuk merubah tipe data String ke Time 10. TimeToStr = digunakan untuk merubah tipe data Time ke String 11. Booltostr = digunakan untuk merubah tipe data boolean ke string. 12. Strtobool = digunakan untuk merubah tipe data string to boolean
3.3 Operator Operator dipakai untuk memanipulasi dan megolah data. Delphi menyediakan bermacam – macam operator. Setiap operator mempunyai tingkat hierarki, yaitu urutan pelaksanaan jika ada beberapa operator dalam satu proses. Sebagai contoh, jika terdapat ekspresi X+Y*Z, maka akan dilaksanakan terlebih dahulu operasi Y*Z, baru setelah itu, hasil operasi X*Y ditambah X. Hal ini disebabkan operator perkalian ( dengan simbol *) hierarkinya lebih tinggi dari operator penambahan (dengan simbol +). Jika dalam satu ekspresi terdapat beberapa operator dengan tingkat hierarki yang sama, maka pelaksanaannya didahulukan dari paling kiri. Anda dapat menggunakan tanda kurung untuk mendahulukan suatu operasi, mendahului semua tingkat hierarki. Jika terdapat tanda kurung dalam tanda kurung, maka didahulukan yang paling dalam. Sebagai contoh, bila ada ekspresi (X+Y)*Z, maka yang dilaksanakan pertama kali adalah operasi X+Y, kemudian hasilnya baru ditambah dengan Z. Hierarki operator dalam delphi adalah seperti pada tabel berikut : OPERATOR
HIERARKI
^ , @ , not first
Tertinggi
*, / , div , mod , and ,shl , shr , as Kedua 34
+, - , or , xor
Ketiga
= , <> , < , > , <= , >= , in , is
Keempat
3.3.1. Operator Penugasan (Assignment) Operator penugasan (assignment) disimbolkan dengan tanda titik dua diikuti tanda sama dengan dan ditulis berdempetan tanpa spasi. Operator penugasan berfungsi untuk memasukkan suatu data ke dalam suatu variabel. Bentuk penulisannya seperti berikut :
:= <ekspresi>; Contoh : Nama := ‘Budi’ ; Bilangan := 0 ; Harga := 500 ; Banyak := 5 ; Subtotal := banyak * harga ; 3.3.2. Operator Aritmatika Operator aritmatika digunakan untuk melakukan operasi aritmatika. Delphi mempunyai beberapa operator aritmatika, yaitu seperti pada tabel dibawah ini : Operator Operasi
Tipe diproses Tipe hasil
*
Integer
Integer
Real
Real
Integer
Real
Real
Real
/
Perkalian
Pembagian
Div
Hasil bagi pembulatan Integer
Integer
Mod
Sisa Pembagian
Integer
Integer
+
Penambahan
Integer
Integer
Real
Real
Integer
Integer
Real
Real
-
Pengurangan
35
Operator aritmatika diatas disebut juga sebagai operator aritmatika binari. Selain itu, ada juga operator aritmatika unari, yaitu tanda + (plus) sebagai tanda positif dan operator – (minus) sebagai tanda negatif. Operator aritmatika unari dapat dipakai pada tipe data integer maupun real. Hierarki operator unari lebih tinggi dari semua operator binari. Sebagai contoh, perhatikan potongan program berikut ini :
A := -2 * 3 ;
// hasilnya – 6
B := 2 * 3 ;
// hasilnya 6
C := 5 / 2 ;
// hasilnya 2.5
D := 5 div 2 ;
// hasilnya 2
E := 5 mod 2 ;
// hasilnya 1
F := 5 + 1 ;
// hasilnya 7
G := 5 – 2 ;
// hasilnya 3
Untuk operasi perpangkatan , delphi secara tradisi memang tidak menyediakan operator untuk pemangkatan. Sebagai gantinya anda dapat menggunakan rumus matematika :
exp (x * ln (a)) Atau exp ( <pangkat> * ln (< yangDipangkat>)) Perhatikan potongan program berikut ini : A:=2; B := 3 ; C := exp (B * ln (A)) ; // C berisi 8 D := exp (B* ln (5)) ; // D berisi 125
3.3.3. Operator Perbandingan / Relasi Operator relasi atau perbandingan digunakan untuk membandingkan suatu ekspresi atau data dengan ekspresi atau data lain. Hasil penggunaan operator relasi adalah data logika (boolean) benar atau salah. Tentu saja, antara dua ekspresi atau data yang dibandingkan 36
harus mempunyai tipe yang sama. Tabel operator relasi yang disediakan Delphi adalah seperti berikut ini :
Operator Keterangan =
Sama Dengan
<>
Tidak sama dengan
<
Lebih Kecil
>
Lebih besar
<=
Lebih kecil atau sama dengan
>=
Lebih besar atau sama dengan
Beberapa contoh penggunaan operator relasi dapat anda lihat seperti dibawah ini. A:=2>3;
// A berisi False
A:=2+2>3;
// A berisi True
A:=3>2+2;
// A berisi False
A:=3>=3;
// A berisi True
Dari contoh diatas terlihat bahwa operator relasi hierarkinya lebih rendah dari operator aritmatika, sehingga operator aritmatika selalu dijalankan lebih dahulu sebelum operator relasi.
3.3.4. Operator Logika Digunakan untuk mengekspresikan satu atau lebih data atau ekspresi logika (boolean), menghasilkan data logika (boolean) baru. Tabel operator logika dengan hierarki dari atas ke bawah adalah sebagai berikut ini. Operator Keterangan Not
Tidak
And
Dan
Or
Atau
Xor
Exclusive Or
37
a. Operator Logika Not Operator Logika Not dipakai untuk menghasilkan nilai kebalikan dari suatu ekspresi atau data logika. Operator Not mempunyai hierarki paling tinggi di antara operator logika lainnya. Tabel hasil ekspresi logika Not dapat anda lihat seperti pada tabel berikut ini. Ekspresi Hasil Not True
False
Not False
True
Contoh hasil penggunaan operator logika Not dapat anda lihat di bawah ini. Tes : = Not (5 > 4 ) ;
// Tes berisi False
Tes : = Not (5 = 4 ) ;
// Tes berisi True
b. Operator Logika And Operator logika And akan menghasilkan nilai boolean true hanya jika dua buah ekspresi dikiri dan kanan operator anda bernilai true. Tabel hasil ekspresi logika And dapat anda lihat seperti pada tabel dibawah ini. Ekspresi
Hasil
False And False False False And True
False
True And False
False
True And True
True
Contoh hasil penggunaan operator logika And dapat anda lihat seperti berikut ini. Tes : = ( 5 < 4 ) And ( 3 < 2 ) ;
// Tes berisi False
Tes : = ( 5 < 4 ) And ( 3 > 2 ) ;
// Tes berisi False
Tes : = ( 5 > 4 ) And ( 3 < 2 ) ;
// Tes berisi False
Tes : = ( 5 > 4 ) And ( 3 > 2 ) ;
// Tes berisi True
c. Operator Logika Or Operator logika Or akan menghasilkan nilai boolean True jika salah satu dari dua buah ekspresi atau kedua ekspresi di kiri dan kanan operator Or bernilai True. Jadi Operator Or akan menghasilkan nilai False hanya jika kedua ekspresi di kiri dan 38
kanan operator Or semuanya bernilai False. Tabel hasil ekspresi logika Or adalah seperti berikut ini. Ekspresi
Hasil
False Or False False False Or True
True
True Or False
True
True Or True
True
Contoh hasil penggunaan operator logika Or dapat anda lihat seperti berikut ini. Tes : = ( 5 < 4 ) Or ( 3 < 2 ) ;
// Tes berisi False
Tes : = ( 5 < 4 ) Or ( 3 > 2 ) ;
// Tes berisi True
Tes : = ( 5 > 4 ) Or ( 3 < 2 ) ;
// Tes berisi True
Tes : = ( 5 > 4 ) Or ( 3 > 2 ) ;
// Tes berisi True
d. Operator Logika Xor Operator logika Xor akan menghasilkan nilai True jika ekspresi di sebelah kiri Xor berbeda dengan ekspresi di sebelah kanannya. Jadi, operator logika Xor dapat diartikan ”jika beda” akan bernilai True. Tabel hasil ekspresi logika Xor adalah seperti berikut ini. Ekspresi
Hasil
False Xor False False False Xor True
True
True Xor False
True
True Xor True
False
Contoh hasil penggunaan operator logika Xor dapat anda lihat seperti berikut ini. Tes : = ( 5 < 4 ) Xor ( 3 < 2 ) ;
// Tes berisi False
Tes : = ( 5 < 4 ) Xor ( 3 > 2 ) ;
// Tes berisi True
Tes : = ( 5 > 4 ) Xor ( 3 < 2 ) ;
// Tes berisi True
Tes : = ( 5 > 4 ) Xor ( 3 > 2 ) ;
// Tes berisi False
39
Latihan 1. Rancanglah Form dibawah ini didalam Project : Prouts.dpr dengan nama Form : operator1.pas
Desain Properties Object
Keterangan
Name
Edit Text
Nilai 1
Edit1
Edit Text
Nilai 2
Edit2
Edit Text
Hasil
Edit3
Button
+ (Penambahan)
Bttambah
Button
- (Pengurangan)
Btminus
Button
/ (Pembagian)
Btbagi
Button
x (Perkalian)
Btkali
Button
N1 > N2 (Lebih dari)
Btlebih
Button
N1 < N2 (Kurang dari)
Btkurang
Button
N1 = N2 (Sama dengan)
Btsmdgn
Button
N1 <> N2 (Tidak Sama dengan)
Bttdksama
Button
And
Btand
Button
Or
Btor
Button
Xor
Btxor
Button
Exit
Btexit
Button
Clear
Btclear
Listing / Kode Program : 40
unit operator1;
btexit: TButton;
interface
btclear: TButton;
uses
btxor: TButton;
Windows, Messages, SysUtils, Variants,
Classes,
Graphics,
Controls, Forms,
procedure bttambahClick(Sender: TObject);
Dialogs, StdCtrls; type TForm3 = class(TForm) Label1: TLabel;
procedure TObject);
procedure btbagiClick(Sender: TObject); procedure btlebihClick(Sender: TObject); procedure btkurangClick(Sender:
Label2: TLabel; Label3: TLabel; bttambah: TButton; btkali: TButton; btminus: TButton;
btminusClick(Sender:
TObject); procedure
btsmdgnClick(Sender:
TObject); procedure
bttdksamaClick(Sender:
TObject); btbagi: TButton; procedure btandClick(Sender: TObject); Edit1: TEdit; procedure btorClick(Sender: TObject); Edit2: TEdit; procedure btclearClick(Sender: TObject); Edit3: TEdit; procedure btexitClick(Sender: TObject); btlebih: TButton; procedure btxorClick(Sender: TObject); btkurang: TButton; procedure FormCreate(Sender: TObject); btsmdgn: TButton; bttdksama: TButton; btand: TButton; btor: TButton; GroupBox1: TGroupBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; Label4: TLabel; 41
private { Private declarations } public // Variabel bersifat Public, Var ini dapat dikenal di semua procedure n1,n2 : integer; hasil:real ; { Public declarations } end;
var Form3: TForm3;
procedure TForm3.btminusClick(Sender: TObject); begin n1:=strtoint(edit1.text); n2:=strtoint(edit2.text); hasil:=n1-n2 ; edit3.Text:=floattostr(hasil); end;
procedure TForm3.btbagiClick(Sender: TObject);
implementation begin {$R *.dfm} edit3.Text:=floattostr(strtoint(edit1.Text) procedure
/ strtoint(edit2.Text))
TForm3.bttambahClick(Sender: TObject);
end;
// Variabel bersifat local, hanya bisa dikenali di procedure itu sendiri var
procedure TForm3.btlebihClick(Sender: TObject);
nilai1,nilai2:integer; var hsl:real ; n3:boolean; begin begin nilai1:=strtoint(edit1.text); n1:=strtoint(edit1.text); nilai2:=strtoint(edit2.text); n2:=strtoint(edit2.text); hsl:=nilai1+nilai2; n3:=n1>n2; edit3.Text:=floattostr(hsl); edit3.Text:=booltostr(n3); end; end;
42
procedure
n2:=strtoint(edit2.text);
TForm3.btkurangClick(Sender:
n3:=n1<>n2;
TObject);
edit3.Text:=booltostr(n3);
var
end;
n3:boolean; begin
procedure TForm3.btandClick(Sender:
n1:=strtoint(edit1.text);
TObject);
n2:=strtoint(edit2.text);
var
n3:=n1
n3:boolean; begin
end;
n1:=strtoint(edit1.text);
procedure
n2:=strtoint(edit2.text);
TForm3.btsmdgnClick(Sender:
n3:=(n1>n2)AND(n1>5);
TObject); var
edit3.Text:=booltostr(n3); end;
n3:boolean; begin
procedure
n1:=strtoint(edit1.text);
TObject);
n2:=strtoint(edit2.text);
var
n3:=n1=n2; edit3.Text:=booltostr(n3); end;
TForm3.btorClick(Sender:
n3:boolean; begin n1:=strtoint(edit1.text);
procedure
n2:=strtoint(edit2.text);
TForm3.bttdksamaClick(Sender:
n3:=(n1>n2)OR(n1>5);
TObject); var
edit3.Text:=booltostr(n3); end;
n3:boolean; begin n1:=strtoint(edit1.text); 43
procedure TForm3.btclearClick(Sender: TObject); begin edit1.Text:=''; edit2.Text :=''; edit3.Text:=''; end; procedure TForm3.btexitClick(Sender: TObject); begin messagedlg ('Form akan ditutup',mterror,[mbok],0); close; end;
procedure TForm3.btxorClick(Sender: TObject); var n3:boolean; begin n1:=strtoint(edit1.text); n2:=strtoint(edit2.text); n3:=(n1>n2)XOR(n1>5); edit3.Text:=booltostr(n3); end;
end.
44
Catatan : Pada saat melakukan eksekusi dengan menggunakan operator Logika dan perbandingan, Nilai False akan menghasilkan 0 (nol) pada edit text hasil, sedangkan Nilai True akan menghasilkan -1 (Minus satu) pada edit text hasil. 3.3.5. Operator String a. Menggabungkan String menggabungkan string adalah proses merangkai dua karakter atau lebih menjadi satu kalimat atau kata yang baru. Operator string yang dikenal dalam Bahasa Delphi adalah operator dengan simbol '+' (plus).
Contoh Penulisan : Var nama : string[20]; saya : string[15]; namasaya : string[50]; Begin nama := ’Nama Saya adalah =’; saya := ‘Azni’ ; namasaya := nama +’ ‘+saya; ehasil.text := namasaya; End; Contoh Program Hasil yang Diperoleh
Gambar 3.1 Form Penggabungkan String DesainForm
Gambar 3.2 Desain Form Penggabungan String Desain Properties Object
Caption/Text
Name
Label 1
Nama Depan
Label 1
Label 2
Nama Tengah
Label2 45
Label 3
Nama Akhir
Label3
Label 4
Nama Lengkap
Label4
Editl
-
Edepan
Edit2
-
Etengah
Edit3
-
Eakhir
Edit4
-
Egabung
Button 1
Gabung
bgabung
Listing Program
Procedure Tform4.bgabungClick (Sender: Tobject);
Var depan : string[20]; tengah : string[20]; akhir : string[20]; gabung : string[65]; begin depan : = edepan.text ; tengah : = etengah.text ; akhir : = eakhir.text ; gabung : = depan + ‘ ‘ + tengah + ‘ ‘ + akhir ; elengkap.text : = gabung ; end;
b. Menghapus Teks Prosedur standart ini digunakan untuk menghapus atau mengurangi sebagian atau seluruh karakter terhadap string atau teks.
Bentuk umum penulisan => Delete(teks, index, jumlah)
Delete adalah prosedur standart yang digunakan untuk menghapus teks. Teks merupakan kalimat atau string yang akan dihapau, Index menunjukan posisi awal yang akan dihapus. Jumlah menunjukan jumlah karakter yang akan dihapus.
46
Contoh 1. Hasil Setelah Form Dijalankan
Gambar 7.3 Form Hapus Text
2.Design Form
Gambar 7.4 Design Form Hapus Text 3. Desain Properties Object
Caption/Text
Name
Label 1
Nama Anda
Label 1
Label 2
Ketikan urutan mulai penghapusan
Label2
Label 3
Jumlah Karakter yang dihapus
Label3
Label 4
Nama Sesudah dihapus
Label4
Editl
-
Enama
Edit2
-
Eurut
Edit3
-
Ejumlah
Edit4
-
Ehasil
Button 1
OK
bOK
Button2
Close
Bclose
Group Box 1
Rincian Nama Yang Ingin Dihapus
Group box 1
47
4. Listing Program
Procedure Tform5.bokClick (Sender : TObject); Var karakter : string ; pos, jumlah : integer ; jumlah : integer ; begin karakter : = enama.text ; pos : = strtoint (eurut.text) ; jumlah : = strtoint (ejumlah.text) ; Delete ( karakter, pos, jumlah); Ehasil.text : = karakter ; End ; Procedure Tform5.bcloseClick (Sender : TObject); Begin Close; End ;
c. Mencari Panjang teks (length) fungsi ini digunakan untuk menghitung panjang atau jumlah karakter dari suatu teks atau kalimat. Dalam menghitung jumlah karakter dalam suatu teks spasi akan dibaca sebagai satu karakter. Sebagai catatan hasil yang diperoleh dari perhitungan adalah bilangan bulat positif. Bentuk Umum Length (teks) ; Contoh : 1. Hasil setelah form dijalankan
Gambar 3.5 Hasil Form Panjang String
48
2. Design Form
Gambar 3.6 Design Form Panjang String 3. Desain Properties Object
Caption/Text
Name
Label 1
Operasi Standart Length
Label 1
Label 2
Nama Anda
Label2
Label 3
Panjang Karakter dari Nama Anda
Label3
Editl
-
Enama
Edit2
-
Ehasil
Button 1
OK
bOK
Button2
Close
Bclose
4. Listing Program Program untuk mengeksekusi pencarian panjang karakter Procedure Tform6.bokClick(Sender : TObject); Var Nama:string Begin Nama : = enama.text ; Ehasil.text : = inttostr ( length (nama)) ; End;
Procedure Tform6.bcloseClick (Sender : TObject); Begin Close; End ;
d. Mencari Karakter Pada Teks (POS) Fungsi ini digunakan untuk mencari letak atau posisi suatu karakter dari suatu nilai string. Nilai yang dihasilkan adalah berupa byte.
Bentuk Umum : Pos (sustr, string);
49
Contoh 1. Hasil setelah form dijalankan
Gambar 3.7 Hasil Form Pencarian Huruf 2. Desain Form
3. Design Properties
Program untuk eksekusi perintah pencarian Procedure Tform7. bokClick (Sender :Tobject); Var Karakter : string ; Kar : string ; Hasil : integer ; Begin karakter: string; kar : string; 50
hasil :integer ; Begin karakter :=eawal.text ; kar:= ecari.text ; hasil := pos(kar, karakter); ehasil.text := inttostr (hasil); end; Program untuk menutup form Procedure Tform7.bcloseClick(sender:TObject) Begin Close; End; End.
e. Mengkopi String (Copy) Fungsi ini digunakan untuk mencetak ulang string atau karakter sebanyak huruf yang dipilih dengan posisi karakter awal sudah ditentukan.
Bentuk Umum : Copy (teks, index, jumlah);
Penulisan awal diawali dengan perintah copy, dengan diikuti teks yang ditunjukan teks. Awal pengambilan ditunjukkan dengan index, dan jumlah karakter yang akan ditulis ulang ditunjukan dengan perintah jumlah. Contoh : 1. Hasil setelah form dijalankan.
51
2. Design Form
3. Design Properties
Program untuk mengeksekusi program Prosedure TForm6.bokClick(Sender:TObject); Var Karakter : string; Begin Karakter :=eawal.text ; Ehasil.text :=copy(karakter,1,4); Ehasil2.text := copy(karakter,8,4); End;
Program untuk menutup Form Procedure TForm6.bcloseClick (Sender :TObject); Begin Close; End;
f. Konversi Karakter ke Ascii (chr) Fungsi ini digunakan untuk mengkonversi kode Acsii menjad huruf. Bentuk Umum : Chr (Karakter) Contoh : 52
1. Hasil setelah dijalankan
2. Design Form
3. Desain Properties Object
Caption/Text
Name
Label 1
Ketikan angka dari kode ASCII
Label 1
Label 2
Karakter dari kode Ascii tersebut adalah
Label2
Editl
-
eangka
Edit2
-
ehuruf
Button 1
OK
bOK
Groupboxl
Konversi dari Angka ke huruf
Groupboxl
4. Listing Program Procedure TForm7.bokClick (Sender : TObject); Var Angka : integer ; Begin Angka :=strtoint(angka.text); Ehuruf.text := chr(angka); End;
53
Bab IV Percabangan
4.1. Operator Percabangan Percabangan adalah merupakan operator yang digunakan untuk menentukan pilihan atas beberapa pilihan yang ada. Dalam bahasa pemrograman Delphi mengenal dua operator percabangan yaitu Percabangan IF dan Percabangan CASE A. Percabangan IF Merupakan operator percabangan yang digunakan untuk menetukan pilihan atas beberapa kondisi yang merupakan syarat terhadap pilihan yang sudah ditentukan. Ada dua model percabangan if 1. Percabangan untuk kondisi tunggal. Merupakan operator percabangan yang digunakan untuk menentukan sebuah pilihan dengan kondisi tunggal.
Bentuk Umum: IF Syarat Then hasil ; Contoh If Nilai >80 then keterangan =’lulus’; Atau If strtoint(enilai.text) > 80 then eketerangan.text = ‘lulus’; 2. Percabangan untuk kondisi majemuk. Merupakan operator percabangan yangdigunakan untuk menetukan pilihan dengan kondisi yang dipenuhi lebih dari satu.
Bentuk Umum If Syarat 1 then Hasil1 Else If Syarat2 then Hasil2 Else Hasil ; // Titik Koma berada di Statement terakhir
Atau If KondisiA then Begin Hasil_A1;
// setiap stament diakhiri titik koma ( ; )
Hasil_A2; End 54
Else if KondisiB Then Begin Hasil_B1; Hasil_B2; End Else Begin Hasil_C1; Hasil_C2; End ;
// End terakhir ditambahkan titik koma ( ; )
Contoh : If nilai > 80 then Grade= ‘A’ Else if nilai >70 then Grade=’B’ Else Grade= ‘C’ ;
3.
Percabangan Nested If ( If Bersarang ) Nested If adalah jika ada perintah if didalam perintah if yang lain. Kondisi ini dibutuhkan ketika kriteria yang dimasukkan lebih dari 2. Bentuk Umum : if (kondisi1> then if (kondisi2) then Else Else Contoh : if ComboBox1.Text=’D1′ then if edit3.Text=’Training’ then edit4.Text:=’1500000′ else if edit3.Text=’Kontrak’ then edit4.Text:=’2750000′ else edit4.Text:=’3500000′
55
B. Percabangan CASE Case of adalah merupakan metode lain dari sebuah percabangan, berfungsi sama seperti fungsi if yaitu untuk melakukan seleksi atas beberapa pilihan dengan kondisi sebagai syarat yang harus terpenuhi. Secara fungsi case dan if tidak ada perbeaan tetapi untuk penulisan fungsi case lebih mudah diterapkan untuk pilihan atau kondisi lebih dari satu.
Bentuk Umum fingsi Case Of Case of : hasil 1 ; : hasil 2 ; : hasil 3 ; …………………......... Else Hasil ke n ; End;
Contoh :
Case Bilangan of 1: showmessage (‘Angka 1’) ; 2: showmessage (‘Angka 2’) ; 3: showmessage (‘Angka 3’) End;
4.2. Contoh Latihan A. Hasil yang diperoleh
56
B. Design Form
C. Desain Properties Object
Name
Caption
Label 1
Label 1
Nama Pegawai
Label 2
Label2
Jabatan
Label 3
Label3
Gaji Pokok
Label 4
Label4
Tunjangan Status
Label5
Label5
Gaji Bersih
GroupBox
GroupBoxl
Status
RadioButtonl
Rtetap
Tetap
RadioButton2
Rhonorer
Honorer
Edit1
Enama
-
Edit2
Epokok
-
Edit3
Etunjangan
-
Edit4
Ebersih
-
Combo Box
Cjabatan
-
Button 1
Btotal
Total Gaji
Button 2
Blagi
Isi Data Lagi
Button 3
Bclose
Close
D. Ketentuan perhitungan gaji Nama Pegawai diinput sendiri. Isi dari Combo Jabatan adalah ’Direktur’ , ’Manager’ , ’Karyawan’. Ketentuan Gaji pokok diambil dari Jabatan sebagai berikut :
Jabatan
Gaji Pokok
Direktur
5000000
Manager
2000000
Karyawan
1000000
Tunjangan Status diperoleh dari jenis status : Jika Status Karyawan ‘Tetap’ maka Tunjangan 30% dari Gaji Pokok Jika Status Karyawan ‘Honorer’ maka Tunjangan 10% dari Gaji Pokok Button Hitung untuk menghitung nilai Gaji Bersih = Gaji Pokok + Tunjangan 57
Button Isi Data Lagi maka seluruh edit text kosong. E. Listing Program Memberikan pilihan pada combo box sesuai dengan pilihan pada jabatan Dengan menggunakan Object Properties : Langkah-langkahnya : 1. Aktifkan combo box yang akan dipilih. 2. Pada properties pilih dan klik item, lalu klik command (...)
3. Pada Jendela String List Editor, seperti terlihat pada jendela berikut.
4. Ketikan kata sebagai kata pilihan pada jendela seperti contoh tersebut diatas. 5. Setelah selesai klik OK 6. Melalui jendela code editor Double click pada form, sebarang tempat dan ketikan program berikut ini.
procedure TForml.FormCreate(Sender: TObject);
begin cjabatan.Items.Add('Direktur'); cjabatan.Items. Add(' Manager'); cjabatan.Items.Add(' Karyawan'); end;
Program Untuk Mencari gaji pokok 1. Aktifkan combo box untuk jabatan 2. Pada pada jendela properties pilih event 3. pilih dan aktifkan onclick, Seperti yang terlihat seperti gambar berikut ini
4. Double click pada combo onclick 5. Ketikan program berikut ini
58
procedure Tform1.cjabatanClick(Sender: TObject); begin if cjabatan.Text = 'Direktur' then epokok.Text := '5000000' else if cjabatan.Text = 'Manager' then epokok.Text := '2000000' else if cjabatan.Text = 'Karyawan' then epokok.Text := '1000000' else epokok.Text := '0' ; end;
Program menghitung tunjangan karyawan tetap Double click pada option tetap dan ketikan program berikut ini procedure TForm3.etetapClick(Sender: TObject);
begin if rtetap.Checked = true then a := strtof loat(epokok.Text); hasil :=a*0.3; etunjangan.Text := f loattostr(hasil) end;
Program menghitung tunjangan karayawan Honorer Double click pada option honorer dan ketikan program berikut ini : procedure TForm3.rhonorerClick(Sender: TObject); begin if rhonorer.Checked = true then a := strtof loat(epokok.Text); hasil :=a*0.1; etunjangan.Text := f loattostr(hasil) end;
Program menghitung gaji bersih Double click pada command total gaji, dan ketikan program berikut ini : procedure TForm3.btotalClick(Sender: TObject); begin a := strtof loat(epokok.Text); b := strtof loat(etunjangan.Text); c := a+b; ebersih.Text := f loattostr(c); end;
59
Program Bersih Double click pada Isi Data Lagi, dan ketikan program berikut ini procedure TForm3.blagiClick(Sender: TObject);
begin cjabatan.Text := ' Jabatan'; enama.Text := ‘ ‘; ebersih.Text := '0'; etunjangan.Text := '0'; epokok.Text := '0'; etetap.Checked := false; rhonorer.Checked := false; end;
Program Close dengan pesan, seperti tampilan sebagai berikut procedure TForm3.bcloseClick(Sender: TObject); begin if (application.MessageBoxC Anda Yakin akan keluar' ,'Informasi' , MB_YESNO)= IDYES)then close; end;
4.3. Latihan ( Program Biaya Rumah Sakit) Buatlah program untuk mencari biaya pemeriksaan dokter dan biaya obat pada suatu Rumah sakit. Tampilan yang dinginkan adalah sebagai berikut :
Ketentuan Soal : Gunakan perintah IF, untuk mencari Nama dokter, Spesialis dan Biaya ketika Kode Dokter dipilih (klik) 60
Kode
Biaya Periksa
Nama Dokter
Spesialis
DRD01
dr Oka
Penyakit Dalam
2000000
DRJ02
dr Yondra
Gangguan Jiwa
150000
DRM03
dr Wulan
Mata
1000000
Dokter
Gunakan Perintah IF , untuk mencari nama obat dan harga obat ketika Kode Obat diinput lalu diEnter. Kode Obat
Nama Obat
Harga Obat
B001
Paracetamol
Rp. 10.000
B002
Paratusin
Rp. 12.000
B003
Amoxilin
Rp. 15.000
Total bayar didapat dari harga Obat + harga Dokter. Uang bayar diinput, ketika dienter maka Uang Kembali keluar. Tombol bersih untuk membersihkan seluruh objek. Tombol Keluar untuk keluar dari form.
61
Bab V Perulangan
Merupakan kontrol program yang digunakan untuk suatu proses yang akan berjalan terus menerus. Kondisi perulangan merupakan proses berjalannya program secara terus menerus dan akan berhenti ketika proses mendapatkan kondisi yang sudah ditentukan. Didalam Delphi megenal 3 jenis perulangan : A. Perulangan For – To – Do Perulangan dengan statement for adalah perulangan yang digunakan untuk melakukan suatu proses dalam sebuah blik program. Proses perulangan For – To – Do dimulai dengan nilai terkecil ke besar.
Bentuk Umum : For variabel := nilai_awal to nilai_akhir do Statement ;
Catatan : semua variabel yang berhubungan dengan perulangan harus mempunyai tipe data sama Contoh : Var I: integer; Begin For i := 1 to 5 do Edit1.seltext := inttostr(i) ; End;
Hasil : Bila program tersebut dijalankan maka nilai I akan ditampilkan pada edit1 dengan hasil sebagai berikut = 1 2 3 4 5
B. Perulangan For – DownTo – Do. Perulangan For – DownTo – Do adalah yang menghitung suatu proses dengan nilai awal besar dan nilai akhirnya lebih kecil, maka variabel sebagai control program yang diperoleh adalah dari besar ke kecil.
Bentuk Umum : For variabel := nilai_awal Downto nilai_akhir do Pernyataan ;
62
Contoh : var i : integer; begin for i := 5 Downto 1 do edit2.SelText := inttostr(i); end;
Hasil : Bila program tersebut dijalankan maka nilai I akan ditampilkan pada edit2 dengan hasil sebagai berikut = 5 4 3 2 1
C. Perulangan While Do Perulangan While Do adalah statement perulangan akan terus melakukan suatu proses selama kondisi/syarat yang ditentukan bernilai benar.
Bentuk Umum : While Kondisi Do Pernyataan ; Contoh : i : integer; begin i := 0; while i < 5 do begin edit3.SelText := inttostr(i); i := i + 1; end; end;
D. Perulangan Repeat Until Perulangan repeat until digunakan untuk mengulang suatu kondisi sampai (until ) kondisi bernilai salah
Bentuk Umum : Repat Pernyataan Until Kondisi_logika
E. Latihan Perulangan 1 Buatlah Latihan perulangan dibawah ini : 1. Design Form
63
2. Coding
procedure TForm1.for2doClick(Sender: TObject); var i:integer; begin for i := 1 to 5 do edit1.SelText := inttostr(i); end;
procedure TForm1.fordowntoClick(Sender: TObject); var a:integer; begin for a:=5 downto 1 do edit2.SelText:=inttostr(a) end;
procedure TForm1.whiledoClick(Sender: TObject); var i : integer; begin i := 0; while i < 5 do begin edit3.SelText := inttostr(i); i := i + 1; end; end;
64
procedure TForm1.repetClick(Sender: TObject); var i : integer; begin i := 1; repeat i := i + 2; edit4.SelText := inttostr(i); until i = 15; end;
procedure TForm1.BersihClick(Sender: TObject); begin edit1.Text :=''; edit2.Text :=''; edit3.Text :=''; edit4.Text :=''; end;
end.
F. Latihan Perulangan 2 Buat lahLatihan perulangan dibawah ini : 1. Design Form
2. Ketentuan logika Program Pada saat form dijalankan maka Tanggal akan keluar secara otomatis No Faktur dan Total item yang dibeli diinput sendiri 65
Tombol OK diklik maka akan keluar kotak pesan (Input box) untuk menginput nama barang dan harga barang yang dibeli. Begitu seterusnya sampai kondisi dari total item terpenuhi. Total Penjualan diperoleh dari penjumlahan harga barang yang dibeli. Tombol Isi data lagi diberikan untuk mengulang pembelian. Close untuk menutup Form
3. Properties Object
Name
Caption
Groupbox1 Groupbox1
Daftar Penjualan
Groupbox2 Groupbox2
Data Barang yang dijual
Groupbox3 Groupbox3
Daftar Harga Barang
Edit1
Etgl
Edit2
Efaktur
Edit3
Eitem
Edit4
Etotal
Listbox1
Lnama
Listbox2
Lharga
Bitbtn1
Blagi
&ISI DATA LAGI
Keterangan
Glyhp :
Bitbtn2
Bclose
&CLOSE
Glyhp :
Button1
Bok
&OK
4. Coding procedure TForm7.FormCreate(Sender: TObject); begin DateSeparator := '-'; ShortDateFormat := 'mm/dd/yyyy'; etgl.Text := 'Hari ini ' + DateToStr(Date); end;
procedure TForm7.blagiClick(Sender: TObject); begin eitem.Text :=''; efaktur.Text := ''; lnama.Clear; lharga.Clear; etotal.Text :=''; end; procedure TForm7.bokClick(Sender: TObject); var inputnama : string; 66
inputharga : string; i : integer; j : integer; harga : real; begin harga := 0; j := 0; j:= strtoint(eitem.Text); if j <= 0 then begin showmessage('Data Tidak boleh lebih kecil dari Nol'); exit; end else begin for i := 1 to j do begin inputnama := inputbox('INput','Ketikan Nama Barang',''); inputharga := inputbox('INput','Ketikan Harga Barang',''); lnama.Items.Add(inputnama) ; lharga.Items.Add(inputharga); harga := harga + strtofloat(inputharga); end; end; etotal.Text := floattostr(harga); end;
procedure TForm7.bcloseClick(Sender: TObject); begin close; end;
procedure TForm7.FormActivate(Sender: TObject); begin bersih; end;
end.
67
G. Latihan Tugas 1. Hasil yang diinginkan :
2. Ketentuan soal : Batas Awal dan Batas akhir diberikan untuk mengetahui nilai awal dan akhir derajat celcius yang ingin di hasilkan Penambahan diberikan untuk memberikan penambahan dari nilai awal untuk mencapai nilai akhir. Close adalah untuk keluar program Rumus mencari Fahrenheit adalah = (1,8 * Celcius) + 32.
68
Bab VI ARRAY 6.1 Pengertian Array Array (larik) merupakan tipe data terstruktur dimana didalanya terdiri dari komponen – komponen yang mempunyai tipe data yang sama. Didalam satu array jumlah komponen banyaknya adalah tetap. Didalam suatu larik atau array setiap komponen ditunjukkan oleh suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya. Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberika initial tambahan untuk setiap nama.
6.2 Deklarasi Array Didalam penulisan bahasa pemrograman setiap penggunaan array harus dideklarasikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[ ]” ,diikuti dengan kata cadangan of dan tipe data yang dibutuhkan .
Bentuk Umum Penulisan : Tanda_pengenal : array [Type index…] of tipe data ;
Contoh : Var A : array [1..4] of integer ; B : array [1..5] of string ; C : array [1..10] of real ;
Keterangan : A,B,C : merupakan tanda pengenal / nam variabel dari array . [ 1..4] : merupakan tipe index dari array, yang menunjukkan banyaknya data yang mampu Disimpan. Integer : Menunjukkan bahwa data yang diinput berupa beilangan bulat
6.3
Alokasi Penggunaan Array A. Array Static ( static Array). Array static adalah model pendeklarasain array dimana tipe data yang digunakan mempunyainilai yang tetap. Nilai yang digunakan untuk menetukan jangkauan pada umumnya bernilai integer. Array static juga bisa disebut array dengan deklarasi tipe indeks subrange integer.
69
Bentuk Umum : Array [indexType, indexTypeN) of baseType
Keterangan = index type menunjukkan tipe data ordinal yang menunjukkan batasan atau elemen maksimal terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh : Var Arrayku : array [1..5] of char
B. Array Dinamis (Dynamic Arrays) Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dinamic array jenis ditandai oleh konstruksi (menyangkut) format.
Bentuk Umum : Array of baseType
Contoh : Var Nilai : array of real ;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang tetap. Tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan array didalam suatu memori, caranya adalah dengan memanfaatkan fungsi dari perinta “ sellength “
sellength (nilai ,20 );
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau cakupan 20 untuk tipe data real, dengan index dimuali dari 0 sampai dengan 20.
6.4
Latihan Array 1 C. Hasil ketika Form dijalankan
70
D. Design Properties Object
Caption/Text
Name
Label 1
Tanggal
Label 1
Label 2
Bulan
Label2
Label 3
Tahun
Label3
Label 4
Hari Pada Tanggal tersebut Adalah
Label4
GroupBoxl
Entry Tanggal
Groupboxl
Editl
-
Etgl
Edit2
-
Ebln
Edit3
-
Etahun
Edit4
-
Ehari
Command 1
OK
bok
E. Coding
procedure TForm1.bhariClick(Sender: TObject); type x = string[7]; const faktorbln : array[1..12] of byte = (0,3,3,6,1,4,6,2,5,0,3,5); hari : array[0..6] of x = (' Minggu ', ‘ Senin ', ' Selasa ', ' Rabu ', ' Kamis ', ‘ Jumat ',' Sabtu '); var hr : string; nama : string[255]; jl,j2 , j3, j4 : integer; tanggal,bulan,tahun : integer; begin tanggal := strtoint(etgl.Text); bulan := strtoint(ebln.Text); tahun := strtoint(ethn.Text); if tahun > 1900 then tahun := tahun - 1900; jl := trunc(tahun * 365.25); j2 := jl + faktorbln[bulan]; if (tahun/4 = int(tahun/4)) and (bulan < 3) then j2 := j2-l; j3 := j2 + tanggal; j4 := trunc(frac(j3/7) * 10); hr := hari[j4]; ehari.Text := hr; end;
71
6.5
Latihan Array 2 F. Desain Form
G. Coding bclose: TBitBtn;
unit latarray2;
Label7: TLabel; procedure
interface
FormCreate(Sender:
TObject); procedure
uses Windows,
Messages,
SysUtils,
Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
FormActivate(Sender:
TObject); procedure
ListBox1Click(Sender:
TObject); procedure
bnewClick(Sender:
TObject); type Tform8 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel;
procedure ejumlahKeyPress(Sender: TObject; var Key: Char); procedure enomorKeyPress(Sender: TObject; var Key: Char); procedure
Label4: TLabel;
TObject);
Label5: TLabel;
private
Label6: TLabel;
bcloseClick(Sender:
{ Private declarations }
ListBox1: TListBox;
Public
enomor: TEdit;
Procedure bersih;
emakanan: TEdit; eharga: TEdit;
{ Public declarations } end;
ejumlah: TEdit; etotalharga: TEdit; bnew: TBitBtn;
72
var Form8: TForm8;
procedure
menumakanan : array[1..10] of string;
TForm8.ListBox1Click(Sender:
implementation
TObject); begin
{$R *.dfm}
emakanan.Text:=listbox1.Items[listbox1.I temindex];
Procedure TForm8.bersih;
case listbox1.ItemIndex of
begin
0: eharga.text:= '7000';
enomor.Clear;
1: eharga.text:= '5000';
emakanan.Clear;
2: eharga.Text:= '12000';
eharga.Clear;
3: eharga.Text:= '4500';
ejumlah.Clear;
4: eharga.Text:= '7500';
etotalharga.Clear;
5: eharga.Text:= '9000';
end;
6: eharga.text:= '25000'; end;
procedure
ejumlah.SetFocus;
TForm8.FormCreate(Sender:
end;
TObject); begin
procedure TForm8.bnewClick(Sender:
menumakanan[1]:='Nasi Goreng';
TObject);
menumakanan[2]:='Bakso';
begin
menumakanan[3]:='Spagheti';
bersih;
menumakanan[4]:='Mie Ayam';
enomor.SetFocus;
menumakanan[5]:='Sate Ayam';
end;
menumakanan[6]:='Sate Kambing'; menumakanan[7]:='Steak';
procedure
bersih;
TForm8.ejumlahKeyPress(Sender:
end;
TObject; var Key: Char); var harga,jumlah,total:currency;
procedure
begin
TForm8.FormActivate(Sender:
if key= #13 then
TObject);
begin
var i :integer;
etotalharga.Font.Size:=14;
begin
etotalharga.Font.Color:=clblue;
enomor.SetFocus;
harga := strtocurr(eharga.text);
emakanan.Enabled:=false;
jumlah := strtocurr(ejumlah.Text);
eharga.Enabled:=false;
total:=harga*jumlah;
for i:= 1 to 10 do
etotalharga.Text:=currtostr(total); end;
istbox1.Items.Append(menumakanan[i]);
end;
end;
73
procedure TForm8.enomorKeyPress(Sender: TObject; var Key: Char); begin if key = #13 then listbox1.SetFocus; end;
procedure TForm8.bcloseClick(Sender: TObject); begin if application.MessageBox('Anda Yakin akan keluar','Informasi',mb_yesno)=idyes then close; end;
end.
74
Bab VII Prosedur Prosedur adalah suatu program terpisah dan berdiri dalam suatu blok program dan berfungsi sebagai sebuah sub program (program bagian). Penulisan prosedur diawali dengan kata prosedur pada bagian Deklarasi program dan cukup menuliskan nama prosedur yang dibuat pada bagian Implementasi.
Alasan penggunaan prosedur : 1. digunakan untuk penggalan program yang akan digunakan secara berulang – ulang dalam suatu proses program. 2. digunakan untuk memecah – mecah program menjadi sebuah modul program, sehingga listing program menjadi lebih sederhana.
Syarat penulisan nama prosedure 1. Harus diawali dengan karakter 2. untuk nama prosedur dengan menggunakan dua kata atau lebih penulisannya tidak boleh menggunakan spasi, harus digabung atau dihubungkan dengan underscore ( _ ) 3. tidak mengenal tanda baca.
Contoh
a. Pendeklarasian Prosedur Penulisan pendeklarian sebuah prosedur dalam Delphi ditempatkan setelah kata public agar dapat dikenali oleh semua object yang ada dalam proses program tersebut. Penulisannya diawali dengan kata Procedure diikuti nama procedure.
Public Procedure bersih;
b. Penulisan prosedur Penulisan pogram prosedur terdapat dalam bagian implementation,
Procedure TForml.Bersih; Begin Enama.text := "; Ealamat.text := "; Ekota := "; End;
75
c. Pemanggilan Prosedur Pemanggilan prosedur terdapat dalam bagian implementation, pada umumnya pemanggilan prosedur terdapat dalam suatu ruang lingkup object yang mempunyai sebuah event. Cara pemenggilannya cukup hanya dituliskan nama prosedurnya saja.
Procedure.TForml.buttonlclick(sender: Tobject); Begin Bersih; End;
atau ketika program prosedur digunakan pada object yang lain untuk memanggil program yang sama kita hanya cukup menuliskan nama prosedurnya tanpa dibutuhkan pendeklarasian prosedur baru.
Procedure TForml.enamakeypress(sender: Tobject; var key.char); Begin If key = #13 then Bersih; End;
76
Bab VIII Fungsi
8.1 Pengertian Fungsi. Pengertian secara umum mengenai fungsi adalah merupakan sebuah penggalan program yang terpisah dari program utama dan berfungsi sebagai sebuah program bagian dari program utama. Penulisan fungsi diawali dengan kata cadangan Function dan dideklarasikan dalam bagian dklarasi fungsi. Dan penulisan program fungsi harus diikuti dengan tipe datannya.
Bentuk Umum penulisan Fungsi Function : Function indentifier (daftar_paramaeter) : type;
Contoh : Function hitung (var a,b :real) : real ;
Penulisan blok fungsi diawali dengan kata cadangan begin dan diakhiri dengan end ;
8.2 Fungsi Tunggal. Fungsi tunggal merupakan suatu fungsi dimana proses pemanggilan dirinya sendiri tanpa melalui fungsi yang lain atau fungsi yang tidak terdapat daalm fungsi yang lain. Contoh : A. Hasil yang diinginkan
B. Coding
function hitung(var p,l,t:integer):integer; begin hitung:=p*l*t; end;
77
procedure TForm1.BhitungClick(Sender: TObject); var pjg,lbr,tgi,luas:integer; begin pjg:=strtoint(epajang.Text); lbr:=strtoint(elebar.Text); tgi:=strtoint(etinggi.Text); luas:=hitung(pjg,lbr,tgi); eluas.Text:=inttostr(luas); end;
procedure TForm1.BhapusClick(Sender: TObject); begin epanjang.Text :='0'; elebar.Text :='0'; etinggi.Text :='0'; eluas.Text :='0'; epanjang.SetFocus; end; Didalam program utama tidak ditempatkan rumus untuk menghitung penjumlahan tetapi ketika dilakukan eksekusi terhadap program dan kita melakukan input panjang, lebar dan tinggi dan ketika di klik Hitung maka akan ditampilkan hasil yang diinginkan. Hasil itu diperoleh dari pengiriman nilai dari teks ke nilai pada variabel utama. Selanjutnya dikirim secara berurut pada subprogram Fungsi Hitung (p , l , t).untuk mendapatkan hasil perhitungan luas.
8.3 Fungsi untuk memanggil fungsi yang lain. Merupakan pembuatan program fungsi yang digunakan untuk memanggil program fungsi yang lain didalam satu listing program. A. Hasil yang diinginkan
78
B. Design Form
C. Design Properties Object
Caption/Text
Name
Label 1
Nama Peminjam
Label 1
Label 2
Jumlah Uang Pinjam
Label2
Label 3
Tingkat Bunga (dalarn %)
Label3
Label 4
Lama Pinjam
Label4
Label5
Besarnya
Uang
Yang
Harus
Label5
Dikembalikan Label6
Cicilan Uang Setiap Bulan
Label6
GroupBoxl
Rincian Nama Anggota
Groupboxl
Editl
-
Epeminjam
Edit2
-
Epinjam
Edit3
-
Ebunga
Edit4
-
Elama
Edit5
-
Ekembalian
Edit6
-
Ecicil
Button 1
Total
Btotal
Button2
Bersih
B bersih
Button3
Close
bclose
D. Coding Fungsi Perhitungan Bunga Function pangkat (x,y :real) :real; begin pangkat := exp(ln (x) *y) ; end;
Function bunga ( f , g , h :real) :real; begin bunga := f * pangkat ((1 + g/100),h) ; end;
79
Program Total Procedure TForm1.btotalClick (sender: TObject) ; Var a,b,c,d,e : real begin a:= strtofloat (ejumlah.text); b:= strtofloat (ebunga.text); c:= strtofloat (elama.text); d:= bunga (a,b,c); ekembalian.text :=floattostr(d) ekembalian.text := formatfloat (‘#.###,0’,d); e := d/c ecicil.text := floattostr(e); ecicil.text :=formatfloat (‘#.###,0’,e); end; Program Bersih Procedure Tform1.bbersihClick (Sender :TObject); Begin Ejumlah.text := ‘ ‘ ; Elama. Text := ‘ ‘ ; Epeminjam.text := ‘ ‘ ; Ebunga.text := ‘ ‘; Ekembalian.text := ‘ ‘ ; Ecicil.text := ‘ ‘; End ; Program Menutup Form Procedure Tform1.bcloseClick(Sener : TObject); Begin Close; End;
80
Bab IX Penggunaan Database Desktop
9.1 Pengertian Data Base Dekstop Biasanya , jika kita ingin membuat suatu program aplikasi untuk manajemen database, kita memerlukan file database yang akan diproses. File database ini dibuat satu kali saja dan tidak perlu langsung diisi recordnya (dibuat struktur databasenya saja). Selanjutnya file database tersebut diproses lewat program. Untuk membuat file database, anda dapat menggunakan program database desktop. Database desktop merupakan suatu program ”Add Ins”, yaitu program terpisah yang ”ditempelkan” dalam Delphi, sehingga bisa dipakai sebagai bagian dari program Delphi. Database Desktop akan kita pelajari secara terbatas, terutama untuk membuat dan mengedit struktur database. Data Base Dekstop adalah merupakan sebuah system aplikasi database yang sudah disertakan pada saat penginstalan Delphi. Komponen Data Base Dekstop yang merupakan bawaan Delphi meliputi = Paradox, dBse, MsSQL, Oracle, Maccess, Excel dan Lain – lain.
9.2 Langkah – langkah pembuatan Database Desktop. Ada dua cara mengaktifkan database Desktop yaitu : Melalui Icon Start Klik start | Pilih programs | Pilih Borland Delphi | Klik Data Base Dekstop Melalui IDE Delphi Pilih dan klik Menu Tools | pilih dan klik Database Dekstop
1. Membuat Alias Manager Fungsinya digunakan untuk menggantikan fungsi path ketika tabel yang dibuat akan dipanggil pada jendela program. Contoh =
Tanpa Alias Ketika kita akan mengaktifkan tabel yang disimpan di C didalam Folder Karyawan dengan nama tabel_karyawan, maka kita kita harus menuliskan program sebagai
81
berikut : C:\Karyawan\tabel_karyawan.db. (itu bisa semakin panjang jika folder penyimpanan data semakin bertingkat)
Dengan Alias Pemanggilan program dengan alias kita tinggal panggil nama Alias baru kita tuliskan nama tabel. Dengan alias tidak mengenal penggunaan folder yang bertumpuk, karena Alias ditempatkan pada system Sistem Operasi
Langkah - langkahnya 1. Dari jendela Data base desktop pilih tools 2. pilih dan klik alias manager, perhatikan tampilan jendela Alias manager
3. Pada Jendela Alias Manger pilih dan klik New 4. Ketikan nama alias pada database alias, misal karyawan_nimmasing2 (cth: karyawan_12038381) 5. Pada Database Type pilih Standard 6. Pada jendela path ketikan path tempat penyimpanan field tabel atau klik browse untuk pencarian secara otomatis. 7. Klik OK Catatan = dalam pembuatan nama alias cukup dibuat satu kali untuk satu project program, walaupun ada penambahan tabel setelah pembuatan Alias karena fungsi Alias sama seperti fungsi dari database.
2. Membuat Tabel Setelah Database Dekstop diaktifkan, langkah berikut untuk membuat tabel = 1. Klik Menu File | New | table 2. Perhatikan tampilan jendela create table 3. Dari Jendela create table pilih dan klik pilihan table pada table type = Paradox 4. Klik Ok Penjelasan Untuk Struktur tabel :
82
Field Name
= digunakan untuk menuliskan nama field
Syarat Penulisan Nama Field Unik dan mudah diingat Diawali dengan Karakter Tidak diperbolehkan penulisan dengan tanda baca (! , . ? / + & % # @) Untuk field dengan dua kata atau lebih dihubungkan dengan Undecsare ( _ ) Type
= Digunakan untuk menentukan tipe data pada Field
Type Data yang Dikenal Pada Paradox adalah Alpha
= tipe data yang menampung semua karakter baik berupa huruf, angka maupun tanda baca.
Number
= tipe data yang menampung angka (numeric), jangkauannya mempunyai range untuk bilangan negative dan bilangan positif, (-10307 sampai dengan 10308). Dengan digit maksimal adalah 15 digit.
Money
= Tipe data yang hanya untuk angka. Sama seperti dengan Tipe Data Number hanya berbeda pada jangkauan. Pada tipe data number tidak mengenal dedsimal, tipe data money mengenal adanya decimal dan format mata uang.
Short
= tipe data angka yang hanya mempunyai jangkauan -32,767 to 32,767
Long Integer
= Sama seperti tipe data integer dengan jangkauan lebih luas (-2147483648 to 2147483647 )
Date
= Tipe Data untuk tanggal (1 Januari 9999 BC to 31 Desember 9999 AD).
Time
= Tipe Data yang digunakan untuk setup waktu.
Memo
= Tipe Data untuk semua unit karakter dengan jangkauan 1 sampai dengan 240 karakter.
Graphic
= Tipe Data untuk gambar. (..BMP, .PCX, .TIF, .GIF, and .EPS file formats).
Logical
Size
= Tipe data yang hanya mengenal benar atau salah (Yes or No).
= Digunakan untuk menentukan size terhadapa suatu field
Catatan : Size yang kompatibel untuk diganti hanya tipe data Alpha dan memo. 83
Key
= Digunakan untuk menentukan kunci utama (primary key)
Catatan = untuk memberikan primary key cukup ditekan space bar atau double klik pada field yang akan dibuat sebagai key ( ditandai dengan *) Misal = Buatlah Struktur tabel untuk tabel_karyawan seperti berikut ini
Mengisi Data Pada Tabel Langkah – langkah Pengisian data pada tabel Aktifkan database Dekstop | buka tabel_karyawan Pada tampilan data pilih dan klik edit Data
Isi Data Sebagai Berikut
Membuka Tabel yang sudah dibuat Buka Database Desktop Klik File | Open | table | Pilih nama aliasnya | Pilih nama tabelnya | Open
84
Bab X Kontrol Data Set dan Navigator
Kontrol Dataset merupakan control yang diberikan kepada tabel dalam suatu database. Hal ini meliputi bagaimana data terhubung dengan tabel dari suatu database. Setelah terhubung bagaimana proses menggerakkan record , baik itu keawal record, ke akhir record, ke record sesudah maupuin ke record sebelumnya.
10.1 Komponen Tabel A. Borland Database Engine (BDE) Kompenen Borland Database Engine merupakan media penghubung antara database dengan aplikasi program. Pada awalnya BDE digunakan untuk paradox. Komponen BDE mendukung akses database yang merupakan bawaan dari delphi walaupun tidak menutup kemungkinan bisa juga digunakan untuk pengaksesan database yang bersifat client/server. Salah satu kelebihan BDE adalah integrasi yang sudah sangat baik dengan Delphi. Sisi lain penggunaan BDE hanya maksimal untuk pemrograman yang bersifat standlone.
Bentuk Kompenen BDE pada Delphi :
B. ActiveX Data Object (ADO) ADO merupakan salah satu teknologi akses database tingkat tinggi. Kelebihan antar muka ADO adalah merupakan teknologi akses indevenden terhadap setiap aplikasi program. ADO terdapat dalam tab ADO pada Component Pallete.
85
10.2 Latihan Database ( STUDI KASUS FORM KARYAWAN ) Buat form dibawah ini
KOMPONEN
KETERANGAN
DELPHI
Komponen table terdapat dalam tab BDE Databasename= karyawan_12038381 Table name
= tabel_karyawan
Active
= true
Komponen Data Source terdapat dalam tab Data Access Dataset
=tabel1
Dbgrid terdapat dalam tab data control Datasource =datasource 1 Komponen BitBtn1 terdapat dalam Tab Additional Untuk membuat Button Awal, Maju, Mundur dan Akhir ( Diberi warna / gambar )
Komponen Memo terdapat dalam Tab Standard
86
Petunjuk Logika Soal a) Tombol Tambah digunakan untuk mengosongkan isi di edittext b) Tombol Batal jika tidak jadi menambahkan data dan textnya tidak aktif. c) Tombol Simpan untuk menyimpan data yang telah ditambahkan. d) Tombol Cari untuk mencari data berdasarkan kode pegawai. e) Tombol Hapus untuk menghapus data yang telah kita masukan. f) Untuk Jabatan & Gaji pokok : Jabatan
Gapok
Direktur
10000000
Manajer
8000000
Supervisor
5000000
Administrasi
3000000
Tombol exit akan keluar dari form dengan muncul pesan:
Listing Programnya
Membuat procedure aktif, nonaktif, tampil dan kosong dibawah declarasi public
private { Private declarations } public procedure aktif; procedure nonaktif; procedure tampil; procedure kosong; { Public declarations } end; implementation {$R *.dfm}
Membuat isi procedure aktif
procedure Tform1.aktif; begin ekode.Enabled:=true; enama.Enabled :=true; malamat.Enabled :=true; cbjabatan.Enabled :=true; egapok.Enabled :=true; rlaki2.Enabled :=true; rperempuan.Enabled :=true; end;
Membuat isi procedure nonaktif
procedure tform1.nonaktif; begin ekode.Enabled :=false; 87
enama.Enabled :=false; malamat.Enabled :=false; cbjabatan.Enabled :=false; egapok.Enabled := false; rlaki2.Enabled :=false; rperempuan.Enabled :=false; bsimpan.Enabled:=false; end;
Membuat isi procedure kosong
procedure tform1.kosong; begin ekode.Clear; enama.Clear; malamat.Clear; rlaki2.Checked :=false; rperempuan.Checked :=false; egapok.Clear; ecari.Clear; end;
Untuk menampilkan isi field dari tabel karyawan
procedure tform1.tampil; begin ekode.Text :=table1['Kdpegawai']; enama.Text :=table1['Nmpegawai']; malamat.Text :=table1['Alamat']; cbjabatan.Text :=table1['Jabatan']; egapok.Text :=table1['Gapok']; if table1['Gender']='Laki-laki' then rlaki2.Checked :=true else rperempuan.Checked :=true; end;
Menyimpan data yang sudah diinputkan ke tabel karyawan
procedure TForm1.bsimpanClick(Sender: TObject); begin table1.Append; table1['Kdpegawai']:=ekode.Text; table1['Nmpegawai']:=enama.Text; table1['Alamat']:=malamat.Text; table1['Jabatan']:=cbjabatan.Text; if rlaki2.Checked =true then table1['Gender']:=rlaki2.Caption else table1['Gender']:=rperempuan.Caption ; table1['Gapok']:=egapok.Text; table1.Post; nonaktif; end; 88
Untuk menambahkan isi field, beberapa edittext dalam keadaan aktif dan kosong
procedure TForm1.btambahClick(Sender: TObject); begin aktif; kosong; ekode.SetFocus; bsimpan.Enabled :=true; end;
Untuk menghapus isi field dan beberapa object edittext dalam keadaan nonaktif
procedure TForm1.bhapusClick(Sender: TObject); begin table1.Delete; nonaktif; table1.First; end;
Keluar dari aplikasi program dan akan tampil pesan
procedure TForm1.bexitClick(Sender: TObject); begin if (application.MessageBox('Yakin akan keluar?','Informasi',mb_yesno)=id_yes) then close; end;
Membatalkan perintah
procedure TForm1.bbatalClick(Sender: TObject); begin kosong; nonaktif; table1.First; tampil; end;
Pada saat form dirunning semua isi field akan tampil
procedure TForm1.FormCreate(Sender: TObject); begin tampil; end;
Membuat pilihan jabatan dan akan tampil gaji pokok yang sudah ditentukan
procedure TForm1.cbjabatanClick(Sender: TObject); begin if cbjabatan.Text ='Direktur' then egapok.Text:='10000000' else if cbjabatan.Text ='Manajer' then egapok.Text:='8000000' else if cbjabatan.Text ='Supervisor' then
89
egapok.Text:='5000000' else if cbjabatan.Text ='Administrasi' then egapok.Text:='3000000' else egapok.Text:='0'; end;
Pada saat input kode pegawai yang sudah ada maka akan tampil pesan
procedure TForm1.ekodeKeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin if table1.FindKey([ekode.Text]) then begin showmessage('Data Sudah ada'); exit; end else aktif; ekode.Enabled := false; form1.ActiveControl := enama; end; end;
Pada saat form dirunning beberapa object dalam keadaan nonaktif
procedure TForm1.FormActivate(Sender: TObject); begin tampil; nonaktif; end;
Membuat pencarian data berdasarkan index
procedure TForm1.bcariClick(Sender: TObject); begin table1.IndexName :=''; if not table1.FindKey([ecari.Text]) then begin showmessage('Data Belum ada'); exit; form1.ActiveControl := ecari; end else tampil; ecari.Clear; ecari.SetFocus; end;
90
Bab XI Pembuatan Database menggunakan Microsoft Access 2003 11.1 Mengenal Database dan Tipe Data pada Microsoft Access 2003 Microsoft Access merupakan salah satu contoh DBMS relasional (atau disebut RDBMS, dengan R kependekan dari Relational) yang sangat terkenal dilingkungan PC . pada microsoft Access, sebuah database disimpan dalam sebuah berkas dengan ekstensi .MDB. didalam berkas inilah semua objek yang terkait dengan database, termasuk semua tabel, disimpan. Sebelum melangkah lebih jauh dalam mempelajari dan mempraktekkan operasi database pada microsoft Access. Anda perlu mengetahui tipe tipe data yang tersedia karena setiap field yang anda definisikan haruslah memiliki tipe data, selain propoerti properti yang lain.
11.2 Merancang Database ( Studi Kasus Inventory) Dalam Kasus Project Program Inventory ini akan membuat nama database : Inventory.mdb. Langkah langkahnya : Buka Microsoft Access 2003, Pilih menu File – New - Blank Database. Simpan Nama Database dengan nama : Inventory.mdb
Untuk membuat tabel, pilih menu tables – Create table in Design View Buatlah Struktur Table – table dibawah ini : 1. Table User Nama Field Type Data Size Keterangan Iduser
Text
3
Nmuser
Text
25
Password
Text
10
Hak_akses
Text
5
Primary Key
91
Isilah Data tabel diatas sebagai berikut :
2. Table Supplier Nama Field Type Data Size Keterangan Idsup
Text
5
Nmsup
Text
25
Telp
Text
20
alamat
Text
50
Primary Key
3. Table Buku Nama Field Type Data Size Keterangan Kodebuku
Text
6
Nmbuku
Text
25
Jenis_buku
Text
10
Penerbit
Text
50
Pengarang
Text
50
Harga
Number
Stok
Number
Primary Key
4. Table Pembelian Nama Field Type Data Size Keterangan Notrans
Text
10
Primary Key
Tgltrans
Date/Time
Total
Number
Idsup
Text
5
Foreign Key
Iduser
Text
3
Foreign Key
5. Table Detail_beli Nama Field Type Data Size Keterangan Notrans
Text
Qty
Number
Subtot
Number
Kodebuku
Text
10
Foreign Key
6
Foreign Key
6. Table Sementara Nama Field Type Data Size Keterangan Kodebuku
Text
6
Nmbuku
Text
25
Harga
Number
Qty
Number
Subtotal
Number
Primary Key
92
11.3 Mengisi Data Pilih Tabel User lalu klik OPEN, isilah data user dibawah ini :
93
Bab XII Koneksi Database dan Perancangan Form Master Supplier 12.1 Mengkoneksikan ke Database 1. Masukkan Komponen ADOTable(ADODB) pada Tab ADO ke Kanvas Form
2. Di properties dipilih Connection String
3. Setelah itu akan tampil layar alamat Connection String (untuk mengambil alamat database).
4. Akan muncul Data Link Properties pada tab Provider, selanjutnya Pilih : Microsoft Jet 4.0 OLE DB Provider.
94
5. Lalu Data Link Properties pada tab Connection, selanjutnya pilih nama databasenya.
6. Klik Ok, lalu pilih properties Table dan pilih nama table yang akan dikoneksikan. Selanjutnya pilih Active pada Propeties, ganti menjadi “TRUE” untuk mengaktifkan Table.
12.2 Logika Program Membuat Prosedure Aktif (Mengaktifkan “.Enabled “ objek – objek pada form) Membuat Procedure Pasif (Menonaktifkan “.Enabled “ objek – objek pada form) Membuat Procedure Bersih (membersihkan textbox) Button Save untuk menyimpan kedalam tabel supplier Button Add untuk mengaktifkan dan membersihkan objek Button Exit untuk menutup Form
12.3 Tampilan Form pada saat Running
95
12.4 Design Form
Object Edit Text Edit Text Edit Text Edit Text Button Button Button ADO Table Datasource Dbgrid1
Keterangan Kode Supplier Nama Supplier Telp Alamat Button ADD Button SAVE Button Exit ADO Table DataSet : Adosup Datasource : Datasup
Name Ekdsup Enmsup Etelp Ealamat Btnadd Btnsave Btnexit Adosup Datasup Dbgrid1
12.5 Coding Membuat Deklarasi Procedure: private { Private declarations } public procedure aktif; procedure bersih; procedure pasif ; { Public declarations } end; Kode Procedure aktif, bersih dan pasif implementation
ekdsup.Text:='';
{$R *.dfm}
enmsup.Text:='';
procedure tform1.aktif;
etelp.Text:='';
begin
ealamat.Text:='';
ekdsup.Enabled := true;
end;
enmsup.Enabled :=true;
procedure tform1.pasif;
etelp.Enabled := true;
begin
ealamat.Enabled :=true;
ekdsup.Enabled := false;
end;
enmsup.Enabled :=false; etelp.Enabled := false;
procedure tform1.bersih;
ealamat.Enabled :=false;
begin
end; 96
Form Activate ( Pada saat Form pertama kali diaktifkan) procedure TForm1.FormActivate(Sender: TObject); begin bersih; pasif; end; Tombol Add saat diklik procedure TForm1.btnaddClick(Sender: TObject); begin showmessage('Silahkan Input data baru Supplier'); bersih; aktif; ekdsup.SetFocus; end; Tombol Save saat diklik procedure TForm1.btnsaveClick(Sender: TObject); begin if adosup.Locate('idsup',ekdsup.Text,[])then begin showmessage('Data Suplier sudah ada!'); exit; end else begin adosup.Append; //menambahkan Record baru adosup['idsup']:=ekdsup.Text; //menyimpan data perfield adosup['nmsup']:=enmsup.Text ; adosup['telp']:=ekdsup.Text; adosup['alamat']:=enmsup.Text ; adosup.Post; // untuk mengupdate data tabel adosup.Refresh; showmessage('Data Supplier yang baru telah tersimpan'); pasif; bersih; end; end;
97
Tombol Exit saat diklik procedure TForm1.btnexitClick(Sender: TObject); begin IF application.MessageBox('Yakin akan keluar?','Informasi',mb_okcancel)=idok then begin showmessage ('Form akan ditutup'); close; end else begin showmessage('Form tidak ditutup'); exit; end; end;
98
Bab XIII Perancangan Form Master Buku
13.1 Logika Program Buatlah procedure Aktif, bersih, Pasif, no_otomatis dan tampil (untuk menampilkan data kedalam objek objek form Pada saaat form pertama kali aktif, tombol Add, Find, Exit dan Navigasi aktif. Tombol Navigasi Next : untuk menuju ke record berikutnya lalu data tampil. Tombol Navigasi Bottom : untuk menuju ke recor paling akhir. Tombol Navigasi Back : untuk menuju ke record sebelumnya lalu data tampil Tombol Navigasi Top : untuk menuju ke record paling awal Pada Saat tombol add diklik maka Isi Kode buku terisi otomatis dengan format : “BOOK01” ,”BOOK02”…dst. Tombol yang aktif hanya Save dan Cancel. Pada saat tombol find diklik maka akan dilakukan pencarian berdasarkan Kode buku. Jika ketemu maka tombol Delete – Edit – Cancel aktif dan data tampil. Pada saat tombol Edit diklik maka akan dilakukan pengeditan pada isi data pada objek kecuali kode buku. Lalu Tombol Save dan Cancel aktif. Pada saat tombol delete diklik maka data yang dipilih akan dihapus. Button Save digunakan untuk menambahkan record baru atau update record yang sudah ada. Button Exit : untuk keluar dari form
13.2 Tampilan Form saat Running
13.3 Desain Form
99
13.4 Coding unit form_buku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB; type TForm2 = class(TForm) Label1: TLabel; GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; enmbuku: TEdit; epenerbit: TEdit; epengarang: TEdit; eharga: TEdit; estok: TEdit; rdumum: TRadioButton; rdnonumum: TRadioButton; DataSource1: TDataSource; adobuku: TADOTable; DBGrid1: TDBGrid; btnadd: TButton; btnsave: TButton; btnbottom: TButton; btnback: TButton; btntop: TButton; btnnext: TButton; btncancel: TButton; btndel: TButton; btnedit: TButton; btnexit: TButton; ekdbuku: TEdit; GroupBox2: TGroupBox; Label9: TLabel; ecari: TEdit;
btnfind: TButton; procedure btnaddClick(Sender: TObject); procedure btnnextClick(Sender: TObject); procedure btntopClick(Sender: TObject); procedure btnbackClick(Sender: TObject); procedure btnbottomClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure btncancelClick(Sender: TObject); procedure btndelClick(Sender: TObject); procedure btneditClick(Sender: TObject); procedure btnsaveClick(Sender: TObject); procedure btnfindClick(Sender: TObject); procedure btnexitClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public procedure aktif; procedure pasif; procedure bersih; procedure tampil; procedure no_otomatis; { Public declarations } end; var Form2: TForm2; isi: boolean; // variabel penampung untuk penyimpanan implementation {$R *.dfm} 100
procedure tform2.aktif; begin ekdbuku.enabled:= true; enmbuku.Enabled:=true; rdumum.Enabled:=true; rdnonumum.Enabled:=true; epenerbit.Enabled:=true; epengarang.Enabled:=true; eharga.Enabled:=true; estok.Enabled:=true; end; procedure tform2.pasif ; begin ekdbuku.enabled:= false; enmbuku.Enabled:=false; rdumum.Enabled:=false; rdnonumum.Enabled:=false; epenerbit.Enabled:=false; epengarang.Enabled:=false; eharga.Enabled:=false; estok.Enabled:=false; end; procedure tform2.bersih; begin ekdbuku.Text:=''; enmbuku.Text:=''; rdumum.Checked:=false; rdnonumum.Checked:=false; epenerbit.Text:=''; epengarang.Text:=''; eharga.Text:='0'; estok.Text :='0'; end; procedure tform2.no_otomatis; var nomor:integer; begin adobuku.Refresh; If adobuku.RecordCount = 0 Then begin ekdbuku.Text := 'BOOK' + '01' ; end else begin adobuku.Last; nomor := strtoint(copy(adobuku['kodebuku'],5,2)); // mengambil 2 karakter angka dibelakang inc(nomor); if nomor<10 then ekdbuku.Text:='BOOK'+'0'+ inttostr(nomor) else ekdbuku.Text:='BOOK'+inttostr(nomor); ekdbuku.Enabled:=false; end; end; procedure tform2.tampil ; begin if adobuku.RecordCount <>0 then begin ekdbuku.Text:=adobuku['kodebuku']; enmbuku.Text:=adobuku['nmbuku']; 101
if adobuku['jenis_buku']='Umum' then rdumum.Checked:=true else rdnonumum.Checked:=true; epenerbit.Text:=adobuku['penerbit']; epengarang.Text:=adobuku['pengarang']; eharga.Text:=inttostr(adobuku['harga']); estok.Text:=inttostr(adobuku['stok']); end; end; procedure TForm2.btnaddClick(Sender: TObject); begin isi:=true; bersih; aktif; no_otomatis; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=true; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=false; btnfind.Enabled:= false; end; procedure TForm2.btnnextClick(Sender: TObject); begin adobuku.Next; if adobuku.Eof = true then begin showmessage('Sudah Diakhir data ') ; adobuku.Last; end; tampil; end; procedure TForm2.btntopClick(Sender: TObject); begin adobuku.First; tampil; end; procedure TForm2.btnbackClick(Sender: TObject); begin adobuku.Prior; if adobuku.Bof=true then begin showmessage('sudah diawal record'); adobuku.First; end; tampil; end; procedure TForm2.btnbottomClick(Sender: TObject); begin adobuku.Last; tampil; end;
102
procedure TForm2.FormActivate(Sender: TObject); begin bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btncancelClick(Sender: TObject); begin bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btndelClick(Sender: TObject); begin IF application.MessageBox('Yakin akan dihapus?','Informasi',mb_okcancel)=idok then begin adobuku.Delete; adobuku.First; adobuku.Refresh; bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; end; procedure TForm2.btneditClick(Sender: TObject); begin isi:=false; aktif; ekdbuku.Enabled:=false; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=true; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=false; btnfind.Enabled:= false; end; procedure TForm2.btnsaveClick(Sender: TObject); begin if isi=true then begin showmessage('Data Akan disimpan'); 103
adobuku.Append; adobuku['kodebuku']:=ekdbuku.Text; adobuku['nmbuku']:=enmbuku.Text; if rdumum.Checked=true then adobuku['jenis_buku']:='Umum' else adobuku['jenis_buku']:='NonUmum'; adobuku['penerbit']:=epenerbit.Text; adobuku['pengarang']:=epengarang.Text; adobuku['harga']:=strtoint(eharga.Text); adobuku['stok']:=strtoint(estok.Text); adobuku.Post end else begin isi:=false; showmessage('Data Akan diupdate'); adobuku.Edit ; adobuku['nmbuku']:=enmbuku.Text; if rdumum.Checked = true then adobuku['jenis_buku']:='Umum' else adobuku['jenis_buku']:='NonUmum'; adobuku['penerbit']:=epenerbit.Text; adobuku['pengarang']:=epengarang.Text; adobuku['harga']:=strtoint(eharga.Text); adobuku['stok']:=strtoint(estok.Text); adobuku.Post end ; bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btnfindClick(Sender: TObject); begin if adobuku.Locate('kodebuku',ecari.Text,[])then begin showmessage('Data Buku ada!'); ecari.Text:=''; tampil; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=false; btndel.Enabled:=true; btnedit.Enabled:=true; btnexit.Enabled :=false; btnfind.Enabled:= false; end; end; procedure TForm2.btnexitClick(Sender: TObject); begin close; end;
104
Bab XIV Perancangan Form Transaksi Pembelian 14.1 Logika Program Buatlah Prosedure aktif,pasif dan bersih Buatlah Prosedure Grid_bersih untuk menghapus data sementara (keranjang belanja) Buatlah prosedure penomoran otomatis untuk menampilkan no transaksi secara urut sesuai data yang telah disimpan. Format penomoran ( “TR”- 2digit bulan transaksi – 2 digit tahun transaksi – no urut 3 digit). Contoh : TR0712-001, TR0712-001. Buatlah prosedure untuk menghitung Total dari jumlah subtotal keseluruhan pada tabel sementara. Form pertama kali dijalankan maka semua objek bersih, pasif dan tanggal sistem keluar. Diklik Add, maka no transaksi akan keluar, semua objek aktif. ID Supplier diisi dan dilakukan Validasi data pada tabel Supplier, jika ditemukan maka nama supplier dan telp akan terisi. Isi Combo box pada kode buku diambil dari tabel buku, dipilih kode buku maka nama buku dan harga terisi, setfokus pada jumlah beli. Jumlah beli diisi untuk satu jenis buku, setelah di enter maka subtotal keluar dari perkalian jumlah beli dikali harga buku. Button Beli diklik maka data buku yang dibeli akan masuk pada keranjang belanja. Karena masih dikeranjang belanja, stok buku belum berkurang pada tabel buku. Jika ada kode buku yang sama diinput lebih dari 1 kali kedalam keranjang belanja dengan jumlah beli yang berbeda, maka hanya diedit jumlah beli dan subtotalnya tanpa menambahkan record baru. Jika sudah disimpan dengan mengklik button SAVE maka akan disimpan kedalam tabel Detail_beli dan tabel Transaksi . Button exit untuk keluar dari form
14.2 Tampilan Form Saat Running
105
14.3 Desain Form
14.4 Coding private { Private declarations } public procedure bersih; procedure aktif; procedure pasif; procedure no_otomatis; procedure hitung; procedure gridbersih; { Public declarations } end; var Form3: TForm3; mtotal:real; implementation {$R *.dfm} procedure tform3.gridbersih ; //untuk menghapus data pada keranjang Belanja begin if adosem.RecordCount<>0 then begin adosem.First ; while not adosem.eof do begin adosem.Delete ; adosem.Next; adosem.Refresh end; end; end; procedure tform3.hitung; // Untuk menghitung total dari subtotal pada tabel Sementara begin mtotal:=0; if adosem.RecordCount<>0 then begin adosem.First; while not adosem.eof do begin mtotal:=mtotal+adosem['subtotal']; adosem.Next; 106
end; end else begin mtotal:=0; end; etotal.Text:=floattostr(mtotal); end; procedure tform3.bersih; begin enotrans.Text:=''; etgl.Text:=''; eidsup.Text:=''; enmsup.Text:=''; cbkdbuku.Text:=''; enmbuku.Text:=''; eharga.Text:='0'; ejumbel.Text:='0'; esubtot.Text:='0'; etotal.Text:='0'; end; procedure tform3.aktif; begin enotrans.Enabled:=True ; etgl.Enabled:=True ; eidsup.Enabled:=True ; enmsup.Enabled:=True ; cbkdbuku.Enabled:=True ; enmbuku.Enabled:=True ; eharga.Enabled:=True ; ejumbel.Enabled:=True ; esubtot.Enabled:=True ; etotal.Enabled:=True ; end; procedure tform3.pasif; begin enotrans.Enabled:=false ; etgl.Enabled:=false ; eidsup.Enabled:=false ; enmsup.Enabled:=false ; cbkdbuku.Enabled:=false ; enmbuku.Enabled:=false ; eharga.Enabled:=false ; ejumbel.Enabled:=false ; esubtot.Enabled:=false ; etotal.Enabled:=false; end;
procedure TForm3.FormActivate(Sender: TObject); begin gridbersih; pasif; bersih; etgl.Text:=datetostr(date()); end; procedure tform3.no_otomatis; var nomor:integer; 107
tgl,bln :string; begin tgl:=copy(etgl.Text,1,2); bln:=copy(etgl.Text,4,2); adopembelian.Refresh; If adopembelian.RecordCount = 0 Then begin enotrans.Text := 'TR' +tgl+bln+'-'+'001' ; end else begin adobuku.Last; nomor := strtoint(copy(adobuku['kodebuku'],5,2)); inc(nomor); if nomor<100 then enotrans.Text:='TR' + tgl + bln +'-'+ '00' + inttostr(nomor) else if nomor<10 then enotrans.Text:='TR' + tgl + bln +'-'+ '0' + inttostr(nomor) else enotrans.Text:='TR' + tgl + bln +'-' + inttostr(nomor); enotrans.Enabled:=false; end; end; procedure TForm3.btnaddClick(Sender: TObject); begin if btnadd.Caption='ADD' then begin btnadd.Caption:='CANCEL'; aktif ; bersih ; etgl.Text:=datetostr(date()); no_otomatis; end else begin btnadd.caption:='ADD'; pasif ; bersih; gridbersih; end; end; procedure TForm3.eidsupKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then if adosup.Locate('idsup',eidsup.Text,[]) then begin showmessage('Data Customer ada!'); enmsup.Text:=adosup['nmsup']; etelp.Text:=adosup['telp']; end else begin showmessage('Data Customer Tidak ada!'); exit; end; end; procedure TForm3.FormCreate(Sender: TObject); begin adobuku.First; while not adobuku.eof do 108
begin cbkdbuku.Items.add(adobuku['kodebuku']); adobuku.Next; end; end; procedure TForm3.cbkdbukuClick(Sender: TObject); begin if adobuku.locate('kodebuku',cbkdbuku.Text,[]) then begin enmbuku.Text:=adobuku['nmbuku']; eharga.Text:=adobuku['harga']; ejumbel.SetFocus; end; end; procedure TForm3.btnbeliClick(Sender: TObject); begin if adosem.locate('kodebuku',cbkdbuku.Text ,[]) then begin adosem.Edit; adosem['qty'] :=adosem['qty']+strtoint(ejumbel.Text); adosem['subtotal']:=adosem['subtotal']+strtoint(esubtot.Text); adosem.Post; end else begin adosem.Append; adosem['kodebuku']:=cbkdbuku.Text; adosem['nmbuku']:=enmbuku.Text; adosem['harga']:=strtoint(eharga.Text); adosem['qty']:=strtoint(ejumbel.Text); adosem['subtotal']:=strtoint(esubtot.Text); adosem.Post; end; hitung; cbkdbuku.Text:=''; enmbuku.Text:=''; eharga.Text:=''; ejumbel.Text:='0' ; esubtot.Text:='0' end; procedure TForm3.btnexitClick(Sender: TObject); begin close; end; procedure TForm3.btnsaveClick(Sender: TObject); begin adosem.First; while not adosem.eof do begin adodetail.Append; adodetail['notrans']:=enotrans.Text; adodetail['kodebuku']:=adosem['kodebuku']; adodetail['qty']:=adosem['qty']; if adobuku.locate('kodebuku',adodetail['kodebuku'] ,[]) then begin adobuku.Edit; adobuku['stok'] :=adobuku['stok']+adodetail['qty'];// menambahkan stok di tabel buku end; adodetail['subtot']:=adosem['subtotal']; adodetail.Post; 109
adosem.Next; end; adopembelian.append ; adopembelian['notrans']:=enotrans.Text; adopembelian['tgltrans']:=etgl.Text; adopembelian['idsup']:=eidsup.Text; adopembelian['total']:=strtofloat(etotal.Text); adopembelian['iduser']:=eiduser.Text; adopembelian.Post; showmessage('Data Telah Tersimpan'); bersih; pasif; gridbersih; end;
procedure TForm3.ejumbelKeyPress(Sender: TObject; var Key: Char); begin if key =#13 then esubtot.Text:=inttostr(strtoint(ejumbel.Text)*strtoint(eharga.Text)); end; end.
110
BAB XV PEMBUATAN LAPORAN Delphi 7 menyediakan dua library untuk membuat Report, yaitu Quick Report dan Rave Report. Quick report sudah menjadi bagian dari Delphi 3. Didalam Delphi 7, Quick Report akan digantikan oleh Rave Report. Ketika kita menginstall Delphi Quick Report tidak secara otomatis diinstall, sehingga kita perlu menginstallnya sendiri. Didalam Modul matakuliah Praktek Algoritma dan Pemrograman II (Delphi) ini akan menggunakan Rave Report dan diharapkan mahasiswa dapat mengembangkan penggunaan Rave Report secara lebih kompleksitas lagi untuk menghasilkan Dokumen Output yang lebih baik lagi.
A. Pembuatan Report List Dalam setiap pembuatan program aplikasi, kita tentu perlu untuk membuat Report List yang hanya menampilkan sebuah daftar dengan judul , Header dan Footer. Langkah-langkah Pembuatan Report Delphi dengan kasus Penjualan 1. Masukkan Komponen RVProject dan RVDatasetConnection dari Menu Rave kedalam Form Penjualan didalam Kasus I yang sudah dikerjakan sebelumnya.
RVProject
RVDatasetConnectio n
Gambar 2.1 Form Transaksi
2. Koneksikan RVDatasetConnection ke masing-masing Tabel. No Komponen Properties 1 RVDatasetConnection1 Dataset : tbltrans 2 RVDatasetConnection2 Dataset : tbldetail 3 RVDatasetConnection3 Dataset : tblbrg 4 RVDatasetConnection4 Dataset : tblcust
3. Setelah dikoneksikan, Doble klik RV Project untuk membuka Layar Rave Report seperti tampilan dibawah ini:
111
Rave Report Project
Report Component Lembar Kerja Report Gambar 2.2 Tampilan Rave Report
4. Selanjutnya kita pilih tabel yang akan kita buat Laporan List dengan cara pilih File-New data Object
Gambar 2.3 Tampilan Data Connection
5. Pilih Menu Direct Data View, lalu pilih RVDatasetConnection3 untuk mengkoneksikan ke Tabel Barang setelah itu Finish. 6. Setelah memilih koneksinya, selanjutnya kita membuat Laporan menggunakan Wizard dengan cara : Pilih Menu bar Tool-Report wizard-Simple Table. Maka akan tampil layar seperti dibawah ini :
Next
112
Pilih Field yang akan ditampilkan-pilih field yang akan dijadikan Unik yaitu “Idbrg”
Next
Report Layout berfungsi untuk menentukan Bentuk tampilan Report Selanjtunya disetiap Band akan dapat diganti Font nya masing-masing. Tekan tombol Generate untuk membuat laporannya. Maka tampilannya akan seperti dibawah ini :
7. Untuk Melihat Hasilnya dengan cara : File-Execute Report.
G a m b a r 2 . 4 T a m p i lan Laporan Barang
8. Setelah itu simpan Project Reportnya.
113
B. Pembuatan Report Relational 1. Pilih Menu File-New Data Object 2. Pilih Database Connection-BDE. Selanjutnya akan tampil gambar dibawah ini :
3. Tentukan Alias yang sudah dibuat dan Driver nya “Standard”. Lalu OK 4. Selanjutnya kita buat Relasi antar tabel dengan cara : File-New data Object-Driver data View-Database1(Sesuai koneksi yang sudah dilakukan di Perintah ke-3).
5. Selanjutnya Drag Tabel yang akan direlasikan kedalam Query Advanced Designer. Selanjutnya Ceklist Semua Field kecuali Idbrg pada Tabel Barang dan Nocust pada Tabel Customer. Lalu OK
114
6. Tools – Report Wizard - Simple Tabel – DriverDataView1. 7. Dengan langkah yang sama dengan pembuatan Report List akan menghasilkan Tampilan Report seperti dibawah ini :
8. Silahkan di Design laporan seperti diatas. 9. Setelah mengambil contoh diatas dalam pembuatan Laporan, silahkan anda membuat dari Contoh Kasus Inventory dengan membuat Laporan Pembelian, Laporan Buku dan Laporan Supplier
115
BAB XVI PEMBUATAN MENU UTAMA.
Sekarang tiba saatnya kita membuat Menu utama dari program yang sudah kita buat di Kasus 1. Menu utama yang akan kita buat berbentuk menu pull-down yaitu menu yang mempunyai pilihan (menu) utama berjajar secara mendatar dibagian atas jendela program. Setiap menu utama, dapat mempunyai submenu yang berada pada kotak dibawah tiap menu utama dan submenu tersebut diatur bertumpuk dalam kotak submenu. Submenu hanya akan ditampilkan jika menu utama sedang terpilih atau aktif. Tiap submenu, nantinya dapat mempunyai sub-submenu yang ditampilkan disebelah kanan submenu yang bersangkutan dalam kotak sub-submenu. Demikian seterusnya. Adapun cara pembuatan Menu utama sebagai berikut : 1. Bukalah Project Penjualan pada kasus 1 yang sudah dibuat. 2. File-New Form untuk membuat Form Menu Utama 3. Pada Menu Standard, pilih Component Main Menu dan diletakkan pada Form.
4. Ubah Property Name menjadi :Menuutama. Selanjutnya double klik pada Objek Menuutama maka akan tampil Menu Desaigner. Silahkan Ganti Caption dari Submenu dan Sub-subMenu seperti contoh dibawah ini :
SubMenu Sub-subMenu Transaksi Transaksi Penjualan Laporan
Laporan Barang Laporan Transaksi
Exit
5. Setelah
-
itu
tutup
Jendela
Mneu
Desaigner.
Masukkan
RaveProject
dan
RaveDatasetConnection dan dengan langkah yang sama dengan Pembuatan Koneksi pada saat pembuatan Laporan menggunakan Rave Report.
116
6. Lalu Double Klik pada setiap Sub-submenu untuk meletakkan Listing Programnya.
unit menutama;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, RpDefine, RpRave, RpCon, RpConDS, RpConBDE, DB, DBTables; type TForm5 = class(TForm) MainMenu1: TMainMenu; TRANSAKSI1: TMenuItem; FormTransaksi1: TMenuItem; Laporan1: TMenuItem; LaporanBarang1: TMenuItem; LaporanTransaski1: TMenuItem; Exit1: TMenuItem; RvProject1: TRvProject; RvDataSetConnection1: TRvDataSetConnection; RvDataSetConnection2: TRvDataSetConnection; RvDataSetConnection3: TRvDataSetConnection; RvDataSetConnection4: TRvDataSetConnection; procedure FormTransaksi1Click(Sender: TObject); procedure LaporanBarang1Click(Sender: TObject); procedure LaporanTransaski1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; 117
var Form5: TForm5;
implementation
uses form_penjualan;
{$R *.dfm}
procedure TForm5.FormTransaksi1Click(Sender: TObject); begin form4.Show; end;
procedure TForm5.LaporanBarang1Click(Sender: TObject); begin rvproject1.Execute; rvproject1.ExecuteReport('Report2.rav');
end;
procedure TForm5.LaporanTransaski1Click(Sender: TObject); begin rvproject1.Execute; rvproject1.ExecuteReport('Report3.rav');
end;
procedure TForm5.Exit1Click(Sender: TObject); begin close; end;
end.
7. Selanjutnya silahkan membuat Menu Utama sesuai dengan Study Kasus Inventory dengan ketentuan sebagai berikut : SubMenu Sub-subMenu Master
Form Supplier Form Buku
Transaksi
Transaksi Pembelian
Laporan
Laporan Buku 118
Laporan Supplier Laporan Pembelian Exit
-
119
BAB XVII PEMBUATAN LOGIN DAN PACKET PROGRAM
17.1 Perancangan Form Startup Desain Form
Form Pada saat dijalankan
Coding procedure TForm9.Timer1Timer(Sender: TObject); begin ProgressBar1.StepBy(1); ProgressBar1.Step:=ProgressBar1.Step+1 ; If ProgressBar1.Step =100 then begin form1.Show; form9.Hide; end end;
120
17.2 Perancangan Form Login Desain Form
Form pada saat dijalankan
Coding var Form1: TForm1; y:Integer; id:string; implementation uses ustartup,umenu_utama, StrUtils; {$R *.dfm} procedure Tform8.BtnexitClick(Sender: TObject); begin if(Application.MessageBox('MO keluar y?',MB_YESNO+MB_ICONWARNING)=idyes) then begin close; form9.Close; end else MessageDlg('ga jadi deh',mtInformation,[mbok],0 ) end; procedure Tform8.FormActivate(Sender: TObject); begin ADOuser.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ 'inventory.mdb' +';Persist Security Info=False;'; ADOuser.TableName:='tbluser'; ADOuser.Active:=True; edit1.SetFocus; end; 121
procedure TForm1.Btnlogin1Click(Sender: TObject); var cepat:Longint; begin if ADOuser.Locate('nama',edit1.Text,[]) then begin if ADOuser.Locate('password',edit2.Text,[]) then begin id:= ADOuser.FieldValues['hak_akses']; if id='admin' then begin MessageDlg('nama user dan password benar, anda berhak masuk',mtInformation,[mbok],0 ); MessageDlg('Hak Akses adalah ADMIN',mtInformation,[mbok],0 ); cepat := 1; While form8.Left + form8.Width < Screen.Width do form8.Left := form8.Left + cepat; While form8.Top – form8.Height < Screen.Width do form8.Top := form8.Top + cepat; formmenuutama.Show; end else begin MessageDlg('nama user dan password benar, anda berhak masuk',mtInformation,[mbok],0 ); MessageDlg('Hak Akses adalah BIASA',mtInformation,[mbok],0 ); cepat := 1; While form8.Left + form8.Width < Screen.Width do form8.Left := form8.Left + cepat; While form8.Top – form8.Height < Screen.Width do form8.Top := form8.Top + cepat; formmenuutama.Show; formmenuutama.MASTER1.Enabled:=False; //mentidakaktifkan salahsatu menu end end else if edit2.Text='' then begin MessageDlg('password belum di isi',mtInformation,[mbok],0 ); edit2.SetFocus; end else begin if(Application.MessageBox('Password yang anda masukan salah','INFO',MB_OK+MB_ICONWARNING)=IDOK) then y:=y+1; begin if y=1 then begin MessageDlg('anda memiliki 2 kesempatan lagi',mtInformation,[mbok],0 ); edit2.SetFocus; end else if y=2 then begin MessageDlg('anda memiliki 1 kesempatan lagi',mtInformation,[mbok],0 ); edit2.SetFocus; end else if y=3 then begin MessageDlg('Maaf anda tidak berhak masuk',mtInformation,[mbok],0 ); close; end 122
end end end else if (edit1.Text='')and(edit2.Text='')then begin MessageDlg('nama user dan password masih kosong',mtInformation,[mbok],0 ); edit1.SetFocus; end else begin MessageDlg('mungkin nama user anda salah atau belum di input, coba deh lagi',mtWarning,[mbok],0 ); edit1.SetFocus; end end; END.
17.3 Membuat Packet Program Setelah Itu kita dapat menjalankan Program yang sudah di EXE yang secara otomatis terbentuk pada folder penyimpanan :
123
BAB XVIII PRESENTASI TUGAS PROJECT PROGRAM MENGGUNAKAN BORLAND DELPHI 18.1 Kriteria Tugas Mahasiswa
WAJIB
membuat
suatu
Project
Program
dengan
menggunakan
Pemrograman Delphi dengan Software Database Access 2003 dan Laporan Rave Report. Dalam pembuatan program juga harus disertakan tentang dokumen masukan dan keluaran , Normalisasi, Spesifikasi file, Pengkodean, HIPO dan Flowchart untuk mendukung Manual Book yang WAJIB dibuat oleh Mahasiswa. Jenis tugas yang diberikan berupa tugas Kelompok, dimana dalam 1 kelompok terdiri dari 5 – 6 mahasiswa (tergantung kapasitas mahasiswa). Penilaian dilakukan pada saat presentasi manual book dan demo program didepan Instruktur terkait. Bahan tugas yang dikumpulkan ke Instruktur terkait adalah Manual book dan CD Program yang terdiri dari Bahan Presentasi dan Project Program.
18.2 Konten Tugas Untuk Isi konten Manual Book yang akan dibuat untuk mendukung pembuatan Project programa sebagai berikut :
Bab I : Pendahuluan 1.1. Latar Belakang 1.2. Maksud Dan Tujuan 1.3. Metode Penelitian 1.4. Ruang Lingkup
Bab II : Pembahasan 2.1. Landasan Teori A. Program B. Normalisasi C. Pengkodean D. HIPO E. Flowchart 2.2. Analisa Kasus ( Pembahasan / Perancangan) A. Dokumen Masukan dan Keluaran B. Normalisasi C. Spesifikasi File D. Pengkodean E. HIPO F. Flowchart
124
BAB III : Penutup 3.1. Kesimpulan 3.2. Saran Daftar Pustaka Lampiran
18.3 Kriteria Penilaian 1. Penilaian 1 Persiapan dan Presentasi ( 20 %) 2. Penilaian 2 Pemahaman Individu ( 50 %) 3. Penilaian 3 Hasil Karya Kelompok ( 30 %)
18.4 Contoh Project 1. Pembayaran 2. Simpan Pinjam 3. Pembayaran Angsuran 4. Penggajian 5. Peminjaman – Pengembalian 6. Penerimaan Karyawan 7. Absensi Karyawan 8. Persediaan barang
125