Skripsi Hasbi OO_2

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

description

skripsi uml

Transcript of Skripsi Hasbi OO_2

Page 1: Skripsi Hasbi OO_2

RANCANGAN SISTEM INFORMASI PENJUALAN TUNAIPADA TOKO BESI & KACA SUBUR

DENGAN METODOLOGI BERORIENTASI OBYEK

Oleh :

MOHAMMAD HASBI FIRMANNIM : 0422300019

UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI

JAKARTA

SEMESTER GASAL2007/2008

Page 2: Skripsi Hasbi OO_2

RANCANGAN SISTEM INFORMASI PENJUALAN TUNAIPADA TOKO BESI & KACA SUBUR

DENGAN METODOLOGI BERORIENTASI OBYEK

TUGAS AKHIR

Diajukan untuk memenuhi persyaratanguna memperoleh gelar Ahli Madya

Oleh :

MOHAMMAD HASBI FIRMANNIM : 0422300019

UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI

JAKARTA

SEMESTER GASAL2007/2008

Page 3: Skripsi Hasbi OO_2
Page 4: Skripsi Hasbi OO_2

ABSTRAKSI

Toko Besi & Kaca Subur adalah sebuah badan usaha yang didirikan pada tahun1983, bergerak dalam bidang usaha penjualan bahan bangunan. Maka dalam setiap harinyadiperlukan pencatatan data - data transaksi penjualan.

Adapun sistem pengolahan data penjualan pada Toko Besi & Kaca Subur saat inimasih dilakukan secara manual, baik dalam pengolahan data, pengecekan, pencatatan,maupun penyimpanan data transaksi, serta sering terjadi keterlambatan dalam pembuatanlaporan dan terjadi kesalahan penghitungan penjualan data barang yang dipesan.

Untuk mengatasi masalah tersebut, maka diperlukan suatu sistem terkomputerisasipenjualan yang sesuai untuk mendukung kesuksesan pemasaran dan perusahaan. Sistemtersebut diusulkan agar dapat mengatasi permasalahan atau kendala pada sistem yangberjalan. Dengan memanfaatkan sistem yang diusulkan ini secara benar, kemungkinanpengawasan atau kontrol terhadap pemrosesan order barang menjadi lebih mudah, efektifdan efisien, serta dapat meningkatkan keuntungan yang maksimal bagi perusahaan.

Page 5: Skripsi Hasbi OO_2

KATA PENGANTAR

Puji syukur penulis panjatkan kehadirat Allah SWT atas berkat rahmat dan karunianya,yang telah dilimpahkan kepada penulis sehingga pada akhirnya dapat menyelesaikan skripsiini. Skripsi ini ditulis dan disusun bertujuan untuk memenuhi salah satu persyaratan yangdiwajibkan bagi calon sarjana yang akan menempuh Tugas Akhir Diploma Tiga (D - 3) padaFakultas Teknologi Informasi Universitas Budi Luhur Jakarta.

Skripsi dengan judul “Rancangan Sistem Penjualan Tunai pada Toko Besi & Kaca Suburdengan Metodologi Berorientasi Objek” ini, data – data yang terdapat didalamnya diperolehdari hasil riset dan observasi yang penulis laksanakan khususnya pada Toko Besi & KacaSubur

Penulis menyadari sepenuhnya bahwa penyusunan skripsi ini jauh dari sempurna, masihbanyak kekurangan dan banyak sekali ditemukan kelemahan – kelemahan karenaketerbatasan kemampuan penulis. Pada kesempatan ini dengan penuh rasa hormat yangmendalam 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 kesabaranmembantu 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, Mirandateman – teman yang ada di Universitas Budi Luhur dari semester satu sampai sekarangyang kenal sama Firman yang tidak bisa disebut satu persatu dan yang telahmemberikan dukungan moril untuk penulis dalam menyelesaikan skripsi.

11. Seluruh rekan-rekan yang secara langsung maupun tidak langsung yang telah turutmembantu penulis dalam pembuatan skripsi, terima kasih atas semuanya aku tidak akanbisa tanpamu teman (Thank’s!).

Page 6: Skripsi Hasbi OO_2

Akhirnya akan menjadi suatu kegembiraan bagi penulis apabila skripsi ini dapat bergunaserta bermanfaat bagi banyak pihak khususnya perusahaan yang menggunakan sistempenjualan tunai, atau mungkin juga dapat digunakan sebagai sumbangan kecil yangmerupakan sumber inspirasi bagi yang membutuhkan.

Jakarta, Januari 2008

Penulis

Page 7: Skripsi Hasbi OO_2

DAFTAR GAMBAR

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

Page 8: Skripsi Hasbi OO_2

Gambar 4.28 : Sequence Diagram Entry Data Kendaraan ........................................ 75Gambar 4.29 : Sequence Diagram Entry Nota......................................................... 76Gambar 4.30 : Sequence Diagram Entry Surat Jalan ............................................... 77Gambar 4.31 : Sequence Diagram Laporan Penjualan ............................................. 78Gambar 4.32 : Sequence Diagram Laporan Pengiriman ........................................... 79Gambar 4.33 : Sequence Diagram Laporan Kendaraan............................................ 80Gambar 4.34 : Entity Class Diagram....................................................................... 81Gambar 4.35 : Boundary Class .............................................................................. 82Gambar 4.36 : Control Class .................................................................................. 83

Page 9: Skripsi Hasbi OO_2

DAFTAR LAMPIRAN

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

Page 10: Skripsi Hasbi OO_2

DAFTAR TABEL

HalamanTabel 4.1 : Tabel Spesifikasi Basis Data Pelanggan ............................................ 51Tabel 4.2 : Tabel Spesifikasi Basis Data Barang ................................................. 51Tabel 4.3 : Tabel Spesifikasi Basis Data Kendaraan............................................ 52Tabel 4.4 : Tabel Spesifikasi Basis Data Isi ........................................................ 52Tabel 4.5 : Tabel Spesifikasi Basis Data Nota .................................................... 53Tabel 4.6 : Tabel Spesifikasi Basis Data Surat Jalan ........................................... 53Tabel 4.7 : Tabel Spesifikasi Basis Data Surat Kirim ........................................... 54

Page 11: Skripsi Hasbi OO_2

DAFTAR SIMBOL

Simbol Use Case Diagram

Use CaseMenggambarkan proses sistem kebutuhan sistem dari sudutpandang user

ActorMenggambarkan orang atau sistem yang menyediakan ataumenerima informasi dari sistem

<<include>> Association IncludeMenggambarkan pemanggilan use case oleh use case lain, arahpanah tidak boleh kearah base atau parent use case

<<extend>Association ExtendMenggambarkan perluasan dari use case diagram arah panahtidak boleh kearah extending use case

Association AktifMenggambarkan bagaimana actor terlibat dalam use case

NoteMenggambarkan dokumentasi dari use case

Simbol Activity Diagram

Start PointMenggambarkan permulaan dari sebuah sistem yang akandikerjakan, biasanya terletak pada pojok kiri atas

End PointMenggambarkan akhir dari sebuah sistem

Page 12: Skripsi Hasbi OO_2

AssociationMenggambarkan hubungan antara initial node activities fork,decision point dan activity final node dalam sebuah sistem

ActivityMenggambarkan aktivitas yang dilakukan pada sistem.

ForkMenggambarkan sebuah activity yang berjalan secarabersamaan, biasanya mempunyai 1 transisi masuk dan duaatau lebih transisi keluar atau bisa lebih transisi masuk danhanya satu transisi keluar

Decision PointMenggambarkan hubungan transisi sebuah garis dari atau kedecision point

SwimlaneMenggambarkan sebuah cara untuk mengkelompokan activity

Simbol Class Diagram

ClassPenggambaran dari class name, atribut atau property atau datadan method atau function atau behavior

AssociationMenggambarkan hubungan antara initial node, activities, fork,decision point dan activity final node dalam sebuah sistem

AgregationMenggambarkan perluasan dari class

Class

-Atribute

+Method()

Page 13: Skripsi Hasbi OO_2

Generalisasi / InheritanceMenggambarkan satu atau sekumpulan class mewarisi atributatau method dari suatu class

Sequence Diagram

Actor ObjectMenggambarkan pihak yang melakukan interaksi atau yangmemicu sistem untuk berfungsi

Boundary ObjectMenggambarkan obyek yang menjadi interface

Control ObjectMenggambarkan obyek yang menjadi control sistem

Entity ObjectMenggambarkan obyek yang berupa enitas

Page 14: Skripsi Hasbi OO_2

LifeTimeMenggambarkan eksekusi obyek selama sequence (Messagedikirim atau diterima dan aktifitasnya)

Excecution OccurrenceMenunjukkan fokus kontrol obyek pada suatu waktu

MessageMenggambarkan komunikasi yang terjadi antar obyek

Simbol Diagram Hubungan Entitas

EntityMenggambarkan kumpulan objek yang angota – anggotanyaberperan dalam sistem (Set Entitas)

RelationshipMenggambarkan sehimpunan hubungan antara objek yangdibangun (Relationship)

Garis PenghubungMenghubungkan atribut dengan setentitas, dan set entitas denganrelation ship - set

Suplier SPTerima1 M CardinalityMenggambarkan tingkat hubunganyang terjadi, dilihat dari suatukejadian atau banyak tidaknyahubungan antar entitas tersebut

Page 15: Skripsi Hasbi OO_2

DAFTAR ISI

HalamanAbtraksi ................................................................................................................ iKata Pengantar ...................................................................................................... iiDaftar Gambar ...................................................................................................... ivDaftar Lampiran .................................................................................................... viDaftar Tabel .......................................................................................................... viiDaftar Simbol ........................................................................................................ viiiDaftar Isi .............................................................................................................. xii

BAB I PENDAHULUAN1. Latar Belakang ................................................................................. 12. Masalah ........................................................................................... 13. Tujuan Penulisan .............................................................................. 24. Ruang Lingkup / Batasan Masalah ..................................................... 25. Metode Penelitian ............................................................................. 26. Sistematika Penulisan ....................................................................... 3

BAB II LANDASAN TEORI1. Konsep Dasar Sistem ......................................................................... 52. Konsep Dasar Informasi..................................................................... 63. Konsep Dasar Sistem Informasi ......................................................... 64. Analisa Sistem................................................................................... 85. Perancangan Sistem .......................................................................... 96. Konsep Dasar Berorientasi Obyek ....................................................... 107. Analisa dan Perancangan Berorientasi Obyek ...................................... 11

BAB III ANALISA SISTEM1. Tinjauan Organisasi .......................................................................... 222. Uraian Prosedur ............................................................................... 253. Analisa Proses ................................................................................. 294. Analisa Keluaran................................................................................ 295. Analisa Masukan................................................................................ 306. Indentifikasi Kebutuhan ..................................................................... 317. Package Diagram .............................................................................. 338. Use Case Sistem Usulan..................................................................... 349. Deskripsi Use Case ............................................................................ 38

Page 16: Skripsi Hasbi OO_2

BAB IVRANCANGAN SISTEM1. Rancangan Basis Data ....................................................................... 41

a. Entity Relationship Diagram ......................................................... 41b. Transformasi Diagram ERD ke LRS ............................................... 42c. LRS ........................................................................................... 43d. Normalisasi ................................................................................. 44e. Spesifikasi Basis Data .................................................................. 51

2. Rancangan Antar Mukaa. Rancangan Dokumen Keluaran .................................................... 56b. Rancangan Dokumen Masukan .................................................... 58c. Struktur Tampilan........................................................................ 60d. Rancangan Layar......................................................................... 61

3. Sequence Diagram ........................................................................... 734. Rancangan Class Diagram ................................................................. 78

a. Entity Class ................................................................................ 81b. Boundary Class .......................................................................... 82c. Control Class .............................................................................. 83

BAB V PENUTUP1. Kesimpulan ...................................................................................... 842. Saran ............................................................................................... 84

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

Lampiran A : Keluaran Sistem Berjalan .................................................... 86Lampiran B : Masukan Sistem Berjalan .................................................... 89Lampiran C : Rancangan Keluaran ........................................................... 90Lampiran D : Rancangan Masukan .......................................................... 95Lampiran E : Surat Keterangan Riset

Page 17: Skripsi Hasbi OO_2

Bab IPENDAHULUAN

1. Latar Belakang

Dalam era globalisasi dengan tingkat perkembangan yang semakin maju danmodern, kebutuhan akan teknologi informasi sekarang ini memang menjadi salah satufaktor yang ikut mendukung bagi pertumbuhan dan perkembangan suatu perusahaanyang handal. Dan ketidak lancaran pengelolaan suatu informasi dapat mengakibatkankekacauan dalam pengambilan keputusan, pengendalian operasional serta perencanaanteknis dan strategis. Dikarenakan oleh kelebihan – kelebihan yang dimiliki oleh teknologitersebut yaitu dalam pengolahan data dan penghematan waktu yang digunakan untukmemprosesnya, dibandingkan dengan menggunakan cara lama yaitu secara manual.

Dengan adanya kebutuhan informasi yang semakin lama meningkat makadiperlukannya suatu sistem yang baik dan cepat. Suatu sistem dikatakan baik apabilaakan memudahkan semua proses, salah satunya dengan jalan komputerisasi. Pemakaiankomputer sebagai alat pengolah data dapat dikatakan yang terbaik untuk saat ini, Karenadapat meningkatkan kecepatan pekerjaan sehingga dicapai efisiensi tenaga dan waktudalam mengelola data.

Ada beberapa hal yang dapat menimbulkan kendala pada suatu sistem penjualantunai yang dijalankan secara manual, diantaranya adalah cenderung akan membuatjenuh, karena data harus dicatat dan diproses berulang kali dan banyaknya jumlah datayang harus diolah, kerumitan dalam pemrosesan suatu data, terbatasnya waktu yangdigunakan dalam mengolah data, dan data yang beraneka ragam. Dengan demikiankemungkinan kesalahan perhitungan akan lebih besar oleh karena itu perlu dukungansuatu sistem penjualan yang terkomputerisasi.

Demikian juga dirasakan oleh Toko Besi & Kaca Subur perusahaan yang bergerakdibidang penjualan bahan – bahan bangunan.

