You are on page 1of 159

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

Halaman
Gambar 2.1 : Simbol dari Actor ............................................................................ 13
Gambar 2.2 : Simbol dari Use Case ...................................................................... 13
Gambar 2.3 : Relasi anatara actor dengan use case .............................................. 14
Gambar 2.4 : Simbol include................................................................................ 14
Gambar 2.5 : Simbol extend ................................................................................ 15
Gambar 2.6 : Simbol panah Generalization ........................................................... 15
Gambar 2.7 : Generalization antar use case.......................................................... 16
Gambar 2.8 : Generalization antar Actors ............................................................. 17
Gambar 2.9 : Simbol Class .................................................................................. 19
Gambar 2.10 : Simbol komponen........................................................................... 20
Gambar 2.11 : Symbol Deployment........................................................................ 20
Gambar 3.1 : Struktur Organisasi Toko Besi & Kaca Subur..................................... 23
Gambar 3.2 : Activity Diagram Proses Pembayaran ............ ……………………………….. 26
Gambar 3.3 : Activity Diagram Proses Pengiriman ................................................. 27
Gambar 3.4 : Activity Diagram Proses Laporan Penjualan ...................................... 28
Gambar 3.5 : Package Diagram ........................................................................... 33
Gambar 3.6 : Use Case Diagram File Master ............................... ………………………. 34
Gambar 3.7 : Use Case Diagram Transaksi ........................................ ................... 35
Gambar 3.8 : Use Case Diagram Pengiriman............................………………………….. 36
Gambar 3.9 : Use Case Diagram Laporan .................... …………………………………….. 37
Gambar 4.1 : Entity Relationship Diagram ............................................................ 41
Gambar 4.2 : Transformasi ERD ke LRS................................................................ 42
Gambar 4.3 : Logical Record Structur ................................................................... 43
Gambar 4.4 : Diagram Ketergantungan fungsi tabel pelanggan.............................. 44
Gambar 4.5 : Diagram Ketergantungan fungsi tabel nota ...................................... 45
Gambar 4.6 : Diagram Ketergantungan fungsi tabel isi .......................................... 46
Gambar 4.7 : Diagram Ketergantungan fungsi tabel barang................................... 47
Gambar 4.8 : Diagram Ketergantungan fungsi tabel surat jalan ............................. 48
Gambar 4.9 : Diagram Ketergantungan fungsi tabel Kirim ..................................... 49
Gambar 4.10 : Diagram Ketergantungan fungsi tabel kendaraan ............................. 50
Gambar 4.12 : Struktur Tampilan........................................................................... 60
Gambar 4.13 : Rancangan Layar Menu Utama ........................................................ 61
Gambar 4.14 : Rancangan Layar File Master........................................................... 62
Gambar 4.15 : Rancangan Layar Entry Data Pelanggan........................................... 63
Gambar 4.16 : Rancangan Layar Entry Data Barang................................................ 64
Gambar 4.17 : Rancangan Layar Entry Data Kendaraan .......................................... 65
Gambar 4.18 : Rancangan Layar Transaksi............................................................. 66
Gambar 4.19 : Rancangan Layar Entry Nota ........................................................... 67
Gambar 4.20 : Rancangan Layar Pengiriman .......................................................... 68
Gambar 4.21 : Rancangan Layar Entry Surat Jalan.................................................. 69
Gambar 4.22 : Rancangan Layar Laporan............................................................... 70
Gambar 4.23 : Rancangan Layar Laporan Penjualan ............................................... 71
Gambar 4.24 : Rancangan Layar Laporan Pengiriman ............................................. 71
Gambar 4.25 : Rancangan Layar Laporan Kendaraan .............................................. 72
Gambar 4.26 : Sequence Diagram Entry Data Pelanggan ........................................ 73
Gambar 4.27 : Sequence Diagram Entry Data Barang ............................................. 74
Gambar 4.28 : Sequence Diagram Entry Data Kendaraan ........................................ 75
Gambar 4.29 : Sequence Diagram Entry Nota......................................................... 76
Gambar 4.30 : Sequence Diagram Entry Surat Jalan ............................................... 77
Gambar 4.31 : Sequence Diagram Laporan Penjualan ............................................. 78
Gambar 4.32 : Sequence Diagram Laporan Pengiriman ........................................... 79
Gambar 4.33 : Sequence Diagram Laporan Kendaraan............................................ 80
Gambar 4.34 : Entity Class Diagram....................................................................... 81
Gambar 4.35 : Boundary Class .............................................................................. 82
Gambar 4.36 : Control Class .................................................................................. 83
DAFTAR LAMPIRAN

