RANCANGAN SISTEM INFORMASI PENJUALAN TUNAI PADA TOKO BESI & KACA SUBUR DENGAN METODOLOGI BERORIENTASI OBYEK
Oleh : MOHAMMAD HASBI FIRMAN NIM : 0422300019
UNIVERSITAS BUDI LUHUR FAKULTAS TEKNOLOGI INFORMASI JAKARTA SEMESTER GASAL 2007/2008
RANCANGAN SISTEM INFORMASI PENJUALAN TUNAI PADA TOKO BESI & KACA SUBUR DENGAN METODOLOGI BERORIENTASI OBYEK TUGAS AKHIR Diajukan untuk memenuhi persyaratan guna memperoleh gelar Ahli Madya
Oleh : MOHAMMAD HASBI FIRMAN NIM : 0422300019 UNIVERSITAS BUDI LUHUR FAKULTAS TEKNOLOGI INFORMASI JAKARTA SEMESTER GASAL 2007/2008
ABSTRAKSI Toko Besi & Kaca Subur adalah sebuah badan usaha yang didirikan pada tahun 1983, bergerak dalam bidang usaha penjualan bahan bangunan. Maka dalam setiap harinya diperlukan pencatatan data - data transaksi penjualan. Adapun sistem pengolahan data penjualan pada Toko Besi & Kaca Subur saat ini masih dilakukan secara manual, baik dalam pengolahan data, pengecekan, pencatatan, maupun penyimpanan data transaksi, serta sering terjadi keterlambatan dalam pembuatan laporan dan terjadi kesalahan penghitungan penjualan data barang yang dipesan. Untuk mengatasi masalah tersebut, maka diperlukan suatu sistem terkomputerisasi penjualan yang sesuai untuk mendukung kesuksesan pemasaran dan perusahaan. Sistem tersebut diusulkan agar dapat mengatasi permasalahan atau kendala pada sistem yang berjalan. Dengan memanfaatkan sistem yang diusulkan ini secara benar, kemungkinan pengawasan atau kontrol terhadap pemrosesan order barang menjadi lebih mudah, efektif dan efisien, serta dapat meningkatkan keuntungan yang maksimal bagi perusahaan.
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT atas berkat rahmat dan karunianya, yang telah dilimpahkan kepada penulis sehingga pada akhirnya dapat menyelesaikan skripsi ini. Skripsi ini ditulis dan disusun bertujuan untuk memenuhi salah satu persyaratan yang diwajibkan bagi calon sarjana yang akan menempuh Tugas Akhir Diploma Tiga (D - 3) pada Fakultas Teknologi Informasi Universitas Budi Luhur Jakarta. Skripsi dengan judul “Rancangan Sistem Penjualan Tunai pada Toko Besi & Kaca Subur dengan Metodologi Berorientasi Objek” ini, data – data yang terdapat didalamnya diperoleh dari hasil riset dan observasi yang penulis laksanakan khususnya pada Toko Besi & Kaca Subur Penulis menyadari sepenuhnya bahwa penyusunan skripsi ini jauh dari sempurna, masih banyak kekurangan dan banyak sekali ditemukan kelemahan – kelemahan karena keterbatasan kemampuan penulis. Pada kesempatan ini dengan penuh rasa hormat yang mendalam penulis ingin menyampaikan ucapan banyak terima kasih yang sebesar – besarnya kepada : 1. Kedua orang tua, terutama ibu yang tercinta yang telah memberikan doa, semangat dan bantuan, baik secara moril maupun materiil. 2. Bapak Hari Soetanto, S.Kom, M.Sc selaku Dekan Fakultas Teknologi Informasi Universitas Budi Luhur Jakarta. 3. Bapak Deni Mahdiana, MM, M.Kom, selaku Ketua Program Studi Sistem Informasi Fakultas Teknologi Informasi Universitas Budi Luhur Jakarta. 4. Ibu Imelda, M.Kom selaku dosen pembimbing. 5. Bapak Amrul, ST selaku pimpinan perusahaan yang telah memberikan kesempatan pada kami untuk melaksanakan Kuliah Kerja Praktek pada Toko Besi & Kaca Subur. 6. Semua dosen Universitas Budi Luhur yang telah mengajar, membimbing dan membina penulis dalam masa perkuliahan. 7. Intan, Rema dan Tasya yang telah memberikan semangat dan motivasi untuk selalu terus berusaha melakukan yang terbaik dalam pengerjaan skripsi. Thank’s atas Doa – nya. 8. For my best friend dari awal masuk Universitas Budi Luhur yang telah membantu (Thank’s!). 9. Untung, yang senantiasa ngajarin dan membantu tugas akhir dengan penuh kesabaran membantu dalam program,Oki dan Rendra yang memberikan dukungan dan saran – saran yang sangat penting. 10. Teman – teman semester satu sampai sekarang Thank’s for all yaitu Rendra, andi, Taufik, Arif, Untung, Evan, Sigit, Anhar, Wawan, Yuanda, Gembul, memet, Miranda teman – teman yang ada di Universitas Budi Luhur dari semester satu sampai sekarang yang kenal sama Firman yang tidak bisa disebut satu persatu dan yang telah memberikan dukungan moril untuk penulis dalam menyelesaikan skripsi. 11. Seluruh rekan-rekan yang secara langsung maupun tidak langsung yang telah turut membantu penulis dalam pembuatan skripsi, terima kasih atas semuanya aku tidak akan bisa tanpamu teman (Thank’s!).
Akhirnya akan menjadi suatu kegembiraan bagi penulis apabila skripsi ini dapat berguna serta bermanfaat bagi banyak pihak khususnya perusahaan yang menggunakan sistem penjualan tunai, atau mungkin juga dapat digunakan sebagai sumbangan kecil yang merupakan sumber inspirasi bagi yang membutuhkan.
Jakarta, Januari 2008
Penulis
DAFTAR GAMBAR Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Halaman Simbol dari Actor ............................................................................ 13 Simbol dari Use Case ...................................................................... 13 Relasi anatara actor dengan use case .............................................. 14 Simbol include................................................................................ 14 Simbol extend ................................................................................ 15 Simbol panah Generalization ........................................................... 15 Generalization antar use case.......................................................... 16 Generalization antar Actors ............................................................. 17 Simbol Class .................................................................................. 19 Simbol komponen........................................................................... 20 Symbol Deployment........................................................................ 20 Struktur Organisasi Toko Besi & Kaca Subur..................................... 23 Activity Diagram Proses Pembayaran ............ ……………………………….. 26 Activity Diagram Proses Pengiriman ................................................. 27 Activity Diagram Proses Laporan Penjualan ...................................... 28 Package Diagram ........................................................................... 33 Use Case Diagram File Master ............................... ………………………. 34 Use Case Diagram Transaksi ........................................ ................... 35 Use Case Diagram Pengiriman............................………………………….. 36 Use Case Diagram Laporan .................... …………………………………….. 37 Entity Relationship Diagram ............................................................ 41 Transformasi ERD ke LRS................................................................ 42 Logical Record Structur ................................................................... 43 Diagram Ketergantungan fungsi tabel pelanggan.............................. 44 Diagram Ketergantungan fungsi tabel nota ...................................... 45 Diagram Ketergantungan fungsi tabel isi .......................................... 46 Diagram Ketergantungan fungsi tabel barang................................... 47 Diagram Ketergantungan fungsi tabel surat jalan ............................. 48 Diagram Ketergantungan fungsi tabel Kirim ..................................... 49 Diagram Ketergantungan fungsi tabel kendaraan ............................. 50 Struktur Tampilan........................................................................... 60 Rancangan Layar Menu Utama ........................................................ 61 Rancangan Layar File Master........................................................... 62 Rancangan Layar Entry Data Pelanggan........................................... 63 Rancangan Layar Entry Data Barang................................................ 64 Rancangan Layar Entry Data Kendaraan .......................................... 65 Rancangan Layar Transaksi............................................................. 66 Rancangan Layar Entry Nota ........................................................... 67 Rancangan Layar Pengiriman .......................................................... 68 Rancangan Layar Entry Surat Jalan.................................................. 69 Rancangan Layar Laporan............................................................... 70 Rancangan Layar Laporan Penjualan ............................................... 71 Rancangan Layar Laporan Pengiriman ............................................. 71 Rancangan Layar Laporan Kendaraan .............................................. 72 Sequence Diagram Entry Data Pelanggan ........................................ 73 Sequence Diagram Entry Data Barang ............................................. 74
Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar
4.28 4.29 4.30 4.31 4.32 4.33 4.34 4.35 4.36
: : : : : : : : :
Sequence Diagram Entry Data Kendaraan ........................................ Sequence Diagram Entry Nota......................................................... Sequence Diagram Entry Surat Jalan ............................................... Sequence Diagram Laporan Penjualan ............................................. Sequence Diagram Laporan Pengiriman ........................................... Sequence Diagram Laporan Kendaraan............................................ Entity Class Diagram....................................................................... Boundary Class .............................................................................. Control Class ..................................................................................
75 76 77 78 79 80 81 82 83
DAFTAR LAMPIRAN Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran Lampiran
A A-1 A–2 A–3 B B–1 C C–1 C–2 C–3 C–4 C–5 D D–1 D–2 D–3 D–3 D–3 E
: : : : : : : : : : : : : : : : : : :
Halaman Keluaran Sistem Berjalan Surat Jalan .............................................................................. 86 Nota ........................................................................................ 87 Laporan Penjualan .................................................................... 88 Masukan Sistem Berjalan Pemesanan ............................................................................... 89 Rancangan Keluaran Rancangan Keluaran Nota.......................................................... 90 Rancangan Keluaran Surat Jalan ................................................ 91 Rancangan Keluaran Laporan Penjualan ..................................... 92 Rancangan Keluaran Laporan Pengiriman ................................... 93 Rancangan Keluaran Laporan Kendaraan .................................... 94 Rancangan Masukan Rancangan Masukan Entri Pelanggan ........................................ 95 Rancangan Masukan Entri Barang ............................................. 96 Rancangan Masukan Entri Kendaraan ........................................ 97 Rancangan Masukan Entri Nota ................................................. 98 Rancangan Masukan Entri Surat Jalan ....................................... 99 Surat Keterangan Riset
DAFTAR TABEL Tabel Tabel Tabel Tabel Tabel Tabel Tabel
4.1 4.2 4.3 4.4 4.5 4.6 4.7
: : : : : : :
Tabel Tabel Tabel Tabel Tabel Tabel Tabel
Spesifikasi Spesifikasi Spesifikasi Spesifikasi Spesifikasi Spesifikasi Spesifikasi
Basis Basis Basis Basis Basis Basis Basis
Data Data Data Data Data Data Data
Halaman Pelanggan ............................................ 51 Barang ................................................. 51 Kendaraan............................................ 52 Isi........................................................ 52 Nota .................................................... 53 Surat Jalan ........................................... 53 Surat Kirim ........................................... 54
DAFTAR SIMBOL
Simbol Use Case Diagram Use Case Menggambarkan proses sistem kebutuhan sistem dari sudut pandang user Actor Menggambarkan orang atau sistem yang menyediakan atau menerima informasi dari sistem
<>
<<extend>
Association Include Menggambarkan pemanggilan use case oleh use case lain, arah panah tidak boleh kearah base atau parent use case Association Extend Menggambarkan perluasan dari use case diagram arah panah tidak boleh kearah extending use case Association Aktif Menggambarkan bagaimana actor terlibat dalam use case
Note Menggambarkan dokumentasi dari use case
Simbol Activity Diagram Start Point Menggambarkan permulaan dari sebuah sistem yang akan dikerjakan, biasanya terletak pada pojok kiri atas End Point Menggambarkan akhir dari sebuah sistem
Association Menggambarkan hubungan antara initial node activities fork, decision point dan activity final node dalam sebuah sistem Activity Menggambarkan aktivitas yang dilakukan pada sistem.
Fork Menggambarkan sebuah activity yang berjalan secara bersamaan, biasanya mempunyai 1 transisi masuk dan dua atau lebih transisi keluar atau bisa lebih transisi masuk dan hanya satu transisi keluar Decision Point Menggambarkan hubungan transisi sebuah garis dari atau ke decision point Swimlane Menggambarkan sebuah cara untuk mengkelompokan activity
Simbol Class Diagram
Class -Atribute
Class Penggambaran dari class name, atribut atau property atau data dan method atau function atau behavior
+Method()
Association Menggambarkan hubungan antara initial node, activities, fork, decision point dan activity final node dalam sebuah sistem Agregation Menggambarkan perluasan dari class
Generalisasi / Inheritance Menggambarkan satu atau sekumpulan class mewarisi atribut atau method dari suatu class
Sequence Diagram Actor Object Menggambarkan pihak yang melakukan interaksi atau yang memicu sistem untuk berfungsi
Boundary Object Menggambarkan obyek yang menjadi interface
Control Object Menggambarkan obyek yang menjadi control sistem
Entity Object Menggambarkan obyek yang berupa enitas
LifeTime Menggambarkan eksekusi obyek selama sequence (Message dikirim atau diterima dan aktifitasnya) Excecution Occurrence Menunjukkan fokus kontrol obyek pada suatu waktu
Message Menggambarkan komunikasi yang terjadi antar obyek
Simbol Diagram Hubungan Entitas Entity Menggambarkan kumpulan objek yang angota – anggotanya berperan dalam sistem (Set Entitas) Relationship Menggambarkan sehimpunan hubungan antara objek yang dibangun (Relationship)
Garis Penghubung Menghubungkan atribut dengan set entitas, dan set entitas dengan relation ship - set Suplier
1
Terima
M
SP
Cardinality Menggambarkan tingkat hubungan yang terjadi, dilihat dari suatu kejadian atau banyak tidaknya hubungan antar entitas tersebut
DAFTAR ISI Halaman Abtraksi ................................................................................................................ i Kata Pengantar ...................................................................................................... ii Daftar Gambar ...................................................................................................... iv Daftar Lampiran .................................................................................................... vi Daftar Tabel .......................................................................................................... vii Daftar Simbol ........................................................................................................ viii Daftar Isi .............................................................................................................. xii BAB I PENDAHULUAN 1. Latar Belakang ................................................................................. 2. Masalah ........................................................................................... 3. Tujuan Penulisan .............................................................................. 4. Ruang Lingkup / Batasan Masalah ..................................................... 5. Metode Penelitian ............................................................................. 6. Sistematika Penulisan .......................................................................
1 1 2 2 2 3
BAB II LANDASAN TEORI 1. Konsep Dasar Sistem ......................................................................... 2. Konsep Dasar Informasi..................................................................... 3. Konsep Dasar Sistem Informasi ......................................................... 4. Analisa Sistem................................................................................... 5. Perancangan Sistem .......................................................................... 6. Konsep Dasar Berorientasi Obyek ....................................................... 7. Analisa dan Perancangan Berorientasi Obyek ......................................
5 6 6 8 9 10 11
BAB III
1. 2. 3. 4. 5. 6. 7. 8. 9.
ANALISA SISTEM Tinjauan Organisasi .......................................................................... Uraian Prosedur ............................................................................... Analisa Proses ................................................................................. Analisa Keluaran................................................................................ Analisa Masukan................................................................................ Indentifikasi Kebutuhan ..................................................................... Package Diagram .............................................................................. Use Case Sistem Usulan..................................................................... Deskripsi Use Case ............................................................................
22 25 29 29 30 31 33 34 38
BAB IV RANCANGAN SISTEM 1. Rancangan Basis Data ....................................................................... a. Entity Relationship Diagram ......................................................... b. Transformasi Diagram ERD ke LRS ............................................... c. LRS ........................................................................................... d. Normalisasi ................................................................................. e. Spesifikasi Basis Data .................................................................. 2. Rancangan Antar Muka a. Rancangan Dokumen Keluaran .................................................... b. Rancangan Dokumen Masukan .................................................... c. Struktur Tampilan........................................................................ d. Rancangan Layar......................................................................... 3. Sequence Diagram ........................................................................... 4. Rancangan Class Diagram ................................................................. a. Entity Class ................................................................................ b. Boundary Class .......................................................................... c. Control Class ..............................................................................
41 41 42 43 44 51 56 58 60 61 73 78 81 82 83
BAB V PENUTUP 1. Kesimpulan ...................................................................................... 2. Saran ...............................................................................................
84 84
DAFTAR PUSTAKA...................................................................................
85
Lampiran Lampiran Lampiran Lampiran Lampiran
86 89 90 95
A : Keluaran Sistem Berjalan .................................................... B : Masukan Sistem Berjalan .................................................... C : Rancangan Keluaran ........................................................... D : Rancangan Masukan .......................................................... E : Surat Keterangan Riset
Bab I PENDAHULUAN 1. Latar Belakang Dalam era globalisasi dengan tingkat perkembangan yang semakin maju dan modern, kebutuhan akan teknologi informasi sekarang ini memang menjadi salah satu faktor yang ikut mendukung bagi pertumbuhan dan perkembangan suatu perusahaan yang handal. Dan ketidak lancaran pengelolaan suatu informasi dapat mengakibatkan kekacauan dalam pengambilan keputusan, pengendalian operasional serta perencanaan teknis dan strategis. Dikarenakan oleh kelebihan – kelebihan yang dimiliki oleh teknologi tersebut yaitu dalam pengolahan data dan penghematan waktu yang digunakan untuk memprosesnya, dibandingkan dengan menggunakan cara lama yaitu secara manual. Dengan adanya kebutuhan informasi yang semakin lama meningkat maka diperlukannya suatu sistem yang baik dan cepat. Suatu sistem dikatakan baik apabila akan memudahkan semua proses, salah satunya dengan jalan komputerisasi. Pemakaian komputer sebagai alat pengolah data dapat dikatakan yang terbaik untuk saat ini, Karena dapat meningkatkan kecepatan pekerjaan sehingga dicapai efisiensi tenaga dan waktu dalam mengelola data. Ada beberapa hal yang dapat menimbulkan kendala pada suatu sistem penjualan tunai yang dijalankan secara manual, diantaranya adalah cenderung akan membuat jenuh, karena data harus dicatat dan diproses berulang kali dan banyaknya jumlah data yang harus diolah, kerumitan dalam pemrosesan suatu data, terbatasnya waktu yang digunakan dalam mengolah data, dan data yang beraneka ragam. Dengan demikian kemungkinan kesalahan perhitungan akan lebih besar oleh karena itu perlu dukungan suatu sistem penjualan yang terkomputerisasi. Demikian juga dirasakan oleh Toko Besi & Kaca Subur perusahaan yang bergerak dibidang penjualan bahan – bahan bangunan. 2. Masalah Pada Toko Besi & Kaca Subur dalam pengolahan data sistem penjualan tunai masih dilakukan secara manual, sehingga menghadapi masalah – masalah, yaitu : a. Toko Besi & Kaca masih kesulitan mencari data – data, dikarenakan data tersebut masih disimpan secara manual sehingga memerlukan waktu yang cukup lama dalam pencatatan data serta masalah informasi atau laporan yang kurang memadai. b. Penyimpanan data yang kurang baik, sehingga terjadi pemborosan waktu. c. Kurang terjaminnya keakuratan data dan kemungkinan terjadinya kesalahan pencatatan dan perhitungan atas transaksi yang terjadi dalam pembuatan laporan.
3. Tujuan Penulisan Tujuan penulisan tugas akhir ini adalah untuk membuat suatu rancangan sistem informasi penjualan barang yang terkomputerisasi untuk membantu menyelesaikan masalah yang ada dalam sistem manual yang sedang berjalan saat ini sehingga diharapkan Toko Besi & Kaca Subur dapat : Meningkatkan kinerja unit usaha melalui ketetapan waktu penjualan barang dengan perkiraan jumlah yang sesuai sehingga tidak mengurangi hilangnya peluang pemasukan. Meningkatkan efisiensi dan efektifitas kerja Menghasilkan laporan – laporan yang lebih spesifik dari tiap – tiap kegiatan usaha dengan akurat dan tepat waktu. 4. Ruang Lingkup / Batasan Masalah Dalam penulisan rancangan sistem ini, penulis membatasi ruang lingkup permasalahan dengan menitik beratkan hanya pada sistem penjualan tunai yang meliputi pembuatan nota penjualan dan surat jalan serta dengan pembuatan laporan – laporan yang dibutuhkan oleh pimpinan sebagai bahan pertimbangan. Pembayaran akan dilakukan satu kali dan sesuai dengan tanggal yang telah disepakati oleh pelanggan dan bagian penjualan. 5. Metode Penelitian Mengenai metode penulisan yang dilakukan ada beberapa metode yang tercantum dibawah ini, yaitu : a. Wawancara (Interview) Merupakan suatu kegiatan percakapan yang direncanakan dan bermanfaat untuk mencapai tujuan tertentu. Kegiatan ini dilakukan dengan mewawancarai langsung pihak – pihak yang berwenang di Toko Besi & Kaca untuk melengkapi data – data. b.
Observasi Penulis melakukan observasi pertama kali yaitu dengan melihat secara langsung cara kerja bagian yang terkait dengan pencatatan hasil – hasil kegiatan yang dilakukan, setelah itu penulis diberikan kesempatan untuk melihat sistem yang bekerja dalam pengolahan data dalam pembelian.
c.
Studi Pustaka Dalam penulisan ini tidak terlepas dari data – data yang terdapat dari buku – buku yang menjadi refrensi seperti pedoman penulisan skripsi, diktat dan buku – buku lain yang dapat berhubungan dengan penyusunan skripsi ini sebagai landasan teori untuk menyelesaikan masalah yang dihadapi.
d.
Analisa Sistem Kegiatan yang dilakukan tahap ini yaitu menganalisa sistem yang ada yaitu mempelajari dan mengetahui apa yang akan dikerjakan sistem yang ada. Menspesifikasikan sistem, yaitu menspesifikasikan masukan yang digunakan, database yang ada, proses yang dilakukan dan keluaran yang dihasilkan. Adapun tahapan – tahapan pada analisa sistem yaitu : 1) Activity Diagram berjalan Digunakan untuk memodelkan alur kerja atau work flow sebuah proses bisnis dan urutan aktifitas didalam suatu proses. 2)
e.
ERD (Entity Relational Diagram) Merupakan alat yang dapat mempresentasikan hubungan yang terjadi antara satu atau lebih komponen sistem.
Rancangan Sistem Tahapan perancangan sistem adalah merancang sistem secara rinci, berdasarkan hasil analisa sistem yang ada, sehingga menghasilkan model baru yang akan diusulkan, dengan disertai rancangan database dan spesifikasi program. Alat – alat yang dipergunakan didalam tahap analisa sistem adalah sebagai berikut : 1) LRS (Logical Record Structure) Terdiri dari link – link diantara tipe record, link ini menunjukkan arah dari satu tipe record lainnya. 2) Relasi Digunakan untuk mendefinifikan dan mengilustrasikan model konseptual secara terperinci dengan adanya primary key. 3) Normalisasi Untuk mengorganisasikan file dengan menghilangkan group elemen yang berulang atau sebuah langkah atau proses untuk menyederhanakan hubungan elemen data didalam table (record) 4) Spesifikasi Basis Data Untuk menjelaskan tipe data yang ada pada model konseptual secara detail.
6. Sistematika Penulisan Penulisan perancangan ini terdiri dari beberapa bab. Keseluruhan bab ini berisi uraian tentang usulan pemecahan masalah secara berurutan. Uraian berikut ini adalah uraian singkat mengenai bab – bab tersebut : Bab I PENDAHULUAN Pada bab ini akan diuraikan hal – hal yang berhubungan dengan latar belakang, masalah, tujuan penulisan, ruang lingkup/batasan masalah, metode penelitian dan sistematika penulisan. Bab II
LANDASAN TEORI Bab ini merupakan landasan teori dari penyusunan penulisan ini yang membicarakan tentang pengertian Konsep Dasar Sistem, Konsep Dasar Informasi, Konsep Dasar Sistem Informasi, Analisa Sistem, Perancangan Sistem, Analisa Berorientasi Objek, Perancangan Berorientasi Objek dan Sistem Penjualan.
Bab III
ANALISA SISTEM Bab ini menceritakan tentang Tinjauan Organisasi, Uraian Prosedur, Analisa Keluaran, Analisa Masukan, Analisa Proses, Identifikasi Kebutuhan, Package Diagram, Use Case Usulan dan Deskripsi Use Case.
Bab IV
RANCANGAN SISTEM Bab ini menjelaskan mengenai rancangan umum sistem informasi yang penulis usulkan, Rancangan Proses, Rancangan Basis Data, Rancangan Muka (interface), interaction diagram dengan menggunakan Sequence Diagram, Rancangan Class diagram (entity, Boundary, dan Control Class).
Bab V
KESIMPULAN DAN SARAN Pada kesimpulan ini akan diuraikan kesimpulan dan saran yang dapat dilakukan dan dikerjakan dalam usaha dimasa mendatang untuk menghasilkan sistem yang optimal.
Bab II LANDASAN TEORI Pada bab ini berisi penjelasan tenteng kategori yang menjadi landasan dalam penyusunan skripsi ini. Dan secara garis besar akan di jelaskan mengenai pengertian – pengertian dan konsep – konsep dasar yang akan digunakan dalam perancangan sistem yang akan dibuat dalam skripsi ini. 1.
Konsep Dasar Sistem Pada dasarnya sistem ini merupakan sesuatu yang memiliki bagian – bagian atau komponen yang saling berinteraksi untuk mencapai tujuan tertentu dengan melalui tiga tahapan, yaitu : input, process dan output. Menurut Jogiyanto (2003 : 34) sistem dapat didefinisikan dengan pendekatan prosedur dan dengan pendekatan komponen. Ia juga mengungkapkan bahwa : “Dengan pendekatan prosedur, sistem dapat didefinisikan sebagai kumpulan dari prosedur – prosedur yang mempunyai tujuan tertentu, contoh dari sistem ini adalah sistem akuntansi. Pada sistem dapat didefinisikan sebagai kumpulan dari prosedur – prosedur penerimaan kas, pengeluaran kas, penjualan, pembelian dan buku besar. Sedang kan dengan pendekatan komponen, sistem yang dapat didefinisikan sebagai kumpulan dari komponen yang saling berhubungan satu dengan yang lainnya membentuk satu kesatuan untuk mencapai tujuan tertentu, contohnya adalah sistem komputer. Pada sistem ini dapat didefinisikan sebagai kumpulan dari perangkat lunak dan perangkat keras” Jadi dari pendefinisian diatas dapat diambil suatu pengertian bahwa, suatu sistem dapat didefinisikan sebagai suatu kesatuan atau kumpulan yang terdiri dari dua atau lebih komponen yang saling berinteraksi untuk mencapai tujuan. Suatu hal akan layak dikatakan sebuah sistem jika telah memenuhi delapan karakteristik sistem, yaitu sebagai berikut : 1. Suatu sistem mempunyai komponen – komponen sistem (components) atau subsistem – subsistem. 2. Suatu sistem mempunyai batas sistem (boundary). 3. Suatu sistem mempunyai lingkungan luar sistem (environment). 4. Suatu sistem mempunyai penghubung (interface). 5. Suatu sistem mempunyai masukan (input). 6. Suatu sistem mempunyai pengolahan (process). 7. Suatu sistem mempunyai keluaran (output). 8. Suatu sistem mempunyai Tujuan (goal) atau sasaran (objective).
2.
Konsep Dasar Informasi Informasi merupakan bagian yang sangat penting dalam suatu organisasi. Informasi sangat dibutuhkan oleh setiap manajemen dalam pengambilan sebuah keputusan, karena kegunaan informasi adalah untuk mengurangi ketidakpastian dalam proses pengambilan keputusan tentang suatu keadaan. Informasi (information) adalah data yang diolah menjadi bentuk yang berguna dan lebih berarti bagi pemakainya yang menggambarkan suatu kejadian – kejadian (event) Yang nyata (fact) yang digunakan untuk pengambilan keputusan. Data adalah kenyataan yang menggambarkan suatu kejadian – kejadian dan kesatuan yang nyata. Kejadian – kejadian yang dimaksud adalah sesuatu yang terjadi pada saat tertentu sedangkan kesatuan yang nyata (fact) adalah berupa suatu objek nyata seperti tempat, benda dan orang yang betul – betul ada dan terjadi. Namun data yang diolah saja belum tentu cukup menjadi suatu informasi. Untuk menjadi suatu informasi maka data yang diolah tersebut selain harus berguna bagi pemakainya, juga harus didukung oleh tiga pilar. Tiga pilar tersebut yaitu : a. Tepat kepada orangnya atau relevan (relevance) Relevan, berarti informasi tersebut mempunyai manfaat untuk pemakaiannya karena relevansi suatu informasi untuk tiap – tiap orang satu dengan yang lainnya berbeda – beda. b. Tepat waktu (timeliness) Tepat waktu, berarti informasi yang dating pada penerima informasi tidak boleh terlambat. Karena informasi yang sudah usang tidak mempunyai nilai lagi. c. Tepat nilainya atau akurat (accurate) Akurat, berarti informasi harus bebas dari kesalahan – kesalahan. Akurat juga berarti informasi harus jelas mencerminkan maksudnya. Keluaran yang tidak didukung oleh ketiga pilar tersebut tidak dapat dikatakan sebagai informasi yang berguna, tetapi merupakan sampah (garbage).
3.
Konsep Dasar Sistem Informasi Sistem Informasi merupakan suatu sistem didalam suatu organisasi yang sekarang peranannya tidak hanya sebagai pengumpul data dan mengolahnya menjadi informasi berupa laporan – laporan keuangan saja, tetapi mempunyai peranan yang lebih penting di dalam menyediakan informasi bagi manajemen untuk menentukan tindakan yang diambil.
Sistem informasi dapat terdiri dari komponen – komponen yang disebut dengan istilah blok bangunan (BLOCK BUILDING) yaitu : a. Blok Masukan (input Block) b. Blok Model (Model Block) c. Blok Keluaran (output Block) d. Blok Teknologi (Technology Block) e. Blok Basis Data (Database Block) f. Blok Kendali (Control Block) Penjabaran dari blok – blok tersebut adalah sebagai berikut : a. Blok Masukan (Input Block) Input mewakili data yang masuk ke dalam Sistem Informasi, masukan disini termasuk metode dan media untuk menangkap data yang akan dimasukkan, yang dapat berupa dokumen dasar. b. Blok Model (Model block) Blok ini terdiri dari kombinasi prosedur, logika dan model matematika yang akan memanipulasi data masukan dan data yang tersimpan didasar data dengan cara yang sudah tertentu untuk menghasilkan keluaran yang diinginkan. c.
Blok Keluaran (Output Block) Produk dari Sistem Informasi adalah keluaran yang merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakaian sistem.
d. Blok Teknologi (Technology Block) Teknologi merupakan kotak alat (tool box) dari pekerjaan Sistem Informasi. Teknologi digunakan untuk menerima masukan, menjalankan model, menyimpan dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem keseluruhan. Teknologi terdiri dari dua bagian utama yaitu Perangkat Lunak (software) dan Perangkat Keras (hard ware). e. Blok Basis Data (Database Block) Basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya,tersimpan diperangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. f.
Blok Kendali (Control Block) Agar Sistem Informasi dapat berjalan sesuai dengan yang diinginkan, beberapa pengendali perlu dirancang dan diterapkan untuk meyakinkan bahwa hal – hal yang dapat merusak sistem dapat dicegah atau pun bila terlanjur terjadi kesalahan dapat langsung cepat diatasi.
4.
Analisa Sistem Analisa sistem dapat dinyatakan sebagai pemisahan suatu hal dalam bagian – bagian tertentu. Bagian – bagian tersebut kemudian dipelajari dan dievakuasi untuk menngetahuiapakah terdapat cara – cara yang lebih baik untuk memenuhi kebutuhan manajemen. Menurut Ariesto Hadi Sutopo (2002 : 242) : “Analisa sistem adalah proses menentukan kebutuhan sistem – apa yang harus dilakukan sistem untuk memenuhi kebutuhan klien, bukanlah bagian sistem itu diimplementasikan” Adapun langkah – langkah dalam analisa sistem (system analysis) adalah sebagai berikut : a. Analisa Pendahuluan Dalam analisa pendahuluan ini dilakukan pengumpulan informasi untuk memperoleh gambaran secara menyeluruh mengenai tempat yang akan kita analisa. Untuk ini analisa sistem menganbil lembar kerja untuk mengumpulkan informasi yang dikumpulkan dalam analisa pendahuluan. Dari studi pendahuluan ini dapat diperoleh hasil pemahaman sistem secara awal, perkiraan biaya yang dibutuhkan dan waktu yang diperlukan untuk pengembangan sistem tersebut. b. Studi Kelayakan Setelah studi pendahuluan dilakukan, langkah berikutnya adalah melakukan studi kelayakan (feasibility study). Manfaat dari studi adalah peningkatan pengambilan keputusan manajemen, manfaat peningkatan kepuasan pelanggan, manfaat dari segi ekonomis dan manfaat – manfaat yang lain sebagainya. c.
Mengidentifikasi permasalahan dari kebutuhan pemakai Langkah selanjutnya adalah mengidentifikasi masalah disistem yang lama supaya dapat diperbaiki disitem yang baru. Mengidentifikasi masalah dapat dilakukan dengan mengidentifikasi penyebab masalah yang merupakan sumber dari permasalahan yang harus diperbaiki. Pelaksanaan analisa sistem dirancang oleh sistem analis dalam suatu dokumen tertulis tersebut adalah untuk mempertemukan pikiran pemakai informasi dengan analis sistem mengenai pekerjaan pengmbangan sistem yang akan dilaksanakan ole analis untuk memenuhi kebutuhan pemakai informasi.
d. Memahami sistem yang ada Setelah diketahui sumber dan tempat permasalahannya, langkah selanjutnya adalah memahami sistem yang ada untuk mendapatkan data dan menganalisis permasalahannya. Memahami sistem dapat dilakukan dengan melakukan penelitian untuk mendapatkan data tentang sistem yang ada. Penelitian dapat dilakukan dengan langkah – langkah sebagai berikut :
1. Menentukan jenis penelitiannya, apakah berupa wawancara, observasi, survei, atau pengambilan contoh. Wawancara ini dilakukan dalam rangka mendapatkan data dan informasi dalam bentuk Tanya jawab kepada beberapa karyawan yang ditunjuk dan mengetahui tentang objek penelitian. Observasi diperlukan untuk melihat secara langsung ke lokasi penelitian, survei atau pengambilan sample diperlukan bila memang dibutuhkan data yang kongkrit tentang penelitian untuk diujikan. 2. Merencanakan jadwal penelitian 3. Membuat penugasan penelitian 4. Melakukan hasil penelitian 5. Mengumpulkan hasil penelitian e. Menganalisa hasil penelitian Setelah penelitian dilakukan dan hasil penelitian dikumpulkan langkah selanjutnya adalah menganalisis hasil penelitian tersebut. Menganalisis penelitian terdiri dari menganalisis kelemahan sistem yang lama dan menganalisis kebutuhan informasi pemakai. Menganalisis kelemahan sistem yang lama dimaksudkan untuk menemukan penyebab sebenarnya permasalahan – permasalahan yang terjadi yang menyebabkan sistem yang lama tidak berfungsi dengan baik. Menganalisis kebutuhan informasi pemakai perlu dilakukan untuk menghasilkan informasi yang relevan. 5.
Perancangan Sistem Setelah tahap analisa sistem adalah tahap perancangan sistem (system design). Tahap perancangan sistem mempunyai dua tujuan utama, yaitu sebagai berikut : a. Memberikan gambaran secara umum tentang kebutuhan informasi kepada pemakai sistem secara logika. b. Memberikan gambaran yang jelas dan rancangan kepada pemrograman komputer dan ahli teknik lainnya. Dalam suatu perancangan sistem informasi terdiri dari rancangan komponen – komponen. Komponen – komponen ini dirancang dengan tujuan untuk dikomunikasikan kepada user atau pemakai. Secara umum sebagai berikut : a. Perancangan Model Rancangan model dari sistem informasi yang diusulkan dalam bentuk fisik dan model logika. Bagan alur sistem merupakan alat yang tepat untuk menggambarkan sistem fisik. Model logika dari sistem informasi lebih menjelaskan pada user, bagaimana nantinya fungsi – fungsi dari sistem informasi secara logika akan bekerja. Model logika akan digambarkan dengan menggunakan sequence diagram. b. Perancangan Keluaran Keluaran merupakan produk dari sistem informasi yang dapat dilihat. Istilah keluaran dapat terdiri dari berbagai jenis. Yang dimaksud keluaran dari rancangan sistem ini adalah keluaran yang berupa tampilan dimedia kertas atau layar komputer.
c.
Perancangan Masukan Alat masukan dapat dikategorikan kedalam 2 golongan yaitu alat input langsung dan alat input tidak langsung. Alat input langsung berupa alat yang langsung dihubungkan ke CPU (Central Processing Unit) sedang alat masukan tidak langsung adalah alat yang tidak langsung dihubungkan ke CPU.
d. Perancangan Basis Data Basis data merupakan kumpulan dari data yang berhubungan satu dengan yang lainnya. Data tersebut tersimpan disimpanan luar komputer dan dipergunakan perangkat lunak (software). 6.
Konsep Dasar Berorientasi Objek (Object – Oriented) Konsep dasar berorientasi objek mencapai kematangan pada saat masalah analisis dan desain menjadi lebih diperhatikan dari pada masalah coding. Secara spesifik, pengertian “berorientasi objek” (Ariesto Hadi Sutopo, 2002 : 3) berarti bahwa “kita mengorganisasi perngkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya”. Terdapat beberap cara untuk menetukan karakteristik dalam pendekatan berorientasi objek, tetapi secara umum mencakup empat hal, yaitu identifikasi, klasifikasi, polymorphism (polimorfisme) dan inheritance (pewarisan). Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama, yaitu : a. Encapsulation Encapsulation (pengkapsulan) merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. b. Inheritance Inheritance (pewarisan) adalah tehnik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Sifat yang dimiliki oleh kelas induknya tidak perlu diulang dalam setiap subkelasnya. c. Polymorphism Polymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Unified Modelling Language Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk sebuah jenis aplikasi piranti lunak,dimana apalikasi tersebut dapat berjalan dalam piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti dalam bahasa – bahasa berorientasi objek. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya : Grady Booch OOD(Object – Oriented Design), Jim Rumbaugh OMT
(Object Modelling Technique), dan Ivar Jacobson OOSE (Object – Oriented Software Engineering). Tujuan utama UML diantarnya adalah untuk : Memberikan model yang siap pakai, bahasa permodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. Memberikan bahasa permodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa. Menyatukan prakte – praktek terbaik yang terdapat dalam permodelan. Cakupan UML diantaranya : Pertama, UML menggabungkan konsep BOOCH, OMT dan OOSE, sehingga UML merupakan suatu bahasa permodelan tunggal yang umum dan digunakan secara luar oleh para user ketiga metode tersebut dan bahkan para user metode lainnya. Kedua, UML menekankan pada apa yang dapat dikerjakan dengan metode – metode tersebut. Ketiga, UML berfokus pada suatu bahasa permodelan standar, bukan pada proses standar. Untuk membuat suatu model, UML mendefinisikan diagram – diagram berikut ini : Use Case Diagram Class Diagram Behaviour Diagram o Statechart Diagram o Activity Diagram Interaction Diagram o Sequence Diagram o Collaboration Diagram Component Diagram Deployment Diagram Dalam mengalisa dan merancang sistem yang ditulis dalam skripsi ini, penulis tidak menggunakan semua diagram, hanya beberapa saja yang dibutuhkan sperti use case diagram, activity diagram, class diagram dan beberapa lagi yang digunakan pada masing – masing proses analisa dan perancangan. 7.
Analisa dan perancangan Berorientasi Objek Dalam melakukan analisa dan perancangan sistem berorientasi objek penulis menggunakan bantuan UML (Unified Modelling Language). a. Analisa Berorientasi Objek (Object – Oriented Analysis) Analisa berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek yang merupakan kombinasi antar struktur data dan perilaku dalam satu entitas. Pengertian Object – oriented analysis adalah Metode analisa yang memeriksa requirements dari sudut pandang class dan object.
Analysis berorientasi objek atau Object – oriented analysis (OOA) dimulai dengan menyatakan suatu masalah, analisa membuat suatu model situasi dari dunia nyata, menggambarkan sifat yang penting. Model analisis adalah abstraksi yang ringkas dan tepat dari apa yang harus dilakukan oleh sistem dan bagaimana melakukannya. Analisis berorientasi objek memiliki pendekatannya, yaitu : 1) Menentukan kelas dan objek 2) Identifikasi Struktur 3) Identifikasi Subjek 4) Menentukan Atribut 5) Menentukan Metode
lima
aktifitas
utama
dalam
Terdapat tujuh macam tujuan dan keuntungan dari analisis Berorientasi Objek, yaitu : 1) Menangani lebih banyak problem domain, Analisis berorintasi objek memberikan kemudahan untuk memahami inti permasalahan. 2) Analisis berorientasi objek mengorganisasikan analisis dan spesifikasi dengan metode yang digunakan cara berfikir manusia. 3) Mengurangi jarak antara aktifitas analisis yang berbeda dengan membuat atribut dan metode menjadi satu kesatuan. 4) Pewarisan dapat memberikan identifikasi sesuatu yang umum pada atribut dan metode. 5) Menjaga stabilitas atas perubahan kebutuhan pada sistem yang sama. 6) Hasil analisis dapat digunakan kembali. 7) Penggambaran yang konsisten dari sistem, pada tahap analisis dan desain. Alat Bantu yang digunakan dalam bahasa analisa berorientasi objek sebagai berikut : 1) Use Case Diagram Use Case Diagram menggambarkan sebuah fungsionalitas yang diharapkan dari sebuah sistem dan bagaimana sistem berinteraksi dengan dunia luar. Yang ditekankan dalam Use Case Diagram adalah ”apa” yang diperbuat sistem, dan bukan “bagaimana” sistem itu melakukannya. Sebuah Use Case mempresentasikan sebuah interaksi antara actor dengan sistem. Use Case Diagram juga menjelaskan manfaat sistem jika dilihat menurut pandangan orang yang berada diluar sistem (actor). Use Case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng - create sebuah daftar daftar belanja dan sebagainya. Secara umum Use Case Diagram terdiri dari : a) Actor Actor menggambarkan orang, sistem atau entitas luar yang menyediakan informasi atau menerima informasi dari sistem. Dalam Use Case Diagram terdapat satu aktor pemulai atau initiator actor yang membangkitkan rangsangan awal terhadap sistem, dan mungkin
sejumlah aktor lain yang berpartisipasi atau participating actor akan sangat berguna untuk mengetahui siapa aktor pemulai tersebut. Actor dinotasikan seperti dibawah ini :
New Class Gambar 2. 1 Simbol dari Actor b) Use Case Use case menggambarkan perilaku, termasuk didalamnya interaksi antara actor dengan sistem. Use case dibuat berdasarkan keperluan actor, merupakan “apa” yang dikerjakan sistem bukan “bagaimana” sistem mengerjakannya. Setiap use case harus diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan actor. Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada dua use case yang memiliki nama yang sama.
New Use Case Gambar 2. 2 Simbol dari Use Case c) Relationship (Relasi) / Association (Asosiasi) Associations menggambarkan bagaimana actor terlibat dalam use case dan bukan menggambarkan aliran data atau informasi. Association digambarkan dengan sebuah garis berpanah terbuka pada salah satu ujungnya yang menunjukkan arah relasi. Ada empat jenis relasi / asosiasi yang dapat timbul pada use case diagram, yaitu : (1). Asosiasi antara actor dan use case Ujung panah association antara actor dan use case mengindikasikan siapa / apa yang meminta interaksi dan bukannya mengindikasikan aliran data.
Sebaiknya gunakan tanpa tanah untuk associaton antara actor dan use case. associaton antara actor dan use case yang menggunakan panah terbuka untuk mengindikasikan bila actor berinteraksi secara pasif dengan sistem. Relasi / asosiasi antara actor dengan use case :
N e w U se C a se N e w C la ss
Gambar 2. 3 Relasi antara actor dengan use case (2).
Asosiasi antara Use Case Relasi antara use case dengan use case : 1. Include, menggambarkan suatu use case termasuk didalam use case lain (diharuskan). Contohnya adalah pemangagilan sebuah fungsi program. Digambarkan dengan garis lurus berpanah dengan tulisan <>. Sebagai contoh : <> Buka rekening
Nasabah
Gambar 2. 4 Simbol include
Catat Data Pribadi
2. Extend, digunakan ketika hendak menggambarkan variasi pada kondisi perilaku normal dan menggunakan lebih banyak control forn dan mendeklarasikan ekstension pada use case utama atau dengan kata lain adalah perluasan dari use case lain jika syarat atau kondisi terpenuhi. Digambarkan dengan garis lurus berpanah dengan tulisan <<extend>>. Sebagai contoh :
Buka rekening <<extend>>
Nasabah Buka Deposito
Gambar 2. 5 Simbol extend 3. Generalization / Inheritance, digambarkan dengan garis lurus berpanah tertutup dari base use case ke parent use case.
Gambar 2. 6 Simbol panah Generalization
(3).
Generalization / Inheritance antara Use Case Generalization dipakai ketika ada sebuah perilaku khusus (single condition) dan merupakan pola hubungan base – parent use case. Digambarkan dengan generalization / inheritance antar use case secara vertical dengan inheriting use case dibawah base / parent use case.
Buka rekening
Nasabah Buka Deposito
Gambar 2. 7 Generalization antar use case (4).
Generalization / Inheritance antara Actors Digambarkan generalization / Inheritance antara Actors secara vertical dengan inheriting actor dibawah base / parents use case.
<> enroll student
enroll seminar
Student <<extend>>
enroll international student
enroll family member
international student
Gambar 2. 8 Generalization antara Actors 2) Ativity Diagram (Diagram aktivitas) Activy Diagram menggambarkan berbagai alur kerja dari satu aktifitas ke aktifitas lainya dalam sistem yang sedang dirancang, bagaimana masing – masing alur aktifitas berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Oelh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses – proses dan jalur – jalur aktifitas dari level atas secara umum. Avtivity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram, atau bahkan tanpa menggunakan use case. Didalam diagram aktifitas terdapat : Start point, menggunakan awal dari aktifitas End point, menggambarkan akhir dari aktifitas Activities, menggambarkan proses bisnis Fork, memiliki satu incoming transition dan beberapa outgoing transition Join, menunjukkan outgoing transition diambil atau digunakan hanya ketika semua state pada incoming transition telah menyelesaikan aktifitasnya. Swimlane, merupakan pengelompokan aktifitas berdasarkan actor
b. Perancangan Berorientasi Objek (Object – oriented Design) “Object – Oriented Design merupakan tahap lanjutan setelah Analisis Berorientasi Objek dimana tujuan sistem diorganisasikan ke dalam sub – sistem berdasar struktur analisis dan arsitektur yang dibutuhkan” (Ariesto Hadi Sutopo 2002 : 244) Tahap – tahap yan dilakukan dalam perancangan berorientasi objek sebagai berikut : 1) Perancangan Basis Data Merupakan tahap merancang basis data yang akan diterapkan oleh sistem. a) Permodelan Data Konseptual (Coseptual Data Modelling) Model konseptual merupakan artifact yang paling penting yang harus dibuat sepanjang proses analisis berorientasi objek. Model konseptual merupakan sebuah gambaran mengenai konsep – konsep di dalam domain masalah. Dalam UML, suatu model konseptual digambarkan dengan diagram sturktur statis yang mana didalamnya tidak terdapat penjelasan mengenai operasi – operasi. Model konseptual menitikberatkan fokus pada domain konsep – konsep bukan pada entitas – entitas software. b)
Spesifikasi Basis Data Basis data adalah kumpulan dari data – data yang saling berinteraksi. Sedangkan sistem basisdata adalah suatu sistem penyusunan dan pengelolaan record – record dengan menggunakan komputer dengan tujuan untuk menyimpan atau merekam serta melihat dat operasional lengkap pada sebuah organisasi atau perusahaan, sehingga mampu menyediakan informasi optimal yang diperlukan untuk kepentingan proses pengambilan keputusan.
2) Diagram Interaksi (Interaction Diagram) Interaction Diagram menggambarkan interaksi antar objek (instan dari kelas) di dalam dan sekitar sistem yang menekankan pada pesan (message) apa yang disampaikan dan digambarkan dengan menekankan dimensi waktu atau peran masing – masingnya. Model diagram ini merupakan perilaku dinamis (dynamic behaviour) dari sistem. UML mempunyai dua jenis diagram untuk interaction diagram ini yaitu sequence diagram dan collaboration diagram namun yang dipakai dalam penulisan skripsi ini hanya sequence diagram. Sequence diagram (diagram urutan) menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atasdimensi vertical (waktu) dandimensi horisontal (objek – objek yang terkait).
Sequence diagram biasanya digunakan untuk menggambarkan scenario atau rangkaian langkah – langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan keluaran tertentu. 3) Diagram Kelas (Class Diagram) Class adalah sebuah spesifikasi yang akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut / properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode / fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan object beserta hubungan satu sam lain seperti pewarisan, asosiasi, dan lain – lain. Class memiliki tiga cara area pokok yaitu : Nama (dan stereotype) Atribut Metode Atribut dan metode dapat memiliki salah satu sifat berikut : Private, tidak dapat dipanggil dari luar kelas yang bersangkutan Protected, hanya dapat dipanggil oleh kelas yang bersangkutan dan anak – anak yang mewarisinya Public, dapat dipanggil oleh siapa saja Hubungan antara class diantaranya : Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan kelas yang memiliki atribut berupa kelas lain, atau kelas yang harus mengetahui eksistensi kelas lain. Panah navigability menunjukkan arah query antar class. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas”). Pewarisan, yaitu hubungan hirarki antar class. Kelas dapat diturunkan dari kelas lain dan mewarisi semua atribut dan metode kelas asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari kelas yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu kelas kepada kelas lain. Class Name Atribut / Property / Data
Mahasiswa #Nim -Nama -Alamat +Kuliah () +Cuti()
Methode / Function / Behaviour
Gambar 2. 9 Simbol Class
4) Diagram Komponen (Component Diagram) Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun arun time. Umumnya komponen terbentuk dari beberapa class dan atau package, tapi dapat juga dari komponen – komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen lain.
Gambar 2. 10 Simbol komponen 5) Diagram Arsitektur Sistem (Deployment Sytem) Deployment diagram menggambarkan arsitektur sistem dan bagaimana komponen di-deploy dalam infrastruktur sistem, dimana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal – hal lain yang berakibat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya.
Gambar 2. 11 Symbol Deployment
6) Normalisasi Proses pengelompokkan atribut dari suatu relasi sehingga membentuk Well Structure Relation, normalisasi merupakan sebuah teknik dalam logical design sebuah database. Well Structure Relation adalah sebuah relation yang jumlah kerangkapan datanya sedikit serta memberikan kemungkinan bagi user untuk melakukan insert, delete, dan modify baris – baris data pada relation tersebut yang tidak berakibat terjadinya error atau inkonsistensi data bila dilakukan update pada relasi maka disebut ANOMALY, updating terhadap relation tersebut akan menimbulkan tiga jenis anomaly yaitu 1) INSERTION ANOMALY Error yang terjadi sebagai akibat operasi insert record atau tupple pada sebuah relation. 2) DELETION ANOMALY Error yang terjadi sebagai akibat operasi delete record atau tupple pada sebuah relation. 3) UPDATE ANOMALY Error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record atau tupple pada sebuah relation. Manfaat dari Normalisasi adalah : 1. Meminimalkan jumlah storage space yang digunakan untuk menyimpan data. 2. Meminimalkan resiko data yang tidak konsisten dalam sebuah basis data. 3. Meminimalkan kemungkinan update dan delete anomaly. 4. Memaksimalkan stabilitas dan struktur data. Ada beberapa tahapan Normalisasi yaitu : 1) Normalisasi bentuk pertama (First Normal Form atau 1 NF) yaitu menghilangkan beberapa group elemen yang berulang (repetition field) agar menjadi satu harga tunggal yang berinteraksi diantara setiap baris dan kolom pada suatu table. 2) Normalisasi bentuk kedua (Second Normal Form atau 2 NF) yaitu tabel tersebut sudah terbentuk 1 NF dan diantara non-prime harus fully function dependency terhadap setiap atribut prime. 3) Normalisasi bentuk ketiga (Third Normal Form atau 3 NF) yaitu suatu relasi telah berada pada 3 NF bila sudah berada 2 NF dan setiap atributnya yang bukan key tidak tergantung terhadap atribut lain kecuali terhadap primary key. 4) Normalisasi Boyce – code Normal Form (BCNF) yaitu menghilangkan beberapa sisa keganjilan dari hasil normalisasi bentuk kedua apabila setiap determinant adalah candidate key. 5) Normalisasi bentuk ke empat (Fourth Normal Form atau 4 NF) yaitu menghilangkan beberapa ketergantungan pada banyak harga (multivalue dependence). 6) Normalisasi bentuk kelima (Fifth Normal Form atau 5 NF) yaitu menghilang kan sisa kegajian yang masih ada.
Bab III ANALISA SISTEM
1. Tinjauan Organisasi a. Sejarah Organisasi Badan usaha ini bernama Toko Besi & Kaca Subur yang beralamat di Jl. Kemandoran 1 No.72 Kavling Pulo Jakarta Selatan, perusahaan tersebut bergerak dibidang jual beli bahan – bahan bangunan, perusahaan tersebut merupakan perusahaan milik pribadi yang dikelola oleh Bapak Amrul, ST. Berkat keuletan dan kesabaran serta usahanya selama ini akhirnya perusahaan itu berkembang dengan pesat dan jumlah konsumen yang terus bertambah. Toko Besi & Kaca Subur ini merupakan distributor bahan – bahan bangunan, dimana mereka menjual langsung kepada konsumen. b. Struktur Organisasi Organisasi ini dapat diartikan sebagai cara dimana kegiatan orang dikoordinasikan untuk mencapai suatu tujuan. Dalam organisasi yang besar dan kompleks (rumit), tujuannya biasanya dibagi dalam beberapa sub tujuan atau tujuan antara, dimana masing ditugaskan kepada bebagai sub unit organisasi. Setiap sub bagian bisa dibagi lebih lanjut kedalam sub tujuan – sub tujuan yang lebih kecil lagi dan seterusnya ke bawah sampai pada tingkat struktur organisasi paling rendah. Pola pembagian tujuan (goal) dan tugas (task) organisasi dalam sub – sub ini penugasan kedalam serangkaian tujuan tingkat yang lebih rendah. Suatu organisasi diuraikan secara parsil dengan jumlah tingkat supervise dan rata – rata rentang pengendalian (span of control). Jumlah tingkat supervise adalah banyak garis (rank) antara tingkat tertinggi dan tingkat terendah dari suatu unit organisasi. Rentang pengendalian menunjukan banyaknya bawahan yang melaporkan kepada seorang atasan. Struktur organisasi adalah suatu susunan pembagian tanggung jawab menurut fungsi dan hiralkis. Penyusunan struktur organisasi dengna demikian harus memperhitungkan semua fungsi yang ada dalam perusahaan dan demikian harus membagi habis fungsi – fungsi tersebut kepada pihak – pihak yang harus mempertanggung jawabkannya. Organisasi juga dapat diibaratkan sebagai kesatuan anggota tubuh manusia yang bekerja sama sehingga fungsi tubuh manusia dapat berjalan sesuai dengan yang diharapkan. Begitu pula dengan organisasi yang ada pada Toko Besi & Kaca Subur yang masing – masing bagian saling bekerja sama untuk mencapai tujuan yang sama.
Prinsip – prinsip yang harus dipegang dalam menyusun suatu organisasi adalah : 1) Harus ada pemisahan antara fungsi pencatatan, pelaksanaan, dan penyimpanan atau pengelolaan. 2) Suatu fungsi tidak boleh diberi tanggung jawab penuh untuk melaksanakan semua tahap suatu transaksi dari awal sampai akhir. Untuk lebih jelas mengenai struktur organisasi yang terdapat pada Toko Besi & Kaca Subur, dapat dilihat pada gambar 3. 1 dibawah ini
Pimpinan
Wakil
Bagian Pembelian
Bagian Penjualan
Bagian Gudang
Bagian Pengiriman
Gambar 3. 1 Sturktur Organisasi Toko Besi & Kaca Subur
Untuk lebih jelasnya tugas, wewenang, serta tanggung jawab maupun fungsinya diuraikan sebagai berikut : 1)
Pimpinan Tugas dan tanggung jawab antara lain : a) Sebagai pimpinan perusahaan b) Memberikan persetujuan untuk pembelian dan penjualan barang secara tunai. c) Memimpin dan mengawasi kegiatan perusahaan secara menyeluruh. d) Mengkoordinasikan seluruh bagian yang ada harmonis dan tercapainya tujuan perusahaan.
2)
Wakil Tugas dan tanggung jawab antara lain : a) Sebagai tangan kanan atau orang kepercayaan pimpinan dalam membantu tugas pimpinan. b) Sebagai pengganti pimpinan, apabila tidak ada ditempat. c) Mengatur administrasi keuangan perusahaan.
3)
Bagian Pembelian Tugas dan tanggung jawab antara lain : a) Mengontrol stok barang dan memesan barang – barang yang jumlahnya sudah minim atau hamper habis. b) Membuat laporan barang masuk. c) Menganalisa hasil pembelian.
4)
Bagian penjualan Tugas dan tanggung jawab antara lain : a) Bertanggung jawab kepada pimpinan. b) Mengatur kegiatan penjualan. c) Mengarahkan, mengkoordinasikan dan mengawasi kegiatan penjualan tunai. d) Melayani pembeli atas barang yang dibutuhkan sambil mengontrol barang yang dibutuhkan ada atau tidak. e) Membuat laporan penjualan untuk pimpinan. f) Mengirimkan barang ke pelanggan.
5) Bagian gudang Tugas dan tanggung jawab antara lain : a) Membantu pimpinan dalam persediaan barang. b) Menerima barang dari supplier c) Menyiapkan barang untuk dikirim ke pelanggan. d) Mengecek persediaan barang digudang. e) Melaporkan persediaan barang kepada pimpinan. 6) Bagian pengiriman Tugas dan tanggung jawab antara lain : Bagian pengiriman bertugas mengirim barang kepada pelanggan disertai dengan surat bukti berupa SJ (surat jalan), dan melaporkan pengiriman barang kepada bagian penjualan. Bagian pengiriman juga bertanggung jawab terhadap barang akan dibawa selama dalam perjalanan.
2. Uraian Prosedur Dalam sistem berjalan pada Toko Besi & Kaca Subur terdapat beberapa prosedur dalam hal penjualan barang, diantaranya adalah sebagai berikut : a. Proses Pembayaran Proses ini dimulai ketika pelanggan memesan barang yang akan dibelinya dengan datang langsung atau melalui telepon, pemesanan disampaikan secara lisan dan ditulis kesebuah nota. Kemudian bagian penjualan akan mengecek barang yang akan dipesan oleh pelanggan apakah sesuai dengan pesanan, apabila sesuai maka terjadi kesepakatan. Berdasarkan nota yang dibuat dan telah disepakati bersama,maka penjualan memberikan nota yang berisi tagihan sejuamlah uang yang harus dibayar oleh pelanggan. b. Proses Pengiriman Sesuai dengan nota yang telah dibuat oleh bagian penjualan, maka bagian penjualan membuat SJ (Surat Jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan dikirim berdasarkan SJ, kemudian bagian gudang memerintahkan kepada bagian pengiriman mengirim barang yang disertai SJ kepada pelanggan. Jika ada barang yang tidak sesuai, maka pelanggan tidak akan menandatangani SJ tersebut. Jika sesuai maka SJ akan ditandatangani pelanggang dan akan dikirim kembali rangkapnya untuk arsip ke bagian penjualan sebagi bukti bahwa barang yang telah diterima oleh pelanggan dengan baik. c. Proses Pembuatan Laporan Penjualan Sebagai bukti pertanggung jawaban kepada pimpinan maka bagian penjualan membuat laporan penjualan yang akan diserahkan kepada pimpinan setiap 1 bulan sekali dan laporan penjualan ini dibuat berdasarkan nota.
3. Analisa Proses Dalam analisa proses ini akan dijelaskan semua aktivitas yang dilakukan pada sistem berjalan melalui activity diagram dibawah ini : a. Proses Pembayaran
Bagian Penjualan
Pelanggan
start
Terima pesanan
Pesan barang
Cek barang
[Barang tidak ada] [Barang ada] Pesanan disetujui
Buat nota
Terima nota
Terima pembayaran
Stop
Gambar 3. 2 Activity Diagram Proses Pembayaran
Melakukan pembayaran
b. Proses Pengiriman
Bagian Penjualan
Bagian Gudang
Bagian Pengiriman
Pelanggan
Start
Lihat nota
Buat surat jalan
Terima surat jalan
Siapkan barang
Kirim barang
Terima barang
Stop
disertaiSJ
Terima barang dan SJ
Cek barang
Terima SJ dan barang
Kirim SJ yang tidak divalidasi dan barang yang tidak sesuai
[ Tidak sesuai ]
[ Sesuai ]
Terima SJ divalidasi
Terima SJ yang telah divalidasi
Kirim SJ yang telah divalidasi
Stop
Gambar 3. 3 Activity Diagram Proses Pengiriman
SJ divalidasi
c.
Proses Laporan Penjualan
Bagian penjualan
Pimpinan
Start
Lihat nota
Buat laporan penjualan
Terima laporan
Stop
Gambar 3. 4 Activity Diagram Proses Laporan Penjualan
4. Analisa Keluaran Sistem Berjalan Analisa keluaran adalah sistem analisa mengenai keluaran – keluaran yang dihasilkan dari sistem penjualan tunai Toko Besi & Kaca Subur adalah sebagai berikut : a. Nota b. SJ (Surat Jalan) c. Laporan Penjualan Uraian dari keluaran tersebut adalah sebagai berikut : a. Nota Nama keluaran Fungsi
Media Distribusi Rangkap Frekuensi Volume Format Keterangan Hasil analisa
: Nota : Sebagai bukti adanya transaksi penjualan barang, dokumen yang daftar barang – yang dibeli oleh pelanggan dan sebagai penagihan pembayaran dan sebagai bukti pembayaran. : Kertas : Pelanggan, arsip : 2 (dua) : Setiap terjadi transaksi penjualan : 10 / perhari : Lampiran – A2 : Tidak adanya penomoran yang jelas, sehingga mempersulit penjualan atau pemesanan barang : Kurang baik
b. SJ (Surat Jalan) Nama keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan Hasil analisa
: : : : : : : : :
: Cukup baik
Surat Jalan Tanda bukti pengiriman barang Kertas Pelanggan, arsip 2 (dua) Setiap hari 12 / hari Lampiran – A1 Mengetahui pengiriman barang kepelanggan
c.
Laporan Penjualan
Nama keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan Hasil analisa
: Laporan Penjualan : Untuk mengetahui keadaan penjualan yang terjadi dalam satu periode : Kertas : Pemilik Toko : Satu lembar : Bulanan : Satu kali per bulan : Lampiran A3 : Bentuk laporan standar dan detail laporan tidak tersusun rapi : Kurang baik
5. Analisa Masukan Sistem Berjalan a.
Pemesanan Nama keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan Hasil analisa
: Pemesanan : Sebagai bukti pesanan barang yang akan dibeli dari pelanggan : Suara : Pelanggan :: Setiap terjadinya pesanan barang oleh pelanggan : 20 / perhari : Lampiran B - 1 : Pesanan disampaikan pelanggan dengan dengan datang langsung atau melalui telp : Cukup baik
6. Identifikasi Kebutuhan Berdasarkan hasil analisa dan uraian umum mengenai sistem yang sedang berjalan pada Toko Besi & Kaca Subur, maka dapat di identifikasikan kekurangan yang ada, sehingga pada sistem mendatang dibutuhkan : a. Kebutuhan Masalah Usulan b. Kebutuhan Masalah Usulan c.
Kebutuhan Masalah Usulan
d. Kebutuhan Masalah Usulan
: Data Pelanggan : Tidak adanya pencatatan data pelanggan yang melakukan transaksi pemesanan untuk memudahkan dalam pencarian informasi tentang pelanggan tersebut. : Penyediaan informasi tentang pendataan pelanggan yang barasal langsung dari pelanggan. : Data Barang : Tidak terkontrolnya stok barang yang ada di gudang, sehingga sering terjadi kesalahan dalam proses penjualan : Disediakannya informasi data stok barang yang ada digudang : Data Kendaraan : Pengiriman tidak hanya dilakukan oleh satu kendaraan, melainkan adanya pergantian dalam hal pengiriman barang ke pelanggan. : Memastikan informasi kendaraan dalam hal pengiriman barang. : Surat Jalan : Kurang jelasnya pencatatan pada surat jalan, sehingga sulit untuk mengetahui apakah barang sudah terkirim. : Mempermudah pencatatan surat jalan kedalam bentuk form sebagai masukan kedalam sistem.
e. Kebutuhan Masalah Usulan
: Nota : Sering terjadi kesalahan dalam penginputan data barang. : Mempermudah pecatatan nota yang berupa sebuah form sebagai rangkaian transaksi dari pelanggan.
f.
: Laporan Penjualan : Tidak jelasnya berapa jumlah dan total harga barang yang terjual atau rincian penjualan rincian. : Disediakannya informasi laporan penjualan barang dan data mentah dalam bentuk berkas komputer yang menginformasikan rincian penjualan barang yang terjadi dalam perusahaan.
Kebutuhan Masalah Usulan
g. Kebutuhan : Laporan pengiriman Masalah : Tidak adanya informasi laporan pemesanan yang diserahkan kepada pimpinan dalam bentuk laporan Usulan : Disediakan informasi dalam bentuk laporan pemesanan data mentah dalam bentuk berkas komputer yang menginformasikan rincian pesanan barang dalam satu periode tertentu dalam perusahaan. h. Kebutuhan : Laporan kendaraan Masalah : Tidak adanya informasi laporan tentang kendaraan yang diserahkan kepada pimpinan dalam bentuk laporan Usulan : Disediakan informasi dalam bentuk laporan kendaraan data mentah dalam bentuk berkas komputer yang menginformasikan rincian kendaraan dalam satu periode tertentu dalam perusahaan.
7. Package Diagram Berikut ini adalah Package Diagram sistem usulan berorientasi objek pada Toko Besi & Kaca Subur yang dituangkan pada gambar dibawah ini :
File Master
File Transaksi
Gambar 3. 5 Package Diagram
Laporan
8. Use Case Diagram Sistem Usulan a.
Use Case Diagram File Master
Entri Data Pelanggan
Entri Data Barang Bagian Penjualan
Entri Data Kendaraan
Gambar 3. 6 Use Case Diagram File Master
b.
Use Case Diagram Transaksi
<>
Entri Nota Bagian Penjualan
Gambar 3. 7 Use Case Diagram Transaksi
Cetak Nota
c.
Use Case Diagram Pengiriman
<>
Entri SJ Bagian Penjualan
Gambar 3. 8 Use Case Diagram Pengiriman
Cetak SJ
d.
Use Case Diagram Laporan
Cetak Laporan Penjualan
Cetak Laporan Pengiriman Bagian Penjualan
Cetak Laporan Kendaraan
Gambar 3. 9 Use Case Diagram Laporan
9. Deskripsi Use Case a. Deskripsi Use Case File Master 1) Entri Data Pelanggan Use Case Actor Deskripsi 2) Entri Data Barang Use Case Actor Deskripsi
3) Entri Data Kendaraan Use Case Actor Deskripsi
: Entri Data Pelanggan : Bagian Penjualan : Entri data pelanggan merupakan kumpulan data – data pelanggan yang terdiri dari Kd_Plg, Nm_Plg, Almt dan Telp Kd_Plg, Nm_Plg, Almt dan Telp dientri oleh user Kd_Plg, Nm_Plg, Almt dan Telp di simpan ke file pelanggan : Entri Data Barang : Bagian Penjualan : Entri data barang merupakan kumpulan data – data barang yang terdiri dari Kd_brg, Nm_brg, Satuan, Harsat dan Stock Kd_brg, Nm_brg, Satuan, Harsat dan Stock dientri oleh user Kd_brg, Nm_brg, Satuan, Harsat dan Stock di simpan ke file barang : Entri Data Kendaraan : Bagian Penjualan : Entri data kendaraan merupakan kumpulan data – data kendaraan yang terdiri dari No_Pol dan Jenis_Knd No_Pol dan Jenis_Knd dientri oleh user No_Pol dan Jenis_Knd di simpan ke file kendaraan
b. Deskripsi Use Case Transaksi 1) Cetak Nota Actor Deskripsi
: Bagian Penjualan, Pelanggan : baca file Nota ambil No_Nota, Tgl_Nota dan Kd_Plg baca file Pelanggan ambil Kd_Plg Print Nota
<> Use Case Actor Deskripsi
c.
: Entri Nota : Bagian Penjualan : Entri Nota merupakan kumpulan dari nota pelanggan yang berisi No_Nota, Tgl_Nota, Kd_Plg No_Nota dientri oleh user Tgl_Nota didapat dari tanggal sistem pada pemesanan Kd_Plg dientry oleh user
Deskripsi Use Case Pengiriman 2) Cetak Surat Jalan Actor Deskripsi
<> Use Case Actor Deskripsi
: Bagian Penjualan, Pelanggan : baca file SJ ambil No_SJ, Tgl_SJ dan No_Nota baca file Pelanggan ambil Nm_Plg, dan Almt_Plg baca file Kendaraan ambil No_Pol Print SJ : Entri SJ : Bagian Penjualan, Pelanggan : Surat jalan merupakan bukti pengiriman barang yang berisi No_SJ, Tgl_SJ, No_Nota, No_pol No_SJ didapat dari No_SJ terakhir ditambah Satu Tgl_SJ diambil dari tanggal sistem pada saat pencetakan surat jalan No_Nota dientri oleh user No_pol dientri oleh user
d. Deskripsi Use Case Laporan 1) Cetak Laporan Penjualan Use Case : Cetak Laporan Penjualan Actor : Bagian penjualan, Pemilik Toko Deskripsi : Bagian Penjualan akan membuat laporan penjualan berdasarkan periode tertentu, dan kemudian diserahkan kepada pemilik toko 2) Cetak Laporan Pengiriman Use Case : Cetak Laporan Pengiriman Actor : Bagian Penjualan, Pemilik Toko Deskripsi : Bagian Penjualan akan membuat laporan Pengiriman berdasarkan periode tertentu, dan kemudian diserahkan kepada Pemilik Toko
3) Cetak Laporan Kendaraan Use Case : Cetak Laporan Kendaraan Actor : Bagian Penjualan, Pemilik Toko Deskripsi : Bagian Penjualan akan membuat laporan tetang kendaraan berdasarkan periode tertentu, dan kemudian diserahkan kepada pemilik toko
Bab IV RANCANGAN SISTEM Setelah mengetahui proses yang dilakukan pada sistem yang ada dan masalah – masalah yang dihadapi, maka langkah selanjutnya yang akan dilakukan adalah merencanakan sistem baru yang dapat memberikan peningkatan dalam hal : a. Kinerja, yaitu peningkatan terhadap hasil kerja sistem yang baru, sehingga menjadi lebih baik. b. Informasi, yaitu peningkatan terhadap kualitas informasi yang dihasilkan. c. Ekonomis, yaitu peningkatan terhadap manfaat – manfaat atau keuntungan atau penurunan biaya yang terjadi. d. Control, yaitu peningkatan untuk mendeteksi dan memperbaiki kesalahan yang terjadi. e. Pelayanan, yaitu peningkatan terhadap pelayanan yang diberikan oleh sistem. 1. Rancangan Basis Data a. ER – D (Entity Relationship Diagram) Untuk memodelkan data digunakan alat bantu berupa ER – Diagram yang dilengkapi dengan atribut dan tingkatan hubungan (Cardinality) yang digambarkan dalam gambar dibawah ini : Pelanggan * Kd_Plg Nm_Plg Almt_Plg Telp
1
Buat
M
* Kd_Plg * No_Nota
Nota 1
M
Isi
* No_Nota Tgl_Nota
N
Barang
* No_Nota * Kd_Brg Harga_Jual Jml_Jual
M
* Kd_Brg Nm_Brg Satuan Har_Sat Stok
Kirim
Dapat * No_Nota * No_SJ
M
* Kd_Brg * No_SJ Jml_Kirim
N SJ M
* No_SJ Tgl_SJ
Ada * No_SJ 1 * No_Pol Kendaraan * No_Pol Jns_Kendaraan
Gambar 4. 1 Entity Relationship Diagram
b. Transformasi ER – Diagram ke LRS Transformasi diagram berhubungan entitas kedalam logical record structure merupakan kegiatan untuk membentuk data – data di ER – Diagram kedalam LRS. Pada sebuah ER – Diagram nama field diluar kotak (diluar entity), sedangkan pada sebuah LRS setiap field ditulis didalam kotak, dan memiliki sebuah nama unik. Aturan diatas berlaku, dan sangat dipengaruhi oleh elemen yang menjadi titik perhatian utama pada langkah transformasi, yaitu pada tingkatan hubungannya (cardinality). Cardinality antar entitas (1 : 1, 1 : M, dan M : M) sangat mempengaruhi bagaimana transformasi harus dilakukan, transformasi ke Logical Record Structure adalah : 1) Untuk Cardinality One to One (1 : 1), maka relasi yang ada digabungkan kesalah satu entitas yang memiliki atribut lebih sedikit, atau entitas yang membutuhkan referensi. 2) Untuk Cardinality One to Many (1 : M), maka relasi yang ada digabungkan ke entitas yang memiliki cardinality many. 3) Untuk Cardinality Many to Many (M : N), maka relasi yang ada akan menjadi sebuah LRS tersendiri. Untuk ER – Diagram Sistem Informasi Penjualan pada Toko Besi & Kaca Subur proses transformasi dari ER – Diagram ke Logical Record Structure dapat dilihat sebagai berikut :
Pelanggan * Kd_Plg Nm_Plg Almt_Plg Telp
1
M
Buat * Kd_Plg * No_Nota
Nota 1
M
Isi
N
* No_Nota * Kd_Brg Harga_Jual Jml_Jual
* No_Nota Tgl_Nota
Barang M * Kd_Brg Nm_Brg Satuan Har_Sat Stok Kirim
Dapat * No_Nota * No_SJ
M
* Kd_Brg * No_SJ Jml_Kirim
N SJ M * No_SJ Tgl_SJ
Ada
* No_SJ * No_Pol
1 Kendaraan * No_Pol Jns_Kendaraan
Gambar 4. 2 Transformasi ERD ke LRS
c. Logical Record Structure Pelanggan Kd_Plg Nm_Plg Almt_Plg Telp
Nota Kd_Plg
No_Nota Tgl_Nota Kd_Plg
Isi No_Nota
No_Nota Kd_Brg Harga_Jual Jml_Jual
Barang Kd_Brg
Kd_Brg Nm_Brg Satuan Har_Sat Stok Kd_Brg
Kirim No_Nota
Kd_Brg No_SJ Jml_Kirim No_SJ
SJ No_SJ Tgl_SJ No_Nota No_Pol No_Pol
Kendaraan No_Pol Jns_Kendaraan
Gambar 4. 3 Logical Record Structure
d. Normalisasi 1) Tabel Pelanggan
Nm_Plg
Kd_Plg
Almt_Plg
Telp
Gambar 4. 4 Diagram ketergantungan fungsi tabel pelanggan
Tabel Pelanggan sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Pelanggan sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Nm_Plg, Almt_Plg, Telp bergantung dengan Kd_Plg
Tabel Pelanggan sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
2) Tabel Nota
Tgl_Nota No_Nota Kd_Plg
Gambar 4. 5 Diagram ketergantungan fungsi tabel nota
Tabel Nota sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Nota sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Tgl_Nota, Kd_Plg bergantung dengan No_Nota
Tabel Nota sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
3) Tabel Isi
No_Nota Kd_Brg
Harga_Jual
Jml_Jual
Gambar 4. 6 Diagram ketergantungan fungsi tabel isi
Tabel Isi sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Isi sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Harga_Jual, Jml_Jual bergantung dengan No_Nota, Kd_Brg
Tabel Isi sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
4) Tabel Barang
Nm_Brg Satuan Kd_Brg
Har_Sat Stok
Gambar 4. 7 Diagram ketergantungan fungsi tabel barang
Tabel Barang sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Barang sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Nm_Brg, Satuan, Har_Sat, Stok bergantung dengan Kd_Brg
Tabel Barang sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
5) Tabel SJ
Tgl_SJ
No_SJ
No_Nota
No_Pol
Gambar 4. 8 Diagram ketergantungan fungsi tabel SJ
Tabel SJ sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel SJ sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Tgl_SJ, No_Nota, No_Pol bergantung dengan No_SJ
Tabel SJ sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
6) Tabel Kirim
Kd_Brg Jml_Kirim No_SJ
Gambar 4. 9 Diagram ketergantungan fungsi tabel kendaraan
Tabel Kirim sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Kirim sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
Jml_Kirim bergantung dengan Kd_Brg dan No_SJ
Tabel Kirim sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
7) Tabel Kendaraan
No_Pol
Jns_Kendaraan
Gambar 4. 10 Diagram ketergantungan fungsi tabel kendaraan
Tabel Kendaraan sudah merupakan 1 NF karena sudah tidak terdapat repeating group, yaitu tabel yang tidak memiliki atribut bernilai banyak.
Tabel Kendaraan sudah merupakan 2 NF karena sudah tidak terdapat partial dependency, yaitu atribut – atribut yang bukan key (non primary key) bergantung pada primary key.
No_Pol bergantung dengan Jns_Kendaraan
Tabel Kendaraan sudah merupakan 3 NF karena sudah tidak terdapat transitif dependency, yaitu atribut yang bukan key tidak tergantung pada atribut lain selain primary key.
e. Spesifikasi Basis Data Spesifikasi basis data merupakan rinci tiap – tiap relasi tabel / file. Adapun spesifikasi basis data dari sistem penjualan yang diusulkan adalah sebagai berikut : 1) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2 3 4
: : : : : : : :
Nama Field Kd_Plg Nm_Plg Almt_Plg Telp
Pelanggan Harddisk Data Pelanggan Index Sequential Kd_Plg 127 Byte 3100 Record Jenis Text Text Text Text
Lebar 5 30 80 12
Desimal -
Keterangan Kode Pelanggan Nama Pelanggan Alamat Pelanggan Telepon Pelanggan
Tabel 4. 1 Tabel Spesifikasi Basis Data Pelanggan
2) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2 3 4 5
Nama Field Kd_Brg Nm_Brg Satuan Har_sat Stok
: : : : : : : :
Barang Harddisk Data Barang Index Sequential Kd_Brg 57 Byte 3100 Record Jenis Text Text Text Currency Number
Lebar 5 30 10 8 byte 4 byte
Desimal -
Keterangan Kode Barang Nama Barang Satuan Barang Harga Satuan Barang Stok Barang
Tabel 4. 2 Tabel Spesifikasi Basis Data Barang
3) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2
: : : : : : : :
Nama Field No_Pol Jns_kendaraan
Kendaraan Harddisk Data Kendaraan Index Sequential No_Pol 30 Byte 9 Record Jenis Text Text
Lebar 10 20
Desimal -
Keterangan Nomor Polisi Kendaraan Jenis Kendaraan
Tabel 4. 3 Tabel Spesifikasi Basis Data Kendaraan
4) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture
: : : : : : : :
Isi Harddisk Data barang – barang yang dipesan Index Sequential No_Nota + Kd_Brg 25 Byte 450000 Record
No 1 2 3
Nama Field No_Nota Kd_Brg Harga_Jual
Jenis Text Text Currency
Lebar 8 5 8 byte
Desimal -
4
Jml_Jual
Number
4 byte
-
Keterangan Nomor Nota Kode Barang Harga satuan barang yang dijual Jml barang yang dijual
Tabel 4. 4 Tabel Spesifikasi Basis data Isi
5) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2 3
: : : : : : : :
Nama Field No_Nota Tgl_Nota Kd_Plg
Nota Harddisk Data pembayaran dari pelanggan Index Sequential No_Nota 21 Byte 90000 Record Jenis Text Date / Time Text
Lebar 8 8 5
Desimal -
Keterangan Nomor Nota Tanggal Nota Kd_Plg
Tabel 4. 5 Tabel Spesifikasi Basis Data Nota
6) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2 3 4
: : : : : : : :
Nama Field No_SJ Tgl_SJ No_Nota No_Pol
SJ Harddisk Data Pengiriman Barang Index Sequential No_SJ 36 Byte 90000 Record Jenis Text Date / Time Text Text
Lebar 8 8 8 10
Desimal -
Keterangan Nomor Surat Jalan Tanggal Surat Jalan Nomor Nota Nomor Polisi
Tabel 4. 6 Tabel Spesifikasi Basis Data Surat Jalan
7) Nama file Media Isi Organisasi Primary Key Panjang Record Jumlah Record Strukture No 1 2 3
: : : : : : : :
Nama Field Kd_Brg No_SJ Jml_Kirim
Kirim Harddisk Data Barang yang dikirim Index Sequential Kd_Brg + No_SJ 12 Byte 388800 Record Jenis Text Text Single
Lebar 7 5 -
Desimal -
Keterangan Kode barang Nomor Surat Jalan Jumlah barang yang dikirim
Tabel 4. 7 Tabel Spesifikasi Basis Data Surat Jalan
2. Rancangan Kode 1. Nama : Pelanggan Kode Pelanggan Terdiri dari 5 Digit : o 1 digit awal menyatakan pelanggan ditandai dengan huruf P o 4 digit selanjutnya menyatakan banyaknya pelanggan 2. Nama : Barang Kode Barang Terdiri dari 5 Digit : o 1 digit awal menyatakan Barang ditandai dengan huruf B o 4 digit selanjutnya menyatakan banyaknya barang 3. Nama : Nota Nomor Nota Terdiri dari 8 Digit : o 8 digit menyatakan banyaknya Nota 4. Nama : Surat Jalan Nomor Surat Jalan terdiri dari 8 Digit : o 1 digit awal menyatakan Surat Jalan ditandai dengan huruf J o 7digit selanjutnya menyatakan banyaknya Surat Jalan
3. Rancangan Keluaran a. Nota Nama Keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan
: : : : : : : : :
Nota Tanda bukti penagihan Kertas dan Harddisk Pelanggan dan Arsip 2 (dua) Setiap melakukan penagihan 10 / hari Lampiran – C1 Semua data yang kurang pada dokumen berjalan sudah dilengkapi.
: : : : : : : : :
Surat Jalan Tanda bukti pengiriman barang Kertas dan Harddisk Pelanggan dan Arsip 2 (dua) Setiap melakukan pengiriman 12 / hari Lampiran – C2 Semua data yang kurang pada dokumen berjalan sudah dilengkapi.
b. Surat Jalan Nama Keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan c.
Laporan Penjualan Nama Keluaran Fungsi Media Distribusi Rangkap Frekuensi Volume Format Keterangan
: : : : : : : : :
Laporan Penjualan Mengetahui penjualan selama sebulan Kertas dan Harddisk Pimpinan dan Bagian penjualan 2 (dua) Setiap menerima pelunasan 1 / bulan Lampiran – C3 Merupakan sistem usulan dari sistem berjalan yang tidak ada.
d. Laporan Pengiriman Nama Keluaran : Laporan Pengiriman Fungsi : Untuk memberitahukan kepada pemimpin mengenai barang – barang apa saja yang dikirim ke pelanggan Media : Kertas dan Harddisk Distribusi : Pimpinan dan Bagian Penjualan Rangkap : 2 (dua) Frekuensi : Sebulan sekali Volume : 1 / bulan Format : Lampiran – C4 Keterangan : Merupakan sistem usulan dari sistem berjalan yang tidak ada. e. Laporan Kendaraan Nama Keluaran : Laporan kendaraan Fungsi : Untuk memberitahukan kepada pemimpin mengenai kendaraan Yang ada diToko Besi & Kaca Subur Media : Kertas dan Harddisk Distribusi : Pimpinan dan Bagian Penjualan Rangkap : 2 (dua) Frekuensi : Sebulan sekali Volume : 1 / bulan Format : Lampiran C - 5 Keterangan : Merupakan sistem usulan dari sistem berjalan yang tidak ada.
4. Rancangan Masukan a. Data Pelanggan Nama Masukan Sumber Fungsi Media Rangkap Frekuensi Volume Format Keterangan
: : : : : : : : :
Data Pelanggan Pelanggan Mengetahui data pelanggan Kertas 1 (satu) Setiap ada pelanggan baru 3 / bulan Lampiran D - 1 Untuk mempermudah pengidentifikasi data pelanggan
b. Data Barang Nama Masukan : Data Barang Sumber : Bagian gudang Fungsi : Sebagai masukan untuk menginput data barang baru yang dimiliki oleh perusahaan Media : Kertas Rangkap : 1 (satu) Frekuensi : Perbulan Volume : 2 / per minggu Format : Lampiran – D2 Keterangan : Untuk mempermudah proses penambahan maupun perubahan terhadap data barang c.
Data Kendaraan Nama Masukan Sumber Fungsi Media Rangkap Frekuensi Volume Format Keterangan
: : : : : : : : :
Data Kendaraan Pimpinan Mengetahui jumlah kendaraan yang ada diperusahaan Kertas 1 (Satu) Setiap ada melakukan kendaraan baru Lampiran – D3 Untuk mempermudah pengidentifikasi data kendaraan
d. Nota Nama Masukan Sumber Fungsi Media Rangkap Frekuensi Volume Format Keterangan
: : : : : : : : :
Entri Nota Pelanggan Mengetahui jumlah barang yang terjual Kertas 1 (Satu) Setiap melakukan penjualan Lampiran – D4 Untuk mempermudah pengidentifikasi jumlah barang yang terjual
: : : : : : : : :
Entri Surat Jalan Staf Penjualan Mengetahui jumlah barang yang dikirim Kertas 1 (Satu) Setiap melakukan pengiriman Lampiran – D5 Untuk mempermudah pengidentifikasi jumlah barang yang terkirim
e. Surat Jalan Nama Masukan Sumber Fungsi Media Rangkap Frekuensi Volume Format Keterangan
5. Rancangan Dialog Layar a. Struktur Tampilan
Rancangan Sistem Informasi Penjualan Tunai Pada Toko Besi & Kaca Subur Dengan Metodologi Berorientasi Obyek
File Master
Entri Data Pelanggan
Transaksi
Entri Nota
Pengiriman
Surat Jalan
Laporan
Lap.Penjualan
Lap.Pengiriman
Entri Data Barang
Entri Data Kendaraan
Lap.Kendaraan
Gambar 4. 11 Struktur Tampilan
b. Rancangan Layar
Gambar 4. 12 Rancangan Layar Menu Utama
Gambar 4. 13 Rancangan Layar File Master
Gambar 4. 14 Rancangan Layar Entri Data Pelanggan
Gambar 4. 15 Rancangan Layar Entri Data Barang
Gambar 4. 16 Rancangan Layar Entri Data Kendaraan
Gambar 4. 17 Rancangan Layar Transaksi
Gambar 4. 18 Rancangan Layar Entri Nota
Gambar 4. 19 Rancangan Layar Pengiriman
Gambar 4. 20 Rancangan Layar Entri Surat Jalan
Gambar 4. 21 Rancangan Layar Laporan
Gambar 4. 22 Rancangan Layar Laporan Penjualan
Gambar 4. 23 Rancangan Layar Laporan Pengiriman
Gambar 4. 24 Rancangan Layar Laporan Kendaraan
6. Sequence Diagram
: Control Pelanggan
: Form Pelanggan
: Bagian Penjualan
: Pelanggan
Open Form () Input Pelanggan () get Pelanggan ()
SAVE ()
SAVE ()
SAVE ()
Gambar 4. 25 Sequence Diagram Entri Data Pelanggan
: Barang
: Control Barang
: Form Barang
: Bagian Penjualan
Open Form () Input Barang () get Barang ()
SAVE ()
SAVE ()
SAVE ()
Gambar 4. 26 Sequence Diagram Entri Data Barang
: Control Kendaraan
: Form Kendaraan
: Bagian Penjualan
: Kendaraan
Open Form () Input Kendaraan () get Kendaraan ()
SAVE ()
SAVE ()
SAVE ()
Gambar 4. 27 Sequence Diagram Entri Data Kendaraan
: Bagian Penjualan
: Form Cetak Nota
: Pelanggan
: Nota
: Control Nota
: Barang
Open () Input No_Nota get (No_Nota)
display
display sysdate ()
get (Kd_Plg) Display (Nm_Plg)
display (kd_Plg) get (Kd_Brg) Display (Nm_Brg, Satuan, Har_Sat) get (Isi) Display (Harga_Jual, Jml_Jual)
hitung jumlah ()
hitung total ()
hitung sisa ()
simpan Nota () simpan Isi () cetak Nota () cetak Nota ()
Gambar 4. 28 Sequence Diagram Entri Nota
: Isi
: Bagian Penjualan
: Form Cetak SJ
: Control SJ
: Nota
: Pelanggan
: Kendaraan
: Barang
Open () input(No_SJ) get (No_SJ)
display
display sysdate ()
input (No_Nota)
input (No_Nota) get (No_Nota)
get (Kg_Plg) input(No_Pol) input(No_Pol) get (No_Pol) Loop
input (Kd_Brg) input (Kd_Brg) get (Kd_Brg)
get (Isi) display (Kd_Brg, Nm_Brg)
display (Jml_Jual)
get(Jml_kirim)
simpan SJ () simpan SJ ()
simpan Kirim () cetak (SJ)
cetak (SJ)
Gambar 4. 29 Sequence Diagram Entri Surat Jalan
: Isi
: SJ
: Kirim
: Bagian Penjualan
: Form Lap.Penjualan
: Control Lap.Penjualan
: Pelanggan
: Nota
Open () Input(Periode Awal - Akhir) get (No_Nota, Kd_Plg)
get (Kd_PLg)
get (No_Nota, Kd_Brg)
get (Kd_Brg) display tanggal cetak () Cetak Lap.Penjualan Cetak Lap.Penjualan
Gambar 4. 30 Sequence Diagram Laporan Penjualan
: Barang
: Isi
: Bagian Penjualan
: Form Lap.Pengiriman : Control Lap.Pengiriman
: SJ
: Nota
: Pelanggan
Open () Input(Periode Awal - Akhir) get (No_SJ, No_Nota)
get (No_Nota, Kd_Plg)
get(Kd_Plg)
get (No_Nota, Kd_Plg, Jml_Jual)
get (Kd_Brg)
get (No_Pol)
display tanggal cetak ()
cetak Lap.Pengiriman cetak Lap.Pengiriman
Gambar 4. 31 Sequence Diagram Laporan Pengiriman
: Isi
: Barang : Kendaraan
: Bagian Penjualan
: Form Lap.Kendaraan
: Control Lap.Kendaran : Surat_Jalan : Kendaraan
Open () Input(Periode Awal - Akhir)
get (No_SJ, Jns_Kendaraan)
get (Jns_Kendaraan, Pelanggan)
get (Almt_Plg)
get Nota ()
display tanggal cetak () Cetak Lap.Kendaraan Cetak Lap.Kendaraan
Gambar 4. 32 Sequence Diagram Laporan Kendaraan
: Pelanggan
: Nota
7. Rancangan Class Diagram (Entity, Boundary, & Control Class) a. Entity Class Diagram
Isi -Harga_jual -Jml_Jual +get Isi () Barang
Pelanggan -Kd_Plg (PK) -Nm_Plg -Almt_Plg -Telp +get Pelanggan () +Save()
-Kd_Brg (PK) -Nm_Brg 1..* -Satuan -Har_Sat -Stok +get Barang() +Save()
Nota 1 Buat
1..* -No_Nota (PK) 1..* -Tgl_Nota +get Nota () +simpan Nota () 1
1..*
Kirim
pa Da
-Kd_Brg -No_SJ -Jml_Kirim +get Kirim()
t
1..* SJ -No_SJ (PK) -Tgl_SJ +get SJ() 1..* +simpan SJ() 1..* Ada
1 Kendaraan -No_Pol (PK) -Jns_Kendaraan +get Kendaraan() +simpan Kendaraan()
Gambar 4. 33 Entity Class Diagram
b. Boundary Class
Form Entry Barang Input Barang () Save ()
Form Entry Kendaraan Input Kendaraan () Save ()
Form Entry Pelanggan Input Pelanggan () Save ()
Menu Utama
Form Entry Surat Jalan Input Surat Jalan () Display Surat Jalan () Display Nota () Display Kirim () Display Pelanggan () Display Isi () Simpan Surat Jalan () Cetak Surat Jalan ()
Form Entry Nota Input Nota () Display Nota() Display Pelanggan () Display Isi () Display Barang () Simpan Nota () Cetak Nota ()
Form Laporan Kendaraan Form Laporan Penjualan
Form Laporan Pengiriman
Input Periode () Display Nota() Display Pelanggan () Display Barang () Display Isi () Cetak Laporan Penjualan ()
Input Periode () Display Surat Jalan () Display Pelanggan () Display Barang () Display Isi () Cetak Laporan Pengiriman ()
Gambar 4. 34 Boundary Class
Input Periode () Display Surat Jalan () Display kendaraan () Cetak Laporan Kendaraan()
c. Control Class
Control Pelanggan Input Pelanggan () Save ()
Control Nota
Control Barang Input Barang () Save ()
Control Surat Jalan
Input Nota () Hitung Jumlah () Hitung Total () Cetak Nota ()
Input Surat Jalan () Hitung Jumlah () Hitung Total () Cetak Surat Jalan ()
Control Lap.Pengiriman
Control Lap.Kendaraan
Input Periode () Hitung Jumlah () Hitung Total () Cetak Lap.Pengiriman ()
Input Periode () Hitung Jumlah () Hitung Total () Cetak Lap.Kendaraan ()
Gambar 4. 35 Control Class
Control Kendaraan Input Kendaraan () Save ()
Control Lap.Penjualan Input Periode () Hitung Jumlah () Hitung Total () Cetak Lap.Penjualan ()
Bab V PENUTUP 1. Kesimpulan Setelah menghadapi persoalan yang dihadapi dan juga solusi pemecahan yang ditawarkan, maka dapat ditarik beberapa kesimpulan yang dapat dirinci seperti dibawah ini : a. Sistem Penjualan Tunai Pada Toko Besi & Kaca Subur yang terkomputerisasi akan lebih memudahkan pekerjaan dan dapat meningkatkan kelancaran proses pelayanan penjualan dan bentuknya dapat dirancang sesuai dengan keinginan. b. Dengan proses komputerisasi dapat mempercepat pengolahan data dan pembuatan laporan, serta informasi yang dihasilkan lebih akurat, cepat, lengkap, sehingga terjadinya kesalahan dapat diperkecil. c. Penggunaan teknologi komputerisasi membantu dalam menghasilkan keputusan – keputusan yang akurat dan cepat. Sehingga pelayanan terhadap seluruh pelanggan dapat meningkat dan semakin membaik. d. Dengan menggunakan komputer sebagai alat bantu lebih meningkatkan ketelitian dan pengendalian yang tinggi dan dapat terpercaya. e. Penggunaan teknologi komputerisasi menciptakan SDM yang bermutu dan berkualitas serta lebih profesional dibidangnya. 2. Saran Berdasarkan pengalaman yang didapat selama menjalankan riset pada Toko Besi & Kaca Subur, penulis mempunyai saran yang mungkin dapat bermanfaat bagi perkembangan dan kemajuan perusahaan adalah sebagai berikut : a. Menyediakan fasilitas hardware dan software yang dibutuhkan untuk menerapkan Rancangan Sistem Informasi Penjualan Tunai ini. b. Hendaknya penggunaan teknologi komputerisasi lebih diterapkan dan ditingkatkan, dimana bermanfaat dalam pengolahan data. Khususnya dalam Siatem Penjualan Tunai sehingga dapat berjalan lebih efektif dan efisien. c. Dengan penyediaan SDM professional, pelatihan bagi karyawan akan menunjang kemajuan perusahaan. d. Dengan teknologi komputerisasi, informasi yang dihasilkan lebih akurat, cepat, lengkap dan terpercaya. e. Bukti – bukti pendukung hendaknya didokumentasikan dengan baik, sehingga tidak mengalami kesulitan jika dibutuhkan. f. Untuk menghindari hal yang tidak diinginkan sebaiknya dilakukan back – up data. g. Untuk menjaga agar data di data base selalu up to date maka sebaiknya data diindex. h. Memberikan pelatihan atau training kepada karyawan yang akan terlibat langsung dalam penggunaan computer untuk menangani sistem tersebut, untuk memperkenalkan dan membantu mereka terhadap sistem yang baru. i. Data yang sudah tidak sering dipakai lagi dipindahkan dalam database history. j. Back – up data dengan sistem terjadwal agar data tidak hilang bisa per hari, per minggu, dan per bulan.
DAFTAR PUSTAKA Jogiyanto HM, MBA, Akt, Ph.D. Analisis & Disain Sistem Informasi. Yogyakarta : Andi, 1999. Jogiyanto HM, MBA, Akt, Ph.D. Sistem Teknologi Informasi. Yogyakarta : Andi, 2003. Kusumo, Suryo, Aryo, Drs. Pemrograman Database dengan Visual Basic 6.0. Jakarta : PT. Elex Media Komputindo, 2002. Munawar. Pemodelan Visual dengan UML. Yogyakarta : Graha Ilmu, 2005. Sutopo, Ariesto Hadi. Analisis dan Desain Berorientasi Objek. Yogyakarta : J & J Learning, 2002.
Lampiran A – 1 Surat Jalan
Lampiran A – 2 Nota
No. nota
Nama Barang
Harga Satuan
Lampiran A – 3 Laporan Penjualan
Beli
Jumlah
Lampiran B – 1 Pemesanan
No
Jumlah Jual 999
Harga Satuan 999999
Satuan
Jumlah
99
Nama Barang X – 30 - X
X – 10 - X
99,999,999
99
X – 30 - X
999
999999
X – 10 - X
99,999,999
PERHATIAN !
Total
99,999,999
Barang – barang yang sudah dibeli tidak dapat dikembalikan/ditukar Tanda Terima
Hormat Kami,
Lampiran C – 1 Rancangan Keluaran Nota
No.
Nama Barang
Satuan
Jumlah Jual
99
X – 30 - X
X – 10 - X
999
99
X – 30 - X
X – 10 - X
999
Tanda Terima,
Hormat Kami,
Lampiran C – 2 Rancangan Keluaran Surat Jalan
Periode : dd/mm/yyyy s/d dd/mm/yyyy Jakarta, dd/mm/yyyy
No mor
Nomor Nota
99
X– 8 – X
99
X– 8 – X
Tanggal Nota
Nama Pelanggan
Alama t
Nama Barang
Jumlah Jual
Harga Satuan
Jumlah
dd/mm/yyyy
X– 30 – X
X– 80 – X
X– 30 – X
999
999999
99,999,999
dd/mm/yyyy
X– 30 – X
X– 80 – X
X– 30– X
999
999999
99,999,999
Lampiran C – 3 Rancangan Keluaran Laporan Penjualan
Periode : dd/mm/yyyy s/d dd/mm/yyyy Jakarta, dd/mm/yyyy
Nomor Nomor Tanggal SJ SJ
Nomor Nota
Nama Pelanggan
Nomor Polisi
Kode Barang
Nama Barang
Jumlah Jual
99
X–8–X
dd/mm/yyyy
X– 8 – X
X– 30 – X
X– 10 – X
X– 20 – X
X– 30 – X
999
99
X–8–X
dd/mm/yyyy
X– 8 – X
X– 30– X
X– 10 – X
X– 20 – X
X– 30 – X
999
Lampiran C – 4 Rancangan Keluaran Laporan Pengiriman
LAPORAN KENDARAAN Periode : dd/mm/yyyy s/d dd/mm/yyyy Jakarta, dd/mm/yyyy
Nomor
Nomor Polisi
Jenis Kendaraan
Tanggal SJ
Alamat Pelanggan
99
X– 10 – X
X– 20 – X
dd/mm/yyyy
X– 80 – X
99
X– 10 – X
X– 20 – X
dd/mm/yyyy
X– 80 – X
Lampiran C – 5 Rancangan Keluaran Laporan Kendaraan
Data Pelanggan
No 99
Kode Pelanggan X–5–X
Nama Pelanggan X – 30 – X
Alamat Pelanggan X – 80 – X
Telepon X – 12 – X
99
X–5-X
X – 30 - X
X – 80– X
X – 12 – X
Lampiran D – 1 Rancangan Masukan Data Pelanggan
Data Barang
No 99
Kode Barang X–5–X
Nama Barang X – 30 – X
Satuan X – 10 – X
Harga Satuan 999999
Stok 999
99
X–5-X
X – 30 - X
X – 10 - X
999999
999
Lampiran D – 2 Rancangan Masukan Data Barang
Data Kendaraan
No. 99
No.Polisi X – 10 – X
Jenis Kendaraan X – 20 – X
99
X – 10 - X
X – 20 - X
Lampiran D – 3 Rancangan Masukan Data Kendaraan
No
Jumlah Jual 999
Harga Satuan 999999
Satuan
Jumlah
99
Nama Barang X – 30 - X
X – 10 - X
99,999,999
99
X – 30 - X
999
999999
X – 10 - X
99,999,999
PERHATIAN !
Total
99,999,999
Barang – barang yang sudah dibeli tidak dapat dikembalikan/ditukar Tanda Terima
Hormat Kami,
Lampiran D – 4 Rancangan MasukanNota
No.
Nama Barang
Satuan
Jumlah Jual
99
X – 30 - X
X – 10 - X
999
99
X – 30 - X
X – 10 - X
999
Tanda Terima,
Hormat Kami,
Lampiran D - 5 Rancangan Masukan Surat Jalan
LISTING PROGRAM MODUL Public conn As ADODB.Connection Public Sub main() Set conn = New ADODB.Connection conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Penjualan_Tunai.mdb;Persist Security Info=False" conn.Open If conn.State = 1 Then MenuUtama.Show End If End Sub Public Sub input_angka(KeyAscii As Integer) If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Public Sub input_huruf(KeyAscii As Integer) If Not (KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Or KeyAscii >= Asc("A") And KeyAscii <= Asc("Z") Or KeyAscii = vbKeyBack Or KeyAscii = vbKeySpace) Then Beep KeyAscii = 0 End If End Sub MENU UTAMA Private Sub centerchild(frm As Form) frm.Top = (MenuUtama.Height - frm.Height) / 2 frm.Left = (MenuUtama.Width - frm.Width) / 2 frm.Show End Sub Private Sub MDIForm_Unload(Cancel As Integer) If MsgBox("Apakah Anda Yakin Mau Keluar?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then Cancel = 0 Else
Cancel = 1 End If End Sub Private Sub Mn_LapKendaraan_Click() Call centerchild(frmlap_Kendaraan) End Sub Private Sub Mn_LapPengiriman_Click() Call centerchild(frmlap_Pengiriman) End Sub Private Sub Mn_LapPenjualan_Click() Call centerchild(frmlap_Penjualan) End Sub Private Sub Mn_Pelanggan_Click() Call centerchild(frmPelanggan) End Sub Private Sub Mn_Barang_Click() Call centerchild(frmBarang) End Sub Private Sub Mn_Kendaraan_Click() Call centerchild(frmKendaraan) End Sub Private Sub Mn_Nota_Click() Call centerchild(frmNota) End Sub Private Sub Mn_SuratJalan_Click() Call centerchild(frmSuratJalan) End Sub Private Sub mnKeluar_Click() If MsgBox("Apakah Anda Yakin Mau Keluar?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then End Else Cancel = 1 End If End Sub FORM PELANGGAN Dim Pelanggan As New ctrlPelanggan Dim rsPelanggan As ADODB.Recordset
Private Sub isiForm() On Error Resume Next txtNmPlg.Text = Pelanggan.getNama txtAlamat.Text = Pelanggan.getAlamat txtTelepon.Text = Pelanggan.getTelepon '
Text1.Text = Pelanggan.getTambahan txtNmPlg.SetFocus
cmdUbah.Enabled = True cmdHapus.Enabled = True End Sub Private Sub cmdBatal_Click() Pelanggan.Bersih txtKdPlg.Text = "" txtNmPlg.Text = "" txtAlamat.Text = "" txtTelepon.Text = "" '
Text1.Text = "" cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False
txtKdPlg.Text = Pelanggan.getKodeAuto End Sub Private Sub cmdSimpan_Click() ' If txtKdPlg.Text = "" Or txtNmPlg.Text = "" Or txtAlamat.Text = "" Or txtTelepon.Text = "" Or Text1.Text = "" Then If txtKdPlg.Text = "" Or txtNmPlg.Text = "" Or txtAlamat.Text = "" Or txtTelepon.Text = "" Then '==== No Aktiv ==== MsgBox "Data Pelanggan Belum Lengkap, Silahkan Lengkapi Data", vbCritical Exit Sub Else Call isiPelanggan Pelanggan.Simpan cmdBatal_Click txtNmPlg.SetFocus End If End Sub Private Sub isiPelanggan()
Pelanggan.setKode (txtKdPlg.Text) Pelanggan.setNama (txtNmPlg.Text) Pelanggan.setAlamat (txtAlamat.Text) Pelanggan.setTelepon (txtTelepon.Text) '
Pelanggan.setTambahan (Text1.Text)
End Sub '======================================================== ====================================== '======================================================== ====================================== Private Sub Form_Activate() txtNmPlg.SetFocus End Sub Private Sub Form_Load() cmdBatal_Click cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False txtKdPlg.Enabled = False End Sub Private Sub cmdCari_Click() Dim rsPelanggan As ADODB.Recordset Set rsPelanggan = New ADODB.Recordset rsPelanggan.Open Pelanggan.showdata, conn, 1, 3 Dim frm As frmBrowse Set frm = New frmBrowse frm.TextKode = txtKdPlg frm.fcolwidth = Array(1000, 4000, 20000, 2400) frm.setResultset rsPelanggan frm.Show vbModal End Sub Private Sub txtKdPlg_Change() Pelanggan.cariPelanggan txtKdPlg.Text If txtKdPlg.Text = Pelanggan.getKode() And Pelanggan.getKode() <> "" Then Call isiForm End If End Sub Private Sub cmdHapus_Click() Pelanggan.Hapus cmdBatal_Click txtNmPlg.SetFocus End Sub Private Sub cmdUbah_Click() Call isiPelanggan Pelanggan.Ubah cmdBatal_Click
txtNmPlg.SetFocus End Sub Private Sub txtKdPlg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(Trim(txtKdPlg.Text)) <> 5 Then MsgBox "Kode Pelanggan Harus 5 Digit" txtKdPlg = "" Exit Sub End If txtNmPlg.SetFocus End If End Sub Private Sub txtNmPlg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtAlamat.SetFocus End If Call input_huruf(KeyAscii) End Sub Private Sub txtTelepon_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If Call input_angka(KeyAscii) End Sub Private Sub CmdKeluar_Click() Unload Me End Sub
FORM BARANG Dim Barang As New ctrlBarang Dim rsBarang As ADODB.Recordset Private Sub isiForm() txtKdBrg.Text = Barang.getKode txtNmBrg.Text = Barang.getNama txtSatuan.Text = Barang.getSatuan txtHarsat.Text = Barang.getHarga txtStok.Text = Barang.getStok '
Text1.Text = Barang.getTambahan cmdUbah.Enabled = True cmdHapus.Enabled = True
End Sub Private Sub cmdBatal_Click() Barang.Bersih txtKdBrg.Text = "" txtNmBrg.Text = "" txtSatuan.Text = "" txtHarsat.Text = "" txtStok.Text = "" '
Text1.Text = "" cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False
txtKdBrg.Text = Barang.getKodeAuto End Sub Private Sub cmdSimpan_Click() ' If txtKdBrg.Text = "" Or txtNmBrg.Text = "" Or txtSatuan.Text = "" Or txtHarsat.Text = "" Or txtStok.Text = "" Or Text1.Text = "" Then If txtKdBrg.Text = "" Or txtNmBrg.Text = "" Or txtSatuan.Text = "" Or txtHarsat.Text = "" Or txtStok.Text = "" Then '==== No Aktiv ==== MsgBox "Data Barang Belum Lengkap, Silahkan Lengkapi Data !", vbCritical Exit Sub Else Call isiBarang Barang.Simpan cmdBatal_Click txtNmBrg.SetFocus End If End Sub Private Sub isiBarang() Barang.setKode (txtKdBrg.Text) Barang.setNama (txtNmBrg.Text) Barang.setSatuan (txtSatuan.Text) Barang.setHarga (txtHarsat.Text) Barang.setStok (txtStok.Text) '
Barang.setTambahan (Text1.Text)
End Sub '======================================================== ======================================
'======================================================== ====================================== Private Sub Form_Activate() txtNmBrg.SetFocus End Sub Private Sub Form_Load() cmdBatal_Click cmdHapus.Enabled = False cmdUbah.Enabled = False cmdSimpan.Enabled = False txtKdBrg.Enabled = False End Sub Private Sub cmdCari_Click() Dim rsBarang As ADODB.Recordset Set rsBarang = New ADODB.Recordset rsBarang.Open Barang.showdata, conn, 1, 3 Dim frm As frmBrowse Set frm = New frmBrowse frm.TextKode = txtKdBrg frm.fcolwidth = Array(1000, 5000, 1500, 2000, 1000) frm.setResultset rsBarang frm.Show vbModal End Sub Private Sub txtKdBrg_Change() Barang.cariBarang txtKdBrg.Text If txtKdBrg.Text = Barang.getKode() And Barang.getKode() <> "" Then Call isiForm End If End Sub Private Sub cmdHapus_Click() Barang.Hapus cmdBatal_Click txtNmBrg.SetFocus End Sub Private Sub cmdUbah_Click() Call isiBarang Barang.Ubah cmdBatal_Click txtNmBrg.SetFocus End Sub Private Sub txtKdBrg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(Trim(txtKdBrg.Text)) <> 5 Then MsgBox "Kode Barang Harus 5 Digit" txtKdBrg = "" Exit Sub End If txtNmBrg.SetFocus
End If End Sub Private Sub txtNmBrg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtSatuan.SetFocus End If Call input_huruf(KeyAscii) End Sub Private Sub txtSatuan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtHarsat.SetFocus End If End Sub Private Sub txtHarsat_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtStok.SetFocus End If Call input_angka(KeyAscii) End Sub Private Sub txtStok_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If Call input_angka(KeyAscii) End Sub Private Sub Command1_Click() Unload Me End Sub
FORM KENDARAAN Dim Kendaraan As New ctrlKendaraan Dim rsKendaraan As ADODB.Recordset Private Sub isiForm() On Error Resume Next txtjenis.Text = Kendaraan.getJenis '
Text1.Text = Kendaraan.getTambahan txtMerek.SetFocus cmdUbah.Enabled = True cmdHapus.Enabled = True
End Sub Private Sub cmdBatal_Click() Kendaraan.Bersih txtNo_Pol.Text = "" txtjenis.Text = "" '
Text1.Text = ""
cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False End Sub Private Sub cmdSimpan_Click() ' If txtNo_Pol.Text = "" Or txtjenis.Text = "" Or Text1.Text = "" Then If txtNo_Pol.Text = "" Or txtjenis.Text = "" Then '==== No Aktiv ==== MsgBox "Data Kendaraan Belum Lengkap, Silahkan Lengkapi Data", vbCritical Exit Sub Else Call isiKendaraan Kendaraan.Simpan cmdBatal_Click txtNo_Pol.SetFocus End If End Sub Private Sub isiKendaraan() Kendaraan.setKode (txtNo_Pol.Text) Kendaraan.setJenis (txtjenis.Text) '
Kendaraan.setTambahan (Text1.Text)
End Sub '======================================================== ====================================== '======================================================== ====================================== Private Sub Form_Load() cmdBatal_Click cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = False End Sub Private Sub Form_Activate() txtNo_Pol.SetFocus
End Sub Private Sub cmdCari_Click() Dim rsKendaraan As ADODB.Recordset Set rsKendaraan = New ADODB.Recordset rsKendaraan.Open Kendaraan.showdata, conn, 1, 3 Dim frm As frmBrowse Set frm = New frmBrowse frm.TextKode = txtNo_Pol frm.fcolwidth = Array(3000, 5000, 1500, 2000) frm.setResultset rsKendaraan frm.Show vbModal End Sub Private Sub txtNo_Pol_Change() Kendaraan.cariKendaraan txtNo_Pol.Text If txtNo_Pol.Text = Kendaraan.getKode() And Kendaraan.getKode() <> "" Then Call isiForm End If End Sub Private Sub cmdHapus_Click() Kendaraan.Hapus cmdBatal_Click txtNo_Pol.SetFocus End Sub Private Sub cmdUbah_Click() Call isiKendaraan Kendaraan.Ubah cmdBatal_Click txtNo_Pol.SetFocus End Sub Private Sub txtNo_Pol_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtjenis.SetFocus End If End Sub Private Sub txtjenis_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If End Sub Private Sub CmdKeluar_Click() Unload Me End Sub FORM NOTA Dim Nota As New ctrlNota
Dim rsNota As New ADODB.Recordset Dim Pelanggan As New ctrlPelanggan Dim Barang As New ctrlBarang '******************* U/ P E L A N G A N ************************* Private Sub BersihPLG() txtKdPlg.Text = "" txtNmPlg.Text = "" txtAlamat.Text = "" txtTelepon.Text = "" '
Text1.Text = ""
txtKdPlg.Enabled = True End Sub Private Sub isiFormPelanggan() On Error Resume Next txtNmPlg.Text = Pelanggan.getNama txtAlamat.Text = Pelanggan.getAlamat txtTelepon.Text = Pelanggan.getTelepon ' Text1.Text = Pelanggan.getTambahan txtKdBrg.Enabled = True cmdBRG.Enabled = True cmdBRG.SetFocus txtKdPlg.Enabled = False End Sub '******************* U/ B A R A N G ************************* Private Sub Bersih_Detail() txtKdBrg.Text = "" txtNmBrg.Text = "" txtHarsat.Text = "" txtSatuan.Text = "" txtStok.Text = "" '
Text2.Text = ""
txtharga_jual.Text = "" txtjml_jual.Text = "" txtjumlah.Text = "" End Sub Private Sub isiBarang() On Error Resume Next txtKdBrg.Text = Barang.getKode txtNmBrg.Text = Barang.getNama txtHarsat.Text = Barang.getHarga txtharga_jual.Text = Barang.getHarga txtSatuan.Text = Barang.getSatuan txtStok.Text = Barang.getStok
' Text2.Text = Barang.getTambahan txtjml_jual.Enabled = True txtjml_jual.SetFocus cmdTambah.Enabled = True End Sub '======================================================== ====================================== '======================================================== ====================================== Private Sub Form_Load() Form_Hidup txttgl_Nota.Text = Format(Date, "dd/mm/yyyy") cmdBatal_Click lsvDetail.ColumnHeaders.Add lsvDetail.ColumnHeaders.Add lsvDetail.ColumnHeaders.Add lsvDetail.ColumnHeaders.Add lsvDetail.ColumnHeaders.Add lsvDetail.ColumnHeaders.Add End Sub Private Sub Form_Hidup() txttgl_Nota.Enabled = False txtno_Nota.Enabled = False txtNmPlg.Enabled = False txtTelepon.Enabled = False txtAlamat.Enabled = False txtKdBrg.Enabled = False txtNmBrg.Enabled = False txtHarsat.Enabled = False txtSatuan.Enabled = False txtStok.Enabled = False txtharga_jual.Enabled = False txtjml_jual.Enabled = False txtjumlah.Enabled = False txttotal.Enabled = False cmdBRG.Enabled = False cmdSimpan.Enabled = False cmdTambah.Enabled = False
, , , , , ,
, , , , , ,
"Kode Barang", 1450 "Nama Barang", 3000 "Harga Satuan", 1700 "Stok", 900 "Jumlah Jual", 1700 "Jumlah", 2200
End Sub Private Sub cmdBatal_Click() Nota.Bersih BersihPLG Bersih_Detail Form_Hidup txttotal.Text = "" txtKdPlg.Enabled = True CmdKeluar.Enabled = True lsvDetail.ListItems.Clear txtno_Nota.Text = Nota.getKodeAuto End Sub Private Sub cmdPLG_Click() Dim rsPelanggan As ADODB.Recordset Set rsPelanggan = New ADODB.Recordset rsPelanggan.Open Pelanggan.showdata, conn, 1, 3 Dim frm As frmBrowse Set frm = New frmBrowse frm.TextKode = txtKdPlg frm.fcolwidth = Array(1000, 4000, 20000, 2400) frm.setResultset rsPelanggan frm.Show vbModal '===========Dibawah ini berfungsi u/Menghidupkan Alamat============= ' If MsgBox("Apakah Anda Ingin Mengubah Alamat Yang Dituju?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then ' txtAlamat.Enabled = True ' txtAlamat.SetFocus ' Else ' End If End Sub Private Sub txtKdPlg_Change() Pelanggan.cariPelanggan txtKdPlg.Text If Len(Trim(txtKdPlg.Text)) < 5 Then Exit Sub If txtKdPlg.Text = Pelanggan.getKode() And Pelanggan.getKode <> "" Then Call isiFormPelanggan Else MsgBox "Kode Pelangan Tidak Ada !!" & vbCrLf & _ "Cek kembali Kode / jumlah karakter Pelangan ?" & vbCrLf & "", vbExclamation, "Konfirmasi" txtKdPlg.Text = "" End If
End Sub Private Sub cmdBRG_Click() Dim rsBarang As ADODB.Recordset Set rsBarang = New ADODB.Recordset rsBarang.Open Barang.showdata, conn, 1, 3 Dim frm As frmBrowse Set frm = New frmBrowse frm.TextKode = txtKdBrg frm.fcolwidth = Array(1000, 5000, 1500, 2000, 1000) frm.setResultset rsBarang frm.Show vbModal End Sub Private Sub txtKdBrg_Change() If Len(Trim(txtKdBrg.Text)) < 5 Then Exit Sub Barang.cariBarang txtKdBrg.Text If txtKdBrg.Text = Barang.getKode() And Barang.getKode <> "" Then Call isiBarang Else MsgBox "Kode Barang Tidak Ada !!" & vbCrLf & _ "Cek kembali Kode / jumlah karakter Barang ?" & vbCrLf & "", vbExclamation, "Konfirmasi" txtKdBrg.Text = "" End If End Sub Private Sub txtjml_jual_Change() Call stok Call hitung Call Cek_Stock End Sub Private Sub stok() If txtjml_jual.Text = "" Or txtKdBrg.Text = "" Then Barang.data End If End Sub Private Sub Cek_Stock() If Val(txtStok.Text) < Val(txtjml_jual) Then Barang.ada txtjml_jual = "" isiBarang Else End If End Sub Private Sub hitung()
txtjumlah.Text = Val(txtharga_jual.Text) * Val(txtjml_jual.Text) End Sub Private Sub txtjml_jual_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If txtjml_jual.Text = "" Then Else txtStok.Text = Val(txtStok.Text) - Val(txtjml_jual.Text) cmdTambah.SetFocus End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Private Function CekInputDetail() As Boolean If Len(txtKdBrg.Text) = 0 Then MsgBox "Kode Barang harus diisi", vbExclamation, "Konfirmasi" txtKdBrg.SetFocus CekInputDetail = False Exit Function End If CekInputDetail = True End Function Private Sub cmdTambah_Click() Dim MyList As ListItem Dim I As Integer Dim Ketemu As Boolean If CekInputDetail Then For I = 1 To lsvDetail.ListItems.Count If lsvDetail.ListItems(I).Text = txtKdBrg.Text Then MsgBox "Data sudah Ada", vbExclamation, "Maaf.." Call Bersih_Detail txtKdBrg.SetFocus Ketemu = True Exit For End If Next For I = 1 To lsvDetail.ListItems.Count If lsvDetail.ListItems(I).Text = txtKdBrg.Text Then lsvDetail.ListItems(I).Text = txtKdBrg lsvDetail.ListItems(I).SubItems(1) = txtNmBrg.Text lsvDetail.ListItems(I).SubItems(2) = txtHarsat.Text lsvDetail.ListItems(I).SubItems(3) = txtStok.Text lsvDetail.ListItems(I).SubItems(4) = txtjml_jual.Text
lsvDetail.ListItems(I).SubItems(5) = txtjumlah.Text Ketemu = True End If Next If Ketemu Then Set MyList = lsvDetail.FindItem(txtKdBrg.Text) Else Set MyList = lsvDetail.ListItems.Add(, , txtKdBrg.Text) MyList.SubItems(1) = txtNmBrg.Text MyList.SubItems(2) = txtHarsat.Text MyList.SubItems(3) = txtStok.Text MyList.SubItems(4) = txtjml_jual.Text MyList.SubItems(5) = txtjumlah.Text Bersih_Detail txtKdBrg.SetFocus Total End If End If txtjml_jual.Enabled = False cmdSimpan.Enabled = True cmdBRG.SetFocus End Sub Private Sub lsvDetail_DblClick() Call Hapus End Sub Sub Hapus() On Error GoTo errpesan Dim Kode As String Dim Index As Long Dim Jawab As String Dim Potong As Currency Dim harga As Currency If lsvDetail.ListItems.Count = 0 Then MsgBox "Data Dalam List Masih Kosong", vbExclamation Index = lsvDetail.SelectedItem.Index Kode = lsvDetail.ListItems.Item(Index) Jawab = MsgBox("Anda ingin menghapus Data: " & Kode & " ? ", vbYesNo + vbQuestion, "Konfirmasi") If Jawab = vbNo Then Exit Sub Else lsvDetail.ListItems.Remove Index harga = Empty potongan = Empty For I = 1 To lsvDetail.ListItems.Count Potong = Potong + lsvDetail.ListItems(I).SubItems(4)
harga = harga + lsvDetail.ListItems(I).SubItems(5) Next I txttotal.Text = harga txttotdisc.Text = Potong Call Bersih_Detail txtKdBrg.SetFocus Exit Sub End If errpesan: End Sub Private Sub lsvDetail_KeyDown(KeyCode As Integer, Shift As Integer) On Error Resume Next If KeyCode = vbKeyDelete Then lsvDetail.ListItems.Remove lsvDetail.SelectedItem.Index Total End If End Sub Private Sub Total() Dim I As Integer Dim hasil As Double For I = 1 To lsvDetail.ListItems.Count hasil = hasil + Val(lsvDetail.ListItems(I).SubItems(5)) Next txttotal.Text = hasil End Sub Private Sub cmdSimpan_Click() Dim I As Integer If txtno_Nota.Text = "" Or txttgl_Nota.Text = "" Or txtKdPlg.Text = "" Then MsgBox "Data Nota Belum Lengkap, Silahkan Lengkapi Data !", vbCritical Exit Sub Else Call isiNota Nota.Simpan End If For I = 1 To lsvDetail.ListItems.Count Call Nota.Simpan_Isi(txtno_Nota.Text, lsvDetail.ListItems(I).SubItems(3), lsvDetail.ListItems(I).SubItems(4), lsvDetail.ListItems(I).Text) Call Nota.update_brg(lsvDetail.ListItems(I).SubItems(3), lsvDetail.ListItems(I).Text) Call Nota.update_Pelanggan(txtAlamat.Text, txtKdPlg.Text) Next With CrystalReport1 .DataFiles(0) = App.Path & "\Penjualan_Tunai.mdb"
.ReportFileName = App.Path & "\Report\CetakNota.rpt" .ReplaceSelectionFormula ("") .ReplaceSelectionFormula ("{Nota.No_Nota}='" & txtno_Nota.Text & "'") .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With cmdBatal_Click End Sub Private Sub isiNota() Nota.setKode (txtno_Nota.Text) Nota.settglNota (txttgl_Nota.Text) Nota.setkdPlg (txtKdPlg.Text) End Sub Private Sub CmdKeluar_Click() Unload Me End Sub FORM SURAT JALAN Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim
Pelanggan As New ctrlPelanggan Surat_Jalan As New ctrlSuratJalan rsSurat_Jalan As New ADODB.Recordset Nota As New ctrlNota Isi As New ctrlNota Kirim As New ctrlSuratJalan Kendaraan As New ctrlKendaraan rsKendaraan As New ADODB.Recordset Barang As New ctrlBarang lv As ListItem I As Integer
'******************* U/ K E N D A R A A N ************************* Private Sub isiFormKendaraan() On Error Resume Next txtjenis.Text = Kendaraan.getJenis '
Text2.Text = Kendaraan.getTambahan Command.Enabled = True txtKdBrg.Enabled = True End Sub '******************* U/ P E L A N G A N ************************* Private Sub BersihNota() Cmbno_Nota.Text = "" txttgl_Nota.Text = ""
txtKdPlg.Text = "" txtNmPlg.Text = "" txtAlamat.Text = "" txtTelepon.Text = "" '
Text1.Text = "" CmbNo_Pol.Text = "" txtjenis.Text = ""
Cmbno_Nota.Enabled = True CmbNo_Pol.Enabled = False End Sub Private Sub txtKdBrg_Change() Barang.cariBarang txtKdBrg.Text Isi.cariIsi Cmbno_Nota.Text If Len(Trim(txtKdBrg.Text)) < 5 Then Exit Sub If txtKdBrg.Text = Barang.getKode() And Barang.getKode <> "" Then End If If Cmbno_Nota.Text = Isi.getKode() And Isi.getKode <> "" Then End If Call isiFormBarang End Sub Private Sub isiFormBarang() On Error Resume Next txtNmBrg.Text = Barang.getNama txtSatuan.Text = Barang.getSatuan txthasga.Text = Barang.getHarga Isi.cariBrgNota Cmbno_Nota.Text, txtKdBrg.Text txtjml_jual.Text = Isi.getJmlJual txtkiriman.Enabled = True txtjml_kirim.Enabled = True cmdSimpan.Enabled = True txtjml_kirim.SetFocus End Sub Private Sub cmbno_Nota_Click() Nota.cariNota Cmbno_Nota.Text If Cmbno_Nota.Text = Nota.getKode() And Nota.getKode <> "" Then End If Dim sqlNota As String
' sqlNota = "SELECT b.Tgl_Nota, b.Kd_Plg,a.Nm_Plg, a.Amt_Plg, a.Telp, a.Database, c.Kd_Brg, d.Satuan, c.Jml_Jual, d.Nm_Brg" sqlNota = "SELECT b.Tgl_Nota, b.Kd_Plg,a.Nm_Plg, a.Amt_Plg, a.Telp, c.Kd_Brg, d.Satuan, c.Jml_Jual, d.Nm_Brg" sqlNota = sqlNota & " FROM Pelanggan a, Nota b, Isi c, Barang d" sqlNota = sqlNota & " WHERE a.Kd_Plg = b.Kd_Plg AND b.No_Nota = c.No_Nota" sqlNota = sqlNota & " AND c.Kd_Brg = d.Kd_Brg AND b.No_Nota = '" & Cmbno_Nota.Text & "'" isiFormNota Set rsNota = conn.Execute(sqlNota) If rsNota.EOF Then MsgBox "Data Tidak Ada" Exit Sub Else Dim sqlSurat_Jalan As String sqlSurat_Jalan = "SELECT No_Nota FROM Surat_Jalan WHERE No_Nota = '" & Cmbno_Nota.Text & "'" Set RS = conn.Execute(sqlSurat_Jalan) rsNota.MoveFirst I=1 Do Until rsNota.EOF txttgl_NotaText = rsNota.Fields(0).value txtKdPlg.Text = rsNota.Fields(1).value txtNmPlg.Text = rsNota.Fields(2).value txtAlamat.Text = rsNota.Fields(3).value txtTelepon.Text = rsNota.Fields(4).value '
Text1.Text = rsNota.Fields(5).value Set lv = ListView1.ListItems.Add(, , I)
' ' ' '
lv.SubItems(1) lv.SubItems(2) lv.SubItems(3) lv.SubItems(4)
= = = =
rsNota.Fields(6).value rsNota.Fields(9).value rsNota.Fields(7).value rsNota.Fields(8).value
lv.SubItems(1) lv.SubItems(2) lv.SubItems(3) lv.SubItems(4) rsNota.MoveNext I=I+1
= = = =
rsNota.Fields(5).value rsNota.Fields(8).value rsNota.Fields(6).value rsNota.Fields(7).value
Loop End If Cmbno_Nota.Enabled = False CmbNo_Pol.Enabled = True CmbNo_Pol.SetFocus End Sub Private Sub Cmbno_Nota_Change() Nota.cariNota Cmbno_Nota.Text If Len(Trim(Cmbno_Nota.Text)) < 8 Then Exit Sub If Cmbno_Nota.Text = Nota.getKode() And Nota.getKode <> "" Then Dim sqlNota As String ' sqlNota = "SELECT b.Tgl_Nota, b.Kd_Plg,a.Nm_Plg, a.Amt_Plg, a.Telp, a.Database, c.Kd_Brg, d.Satuan, c.Jml_Jual, d.Nm_Brg" sqlNota = "SELECT b.Tgl_Nota, b.Kd_Plg,a.Nm_Plg, a.Amt_Plg, a.Telp, c.Kd_Brg, d.Satuan, c.Jml_Jual, d.Nm_Brg" sqlNota = sqlNota & " FROM Pelanggan a, Nota b, Isi c, Barang d" sqlNota = sqlNota & " WHERE a.Kd_Plg = b.Kd_Plg AND b.No_Nota = c.No_Nota" sqlNota = sqlNota & " AND c.Kd_Brg = d.Kd_Brg AND b.No_Nota = '" & Cmbno_Nota.Text & "'" isiFormNota Set rsNota = conn.Execute(sqlNota) Dim sqlSurat_Jalan As String sqlSurat_Jalan = "SELECT No_Nota FROM Surat_Jalan WHERE No_Nota = '" & Cmbno_Nota.Text & "'" Set RS = conn.Execute(sqlSurat_Jalan) If Not RS.EOF Then MsgBox "No.Nota Sudah DiProses" Cmbno_Nota.Text = "" Exit Sub Else rsNota.MoveFirst I=1 Do Until rsNota.EOF txttgl_NotaText = rsNota.Fields(0).value txtKdPlg.Text = rsNota.Fields(1).value txtNmPlg.Text = rsNota.Fields(2).value txtAlamat.Text = rsNota.Fields(3).value txtTelepon.Text = rsNota.Fields(4).value
'
Text1.Text = rsNota.Fields(5).value Set lv = ListView1.ListItems.Add(, , I)
' ' ' '
lv.SubItems(1) lv.SubItems(2) lv.SubItems(3) lv.SubItems(4)
= = = =
rsNota.Fields(6).value rsNota.Fields(7).value rsNota.Fields(8).value rsNota.Fields(9).value
lv.SubItems(1) lv.SubItems(2) lv.SubItems(3) lv.SubItems(4)
= rsNota.Fields(5).value = rsNota.Fields(8).value = rsNota.Fields(6).value = rsNota.Fields(7).value
rsNota.MoveNext I=I+1 Loop End If Cmbno_Nota.Enabled = False CmbNo_Pol.Enabled = True CmbNo_Pol.SetFocus Else MsgBox "No Nota Tidak Ada !!" & vbCrLf & _ "Cek kembali No / jumlah karakter Nota ?" & vbCrLf & "", vbExclamation, "Konfirmasi" Cmbno_Nota.Text = "" End If End Sub '======================================================== ====================================== '======================================================== ====================================== Private Sub isiFormNota() On Error Resume Next txttgl_Nota.Text = Nota.gettglNota End Sub Private Sub List() Dim ch As ColumnHeader Set ch = ListView1.ColumnHeaders.Add(, Set ch = ListView1.ColumnHeaders.Add(, Set ch = ListView1.ColumnHeaders.Add(, Set ch = ListView1.ColumnHeaders.Add(, Set ch = ListView1.ColumnHeaders.Add(, ListView1.GridLines = True
, , , , ,
"No", 1550) "Kode Barang", 4100) "Nama Barang", 2260) "Satuan", 2010) "Jumlah Jual", 1400)
End Sub Private Sub CmdKeluar_Click() Unload Me End Sub Private Function CekInputDetail() As Boolean If Len(txtKdBrg.Text) = 0 Then MsgBox "Kode Barang harus diisi", vbExclamation, "Konfirmasi" BersihDetail Frame5.Visible = True txtKdBrg.SetFocus CekInputDetail = False Exit Function End If If Len(txtkiriman.Text) = 0 Then MsgBox "Jumlah Kirim harus diisi", vbExclamation, "Konfirmasi" cmdTambah.Enabled = False txtkiriman.Enabled = True txtkiriman.Text = "" txtkiriman.SetFocus CekInputDetail = False Exit Function End If CekInputDetail = True End Function Private Sub cmdTambah_Click() Dim MyList As ListItem Dim I As Integer Dim Ketemu As Boolean If CekInputDetail Then For I = 1 To lsvDetail.ListItems.Count If lsvDetail.ListItems(I).Text = txtKdBrg.Text Then MsgBox "Data sudah Ada", vbExclamation, "Maaf.." Call BersihDetail txtKdBrg.SetFocus Ketemu = True Exit For End If Next For I = 1 To lsvDetail.ListItems.Count If lsvDetail.ListItems(I).Text = txtKdBrg.Text Then lsvDetail.ListItems(I).Text = txtKdBrg lsvDetail.ListItems(I).SubItems(1) = txtNmBrg.Text lsvDetail.ListItems(I).SubItems(2) = txtSatuan.Text lsvDetail.ListItems(I).SubItems(3) = txtjml_jual.Text lsvDetail.ListItems(I).SubItems(4) = txtkiriman.Text Ketemu = True End If Next
If Ketemu Then Set MyList = lsvDetail.FindItem(txtKdBrg.Text) Else Set MyList = lsvDetail.ListItems.Add(, , txtKdBrg.Text) MyList.SubItems(1) = txtNmBrg.Text MyList.SubItems(2) = txtSatuan.Text MyList.SubItems(3) = txtjml_jual.Text MyList.SubItems(4) = txtkiriman.Text BersihDetail txtKdBrg.SetFocus End If End If lsvDetail.Enabled = True cmdSimpan.Enabled = True cmdTambah.Enabled = False cmdSimpan.SetFocus End Sub Private Sub Command_Click() Frame5.Visible = True End Sub Private Sub Command1_Click() Frame5.Visible = False End Sub Private Sub ListView1_Click() If ListView1.ListItems.Count = 0 Then MsgBox "Data Masih Kosong !!", vbQuestion, "Informasi.." Else txtKdBrg = ListView1.SelectedItem.SubItems(1) Dim sqlbrg As String sqlbrg = "SELECT a.No_Nota, b.Kd_Brg, b.Jml_Jual - sum(d.Jml_Kirim) as sisa_kirim FROM Nota a, Isi b, Surat_Jalan c, Kirim d WHERE a.No_Nota = b.No_Nota" sqlbrg = sqlbrg + " and d.Kd_Brg = b.Kd_Brg and a.No_Nota = c.No_Nota and c.No_SJ = d.No_SJ and a.No_Nota ='" & Cmbno_Nota.Text & "' GROUP by a.No_Nota, b.Kd_Brg, b.Jml_Jual " Set Rekod = conn.Execute(sqlbrg) If Rekod.EOF = True Then txtsisa.Text = txtjml_jual.Text Else txtsisa.Text = Rekod.Fields(2).value txtkiriman.SetFocus End If End If End Sub Private Sub ListView1_DblClick() If ListView1.ListItems.Count = 0 Then
MsgBox "Data Masih Kosong !!", vbQuestion, "Informasi.." Else txtKdBrg = ListView1.SelectedItem.SubItems(1) Dim sqlbrg As String sqlbrg = "SELECT a.No_Nota, b.Kd_Brg, b.Jml_Jual - sum(d.Jml_Kirim) as sisa_kirim FROM Nota a, Isi b, Surat_Jalan c, Kirim d WHERE a.No_Nota = b.No_Nota" sqlbrg = sqlbrg + " and d.Kd_Brg = b.Kd_Brg and a.No_Nota = c.No_Nota and c.No_SJ = d.No_SJ and a.No_Nota ='" & Cmbno_Nota.Text & "' GROUP by a.No_Nota, b.Kd_Brg, b.Jml_Jual " Set Rekod = conn.Execute(sqlbrg) If Rekod.EOF = True Then txtsisa.Text = txtjml_jual.Text Else txtsisa.Text = Rekod.Fields(2).value Frame5.Visible = False txtkiriman.SetFocus End If End If Frame5.Visible = False End Sub Private Sub txtkiriman_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKeyReturn If Val(txtkiriman.Text) > Val(txtsisa.Text) Then MsgBox "Jumlah Kirim melebihi sisa kirim!!", vbCritical, "Informasi" txtkiriman.Text = "" txtkiriman.SetFocus ElseIf txtsisa.Text = 0 Then MsgBox "Jumlah barang sudah terkirim semua !!", vbCritical, "Informasi" BersihDetail cmdTambah.Enabled = False Command.SetFocus Else cmdTambah.Enabled = True cmdTambah.SetFocus End If End Select Call input_angka(KeyAscii) End Sub Private Sub lsvDetail_DblClick() Call Hapus End Sub Sub Hapus() On Error GoTo errpesan Dim Kode As String Dim Index As Long Dim Jawab As String
Dim Potong As Currency Dim harga As Currency If lsvDetail.ListItems.Count = 0 Then MsgBox "Data Dalam List Masih Kosong", vbExclamation Index = lsvDetail.SelectedItem.Index Kode = lsvDetail.ListItems.Item(Index) Jawab = MsgBox("Anda ingin menghapus Data: " & Kode & " ? ", vbYesNo + vbQuestion, "Konfirmasi") If Jawab = vbNo Then Exit Sub Else lsvDetail.ListItems.Remove Index harga = Empty potongan = Empty For I = 1 To lsvDetail.ListItems.Count Potong = Potong + lsvDetail.ListItems(I).SubItems(4) harga = harga + lsvDetail.ListItems(I).SubItems(5) Next I txttotal.Text = harga 'txtsisa.Text = harga - Potong txttotdisc.Text = Potong Call BersihDetail txtNmBrg.SetFocus Exit Sub End If errpesan: End Sub Private Sub Form_Load() Call List Nota_Combo Kendaraan_Combo txttgl_sj.Text = Format(Date, "dd/mm/yyyy") cmdBatal_Click lsvDetail.ColumnHeaders.Add , , "Kode Barang", 1500 lsvDetail.ColumnHeaders.Add , , "Nama Barang", 4000 lsvDetail.ColumnHeaders.Add , , "Satuan", 2000 lsvDetail.ColumnHeaders.Add , , "Jumlah Jual", 1800 lsvDetail.ColumnHeaders.Add , , "Jumlah Kirim", 1800 End Sub Private Sub Form_Activate() txtno_sj.Enabled = False txttgl_sj.Enabled = False txttgl_Nota.Enabled = False
txtKdBrg.Enabled = False txtKdPlg.Enabled = False txtNmPlg.Enabled = False txtAlamat.Enabled = False txtTelepon.Enabled = False CmbNo_Pol.Enabled = False txtjenis.Enabled = False Frame5.Visible = False cmdSimpan.Enabled = False End Sub Private Sub cmdBatal_Click() Nota.Bersih Surat_Jalan.Bersih BersihNota BersihDetail Command.Enabled = False cmdTambah.Enabled = False lsvDetail.Enabled = False txtkiriman.Enabled = False txtKdBrg.Enabled = False Frame5.Visible = False lsvDetail.ListItems.Clear ListView1.ListItems.Clear txtno_sj.Text = Surat_Jalan.getKodeAuto End Sub Private Sub BersihDetail() Barang.Bersih txtKdBrg.Text = "" txtNmBrg.Text = "" txtSatuan.Text = "" txtjml_jual.Text = "" txtsisa.Text = "" txtkiriman.Text = "" cmdSimpan.Enabled = False End Sub Private Sub Nota_Combo() Dim rsNota As New ADODB.Recordset Dim N As New ctrlNota rsNota.Open N.DataNota(), conn, 1, 3
Do While Not rsNota.EOF Cmbno_Nota.AddItem rsNota("No_Nota") rsNota.MoveNext Loop End Sub Private Sub Kendaraan_Combo() Dim rsKendaraan As New ADODB.Recordset Dim K As New ctrlKendaraan rsKendaraan.Open K.showdata(), conn, 1, 3 Do While Not rsKendaraan.EOF CmbNo_Pol.AddItem rsKendaraan("No_Pol") rsKendaraan.MoveNext Loop End Sub Private Sub CmbNo_Pol_Change() Kendaraan.cariKendaraan CmbNo_Pol.Text If Len(Trim(CmbNo_Pol.Text)) < 10 Then Exit Sub If CmbNo_Pol.Text = Kendaraan.getKode() And Kendaraan.getKode <> "" Then Call isiFormKendaraan Else MsgBox "No Polisi Tidak Ada !!" & vbCrLf & _ "Cek kembali No / jumlah karakter Polisi ?" & vbCrLf & "", vbExclamation, "Konfirmasi" CmbNo_Pol.Text = "" End If cmdSimpan.Enabled = True End Sub Private Sub CmbNo_Pol_Click() Kendaraan.cariKendaraan CmbNo_Pol.Text If CmbNo_Pol.Text = Kendaraan.getKode() And Kendaraan.getKode <> "" Then Call isiFormKendaraan End If cmdSimpan.Enabled = True cmdSimpan.SetFocus End Sub Private Sub cmdSimpan_Click() Dim I As Integer If txtno_sj.Text = "" Or txttgl_sj.Text = "" Or Cmbno_Nota.Text = "" Or CmbNo_Pol.Text = "" Then MsgBox "Data Surat Jalan Belum Lengkap, Silahkan Lengkapi Data", vbCritical Exit Sub Else Call isiSurat_Jalan Surat_Jalan.Simpan End If
For I = 1 To lsvDetail.ListItems.Count Call Surat_Jalan.Simpan_Kirim(txtno_sj.Text, lsvDetail.ListItems(I).Text) Next
lsvDetail.ListItems(I).SubItems(4),
With CrystalReport1 .DataFiles(0) = App.Path & "\Penjualan_Tunai.mdb" .ReportFileName = App.Path & "\Report\CetakSuratJalan.rpt" .ReplaceSelectionFormula ("") .ReplaceSelectionFormula ("{Surat_Jalan.No_SJ}='" & txtno_sj.Text & "'") .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With Form_Activate Call cmdBatal_Click End Sub Private Sub isiSurat_Jalan() Surat_Jalan.setKode (txtno_sj.Text) Surat_Jalan.settglsj (txttgl_sj.Text) Surat_Jalan.setNoNota (Cmbno_Nota.Text) Surat_Jalan.setNoPol (CmbNo_Pol.Text) End Sub
FORM LAPORAN PENJUALAN Private Sub cmdcetak_Click() Dim FORMULA As String FORMULA = "{Nota.Tgl_Nota}>= #" & Format(DTPicker1.value, "dd/mm/yyyy") & _ "# AND {Nota.Tgl_Nota}<= # " & Format(DTPicker2.value, "dd/mm/yyyy") & "#" With CrystalReport1 .DataFiles(0) = App.Path & "\Penjualan_Tunai.MDB" .ReportFileName = App.Path & "\Report\Lap.Penjualan.RPT" .DiscardSavedData = True .ReplaceSelectionFormula "" .ReplaceSelectionFormula FORMULA
.Formulas(0) = "AWAL = '" & Format(DTPicker1.value, "dd/mm/yyyy") & "'" .Formulas(1) = "AKHIR = '" & Format(DTPicker2.value, "dd/mm/yyyy") & "'" .WindowTitle = "Laporan Penjualan" .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With End Sub Private Sub Form_Activate() DTPicker1.value = Format(Date, "dd/MM/yyyy") DTPicker2.value = Format(Date, "dd/MM/yyyy") End Sub Private Sub CmdKeluar_Click() Unload Me End Sub FORM LAPORAN PENGIRIMAN Private Sub cmdcetak_Click() Dim FORMULA As String FORMULA = "{Surat_Jalan.Tgl_SJ}>= #" & Format(DTPicker1.value, "dd/mm/yyyy") & _ "# AND {Surat_Jalan.Tgl_SJ}<= # " & Format(DTPicker2.value, "dd/mm/yyyy") & "#" With CrystalReport1 .DataFiles(0) = App.Path & "\Penjualan_Tunai.MDB" .ReportFileName = App.Path & "\Report\Lap.Pengiriman.RPT" .DiscardSavedData = True .ReplaceSelectionFormula "" .ReplaceSelectionFormula FORMULA .Formulas(0) = "AWAL = '" & Format(DTPicker1.value, "dd/mm/yyyy") & "'" .Formulas(1) = "AKHIR = '" & Format(DTPicker2.value, "dd/mm/yyyy") & "'" .WindowTitle = "Laporan Pengiriman" .Destination = crptToWindow .WindowState = crptMaximized .Action = 1
End With End Sub Private Sub Form_Activate() DTPicker1.value = Format(Date, "dd/MM/yyyy") DTPicker2.value = Format(Date, "dd/MM/yyyy") End Sub Private Sub CmdKeluar_Click() Unload Me End Sub FORM LAPORAN KENDARAAN Private Sub cmdcetak_Click() Dim FORMULA As String FORMULA = "{Surat_Jalan.Tgl_SJ}>= #" & Format(DTPicker1.value, "dd/mm/yyyy") & _ "# AND {Surat_Jalan.Tgl_SJ}<= # " & Format(DTPicker2.value, "dd/mm/yyyy") & "#" With CrystalReport1 .DataFiles(0) = App.Path & "\Penjualan_Tunai.MDB" .ReportFileName = App.Path & "\Report\Lap.Kendaraan.RPT" .DiscardSavedData = True .ReplaceSelectionFormula "" .ReplaceSelectionFormula FORMULA .Formulas(0) = "AWAL = '" & Format(DTPicker1.value, "dd/mm/yyyy") & "'" .Formulas(1) = "AKHIR = '" & Format(DTPicker2.value, "dd/mm/yyyy") & "'" .WindowTitle = "Laporan Pengiriman" .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With End Sub Private Sub Form_Activate() DTPicker1.value = Format(Date, "dd/MM/yyyy") DTPicker2.value = Format(Date, "dd/MM/yyyy") End Sub
Private Sub CmdKeluar_Click() Unload Me End Sub CONTROL PELANGGAN '
Dim Kd_Plg, Nm_Plg, Amt_Plg, Telp, Database As String
Dim Kd_Plg, Nm_Plg, Amt_Plg, Telp As String '==== No Aktiv ==== Dim rsPelanggan As ADODB.Recordset Dim sProses As String Public Sub setTambahan(dTambahan As String) ' Database = dTambahan End Sub Public Function getTambahan() As String ' getTambahan = Database End Function Public Sub Bersih() Kd_Plg = "" Nm_Plg = "" Amt_Plg = "" Telp = "" ' Database = "" End Sub Public Sub Simpan() Dim sProses As String ' sProses = "insert into Pelanggan (Kd_Plg, Nm_Plg, Amt_Plg, Telp, Database) values('" & Kd_Plg _ & "','" & Nm_Plg & "','" & Amt_Plg & "','" & Telp & "','" & Database & "')" sProses = "insert into Pelanggan (Kd_Plg, Nm_Plg, Amt_Plg, Telp) values('" & Kd_Plg _ & "','" & Nm_Plg & "','" & Amt_Plg & "','" & Telp & "')" '==== No Aktiv ==== conn.Execute sProses MsgBox "Berhasil Di Simpan", vbInformation, "Data Pelanggan" End Sub Public Sub cariPelanggan(kodeParam As String) Set rsPelanggan = New ADODB.Recordset sProses = "select * from Pelanggan where Kd_Plg = '" & kodeParam & "'" rsPelanggan.Open sProses, conn, 1, 3 If Not rsPelanggan.EOF Then
Kd_Plg = rsPelanggan("Kd_Plg") Nm_Plg = rsPelanggan("Nm_Plg") Amt_Plg = rsPelanggan("Amt_Plg") Telp = rsPelanggan("Telp") ' Database = rsPelanggan("Database") End If End Sub Public Sub Ubah() Dim sProses As String ' sProses = "update Pelanggan set Nm_Plg='" & Nm_Plg _ & "', Amt_Plg='" & Amt_Plg & "', Telp='" & Telp _ & "', Database='" & Database & "'" sProses = "update Pelanggan set Nm_Plg='" & Nm_Plg _ & "', Amt_Plg='" & Amt_Plg & "', Telp='" & Telp & "'"
'==== No Aktiv ====
sProses = sProses & "where Kd_Plg = '" & Kd_Plg & "'" conn.Execute sProses MsgBox "Berhasil Di Ubah", vbExclamation, "Data Pelanggan" End Sub '======================================================== ======================================== '======================================================== ======================================== Public Sub setKode(Kode As String) Kd_Plg = Kode End Sub Public Sub setNama(Nama As String) Nm_Plg = Nama End Sub Public Sub setAlamat(sAlamat As String) Amt_Plg = sAlamat End Sub Public Sub setTelepon(dTelepon As String) Telp = dTelepon End Sub Public Sub setJenisKelamin(dJenisKelamin As String) JenisKelamin = dJenisKelamin End Sub Public Function getNama() As String getNama = Nm_Plg End Function Public Function getKode() As String getKode = Kd_Plg End Function Public Function getAlamat() As String
getAlamat = Amt_Plg End Function Public Function getTelepon() As String getTelepon = Telp End Function Public Function getJenisKelamin() As String getJenisKelamin = JenisKelamin End Function Public Sub Hapus() sProses = "Delete from Pelanggan where Kd_Plg='" & Kd_Plg & "'" conn.Execute sProses MsgBox "Berhasil Di Hapus", vbExclamation, "Data Pelanggan" End Sub Public Function getKodeAuto() sProses = "select count(1), max(Right(Kd_Plg,4)) from Pelanggan" Set rsPelanggan = New ADODB.Recordset rsPelanggan.Open sProses, conn, 1, 3 If Not rsPelanggan.EOF Then If rsPelanggan(0) > 0 Then sFormat = Format(CInt(rsPelanggan(1)) + 1, "P0###") Else sFormat = "P0001" End If End If getKodeAuto = sFormat End Function Public Function showdata() As String showdata = "select * from Pelanggan" End Function CONTROL BARANG ' Dim Kd_Brg, Nm_Brg, Satuan, Har_sat, stok, Database As String Dim Kd_Brg, Nm_Brg, Satuan, Har_sat, stok As String Dim rsBarang As ADODB.Recordset Dim sProses As String Public Sub setTambahan(dTambahan As String) ' Database = dTambahan End Sub Public Function getTambahan() As String ' getTambahan = Database
'==== No Aktiv ====
End Function Public Sub Bersih() Kd_Brg = "" Nm_Brg = "" Satuan = "" Har_sat = "" stok = "" '
Database = ""
End Sub Public Sub Simpan() Dim sProses As String ' sProses = "insert into Barang (Kd_Brg, Nm_Brg, Satuan, Har_sat, Stok, Database) values('" & Kd_Brg _ & "','" & Nm_Brg & "','" & Satuan & "','" & Har_sat _ & "','" & stok & "','" & Database & "')" '==== No Aktiv ==== sProses = "insert into Barang (Kd_Brg, Nm_Brg, Satuan, Har_sat, Stok) values('" & Kd_Brg _ & "','" & Nm_Brg & "','" & Satuan & "','" & Har_sat & "','" & stok & "')" conn.Execute sProses MsgBox "Data Berhasil Di Simpan" End Sub Public Sub cariBarang(kodeParam As String) Set rsBarang = New ADODB.Recordset sProses = "select * from Barang where Kd_Brg = '" & kodeParam & "'" rsBarang.Open sProses, conn, 1, 3 If Not rsBarang.EOF Then Kd_Brg = rsBarang("Kd_Brg") Nm_Brg = rsBarang("Nm_Brg") Satuan = rsBarang("Satuan") Har_sat = rsBarang("Har_sat") stok = rsBarang("Stok") ' Database = rsBarang("Database") End If End Sub Public Sub Ubah() Dim sProses As String '
sProses = "update Barang set Nm_Brg='" & Nm_Brg _ & "', Satuan='" & Satuan & "', Har_sat='" & Har_sat _ & "', Stok='" & stok & "', Database='" & Database & "'" sProses = "update Barang set Nm_Brg='" & Nm_Brg _
& "', Satuan='" & Satuan & "', Har_sat='" & Har_sat _ & "', Stok='" & stok & "'" '==== No Aktiv ==== sProses = sProses & "where Kd_Brg = '" & Kd_Brg & "'" conn.Execute sProses MsgBox "Data Berhasil Di Ubah" End Sub '======================================================== ======================================== '======================================================== ======================================== Public Sub setKode(Kode As String) Kd_Brg = Kode End Sub Public Sub setNama(Nama As String) Nm_Brg = Nama End Sub Public Sub setHarga(dHarga As String) Har_sat = dHarga End Sub Public Sub setSatuan(dSatuan As String) Satuan = dSatuan End Sub Public Sub setStok(sStok As String) stok = sStok End Sub Public Function getNama() As String getNama = Nm_Brg End Function Public Function getKode() As String getKode = Kd_Brg End Function Public Function getHarga() As String getHarga = Har_sat End Function Public Function getSatuan() As String getSatuan = Satuan End Function Public Function getStok() As String getStok = stok End Function Public Sub Hapus() sProses = "Delete from Barang where Kd_Brg='" & Kd_Brg & "'" conn.Execute sProses MsgBox "Data Berhasil Di Hapus" End Sub Public Function getKodeAuto() sProses = "select count(1), max(Right(Kd_Brg,4)) from Barang" Set rsBarang = New ADODB.Recordset
rsBarang.Open sProses, conn, 1, 3 If Not rsBarang.EOF Then If rsBarang(0) > 0 Then sFormat = Format(CInt(rsBarang(1)) + 1, "B0###") Else sFormat = "B0001" End If End If getKodeAuto = sFormat End Function Public Function showdata() As String showdata = "select * from Barang" End Function Public Sub data() Set RS = conn.Execute("Select Stok from Barang where Kd_Brg='" & Kd_Brg & "'") If Not RS.EOF Then stok = RS("Stok") End If End Sub Public Sub ada() Set RS = New Recordset RS.Open "select * from Barang where Kd_Brg='" & Kd_Brg & "'", conn, adOpenStatic, adLockPessimistic If Not RS.EOF Then stok = Val(RS("Stok")) MsgBox "Jumlah Stok Hanya :" & " " & RS!stok, vbInformation, "Maaf,Kelebihan" End If End Sub CONTROL KENDARAAN ' Dim No_Pol, Jns_kendaraan, Database As String Dim No_Pol, Jns_kendaraan As String '==== No Aktiv ==== Dim rsKendaraan As ADODB.Recordset Dim sProses As String Public Sub setTambahan(dTambahan As String) ' Database = dTambahan End Sub Public Function getTambahan() As String ' getTambahan = Database End Function Public Sub Bersih() No_Pol = ""
Jns_kendaraan = "" ' Database = "" End Sub Public Sub Simpan() Dim sProses As String ' sProses = "insert into Kendaraan (No_Pol, Jns_kendaraan, Database) values('" & No_Pol _ & "','" & Jns_kendaraan & "','" & Database & "')" sProses = "insert into Kendaraan (No_Pol, Jns_kendaraan) values('" & No_Pol _ & "','" & Jns_kendaraan & "')" '==== No Aktiv ==== conn.Execute sProses MsgBox "Berhasil Di Simpan", vbInformation, "Data Kendaraan" End Sub Public Sub cariKendaraan(kodeParam As String) Set rsKendaraan = New ADODB.Recordset sProses = "select * from Kendaraan where No_Pol = '" & kodeParam & "'" rsKendaraan.Open sProses, conn, 1, 3 If Not rsKendaraan.EOF Then No_Pol = rsKendaraan("No_Pol") Jns_kendaraan = rsKendaraan("Jns_kendaraan") ' Database = rsKendaraan("Database") End If End Sub Public Sub Ubah() Dim sProses As String ' sProses = "update Kendaraan set Jns_kendaraan='" & Jns_kendaraan _ & "', Database='" & Database & "'" sProses = "update Kendaraan set Jns_kendaraan='" & Jns_kendaraan & "'" '==== No Aktiv ==== sProses = sProses & "where No_Pol = '" & No_Pol & "'" conn.Execute sProses MsgBox "Berhasil Di Ubah", vbInformation, "Data Kendaraan" End Sub '======================================================== ======================================== '======================================================== ======================================== Public Function getKode() As String getKode = No_Pol End Function
Public Function getJenis() As String getJenis = Jns_kendaraan End Function Public Sub setKode(Kode As String) No_Pol = Kode End Sub Public Sub setJenis(sJenis As String) Jns_kendaraan = sJenis End Sub Public Sub Hapus() sProses = "Delete from Kendaraan where No_Pol='" & No_Pol & "'" conn.Execute sProses MsgBox "Berhasil Di Hapus", vbInformation, "Data Kendaraan" End Sub Public Function showdata() As String showdata = "select * from Kendaraan" End Function CONTROL NOTA Dim No_Nota, Tgl_Nota, Kd_Plg, Harga_Jual, Jml_Jual, Amt_Plg, Kd_Brg As String Dim rsNota As ADODB.Recordset Dim sProses As String Public Sub setKode(Kode As String) No_Nota = Kode End Sub Public Sub settglNota(tglNota As String) Tgl_Nota = tglNota End Sub Public Sub setkdPlg(kdPlg As String) Kd_Plg = kdPlg End Sub Public Sub setHargaJual(HargaJual As String) Harga_Jual = HargaJual End Sub Public Sub setJmlJual(JmlJual As String) Jml_Jual = JmlJual End Sub Public Sub seAmtPlg(sAmtPlg As String) Amt_Plg = sAmtPlg End Sub Public Sub setkdbrg(skdbrg As String) Kd_Brg = skdbrg End Sub Public Sub Simpan() Dim sProses As String
sProses = "insert into Nota (No_Nota, Tgl_Nota, Kd_Plg) values('" & No_Nota & "','" & Tgl_Nota & "','" & Kd_Plg & "')" conn.Execute sProses MsgBox "Data Berhasil Di Simpan" End Sub Public Sub Simpan_Isi(No_Nota As String, Harga_Jual As String, Jml_Jual As String, Kd_Brg As String) conn.Execute "Insert Into Isi(No_Nota, Harga_Jual, Jml_Jual, Kd_Brg) Values('" & _ No_Nota & "','" & Harga_Jual & "','" & Jml_Jual & "','" & Kd_Brg & "')" End Sub Public Sub update_brg(stok As String, Kd_Brg As String) conn.Execute "Update Barang set Stok=('" & stok & "') where Kd_Brg=('" & Kd_Brg & "')" End Sub Public Sub update_Pelanggan(Amt_Plg As String, Kd_Plg As String) conn.Execute "Update Pelanggan set Amt_Plg=('" & Amt_Plg & "') where Kd_Plg=('" & Kd_Plg & "')" End Sub Public Sub cariNota(kodeParam As String) Set rsNota = New ADODB.Recordset sProses = "select * from Nota where No_Nota = '" & kodeParam & "'" rsNota.Open sProses, conn, 1, 3 If Not rsNota.EOF Then No_Nota = rsNota("No_Nota") Tgl_Nota = rsNota("Tgl_Nota") Kd_Plg = rsNota("Kd_Plg") End If End Sub Public Sub cariIsi(kodeParam As String) Set rsNota = New ADODB.Recordset sProses = "select * from Isi where No_Nota = '" & kodeParam & "'" rsNota.Open sProses, conn, 1, 3 If Not rsNota.EOF Then No_Nota = rsNota("No_Nota") Harga_Jual = rsNota("Harga_Jual") Jml_Jual = rsNota("Jml_Jual") Kd_Brg = rsNota("Kd_Brg") End If End Sub Public Sub cariBrgNota(No_Nota As String, Kd_Brg As String) Set rsNota = New ADODB.Recordset sProses = "select * from Isi where No_Nota = '" & No_Nota & "' And Kd_Brg='" & Kd_Brg & "'" rsNota.Open sProses, conn, 1, 3
If Not rsNota.EOF Then No_Nota = rsNota("No_Nota") Harga_Jual = rsNota("Harga_Jual") Jml_Jual = rsNota("Jml_Jual") Kd_Brg = rsNota("Kd_Brg") End If End Sub Public Function gettglNota() As String gettglNota = Tgl_Nota End Function Public Function getKode() As String getKode = No_Nota End Function Public Function getkdplg() As String getkdplg = Kd_Plg End Function Public Function getHargaJual() As String getHargaJual = Harga_Jual End Function Public Function getJmlJual() As String getJmlJual = Jml_Jual End Function Public Function getkdbrg() As String getkdbrg = Kd_Brg End Function Public Function DataNota() As String DataNota = "select * from Nota" End Function Public Function Hilang() As String Hilang = "SELECT No_Nota FROM Nota Where No_Nota NOT IN (SELECT No_Nota FROM Kwitansi)" End Function Public Function DataIsi() As String DataIsi = "select * from Isi" End Function Public Sub Bersih() No_Nota = "" Tgl_Nota = "" Kd_Plg = "" Harga_Jual = "" Jml_Jual = "" End Sub Public Function getKodeAuto() sProses = "select count(1), max(Right(No_Nota,7)) from Nota" Set rsNota = New ADODB.Recordset rsNota.Open sProses, conn, 1, 3
If Not rsNota.EOF Then If rsNota(0) > 0 Then sFormat = Format(CInt(rsNota(1)) + 1, "00######") Else sFormat = "00000001" End If End If getKodeAuto = sFormat End Function CONTROL SURAT JALAN Dim Dim Dim Dim
No_SJ, Tgl_SJ, No_Nota, No_Pol, Jml_Jual, Jml_Kirim, Kd_Brg As String rsSuratJalan As ADODB.Recordset rsKirim As ADODB.Recordset sProses As String
Public Sub setKode(Kode As String) No_SJ = Kode End Sub Public Sub settglsj(tglsj As String) Tgl_SJ = tglsj End Sub Public Sub setNoNota(sNoNota As String) No_Nota = sNoNota End Sub Public Sub setNoPol(dNoPol As String) No_Pol = dNoPol End Sub Public Sub setJmlJual(dJmlJual As String) Jml_Jual = dJmlJual End Sub Public Sub setJmlKiriman(dJmlKiriman As String) Jml_Kirim = dJmlKiriman End Sub Public Sub setkdbrg(dkdbrg As String) Kd_Brg = dkdbrg End Sub Public Sub Simpan() Dim sProses As String sProses = "insert into Surat_Jalan (No_SJ, Tgl_SJ, No_Nota, No_Pol) values('" & No_SJ & "','" & Tgl_SJ & "','" & No_Nota & "','" & No_Pol & "')" conn.Execute sProses MsgBox "Data Berhasil Di Simpan" End Sub Public Sub Simpan_Kirim(No_SJ As String, Jml_Kirim As String, Kd_Brg As String)
conn.Execute "Insert Into Kirim(No_SJ, Jml_Kirim, Kd_Brg) Values('" & _ No_SJ & "','" & Jml_Kirim & "','" & Kd_Brg & "')" End Sub Public Sub cariSurat_Jalan(kodeParam As String) Set rsSurat_Jalan = New ADODB.Recordset sProses = "select * from Surat_Jalan where No_SJ = '" & kodeParam & "'" rsSurat_Jalan.Open sProses, conn, 1, 3 If Not rsSurat_Jalan.EOF Then No_SJ = rsSurat_Jalan("No_SJ") Tgl_SJ = rsSurat_Jalan("Tgl_SJ") No_Nota = rsSurat_Jalan("No_Nota") No_Pol = rsSurat_Jalan("No_Pol") End If End Sub Public Sub cariIsi(kodeParam As String) Set rsSurat_Jalan = New ADODB.Recordset sProses = "select * from Isi where No_SJ = '" & kodeParam & "'" rsSurat_Jalan.Open sProses, conn, 1, 3 If Not rsSuratJalan.EOF Then No_SJ = rsSurat_Jalan("No_SJ") Jml_Jual = rsSurat_Jalan("Jml_Jual") Kd_Brg = rsSurat_Jalan("Kd_Brg") End If End Sub Public Function gettglsj() As String gettglsj = Tgl_SJ End Function Public Function getKode() As String getKode = No_SJ End Function Public Function getNoNota() As String getNoNota = No_Nota End Function Public Function getNoPol() As String getNoPol = No_Pol End Function Public Function getJIsi() As String getJIsi = Jml_Jual End Function Public Function getkdbrg() As String getkdbrg = Kd_Brg End Function Public Sub Bersih() No_SJ = "" Tgl_SJ = ""
No_Nota = "" No_Pol = "" Jml_Jual = "" Kd_Brg = "" End Sub Public Function getKodeAuto() sProses = "select count(1), max(Right(No_SJ,7)) from Surat_Jalan" Set rsSurat_Jalan = New ADODB.Recordset rsSurat_Jalan.Open sProses, conn, 1, 3 If Not rsSurat_Jalan.EOF Then If rsSurat_Jalan(0) > 0 Then sFormat = Format(CInt(rsSurat_Jalan(1)) + 1, "J0######") Else sFormat = "J0000001" End If End If getKodeAuto = sFormat End Function Public Function showdata() As String showdata = "select * from Surat_Jalan" End Function