2. Masalah

Pada Toko Besi & Kaca Subur dalam pengolahan data sistem penjualan tunaimasih 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 lamadalam pencatatan data serta masalah informasi atau laporan yang kurangmemadai.

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.

Page 18: Skripsi Hasbi OO_2

3. Tujuan Penulisan

Tujuan penulisan tugas akhir ini adalah untuk membuat suatu rancangan sisteminformasi penjualan barang yang terkomputerisasi untuk membantu menyelesaikanmasalah yang ada dalam sistem manual yang sedang berjalan saat ini sehinggadiharapkan Toko Besi & Kaca Subur dapat : Meningkatkan kinerja unit usaha melalui ketetapan waktu penjualan barang

dengan perkiraan jumlah yang sesuai sehingga tidak mengurangi hilangnyapeluang 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 permasalahandengan menitik beratkan hanya pada sistem penjualan tunai yang meliputi pembuatan notapenjualan dan surat jalan serta dengan pembuatan laporan – laporan yang dibutuhkan olehpimpinan sebagai bahan pertimbangan. Pembayaran akan dilakukan satu kali dan sesuaidengan tanggal yang telah disepakati oleh pelanggan dan bagian penjualan.

5. Metode Penelitian

Mengenai metode penulisan yang dilakukan ada beberapa metode yang tercantumdibawah ini, yaitu :

a. Wawancara (Interview)Merupakan suatu kegiatan percakapan yang direncanakan dan bermanfaat untukmencapai tujuan tertentu. Kegiatan ini dilakukan dengan mewawancarai langsungpihak – pihak yang berwenang di Toko Besi & Kaca untuk melengkapi data – data.

b. ObservasiPenulis melakukan observasi pertama kali yaitu dengan melihat secara langsungcara kerja bagian yang terkait dengan pencatatan hasil – hasil kegiatan yangdilakukan, setelah itu penulis diberikan kesempatan untuk melihat sistem yangbekerja dalam pengolahan data dalam pembelian.

c. Studi PustakaDalam penulisan ini tidak terlepas dari data – data yang terdapat dari buku – bukuyang menjadi refrensi seperti pedoman penulisan skripsi, diktat dan buku – bukulain yang dapat berhubungan dengan penyusunan skripsi ini sebagai landasan teoriuntuk menyelesaikan masalah yang dihadapi.

Page 19: Skripsi Hasbi OO_2

d. Analisa SistemKegiatan yang dilakukan tahap ini yaitu menganalisa sistem yang ada yaitumempelajari 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 prosesbisnis dan urutan aktifitas didalam suatu proses.

2) ERD (Entity Relational Diagram)Merupakan alat yang dapat mempresentasikan hubungan yang terjadi antarasatu atau lebih komponen sistem.

e. Rancangan SistemTahapan perancangan sistem adalah merancang sistem secara rinci, berdasarkanhasil analisa sistem yang ada, sehingga menghasilkan model baru yang akandiusulkan, dengan disertai rancangan database dan spesifikasi program. Alat – alatyang dipergunakan didalam tahap analisa sistem adalah sebagai berikut :1) LRS (Logical Record Structure)

Terdiri dari link – link diantara tipe record, link ini menunjukkan arah darisatu tipe record lainnya.

2) RelasiDigunakan untuk mendefinifikan dan mengilustrasikan model konseptualsecara terperinci dengan adanya primary key.

3) NormalisasiUntuk mengorganisasikan file dengan menghilangkan group elemen yangberulang atau sebuah langkah atau proses untuk menyederhanakanhubungan elemen data didalam table (record)

4) Spesifikasi Basis DataUntuk menjelaskan tipe data yang ada pada model konseptual secara detail.

6. Sistematika Penulisan

Penulisan perancangan ini terdiri dari beberapa bab. Keseluruhan bab ini berisi uraiantentang usulan pemecahan masalah secara berurutan. Uraian berikut ini adalah uraiansingkat mengenai bab – bab tersebut :Bab I PENDAHULUAN

Pada bab ini akan diuraikan hal – hal yang berhubungan dengan latarbelakang, masalah, tujuan penulisan, ruang lingkup/batasan masalah,metode penelitian dan sistematika penulisan.

Bab II LANDASAN TEORIBab ini merupakan landasan teori dari penyusunan penulisan ini yangmembicarakan tentang pengertian Konsep Dasar Sistem, Konsep DasarInformasi, Konsep Dasar Sistem Informasi, Analisa Sistem, PerancanganSistem, Analisa Berorientasi Objek, Perancangan Berorientasi Objek danSistem Penjualan.

Page 20: Skripsi Hasbi OO_2

Bab III ANALISA SISTEMBab ini menceritakan tentang Tinjauan Organisasi, Uraian Prosedur, AnalisaKeluaran, Analisa Masukan, Analisa Proses, Identifikasi Kebutuhan, PackageDiagram, Use Case Usulan dan Deskripsi Use Case.

Bab IV RANCANGAN SISTEMBab ini menjelaskan mengenai rancangan umum sistem informasi yangpenulis 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 SARANPada kesimpulan ini akan diuraikan kesimpulan dan saran yang dapatdilakukan dan dikerjakan dalam usaha dimasa mendatang untukmenghasilkan sistem yang optimal.

Page 21: Skripsi Hasbi OO_2

Bab IILANDASAN TEORI

Pada bab ini berisi penjelasan tenteng kategori yang menjadi landasan dalampenyusunan skripsi ini. Dan secara garis besar akan di jelaskan mengenai pengertian –pengertian dan konsep – konsep dasar yang akan digunakan dalam perancangan sistemyang akan dibuat dalam skripsi ini.

1. Konsep Dasar SistemPada dasarnya sistem ini merupakan sesuatu yang memiliki bagian – bagian

atau komponen yang saling berinteraksi untuk mencapai tujuan tertentu denganmelalui tiga tahapan, yaitu : input, process dan output.

Menurut Jogiyanto (2003 : 34) sistem dapat didefinisikan denganpendekatan prosedur dan dengan pendekatan komponen. Ia juga mengungkapkanbahwa :

“Dengan pendekatan prosedur, sistem dapat didefinisikan sebagai kumpulandari prosedur – prosedur yang mempunyai tujuan tertentu, contoh dari sistem iniadalah sistem akuntansi. Pada sistem dapat didefinisikan sebagai kumpulan dariprosedur – prosedur penerimaan kas, pengeluaran kas, penjualan, pembelian danbuku besar. Sedang kan dengan pendekatan komponen, sistem yang dapatdidefinisikan sebagai kumpulan dari komponen yang saling berhubungan satudengan yang lainnya membentuk satu kesatuan untuk mencapai tujuan tertentu,contohnya adalah sistem komputer. Pada sistem ini dapat didefinisikan sebagaikumpulan dari perangkat lunak dan perangkat keras”

Jadi dari pendefinisian diatas dapat diambil suatu pengertian bahwa, suatusistem dapat didefinisikan sebagai suatu kesatuan atau kumpulan yang terdiri daridua atau lebih komponen yang saling berinteraksi untuk mencapai tujuan.

Suatu hal akan layak dikatakan sebuah sistem jika telah memenuhi delapankarakteristik 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).

Page 22: Skripsi Hasbi OO_2

2. Konsep Dasar InformasiInformasi merupakan bagian yang sangat penting dalam suatu organisasi.

Informasi sangat dibutuhkan oleh setiap manajemen dalam pengambilan sebuahkeputusan, karena kegunaan informasi adalah untuk mengurangi ketidakpastiandalam proses pengambilan keputusan tentang suatu keadaan.

Informasi (information) adalah data yang diolah menjadi bentuk yangberguna 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 dankesatuan yang nyata. Kejadian – kejadian yang dimaksud adalah sesuatu yangterjadi pada saat tertentu sedangkan kesatuan yang nyata (fact) adalah berupasuatu objek nyata seperti tempat, benda dan orang yang betul – betul ada danterjadi.

Namun data yang diolah saja belum tentu cukup menjadi suatu informasi.Untuk menjadi suatu informasi maka data yang diolah tersebut selain harusberguna 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 pemakaiannyakarena relevansi suatu informasi untuk tiap – tiap orang satu dengan yanglainnya berbeda – beda.

b. Tepat waktu (timeliness)Tepat waktu, berarti informasi yang dating pada penerima informasi tidakboleh terlambat. Karena informasi yang sudah usang tidak mempunyai nilailagi.

c. Tepat nilainya atau akurat (accurate)Akurat, berarti informasi harus bebas dari kesalahan – kesalahan. Akurat jugaberarti informasi harus jelas mencerminkan maksudnya.

Keluaran yang tidak didukung oleh ketiga pilar tersebut tidak dapatdikatakan sebagai informasi yang berguna, tetapi merupakan sampah (garbage).

3. Konsep Dasar Sistem InformasiSistem Informasi merupakan suatu sistem didalam suatu organisasi yang

sekarang peranannya tidak hanya sebagai pengumpul data dan mengolahnyamenjadi informasi berupa laporan – laporan keuangan saja, tetapi mempunyaiperanan yang lebih penting di dalam menyediakan informasi bagi manajemenuntuk menentukan tindakan yang diambil.

Page 23: Skripsi Hasbi OO_2

Sistem informasi dapat terdiri dari komponen – komponen yang disebutdengan 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 disinitermasuk 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 yangakan memanipulasi data masukan dan data yang tersimpan didasar datadengan cara yang sudah tertentu untuk menghasilkan keluaran yangdiinginkan.

c. Blok Keluaran (Output Block)Produk dari Sistem Informasi adalah keluaran yang merupakan informasi yangberkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemenserta 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 keluarandan membantu pengendalian dari sistem keseluruhan. Teknologi terdiri daridua 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 satudengan yang lainnya,tersimpan diperangkat keras komputer dan digunakanperangkat 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 bahwahal – hal yang dapat merusak sistem dapat dicegah atau pun bila terlanjurterjadi kesalahan dapat langsung cepat diatasi.

Page 24: Skripsi Hasbi OO_2

4. Analisa SistemAnalisa sistem dapat dinyatakan sebagai pemisahan suatu hal dalam bagian

– bagian tertentu. Bagian – bagian tersebut kemudian dipelajari dan dievakuasiuntuk menngetahuiapakah terdapat cara – cara yang lebih baik untuk memenuhikebutuhan 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 sistemitu diimplementasikan”

Adapun langkah – langkah dalam analisa sistem (system analysis) adalahsebagai berikut :a. Analisa Pendahuluan

Dalam analisa pendahuluan ini dilakukan pengumpulan informasi untukmemperoleh gambaran secara menyeluruh mengenai tempat yang akan kitaanalisa. Untuk ini analisa sistem menganbil lembar kerja untuk mengumpulkaninformasi yang dikumpulkan dalam analisa pendahuluan. Dari studipendahuluan ini dapat diperoleh hasil pemahaman sistem secara awal,perkiraan biaya yang dibutuhkan dan waktu yang diperlukan untukpengembangan sistem tersebut.

b. Studi KelayakanSetelah studi pendahuluan dilakukan, langkah berikutnya adalah

melakukan studi kelayakan (feasibility study). Manfaat dari studi adalahpeningkatan pengambilan keputusan manajemen, manfaat peningkatankepuasan pelanggan, manfaat dari segi ekonomis dan manfaat – manfaat yanglain sebagainya.

c. Mengidentifikasi permasalahan dari kebutuhan pemakaiLangkah selanjutnya adalah mengidentifikasi masalah disistem yang

lama supaya dapat diperbaiki disitem yang baru. Mengidentifikasi masalahdapat dilakukan dengan mengidentifikasi penyebab masalah yang merupakansumber dari permasalahan yang harus diperbaiki. Pelaksanaan analisa sistemdirancang oleh sistem analis dalam suatu dokumen tertulis tersebut adalahuntuk mempertemukan pikiran pemakai informasi dengan analis sistemmengenai pekerjaan pengmbangan sistem yang akan dilaksanakan ole analisuntuk memenuhi kebutuhan pemakai informasi.

d. Memahami sistem yang adaSetelah diketahui sumber dan tempat permasalahannya, langkah

selanjutnya adalah memahami sistem yang ada untuk mendapatkan data danmenganalisis permasalahannya. Memahami sistem dapat dilakukan denganmelakukan penelitian untuk mendapatkan data tentang sistem yang ada.Penelitian dapat dilakukan dengan langkah – langkah sebagai berikut :

Page 25: Skripsi Hasbi OO_2

1. Menentukan jenis penelitiannya, apakah berupa wawancara, observasi,survei, atau pengambilan contoh. Wawancara ini dilakukan dalam rangkamendapatkan data dan informasi dalam bentuk Tanya jawab kepadabeberapa karyawan yang ditunjuk dan mengetahui tentang objekpenelitian. Observasi diperlukan untuk melihat secara langsung ke lokasipenelitian, survei atau pengambilan sample diperlukan bila memangdibutuhkan data yang kongkrit tentang penelitian untuk diujikan.

2. Merencanakan jadwal penelitian3. Membuat penugasan penelitian4. Melakukan hasil penelitian5. Mengumpulkan hasil penelitian

e. Menganalisa hasil penelitianSetelah penelitian dilakukan dan hasil penelitian dikumpulkan langkah

selanjutnya adalah menganalisis hasil penelitian tersebut. Menganalisispenelitian terdiri dari menganalisis kelemahan sistem yang lama danmenganalisis kebutuhan informasi pemakai. Menganalisis kelemahan sistemyang lama dimaksudkan untuk menemukan penyebab sebenarnyapermasalahan – permasalahan yang terjadi yang menyebabkan sistem yanglama tidak berfungsi dengan baik. Menganalisis kebutuhan informasi pemakaiperlu dilakukan untuk menghasilkan informasi yang relevan.

5. Perancangan SistemSetelah tahap analisa sistem adalah tahap perancangan sistem (system

design). Tahap perancangan sistem mempunyai dua tujuan utama, yaitu sebagaiberikut :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 untukdikomunikasikan kepada user atau pemakai. Secara umum sebagai berikut :a. Perancangan Model