Halaman
Lampiran A : Keluaran Sistem Berjalan
Lampiran A-1 : Surat Jalan .............................................................................. 86
Lampiran A–2 : Nota ........................................................................................ 87
Lampiran A–3 : Laporan Penjualan .................................................................... 88
Lampiran B : Masukan Sistem Berjalan
Lampiran B–1 : Pemesanan ............................................................................... 89
Lampiran C : Rancangan Keluaran
Lampiran C–1 : Rancangan Keluaran Nota.......................................................... 90
Lampiran C–2 : Rancangan Keluaran Surat Jalan ................................................ 91
Lampiran C–3 : Rancangan Keluaran Laporan Penjualan ..................................... 92
Lampiran C–4 : Rancangan Keluaran Laporan Pengiriman ................................... 93
Lampiran C–5 : Rancangan Keluaran Laporan Kendaraan .................................... 94
Lampiran D : Rancangan Masukan
Lampiran D–1 : Rancangan Masukan Entri Pelanggan ........................................ 95
Lampiran D–2 : Rancangan Masukan Entri Barang ............................................. 96
Lampiran D–3 : Rancangan Masukan Entri Kendaraan ........................................ 97
Lampiran D–3 : Rancangan Masukan Entri Nota ................................................. 98
Lampiran D–3 : Rancangan Masukan Entri Surat Jalan ....................................... 99
Lampiran E : Surat Keterangan Riset
DAFTAR TABEL

Halaman
Tabel 4.1 : Tabel Spesifikasi Basis Data Pelanggan ............................................ 51
Tabel 4.2 : Tabel Spesifikasi Basis Data Barang ................................................. 51
Tabel 4.3 : Tabel Spesifikasi Basis Data Kendaraan............................................ 52
Tabel 4.4 : Tabel Spesifikasi Basis Data Isi........................................................ 52
Tabel 4.5 : Tabel Spesifikasi Basis Data Nota .................................................... 53
Tabel 4.6 : Tabel Spesifikasi Basis Data Surat Jalan ........................................... 53
Tabel 4.7 : Tabel Spesifikasi Basis Data 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

<<include>> Association Include


Menggambarkan pemanggilan use case oleh use case lain, arah
panah tidak boleh kearah base atau parent use case

Association Extend
<<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
Class Penggambaran dari class name, atribut atau property atau data
-Atribute 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

1 M Cardinality
Suplier Terima SP
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 ................................................................................. 1
2. Masalah ........................................................................................... 1
3. Tujuan Penulisan .............................................................................. 2
4. Ruang Lingkup / Batasan Masalah ..................................................... 2
5. Metode Penelitian ............................................................................. 2
6. Sistematika Penulisan ....................................................................... 3

BAB II LANDASAN TEORI


1. Konsep Dasar Sistem ......................................................................... 5
2. Konsep Dasar Informasi..................................................................... 6
3. Konsep Dasar Sistem Informasi ......................................................... 6
4. Analisa Sistem................................................................................... 8
5. Perancangan Sistem .......................................................................... 9
6. Konsep Dasar Berorientasi Obyek ....................................................... 10
7. Analisa dan Perancangan Berorientasi Obyek ...................................... 11

BAB III ANALISA SISTEM


