database laptop

69
MAKALAH DATABASE PENJUALAN LAPTOP Diajukan Untuk Memenuhi Tugas Besa Mata Kuliah Praktikum Pemrograman II Dosen : Sufa’atin Disusun Oleh : Rizky Badai Ilhami 10108151 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA

Upload: rizky-badai-ilhami

Post on 14-Dec-2015

62 views

Category:

Documents


3 download

DESCRIPTION

berisi tentang segala database laptop

TRANSCRIPT

Page 1: Database Laptop

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

Page 2: Database Laptop

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

Page 3: Database Laptop

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

Page 4: Database Laptop

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

Page 5: Database Laptop

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

Page 6: Database Laptop

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

Page 7: Database Laptop

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

Page 8: Database Laptop

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

Page 9: Database Laptop

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

Page 10: Database Laptop

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

Page 11: Database Laptop

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

Page 12: Database Laptop

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

Page 13: Database Laptop

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

Page 14: Database Laptop

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

Page 15: Database Laptop

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

Page 16: Database Laptop

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

Page 17: Database Laptop

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

Page 18: Database Laptop

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

Page 19: Database Laptop

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

Page 20: Database Laptop

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

Page 21: Database Laptop

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

Page 22: Database Laptop

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

Page 23: Database Laptop

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

Page 24: Database Laptop

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

Page 25: Database Laptop

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

Page 26: Database Laptop

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

Page 27: Database Laptop

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

Page 28: Database Laptop

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

Page 29: Database Laptop

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

Page 30: Database Laptop

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

Page 31: Database Laptop

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

Page 32: Database Laptop

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

Page 33: Database Laptop

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

Page 34: Database Laptop

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

Page 35: Database Laptop

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

Page 36: Database Laptop

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

Page 37: Database Laptop

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

Page 38: Database Laptop

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

Page 39: Database Laptop

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

Page 40: Database Laptop

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

Page 41: Database Laptop

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

Page 42: Database Laptop

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

Page 43: Database Laptop

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

Page 44: Database Laptop

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

Page 45: Database Laptop

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

Page 46: Database Laptop

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

Page 47: Database Laptop

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

Page 48: Database Laptop

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

Page 49: Database Laptop

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

Page 50: Database Laptop

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

Page 51: Database Laptop

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

Page 52: Database Laptop

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

Page 53: Database Laptop

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

Page 54: Database Laptop

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