Rancangan model dari sistem informasi yang diusulkan dalam bentukfisik dan model logika. Bagan alur sistem merupakan alat yang tepat untukmenggambarkan sistem fisik. Model logika dari sistem informasi lebihmenjelaskan pada user, bagaimana nantinya fungsi – fungsi dari sisteminformasi secara logika akan bekerja. Model logika akan digambarkan denganmenggunakan sequence diagram.

b. Perancangan KeluaranKeluaran merupakan produk dari sistem informasi yang dapat dilihat.

Istilah keluaran dapat terdiri dari berbagai jenis. Yang dimaksud keluaran darirancangan sistem ini adalah keluaran yang berupa tampilan dimedia kertasatau layar komputer.

Page 26: Skripsi Hasbi OO_2

c. Perancangan MasukanAlat masukan dapat dikategorikan kedalam 2 golongan yaitu alat input

langsung dan alat input tidak langsung. Alat input langsung berupa alat yanglangsung dihubungkan ke CPU (Central Processing Unit) sedang alat masukantidak langsung adalah alat yang tidak langsung dihubungkan ke CPU.

d. Perancangan Basis DataBasis data merupakan kumpulan dari data yang berhubungan satu

dengan yang lainnya. Data tersebut tersimpan disimpanan luar komputer dandipergunakan 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. Secaraspesifik, pengertian “berorientasi objek” (Ariesto Hadi Sutopo, 2002 : 3) berartibahwa “kita mengorganisasi perngkat lunak sebagai kumpulan dari objek tertentuyang memiliki struktur data dan perilakunya”.

Terdapat beberap cara untuk menetukan karakteristik dalam pendekatanberorientasi objek, tetapi secara umum mencakup empat hal, yaitu identifikasi,klasifikasi, polymorphism (polimorfisme) dan inheritance (pewarisan).

Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristikutama, yaitu :a. Encapsulation

Encapsulation (pengkapsulan) merupakan dasar untuk pembatasan ruanglingkup program terhadap data yang diproses.

b. InheritanceInheritance (pewarisan) adalah tehnik yang menyatakan bahwa anak dariobjek akan mewarisi data/atribut dan metode dari induknya langsung. Sifatyang dimiliki oleh kelas induknya tidak perlu diulang dalam setiap sub-kelasnya.

c. PolymorphismPolymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa sesuatuyang sama dapat mempunyai bentuk dan perilaku berbeda.

Unified Modelling LanguageUnified Modelling Language (UML) adalah sebuah “bahasa” yang telah

menjadi standar dalam industri untuk visualisasi, merancang danmendokumentasikan piranti lunak. UML menawarkan sebuah standar untukmerancang model sebuah sistem.

Dengan menggunakan UML kita dapat membuat model untuk sebuah jenisaplikasi piranti lunak,dimana apalikasi tersebut dapat berjalan dalam piranti keras,sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrogramanapapun. Tetapi karena UML juga menggunakan class dan operation dalam konsepdasarnya, maka ia lebih cocok untuk penulisan piranti dalam bahasa – bahasaberorientasi objek. Notasi UML terutama diturunkan dari 3 notasi yang telah adasebelumnya : Grady Booch OOD(Object – Oriented Design), Jim Rumbaugh OMT

Page 27: Skripsi Hasbi OO_2

(Object Modelling Technique), dan Ivar Jacobson OOSE (Object – OrientedSoftware Engineering).

Tujuan utama UML diantarnya adalah untuk : Memberikan model yang siap pakai, bahasa permodelan visual yang

ekspresif untuk mengembangkan dan saling menukar model denganmudah dan dimengerti secara umum.

Memberikan bahasa permodelan yang bebas dari berbagai bahasapemrograman dan proses rekayasa.

Menyatukan prakte – praktek terbaik yang terdapat dalampermodelan.

Cakupan UML diantaranya : Pertama, UML menggabungkan konsep BOOCH,OMT dan OOSE, sehingga UML merupakan suatu bahasa permodelan tunggal yangumum dan digunakan secara luar oleh para user ketiga metode tersebut danbahkan para user metode lainnya. Kedua, UML menekankan pada apa yang dapatdikerjakan dengan metode – metode tersebut. Ketiga, UML berfokus pada suatubahasa permodelan standar, bukan pada proses standar.

Untuk membuat suatu model, UML mendefinisikan diagram – diagramberikut ini : Use Case Diagram Class Diagram Behaviour Diagram

o Statechart Diagramo Activity Diagram

Interaction Diagramo Sequence Diagramo 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 dibutuhkansperti use case diagram, activity diagram, class diagram dan beberapa lagi yangdigunakan pada masing – masing proses analisa dan perancangan.

7. Analisa dan perancangan Berorientasi ObjekDalam 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 sekitardunia nyata. Dasar pembuatan adalah objek yang merupakan kombinasi antarstruktur data dan perilaku dalam satu entitas.

Pengertian Object – oriented analysis adalah Metode analisa yangmemeriksa requirements dari sudut pandang class dan object.

Page 28: Skripsi Hasbi OO_2

Analysis berorientasi objek atau Object – oriented analysis (OOA) dimulaidengan menyatakan suatu masalah, analisa membuat suatu model situasi daridunia nyata, menggambarkan sifat yang penting. Model analisis adalahabstraksi yang ringkas dan tepat dari apa yang harus dilakukan oleh sistemdan bagaimana melakukannya.

Analisis berorientasi objek memiliki lima aktifitas utama dalampendekatannya, yaitu :

1) Menentukan kelas dan objek2) Identifikasi Struktur3) Identifikasi Subjek4) Menentukan Atribut5) Menentukan Metode

Terdapat tujuh macam tujuan dan keuntungan dari analisis BerorientasiObjek, 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 objeksebagai berikut :

1) Use Case DiagramUse Case Diagram menggambarkan sebuah fungsionalitas yang

diharapkan dari sebuah sistem dan bagaimana sistem berinteraksi dengandunia luar. Yang ditekankan dalam Use Case Diagram adalah ”apa” yangdiperbuat sistem, dan bukan “bagaimana” sistem itu melakukannya.

Sebuah Use Case mempresentasikan sebuah interaksi antara actordengan sistem. Use Case Diagram juga menjelaskan manfaat sistem jikadilihat menurut pandangan orang yang berada diluar sistem (actor). UseCase 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 yangmenyediakan informasi atau menerima informasi dari sistem. DalamUse Case Diagram terdapat satu aktor pemulai atau initiator actoryang membangkitkan rangsangan awal terhadap sistem, dan mungkin

Page 29: Skripsi Hasbi OO_2

sejumlah aktor lain yang berpartisipasi atau participating actor akansangat berguna untuk mengetahui siapa aktor pemulai tersebut.Actor dinotasikan seperti dibawah ini :

New Class

Gambar 2. 1Simbol dari Actor

b) Use CaseUse case menggambarkan perilaku, termasuk didalamnya interaksi

antara actor dengan sistem. Use case dibuat berdasarkan keperluanactor, merupakan “apa” yang dikerjakan sistem bukan “bagaimana”sistem mengerjakannya. Setiap use case harus diberi nama yangmenyatakan apa hal yang dicapai dari hasil interaksinya dengan actor.Nama use case boleh terdiri dari beberapa kata dan tidak boleh adadua use case yang memiliki nama yang sama.

New Use Case

Gambar 2. 2Simbol 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 padasalah satu ujungnya yang menunjukkan arah relasi.

Ada empat jenis relasi / asosiasi yang dapat timbul pada use casediagram, yaitu :(1). Asosiasi antara actor dan use case

Ujung panah association antara actor dan use casemengindikasikan siapa / apa yang meminta interaksi danbukannya mengindikasikan aliran data.

Page 30: Skripsi Hasbi OO_2

Sebaiknya gunakan tanpa tanah untuk associaton antaraactor dan use case.

associaton antara actor dan use case yang menggunakanpanah terbuka untuk mengindikasikan bila actor berinteraksisecara pasif dengan sistem.

Relasi / asosiasi antara actor dengan use case :

N ew C lassNewUseCase

Gambar 2. 3Relasi antara actor dengan use case

(2). Asosiasi antara Use Case Relasi antara use case dengan use case :

1. Include, menggambarkan suatu use case termasuk didalamuse case lain (diharuskan). Contohnya adalah pemangagilansebuah fungsi program.Digambarkan dengan garis lurus berpanah dengan tulisan<<include>>.Sebagai contoh :

Nasabah

Buka rekening Catat Data Pribadi

<<include>>

Gambar 2. 4Simbol include

Page 31: Skripsi Hasbi OO_2

2. Extend, digunakan ketika hendak menggambarkan variasipada kondisi perilaku normal dan menggunakan lebihbanyak control forn dan mendeklarasikan ekstension padause case utama atau dengan kata lain adalah perluasan dariuse case lain jika syarat atau kondisi terpenuhi.Digambarkan dengan garis lurus berpanah dengan tulisan<<extend>>.Sebagai contoh :

Nasabah

Buka rekening

Buka Deposito

<<extend>>

Gambar 2. 5Simbol extend

3. Generalization / Inheritance, digambarkan dengan garislurus berpanah tertutup dari base use case ke parent usecase.

Gambar 2. 6Simbol panah Generalization

Page 32: Skripsi Hasbi OO_2

(3). Generalization / Inheritance antara Use CaseGeneralization dipakai ketika ada sebuah perilaku khusus

(single condition) dan merupakan pola hubungan base – parentuse case. Digambarkan dengan generalization / inheritanceantar use case secara vertical dengan inheriting use casedibawah base / parent use case.

Nasabah

Buka rekening

Buka Deposito

Gambar 2. 7Generalization antar use case

(4). Generalization / Inheritance antara ActorsDigambarkan generalization / Inheritance antara Actors

secara vertical dengan inheriting actor dibawah base / parentsuse case.

Page 33: Skripsi Hasbi OO_2

Student

enroll seminar

enroll family member

international student

enroll international student

enroll student

<<include>>

<<extend>>

Gambar 2. 8Generalization 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 mungkinterjadi, dan bagaimana mereka berakhir. Oelh karena itu activity diagramtidak menggambarkan behaviour internal sebuah sistem (dan interaksiantar subsistem) secara eksak, tetapi lebih menggambarkan proses –proses dan jalur – jalur aktifitas dari level atas secara umum. Avtivitydiagram dibuat berdasarkan sebuah atau beberapa use case pada usecase 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 menyelesaikanaktifitasnya.

Swimlane, merupakan pengelompokan aktifitas berdasarkan actor

Page 34: Skripsi Hasbi OO_2

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 HadiSutopo 2002 : 244)

Tahap – tahap yan dilakukan dalam perancangan berorientasi objeksebagai berikut :

1) Perancangan Basis DataMerupakan tahap merancang basis data yang akan diterapkan oleh

sistem.a) Permodelan Data Konseptual (Coseptual Data Modelling)

Model konseptual merupakan artifact yang paling penting yangharus dibuat sepanjang proses analisis berorientasi objek. Modelkonseptual merupakan sebuah gambaran mengenai konsep – konsepdi dalam domain masalah.

Dalam UML, suatu model konseptual digambarkan dengandiagram sturktur statis yang mana didalamnya tidak terdapatpenjelasan mengenai operasi – operasi. Model konseptualmenitikberatkan fokus pada domain konsep – konsep bukan padaentitas – entitas software.

b) Spesifikasi Basis DataBasis data adalah kumpulan dari data – data yang saling

berinteraksi. Sedangkan sistem basisdata adalah suatu sistempenyusunan dan pengelolaan record – record dengan menggunakankomputer dengan tujuan untuk menyimpan atau merekam sertamelihat dat operasional lengkap pada sebuah organisasi atauperusahaan, sehingga mampu menyediakan informasi optimal yangdiperlukan 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 menekankandimensi waktu atau peran masing – masingnya. Model diagram inimerupakan perilaku dinamis (dynamic behaviour) dari sistem.

UML mempunyai dua jenis diagram untuk interaction diagram iniyaitu sequence diagram dan collaboration diagram namun yang dipakaidalam penulisan skripsi ini hanya sequence diagram.

Sequence diagram (diagram urutan) menggambarkan interaksi antarobjek di dalam dan di sekitar sistem (termasuk pengguna, dan sebagainya)berupa message yang digambarkan terhadap waktu. Sequence diagramterdiri atasdimensi vertical (waktu) dandimensi horisontal (objek – objekyang terkait).

Page 35: Skripsi Hasbi OO_2

Sequence diagram biasanya digunakan untuk menggambarkanscenario atau rangkaian langkah – langkah yang dilakukan sebagai respondari 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 berorientasiobjek. Class menggambarkan keadaan (atribut / properti) suatu sistem,sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut(metode / fungsi).

Class diagram menggambarkan struktur dan deskripsi class, packagedan 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 harusmengetahui eksistensi kelas lain. Panah navigability menunjukkan arahquery 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 asalnyadan menambahkan fungsionalitas baru, sehingga ia disebut anak darikelas yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.

Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passingdari satu kelas kepada kelas lain.

+Kuliah ()+Cuti()

#Nim-Nama-Alamat

Mahasiswa Class NameAtribut /

Property /Data

Methode /Function /Behaviour

Gambar 2. 9Simbol Class

Page 36: Skripsi Hasbi OO_2

4) Diagram Komponen (Component Diagram)Component diagram menggambarkan struktur dan hubungan antar

komponen piranti lunak, termasuk ketergantungan (dependency) diantaranya. Komponen piranti lunak adalah modul berisi code, baik berisisource code maupun binary code, baik library maupun executable, baikyang muncul pada compile time, link time, maupun arun time. Umumnyakomponen terbentuk dari beberapa class dan atau package, tapi dapatjuga dari komponen – komponen yang lebih kecil.

Komponen dapat juga berupa interface, yaitu kumpulan layananyang disediakan sebuah komponen lain.

Gambar 2. 10Simbol komponen

5) Diagram Arsitektur Sistem (Deployment Sytem)Deployment diagram menggambarkan arsitektur sistem dan

bagaimana komponen di-deploy dalam infrastruktur sistem, dimanakomponen 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 yangdigunakan untuk men-deploy komponen dalam lingkungan sebenarnya.

Gambar 2. 11Symbol Deployment

Page 37: Skripsi Hasbi OO_2