1. Tinjauan Organisasi .......................................................................... 22
2. Uraian Prosedur ............................................................................... 25
3. Analisa Proses ................................................................................. 29
4. Analisa Keluaran................................................................................ 29
5. Analisa Masukan................................................................................ 30
6. Indentifikasi Kebutuhan ..................................................................... 31
7. Package Diagram .............................................................................. 33
8. Use Case Sistem Usulan..................................................................... 34
9. Deskripsi Use Case ............................................................................ 38
BAB IV RANCANGAN SISTEM
1. Rancangan Basis Data ....................................................................... 41
a. Entity Relationship Diagram ......................................................... 41
b. Transformasi Diagram ERD ke LRS ............................................... 42
c. LRS ........................................................................................... 43
d. Normalisasi ................................................................................. 44
e. Spesifikasi Basis Data .................................................................. 51
2. Rancangan Antar Muka
a. Rancangan Dokumen Keluaran .................................................... 56
b. Rancangan Dokumen Masukan .................................................... 58
c. Struktur Tampilan........................................................................ 60
d. Rancangan Layar......................................................................... 61
3. Sequence Diagram ........................................................................... 73
4. Rancangan Class Diagram ................................................................. 78
a. Entity Class ................................................................................ 81
b. Boundary Class .......................................................................... 82
c. Control Class .............................................................................. 83

BAB V PENUTUP
1. Kesimpulan ...................................................................................... 84
2. Saran ............................................................................................... 84

DAFTAR PUSTAKA................................................................................... 85

Lampiran A : Keluaran Sistem Berjalan .................................................... 86


Lampiran B : Masukan Sistem Berjalan .................................................... 89
Lampiran C : Rancangan Keluaran ........................................................... 90
Lampiran D : Rancangan Masukan .......................................................... 95
Lampiran 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) ERD (Entity Relational Diagram)


Merupakan alat yang dapat mempresentasikan hubungan yang terjadi antara
satu atau lebih komponen sistem.

e. 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 sub-
kelasnya.
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 lima aktifitas utama dalam


pendekatannya, yaitu :
1) Menentukan kelas dan objek
2) Identifikasi Struktur
3) Identifikasi Subjek
4) Menentukan Atribut
5) Menentukan Metode

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
<<include>>.
Sebagai contoh :

<<include>>

Buka rekening Catat Data Pribadi

Nasabah

Gambar 2. 4
Simbol include
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.
<<include>>

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.

Mahasiswa Class Name


#Nim Atribut /
-Nama Property /
-Alamat Data
+Kuliah () Methode /
+Cuti() 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 Bagian Bagian Bagian


Pembelian Penjualan Gudang 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 Melakukan pembayaran

Stop

Gambar 3. 2
Activity Diagram Proses 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

Kirim SJ yang tidak divalidasi [ Tidak sesuai ]


Terima SJ dan barang
dan barang yang tidak sesuai

[ Sesuai ]

Terima SJ divalidasi SJ divalidasi

Terima SJ yang Kirim SJ yang telah


telah divalidasi divalidasi

Stop

Gambar 3. 3
Activity Diagram Proses Pengiriman
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 : Nota


Fungsi : Sebagai bukti adanya transaksi penjualan
barang, dokumen yang daftar barang –
yang dibeli oleh pelanggan dan sebagai
penagihan pembayaran dan sebagai bukti
pembayaran.
Media : Kertas
Distribusi : Pelanggan, arsip
Rangkap : 2 (dua)
Frekuensi : Setiap terjadi transaksi penjualan
Volume : 10 / perhari
Format : Lampiran – A2
Keterangan : Tidak adanya penomoran yang jelas, sehingga
mempersulit penjualan atau pemesanan barang
Hasil analisa :
 Kurang baik

b. SJ (Surat Jalan)

Nama keluaran : Surat Jalan


Fungsi : Tanda bukti pengiriman barang
Media : Kertas
Distribusi : Pelanggan, arsip
Rangkap : 2 (dua)
Frekuensi : Setiap hari
Volume : 12 / hari
Format : Lampiran – A1
Keterangan : Mengetahui pengiriman
barang kepelanggan
Hasil analisa :
 Cukup baik
c. Laporan Penjualan

Nama keluaran : Laporan Penjualan


Fungsi : Untuk mengetahui keadaan penjualan yang
terjadi dalam satu periode
Media : Kertas
Distribusi : Pemilik Toko
Rangkap : Satu lembar
Frekuensi : Bulanan
Volume : Satu kali per bulan
Format : Lampiran A3
Keterangan : Bentuk laporan standar dan detail laporan tidak
tersusun rapi
Hasil analisa :
 Kurang baik

