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
BANDUNG
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…
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
DAFTAR ISI
ABSTRAKSI...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
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.
Masih adanya kekurangan aplikasi DataBase yang dibuat. 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 Pendahuluan
Bab ini membahas tentang latar belakang masalah, identifikasi masalah, batasan masalah, maksud dan tujuan, dan sistematika penulisan.
BAB II Struktur DataBase
Bab ini akan membahas mengenai penjelasan Database Laptop yang dibuat dalam progam Delphi7 beserta menampilkan capture dari masing-masing tabel (paradox7).
BAB III Tampilan DataBase Handphone
Bab ini menampilkan perancangan Datasase yang dibuat. BAB IV Kesimpulan dan Saran
Bab ini terdiri dari kesimpulan yang berisikan kesimpulan dari pembahasan yang dipaparkan dari keseluruhan tulisan.
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 Merk b) Data Laptop c) Data Pelanggan d) 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.
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.
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
Nama Index Index Field Unique Maintained Case Sencitive Descending
idxJenis Jenis √
idxNama NamaLaptop √
idxSeri Seri √
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 √
Gambar 2.5 Tampilan Table Penjualan.db
Secondary Index:
Nama Index Index Field Unique Maintained Case
Sencitive Descending
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
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
DataSet : TLaptop
5. Tempatkan sebuah komponen Table ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias)
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
DataSet : TTempItemJual
13. Tempatkan sebuah komponen Query ke Data Module DM, isi properti tersebut DatabaseName : (Kosongkan saja/tanpa alias)
TableName : Active : True Name : Query1
14. 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 properti
2. Caption : Toko Penjualan Laptop
3. Name : Futama 4. MainMenu1
5. Name : Default
6. Items :
Data (Merk, Laptop, Pelanggan)
Transaksi (Penjualan, SQL)
Laporan (L.Merk, L.Laptop, L. Pelanggan, L.Penjualan)
About (Programmer, Deskripsi Program) 7. Panel1, dengan properti
8. Align : alLeft 9. Color : clMoneyGreen 10. Komponen : Groupbox1 11.Caption : Log In 12.Height : 145 BitBtn1 13. Caption : Log In 14. Cursor : crArrow 15. Name : TLogin BitBtn2
16. Caption : Log Out 17. Name : Tlogout 18. Visible: false Edit1 19. Name : default 20. Text : (Kosongkan) Edit2 21. Name : default 22. Text : (Kosongkan) SpeedButton1 23. Hint : Close 24. ShowHint : True 25. Name : TClose 26. Panel2, dengan properti
27. Align : alTop 28. Color : clMoneyGreen 29. Height : 36 30. TabOrder : 1 31. Top : 41 32. Width : 549 33. Komponen : Label1 34. Caption : Sistem Informasi Penjualan Laptop 35. Font : Tw Cen MT 36. fsBold : True 37. fsItalic : True 38. Panel3, dengan properti
39. Align : alTop 40. Komponen : SpeedButton1 41. Name : default 42. Glyph : data_table.bmp 43. Hint : pengolahan data merk 44. ShowHint : True SpeedButton2 45. Name : default 46. Glyph : computer-network copy.bmp 47. Hint : pengolahan data laptop 48. ShowHint : True SpeedButton3 49. Name : default 50. Glyph : users copy.bmp 51. Hint : pengolahan dataPelangga n 52. ShowHint : True SpeedButton4 53. Name : default 54. Glyph : books copy.bmp SpeedButton5
55. Name : default 56. Glyph :sql copy.bmp 57. Hint : pengolahan data penjualan 58. ShowHint : True 59. Timer 60. ImageListToolbar 61. MainMenu1 62. XPManifest1 63. StatusBar1 64. Image1 65. 66. 67.
Form Pengolahan Data Merk
68.
69. Gambar 3.3. Tampilan Form Pengolahan Data Merk
70. 71. Komponen-Komponen yang di
butuhkan :
1. Form, dengan properti
72. Caption : Pengolahan Data Merk 73. Name : Fmerk 74. Komponen : DBGrid1 75. DataSource : DM.DsMerk 2. Panel1, dengan properti
76. Align : alTop
77. Caption : Data Merk Laptop 78. Font : Tw Cen MT
79. fsBold : True 80. fsItalic : True 3. Panel2, dengan properti
81. Align : alBottom 82. Komponen :
GroupBox1
83. Caption : Pencarian Edit1
84. Name : Ecari 85. Text : (Kosongkan) BitBtn1 86. Caption : Cari 87. Glyph : cari.bmp BitBtn2 88. Caption : Nearest Glyph : binocular.b mp GroupBox2 89. Caption : Berdasarkan RadioButton1 90. Caption : Kode Merk 91. Name : RBKode RadioButton2 92. Caption : Nama Merk 93. Name : RBNama SpeedButton1 94. Glyph : arrow-stop-180.bmp 95. Name : default SpeedButton2 96. Glyph : arrow-180.bmp 97. Name : default SpeedButton3 98. Glyph : arrow.bmp 99. Name : default SpeedButton4 100. Glyph : arrow-stop.bmp 101. Name : default BitBtn1 102. Caption : Tambah 103. Glyph : plus.bmp 104. Name : TTambah BitBtn2 105. Caption : Edit 106. Glyph : edit.bmp 107. Name : TEdit BitBtn3 108. Caption : Hapus 109. Glyph : delete_16x16.bmp 110. Name : THapus BitBtn4 111. Caption : Tutup 112. Glyph : exit.bmp 113. Name : TTutup 4. StatusBar1 5.
6.
7. Gambar 3.4 Tampilan Form Pengisian Merk
8.
9. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengolahan Isi Data Merk
3. Name : FIsiMerk 4. Panel1, dengan properti
5. Align : alClient 6. Komponen :
GroupBox1
7. Caption : Isi Merk DBEdit1 8. Name : default 9. DataSource : DM.DsMerk 10. DataField : KodeMerk DBEdit2 11. Name : default 12. DataSource : DM.DsMerk 13. DataField : NamaLaptop Label1 14. Caption : KodeMerk Label2 15. Caption : NamaLaptop BitBtn1 16. Caption : Simpan 17. Glyph : disks-black copy.bmp 18. Name : TSimpan BitBtn2 19. Caption : Batal 20. Glyph : cross-script.bmp 21. Name : TBatal 22. Panel2, dengan properti
23. Align : alTop
24. Caption : Pengisian Merk 25. Font : Tw Cen MT 26. fsBold : True 27. fsItalic : True 28. StatusBar 29. XPManifest1 30.
31.
32. Gambar 3.5 Tampilan Data Laptop
33. 34. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
35. Caption : Pengolahan Data Laptop 36. Name : FLaptop 2. DBGrid1 37. Align : alClient 38. Name : default 39. DataSource : DM.DsLaptop 3. Panel1 40. Align : alTop 41. Komponen : GroupBox1 42. Caption : Pencarian Edit1 43. Name : Ecari BitBtn1 44. Caption : Cari 45. Glyph : cari.bmp BitBtn2 46. Caption : Nearest 47. Glyph : binocular.bmp GroupBox2 48. Caption : Pengurutan RadioButton1 49. Caption : Kode 50. Name : RBKode RadioButton2 51. Caption : Seri 52. Name : RBSeri RadioButton3 53. Caption : Nama 54. Name : RBNama 4. Panel2 55. Align : alBottom 56. Komponen : DBImage1 57. Name : default 58. DataField : Gambar 59. DataSource : DM.DsLaptop DBMemo1 60. Name : default 61. DataField :Spesifikasi 62. DataSource : DM.DsLaptop SpeedButton1 63. Glyph : arrow.bmp SpeedButton2 64. Glyph : arrow-stop-180.bmp SpeedButton3
65. Glyph : arrow-180.bmp SpeedButton4 66. Glyph : arrow-stop.bmp SpeedButton1 67. Caption : Tambah 68. Glyph : plus.bmp 69. Name : TTambah SpeedButton2 70. Caption : Edit 71. Glyph : edit.bmp 72. Name : TEdit SpeedButton3 73. Caption : Hapus 74. Glyph : delete.bmp 75. Name : THapus SpeedButton4 76. Caption : Tutup 77. Glyph : exit.bmp 78. Name : TTutup 79.
Form Pengolahan Data Laptop
80.
81.Gambar 3.6 Tampilan Isi Data Laptop
82. 83. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengolahan Data Isi Laptop
3. Name : FisiLaptop 4. Components1, dengan properti
5. Align : alClients 6. Komponen :
Panel1
7. Align : alTop 8. Caption : Isi Laptop Panel2
9. Align : alClient 10. Caption : (Kosongkan)
GroupBox2
11. Caption : Pengisian Gambar dan Spesifikasi DBImage2 12. Name : default 13. DataField : Gambar 14. DataSource : DM.DsLaptop DBMemo2 15. Name : default 16. DataField : Spesifikasi 17. DataSource : DM.DsLaptop
Label10 18. Caption : Gambar Label11 19. Caption : Spesifikasi BitBtn1 20. Caption : Browse 21. Name : TBrowse 22. Glyph : DIRECTRY.bmp BitBtn2 23. Caption : Hapus 24. Name : THapus 25. Glyph : delete_16x16.bmp GroupBox3 26. Caption : Pengisian Data Laptop DBEdit1 27. Name : default 28. DataField : KodeLaptop 29. DataSource : DM.DsLaptop DBEdit2 30. Name : default 31. DataField : Seri 32. DataSource : DM.DsLaptop DBEdit5 33. Name : default 34. DataField : HargaBeli 35. DataSource : DM.DsLaptop DBEdit6 36. Name : default 37. DataField : HargaJual 38. DataSource : DM.DsLaptop DBEdit7 39. Name : default 40. DataField : Stock 41. DataSource : DM.DsLaptop DBEdit8 42. Name : default 43. DataField : StockMinimal 44. DataSource : DM.DsLaptop ComboBox1 45. Name : CBLaptop 46. Items : Intel DBLookupComboBox1 47. Name : default 48. KeyField : NamaLaptop 49. ListField : KodeMerk 50. ListSource : DM.DsMerk Label1 51. Caption : KodeLaptop 52. FocusControl : DBEdit1 53. Name : default Label2 54. Caption : Seri 55. FocusControl : DBEdit2 56. Name : default Label3 57. Caption : NamaLaptop 58. FocusControl : DBLookupComboBox1 59. Name : default Label4 60. Caption : Jenis 61. FocusControl : CBLaptop 62. Name : default Label5 63. Caption : HargaBeli 64. FocusControl : DBEdit5 65. Name : default Label6 66. Caption : HargaJual 67. FocusControl : DBEdit6
68. Name : default Label7 69. Caption : Stock 70. FocusControl : DBEdit7 71. Name : default Label8 72. Caption : StockMinimal 73. FocusControl : DBEdit8 74. Name : default BitBtn1 75. Caption : Batal 76. Name : Tbatal 77. Glyph : cross-script.bmp BitBtn2 78. Caption : Simpan 79. Name : Tsimpan 80. Glyph : disks-black copy.bmp OpenDialog1 81. StatusBar1 82.
Form Pengolahan Data Pelanggan
83.
84. Gambar 3.7 Tampilan Data Pelanggan
85. 86. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Data Pelanggan 3. Name : FPelanggan 4. DBGrid1, dengan property 5. Align : alClient
6. Name : default
7. DataSource : DM.DsPelanggan 8. Panel1, dengan properti 9. Align : alTop 10. Komponen : GroupBox1 11. Caption : Pencarian 12. Name : default Edit1 13. Name : Ecari 14. BitBtn1 15. Caption : Cari 16. Glyph : cari.bmp BitBtn2 17. Caption : Nearest
18. Glyph : binocular.bmp GroupBox2 19. Caption : Pengurutan 20. Name : default RadioButton1 21. Caption : Kode 22. Name : CBKode RadioButton2 23. Caption : Nama 24. Name : CBNama RadioButton3 25. Caption : Kota 26. Name : CBKota RadioButton4 27. Caption : Email 28. Name : CBEmail 87. Panel2, dengan property
29. Align : alBottom SpeedButton1 30. Glyph : arrow-stop-180.bmp SpeedButton2 31. Glyph : arrow.bmp SpeedButton3 32. Glyph : arrow-stop.bmp SpeedButton4 33. Glyph : arrow-180.bmp BitBtn1 34. Caption : Tambah 35. Glyph : plus.bmp 36. Name : TTambah BitBtn2 37. Caption : Edit 38. Glyph : edit.bmp 39. Name : TEdit BitBtn3 40. Caption : Hapus 41. Glyph : delete_16x16.bmp 42. Name : THapus BitBtn4 43. Caption : Tutup 44. Glyph : exit.bmp 45. Name : TTutup 88. Panel3, dengan property 46. Align : alTop
47. Caption : Pelanggan 89. StatusBar1
48.
Form Pengisian Data Pelanggan
49.
51. 52. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengolahan Data Isi Pelanggan
3. Name : FisiPelanggan 4. Panel1, dengan properti 5. Align : alTop
6. Caption : Pelanggan 7. Panel2, dengan properti 8. Align : alClient 9. Komponen : GroupBox1 10. Caption : Pengisian 11. Name : default ComboBox1 12. Name : CBJKelamin 13. Items : L 14. P DBEdit1 15. Name : default 16. DataField : Kode 17. DataSource : DM.DsPelanggan DBEdit2 18. Name : default 19. DataField : Nama 20. DataSource : DM.DsPelanggan DBEdit4 21. Name : default 22. DataField : Kota 23. DataSource : DM.DsPelanggan DBEdit5 24. Name : default 25. DataField : NoTelepon 26. DataSource : DM.DsPelanggan DBEdit6 27. Name : default 28. DataField : Email 29. DataSource : DM.DsPelanggan DBMemo1 30. Name : default 31. DataField : Alamat 32. DataSource : DM.DsPelanggan Label1 33. Caption : Kode 34. FocusControl : DBEdit1 35. Name : default Label2 36. Caption : Nama 37. FocusControl : DBEdit2 38. Name : default Label3 39. Caption : JenisKelamin 40. FocusControl : CBJKelamin 41. Name : default Label4 42. Caption : Alamat 43. FocusControl : DBMemo1 44. Name : default Label5 45. Caption : Kota 46. FocusControl : DBEdit4 47. Name : default Label6 48. Caption : NoTelepon 49. FocusControl : DBEdit5 50. Name : default Label7 51. Caption : Email 52. FocusControl : DBEdit6 53. Name : default BitBtn1
54. Caption : Simpan 55. Glyph : disks-black copy.bmp 56. Name : TSimpan BitBtn2 57. Caption : Batal 58. Glyph : cross-script.bmp 59. Name : TBatal 60. 61. 62. 63. 64. 65. 66. 67.
Form Transaksi Penjualan
68.
69.Gambar 3.9 Tampilan Transaksi Penjualan
70. 71. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengolahan Data Penjualan
3. Name : FPenjualan
4. Panel1, dengan properti 5. Align : alTop
6. Caption : Pengolahan Data Penjualan
7. Panel2, dengan properti 8. Align : alBottom 9. Komponen : GroupBox1 10. Align : alNone 11. Caption : Pencarian Edit1 12. Name : Ecari 13. Text : (Kosongkan) BitBtn1 14. Caption : Nearest 15. Name : TNearest 16. Glyph : binocular.bmp SpeedBotton1 17. Caption : (Kosongkan) 18. Glyph : arrow-180.bmp 19. Name : default SpeedBotton2 20. Caption : (Kosongkan) 21. Glyph : arrow-stop-180.bmp 22. Name : default SpeedBotton3 23. Caption : (Kosongkan) 24. Glyph : arrow-stop.bmp 25. Name : default SpeedBotton4 26. Caption : (Kosongkan) 27. Glyph : arrow.bmp 28. Name : default BitBtn2 29. Caption : Penjualan Baru 30. Glyph : blueprint--pencil copy.bmp 31. Name : TPenjualan BitBtn3 32. Caption : Tutup 33. Glyph : cross-script.bmp 34. Name : TTutup 35. Panel3, dengan properti
36. Align : alTop
37. Caption : Perincian Faktur Penjualan 38. DBGrid2, dengan properti
39. Align : alClient 40. Name : default 41. DataSource : DM.DsDetailPenjualan 42. DBGrid3 43. Align : alTop 44. Name : default 45. DataSource : DM.DsPenjualan 46.
47.
48. Gambar 3.10 Tampilan Pembuatan Faktur Baru
49. 50. 51. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengisian Penjualan 3. Name : FIsiPenjualan 4. Panel1, dengan properti
5. Align : alTop
6. Caption : Isi Penjualan 7. Panel2, dengan properti
8. Align : alBottom BitBtn1 9. Caption : Tambah Item 10. Glyph : plus.bmp 11. Name : TTambah BitBtn2 12. Caption : Edit 13. Glyph : edit.bmp 14. Name : TEdit BitBtn3 15. Caption : Hapus 16. Glyph : delete.bmp 17. Name : THapus BitBtn4 18. Caption : Selesai 19. Glyph : disks-black copy.bmp 20. Name : TSelesai
21. Panel3, dengan properti 22. Align : alTop 23. Komponen : GroupBox1 24. Caption : Pengisian Edit1 25. Name : Ekode 26. Text : (Kosongkan) Edit2 27. Name : ENama 28. Text : (Kosongkan) Edit3 29. Name : EJK 30. Text : (Kosongkan) Edit4 31. Name : EAlamat 32. Text : (Kosongkan) Edit5
33. Name : ENoTelepon 34. Text : (Kosongkan) Edit6 35. Name : EKota 36. Text : (Kosongkan) Label1 37. Caption : JeknisKelamin Label2 38. Caption : Nama Label4 39. Caption : Alamat Label5 40. Caption : Kota Labe6 41. Caption : NoTelepon Label8 42. Caption : Kode BitBtn5 43. Caption : Menampilkan Data 44. Glyph : blue- folder-open-document-text copy.bmp 45. Name : TCari BitBtn6 46. Caption : Data Pelanggan 47. Glyph : database copy.bmp 48. Name : TData 49. StatusBar1 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
60.
61. Gambar 3.11 Tampilan Pembuatan item jual laptop
62.
63. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Pengisian Jual 3. Name : FIsiItempJual 4. Panel1, dengan properti
5. Align : alTop 6. Caption : item jual 7. Panel2, dengan properti
8. Align : alBottom GroupBox1 9. Caption : Pengisian DBEdit1 10. Data field : KodeLaptop 11. DataSource : DM.DsTempItemJual DBLookupComboBo x3 12. Data field : Seri 13. DataSource : DM.DsTempItemJual DBLookupComboBo x1 14. Data field : NamaLaptop 15. DataSource : DM.DsTempItemJual DBEdit2 16. Data field : HargaJual 17. DataSource : DM.DsTempItemJual DBEdit3 18. Data field : Stock 19. DataSource : DM.DsTempItemJual DBEdit6 20. Data field : Qty 21. DataSource : DM.DsTempItemJual DBEdit5 22. Data field :SubTotal 23. DataSource : DM.DsTempItemJual Label1 24. Caption : KodeLaptop Label6 25. Caption : seri Label2 26. Caption : NamaLaptop Label3
27. Caption : HargaJual Labe5 28. Caption : Stock Label8 29. Caption : Qty Label7 30. Caption : SubTotal BitBtn1 31. Caption : Simpan 32. Glyph : disks-black copy.bmp 33. Name : TSimpan BitBtn2 34. Caption : Batal 35. Glyph : cross-script.bmp 36. Name : TBatal 37.
Form Pengisian Sintak SQL
38.
39.Gambar 3.11 Tampilan SQL
40. 41. Komponen-Komponen yang di
butuhkan :
1. Form, dengan properti
42. Caption : Pengolahan Data Query/SQL
43. Name : FSQL 2. Panel1, dengan properti
44. Align : alTop
45. Caption : Query/SQL 3. Panel3, dengan properti
46. Align : alBottom 47.
48.
GroupBox1 50. Caption : SQL Memo1 51. Name : MemoSQL BitBtn1 52. Caption : Buka 53. Glyph : sql.bmp 54. Name : TBukaSQL BitBtn2 55. Caption : EksekusiSQL 56. Glyph : spell-check copy.bmp 57. Name : TEksekusiSQL BitBtn3 58. Caption : Keluar 59. Glyph : exit.bmp 60. Name : TKeluar 4. StatusBar1 5. DBGrid1 61. Name : default 62. DataSource : DM.DsQuery 63.
Form Profil Programmer
64.
65.Gambar 3.13 Tampilan Programmer IF-4
66. 67. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
2. Caption : Profil Programmer 3. Name : Fprofil
GroipBox6 4. Label8 5. Caption : Qty 6. Label17
7. Caption : Thanks To... 8. Label18
9. Caption : Allah SWT... 10. Label19
11. Caption : terlepas dari... 12. Label22 13. Caption : Programing... 14. Label23 15. Caption :Bandung... 16. Label24 17. Caption TEAM:... 18. GroupBox7 19. Bevel1,Bevel2,Bevel3 20. Bevel4,Bevel5 21. GroupBox1 22. Name : Image3 GroupBox2 23. Name : Image1 24. GroupBox3 25. Name : Image2 GroupBox4 26. Name : Image4 GroupBox5 27. Name : Image5 28. Label1 29. Caption : Rizky 30. Label10 31. Caption : 10108151 32. StatusBar1 33. 34.
35.
36.Gambar 3.13 Tampilan Deskripsi Program
37. 38. Komponen-Komponen yang di butuhkan : 1. Form, dengan properti
39. Caption : Deskripsi Program 40. Name : FDeskripsi
2. Panel1, dengan properti 41. Align : alTop 42. Caption : Deskripsi 3. Panel2, dengan properti
43. Align : alClient 44. Masukan 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.
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.
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
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.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.
Lampiran
Source 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); begin TDetailPenjualanSubtotal.value:=TDetailPenjualanQty.value*TDetailPenjualanHarga.Val ue; end; end.
Form Menu Utama
procedure 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
FLaptop.ShowModal; end;
procedure TFUtama.SpeedButton3Click(Sender: TObject); begin
FUtama.Hide;
FPelanggan.ShowModal; 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); begin
LapMerk.Preview; end;
procedure TFUtama.LLaptop1Click(Sender: TObject); begin
LapLaptop.Preview; end;
procedure TFUtama.LPenjualan1Click(Sender: TObject); begin
LapPelanggan.Preview; end;
procedure TFUtama.LaporanPenjualan1Click(Sender: TObject); begin
LapPenjualan.Preview; end;
procedure TFUtama.LDetailPenjualan1Click(Sender: TObject); begin
LapDetailPenjualan.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);
begin
If 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); begin
if ((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; end else begin
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); begin fProfil.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
DM.TMerk.Prior; if DM.TMerk.Bof then
ShowMessage('Anda Sudah di awal data'); end;
procedure TFMerk.SpeedButton3Click(Sender: TObject); begin
DM.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); begin
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 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 Merk end;
procedure TFMerk.TTambahClick(Sender: TObject); begin
DM.TMerk.Insert; // atau DM.Tmerk.Append;
FIsiMerk.ShowModal; // Tampilkan Form Pengisian Data Merk end;
procedure TFMerk.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin FUtama.show; close; end; end.
From Isi Merk
procedure TFIsiMerk.TBatalClick(Sender: TObject); begin
if MessageDlg('Pengisian data dibatalkan ?',mtConfirmation, [mbYes,mbNo],0)=mrYes then
begin
Close;// Tutup form FIsiBarang (Kembali ke FLaptop) end;
end;
procedure TFIsiMerk.TSimpanClick(Sender: TObject); begin
DM.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) end;
procedure TFIsiMerk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if 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 Laptop
procedure TFLaptop.RBKodeClick(Sender: TObject); begin
end;
procedure TFLaptop.RBSeriClick(Sender: TObject); begin
DM.TLaptop.IndexName:='IdxSeri'; end;
procedure TFLaptop.RBNamaClick(Sender: TObject); begin
DM.TLaptop.IndexName:='IdxNama'; end;
procedure TFLaptop.RBStockClick(Sender: TObject); begin
DM.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); begin
DM.TLaptop.FindNearest([ECari.Text]); end;
procedure TFLaptop.TTutupClick(Sender: TObject); begin
futama.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); begin
DM.TLaptop.Last; end;
procedure TFLaptop.SpeedButton3Click(Sender: TObject); begin
DM.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 laptop end;
procedure TFLaptop.TTambahClick(Sender: TObject); begin
FIsiLaptop.ShowModal; // Tampilkan Form Pengisian Data Laptop end;
procedure TFLaptop.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin 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); begin
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 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); begin
DM.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. 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); begin
DM.TPelanggan.FindNearest([ECari.Text]); end;
procedure TFPelanggan.TTutupClick(Sender: TObject); begin
futama.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); begin
DM.TPelanggan.Last; end;
procedure TFPelanggan.SpeedButton1Click(Sender: TObject); begin
DM.TPelanggan.First; end;
procedure TFPelanggan.SpeedButton2Click(Sender: TObject); begin
DM.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 Pelanggan end;
procedure TFPelanggan.TTambahClick(Sender: TObject); begin
DM.TPelanggan.Insert; // atau DM.Tmerk.Append;
FIsiPelanggan.ShowModal;// Tampilkan Form Pengisian Data Merk end;
procedure TFPelanggan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin futama.show; close; end; end.
Form Isi Pelanggan
procedure 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); begin
if 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); begin
futama.show; close; end;
procedure TFPenjualan.TNearestClick(Sender: TObject); begin
DM.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 Penjualan end;
procedure TFPenjualan.RBNomorClick(Sender: TObject); begin
DM.TPenjualan.IndexName:=''; end;
procedure TFPenjualan.RBKodeClick(Sender: TObject); begin
DM.TPenjualan.IndexName:='IdxKode'; end;
procedure TFPenjualan.RBWaktuClick(Sender: TObject); begin
end;
procedure TFPenjualan.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin futama.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
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; 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);
begin FPenjualan.Show; Close; end; end.
procedure TFIsiItempJual.TBatalClick(Sender: TObject); begin
if Messagedlg('Pengisian data mau dibatalkan ?',mtconfirmation,[mbyes,mbno],0)=mryes then begin 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);
begin
if 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'); end; end; end. Form SQL
procedure TFSQL.TBukaSQLClick(Sender: TObject); begin
if 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); begin
if 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); begin
FUtama.Show; Close;
end;
procedure TFSQL.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin FUtama.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.