6) NormalisasiProses pengelompokkan atribut dari suatu relasi sehingga

membentuk Well Structure Relation, normalisasi merupakan sebuah teknikdalam logical design sebuah database.

Well Structure Relation adalah sebuah relation yang jumlahkerangkapan datanya sedikit serta memberikan kemungkinan bagi useruntuk melakukan insert, delete, dan modify baris – baris data pada relationtersebut yang tidak berakibat terjadinya error atau inkonsistensi data biladilakukan update pada relasi maka disebut ANOMALY, updating terhadaprelation tersebut akan menimbulkan tiga jenis anomaly yaitu1) INSERTION ANOMALY

Error yang terjadi sebagai akibat operasi insert record atau tupplepada sebuah relation.

2) DELETION ANOMALYError yang terjadi sebagai akibat operasi delete record atau tupplepada sebuah relation.

3) UPDATE ANOMALYError yang terjadi sebagai akibat inkonsistensi data yang terjadisebagai akibat dari operasi update record atau tupple pada sebuahrelation.

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 (repetitionfield) agar menjadi satu harga tunggal yang berinteraksi diantarasetiap baris dan kolom pada suatu table.

2) Normalisasi bentuk kedua (Second Normal Form atau 2 NF) yaitutabel tersebut sudah terbentuk 1 NF dan diantara non-prime harusfully function dependency terhadap setiap atribut prime.

3) Normalisasi bentuk ketiga (Third Normal Form atau 3 NF) yaitusuatu relasi telah berada pada 3 NF bila sudah berada 2 NF dan setiapatributnya yang bukan key tidak tergantung terhadap atribut lainkecuali terhadap primary key.

4) Normalisasi Boyce – code Normal Form (BCNF) yaitumenghilangkan beberapa sisa keganjilan dari hasil normalisasi bentukkedua 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) yaitumenghilang kan sisa kegajian yang masih ada.

Page 38: Skripsi Hasbi OO_2

Bab IIIANALISA SISTEM

1. Tinjauan Organisasi

a. Sejarah OrganisasiBadan 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 dikelolaoleh Bapak Amrul, ST. Berkat keuletan dan kesabaran serta usahanya selama ini akhirnyaperusahaan itu berkembang dengan pesat dan jumlah konsumen yang terus bertambah.Toko Besi & Kaca Subur ini merupakan distributor bahan – bahan bangunan, dimana merekamenjual langsung kepada konsumen.

b. Struktur OrganisasiOrganisasi ini dapat diartikan sebagai cara dimana kegiatan orang dikoordinasikan untuk

mencapai suatu tujuan. Dalam organisasi yang besar dan kompleks (rumit), tujuannyabiasanya dibagi dalam beberapa sub tujuan atau tujuan antara, dimana masing ditugaskankepada bebagai sub unit organisasi.

Setiap sub bagian bisa dibagi lebih lanjut kedalam sub tujuan – sub tujuan yanglebih kecil lagi dan seterusnya ke bawah sampai pada tingkat struktur organisasipaling 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 banyakgaris (rank) antara tingkat tertinggi dan tingkat terendah dari suatu unit organisasi.Rentang pengendalian menunjukan banyaknya bawahan yang melaporkan kepadaseorang atasan.

Struktur organisasi adalah suatu susunan pembagian tanggung jawab menurutfungsi dan hiralkis. Penyusunan struktur organisasi dengna demikian harusmemperhitungkan semua fungsi yang ada dalam perusahaan dan demikian harusmembagi habis fungsi – fungsi tersebut kepada pihak – pihak yang harusmempertanggung jawabkannya.

Organisasi juga dapat diibaratkan sebagai kesatuan anggota tubuh manusia yangbekerja sama sehingga fungsi tubuh manusia dapat berjalan sesuai dengan yangdiharapkan. Begitu pula dengan organisasi yang ada pada Toko Besi & Kaca Suburyang masing – masing bagian saling bekerja sama untuk mencapai tujuan yangsama.

Page 39: Skripsi Hasbi OO_2

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 melaksanakansemua tahap suatu transaksi dari awal sampai akhir.

Untuk lebih jelas mengenai struktur organisasi yang terdapat pada Toko Besi & KacaSubur, dapat dilihat pada gambar 3. 1 dibawah ini

Gambar 3. 1Sturktur Organisasi

Toko Besi & Kaca Subur

Untuk lebih jelasnya tugas, wewenang, serta tanggung jawab maupun fungsinyadiuraikan sebagai berikut :

1) Pimpinan

Tugas dan tanggung jawab antara lain :a) Sebagai pimpinan perusahaanb) 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.

Pimpinan

BagianPembelian

BagianPenjualan

BagianPengiriman

Wakil

BagianGudang

Page 40: Skripsi Hasbi OO_2

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 supplierc) 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 barangkepada bagian penjualan. Bagian pengiriman juga bertanggung jawab terhadapbarang akan dibawa selama dalam perjalanan.

Page 41: Skripsi Hasbi OO_2

2. Uraian Prosedur

Dalam sistem berjalan pada Toko Besi & Kaca Subur terdapat beberapa prosedurdalam hal penjualan barang, diantaranya adalah sebagai berikut :

a. Proses PembayaranProses ini dimulai ketika pelanggan memesan barang yang akan dibelinya

dengan datang langsung atau melalui telepon, pemesanan disampaikan secara lisandan ditulis kesebuah nota. Kemudian bagian penjualan akan mengecek barang yangakan dipesan oleh pelanggan apakah sesuai dengan pesanan, apabila sesuai makaterjadi kesepakatan.

Berdasarkan nota yang dibuat dan telah disepakati bersama,maka penjualanmemberikan nota yang berisi tagihan sejuamlah uang yang harus dibayar olehpelanggan.

b. Proses PengirimanSesuai dengan nota yang telah dibuat oleh bagian penjualan, maka bagian

penjualan membuat SJ (Surat Jalan) yang diberikan untuk bagian gudang, kemudianbagian gudang menyiapkan barang yang akan dikirim berdasarkan SJ, kemudianbagian gudang memerintahkan kepada bagian pengiriman mengirim barang yangdisertai SJ kepada pelanggan. Jika ada barang yang tidak sesuai, maka pelanggantidak akan menandatangani SJ tersebut. Jika sesuai maka SJ akan ditandatanganipelanggang dan akan dikirim kembali rangkapnya untuk arsip ke bagian penjualansebagi bukti bahwa barang yang telah diterima oleh pelanggan dengan baik.

c. Proses Pembuatan Laporan PenjualanSebagai bukti pertanggung jawaban kepada pimpinan maka bagian penjualan

membuat laporan penjualan yang akan diserahkan kepada pimpinan setiap 1 bulansekali dan laporan penjualan ini dibuat berdasarkan nota.

Page 42: Skripsi Hasbi OO_2

3. Analisa ProsesDalam analisa proses ini akan dijelaskan semua aktivitas yang dilakukan pada sistem

berjalan melalui activity diagram dibawah ini :

a. Proses Pembayaran

Pesan barang

PelangganBagian Penjualan

start

Terima pesanan

Cek barang

Pesanan disetujui

Buat nota Terima nota

Melakukan pembayaranTerima pembayaran

Stop

[Barang tidak ada]

[Barang ada]

Gambar 3. 2Activity Diagram Proses Pembayaran

Page 43: Skripsi Hasbi OO_2

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

Cek barang

Kirim SJ yang tidak divalidasidan barang yang tidak sesuaiTerima SJ dan barang

[ Tidak sesuai ]

[ Sesuai ]

SJ divalidasiTerima SJ divalidasi

Kirim SJ yang telahdivalidasi

Terima SJ yangtelah divalidasi

Stop

disertaiSJ

Stop

Terima barang dan SJ

Gambar 3. 3Activity Diagram Proses Pengiriman

Page 44: Skripsi Hasbi OO_2

c. Proses Laporan Penjualan

Bagian penjualan Pimpinan

Start

Lihat nota

Buat laporan penjualan Terima laporan

Stop

Gambar 3. 4Activity Diagram Proses Laporan Penjualan

Page 45: Skripsi Hasbi OO_2

4. Analisa Keluaran Sistem Berjalan

Analisa keluaran adalah sistem analisa mengenai keluaran – keluaran yang dihasilkan darisistem penjualan tunai Toko Besi & Kaca Subur adalah sebagai berikut :

a. Notab. SJ (Surat Jalan)c. Laporan Penjualan

Uraian dari keluaran tersebut adalah sebagai berikut :

a. Nota

Nama keluaran : NotaFungsi : Sebagai bukti adanya transaksi penjualan

barang, dokumen yang daftar barang – yang dibeli oleh pelanggan dan sebagai penagihan pembayaran dan sebagai bukti pembayaran.

Media : KertasDistribusi : Pelanggan, arsipRangkap : 2 (dua)Frekuensi : Setiap terjadi transaksi penjualanVolume : 10 / perhariFormat : Lampiran – A2Keterangan : Tidak adanya penomoran yang jelas, sehingga

mempersulit penjualan atau pemesanan barangHasil analisa :

Kurang baik

b. SJ (Surat Jalan)

Nama keluaran : Surat JalanFungsi : Tanda bukti pengiriman barangMedia : KertasDistribusi : Pelanggan, arsipRangkap : 2 (dua)Frekuensi : Setiap hariVolume : 12 / hariFormat : Lampiran – A1Keterangan : Mengetahui pengiriman

barang kepelangganHasil analisa :

Cukup baik

Page 46: Skripsi Hasbi OO_2

c. Laporan Penjualan

Nama keluaran : Laporan PenjualanFungsi : Untuk mengetahui keadaan penjualan yang

terjadi dalam satu periodeMedia : KertasDistribusi : Pemilik TokoRangkap : Satu lembarFrekuensi : BulananVolume : Satu kali per bulanFormat : Lampiran A3Keterangan : Bentuk laporan standar dan detail laporan tidak

tersusun rapiHasil analisa :

Kurang baik

5. Analisa Masukan Sistem Berjalan

a. Pemesanan

Nama keluaran : PemesananFungsi : Sebagai bukti pesanan barang yang akan dibeli

dari pelangganMedia : SuaraDistribusi : PelangganRangkap : -Frekuensi : Setiap terjadinya pesanan barang oleh

pelangganVolume : 20 / perhariFormat : Lampiran B - 1Keterangan : Pesanan disampaikan pelanggan dengan

dengan datang langsung atau melalui telpHasil analisa :

Cukup baik

Page 47: Skripsi Hasbi OO_2

6. Identifikasi Kebutuhan

Berdasarkan hasil analisa dan uraian umum mengenai sistem yang sedang berjalanpada Toko Besi & Kaca Subur, maka dapat di identifikasikan kekurangan yang ada,sehingga pada sistem mendatang dibutuhkan :

a. Kebutuhan : Data PelangganMasalah : Tidak adanya pencatatan data pelanggan yang melakukan

transaksi pemesanan untuk memudahkan dalam pencarianinformasi tentang pelanggan tersebut.

Usulan : Penyediaan informasi tentang pendataan pelanggan yang barasallangsung dari pelanggan.

b. Kebutuhan : Data BarangMasalah : Tidak terkontrolnya stok barang yang ada di gudang, sehingga

sering terjadi kesalahan dalam proses penjualanUsulan : Disediakannya informasi data stok barang yang ada digudang

c. Kebutuhan : Data KendaraanMasalah : 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 JalanMasalah : 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 : NotaMasalah : Sering terjadi kesalahan dalam penginputan data barang.Usulan : Mempermudah pecatatan nota yang berupa sebuah form sebagai

rangkaian transaksi dari pelanggan.

f. Kebutuhan : Laporan PenjualanMasalah : 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.

Page 48: Skripsi Hasbi OO_2

g. Kebutuhan : Laporan pengirimanMasalah : Tidak adanya informasi laporan pemesanan yang diserahkan

kepada pimpinan dalam bentuk laporanUsulan : Disediakan informasi dalam bentuk laporan pemesanan data

mentah dalam bentuk berkas komputer yang menginformasikanrincian pesanan barang dalam satu periode tertentu dalamperusahaan.

h. Kebutuhan : Laporan kendaraanMasalah : Tidak adanya informasi laporan tentang kendaraan yang

diserahkan kepada pimpinan dalam bentuk laporanUsulan : Disediakan informasi dalam bentuk laporan kendaraan data

mentah dalam bentuk berkas komputer yang menginformasikanrincian kendaraan dalam satu periode tertentu dalam perusahaan.

Page 49: Skripsi Hasbi OO_2

7. Package Diagram

Berikut ini adalah Package Diagram sistem usulan berorientasi objek pada Toko Besi& Kaca Subur yang dituangkan pada gambar dibawah ini :

File Transaksi Laporan

Gambar 3. 5Package Diagram

File Master

Page 50: Skripsi Hasbi OO_2

8. Use Case Diagram Sistem Usulan

a. Use Case Diagram File Master

Bagian Penjualan

Entri Data Pelanggan

Entri Data Barang

Entri Data Kendaraan

Gambar 3. 6Use Case Diagram File Master

Page 51: Skripsi Hasbi OO_2

b. Use Case Diagram Transaksi

Entri Nota

<<include>>

Cetak Nota

Bagian Penjualan

Gambar 3. 7Use Case Diagram Transaksi

Page 52: Skripsi Hasbi OO_2

c. Use Case Diagram Pengiriman

Entri SJ

<<include>>

Cetak SJ

Bagian Penjualan

Gambar 3. 8Use Case Diagram Pengiriman

Page 53: Skripsi Hasbi OO_2

d. Use Case Diagram Laporan

Bagian Penjualan

Cetak Laporan Penjualan

Cetak Laporan Pengiriman

Cetak Laporan Kendaraan

Gambar 3. 9Use Case Diagram Laporan

Page 54: Skripsi Hasbi OO_2

9. Deskripsi Use Case

a. Deskripsi Use Case File Master

1) Entri Data PelangganUse Case : Entri Data PelangganActor : Bagian PenjualanDeskripsi :

Entri data pelanggan merupakan kumpulan data – datapelanggan 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 BarangUse Case : Entri Data BarangActor : Bagian PenjualanDeskripsi :