5. Analisa Masukan Sistem Berjalan

a. Pemesanan

Nama keluaran : Pemesanan


Fungsi : Sebagai bukti pesanan barang yang akan dibeli
dari pelanggan
Media : Suara
Distribusi : Pelanggan
Rangkap :-
Frekuensi : Setiap terjadinya pesanan barang oleh
pelanggan
Volume : 20 / perhari
Format : Lampiran B - 1
Keterangan : Pesanan disampaikan pelanggan dengan
dengan datang langsung atau melalui telp
Hasil analisa :
 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 : Data Pelanggan


Masalah : Tidak adanya pencatatan data pelanggan yang melakukan
transaksi pemesanan untuk memudahkan dalam pencarian
informasi tentang pelanggan tersebut.
Usulan : Penyediaan informasi tentang pendataan pelanggan yang barasal
langsung dari pelanggan.

b. Kebutuhan : Data Barang


Masalah : Tidak terkontrolnya stok barang yang ada di gudang, sehingga
sering terjadi kesalahan dalam proses penjualan
Usulan : Disediakannya informasi data stok barang yang ada digudang

c. Kebutuhan : Data Kendaraan


Masalah : Pengiriman tidak hanya dilakukan oleh satu kendaraan, melainkan
adanya pergantian dalam hal pengiriman barang ke pelanggan.
Usulan : Memastikan informasi kendaraan dalam hal pengiriman barang.

d. Kebutuhan : Surat Jalan


Masalah : Kurang jelasnya pencatatan pada surat jalan, sehingga sulit untuk
mengetahui apakah barang sudah terkirim.
Usulan : Mempermudah pencatatan surat jalan kedalam bentuk form
sebagai masukan kedalam sistem.

e. Kebutuhan : Nota
Masalah : Sering terjadi kesalahan dalam penginputan data barang.
Usulan : Mempermudah pecatatan nota yang berupa sebuah form sebagai
rangkaian transaksi dari pelanggan.

f. Kebutuhan : Laporan Penjualan


Masalah : Tidak jelasnya berapa jumlah dan total harga barang yang terjual
atau rincian penjualan rincian.
Usulan : Disediakannya informasi laporan penjualan barang dan data
mentah dalam bentuk berkas komputer yang menginformasikan
rincian penjualan barang yang terjadi dalam perusahaan.
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 Laporan

Gambar 3. 5
Package Diagram
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

<<include>>

Entri Nota Cetak Nota


Bagian Penjualan

Gambar 3. 7
Use Case Diagram Transaksi
c. Use Case Diagram Pengiriman

<<include>>

Entri SJ Cetak SJ
Bagian Penjualan

Gambar 3. 8
Use Case Diagram Pengiriman
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 : Entri Data Pelanggan
Actor : Bagian Penjualan
Deskripsi :
 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

2) Entri Data Barang


Use Case : Entri Data Barang
Actor : Bagian Penjualan
Deskripsi :
 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

3) Entri Data Kendaraan


Use Case : Entri Data Kendaraan
Actor : Bagian Penjualan
Deskripsi :
 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 : Bagian Penjualan, Pelanggan
Deskripsi :
 baca file Nota ambil No_Nota, Tgl_Nota dan Kd_Plg
 baca file Pelanggan ambil Kd_Plg
 Print Nota
<<include>>
Use Case : Entri Nota
Actor : Bagian Penjualan
Deskripsi :
 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

c. Deskripsi Use Case Pengiriman

2) Cetak Surat Jalan


Actor : Bagian Penjualan, Pelanggan
Deskripsi :
 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

<<include>>
Use Case : Entri SJ
Actor : Bagian Penjualan, Pelanggan
Deskripsi :
 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 :

1 M M N
Pelanggan Buat Nota Isi Barang
* Kd_Plg 1 * No_Nota * No_Nota M * Kd_Brg
* Kd_Plg Tgl_Nota * Kd_Brg Nm_Brg
Nm_Plg * No_Nota Harga_Jual Satuan
Almt_Plg Har_Sat
Telp Jml_Jual Stok

Kirim
* Kd_Brg
* No_SJ
Jml_Kirim

