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.
22
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.
23
LAPORAN DATA MAHASISWA STMIK AKAKOM NIM
Nama
Kota
Jurusan Manajemen Informatika
Telepon
Nama Ortu
Header halaman
Header grup
02310017
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
Judul
Footer grup
Total item yang dicetak : 5
Ringkasan 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.
2. Kemudian akan muncul kotak dialog Create Table, lalu pilih tipe Paradox 7.
24
Bagian rinci
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.
25
3. Kemudian klik OK, maka tampilannya menjadi :
Isikan lokasi (path ) dari databasenya Isikan nama aliasnya
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 :
Lokasi (path ) dari databasenya nama aliasnya
26
3. Membuat Form Utama untuk Input Data. Rancangan Formnya :
Sintak programnya : 1. File Unitlaporan.h //--------------------------------------------------------------------------#ifndef UnitlaporanH #define UnitlaporanH //--------------------------------------------------------------------------#include
#include #include <StdCtrls.hpp> #include #include #include //--------------------------------------------------------------------------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; void __fastcall Button3Click(TObject *Sender);
27
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 #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 = "";
28
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 //---------------------------------------------------------------------------
29
#include #include #include <StdCtrls.hpp> #include #include #include #include <ExtCtrls.hpp> #include #include //--------------------------------------------------------------------------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;
30
//--------------------------------------------------------------------------#endif
2. UnitTampilLaporan.cpp //--------------------------------------------------------------------------#include #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
Hasil eksekusi :
31
Tampilan laporan :
III. Praktek Buatlah suatu form masukkan dan laporan seperti diatas dengan menggunakan Borland C++ Builder dan lampirkan listingnya. VI. Tugas Buatlah suatu form masukkan dan laporan dari suatu data obat-obatan dengan menggunakan Borland C++ Builder dan lampirkan listingnya.
32