Entri data barang merupakan kumpulan data – data barangyang 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 KendaraanUse Case : Entri Data KendaraanActor : Bagian PenjualanDeskripsi :

Entri data kendaraan merupakan kumpulan data – datakendaraan 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 NotaActor : Bagian Penjualan, PelangganDeskripsi :

baca file Nota ambil No_Nota, Tgl_Nota dan Kd_Plg baca file Pelanggan ambil Kd_Plg Print Nota

Page 55: Skripsi Hasbi OO_2

<<include>>Use Case : Entri NotaActor : Bagian PenjualanDeskripsi :

Entri Nota merupakan kumpulan dari nota pelanggan yangberisi 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 JalanActor : Bagian Penjualan, PelangganDeskripsi :

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 SJActor : Bagian Penjualan, PelangganDeskripsi :

Surat jalan merupakan bukti pengiriman barang yang berisiNo_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 PenjualanUse Case : Cetak Laporan PenjualanActor : Bagian penjualan, Pemilik TokoDeskripsi :

Bagian Penjualan akan membuat laporan penjualanberdasarkan periode tertentu, dan kemudian diserahkankepada pemilik toko

2) Cetak Laporan PengirimanUse Case : Cetak Laporan PengirimanActor : Bagian Penjualan, Pemilik TokoDeskripsi :

Bagian Penjualan akan membuat laporan Pengirimanberdasarkan periode tertentu, dan kemudian diserahkankepada Pemilik Toko

Page 56: Skripsi Hasbi OO_2

3) Cetak Laporan KendaraanUse Case : Cetak Laporan KendaraanActor : Bagian Penjualan, Pemilik TokoDeskripsi :

Bagian Penjualan akan membuat laporan tetang kendaraanberdasarkan periode tertentu, dan kemudian diserahkankepada pemilik toko

Page 57: Skripsi Hasbi OO_2

Bab IVRANCANGAN SISTEM

Setelah mengetahui proses yang dilakukan pada sistem yang ada dan masalah –masalah yang dihadapi, maka langkah selanjutnya yang akan dilakukan adalahmerencanakan 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 Dataa. ER – D (Entity Relationship Diagram)

Untuk memodelkan data digunakan alat bantu berupa ER – Diagram yangdilengkapi dengan atribut dan tingkatan hubungan (Cardinality) yang digambarkandalam gambar dibawah ini :

Pelanggan Nota

Kendaraan

SJ

Barang

* Kd_PlgNm_PlgAlmt_PlgTelp

* Kd_Plg* No_Nota

* No_NotaTgl_Nota

* No_Nota* Kd_Brg

Harga_JualJml_Jual

* Kd_BrgNm_BrgSatuanHar_SatStok

* No_SJTgl_SJ

* No_Nota* No_SJ

* No_SJ* No_Pol

* No_PolJns_Kendaraan

1 M M N

1

M

1

Buat Isi

Ada

Dapat

Kirim* Kd_Brg* No_SJ

Jml_Kirim

MN

M

Gambar 4. 1Entity Relationship Diagram

Page 58: Skripsi Hasbi OO_2

b. Transformasi ER – Diagram ke LRSTransformasi 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 padasebuah LRS setiap field ditulis didalam kotak, dan memiliki sebuah nama unik.

Aturan diatas berlaku, dan sangat dipengaruhi oleh elemen yang menjadi titikperhatian utama pada langkah transformasi, yaitu pada tingkatan hubungannya(cardinality). Cardinality antar entitas (1 : 1, 1 : M, dan M : M) sangat mempengaruhibagaimana transformasi harus dilakukan, transformasi ke Logical Record Structureadalah :1) Untuk Cardinality One to One (1 : 1), maka relasi yang ada digabungkan kesalah

satu entitas yang memiliki atribut lebih sedikit, atau entitas yang membutuhkanreferensi.

2) Untuk Cardinality One to Many (1 : M), maka relasi yang ada digabungkan keentitas yang memiliki cardinality many.

3) Untuk Cardinality Many to Many (M : N), maka relasi yang ada akan menjadisebuah LRS tersendiri.

Untuk ER – Diagram Sistem Informasi Penjualan pada Toko Besi & Kaca Suburproses transformasi dari ER – Diagram ke Logical Record Structure dapat dilihatsebagai berikut :

Pelanggan Nota

Kendaraan

SJ

Barang

* Kd_PlgNm_PlgAlmt_PlgTelp

* Kd_Plg* No_Nota

* No_NotaTgl_Nota

* No_Nota* Kd_Brg

Harga_JualJml_Jual

* Kd_BrgNm_BrgSatuanHar_SatStok

* No_SJTgl_SJ* No_Nota

* No_SJ

* No_SJ* No_Pol

* No_PolJns_Kendaraan

1 M M N

1

M

1

Buat Isi

Ada

Dapat

Kirim* Kd_Brg* No_SJJml_Kirim

M

M

N

Gambar 4. 2Transformasi ERD ke LRS

Page 59: Skripsi Hasbi OO_2

c. Logical Record Structure

Pelanggan

Kd_Plg Nm_Plg

Almt_PlgTelp

Nota

No_Nota Tgl_Nota Kd_Plg

Kd_Plg No_NotaIsi

No_Nota Kd_Brg

Harga_JualJml_Jual

Kendaraan

SJ

Barang

No_PolJns_Kendaraan

No_SJTgl_SJ

No_NotaNo_Pol

Kd_BrgNm_BrgSatuanHar_Sat

Stok

Kd_Brg

No_Nota

No_Pol

Kirim

Kd_BrgNo_SJ

Jml_Kirim

Kd_Brg

No_SJ

Gambar 4. 3Logical Record Structure

Page 60: Skripsi Hasbi OO_2

d. Normalisasi

1) Tabel Pelanggan

Kd_Plg

Nm_Plg

Almt_Plg

Telp

Gambar 4. 4Diagram ketergantungan fungsi tabel pelanggan

Tabel Pelanggan sudah merupakan 1 NF karena sudah tidak terdapat repeatinggroup, yaitu tabel yang tidak memiliki atribut bernilai banyak.

Tabel Pelanggan sudah merupakan 2 NF karena sudah tidak terdapat partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 61: Skripsi Hasbi OO_2

2) Tabel Nota

No_Nota

Tgl_Nota

Kd_Plg

Gambar 4. 5Diagram 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 partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 62: Skripsi Hasbi OO_2

3) Tabel Isi

No_Nota

Kd_BrgJml_Jual

Harga_Jual

Gambar 4. 6Diagram 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 partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 63: Skripsi Hasbi OO_2

4) Tabel Barang

Kd_Brg

Satuan

Har_Sat

Stok

Nm_Brg

Gambar 4. 7Diagram ketergantungan fungsi tabel barang

Tabel Barang sudah merupakan 1 NF karena sudah tidak terdapat repeatinggroup, yaitu tabel yang tidak memiliki atribut bernilai banyak.

Tabel Barang sudah merupakan 2 NF karena sudah tidak terdapat partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 64: Skripsi Hasbi OO_2

5) Tabel SJ

No_SJ

Tgl_SJ

No_Nota

No_Pol

Gambar 4. 8Diagram 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 partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 65: Skripsi Hasbi OO_2

6) Tabel Kirim

Kd_Brg

No_SJJml_Kirim

Gambar 4. 9Diagram 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 partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 66: Skripsi Hasbi OO_2

7) Tabel Kendaraan

No_Pol Jns_Kendaraan

Gambar 4. 10Diagram ketergantungan fungsi tabel kendaraan

Tabel Kendaraan sudah merupakan 1 NF karena sudah tidak terdapat repeatinggroup, yaitu tabel yang tidak memiliki atribut bernilai banyak.

Tabel Kendaraan sudah merupakan 2 NF karena sudah tidak terdapat partialdependency, 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 transitifdependency, yaitu atribut yang bukan key tidak tergantung pada atribut lainselain primary key.

Page 67: Skripsi Hasbi OO_2

e. Spesifikasi Basis Data

Spesifikasi basis data merupakan rinci tiap – tiap relasi tabel / file. Adapunspesifikasi basis data dari sistem penjualan yang diusulkan adalah sebagai berikut :

1) Nama file : PelangganMedia : HarddiskIsi : Data PelangganOrganisasi : Index SequentialPrimary Key : Kd_PlgPanjang Record : 127 ByteJumlah Record : 3100 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 Kd_Plg Text 5 - Kode Pelanggan2 Nm_Plg Text 30 - Nama Pelanggan3 Almt_Plg Text 80 - Alamat Pelanggan4 Telp Text 12 - Telepon Pelanggan

Tabel 4. 1Tabel Spesifikasi Basis Data Pelanggan

2) Nama file : BarangMedia : HarddiskIsi : Data BarangOrganisasi : Index SequentialPrimary Key : Kd_BrgPanjang Record : 57 ByteJumlah Record : 3100 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 Kd_Brg Text 5 - Kode Barang2 Nm_Brg Text 30 - Nama Barang3 Satuan Text 10 - Satuan Barang4 Har_sat Currency 8 byte - Harga Satuan Barang5 Stok Number 4 byte - Stok Barang

Tabel 4. 2Tabel Spesifikasi Basis Data Barang

Page 68: Skripsi Hasbi OO_2

3) Nama file : KendaraanMedia : HarddiskIsi : Data KendaraanOrganisasi : Index SequentialPrimary Key : No_PolPanjang Record : 30 ByteJumlah Record : 9 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 No_Pol Text 10 - Nomor Polisi Kendaraan2 Jns_kendaraan Text 20 - Jenis Kendaraan

Tabel 4. 3Tabel Spesifikasi Basis Data Kendaraan

4) Nama file : IsiMedia : HarddiskIsi : Data barang – barang yang dipesanOrganisasi : Index SequentialPrimary Key : No_Nota + Kd_BrgPanjang Record : 25 ByteJumlah Record : 450000 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 No_Nota Text 8 - Nomor Nota2 Kd_Brg Text 5 - Kode Barang3 Harga_Jual Currency 8 byte - Harga satuan barang

yang dijual4 Jml_Jual Number 4 byte - Jml barang yang dijual

Tabel 4. 4Tabel Spesifikasi Basis data Isi

Page 69: Skripsi Hasbi OO_2

5) Nama file : NotaMedia : HarddiskIsi : Data pembayaran dari pelangganOrganisasi : Index SequentialPrimary Key : No_NotaPanjang Record : 21 ByteJumlah Record : 90000 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 No_Nota Text 8 - Nomor Nota2 Tgl_Nota Date / Time 8 - Tanggal Nota3 Kd_Plg Text 5 - Kd_Plg

Tabel 4. 5Tabel Spesifikasi Basis Data Nota

6) Nama file : SJMedia : HarddiskIsi : Data Pengiriman BarangOrganisasi : Index SequentialPrimary Key : No_SJPanjang Record : 36 ByteJumlah Record : 90000 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 No_SJ Text 8 - Nomor Surat Jalan2 Tgl_SJ Date / Time 8 - Tanggal Surat Jalan3 No_Nota Text 8 - Nomor Nota4 No_Pol Text 10 - Nomor Polisi

Tabel 4. 6Tabel Spesifikasi Basis Data Surat Jalan

Page 70: Skripsi Hasbi OO_2

7) Nama file : KirimMedia : HarddiskIsi : Data Barang yang dikirimOrganisasi : Index SequentialPrimary Key : Kd_Brg + No_SJPanjang Record : 12 ByteJumlah Record : 388800 RecordStrukture :

No Nama Field Jenis Lebar Desimal Keterangan1 Kd_Brg Text 7 - Kode barang2 No_SJ Text 5 - Nomor Surat Jalan3 Jml_Kirim Single - - Jumlah barang

yang dikirim

Tabel 4. 7Tabel Spesifikasi Basis Data Surat Jalan

Page 71: Skripsi Hasbi OO_2

2. Rancangan Kode

1. Nama : PelangganKode Pelanggan Terdiri dari 5 Digit :

o 1 digit awal menyatakan pelanggan ditandai dengan huruf Po 4 digit selanjutnya menyatakan banyaknya pelanggan

2. Nama : BarangKode Barang Terdiri dari 5 Digit :

o 1 digit awal menyatakan Barang ditandai dengan huruf Bo 4 digit selanjutnya menyatakan banyaknya barang

3. Nama : NotaNomor Nota Terdiri dari 8 Digit :

o 8 digit menyatakan banyaknya Nota

4. Nama : Surat JalanNomor Surat Jalan terdiri dari 8 Digit :

o 1 digit awal menyatakan Surat Jalan ditandai dengan huruf Jo 7digit selanjutnya menyatakan banyaknya Surat Jalan

Page 72: Skripsi Hasbi OO_2

3. Rancangan Keluaran

a. Nota

Nama Keluaran : NotaFungsi : Tanda bukti penagihanMedia : Kertas dan HarddiskDistribusi : Pelanggan dan ArsipRangkap : 2 (dua)Frekuensi : Setiap melakukan penagihanVolume : 10 / hariFormat : Lampiran – C1Keterangan : Semua data yang kurang pada dokumen berjalan sudah dilengkapi.

b. Surat Jalan

Nama Keluaran : Surat JalanFungsi : Tanda bukti pengiriman barangMedia : Kertas dan HarddiskDistribusi : Pelanggan dan ArsipRangkap : 2 (dua)Frekuensi : Setiap melakukan pengirimanVolume : 12 / hariFormat : Lampiran – C2Keterangan : Semua data yang kurang pada dokumen berjalan sudah dilengkapi.

c. Laporan Penjualan

Nama Keluaran : Laporan PenjualanFungsi : Mengetahui penjualan selama sebulanMedia : Kertas dan HarddiskDistribusi : Pimpinan dan Bagian penjualanRangkap : 2 (dua)Frekuensi : Setiap menerima pelunasanVolume : 1 / bulanFormat : Lampiran – C3Keterangan : Merupakan sistem usulan dari sistem berjalan yang tidak ada.

Page 73: Skripsi Hasbi OO_2

d. Laporan Pengiriman

Nama Keluaran : Laporan PengirimanFungsi : Untuk memberitahukan kepada pemimpin mengenai barang –