N
M
Dapat SJ

* No_Nota M * No_SJ
* 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 :

1 M M N
Pelanggan Buat Nota Isi Barang
* Kd_Plg * Kd_Plg 1 * No_Nota * No_Nota M * Kd_Brg
Nm_Plg * No_Nota Tgl_Nota * Kd_Brg Nm_Brg
Harga_Jual Satuan
Almt_Plg Jml_Jual Har_Sat
Telp Stok

Kirim
* Kd_Brg
* No_SJ
Jml_Kirim

N
Dapat M SJ
M * No_SJ
* No_Nota Tgl_SJ
* No_SJ

Ada
* No_SJ
* No_Pol

1
Kendaraan
* No_Pol
Jns_Kendaraan

Gambar 4. 2
Transformasi ERD ke LRS
c. Logical Record Structure

Pelanggan Nota Isi Barang


Kd_Plg No_Nota Kd_Brg
Kd_Plg No_Nota No_Nota Kd_Brg
Nm_Plg Tgl_Nota Kd_Brg Nm_Brg
Almt_Plg Kd_Plg Harga_Jual Satuan
Telp Jml_Jual 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

Harga_Jual
No_Nota

Kd_Brg
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 : Pelanggan


Media : Harddisk
Isi : Data Pelanggan
Organisasi : Index Sequential
Primary Key : Kd_Plg
Panjang Record : 127 Byte
Jumlah Record : 3100 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 Kd_Plg Text 5 - Kode Pelanggan
2 Nm_Plg Text 30 - Nama Pelanggan
3 Almt_Plg Text 80 - Alamat Pelanggan
4 Telp Text 12 - Telepon Pelanggan

Tabel 4. 1
Tabel Spesifikasi Basis Data Pelanggan

2) Nama file : Barang


Media : Harddisk
Isi : Data Barang
Organisasi : Index Sequential
Primary Key : Kd_Brg
Panjang Record : 57 Byte
Jumlah Record : 3100 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 Kd_Brg Text 5 - Kode Barang
2 Nm_Brg Text 30 - Nama Barang
3 Satuan Text 10 - Satuan Barang
4 Har_sat Currency 8 byte - Harga Satuan Barang
5 Stok Number 4 byte - Stok Barang

Tabel 4. 2
Tabel Spesifikasi Basis Data Barang
3) Nama file : Kendaraan
Media : Harddisk
Isi : Data Kendaraan
Organisasi : Index Sequential
Primary Key : No_Pol
Panjang Record : 30 Byte
Jumlah Record : 9 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 No_Pol Text 10 - Nomor Polisi Kendaraan
2 Jns_kendaraan Text 20 - Jenis Kendaraan

Tabel 4. 3
Tabel Spesifikasi Basis Data Kendaraan

4) Nama file : Isi


Media : Harddisk
Isi : Data barang – barang yang dipesan
Organisasi : Index Sequential
Primary Key : No_Nota + Kd_Brg
Panjang Record : 25 Byte
Jumlah Record : 450000 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 No_Nota Text 8 - Nomor Nota
2 Kd_Brg Text 5 - Kode Barang
3 Harga_Jual Currency 8 byte - Harga satuan barang
yang dijual
4 Jml_Jual Number 4 byte - Jml barang yang dijual

Tabel 4. 4
Tabel Spesifikasi Basis data Isi
5) Nama file : Nota
Media : Harddisk
Isi : Data pembayaran dari pelanggan
Organisasi : Index Sequential
Primary Key : No_Nota
Panjang Record : 21 Byte
Jumlah Record : 90000 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 No_Nota Text 8 - Nomor Nota
2 Tgl_Nota Date / Time 8 - Tanggal Nota
3 Kd_Plg Text 5 - Kd_Plg

Tabel 4. 5
Tabel Spesifikasi Basis Data Nota

6) Nama file : SJ
Media : Harddisk
Isi : Data Pengiriman Barang
Organisasi : Index Sequential
Primary Key : No_SJ
Panjang Record : 36 Byte
Jumlah Record : 90000 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 No_SJ Text 8 - Nomor Surat Jalan
2 Tgl_SJ Date / Time 8 - Tanggal Surat Jalan
3 No_Nota Text 8 - Nomor Nota
4 No_Pol Text 10 - Nomor Polisi

