22
Modul 5
Pembuatan Laporan
I. Tujuan
Mahasiswa dapat menampilkan informasi yang tersimpan dalam database (membuat
laporan).
II. Landasan Teori
Setiap aplikasi database menuntut terciptanya laporan-laporan yang kemudian akan
ditujukan ke user (pengguna aplikasi). Borland C++ Builder telah menyediakan
komponen-komponen khusus untuk membuat sebuah laporan secara mudah dan
cepat, yaitu yang dikelompokkan ke dalam tab page Quick Report pada Component
Pallete.
Pada modul ini, kita akan belajar membuat aplikasi database yang menghasilkan
sebuah laporan sederhana dengan menggunakan Quick Report untuk kemudian
dicetak ke printer. Meskipun banyak pakar memperkenalkan konsep kantor tanpa
kertas, tapi dalam kenyataannya, laporan dalam bentuk kertas masih sering
diperlukan. Sebuah laporan yang lengkap secara prinsip dapat terdiri dari 7 bagian
sebagai berikut :
-
Bagian Judul (title).
-
Bagian header halaman (page header).
-
Bagian header grup (group header).
-
Bagian rincian (detail).
-
Bagian footer grup (group footer).
-
Bagian footer halaman (page footer).
-
Bagian ringkasan (summary).
Bagian Judul (title).
Bagian judul adalah bagian laporan yang hanya dicetak sekali saja, yakni pada
saat laporan pertama kalinya mulai dicetak. Biasanya bagian judul dipakai untuk
menampilkan nama file yang dicetak, tanggal hari ini, nama perusahaan atau
nama jenis laporan. Pada gambar 5.1 bagian judul digunakan untuk mencetak
nama laporan.
23
Bagian header halaman (page header).
Bagian header halaman adalah bagian laporan yang dicetak di awal halaman
setiap kali berganti halaman baru, biasanya dipakai untuk menampilkan nama
field yang record-record-nya akan dicetak. Sering pula bagian header digunakan
hanya untuk menampilkan garis ---, sebagai pembatas bagian rincian.
Pada gambar 5.1. bagian header halaman dipakai untuk menampilkan tanda batas
--- dan nama field.
Bagian header grup (group header).
Rincian yang dicetak dapat dikumpulkan dalam kelompok tertentu. Misalnya saja
dalam contoh laporan pada gambar 5.1., rincian faktur dikelompokkan
berdasarkan nama supplier (PT. Jaya Saputra). Disini kita dapat menampilkan
header grup untuk menunjukkan judul kelompok record yang dicetak.
Bagian rincian (detail).
Bagian rincian sering disebut pula bagian detail. Sesuai namanya, bagian ini
berisi rincian data yang dicetak. Artinya, data yang ingin kita cetak, dicetak lewat
bagian rincian . Dalam contoh laporan gambar 5.1., bagian rincian berfungsi
menampilkan record-record dari suatu database.
Bagian footer grup (group footer).
Sebagai penutup kelompok record, kita dapat tampilkan footer grup. Footer grup
sering juga untuk menampilkan subtotal dari kelompok record yang ditampilkan
seperti pada contoh laporan dalam gambar 5.1.
Bagian footer halaman (page footer).
Bagian footer halaman adalah bagian laporan yang dicetak diakhir halaman
setiap kali akan bergantian halaman. Kita dapat menggunakan bagian footer
untuk mencetak nomor halaman, atau garis --- sebagai pembatas bagian
rincian. Kita juga dapat menggunakan bagian footer untuk mencetak subtotal
untuk record-record yang ditampilkan dalam halaman bersangkutan.
Bagian ringkasan (summary).
Bagian ringkasan adalah bagian laporan yang dicetak menjelang selesainya
laporan. Jadi, bagian ini selalu dicetak sesaat sebelum laporan selesai. Umumnya
bagian ini dapat kita gunakan untuk mencetak nama file yang dicetak, nama
operator komputer atau kita gunakan untuk mencetak total record yang tercetak,
seperti pada contoh laporan pada gambar 5.1.
24
Judul Header halaman Header grup Bagian rinci Footer grup RingkasanLAPORAN DATA MAHASISWA STMIK A
K
AKOM
N I M Nama
Kota
Telepon
Nama Ortu
Jurusan Manajemen Informatika02310017 Herman Sanjaya Surabaya 031654317 Sanjaya 02310038 Ernita Putri Utami Semarang 024753621 Ibnu Barata 03310001 Sri Hartati Bengkulu 0736357402 Heru Indrayana 03310002 Jaka Saputra Sleman 027453621 Hari Jayanto 03310003 Lusi Andriani Medan 0757363165 H. Subakri 03310004 Rina Azizah Bantul 027453621 Muhammad Safei 03310005 Abi Saputra Bekasi 0218893266 Panca Trijaya 03310006 Lukman Hakim Riau 0273346466 Muhammad Hasyim 03310007 Indrianingsih Klaten 071652317 Harjono
03310008 Febtyana Sudihartini Bekasi 0218865467 Sudiri Saputra Subtotal item : 1
Total item yang dicetak : 5
Gambar 5.1. Contoh suatu laporan.
Contoh pembuatan laporan :
1. Membuat Suatu Database.
Langkah-langkahnya :
1. Pilih
Menu
Tools | Database Desktop, setelah database desktop aktif pilih menu
File -> New -> Table.
25
3. Lalu akan muncul kotak dialog untuk pembuatan tabel yaitu : Create Paradox 7
Table. Dan disinilah kita akan mengisikan field-field untuk tabel yang akan
dibuat.
4. Simpan tabel tersebut dengan nama DataPribadiMahasiswa pada direktori yang
diinginkan dengan cara memilih tombol SaveAs. Jika menginginkan tabel baru,
ulangi langkah-langkah diatas.
2. Membuat Koneksi ke Database Melalui BDE.
Langkah-langkahnya :
1. Pilih menu Start – Settings – Control Panel pada system operasi windows,
kemudian pilihlah icon BDE Administrator.
2. Setelah muncul kotak dialog BDE Administrator, pilih menu Object – New dan
akan muncul kotak dialog New Database Alias, dan pilihlah nama driver
databasenya STANDART.
26
3. Kemudian klik OK, maka tampilannya menjadi :
4. Jika nama aliasnya sudah diisikan (misalnya DataMahasiswa), pilih menu
Object – Apply, kemudian akan muncul kotak dialog konfirmasi dan pilihlah
tombol OK. Sehingga tampilannya akan menjadi :
Isikan nama aliasnya
Isikan lokasi (path ) dari databasenya
nama aliasnya
27
3. Membuat Form Utama untuk Input Data.
Rancangan Formnya :
Sintak programnya :
1. File Unitlaporan.h
//--- #ifndef UnitlaporanH #define UnitlaporanH //--- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Db.hpp> #include <DBTables.hpp> //--- class TForm1 : public TForm{
__published: // IDE-managed Components TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label5; TLabel *Label6; TEdit *Edit1; TEdit *Edit2; TEdit *Edit3; TEdit *Edit4; TEdit *Edit5; TEdit *Edit6; TButton *Button1; TButton *Button3; TQuery *Query1; TButton *Button2;
28
void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: // User declarations
public: // User declarations
void Kosongkan();
__fastcall TForm1(TComponent* Owner); };
//--- extern PACKAGE TForm1 *Form1;
//--- #endif
2. Unitlaporan.cpp
//--- #include <vcl.h> #pragma hdrstop #include "Unitlaporan.h" #include "UnitTampilLaporan.h" //--- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){ }
//--- void __fastcall TForm1::Button3Click(TObject *Sender) {
Close(); }
//--- void __fastcall TForm1::Button1Click(TObject *Sender) {
Query1->DatabaseName="DataMahasiswa"; Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO DataPribadiMahasiswa (NIM,Nama,Jurusan,Kota,Telepon,Ortu) VALUES");
Query1->SQL->Add("('"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+Edit6->Text+"')");
Query1->ExecSQL();
ShowMessage(AnsiString("Data Sudah Tersimpan...")); Kosongkan(); Edit1->SetFocus(); } //--- void TForm1::Kosongkan() { Edit1->Text = ""; Edit2->Text = ""; Edit3->Text = ""; Edit4->Text = "";
29
Edit5->Text = ""; Edit6->Text = ""; }
//--- void __fastcall TForm1::Button2Click(TObject *Sender) { Form2->Show(); Form1->Hide(); } //---
Hasil eksekusi :
3. Membuat Form untuk Hasil Laporan.
Rancangan Formnya :
Sintak programnya :
1. File UnitTampilLaporan.h
//--- #ifndef UnitTampilLaporanH #define UnitTampilLaporanH //---30
#include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Db.hpp> #include <DBTables.hpp> #include <ExtCtrls.hpp> #include <QuickRpt.hpp> #include <Qrctrls.hpp> //--- class TForm2 : public TForm{
__published: // IDE-managed Components TQuickRep *QuickRep1; TQuery *Query1; TButton *Button1; TQRBand *QRBand1; TQRLabel *QRLabel1; TQRBand *QRBand3; TQRShape *QRShape7; TQRShape *QRShape10; TQRShape *QRShape11; TQRShape *QRShape12; TQRDBText *QRDBText1; TQRShape *QRShape8; TQRDBText *QRDBText2; TQRDBText *QRDBText4; TQRDBText *QRDBText5; TQRDBText *QRDBText6; TQRBand *QRBand2; TQRShape *QRShape6; TQRShape *QRShape5; TQRShape *QRShape4; TQRShape *QRShape1; TQRShape *QRShape2; TQRLabel *QRLabel2; TQRLabel *QRLabel3; TQRLabel *QRLabel5; TQRLabel *QRLabel6; TQRLabel *QRLabel7; TQRBand *QRBand4; TQRSysData *QRSysData1; TQRBand *QRBand5; TQRSysData *QRSysData2; TQRShape *QRShape3; TQRLabel *QRLabel4; TQRDBText *QRDBText3; TQRShape *QRShape9; TButton *Button2;
void __fastcall Button1Click(TObject *Sender); void __fastcall FormCreate(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner); };
//--- extern PACKAGE TForm2 *Form2;
31
//--- #endif2. UnitTampilLaporan.cpp
//--- #include <vcl.h> #pragma hdrstop #include "Unitlaporan.h" #include "UnitTampilLaporan.h" //--- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner){ }
//--- void __fastcall TForm2::Button1Click(TObject *Sender) {
QuickRep1->Preview (); }
//--- void __fastcall TForm2::FormCreate(TObject *Sender) {
QuickRep1->Visible = false; }
//--- void __fastcall TForm2::Button2Click(TObject *Sender) {
Form1->Show(); }
//---
3. Sintaks property SQL untuk Query1
Select NIM,Nama,Jurusan,Kota,Telepon,Ortu From DataPribadiMahasiswa