barang apa saja yang dikirim ke pelangganMedia : Kertas dan HarddiskDistribusi : Pimpinan dan Bagian PenjualanRangkap : 2 (dua)Frekuensi : Sebulan sekaliVolume : 1 / bulanFormat : Lampiran – C4Keterangan : Merupakan sistem usulan dari sistem berjalan yang tidak ada.

e. Laporan Kendaraan

Nama Keluaran : Laporan kendaraanFungsi : Untuk memberitahukan kepada pemimpin mengenai kendaraan

Yang ada diToko Besi & Kaca SuburMedia : Kertas dan HarddiskDistribusi : Pimpinan dan Bagian PenjualanRangkap : 2 (dua)Frekuensi : Sebulan sekaliVolume : 1 / bulanFormat : Lampiran C - 5Keterangan : Merupakan sistem usulan dari sistem berjalan yang tidak ada.

Page 74: Skripsi Hasbi OO_2

4. Rancangan Masukan

a. Data Pelanggan

Nama Masukan : Data PelangganSumber : PelangganFungsi : Mengetahui data pelangganMedia : KertasRangkap : 1 (satu)Frekuensi : Setiap ada pelanggan baruVolume : 3 / bulanFormat : Lampiran D - 1Keterangan : Untuk mempermudah pengidentifikasi data pelanggan

b. Data Barang

Nama Masukan : Data BarangSumber : Bagian gudangFungsi : Sebagai masukan untuk menginput data barang baru yang dimiliki

oleh perusahaanMedia : KertasRangkap : 1 (satu)Frekuensi : PerbulanVolume : 2 / per mingguFormat : Lampiran – D2Keterangan : Untuk mempermudah proses penambahan maupun perubahan

terhadap data barang

c. Data Kendaraan

Nama Masukan : Data KendaraanSumber : PimpinanFungsi : Mengetahui jumlah kendaraan yang ada diperusahaanMedia : KertasRangkap : 1 (Satu)Frekuensi : Setiap ada melakukan kendaraan baruVolume : -Format : Lampiran – D3Keterangan : Untuk mempermudah pengidentifikasi data kendaraan

Page 75: Skripsi Hasbi OO_2

d. Nota

Nama Masukan : Entri NotaSumber : PelangganFungsi : Mengetahui jumlah barang yang terjualMedia : KertasRangkap : 1 (Satu)Frekuensi : Setiap melakukan penjualanVolume : -Format : Lampiran – D4Keterangan : Untuk mempermudah pengidentifikasi jumlah barang yang terjual

e. Surat Jalan

Nama Masukan : Entri Surat JalanSumber : Staf PenjualanFungsi : Mengetahui jumlah barang yang dikirimMedia : KertasRangkap : 1 (Satu)Frekuensi : Setiap melakukan pengirimanVolume : -Format : Lampiran – D5Keterangan : Untuk mempermudah pengidentifikasi jumlah barang yang terkirim

Page 76: Skripsi Hasbi OO_2

5. Rancangan Dialog Layar

a. Struktur Tampilan

Gambar 4. 11Struktur Tampilan

Rancangan Sistem Informasi Penjualan Tunai

Pada Toko Besi & Kaca Subur

Dengan Metodologi Berorientasi Obyek

File Master Transaksi Pengiriman Laporan

Entri DataPelanggan

Entri DataBarang

Entri DataKendaraan

Entri Nota Surat Jalan Lap.Penjualan

Lap.Pengiriman

Lap.Kendaraan

Page 77: Skripsi Hasbi OO_2

b. Rancangan Layar

Gambar 4. 12Rancangan Layar Menu Utama

Page 78: Skripsi Hasbi OO_2

Gambar 4. 13Rancangan Layar File Master

Page 79: Skripsi Hasbi OO_2

Gambar 4. 14Rancangan Layar Entri Data Pelanggan

Page 80: Skripsi Hasbi OO_2

Gambar 4. 15Rancangan Layar Entri Data Barang

Page 81: Skripsi Hasbi OO_2

Gambar 4. 16Rancangan Layar Entri Data Kendaraan

Page 82: Skripsi Hasbi OO_2

Gambar 4. 17Rancangan Layar Transaksi

Page 83: Skripsi Hasbi OO_2

Gambar 4. 18Rancangan Layar Entri Nota

Page 84: Skripsi Hasbi OO_2

Gambar 4. 19Rancangan Layar Pengiriman

Page 85: Skripsi Hasbi OO_2

Gambar 4. 20Rancangan Layar Entri Surat Jalan

Page 86: Skripsi Hasbi OO_2

Gambar 4. 21Rancangan Layar Laporan

Page 87: Skripsi Hasbi OO_2

Gambar 4. 22Rancangan Layar Laporan Penjualan

Gambar 4. 23Rancangan Layar Laporan Pengiriman

Page 88: Skripsi Hasbi OO_2

Gambar 4. 24Rancangan Layar Laporan Kendaraan

Page 89: Skripsi Hasbi OO_2

6. Sequence Diagram

: Bagian Penjualan : Form Pelanggan : Control Pelanggan : Pelanggan

Open Form ()

Input Pelanggan ()

get Pelanggan ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 25Sequence Diagram Entri Data Pelanggan

Page 90: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Barang : Control Barang : Barang

Open Form ()

Input Barang ()

get Barang ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 26Sequence Diagram Entri Data Barang

Page 91: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Kendaraan : Control Kendaraan : Kendaraan

Open Form ()

Input Kendaraan ()

get Kendaraan ()

SAVE ()

SAVE ()

SAVE ()

Gambar 4. 27Sequence Diagram Entri Data Kendaraan

Page 92: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Cetak Nota : Control Nota : Nota : Pelanggan : Barang : Isi

Open ()

Input No_Nota

get (No_Nota)

get (Kd_Plg)

get (Kd_Brg)

get (Isi)

display (kd_Plg)

hitung jumlah ()

hitung total ()

hitung sisa ()

cetak Nota ()

simpan Nota ()

display

display sysdate ()

cetak Nota ()

simpan Isi ()

Display (Harga_Jual, Jml_Jual)

Display (Nm_Brg, Satuan, Har_Sat)

Display (Nm_Plg)

Gambar 4. 28Sequence Diagram Entri Nota

Page 93: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Cetak SJ : Control SJ : Nota : Pelanggan : Kendaraan : Barang

Open ()

input(No_SJ)

display (Kd_Brg, Nm_Brg)

display

display sysdate ()

: Isi : SJ

get (No_SJ)

input (No_Nota)input (No_Nota)

get (Kg_Plg)

input(No_Pol)

input(No_Pol)get (No_Pol)

input (Kd_Brg)

input (Kd_Brg)

get (Kd_Brg)

get (Isi)

display (Jml_Jual)

Loop

simpan SJ ()

simpan SJ ()

simpan Kirim ()

cetak (SJ)cetak (SJ)

: Kirim

get(Jml_kirim)

get (No_Nota)

Gambar 4. 29Sequence Diagram Entri Surat Jalan

Page 94: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Lap.Penjualan : Control Lap.Penjualan : Nota : Pelanggan : Barang

Open ()

Input(Periode Awal - Akhir)

: Isi

get (No_Nota, Kd_Plg)

get (Kd_PLg)

get (Kd_Brg)

get (No_Nota, Kd_Brg)

display tanggal cetak ()

Cetak Lap.Penjualan

Cetak Lap.Penjualan

Gambar 4. 30Sequence Diagram Laporan Penjualan

Page 95: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Lap.Pengiriman : Control Lap.Pengiriman : SJ : Nota : Pelanggan

Open ()

: Isi : Barang

get (No_SJ, No_Nota)

get (No_Nota, Kd_Plg)

get(Kd_Plg)

get (No_Nota, Kd_Plg, Jml_Jual)

get (Kd_Brg)

display tanggal cetak ()

cetak Lap.Pengirimancetak Lap.Pengiriman

: Kendaraan

get (No_Pol)

Input(Periode Awal - Akhir)

Gambar 4. 31Sequence Diagram Laporan Pengiriman

Page 96: Skripsi Hasbi OO_2

: Bagian Penjualan : Form Lap.Kendaraan : Control Lap.Kendaran : Surat_Jalan : Kendaraan

Open ()

display tanggal cetak ()

Cetak Lap.Kendaraan

Cetak Lap.Kendaraan

get (No_SJ, Jns_Kendaraan)

get (Jns_Kendaraan, Pelanggan)

: Pelanggan

get (Almt_Plg)

: Nota

Input(Periode Awal - Akhir)

get Nota ()

Gambar 4. 32Sequence Diagram Laporan Kendaraan

Page 97: Skripsi Hasbi OO_2

7. Rancangan Class Diagram (Entity, Boundary, & Control Class)

a. Entity Class Diagram

+get Pelanggan ()+Save()

-Kd_Plg (PK)-Nm_Plg-Almt_Plg-Telp

Pelanggan

+get Nota ()+simpan Nota ()

-No_Nota (PK)-Tgl_Nota

Nota

+get Isi ()

-Harga_jual-Jml_Jual

Isi

+get Barang()+Save()

-Kd_Brg (PK)-Nm_Brg-Satuan-Har_Sat-Stok

Barang

+get SJ()+simpan SJ()

-No_SJ (PK)-Tgl_SJ

SJ

+get Kendaraan()+simpan Kendaraan()

-No_Pol (PK)-Jns_Kendaraan

Kendaraan

1 1..* 1..* 1..*

1

1..*

1

1..*

+get Kirim()

-Kd_Brg-No_SJ-Jml_Kirim

Kirim

1..*

1..*

Buat

Dapat

Ada

Gambar 4. 33Entity Class Diagram

Page 98: Skripsi Hasbi OO_2

b. Boundary Class

Menu Utama

Input Pelanggan ()Save ()

Form Entry Pelanggan

Form Entry Barang

Input Barang ()Save () Form Entry Kendaraan

Input Kendaraan ()Save ()

Form Entry Surat Jalan

Input Surat Jalan ()Display Surat Jalan ()Display Nota ()

Display Pelanggan ()Display Isi ()Simpan Surat Jalan ()Cetak Surat Jalan ()

Form Entry Nota

Input Nota ()Display Nota()Display Pelanggan ()Display Isi ()Display Barang ()Simpan Nota ()Cetak Nota ()

Form Laporan Penjualan

Input Periode ()Display Nota()

Display Barang ()Display Pelanggan ()

Display Isi ()Cetak Laporan Penjualan ()

Form Laporan Pengiriman

Input Periode ()Display Surat Jalan ()Display Pelanggan ()Display Barang ()Display Isi ()

Form Laporan Kendaraan

Input Periode ()

Display kendaraan ()Display Surat Jalan ()

Cetak Laporan Pengiriman ()

Cetak Laporan Kendaraan()

Display Kirim ()

Gambar 4. 34Boundary Class

Page 99: Skripsi Hasbi OO_2

c. Control Class

Control Pelanggan

Input Pelanggan ()Save ()

Control Barang

Input Barang ()Save ()

Control Kendaraan

Input Kendaraan ()Save ()

Control Nota

Input Nota ()Hitung Jumlah ()Hitung Total ()Cetak Nota ()

Input Surat Jalan ()Hitung Jumlah ()

Control Surat Jalan

Hitung Total ()Cetak Surat Jalan ()

Input Periode ()Hitung Jumlah ()Hitung Total ()Cetak Lap.Penjualan ()

Control Lap.Penjualan

Input Periode ()Hitung Jumlah ()Hitung Total ()Cetak Lap.Pengiriman ()

Control Lap.Pengiriman

Input Periode ()Hitung Jumlah ()Hitung Total ()Cetak Lap.Kendaraan ()

Control Lap.Kendaraan

Gambar 4. 35Control Class

Page 100: Skripsi Hasbi OO_2

Bab VPENUTUP

1. Kesimpulan

Setelah menghadapi persoalan yang dihadapi dan juga solusi pemecahan yangditawarkan, 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 pelayananpenjualan dan bentuknya dapat dirancang sesuai dengan keinginan.

b. Dengan proses komputerisasi dapat mempercepat pengolahan data dan pembuatanlaporan, serta informasi yang dihasilkan lebih akurat, cepat, lengkap, sehingga terjadinyakesalahan dapat diperkecil.

c. Penggunaan teknologi komputerisasi membantu dalam menghasilkan keputusan –keputusan yang akurat dan cepat. Sehingga pelayanan terhadap seluruh pelanggandapat meningkat dan semakin membaik.

d. Dengan menggunakan komputer sebagai alat bantu lebih meningkatkan ketelitian danpengendalian yang tinggi dan dapat terpercaya.

e. Penggunaan teknologi komputerisasi menciptakan SDM yang bermutu dan berkualitasserta 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 perkembangandan 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 Tunaisehingga dapat berjalan lebih efektif dan efisien.

c. Dengan penyediaan SDM professional, pelatihan bagi karyawan akan menunjangkemajuan perusahaan.

d. Dengan teknologi komputerisasi, informasi yang dihasilkan lebih akurat, cepat, lengkapdan terpercaya.

e. Bukti – bukti pendukung hendaknya didokumentasikan dengan baik, sehingga tidakmengalami 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 danmembantu 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.

Page 101: Skripsi Hasbi OO_2

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.

Page 102: Skripsi Hasbi OO_2

Lampiran A – 1Surat Jalan

Page 103: Skripsi Hasbi OO_2

Lampiran A – 2Nota

Page 104: Skripsi Hasbi OO_2

No. nota Nama Barang Harga Satuan Beli Jumlah

Lampiran A – 3Laporan Penjualan

Page 105: Skripsi Hasbi OO_2

Lampiran B – 1Pemesanan

Page 106: Skripsi Hasbi OO_2

No NamaBarang

JumlahJual

HargaSatuan

Satuan Jumlah

99

99

X – 30 - X

X – 30 - X

999

999

999999

999999

X – 10 - X

X – 10 - X

99,999,999

99,999,999

99,999,999

Tanda Terima Hormat Kami,

Lampiran C – 1Rancangan Keluaran Nota

P E R H A T I A N !Barang – barang yang sudah dibelitidak dapat dikembalikan/ditukar

Total

Page 107: Skripsi Hasbi OO_2

