[go: up one dir, main page]

Academia.eduAcademia.edu
Modul Praktek Laboratorium Komputer Disusun Oleh: Achmad Baroqah Pohan S.Kom Ika Yuniva S.Kom Akademi Manajemen Informatika & Informatika Jakarta 2012 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) 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. 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) 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. 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. 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 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. 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 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 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 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 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!!! 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); 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 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 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. 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. 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. 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 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 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 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 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 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 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 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 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 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 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 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. 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 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 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; 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; 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 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 +, - , 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 : <variabel> := <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 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 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 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 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 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 : unit operator1; btexit: TButton; interface btclear: TButton; uses btxor: TButton; Windows, Messages, SysUtils, Variants, Classes, procedure bttambahClick(Sender: Graphics, Controls, Forms, TObject); procedure Dialogs, StdCtrls; type TForm3 = class(TForm) Label1: TLabel; 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; 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; 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<n2; edit3.Text:=booltostr(n3); 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 n3:boolean; begin n1:=strtoint(edit1.text); edit3.Text:=booltostr(n3); end; 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. 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 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. 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 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 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); 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; 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. 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 : 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; 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; Hasil_A2; End // setiap stament diakhiri titik koma ( ; ) 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 <pernyataan1> Else <pernyataan2> Else <pernyataan3> 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′ 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 <variabel> of <pilihan ke 1> : hasil 1 ; <pilihan ke 2> : hasil 2 ; <pilihan ke 3> : 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 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 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 Aktifkan combo box untuk jabatan Pada pada jendela properties pilih event pilih dan aktifkan onclick, Seperti yang terlihat seperti gambar berikut ini 4. Double click pada combo onclick 5. Ketikan program berikut ini 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; 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) 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. 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 ; 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 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; 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 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 : <cari icon gambar dipilih> Bitbtn2 Bclose &CLOSE Glyhp : <cari icon gambar dipilih> 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; 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. 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. 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. 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 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; 6.5 Latihan Array 2 F. Desain Form G. Coding unit latarray2; bclose: TBitBtn; Label7: TLabel; interface procedure FormCreate(Sender: TObject); uses Windows, procedure 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; ejumlah: TEdit; etotalharga: TEdit; bnew: TBitBtn; { Public declarations } end; 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; 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. 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; 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; 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; 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 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; 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; 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 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 : 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. 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 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. 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 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; 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; 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 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; 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 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 11.3 Mengisi Data Pilih Tabel User lalu klik OPEN, isilah data user dibawah ini : 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. 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 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; 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; 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; 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 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} 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']; 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; 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'); 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; 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 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; 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; 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 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; 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. 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: 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 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. 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 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 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. 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; 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 Laporan Supplier Laporan Pembelian Exit - 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; 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; 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 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 : 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 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