Tabel 4. 6
Tabel Spesifikasi Basis Data Surat Jalan
7) Nama file : Kirim
Media : Harddisk
Isi : Data Barang yang dikirim
Organisasi : Index Sequential
Primary Key : Kd_Brg + No_SJ
Panjang Record : 12 Byte
Jumlah Record : 388800 Record
Strukture :

No Nama Field Jenis Lebar Desimal Keterangan


1 Kd_Brg Text 7 - Kode barang
2 No_SJ Text 5 - Nomor Surat Jalan
3 Jml_Kirim Single - - 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 : Nota


Fungsi : Tanda bukti penagihan
Media : Kertas dan Harddisk
Distribusi : Pelanggan dan Arsip
Rangkap : 2 (dua)
Frekuensi : Setiap melakukan penagihan
Volume : 10 / hari
Format : Lampiran – C1
Keterangan : Semua data yang kurang pada dokumen berjalan sudah dilengkapi.

b. Surat Jalan

Nama Keluaran : Surat Jalan


Fungsi : Tanda bukti pengiriman barang
Media : Kertas dan Harddisk
Distribusi : Pelanggan dan Arsip
Rangkap : 2 (dua)
Frekuensi : Setiap melakukan pengiriman
Volume : 12 / hari
Format : Lampiran – C2
Keterangan : Semua data yang kurang pada dokumen berjalan sudah dilengkapi.

c. Laporan Penjualan

Nama Keluaran : Laporan Penjualan


Fungsi : Mengetahui penjualan selama sebulan
Media : Kertas dan Harddisk
Distribusi : Pimpinan dan Bagian penjualan
Rangkap : 2 (dua)
Frekuensi : Setiap menerima pelunasan
Volume : 1 / bulan
Format : Lampiran – C3
Keterangan : 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 : Data Pelanggan


Sumber : Pelanggan
Fungsi : Mengetahui data pelanggan
Media : Kertas
Rangkap : 1 (satu)
Frekuensi : Setiap ada pelanggan baru
Volume : 3 / bulan
Format : Lampiran D - 1
Keterangan : 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 : Data Kendaraan


Sumber : Pimpinan
Fungsi : Mengetahui jumlah kendaraan yang ada diperusahaan
Media : Kertas
Rangkap : 1 (Satu)
Frekuensi : Setiap ada melakukan kendaraan baru
Volume : -
Format : Lampiran – D3
Keterangan : Untuk mempermudah pengidentifikasi data kendaraan
d. Nota

Nama Masukan : Entri Nota


Sumber : Pelanggan
Fungsi : Mengetahui jumlah barang yang terjual
Media : Kertas
Rangkap : 1 (Satu)
Frekuensi : Setiap melakukan penjualan
Volume : -
Format : Lampiran – D4
Keterangan : Untuk mempermudah pengidentifikasi jumlah barang yang terjual

e. Surat Jalan

Nama Masukan : Entri Surat Jalan


Sumber : Staf Penjualan
Fungsi : Mengetahui jumlah barang yang dikirim
Media : Kertas
Rangkap : 1 (Satu)
Frekuensi : Setiap melakukan pengiriman
Volume : -
Format : Lampiran – D5
Keterangan : Untuk mempermudah pengidentifikasi jumlah barang yang terkirim
5. Rancangan Dialog Layar

a. Struktur Tampilan

Rancangan Sistem Informasi Penjualan Tunai

Pada Toko Besi & Kaca Subur

Dengan Metodologi Berorientasi Obyek

File Master Transaksi Pengiriman Laporan

Entri Data Entri Nota Surat Jalan Lap.Penjualan


Pelanggan

Entri Data Lap.Pengiriman


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

: Bagian Penjualan : Form Pelanggan : Control Pelanggan : Pelanggan

Open Form ()

Input Pelanggan ()

get Pelanggan ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 25
Sequence Diagram Entri Data Pelanggan
: Bagian Penjualan : Form Barang : Control Barang : Barang

Open Form ()

Input Barang ()