Tanda Terima, Hormat Kami,

Lampiran C – 2Rancangan Keluaran Surat Jalan

No. Nama Barang Satuan Jumlah Jual

99

99

X – 30 - X

X – 30 - X

X – 10 - X

X – 10 - X

999

999

Page 108: Skripsi Hasbi OO_2

Periode : dd/mm/yyyy s/d dd/mm/yyyy

Jakarta, dd/mm/yyyy

Nomor

NomorNota

Tanggal Nota NamaPelanggan

Alamat

NamaBarang

JumlahJual

Harga Satuan Jumlah

99

99

X– 8 – X

X– 8 – X

dd/mm/yyyy

dd/mm/yyyy

X– 30 – X

X– 30 – X

X– 80 – X

X– 80 – X

X– 30 – X

X– 30– X

999

999

999999

999999

99,999,999

99,999,999

Lampiran C – 3Rancangan Keluaran Laporan Penjualan

Page 109: Skripsi Hasbi OO_2

Periode : dd/mm/yyyy s/d dd/mm/yyyy

Jakarta, dd/mm/yyyy

Nomor NomorSJ

TanggalSJ

NomorNota

NamaPelanggan

NomorPolisi

KodeBarang

NamaBarang

JumlahJual

99

99

X–8–X

X–8–X

dd/mm/yyyy

dd/mm/yyyy

X– 8 – X

X– 8 – X

X– 30 – X

X– 30– X

X– 10 – X

X– 10 – X

X– 20 – X

X– 20 – X

X– 30 – X

X– 30 – X

999

999

Lampiran C – 4Rancangan Keluaran Laporan Pengiriman

Page 110: Skripsi Hasbi OO_2

Periode : dd/mm/yyyy s/d dd/mm/yyyy

Jakarta, dd/mm/yyyy

Nomor NomorPolisi

JenisKendaraan

Tanggal SJ AlamatPelanggan

99

99

X– 10 – X

X– 10 – X

X– 20 – X

X– 20 – X

dd/mm/yyyy

dd/mm/yyyy

X– 80 – X

X– 80 – X

Lampiran C – 5Rancangan Keluaran Laporan Kendaraan

LAPORAN KENDARAAN

Page 111: Skripsi Hasbi OO_2

Data Pelanggan

No Kode Pelanggan Nama Pelanggan Alamat Pelanggan Telepon99

99

X – 5 – X

X – 5 - X

X – 30 – X

X – 30 - X

X – 80 – X

X – 80– X

X – 12 – X

X – 12 – X

Lampiran D – 1Rancangan Masukan Data Pelanggan

Page 112: Skripsi Hasbi OO_2

Data Barang

No Kode Barang Nama Barang Satuan Harga Satuan Stok99

99

X – 5 – X

X – 5 - X

X – 30 – X

X – 30 - X

X – 10 – X

X – 10 - X

999999

999999

999

999

Lampiran D – 2Rancangan Masukan Data Barang

Page 113: Skripsi Hasbi OO_2

Data Kendaraan

No. No.Polisi Jenis Kendaraan99

99

X – 10 – X

X – 10 - X

X – 20 – X

X – 20 - X

Lampiran D – 3Rancangan Masukan Data Kendaraan

Page 114: Skripsi Hasbi OO_2

No NamaBarang

JumlahJual

HargaSatuan

Satuan Jumlah

99

99

X – 30 - X

X – 30 - X

999

999

999999

999999

X – 10 - X

X – 10 - X

99,999,999

99,999,999

99,999,999

Tanda Terima Hormat Kami,

Lampiran D – 4Rancangan MasukanNota

P E R H A T I A N !Barang – barang yang sudah dibelitidak dapat dikembalikan/ditukar

Total

Page 115: Skripsi Hasbi OO_2

Tanda Terima, Hormat Kami,

Lampiran D - 5Rancangan Masukan Surat Jalan

No. Nama Barang Satuan Jumlah Jual

99

99

X – 30 - X

X – 30 - X

X – 10 - X

X – 10 - X

999

999

Page 116: Skripsi Hasbi OO_2

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 IfEnd Sub

Public Sub input_huruf(KeyAscii As Integer) If Not (KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Or KeyAscii >= Asc("A") AndKeyAscii <= Asc("Z") Or KeyAscii = vbKeyBack Or KeyAscii = vbKeySpace) Then Beep KeyAscii = 0 End IfEnd Sub

MENU UTAMA

Private Sub centerchild(frm As Form) frm.Top = (MenuUtama.Height - frm.Height) / 2 frm.Left = (MenuUtama.Width - frm.Width) / 2 frm.ShowEnd Sub

Private Sub MDIForm_Unload(Cancel As Integer) If MsgBox("Apakah Anda Yakin Mau Keluar?", vbYesNo + vbQuestion, "Konfirmasi") =vbYes Then Cancel = 0 Else

Page 117: Skripsi Hasbi OO_2

Cancel = 1 End IfEnd 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 IfEnd Sub

FORM PELANGGANDim Pelanggan As New ctrlPelangganDim rsPelanggan As ADODB.Recordset

Page 118: Skripsi Hasbi OO_2

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 = TrueEnd 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.getKodeAutoEnd 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 IfEnd Sub

Private Sub isiPelanggan()

Page 119: Skripsi Hasbi OO_2

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.SetFocusEnd SubPrivate Sub Form_Load() cmdBatal_Click cmdSimpan.Enabled = False

cmdUbah.Enabled = False cmdHapus.Enabled = False txtKdPlg.Enabled = FalseEnd SubPrivate 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 vbModalEnd SubPrivate Sub txtKdPlg_Change() Pelanggan.cariPelanggan txtKdPlg.Text If txtKdPlg.Text = Pelanggan.getKode() And Pelanggan.getKode() <> "" Then Call isiForm End IfEnd SubPrivate Sub cmdHapus_Click() Pelanggan.Hapus cmdBatal_Click txtNmPlg.SetFocusEnd SubPrivate Sub cmdUbah_Click()

Call isiPelanggan Pelanggan.Ubah cmdBatal_Click

Page 120: Skripsi Hasbi OO_2

txtNmPlg.SetFocusEnd SubPrivate 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 IfEnd SubPrivate Sub txtNmPlg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtAlamat.SetFocus End If Call input_huruf(KeyAscii)End SubPrivate Sub txtTelepon_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If Call input_angka(KeyAscii)End SubPrivate Sub CmdKeluar_Click() Unload MeEnd Sub

FORM BARANG

Dim Barang As New ctrlBarangDim 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

Page 121: Skripsi Hasbi OO_2

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.getKodeAutoEnd 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 IfEnd 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'==============================================================================================

Page 122: Skripsi Hasbi OO_2

'==============================================================================================Private Sub Form_Activate() txtNmBrg.SetFocusEnd SubPrivate Sub Form_Load() cmdBatal_Click cmdHapus.Enabled = False cmdUbah.Enabled = False cmdSimpan.Enabled = False txtKdBrg.Enabled = FalseEnd SubPrivate 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 vbModalEnd SubPrivate Sub txtKdBrg_Change()Barang.cariBarang txtKdBrg.Text If txtKdBrg.Text = Barang.getKode() And Barang.getKode() <> "" Then Call isiForm End IfEnd SubPrivate Sub cmdHapus_Click() Barang.Hapus cmdBatal_Click txtNmBrg.SetFocusEnd SubPrivate Sub cmdUbah_Click() Call isiBarang Barang.Ubah cmdBatal_Click txtNmBrg.SetFocusEnd SubPrivate 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

Page 123: Skripsi Hasbi OO_2

End IfEnd SubPrivate Sub txtNmBrg_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtSatuan.SetFocus End If Call input_huruf(KeyAscii)End SubPrivate Sub txtSatuan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtHarsat.SetFocus End IfEnd SubPrivate Sub txtHarsat_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtStok.SetFocus End If Call input_angka(KeyAscii)End SubPrivate Sub txtStok_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End If Call input_angka(KeyAscii)End SubPrivate Sub Command1_Click() Unload MeEnd Sub

FORM KENDARAAN

Dim Kendaraan As New ctrlKendaraanDim 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

Page 124: Skripsi Hasbi OO_2

End Sub

Private Sub cmdBatal_Click() Kendaraan.Bersih txtNo_Pol.Text = "" txtjenis.Text = ""

' Text1.Text = ""

cmdSimpan.Enabled = False cmdUbah.Enabled = False cmdHapus.Enabled = FalseEnd 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 IfEnd 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 = FalseEnd SubPrivate Sub Form_Activate() txtNo_Pol.SetFocus

Page 125: Skripsi Hasbi OO_2

End SubPrivate 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 vbModalEnd Sub

Private Sub txtNo_Pol_Change() Kendaraan.cariKendaraan txtNo_Pol.Text If txtNo_Pol.Text = Kendaraan.getKode() And Kendaraan.getKode() <> "" Then Call isiForm End IfEnd SubPrivate Sub cmdHapus_Click() Kendaraan.Hapus cmdBatal_Click txtNo_Pol.SetFocusEnd SubPrivate Sub cmdUbah_Click() Call isiKendaraan Kendaraan.Ubah cmdBatal_Click txtNo_Pol.SetFocusEnd SubPrivate Sub txtNo_Pol_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtjenis.SetFocus End IfEnd SubPrivate Sub txtjenis_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdSimpan.Enabled = True cmdSimpan.SetFocus End IfEnd SubPrivate Sub CmdKeluar_Click() Unload MeEnd Sub

FORM NOTA

Dim Nota As New ctrlNota

Page 126: Skripsi Hasbi OO_2

Dim rsNota As New ADODB.RecordsetDim Pelanggan As New ctrlPelangganDim 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 = TrueEnd SubPrivate 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 = FalseEnd 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 SubPrivate 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

Page 127: Skripsi Hasbi OO_2

' Text2.Text = Barang.getTambahan

txtjml_jual.Enabled = True txtjml_jual.SetFocus cmdTambah.Enabled = TrueEnd 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", 2200End 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

Page 128: Skripsi Hasbi OO_2

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.getKodeAutoEnd 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 IfEnd 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 isiFormPelangganElse MsgBox "Kode Pelangan Tidak Ada !!" & vbCrLf & _ "Cek kembali Kode / jumlah karakter Pelangan ?" & vbCrLf & "", vbExclamation,"Konfirmasi" txtKdPlg.Text = "" End If

Page 129: Skripsi Hasbi OO_2

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 vbModalEnd 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 IfEnd Sub

Private Sub txtjml_jual_Change() Call stok Call hitung Call Cek_StockEnd SubPrivate Sub stok() If txtjml_jual.Text = "" Or txtKdBrg.Text = "" Then Barang.data End IfEnd Sub

Private Sub Cek_Stock() If Val(txtStok.Text) < Val(txtjml_jual) Then

Barang.ada txtjml_jual = "" isiBarang Else End IfEnd SubPrivate Sub hitung()

Page 130: Skripsi Hasbi OO_2

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 IfEnd Sub

Private Function CekInputDetail() As BooleanIf Len(txtKdBrg.Text) = 0 Then MsgBox "Kode Barang harus diisi", vbExclamation, "Konfirmasi" txtKdBrg.SetFocus CekInputDetail = FalseExit FunctionEnd If CekInputDetail = TrueEnd Function

Private Sub cmdTambah_Click()Dim MyList As ListItemDim I As IntegerDim 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 NextFor 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

Page 131: Skripsi Hasbi OO_2

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 IfEnd If txtjml_jual.Enabled = False cmdSimpan.Enabled = True cmdBRG.SetFocusEnd Sub

Private Sub lsvDetail_DblClick() Call HapusEnd Sub

Sub Hapus()On Error GoTo errpesanDim Kode As StringDim Index As LongDim Jawab As StringDim Potong As CurrencyDim 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)

Page 132: Skripsi Hasbi OO_2

harga = harga + lsvDetail.ListItems(I).SubItems(5) Next I

txttotal.Text = harga txttotdisc.Text = Potong Call Bersih_Detail txtKdBrg.SetFocus Exit Sub End Iferrpesan:End SubPrivate 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 IfEnd Sub

Private Sub Total()Dim I As IntegerDim hasil As Double For I = 1 To lsvDetail.ListItems.Count hasil = hasil + Val(lsvDetail.ListItems(I).SubItems(5)) Nexttxttotal.Text = hasilEnd 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"

Page 133: Skripsi Hasbi OO_2

.ReportFileName = App.Path & "\Report\CetakNota.rpt" .ReplaceSelectionFormula ("") .ReplaceSelectionFormula ("{Nota.No_Nota}='" & txtno_Nota.Text & "'") .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With cmdBatal_ClickEnd 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 MeEnd Sub

FORM SURAT JALAN

Dim Pelanggan As New ctrlPelangganDim Surat_Jalan As New ctrlSuratJalanDim rsSurat_Jalan As New ADODB.RecordsetDim Nota As New ctrlNotaDim Isi As New ctrlNotaDim Kirim As New ctrlSuratJalanDim Kendaraan As New ctrlKendaraanDim rsKendaraan As New ADODB.RecordsetDim Barang As New ctrlBarangDim lv As ListItemDim 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 = TrueEnd Sub

'******************* U/ P E L A N G A N *************************Private Sub BersihNota() Cmbno_Nota.Text = "" txttgl_Nota.Text = ""

Page 134: Skripsi Hasbi OO_2

txtKdPlg.Text = "" txtNmPlg.Text = "" txtAlamat.Text = "" txtTelepon.Text = ""

' Text1.Text = ""

CmbNo_Pol.Text = "" txtjenis.Text = ""

Cmbno_Nota.Enabled = True CmbNo_Pol.Enabled = FalseEnd Sub

Private Sub txtKdBrg_Change()Barang.cariBarang txtKdBrg.TextIsi.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 isiFormBarangEnd 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.SetFocusEnd 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

Page 135: Skripsi Hasbi OO_2

' 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

Page 136: Skripsi Hasbi OO_2

Loop End If

Cmbno_Nota.Enabled = False CmbNo_Pol.Enabled = True CmbNo_Pol.SetFocusEnd Sub

Private Sub Cmbno_Nota_Change()Nota.cariNota Cmbno_Nota.TextIf 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

