database laptop
DESCRIPTION
berisi tentang segala database laptopTRANSCRIPT
MAKALAH DATABASE PENJUALAN LAPTOP
Diajukan Untuk Memenuhi Tugas Besa Mata Kuliah Praktikum Pemrograman IIDosen : Sufa’atin
Disusun Oleh :Rizky Badai Ilhami 10108151
JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIABANDUNG
2010
ABSTRAKSI
Aplikasi ini merupakan aplikasi pengolahan data penjualan laptop yang
bertujuan untuk menampilkan data laptop yang telah diinputkan, data yang dihasilkan
berupa informasi tentang spesifikasi, harga, dan gambar laptop berdasarkan vendor
tertentu.
Disini hak akses penuh debirikan kepada administrator, yang bertujuan untuk
memasukkan, menyunting dan menghapus data yang telah disediakan ataupun data
baru. Selain administrator, user biasa yang belum login hanya dapat melihat form
programmer dan form deskripsi program saja.
Tujuan dari pembuatan aplikasi ini adalah untuk memudahkan suatu toko
dalam mengelola dan memantau penjualan laptop yang ada. Membuat laporan
penjualan laptop dan menampilkan stok laptop yang tersedia dan akan ter-update
secara otomatis ketika terjadi pembelian laptop.
Semoga aplikasi ini dapat berguna bagi kita semua..
Amin…
i
KATA PENGANTAR
Puji syukur saya panjatkan kehadirat Allah SWT, karena berkat rahmat dan
seijin-Nya tugas akhir mata kuliah Praktikum Pemograman II dapat terselesaikan
dengan tepat waktu, dengan mengambil judul topik “DATABASE PENJUALAN
LAPTOP”.
Adapun tujuan dari pembuatan tugas ini, untuk memenuhi salah satu tugas
mata kuliah Praktikum Pemograman II. Saya juga berterima kasih kepada semua
pihak terutama atas bimbingan Ibu Sufa’atin selaku dosen mata kuliah Praktikum
Pemograman II dan rekan-rekan yang telah memberikan kontribusi baik yang
langsung maupun tidak langsung, sehingga tugas ini dapat terselesaikan.
Penulis menyadari bahwa tugas yang dibuat masih jauh dari sempurna, oleh
sebab itu saran dan kritik yang sifatnya membangun senantiasa kami nantikan.
Demikian tugas ini saya buat, kiranya bisa menjadi sarana pembelajaran untuk
mahasiswa, terutama yang menyangkut Praktikum Pemograman II.
Bandung, Juni 2010
Penulis
ii
DAFTAR ISIABSTRAKSI..................................................................................................................i
KATA PENGANTAR...................................................................................................ii
DAFTAR ISI.................................................................................................................iii
BAB I PENDAHULUAN..............................................................................................1
1.1 Latar Belakang Masalah..................................................................................1
1.2 Identifikasi Masalah........................................................................................1
1.3 Batasan Masalah..............................................................................................2
1.4 Maksud danTujuan..........................................................................................2
1.5 Sistematika Penulisan......................................................................................2
BAB II STRUKTUR DATABASE...............................................................................3
2.1 Database Penjualan Laptop.............................................................................3
2.2 Spesifikasi Tabel.............................................................................................3
2.3 Perancangan Tabel...........................................................................................4
BAB III TAMPILAN DATABASE LAPTOP..............................................................8
3.1 Tampilan Komponen.......................................................................................8
3.2 Pembuatan Laporan Penjualan Laptop..........................................................26
BAB IV KESIMPULAN DAN SARAN.....................................................................29
4.1 Kesimpulan....................................................................................................29
4.2 Saran..............................................................................................................29
Kontribusi Masing-masing Anggota:...........................................................................30
Lampiran.........................................................................................................................i
iii
BAB I PENDAHULUAN
I.1 Latar Belakang Masalah
Adapun pengertian dari Database adalah suatu kumpulan data yang saling berhubung yang disimpan secara bersama-sama pada suatu media tanpa mengatap satu sama lain atau tidak perlu suatu kerangkapan data dengan cara tertentu sehingga mudah untuk digunakan atau ditampilkan kembali.
Database dapat dibayangkan sebagai lemari arsip, jika kita memiliki sebuah lemari arsip dan bertugas untuk mengelolanya, maka kemungkinan besar kita melakukan hal-hal seperti: menginputkan data, mengedit data, dan menyimpannya dalam media tersebut yaitu DataBase. Dimana Database tersebut dapat menyimpan data-data yang user masukan.
Tujuan utama dari buatnya Database adalah kemudahan dan kecepatan dalam pengambilan data seperti keakuratan, keamanan, dan kelengkapan karena dalam DataBase sangat terjamin, keamanannyapun dapat terjamin.
Aplikasi Database menghasilkan sebuah kehidupan lain yang sama mirip dengan dunia sebenarnya. Interaksi antara media elektronis dengan kemajuan teknologi sekarang.
Pada tugas ini akan dipaparkan rancang bangun aplikasi Database yang akan difokuskan pada kemudahan dalam mengelola data. Dalam hal ini aplikasi Database dibuat menggunakan Borland Delphi 7.0
I.2 Identifikasi Masalah
Dari latar belakang masalah yang ada maka penulis membahas permasalahan yang ada sebagai berikut :
Kemudahan dalam mengelola data media elektronis. Seberapa bermanfaat aplikasi ini dalam kehidupan sehari-hari Masih adanya kekurangan aplikasi DataBase yang dibuat.
1
I.3 Batasan Masalah
Dalam pembuatan database yang penulis buat maka penulis memberi batasan dalam Aplikasi DataBase seperti:
Admin adalah user yang diberi hak penuh untuk memanipulasi data, dengan syarat harus login terlebih dahulu.
Menambahkan data laptop yang dijual. Menghapus data yang ada. Melihat stok barang dan harga. Membuat laporan penjualan.
I.4 Maksud danTujuan
Maksud dari penulisan tugas ini adalah sebagai salah satu syarat kelulusan mata kuliah Praktikum Pemograman II, sedangkan yang menjadi tujuan dari penulisan tugas ini adalah mengimplementasikan mengenai cara mudah dalam mengelola data di Database.
I.5 Sistematika Penulisan
Sistematika penyusunan tugas ini dibagi dalam beberapa bab dengan pokok pembahasan. Sistematika secara umum adalah sebagai berikut :
BAB I PendahuluanBab ini membahas tentang latar belakang masalah, identifikasi masalah, batasan masalah, maksud dan tujuan, dan sistematika penulisan.
BAB II Struktur DataBaseBab ini akan membahas mengenai penjelasan Database Laptop yang dibuat dalam progam Delphi7 beserta menampilkan capture dari masing-masing tabel (paradox7).
BAB III Tampilan DataBase HandphoneBab ini menampilkan perancangan Datasase yang dibuat.
BAB IV Kesimpulan dan SaranBab ini terdiri dari kesimpulan yang berisikan kesimpulan dari pembahasan yang dipaparkan dari keseluruhan tulisan.
2
BAB II STRUKTUR DATABASE
II.1 Database Penjualan Laptop
Dalam tugas Database yang kami buat, kami mengambil topik Database penjualan laptop pada suatu toko. Dimana penulis membuat Database ini untuk memudahkan suatu toko dalam mengelola penjualan laptop yang ada.
Spesifikasi software Database penjualan Laptop : Dapat mengelola data Merk, Laptop, Pelanggan dan Transaksi Penjualan.
Untuk setiap pengolahan data harus tersedia fasilitas Penambahan, Pengeditan, Penghapusan dan Pencarian data kecuali pada Transaksi Penjualan tidak ada Penghapusan.
Dapat melakukan operasi penjualan laptop. Dapat mencetak Laporan Merk, laptop, Pelanggan dan Penjualan baik
keseluruhan atau berdasarkan kriteria tertentu.
Berdasarkan spesifikasi software, dapat disimpulkan bahwa sistem yang akan dibangun terdiri dari data berikut :
a) Data Merkb) Data Laptop c) Data Pelanggand) Data Penjualan
II.2 Spesifikasi Tabel
Spesifikasi untuk data Merk : Kode Merk harus unik tidak boleh sama Data yang di simpan Nama Merk Dapat melakukan pencarian pada field Kode dan Nama Merk.
Spesifikasi untuk data laptop : Kode barang harus dapat dimasukan dengan menggunakan pengkodean
Barcode Data yang di simpan Seri, Nama Laptop, Jenis, Harga Beli, Harga Jual,
Stock, Stock Minimal, Spesifikasi Laptop dan Gambar Harga dibedakan menjadi HargaBeli dan HargaJual Dapat melakukan pencarian pada field Kode, Seri dan Nama.
3
Spesifikasi untuk data Pelanggan : Kode Pelanggan harus unik Data yang di simpan Nama Pelanggan, Alamat, Kota, No Telepon dan
EMail. Dapat melakukan pencarian pada field Kode, Nama Kota dan email.
Spesifikasi untuk data Penjualan : Sebuah faktur memiliki nomor faktur berupa angka yang terus bertambah
(autoincrement) Sebuah faktur boleh terdiri dari lebih dari 1 item penjualan. Ini
menandakan bahwa kita memiliki 2 tabel yaitu tabel penjualan (Faktur) dan tabel Isi Faktur (Detail Penjualan) yang mempunyai relasi One-To-Many (satu ke banyak)
Data yang disimpan dalam faktur(tabel penjualan) terdiri dari kode pelanggan, tanggal dan waktu transaksi, total pembayaran.
Data yang disimpan dalam item faktur (Detail Penjualan) adalah data barang, harga, quantity.
Pada proses pengolahan data penjualan, hal yang harus diperhatikan ketika membuat transaksi penjualan baru. Disarankan untuk membuat tabel temporary item penjualan. Jika transaksinya telah benar-benar terjadi (tidak dibatalkan), maka data yang ada di tabel item temporary penjualan akan dipindahkan ke tabel penjualan. Jika transaksi dibatalkan, maka data yang ada ditabel temporary item akan dihapus dan tidak ditambahkan ke tabel penjualan.
II.3 Perancangan Tabel
Pertama-tama buka Database Desktop ->File ->New ->Table, kemudian isi Table type Paradox 7 pilih OK.
Gambar 2.1. Tampilan Create Table
4
Buat Tabel data Merk kemudian save dengan nama Merk.db
Gambar 2.2. Tampilan Table Merk.db
Secondary Index:Nama Index Index Field Unique Maintained Case Sencitive Descending
idxMerk NamaMerk √
Buat Tabel data Handphone kemudian save dengan nama Laptop.db
Gambar 2.3. Tampilan Table Handphone.db
Secondary Index:Nama Index Index Field Unique Maintained Case Sencitive Descending
idxJenis Jenis √idxNama NamaLaptop √idxSeri Seri √
5
Buat Tabel data Pelanggan kemudian save dengan nama Pelanggan.db
Gambar 2.4 Tampilan Table Pelanggan.db
Secondary Index:Nama Index Index Field Unique Maintained Case Sencitive Descending
idxEmail Email √idxKota kota √idxNama Nama √
Buat Tabel data Penjualan kemudian save dengan nama Penjualan.db
Gambar 2.5 Tampilan Table Penjualan.db
6
Secondary Index:
Nama Index Index Field Unique MaintainedCase
SencitiveDescending
idxwaktu Waktu √idxkode kode √
Buat Tabel data Detail Penjualan kemudian save dengan nama DetaiPenjualan.db
Gambar 2.6. Tampilan Table DetaiPenjualan.db
Buat Tabel Temporary kemudian save dengan nama TempItemJual.db
Gambar 2.7. Tampilan Table TempItemJual.db
7
BAB III
TAMPILAN DATABASE LAPTOP
III.1 Tampilan Komponen
Data Module digunakan untuk memusatkan komponen-komponennon visual (komponen yang ketika dirun tidak terlihat di form seperti komponen database, dialog, dan lain-lain).
Langkah membuat Data Module, adalah : Klik File New Data Module Klik Data Module, ganti properti Name dengan DM (agar lebih singkat) Simpan data module dengan mengklik File Save. Simpan dengan nama file UDM.pas (Unit Data Module)
Gambar 3.1. Tampilan Data Modul
1. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : Merk.db Active : True Name : TMerk
2. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsMerk DataSet : Tmerk
3. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : Laptop.db Active : True Name : TLaptop
4. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsLaptop DataSet : TLaptop
5. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias)
8
TableName : Pelanggan.db Active : True Name : TPelanggan
6. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsPelanggan DataSet : TPelanggan
7. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : Penjualan.DB Active : True Name : TPenjualan
8. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsPenjualan DataSet : TPenjualan
9. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : DetailPenjualan.DB Active : True Name : TdetailPenjualan IndexFieldName : NomorPenjualan MasterField : Nomor MasterSource : DSPenjualan
10. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsDetailPenjualan DataSet : TDetaiPenjualan
11. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : TempItemJual.db Active : True Name : TTempItemJual
12. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsTempItemJual DataSet : TTempItemJual
13. Tempatkan sebuah komponen Query ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias) TableName : Active : True
9
Name : Query114. Tempatkan sebuah komponen DataSource ke Data Module DM, isi properti tersebut
Name : DsQuery DataSet : Query1
Kemudian rancanglah form-form yang di butuhkan, sebelumnya harus di ingat dalam setip from harus di Use Unit terlebih dahulu ke Data Module, di karenakan tiap form akan menggunakan data yang ada pada data Module. Caranya klik File -> Use Unit. Pilih file UDM.pas, kemudian klik tombol OK.
Form Menu Utama
Gambar 3.2. Tampilan Menu Utama
Komponen-Komponen yang di butuhkan :
1. Form, dengan propertiCaption : Toko Penjualan LaptopName : Futama
2. MainMenu1Name : DefaultItems :
Data (Merk, Laptop, Pelanggan)
Transaksi (Penjualan, SQL)
Laporan (L.Merk, L.Laptop, L. Pelanggan, L.Penjualan)
About (Programmer, Deskripsi Program)
3. Panel1, dengan propertiAlign : alLeftColor : clMoneyGreen
Komponen : Groupbox1
Caption : Log InHeight : 145
BitBtn1 Caption : Log InCursor : crArrow
10
Name : TLogin BitBtn2
Caption : Log OutName : TlogoutVisible: false
Edit1Name : defaultText : (Kosongkan)
Edit2Name : defaultText : (Kosongkan)
SpeedButton1Hint : CloseShowHint : TrueName : TClose
4. Panel2, dengan propertiAlign : alTopColor : clMoneyGreenHeight : 36TabOrder : 1Top : 41Width : 549
Komponen : Label1
Caption : Sistem Informasi Penjualan LaptopFont : Tw Cen MTfsBold : TruefsItalic : True
5. Panel3, dengan propertiAlign : alTop
Komponen :
SpeedButton1Name : defaultGlyph :
data_table.bmpHint : pengolahan
data merkShowHint : True
SpeedButton2Name : defaultGlyph : computer-
network copy.bmpHint : pengolahan
data laptopShowHint : True
SpeedButton3Name : defaultGlyph : users
copy.bmpHint : pengolahan
dataPelanggan
ShowHint : True SpeedButton4
Name : defaultGlyph : books
copy.bmp SpeedButton5
Name : defaultGlyph :sql copy.bmpHint : pengolahan
data penjualan
ShowHint : True
6. Timer7. ImageListToolbar8. MainMenu19. XPManifest110. StatusBar111. Image1
Form Pengolahan Data Merk
11
Gambar 3.3. Tampilan Form Pengolahan Data Merk
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengolahan Data MerkName : Fmerk
Komponen : DBGrid1
DataSource : DM.DsMerk2. Panel1, dengan properti
Align : alTopCaption : Data Merk LaptopFont : Tw Cen MTfsBold : TruefsItalic : True
3. Panel2, dengan propertiAlign : alBottom
Komponen : GroupBox1
Caption : Pencarian Edit1
Name : EcariText : (Kosongkan)
BitBtn1Caption : CariGlyph : cari.bmp
BitBtn2Caption : Nearest
Glyph : binocular.bmp
GroupBox2Caption : Berdasarkan
RadioButton1Caption : Kode MerkName : RBKode
RadioButton2Caption : Nama MerkName : RBNama
SpeedButton1Glyph : arrow-stop-180.bmpName : default
SpeedButton2Glyph : arrow-180.bmpName : default
SpeedButton3Glyph : arrow.bmpName : default
SpeedButton4Glyph : arrow-stop.bmpName : default
BitBtn1Caption : Tambah
12
Glyph : plus.bmpName : TTambah
BitBtn2Caption : EditGlyph : edit.bmpName : TEdit
BitBtn3
Caption : HapusGlyph : delete_16x16.bmpName : THapus
BitBtn4Caption : TutupGlyph : exit.bmpName : TTutup
4. StatusBar1
Form Pengisian Merk
Gambar 3.4 Tampilan Form Pengisian Merk
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengolahan Isi Data MerkName : FIsiMerk
2. Panel1, dengan propertiAlign : alClient
Komponen : GroupBox1
Caption : Isi Merk DBEdit1
Name : defaultDataSource : DM.DsMerkDataField : KodeMerk
DBEdit2Name : defaultDataSource : DM.DsMerkDataField : NamaLaptop
Label1
Caption : KodeMerk Label2
Caption : NamaLaptop BitBtn1
Caption : SimpanGlyph : disks-black copy.bmpName : TSimpan
BitBtn2Caption : BatalGlyph : cross-script.bmpName : TBatal
3. Panel2, dengan propertiAlign : alTopCaption : Pengisian MerkFont : Tw Cen MTfsBold : TruefsItalic : True
13
4. StatusBar5. XPManifest1
Form Data Laptop
Gambar 3.5 Tampilan Data Laptop
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengolahan Data LaptopName : FLaptop
2. DBGrid1Align : alClientName : defaultDataSource : DM.DsLaptop
3. Panel1Align : alTopKomponen :
GroupBox1Caption : Pencarian
Edit1Name : Ecari
BitBtn1Caption : CariGlyph : cari.bmp
BitBtn2Caption : NearestGlyph : binocular.bmp
GroupBox2Caption : Pengurutan
RadioButton1Caption : KodeName : RBKode
RadioButton2Caption : SeriName : RBSeri
RadioButton3Caption : NamaName : RBNama
4. Panel2Align : alBottomKomponen :
DBImage1Name : defaultDataField : GambarDataSource : DM.DsLaptop
DBMemo1Name : default
DataField :SpesifikasiDataSource : DM.DsLaptop SpeedButton1
Glyph : arrow.bmp
14
SpeedButton2Glyph : arrow-stop-
180.bmp SpeedButton3
Glyph : arrow-180.bmp SpeedButton4
Glyph : arrow-stop.bmp SpeedButton1
Caption : TambahGlyph : plus.bmpName : TTambah
SpeedButton2
Caption : EditGlyph : edit.bmp
Name : TEdit SpeedButton3
Caption : HapusGlyph : delete.bmp
Name : THapus SpeedButton4
Caption : TutupGlyph : exit.bmpName : TTutup
Form Pengolahan Data Laptop
Gambar 3.6 Tampilan Isi Data Laptop
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengolahan Data Isi LaptopName : FisiLaptop
2. Components1, dengan propertiAlign : alClientsKomponen :
Panel1Align : alTopCaption : Isi Laptop
Panel2Align : alClient
Caption : (Kosongkan) GroupBox2
Caption : Pengisian Gambar dan Spesifikasi
DBImage2Name : defaultDataField : GambarDataSource : DM.DsLaptop
DBMemo2Name : defaultDataField : SpesifikasiDataSource : DM.DsLaptop
15
Label10Caption : Gambar
Label11Caption : Spesifikasi
BitBtn1Caption : BrowseName : TBrowseGlyph : DIRECTRY.bmp
BitBtn2Caption : HapusName : THapusGlyph : delete_16x16.bmp
GroupBox3Caption : Pengisian Data Laptop
DBEdit1Name : defaultDataField : KodeLaptopDataSource : DM.DsLaptop
DBEdit2Name : defaultDataField : SeriDataSource : DM.DsLaptop
DBEdit5Name : defaultDataField : HargaBeliDataSource : DM.DsLaptop
DBEdit6Name : defaultDataField : HargaJualDataSource : DM.DsLaptop
DBEdit7Name : defaultDataField : StockDataSource : DM.DsLaptop
DBEdit8Name : defaultDataField : StockMinimalDataSource : DM.DsLaptop
ComboBox1Name : CBLaptopItems : Intel
DBLookupComboBox1Name : defaultKeyField : NamaLaptop
ListField : KodeMerkListSource : DM.DsMerk
Label1Caption : KodeLaptopFocusControl : DBEdit1Name : default
Label2Caption : SeriFocusControl : DBEdit2Name : default
Label3Caption : NamaLaptopFocusControl : DBLookupComboBox1Name : default
Label4Caption : JenisFocusControl : CBLaptopName : default
Label5Caption : HargaBeliFocusControl : DBEdit5Name : default
Label6Caption : HargaJualFocusControl : DBEdit6Name : default
Label7Caption : StockFocusControl : DBEdit7Name : default
Label8Caption : StockMinimalFocusControl : DBEdit8Name : default
BitBtn1Caption : BatalName : TbatalGlyph : cross-script.bmp
BitBtn2Caption : SimpanName : TsimpanGlyph : disks-black copy.bmp
OpenDialog1
16
3. StatusBar1
Form Pengolahan Data Pelanggan
Gambar 3.7 Tampilan Data Pelanggan
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Data PelangganName : FPelanggan
2. DBGrid1, dengan propertyAlign : alClientName : defaultDataSource : DM.DsPelanggan
3. Panel1, dengan propertiAlign : alTopKomponen :
GroupBox1Caption : PencarianName : default
Edit1 Name : EcariBitBtn1Caption : CariGlyph : cari.bmp
BitBtn2Caption : NearestGlyph : binocular.bmp
GroupBox2Caption : Pengurutan
Name : default RadioButton1
Caption : KodeName : CBKode
RadioButton2Caption : NamaName : CBNama
RadioButton3Caption : KotaName : CBKota
RadioButton4Caption : EmailName : CBEmail
4. Panel2, dengan propertyAlign : alBottom
SpeedButton1Glyph : arrow-stop-180.bmp
SpeedButton2Glyph : arrow.bmp
SpeedButton3Glyph : arrow-stop.bmp
SpeedButton4
17
Glyph : arrow-180.bmp BitBtn1
Caption : TambahGlyph : plus.bmpName : TTambah
BitBtn2Caption : EditGlyph : edit.bmpName : TEdit
BitBtn3Caption : Hapus
Glyph : delete_16x16.bmpName : THapus
BitBtn4Caption : TutupGlyph : exit.bmpName : TTutup
5. Panel3, dengan propertyAlign : alTopCaption : Pelanggan
6. StatusBar1
Form Pengisian Data Pelanggan
Gambar 3.8 Tampilan Isi Data Pelanggan
Komponen-Komponen yang di butuhkan :
1. Form, dengan propertiCaption : Pengolahan Data Isi PelangganName : FisiPelanggan
2. Panel1, dengan propertiAlign : alTopCaption : Pelanggan
3. Panel2, dengan propertiAlign : alClientKomponen :
GroupBox1Caption : PengisianName : default
ComboBox1
Name : CBJKelaminItems : L P
DBEdit1Name : defaultDataField : KodeDataSource : DM.DsPelanggan
DBEdit2Name : defaultDataField : NamaDataSource : DM.DsPelanggan
DBEdit4
18
Name : defaultDataField : KotaDataSource : DM.DsPelanggan
DBEdit5Name : defaultDataField : NoTeleponDataSource : DM.DsPelanggan
DBEdit6Name : defaultDataField : EmailDataSource : DM.DsPelanggan
DBMemo1Name : defaultDataField : AlamatDataSource : DM.DsPelanggan
Label1Caption : KodeFocusControl : DBEdit1Name : default
Label2Caption : NamaFocusControl : DBEdit2Name : default
Label3
Caption : JenisKelaminFocusControl : CBJKelaminName : default
Label4Caption : AlamatFocusControl : DBMemo1Name : default
Label5Caption : KotaFocusControl : DBEdit4Name : default
Label6Caption : NoTeleponFocusControl : DBEdit5Name : default
Label7Caption : EmailFocusControl : DBEdit6Name : default
BitBtn1Caption : SimpanGlyph : disks-black copy.bmpName : TSimpan
BitBtn2Caption : BatalGlyph : cross-script.bmpName : TBatal
Form Transaksi Penjualan
19
Gambar 3.9 Tampilan Transaksi Penjualan
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengolahan Data PenjualanName : FPenjualan
2. Panel1, dengan propertiAlign : alTopCaption : Pengolahan Data Penjualan
3. Panel2, dengan propertiAlign : alBottomKomponen :
GroupBox1Align : alNoneCaption : Pencarian
Edit1Name : EcariText : (Kosongkan)
BitBtn1Caption : NearestName : TNearestGlyph : binocular.bmp
SpeedBotton1
Caption : (Kosongkan)Glyph : arrow-180.bmpName : default
SpeedBotton2Caption : (Kosongkan)Glyph : arrow-stop-180.bmpName : default
SpeedBotton3Caption : (Kosongkan)Glyph : arrow-stop.bmpName : default
SpeedBotton4Caption : (Kosongkan)Glyph : arrow.bmpName : default
BitBtn2Caption : Penjualan BaruGlyph : blueprint--pencil copy.bmpName : TPenjualan
BitBtn3Caption : Tutup
20
Glyph : cross-script.bmp
Name : TTutup
4. Panel3, dengan propertiAlign : alTopCaption : Perincian Faktur Penjualan
5. DBGrid2, dengan propertiAlign : alClientName : defaultDataSource : DM.DsDetailPenjualan
6. DBGrid3Align : alTopName : defaultDataSource : DM.DsPenjualan
Form Pembuatan Faktur Baru
Gambar 3.10 Tampilan Pembuatan Faktur Baru
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengisian PenjualanName : FIsiPenjualan
2. Panel1, dengan propertiAlign : alTopCaption : Isi Penjualan
3. Panel2, dengan propertiAlign : alBottom
BitBtn1Caption : Tambah ItemGlyph : plus.bmpName : TTambah
BitBtn2Caption : EditGlyph : edit.bmpName : TEdit
21
BitBtn3Caption : HapusGlyph : delete.bmpName : THapus
BitBtn4Caption : SelesaiGlyph : disks-black copy.bmpName : TSelesai
4. Panel3, dengan propertiAlign : alTop
Komponen : GroupBox1
Caption : Pengisian Edit1
Name : EkodeText : (Kosongkan)
Edit2Name : ENamaText : (Kosongkan)
Edit3Name : EJKText : (Kosongkan)
Edit4Name : EAlamatText : (Kosongkan)
Edit5Name : ENoTelepon
Text : (Kosongkan)
Edit6Name : EKotaText : (Kosongkan)
Label1Caption : JeknisKelamin
Label2Caption : Nama
Label4Caption : Alamat
Label5Caption : Kota
Labe6Caption : NoTelepon
Label8Caption : Kode
BitBtn5Caption : Menampilkan DataGlyph : blue-folder-open-document-text copy.bmpName : TCari
BitBtn6Caption : Data PelangganGlyph : database copy.bmpName : TData
5. StatusBar1
Form Pengisian Itemp Jual Laptop
22
Gambar 3.11 Tampilan Pembuatan item jual laptop
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Pengisian JualName : FIsiItempJual
2. Panel1, dengan propertiAlign : alTopCaption : item jual
3. Panel2, dengan propertiAlign : alBottom
GroupBox1Caption : Pengisian
DBEdit1Data field : KodeLaptopDataSource : DM.DsTempItemJual
DBLookupComboBox3Data field : SeriDataSource : DM.DsTempItemJual
DBLookupComboBox1Data field : NamaLaptopDataSource : DM.DsTempItemJual
DBEdit2Data field : HargaJual
DataSource : DM.DsTempItemJual
DBEdit3Data field : StockDataSource : DM.DsTempItemJual
DBEdit6Data field : QtyDataSource : DM.DsTempItemJual
DBEdit5Data field :SubTotalDataSource : DM.DsTempItemJual
Label1Caption : KodeLaptop
Label6Caption : seri
Label2Caption : NamaLaptop
Label3Caption : HargaJual
Labe5Caption : Stock
Label8Caption : Qty
Label7
23
Caption : SubTotal BitBtn1
Caption : SimpanGlyph : disks-black copy.bmpName : TSimpan
BitBtn2Caption : BatalGlyph : cross-script.bmpName : TBatal
Form Pengisian Sintak SQL
Gambar 3.11 Tampilan SQL
Komponen-Komponen yang di butuhkan :
1. Form, dengan propertiCaption : Pengolahan Data Query/SQLName : FSQL
2. Panel1, dengan propertiAlign : alTopCaption : Query/SQL
3. Panel3, dengan propertiAlign : alBottom
Komponen : GroupBox1
Caption : SQL Memo1
Name : MemoSQL
BitBtn1Caption : BukaGlyph : sql.bmpName : TBukaSQL
BitBtn2Caption : EksekusiSQL
24
Glyph : spell-check copy.bmpName : TEksekusiSQL
BitBtn3Caption : KeluarGlyph : exit.bmp
Name : TKeluar4. StatusBar15. DBGrid1
Name : defaultDataSource : DM.DsQuery
Form Profil Programmer
Gambar 3.13 Tampilan Programmer IF-4
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Profil ProgrammerName : Fprofil
GroipBox6 Label8Caption : QtyLabel17Caption : Thanks To...Label18Caption : Allah SWT...Label19Caption : terlepas dari...Label22Caption : Programing...Label23Caption :Bandung...Label24Caption TEAM:...
GroupBox7Bevel1,Bevel2,Bevel3Bevel4,Bevel5GroupBox1Name : Image3
GroupBox2Name : Image1GroupBox3Name : Image2
GroupBox4Name : Image4
GroupBox5 Name : Image5Label1Caption : RizkyLabel10Caption : 10108151
2. StatusBar1
Form Deskripsi Program
25
Gambar 3.13 Tampilan Deskripsi Program
Komponen-Komponen yang di butuhkan :1. Form, dengan properti
Caption : Deskripsi ProgramName : FDeskripsi
2. Panel1, dengan propertiAlign : alTopCaption : Deskripsi
3. Panel2, dengan propertiAlign : alClientMasukan Komponen : Image1
DataSource : DM.DsSQL Label1
Caption : Borland Label2
Caption : Delphi Label3
Caption : Enterprise Memo1 StatusBar1
III.2 Pembuatan Laporan Penjualan Laptop
Buka kembali program yang berisi program master detail. Pilih Menu File – New – Report, yang akan menampilkan sebuah report
kosong. kemudian pilih bands (bagian-bagian report)yang akan digunakan dengan
menekan tanda + pada properti Bands. Isi dengan nilai true pada band yang akan digunakan.
26
Gambar 3.14 Tampilan QuickReport1
Sub Detail diambil dari component pallete bagian QRReport dengan nama komponen QRSubdetail () dengan properties yang diubah adalah :
*Dataset : Dm.TLaptop*Band : HasFooter diisi dengan True
Isi tabel yang akan dibuat laporan dengan cara mengisi properti Dataset dari reportnya. Table yang akan dilaporkan boleh diambil dari form lain atau dari data module. Jika tabel yang akan dilaporkan ada di form lain atau di data module, maka gunakan Menu File – Use Unit pilih UDM untuk mengenalkan semua isi dari datamodule yang memiliki tabel yang akan dibuat laporannya. Kemudian isi properti datasetnya dengan DM.TPenjualan.
Ganti properti Name dari laporan, sesuaikan dengan kegunaan report tersebut contoh : Name : LapLaptop Kemudian simpan report tersebut dengan mengklik menu File – Save, isi nama filenya LapLaptop.pas.
Atur pula bagian Title, misalnya dengan mengisikan tanggal.
Atur pula bagian ColumnHeadernya dengan menempatkan QRLabel sebagai JudulKolom.
27
Atur pula bagian terpentingnya yaitu bagian Detail. Data-data yang ada dalam band Detail biasanya berasal dari database sehingga komponen yang dipakai di band tersebut adalah QRDBText.
Atur properti setiap QRDBText tersebut. Properti yang diatur adalah properti Dataset dan DataField. Isi dataset dengan DM.TPenjualan dan DataField disesuaikan dengan nama field yang akan dituliskan oleh QRDBText tersebut.
Atur pada bagian summary dengan menggunakan komponen QRDBText dengan mengubah properties Dataset dengan DM.TLaptop dan datafield sesuai dengan field yang ingin ditampilkan
Atur pada bagian PageFooter
Secara keseluruhan, desain report terlihat seperti gambar di bawah ini.
Gambar 3.14 Tampilan Rancangan LapPenjualan
28
Hasil dari laporan penjualan
Gambar 3.14 Tampilan Laporan Penjualan
BAB IV
KESIMPULAN DAN SARAN
IV.1 Kesimpulan
Dari hasil analisis terhadap aplikasi Database yang dirancang maka penulis dapat menarik kesimpulan sebagai berikut :
1. Aplikasi Database Penjualan Laptop ini merupakan aplikasi yang dapat mempermudah pengelolaan data penjualan pada suatu toko. Karena dapat menyimpan data barang dalam jumlah besar.
2. Aplikasi ini dapat digunakan pada toko-toko laptop yang memerlukan suatu aplikasi Database.
3. Database ini juga mudah dipahami oleh use awam, karena tidak rumit dalam penggunaannya.
IV.2 Saran
Dari hasil penelitian ini ternyata masih ditemukan banyak kekurangan, namun penulis berharap tulisan ini dapat menjadi acuan bagi pihak lain guna melanjutkan penelitian yang lebih baik lagi.
29
Kontribusi Masing-masing Anggota:
RIZKY BADAI ILHAMI (10108151) Memasukan Data Laptop
Pengisian makalah pada bagian komponen form laptop dan isi laptop
Pengisian makalah pada bagian form pelanggan.
Editor makalah.
Pembuatan stuktur table di Paradox.
GUNTUR GAMADI (10108147) Pengisian makalah pada bagian form programmer, menu dan menulis
Pembuat program aplikasi DataBase (coding+perancangan).
FERI PIKTORIA (10106427) Mendesain tampilan form-form.
Pemberi masukan pada Bab I dan mengetik Kesimpulan.
Memberi masukan mengenai form-form DataBase.
DIMAS RACHMAT PRATAMA (10106423) Mengetik makalah dan menulis abstraksi
Pengisian makalah pada bagian form merk, Deskripsi
Print screen form-form.
30
LampiranSource Code Program
Form DM (Perhitungan Calculated Field)procedure TDM.TLaptopCalcFields(DataSet: TDataSet);begin TLaptopKeuntungan.Value:=TLaptopHargaJual.value - TLaptopHargaBeli.value;end;
procedure TDM.TTempItemJualCalcFields(DataSet: TDataSet);begin TTempItemJualSubTotal.value:=TTempItemJualQty.value*TTempItemJualHargaJual.Value;end;
procedure TDM.TDetailPenjualanCalcFields(DataSet: TDataSet);beginTDetailPenjualanSubtotal.value:=TDetailPenjualanQty.value*TDetailPenjualanHarga.Value;end;end.
Form Menu Utamaprocedure TFUtama.SpeedButton1Click(Sender: TObject);begin FUtama.Hide; FMerk.ShowModal;end;
procedure TFUtama.Merk2Click(Sender: TObject);begin FUtama.Hide; FMerk.ShowModal;end;
procedure TFUtama.SpeedButton2Click(Sender: TObject);begin FUtama.Hide; FLaptop.ShowModal;end;
procedure TFUtama.SpeedButton3Click(Sender: TObject);begin FUtama.Hide; FPelanggan.ShowModal;
i
end;
procedure TFUtama.Pelanggan2Click(Sender: TObject);begin FUtama.Hide; FPelanggan.ShowModal;end;
procedure TFUtama.SpeedButton4Click(Sender: TObject);begin FUtama.Hide; FPenjualan.ShowModal;end;
procedure TFUtama.Penjualan1Click(Sender: TObject);begin FUtama.Hide; FPenjualan.ShowModal;end;
procedure TFUtama.Laptop1Click(Sender: TObject);begin FUtama.Hide; FLaptop.ShowModal;end;
procedure TFUtama.SpeedButton5Click(Sender: TObject);begin FUtama.Hide; FSQL.ShowModal;end;
procedure TFUtama.SQL1Click(Sender: TObject);begin FUtama.Hide; FSQL.ShowModal;end;procedure TFUtama.LPelanggan1Click(Sender: TObject);beginLapMerk.Preview;end;
procedure TFUtama.LLaptop1Click(Sender: TObject);beginLapLaptop.Preview;end;
procedure TFUtama.LPenjualan1Click(Sender: TObject);begin
ii
LapPelanggan.Preview;end;
procedure TFUtama.LaporanPenjualan1Click(Sender: TObject);beginLapPenjualan.Preview;end;
procedure TFUtama.LDetailPenjualan1Click(Sender: TObject);beginLapDetailPenjualan.Preview;end;
procedure TFUtama.keluar1Click(Sender: TObject);begin If MessageDlg('Anda Yakin Ingin Keluar ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then Application.Terminate;end;
procedure TFUtama.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginIf MessageDlg('Anda Yakin Ingin Keluar ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then CanClose := True else CanClose := False;end;
procedure TFUtama.Timer1Timer(Sender: TObject);begin NamaApp:=Copy(NamaApp,2,length(NamaApp)-1)+NamaApp[1]; StatusBar1.Panels[0].Text:=NamaApp; StatusBar1.Panels[1].Text:=FormatDateTime('dddd, dd-mmmm-yyyy hh:nn:ss',now);end;
procedure TFUtama.FormCreate(Sender: TObject);begin NamaApp := ' Sistem Informasi Penjualan Laptop ';end;
procedure TFUtama.TLogINClick(Sender: TObject);beginif ((Edit1.Text='a') and (Edit2.Text='1')) then begin //mengaktifkan Tools sesudah Login berhasil Data1.Enabled:=True; Trasaksi1.Enabled:=True; Laporan1.Enabled:=True; Panel3.Enabled:=true; TLogout.Visible:=True;
iii
end else begin ShowMessage('kode tidak sama'); end;
Edit1.Clear; Edit2.Clear;end;
procedure TFUtama.TLogoutClick(Sender: TObject);begin Data1.Enabled:=false; Trasaksi1.Enabled:=false; Laporan1.Enabled:=false; Panel3.Enabled:=false; TLogout.Visible:=false;end;procedure TFUtama.SpeedButton6Click(Sender: TObject);begin If MessageDlg('Anda Yakin Ingin Keluar ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then Application.Terminate; end;procedure TFUtama.DeskripsiProrgam1Click(Sender: TObject);begin FDeskripsi.ShowModal;end;
procedure TFUtama.Programer1Click(Sender: TObject);beginfProfil.showmodal;end;
end.
Form Merk
procedure TFMerk.RBKodeClick(Sender: TObject);begin DM.TMerk.IndexName:='';end;
procedure TFMerk.RBNamaClick(Sender: TObject);begin DM.TMerk.IndexName:='IdxNama';end;
procedure TFMerk.SpeedButton1Click(Sender: TObject);begin
iv
DM.TMerk.Prior; if DM.TMerk.Bof then ShowMessage('Anda Sudah di awal data');end;
procedure TFMerk.SpeedButton3Click(Sender: TObject);beginDM.TMerk.Last;end;
procedure TFMerk.SpeedButton2Click(Sender: TObject);begin DM.TMerk.First;end;
procedure TFMerk.SpeedButton4Click(Sender: TObject);begin DM.TMerk.Next; if DM.TMerk.Eof then ShowMessage('Anda Sudah di akhir data');end;
procedure TFMerk.TCariClick(Sender: TObject);var Ditemukan:Boolean;begin Ditemukan:=DM.TMerk.FindKey([ECari.Text]); if (Ditemukan=False) then ShowMessage('Data Tidak Ditemukan');end;procedure TFMerk.TNearestClick(Sender: TObject);begin DM.TMerk.FindNearest([ECari.Text]);end;
procedure TFMerk.TTutupClick(Sender: TObject);beginFUtama.Show;close;end;
procedure TFMerk.THapusClick(Sender: TObject);var Pesan:String;begin Pesan:='Anda yakin data berikut : '+#13+#13+ // #13 = Enter (pindah baris) 'Nama Laptop : '+DM.TMerkNama.value+#13+ 'akan dihapus?'; if MessageDlg(Pesan,mtConfirmation,[mbYes,mbNo],0)=mrYes then
v
begin DM.TMerk.Delete; end;end;
procedure TFMerk.TEditClick(Sender: TObject);begin DM.TMerk.Edit; // atau DM.Tmerk.Append; FIsiMerk.ShowModal;// Tampilkan Form Pengisian Data Merkend;
procedure TFMerk.TTambahClick(Sender: TObject);begin DM.TMerk.Insert; // atau DM.Tmerk.Append; FIsiMerk.ShowModal; // Tampilkan Form Pengisian Data Merkend;
procedure TFMerk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin FUtama.show; close;end;
end.
From Isi Merk
procedure TFIsiMerk.TBatalClick(Sender: TObject);beginif MessageDlg('Pengisian data dibatalkan ?',mtConfirmation, [mbYes,mbNo],0)=mrYes then begin DM.TMerk.Cancel; Close;// Tutup form FIsiBarang (Kembali ke FLaptop) end;end;
procedure TFIsiMerk.TSimpanClick(Sender: TObject);beginDM.TMerkKode.Value:=Trim(DM.TMerkKode.Value); // Hapus spasi yang tidak perlu if DM.TMerkKode.IsNull then begin ShowMessage('Kode merk tidak boleh kosong'); DBEdit1.SetFocus; Exit; end; // --------------------------------- Akhir dari validasi DM.TMerk.Post; // Simpan data Close;// Tutup form FIsiBarang (Kembali ke Flaptop)
vi
end;
procedure TFIsiMerk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginif DM.TMerk.State in [dsInsert, dsEdit] then // Jika Status masih kondisi Tambah / Edit begin CanClose:=False; // Layar tidak boleh ditutup ShowMessage('Gunakan tombol Simpan atau Batal untuk menutup window ini'); end;end;
end.
Form Laptopprocedure TFLaptop.RBKodeClick(Sender: TObject);beginDM.TLaptop.IndexName:='';end;
procedure TFLaptop.RBSeriClick(Sender: TObject);beginDM.TLaptop.IndexName:='IdxSeri';end;
procedure TFLaptop.RBNamaClick(Sender: TObject);beginDM.TLaptop.IndexName:='IdxNama';end;
procedure TFLaptop.RBStockClick(Sender: TObject);beginDM.TLaptop.IndexName:='IdxStock';end;
procedure TFLaptop.TCariClick(Sender: TObject);var Ditemukan:Boolean;begin Ditemukan:=DM.TLaptop.FindKey([ECari.Text]); if (Ditemukan=False) then ShowMessage('Data Tidak Ditemukan');end;
procedure TFLaptop.TNearestClick(Sender: TObject);beginDM.TLaptop.FindNearest([ECari.Text]);end;procedure TFLaptop.TTutupClick(Sender: TObject);
vii
beginfutama.show;close;end;
procedure TFLaptop.SpeedButton2Click(Sender: TObject);begin DM.TLaptop.Prior; if DM.TLaptop.Bof then ShowMessage('Anda Sudah di awal data');end;
procedure TFLaptop.SpeedButton1Click(Sender: TObject);beginDM.TLaptop.Last;end;
procedure TFLaptop.SpeedButton3Click(Sender: TObject);beginDM.TLaptop.First;end;procedure TFLaptop.THapusClick(Sender: TObject);var Pesan:String;begin Pesan:='Anda yakin data berikut : '+#13+#13+ // #13 = Enter (pindah baris) 'Kode Laptop : '+DM.TLaptopKode.value+#13+ 'Nama Laptop : '+DM.TLaptopNamaLaptop.value+#13+#13+ 'akan dihapus?'; if MessageDlg(Pesan,mtConfirmation,[mbYes,mbNo],0)=mrYes then begin DM.TLaptop.Delete; end;end;
procedure TFLaptop.TEditClick(Sender: TObject);begin DM.TLaptop.Edit; // atau DM.TLaptop.Append; FIsiLaptop.ShowModal;// Tampilkan Form Pengisian Data laptopend;
procedure TFLaptop.TTambahClick(Sender: TObject);begin DM.TLaptop.Insert; // atau DM.Laptop.Append; FIsiLaptop.ShowModal; // Tampilkan Form Pengisian Data Laptopend;
procedure TFLaptop.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin
viii
futama.show;close;end;
procedure TFLaptop.SpeedButton4Click(Sender: TObject);begin DM.TLaptop.Next; if DM.TLaptop.Eof then ShowMessage('Anda Sudah di akhir data');end;
end.
Form Isi Laptop
procedure TFIsiLaptop.CBLaptopChange(Sender: TObject);begin if CBLaptop.ItemIndex=0 then DM.TLaptopJenis.Value:='Intel' else DM.TLaptopJenis.Value:='AMD';end;
procedure TFIsiLaptop.TBatalClick(Sender: TObject);begin if MessageDlg('Pengisian data dibatalkan ?',mtConfirmation, [mbYes,mbNo],0)=mrYes then begin DM.TLaptop.Cancel; Close;// Tutup form FIsiBarang (Kembali ke FBarang) end;end;
procedure TFIsiLaptop.TSimpanClick(Sender: TObject);beginDM.TLaptopKode.Value:=Trim(DM.TLaptopKode.Value); // Hapus spasi yang tidak perlu if DM.TLaptopKode.IsNull then begin ShowMessage('Kode laptop tidak boleh kosong'); DBEdit1.SetFocus; Exit; end; if DM.TLaptopStock.IsNull then begin ShowMessage('Stock tidak boleh kosong'); DBEdit5.SetFocus; Exit; end; if DM.TLaptopStock.value<=1 then
ix
begin Showmessage('Stock harus lebih besar dari 1'); DBEdit5.Setfocus; Exit; end; if DM.TLaptopStockMinimal.IsNull then begin ShowMessage('StockMinimal laptop tidak boleh kosong'); DBEdit6.SetFocus; Exit; end; if DM.TLaptopStockMinimal.value<=0 then begin Showmessage('StockMinimal harus lebih besar dari 0'); DBEdit6.Setfocus; Exit; end; // --------------------------------- Akhir dari validasi DM.TLaptop.Post; // Simpan data Close;// Tutup form FIsiBarang (Kembali ke FLaptop)end;
procedure TFIsiLaptop.THapusClick(Sender: TObject);beginDM.TLaptopGambar.Clear;end;
procedure TFIsiLaptop.TBrowseClick(Sender: TObject);begin if OpenDialog1.Execute then begin // Isi field Gambar di Load dari File yang dipilih di OpenPictureDialog1 DM.TLaptopGambar.LoadFromFile(OpenDialog1.FileName); end;end;procedure TFIsiLaptop.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin if DM.TLaptop.State in [dsInsert, dsEdit] then // Jika Status masih kondisi Tambah / Edit begin CanClose:=False; // Layar tidak boleh ditutup ShowMessage('Gunakan tombol Simpan atau Batal untuk menutup window ini'); end;end;
end.
x
Form Pelanggan
procedure TFPelanggan.RBKodeClick(Sender: TObject);begin DM.TPelanggan.IndexName:='';end;
procedure TFPelanggan.RBNamaClick(Sender: TObject);begin DM.TPelanggan.IndexName:='IdxNama';end;
procedure TFPelanggan.RBKotaClick(Sender: TObject);begin DM.TPelanggan.IndexName:='IdxKota';end;
procedure TFPelanggan.RBemailClick(Sender: TObject);begin DM.TPelanggan.IndexName:='IdxEmail';end;
procedure TFPelanggan.TCariClick(Sender: TObject);var Ditemukan:Boolean;begin Ditemukan:=DM.TPelanggan.FindKey([ECari.Text]); if (Ditemukan=False) then ShowMessage('Data Tidak Ditemukan');end;procedure TFPelanggan.TNearestClick(Sender: TObject);beginDM.TPelanggan.FindNearest([ECari.Text]);end;
procedure TFPelanggan.TTutupClick(Sender: TObject);beginfutama.show;close;end;
procedure TFPelanggan.SpeedButton4Click(Sender: TObject);begin DM.TPelanggan.Prior; if DM.TPelanggan.Bof then ShowMessage('Anda Sudah di awal data');end;
procedure TFPelanggan.SpeedButton3Click(Sender: TObject);
xi
begin DM.TPelanggan.Last;end;
procedure TFPelanggan.SpeedButton1Click(Sender: TObject);begin DM.TPelanggan.First;end;
procedure TFPelanggan.SpeedButton2Click(Sender: TObject);beginDM.TPelanggan.Next; if DM.TPelanggan.Eof then ShowMessage('Anda Sudah di akhir data');end;
procedure TFPelanggan.THapusClick(Sender: TObject);var Pesan:String;begin Pesan:='Anda yakin data berikut : '+#13+#13+ // #13 = Enter (pindah baris) 'Nama Pelanggan : '+DM.TPelangganNama.value+#13+#13+ 'akan dihapus?'; if MessageDlg(Pesan,mtConfirmation,[mbYes,mbNo],0)=mrYes then begin DM.TLaptop.Delete; end;end;
procedure TFPelanggan.TEditClick(Sender: TObject);begin DM.TPelanggan.Edit; // atau DM.TPelanggan.Append; FIsiPelanggan.ShowModal;// Tampilkan Form Pengisian Data Pelangganend;
procedure TFPelanggan.TTambahClick(Sender: TObject);begin DM.TPelanggan.Insert; // atau DM.Tmerk.Append; FIsiPelanggan.ShowModal;// Tampilkan Form Pengisian Data Merkend;
procedure TFPelanggan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginfutama.show;close;end;
end.
xii
Form Isi Pelangganprocedure TFIsiPelanggan.CBJKelaminChange(Sender: TObject);begin if CBJKelamin.ItemIndex=0 then DM.TPelangganJenisKelamin.Value:='L' else DM.TPelangganJenisKelamin.Value:='P';end;
procedure TFIsiPelanggan.TBatalClick(Sender: TObject);beginif MessageDlg('Pengisian data dibatalkan ?',mtConfirmation, [mbYes,mbNo],0)=mrYes then begin DM.TPelanggan.Cancel; Close;// Tutup form FIsiPelanggan (Kembali ke FPelanggan) end;end;
procedure TFIsiPelanggan.TSimpanClick(Sender: TObject);begin DM.Tpelanggan.Post; close;end;
procedure TFIsiPelanggan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin if DM.TPelanggan.State in [dsInsert, dsEdit] then // Jika Status masih kondisi Tambah / Edit begin CanClose:=False; // Layar tidak boleh ditutup ShowMessage('Gunakan tombol Simpan atau Batal untuk menutup window ini'); end;end;
end.
Form Penjualan (Transaksi Penjualan)
procedure TFPenjualan.TTutupClick(Sender: TObject);beginfutama.show;close;end;
procedure TFPenjualan.TNearestClick(Sender: TObject);
xiii
beginDM.TPenjualan.FindNearest([ECari.Text]);end;
procedure TFPenjualan.SpeedButton1Click(Sender: TObject);begin DM.TPenjualan.Prior; if DM.TPenjualan.Bof then ShowMessage('Anda Sudah di awal data');end;
procedure TFPenjualan.SpeedButton3Click(Sender: TObject);begin DM.TPenjualan.Last;end;
procedure TFPenjualan.SpeedButton2Click(Sender: TObject);begin DM.TPenjualan.First;end;
procedure TFPenjualan.SpeedButton4Click(Sender: TObject);begin DM.TPenjualan.Next; if DM.TPenjualan.Eof then ShowMessage('Anda Sudah di akhir data');end;
procedure TFPenjualan.TPenjualanClick(Sender: TObject);begin FPenjualan.Hide;// Hapus Semua Data yang ada di Temporary Item Jual DM.TTempItemJual.First; While DM.TTempItemJual.Eof = false do DM.TTempItemJual.Delete;
FISiPenjualan.EKode.Clear; FISiPenjualan.ENama.Clear; FISiPenjualan.EAlamat.Clear; FISiPenjualan.EKota.Clear; FISiPenjualan.ENoTelepon.Clear;
FIsiPenjualan.Showmodal; // Tampilkan Form Isi Penjualanend;
procedure TFPenjualan.RBNomorClick(Sender: TObject);begin DM.TPenjualan.IndexName:='';end;
xiv
procedure TFPenjualan.RBKodeClick(Sender: TObject);begin DM.TPenjualan.IndexName:='IdxKode';end;
procedure TFPenjualan.RBWaktuClick(Sender: TObject);begin DM.TPenjualan.IndexName:='IdxWaktu';end;
procedure TFPenjualan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginfutama.show;close;end;
end.
Form Isi Penjualan (Pembuatan Faktur Baru)
procedure TFIsiPenjualan.TCariClick(Sender: TObject);begin if DM.TPelanggan.Locate('Kode',EKode.Text,[])=true then begin ENama.Text:=DM.TPelanggan.FieldByName('Nama').AsString; EAlamat.Text:=DM.TPelanggan.FieldByName('Alamat').AsString; EKota.Text:=DM.TPelanggan.FieldByName('Kota').AsString; EJK.Text:=DM.TPelanggan.FieldByName('JenisKelamin').AsString; ENoTelepon.Text:=DM.TPelanggan.FieldByName('NoTelepon').AsString; end else begin Showmessage('Pelanggan Tidak Ditemukan'); ENama.Clear; EAlamat.Clear; EJk.Clear; EKota.Clear; ENoTelepon.Clear; end;end;procedure TFIsiPenjualan.TDataClick(Sender: TObject);begin FPelanggan.ShowModal;end;
procedure TFIsiPenjualan.THapusClick(Sender: TObject);var
xv
pesan:string;begin pesan:='Anda yakin item berikut : '+#13+#13+ 'Kode Penjualan : '+DM.TTempItemJualKodeLaptop.value+#13+ 'Kode Nama : '+DM.TTempItemJualNamaLaptop.value+#13+#13+ 'Akan dihapus ?'; if messagedlg(pesan,mtconfirmation,[mbyes,mbno],0)=mryes then begin DM.TTempItemJual.Delete; end;end;
procedure TFIsiPenjualan.TEditClick(Sender: TObject);begin DM.TTempItemJual.Edit; FIsiItempJual.Showmodal;end;
procedure TFIsiPenjualan.TTambahClick(Sender: TObject);begin DM.TTempItemJual.Append; FIsiItempJual.Showmodal;end;
procedure TFIsiPenjualan.TSelesaiClick(Sender: TObject);var Total:Currency;begin if MessageDlg('Transaksi selesai?',mtconfirmation,[mbyes,mbno],0)=mryes then begin if DM.TPelanggan.Locate('Kode',EKode.Text,[])=false then begin Showmessage('Kode Pelanggan harus diisi dan terdaftar di Pelanggan'); EKode.SetFocus; Exit; end; if DM.TTempItemJualKodeLaptop.IsNull then begin Showmessage('Silahkan Isi Item Penjualan'); EKode.SetFocus; Exit; end; // Di sini, dipastikan bahwa pelanggan diisi dengan benar DM.TPenjualan.Append; DM.TPenjualanWaktuTransaksi.Value:=Now; DM.TPenjualanTotal.value:=0;// untuk sementara 0 DM.TPenjualanKodePelanggan.value:=StrToInt(EKode.Text); DM.TPenjualan.Post; // Simpan sementara, agar nomor penjualan dapat dihasilkan otomatis DM.TTempItemJual.First;
xvi
Total:=0; while DM.TTempItemJual.Eof = false do begin // Simpan Temp Item Jual ke Detail Penjualan satu per satu DM.TDetailPenjualan.Append; DM.TDetailPenjualanNomorPenjualan.value:=DM.TPenjualanNomor.Value; // ini sebenarnya tidak usah karena sudah menggunakan master/detail DM.TDetailPenjualanKodeLaptop.value:=DM.TTempItemJualKodeLaptop.value; DM.TDetailPenjualanHarga.Value:=DM.TTempItemJualHargaJual.value; DM.TDetailPenjualanQty.value:=DM.TTempItemJualQty.value; DM.TDetailPenjualan.Post;
// Hitung total Total:=Total+DM.TTempItemJualSubTotal.value; //Update Stok di tabel barang if DM.TLaptop.Locate('Kode',DM.TDetailPenjualanKodeLaptop.value,[])=true then begin DM.TLaptop.Edit; DM.TLaptopStock.value:=DM.TLaptopStock.value - DM.TDetailPenjualanQty.value; DM.Tlaptop.Post; end;
DM.TTempItemJual.Next; end;
// Update Total penjualan DM.TPenjualan.Edit; DM.TPenjualanTotal.value:=Total; DM.TPenjualan.Post; close; end;end;procedure TFIsiPenjualan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginFPenjualan.Show;Close;end;
end.
Form Isi Item Jual (Pengisian Item Jual)
procedure TFIsiItempJual.TBatalClick(Sender: TObject);begin if Messagedlg('Pengisian data mau dibatalkan ?',mtconfirmation,[mbyes,mbno],0)=mryes then begin
xvii
DM.TTempItemJual.Cancel; Close; end;end;
procedure TFIsiItempJual.TSimpanClick(Sender: TObject);begin if DM.TTempItemJualKodeLaptop.IsNull then begin Showmessage('Kode Laptop tidak boleh dikosongkan'); DBEdit1.Setfocus; Exit; end; if DM.TTempItemJualHargaJual.IsNull then begin Showmessage('harga jual tidak ditemukan'); DBEdit2.Setfocus; Exit; end; if DM.TTempItemJualStock.IsNull then begin Showmessage('stock tidak ditemukan'); DBEdit3.Setfocus; Exit; end; if DM.TTempItemJualQty.IsNull then begin Showmessage('Qty tidak boleh dikosongkan'); DBEdit6.Setfocus; Exit; end; if DM.TTempItemJualQty.value<=0 then begin Showmessage('Qty harus lebih besar dari 0'); DBEdit6.Setfocus; Exit; end;
DM.TTempItemJual.Post; Close;end;
procedure TFIsiItempJual.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginif DM.TTempItemJual.State in [dsInsert, dsEdit] then // Jika Status masih kondisi Tambah / Edit begin CanClose:=False; // Layar tidak boleh ditutup ShowMessage('Gunakan tombol Simpan atau Batal untuk menutup window ini');
xviii
end;end;
end.
Form SQL
procedure TFSQL.TBukaSQLClick(Sender: TObject);beginif DM.Query1.Active then // Jika Query1 sedang aktif maka DM.Query1.Close; // Tutup Query1. Identik dengan Active:=False; DM.Query1.SQL:=MemoSQL.Lines; // Isi SQL di Query1 dari MemoSQL try DM.Query1.Open; // Buka Query1. Identik dengan Active:=True; // Perintah Open hanya dilakukan jika isi SQL adalah perintah Select Showmessage('Ditemukan '+IntToStr(DM.Query1.RecordCount)+' Record'); except on E: Exception do
MessageDlg('SQL salah, dengan pesan'+#13+E.Message,mtError,[mbOK],0); end;
end;
procedure TFSQL.TEksekusiSQLClick(Sender: TObject);beginif DM.Query1.Active then // Jika Query1 sedang aktif maka DM.Query1.Close; // Tutup Query1. Identik dengan Active:=False; DM.Query1.SQL:=MemoSQL.Lines; // Isi SQL di Query1 dengan isi dari MemoSQL try DM.Query1.ExecSQL; // Buka Query1. Identik dengan Active:=True; // Perintah ExecSQL dilakukan jika melakukan operasi Insert, Update, Delete if DM.Query1.RowsAffected>0 then Showmessage('Data berubah ada'+IntToStr(DM.Query1.RowsAffected)+' Record') else Showmessage('Tidak ada data yang berubah oleh SQL tadi'); except on E: Exception do
MessageDlg('SQL salah, dengan pesan'+#13+E.Message,mtError,[mbOK],0); end;
end;
procedure TFSQL.TKeluarClick(Sender: TObject);beginFUtama.Show;Close;end;
xix
procedure TFSQL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginFUtama.Show;Close;end;
end.
Form Splash
procedure TFrmSplash.tmMainTimerTimer(Sender: TObject);var i:integer;begin //merubah posisi progres bar for i:=0 to 65000 do ProgressBar1.Position := i; tmMainTimer.Enabled:=false;end;end.
xx