get Barang ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 26
Sequence Diagram Entri Data Barang
: Bagian Penjualan : Form Kendaraan : Control Kendaraan : Kendaraan

Open Form ()

Input Kendaraan ()

get Kendaraan ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 27
Sequence Diagram Entri Data Kendaraan
: Control Nota : Nota : Pelanggan : Barang : Isi
: Bagian Penjualan : Form Cetak Nota

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
: Pelanggan : Kendaraan : Barang : Isi : SJ : Kirim
: Form Cetak SJ : Control SJ : Nota
: Bagian Penjualan

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)

input (Kd_Brg)
Loop
input (Kd_Brg)
get (Kd_Brg)

get (Isi)

display (Kd_Brg, Nm_Brg)

display (Jml_Jual)

simpan SJ () get(Jml_kirim)

simpan SJ ()
simpan Kirim ()

cetak (SJ)
cetak (SJ)

Gambar 4. 29
Sequence Diagram Entri Surat Jalan
: Control Lap.Penjualan : Nota : Pelanggan : Barang : Isi
: Bagian Penjualan : Form Lap.Penjualan

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
: SJ : Nota : Pelanggan : Isi : Barang : Kendaraan
: Bagian Penjualan : Form Lap.Pengiriman : Control Lap.Pengiriman

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
: Control Lap.Kendaran : Surat_Jalan : Kendaraan : Pelanggan : Nota
: Bagian Penjualan : Form Lap.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
7. Rancangan Class Diagram (Entity, Boundary, & Control Class)

a. Entity Class Diagram

Isi
-Harga_jual
-Jml_Jual
+get Isi ()

Barang
Pelanggan
Nota -Kd_Brg (PK)
-Kd_Plg (PK) -Nm_Brg
-Nm_Plg 1 1..* -No_Nota (PK) 1..* 1..* -Satuan
-Almt_Plg -Tgl_Nota -Har_Sat
-Telp Buat +get Nota () -Stok
+get Pelanggan () +simpan Nota () +get Barang()
+Save() +Save()
1
1..*

Kirim
-Kd_Brg
-No_SJ
Da -Jml_Kirim
pa
t +get Kirim()

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 ()
Form Entry Kendaraan
Save ()
Input Kendaraan ()
Form Entry Pelanggan Save ()

Input Pelanggan ()
Save ()

Menu Utama Form Entry Surat Jalan

Input Surat Jalan ()


Form Entry Nota Display Surat Jalan ()
Display Nota ()
Input Nota () Display Kirim ()
Display Nota() Display Pelanggan ()
Display Isi ()
Display Pelanggan () Simpan Surat Jalan ()
Display Isi () Cetak Surat Jalan ()
Display Barang ()
Simpan Nota ()
Cetak Nota ()

Form Laporan Kendaraan


Form Laporan Penjualan Input Periode ()
Form Laporan Pengiriman
Display Surat Jalan ()
Input Periode () Display kendaraan ()
Display Nota() Input Periode () Cetak Laporan Kendaraan()
Display Pelanggan () Display Surat Jalan ()
Display Barang () Display Pelanggan ()
Display Isi () Display Barang ()
Cetak Laporan Penjualan () Display Isi ()
Cetak Laporan Pengiriman ()

Gambar 4. 34
Boundary Class
c. Control Class

Control Pelanggan Control Barang Control Kendaraan


Input Pelanggan () Input Barang () Input Kendaraan ()
Save () Save () Save ()

Control Nota Control Surat Jalan Control Lap.Penjualan

Input Nota () Input Surat Jalan () Input Periode ()


Hitung Jumlah () Hitung Jumlah () Hitung Jumlah ()
Hitung Total () Hitung Total () Hitung Total ()
Cetak Nota () Cetak Surat Jalan () Cetak Lap.Penjualan ()

Control Lap.Pengiriman Control Lap.Kendaraan

Input Periode () Input Periode ()


Hitung Jumlah () Hitung Jumlah ()
Hitung Total () Hitung Total ()
Cetak Lap.Pengiriman () Cetak Lap.Kendaraan ()

Gambar 4. 35
Control Class
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 Beli Jumlah