Page 137: Skripsi Hasbi OO_2

' 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 IfEnd Sub

'=============================================================================================='==============================================================================================Private Sub isiFormNota()On Error Resume Next txttgl_Nota.Text = Nota.gettglNotaEnd 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

Page 138: Skripsi Hasbi OO_2

End Sub

Private Sub CmdKeluar_Click() Unload MeEnd SubPrivate Function CekInputDetail() As BooleanIf Len(txtKdBrg.Text) = 0 Then MsgBox "Kode Barang harus diisi", vbExclamation, "Konfirmasi" BersihDetail Frame5.Visible = True txtKdBrg.SetFocus CekInputDetail = FalseExit FunctionEnd IfIf Len(txtkiriman.Text) = 0 Then MsgBox "Jumlah Kirim harus diisi", vbExclamation, "Konfirmasi" cmdTambah.Enabled = False txtkiriman.Enabled = True txtkiriman.Text = "" txtkiriman.SetFocus CekInputDetail = FalseExit FunctionEnd If CekInputDetail = TrueEnd FunctionPrivate Sub cmdTambah_Click()Dim MyList As ListItemDim I As IntegerDim 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 NextFor 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

Page 139: Skripsi Hasbi OO_2

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 IflsvDetail.Enabled = TruecmdSimpan.Enabled = TruecmdTambah.Enabled = FalsecmdSimpan.SetFocusEnd Sub

Private Sub Command_Click() Frame5.Visible = TrueEnd Sub

Private Sub Command1_Click()Frame5.Visible = FalseEnd SubPrivate 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_kirimFROM 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 andc.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 IfEnd If

End SubPrivate Sub ListView1_DblClick()If ListView1.ListItems.Count = 0 Then

Page 140: Skripsi Hasbi OO_2

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_kirimFROM 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 andc.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 IfEnd If Frame5.Visible = FalseEnd SubPrivate 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 IfEnd Select Call input_angka(KeyAscii)End SubPrivate Sub lsvDetail_DblClick() Call HapusEnd Sub

Sub Hapus()On Error GoTo errpesanDim Kode As StringDim Index As LongDim Jawab As String

Page 141: Skripsi Hasbi OO_2

Dim Potong As CurrencyDim 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 Iferrpesan:End SubPrivate 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

Page 142: Skripsi Hasbi OO_2

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 = FalseEnd 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.getKodeAutoEnd Sub

Private Sub BersihDetail() Barang.Bersih

txtKdBrg.Text = "" txtNmBrg.Text = "" txtSatuan.Text = "" txtjml_jual.Text = "" txtsisa.Text = "" txtkiriman.Text = ""

cmdSimpan.Enabled = FalseEnd Sub

Private Sub Nota_Combo()Dim rsNota As New ADODB.RecordsetDim N As New ctrlNota

rsNota.Open N.DataNota(), conn, 1, 3

Page 143: Skripsi Hasbi OO_2

Do While Not rsNota.EOF Cmbno_Nota.AddItem rsNota("No_Nota")

rsNota.MoveNext LoopEnd Sub

Private Sub Kendaraan_Combo()Dim rsKendaraan As New ADODB.RecordsetDim K As New ctrlKendaraan rsKendaraan.Open K.showdata(), conn, 1, 3 Do While Not rsKendaraan.EOF CmbNo_Pol.AddItem rsKendaraan("No_Pol") rsKendaraan.MoveNext LoopEnd Sub

Private Sub CmbNo_Pol_Change()Kendaraan.cariKendaraan CmbNo_Pol.TextIf 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 = TrueEnd 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 = TruecmdSimpan.SetFocusEnd Sub

Private Sub cmdSimpan_Click()Dim I As IntegerIf 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 SubElse Call isiSurat_Jalan Surat_Jalan.SimpanEnd If

Page 144: Skripsi Hasbi OO_2

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 = 1End 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

Page 145: Skripsi Hasbi OO_2

.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 WithEnd 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 MeEnd 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

Page 146: Skripsi Hasbi OO_2

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 MeEnd 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

Page 147: Skripsi Hasbi OO_2

Private Sub CmdKeluar_Click() Unload MeEnd 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.RecordsetDim sProses As StringPublic Sub setTambahan(dTambahan As String)

' Database = dTambahan

End SubPublic Function getTambahan() As String

' getTambahan = Database

End FunctionPublic Sub Bersih() Kd_Plg = "" Nm_Plg = "" Amt_Plg = "" Telp = ""

' Database = ""

End SubPublic 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 SubPublic 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

Page 148: Skripsi Hasbi OO_2

Kd_Plg = rsPelanggan("Kd_Plg") Nm_Plg = rsPelanggan("Nm_Plg") Amt_Plg = rsPelanggan("Amt_Plg") Telp = rsPelanggan("Telp")

' Database = rsPelanggan("Database")

End IfEnd SubPublic 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 = KodeEnd SubPublic Sub setNama(Nama As String) Nm_Plg = NamaEnd SubPublic Sub setAlamat(sAlamat As String) Amt_Plg = sAlamatEnd SubPublic Sub setTelepon(dTelepon As String) Telp = dTeleponEnd SubPublic Sub setJenisKelamin(dJenisKelamin As String) JenisKelamin = dJenisKelaminEnd SubPublic Function getNama() As String getNama = Nm_PlgEnd FunctionPublic Function getKode() As String getKode = Kd_PlgEnd FunctionPublic Function getAlamat() As String

Page 149: Skripsi Hasbi OO_2

getAlamat = Amt_PlgEnd FunctionPublic Function getTelepon() As String getTelepon = TelpEnd FunctionPublic Function getJenisKelamin() As String getJenisKelamin = JenisKelaminEnd FunctionPublic Sub Hapus() sProses = "Delete from Pelanggan where Kd_Plg='" & Kd_Plg & "'" conn.Execute sProses MsgBox "Berhasil Di Hapus", vbExclamation, "Data Pelanggan"End SubPublic Function getKodeAuto() sProses = "select count(1), max(Right(Kd_Plg,4)) from Pelanggan" Set rsPelanggan = New ADODB.Recordset rsPelanggan.Open sProses, conn, 1, 3If Not rsPelanggan.EOF Then If rsPelanggan(0) > 0 Then sFormat = Format(CInt(rsPelanggan(1)) + 1, "P0###") Else sFormat = "P0001" End IfEnd If getKodeAuto = sFormatEnd FunctionPublic 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.RecordsetDim sProses As String

Public Sub setTambahan(dTambahan As String)

' Database = dTambahan

End SubPublic Function getTambahan() As String

' getTambahan = Database

Page 150: Skripsi Hasbi OO_2

End FunctionPublic Sub Bersih() Kd_Brg = "" Nm_Brg = "" Satuan = "" Har_sat = "" stok = ""

' Database = ""

End SubPublic 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 SubPublic 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 IfEnd SubPublic 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 _

Page 151: Skripsi Hasbi OO_2

& "', 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 = KodeEnd SubPublic Sub setNama(Nama As String) Nm_Brg = NamaEnd SubPublic Sub setHarga(dHarga As String) Har_sat = dHargaEnd SubPublic Sub setSatuan(dSatuan As String) Satuan = dSatuanEnd SubPublic Sub setStok(sStok As String) stok = sStokEnd SubPublic Function getNama() As String getNama = Nm_BrgEnd FunctionPublic Function getKode() As String getKode = Kd_BrgEnd FunctionPublic Function getHarga() As String getHarga = Har_satEnd FunctionPublic Function getSatuan() As String getSatuan = SatuanEnd FunctionPublic Function getStok() As String getStok = stokEnd FunctionPublic Sub Hapus() sProses = "Delete from Barang where Kd_Brg='" & Kd_Brg & "'" conn.Execute sProses MsgBox "Data Berhasil Di Hapus"End SubPublic Function getKodeAuto() sProses = "select count(1), max(Right(Kd_Brg,4)) from Barang" Set rsBarang = New ADODB.Recordset

Page 152: Skripsi Hasbi OO_2

rsBarang.Open sProses, conn, 1, 3If Not rsBarang.EOF Then If rsBarang(0) > 0 Then sFormat = Format(CInt(rsBarang(1)) + 1, "B0###") Else sFormat = "B0001" End IfEnd If getKodeAuto = sFormatEnd FunctionPublic Function showdata() As String showdata = "select * from Barang"End FunctionPublic Sub data()Set RS = conn.Execute("Select Stok from Barang where Kd_Brg='" & Kd_Brg & "'") If Not RS.EOF Then stok = RS("Stok") End IfEnd SubPublic 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 IfEnd Sub

CONTROL KENDARAAN

' Dim No_Pol, Jns_kendaraan, Database As String

Dim No_Pol, Jns_kendaraan As String '==== No Aktiv ====Dim rsKendaraan As ADODB.RecordsetDim sProses As StringPublic Sub setTambahan(dTambahan As String)

' Database = dTambahan

End SubPublic Function getTambahan() As String

' getTambahan = Database

End FunctionPublic Sub Bersih() No_Pol = ""

Page 153: Skripsi Hasbi OO_2

Jns_kendaraan = ""

' Database = ""

End SubPublic 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 SubPublic 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 IfEnd SubPublic Sub Ubah() Dim sProses As String

' sProses = "update Kendaraan set Jns_kendaraan='" & Jns_kendaraan _ & "', Database='" & Database & "'"

sProses = "update Kendaraan set Jns_kendaraan='" & Jns_kendaraan & "'" '==== NoAktiv ====

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_PolEnd Function

Page 154: Skripsi Hasbi OO_2

Public Function getJenis() As String getJenis = Jns_kendaraanEnd FunctionPublic Sub setKode(Kode As String) No_Pol = KodeEnd SubPublic Sub setJenis(sJenis As String) Jns_kendaraan = sJenisEnd SubPublic Sub Hapus() sProses = "Delete from Kendaraan where No_Pol='" & No_Pol & "'" conn.Execute sProses MsgBox "Berhasil Di Hapus", vbInformation, "Data Kendaraan"End SubPublic 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 StringDim rsNota As ADODB.RecordsetDim sProses As String

Public Sub setKode(Kode As String) No_Nota = KodeEnd SubPublic Sub settglNota(tglNota As String) Tgl_Nota = tglNotaEnd SubPublic Sub setkdPlg(kdPlg As String) Kd_Plg = kdPlgEnd SubPublic Sub setHargaJual(HargaJual As String) Harga_Jual = HargaJualEnd SubPublic Sub setJmlJual(JmlJual As String) Jml_Jual = JmlJualEnd SubPublic Sub seAmtPlg(sAmtPlg As String) Amt_Plg = sAmtPlgEnd SubPublic Sub setkdbrg(skdbrg As String) Kd_Brg = skdbrgEnd Sub

Public Sub Simpan() Dim sProses As String

Page 155: Skripsi Hasbi OO_2

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_BrgAs 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 IfEnd 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 IfEnd 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

Page 156: Skripsi Hasbi OO_2

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 IfEnd SubPublic Function gettglNota() As String gettglNota = Tgl_NotaEnd FunctionPublic Function getKode() As String getKode = No_NotaEnd FunctionPublic Function getkdplg() As String getkdplg = Kd_PlgEnd FunctionPublic Function getHargaJual() As String getHargaJual = Harga_JualEnd FunctionPublic Function getJmlJual() As String getJmlJual = Jml_JualEnd FunctionPublic Function getkdbrg() As String getkdbrg = Kd_BrgEnd Function

Public Function DataNota() As String DataNota = "select * from Nota"End FunctionPublic Function Hilang() As String Hilang = "SELECT No_Nota FROM Nota Where No_Nota NOT IN (SELECT No_Nota FROMKwitansi)"End FunctionPublic 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

Page 157: Skripsi Hasbi OO_2

If Not rsNota.EOF Then If rsNota(0) > 0 Then sFormat = Format(CInt(rsNota(1)) + 1, "00######") Else sFormat = "00000001" End IfEnd If getKodeAuto = sFormatEnd Function

CONTROL SURAT JALAN

Dim No_SJ, Tgl_SJ, No_Nota, No_Pol, Jml_Jual, Jml_Kirim, Kd_Brg As StringDim rsSuratJalan As ADODB.RecordsetDim rsKirim As ADODB.RecordsetDim sProses As String

Public Sub setKode(Kode As String) No_SJ = KodeEnd SubPublic Sub settglsj(tglsj As String) Tgl_SJ = tglsjEnd SubPublic Sub setNoNota(sNoNota As String) No_Nota = sNoNotaEnd SubPublic Sub setNoPol(dNoPol As String) No_Pol = dNoPolEnd SubPublic Sub setJmlJual(dJmlJual As String) Jml_Jual = dJmlJualEnd SubPublic Sub setJmlKiriman(dJmlKiriman As String) Jml_Kirim = dJmlKirimanEnd SubPublic Sub setkdbrg(dkdbrg As String) Kd_Brg = dkdbrgEnd 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)

Page 158: Skripsi Hasbi OO_2

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, 3If 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 IfEnd 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, 3If Not rsSuratJalan.EOF Then No_SJ = rsSurat_Jalan("No_SJ") Jml_Jual = rsSurat_Jalan("Jml_Jual") Kd_Brg = rsSurat_Jalan("Kd_Brg")End IfEnd Sub

Public Function gettglsj() As String gettglsj = Tgl_SJEnd FunctionPublic Function getKode() As String getKode = No_SJEnd FunctionPublic Function getNoNota() As String getNoNota = No_NotaEnd FunctionPublic Function getNoPol() As String getNoPol = No_PolEnd FunctionPublic Function getJIsi() As String getJIsi = Jml_JualEnd FunctionPublic Function getkdbrg() As String getkdbrg = Kd_BrgEnd Function

Public Sub Bersih() No_SJ = "" Tgl_SJ = ""

Page 159: Skripsi Hasbi OO_2

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, 3If Not rsSurat_Jalan.EOF Then If rsSurat_Jalan(0) > 0 Then sFormat = Format(CInt(rsSurat_Jalan(1)) + 1, "J0######") Else sFormat = "J0000001" End IfEnd If getKodeAuto = sFormatEnd Function

Public Function showdata() As String showdata = "select * from Surat_Jalan"End Function