Lampiran A – 3
Laporan Penjualan
Lampiran B – 1
Pemesanan
No Nama Jumlah Harga Satuan Jumlah
Barang Jual Satuan
99 X – 30 - X 999 999999 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 Nomor Tanggal Nota Nama Alama Nama Jumlah Harga Satuan Jumlah

mor Nota Pelanggan t Barang Jual


99 X– 8 – X dd/mm/yyyy X– 30 – X X– 80 – X X– 30 – X 999 999999 99,999,999

99 X– 8 – X 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 Nomor Nama Nomor Kode Nama Jumlah


Polisi
SJ SJ Nota Pelanggan Barang Barang 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 Jenis Tanggal SJ Alamat


Polisi Kendaraan 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 Kode Pelanggan Nama Pelanggan Alamat Pelanggan Telepon


99 X–5–X X – 30 – X X – 80 – X 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 Kode Barang Nama Barang Satuan Harga Satuan Stok


99 X–5–X X – 30 – X X – 10 – X 999999 999

99 X–5-X X – 30 - X X – 10 - X 999999 999

Lampiran D – 2
Rancangan Masukan Data Barang
Data Kendaraan

No. No.Polisi Jenis Kendaraan


99 X – 10 – X X – 20 – X

99 X – 10 - X X – 20 - X

Lampiran D – 3
Rancangan Masukan Data Kendaraan
No Nama Jumlah Harga Satuan Jumlah
Barang Jual Satuan
99 X – 30 - X 999 999999 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 , , "Kode Barang", 1450


lsvDetail.ColumnHeaders.Add , , "Nama Barang", 3000
lsvDetail.ColumnHeaders.Add , , "Harga Satuan", 1700
lsvDetail.ColumnHeaders.Add , , "Stok", 900
lsvDetail.ColumnHeaders.Add , , "Jumlah Jual", 1700
lsvDetail.ColumnHeaders.Add , , "Jumlah", 2200
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
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 Pelanggan As New ctrlPelanggan


Dim Surat_Jalan As New ctrlSuratJalan
Dim rsSurat_Jalan As New ADODB.Recordset
Dim Nota As New ctrlNota
Dim Isi As New ctrlNota
Dim Kirim As New ctrlSuratJalan
Dim Kendaraan As New ctrlKendaraan
Dim rsKendaraan As New ADODB.Recordset
Dim Barang As New ctrlBarang
Dim lv As ListItem
Dim 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) = rsNota.Fields(6).value


' lv.SubItems(2) = rsNota.Fields(9).value
' lv.SubItems(3) = rsNota.Fields(7).value
' lv.SubItems(4) = rsNota.Fields(8).value

lv.SubItems(1) = rsNota.Fields(5).value
lv.SubItems(2) = rsNota.Fields(8).value
lv.SubItems(3) = rsNota.Fields(6).value
lv.SubItems(4) = rsNota.Fields(7).value

rsNota.MoveNext
I=I+1
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) = rsNota.Fields(6).value


' lv.SubItems(2) = rsNota.Fields(7).value
' lv.SubItems(3) = rsNota.Fields(8).value
' lv.SubItems(4) = rsNota.Fields(9).value

lv.SubItems(1) = rsNota.Fields(5).value
lv.SubItems(2) = rsNota.Fields(8).value
lv.SubItems(3) = rsNota.Fields(6).value
lv.SubItems(4) = 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(, , "No", 1550)
Set ch = ListView1.ColumnHeaders.Add(, , "Kode Barang", 4100)
Set ch = ListView1.ColumnHeaders.Add(, , "Nama Barang", 2260)
Set ch = ListView1.ColumnHeaders.Add(, , "Satuan", 2010)
Set ch = ListView1.ColumnHeaders.Add(, , "Jumlah Jual", 1400)
ListView1.GridLines = True
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).SubItems(4),
lsvDetail.ListItems(I).Text)
Next

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 '==== No Aktiv ====
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


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 No_SJ, Tgl_SJ, No_Nota, No_Pol, Jml_Jual, Jml_Kirim, Kd_Brg As String


Dim rsSuratJalan As ADODB.Recordset
Dim rsKirim As ADODB.Recordset
Dim 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

You might also like