Post on 07-Dec-2020
i
MANAJEMEN TRANSAKSI DALAM
SISTEM PENJUALAN KOMPUTER RAKITAN BERBASIS WEB
(Studi Kasus Toko Komputer DATATEK, Yogyakarta)
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh :
Johanes Taufan Sungkit
NIM : 055314051
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
ii
TRANSACTION MANAGEMENT ON WEB BASED SELLING SYSTEM OF COMPOSED COMPUTER
(Case Study on DATATEK Computer Shop, Yogyakarta)
A THESIS
Presented as Partial Fulfillment of the Requirements To Obtain Sarjana Teknik Degree
In Informatics Engineering Department
By :
Johanes Taufan Sungkit
055314051
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
v
MOTTO
“SEGALA SESUATU DAPAT TERJADI JIKA KITA MELAKUKANNYA DENGAN SUNGGUH-SUNGGUH DAN
TANPA PUTUS ASA”
“I BELONG TO JESUS”
vi
INTISARI
Pencatatan data penjualan dan pembelian menjadi hal yang penting dalam
transaksi di toko komputer. Tulisan ini dibuat dengan tujuan untuk menciptakan
sistem penjualan komputer rakitan berbasis web dengan studi kasus toko
komputer DATATEK, Yogyakarta. Dengan dibangunnya sistem ini diharapkan
pencatatan data penjualan dan pembelian menjadi lebih akurat dan lebih cepat
sehingga data menjadi konsisten. Konsumen juga dapat melakukan pembelian
komputer secara on-line. Selain itu, sistem dapat menyajikan laporan penjualan
dan pembelian.
Sistem ini dirancang dengan pemodelan berorientasi obyek. Pencatatan
data di database menggunakan konsep manajemen transaksi dengan teknik Two
Phase Locking (2PL) untuk menjamin konsistensi data terhadap masalah the lost
update problem. Sistem ini dikembangkan dengan menggunakan teknologi JSP
dan teknologi basisdata MySQL.
Hasil akhir adalah sebuah sistem penjualan komputer rakitan berbasis web
yang berfungsi dengan baik serta mampu menangani transaksi secara bersamaan
dalam proses penjualan maupun pembelian. Manajemen transaksi pada sistem ini
dapat berfungsi dengan baik sehingga dapat mengatasi masalah the lost update
problem.
vii
ABSTRACT
Register selling and purchasing data is an important thing in computer
shop transaction. This report is made with the purpose for creating web based
selling system of composed computer with case study in DATATEK computer
shop, Yogyakarta. By developing the system, register selling and purchasing data
will be more accurate and faster in order the data become consistent was expected.
Consumer can purchase computer by on-line. Besides that, system can show
selling and purchasing report.
The system has been developed using by object oriented modeling.
Register data in database uses management transaction concept with Two Phase
Locking (2PL) to guarantee that data is consistent toward the lost update problem.
It was developed with JSP technology and MySQL database technology.
The result is a web based selling system of composed computer which has
a well function and also has a capability to handle transaction simultaneously in a
selling and purchasing process. Transaction management in this system has a well
function to solve the lost update problem.
viii
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yesus Kristus atas berkat dan limpahan kasih
karunia yang telah diberikan-Nya sehingga penulis dapat menyelesaikan skripsi
ini dengan judul :
“MANAJEMEN TRANSAKSI DALAM SISTEM PENJUALAN
KOMPUTER RAKITAN BERBASIS WEB (Studi Kasus Toko Komputer
DATATEK, Yogyakarta)”.
Dorongan serta nasihat dari berbagai pihak sangat membantu sampai
tersusunnya skripsi ini. Untuk itu, saya ingin mengucapkan terima kasih kepada :
1. Orang tua saya Susiyanto Adjan, Cresensia Djap Tjhai Lie (Alma.) dan Djap
Tjhai Ngo yang telah memberi dukungan moral, spiritual dan finansial dalam
penyusunan skripsi.
2. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.
4. Ibu Agnes Maria Polina, S.Kom.,M.Sc. selaku dosen pembimbing Skripsi.
Terima kasih telah membimbing dan menyediakan waktu dalam memberikan
pengarahan selama penulisan skripsi ini.
5. Kakak dan adikku, terima kasih atas dukungannya sehingga penulis dapat
menyelesaikan studi.
6. My Lovely Livie, terima kasih atas doa, bantuan, kasih sayang ,dan
perhatianmu. Semua itu yang menguatkan dan membuatku mampu bertahan
sampai sekarang.
7. Teman-teman kontrakan “Sun Rise” : Vicimus, Yuan, dan Roland terima
kasih atas dukungan dan bantuannya selama ini.
ix
8. Teman-teman TI 05 : Tepan, Mas Goundrex, Tomi, Cahyo, April, Icha,
Kingkin, Ami, Ita, Niko dan teman-teman lain yang tidak dapat disebutkan
satu-persatu. Terima kasih atas persahabatannya selama ini.
9. Van Deventer-Maas Stichting (VDMS), terima kasih atas beasiswa yang telah
diberikan kepada penulis sehingga berguna dalam perjalanan studi penulis.
Dan semua teman-teman yang tidak dapat disebutkan satu-persatu.
x
PERNYATAAN KEASLIAN KARYA
Saya menyatakan sesungguhnya bahwa Tugas Akhir yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan daftar pustaka, sebagaimana karya ilmiah.
Yogyakarta, 12 Agustus 2009
Penulis
Johanes Taufan Sungkit
xii
DAFTAR ISI
HALAMAN JUDUL……………………………………………………………………....i
HALAMAN JUDUL……………………………………………………………………...ii
HALAMAN PERSETUJUAN PEMBIMBING………………………………………….iii
HALAMAN PENGESAHAN…………………………………………………………….iv
MOTTO .............................................................................................................................. v
INTISARI .......................................................................................................................... vi
ABSTRACT ..................................................................................................................... vii
KATA PENGANTAR ..................................................................................................... viii
PERNYATAAN KEASLIAN KARYA ............................................................................. x
LEMBAR PERNYATAAN ............................................................................................... xi
DAFTAR ISI .................................................................................................................... xii
DAFTAR GAMBAR ........................................................................................................ xv
DAFTAR LISTING PROGRAM .................................................................................... xix
DAFTAR TABEL............................................................................................................ xix
BAB I PENDAHULUAN ................................................................................................... 1
1.1 Latar Belakang .................................................................................................... 1
1.2 Batasan Masalah ................................................................................................. 2
1.3 Tujuan dan Manfaat Penelitian ........................................................................... 3
1.4 Rumusan Masalah ............................................................................................... 3
1.5 Metodologi Penelitian ......................................................................................... 4
1.6 Sistematika Penulisan ......................................................................................... 5
BAB II LANDASAN TEORI ............................................................................................. 7
2.1 Manajemen Transaksi ......................................................................................... 7
2.1.1 Locking Methods (Metode-metode penguncian) ......................................... 9
2.1.2 Two Phase Locking (2PL) ......................................................................... 11
2.2 Use Case Diagram ............................................................................................ 12
2.3 Activity Diagram ............................................................................................... 13
xiii
2.4 Class Diagram ................................................................................................... 17
2.4.1 Class Diagram Analisis ............................................................................. 17
2.4.2 Class Diagram Desain ............................................................................... 17
2.5 Sequence Diagram ............................................................................................ 18
2.6 Java ................................................................................................................... 19
2.6.1 Java 2 Platform Enterprise Edition (J2EE) ............................................... 19
2.6.2 JSP(Java Server Pages) ............................................................................ 20
2.7 SQL (Structured Query Language) .................................................................. 21
BAB III ANALISA DAN PERANCANGAN SISTEM ................................................... 25
3.1 Sistem yang Ada Saat Ini .................................................................................. 25
3.2 Sistem yang Akan Dibangun ............................................................................ 25
3.3 Diagram Konteks .............................................................................................. 26
3.4 Diagram Use case ............................................................................................. 26
3.4.1 Ringkasan Use case .................................................................................. 29
3.4.2 Narasi Use-case ......................................................................................... 31
3.5 Diagram Activity ............................................................................................... 60
3.6 Diagram Class ................................................................................................... 78
3.7 Diagram Sequence ............................................................................................ 79
3.8 Diagram Class Desain (lampiran) ................................................................... 104
3.9 Desain Fisikal Tabel ....................................................................................... 104
3.10 Daftar Stored Procedure ................................................................................. 107
3.11 Desain Manajemen Transaksi ......................................................................... 112
3.12 Desain Teknologi ............................................................................................ 116
3.13 Desain Input .................................................................................................... 117
3.13.1 Desain input Pegawai .............................................................................. 117
3.13.2 Desain input Pembeli .............................................................................. 126
3.14 Desain Output ................................................................................................. 128
3.14.1 Desain output Pegawai ............................................................................ 128
3.14.2 Desain output Pembeli ............................................................................ 141
BAB IV IMPLEMENTASI SISTEM ............................................................................. 146
4.1 Implementasi halaman user ............................................................................ 146
4.2 Implementasi halaman admin ......................................................................... 156
4.3 Implementasi Manajemen Transaksi .............................................................. 193
xiv
BAB V ANALISA HASIL ............................................................................................. 202
BAB VI PENUTUP ........................................................................................................ 213
6.1 Kesimpulan ..................................................................................................... 213
6.2 Saran ............................................................................................................... 214
DAFTAR PUSTAKA
LAMPIRAN
xv
DAFTAR GAMBAR
Keterangan Halaman Gambar 2.1 Simbol Use Case 12 Gambar 2.2 Simbol Aktor 12 Gambar 2.3 Activity diagram poin 1 sampai 5 14 Gambar 2.4 Activity diagram poin 6 sampai 8 15 Gambar 2.5 Activity diagram poin 9 dan 10 16 Gambar 2.6 Sequence Diagram 18 Gambar 2.7 Arsitektur J2EE 20 Gambar 2.8 Arsitektur JSP 21 Gambar 3.1 Diagram Konteks 26 Gambar 3.2 Diagram Use-Case 27 Gambar 3.3 Diagram Activity Log in 59 Gambar 3.4 Diagram Activity Log out 59 Gambar 3.5 Diagram Activity Merakit Komputer 60 Gambar 3.6 Diagram Activity Mengisi Data Pembelian 60 Gambar 3.7 Diagram Activity Mengubah Data Pembelian 61 Gambar 3.8 Diagram Activity Menghapus Data Pembelian 61 Gambar 3.9 Diagram Activity Mengubah Status Penjualan 62 Gambar 3.10 Diagram Activity Menghapus Data Penjualan 63 Gambar 3.11 Diagram Activity Mengisi Komentar 64 Gambar 3.12 Diagram Activity Menjawab Komentar 65 Gambar 3.13 Diagram Activity Menghapus Komentar 66 Gambar 3.14 Diagram Activity Mengisi Berita 67 Gambar 3.15 Diagram Activity Mengubah Berita 68 Gambar 3.16 Diagram Activity Menghapus Berita 69 Gambar 3.17 Diagram Activity Mengisi Data Barang 70 Gambar 3.18 Diagram Activity Mengubah Data Barang 71 Gambar 3.19 Diagram Activity Menghapus Data Barang 72 Gambar 3.20 Diagram Activity Mencari Data Barang 72 Gambar 3.21 Diagram Activity Cetak Laporan 73 Gambar 3.22 Diagram Activity Membuat Account Baru 74 Gambar 3.23 Diagram Activity Menghapus Account 75 Gambar 3.24 Diagram Activity Mencatat Retur Barang 75 Gambar 3.25 Diagram class sistem 76 Gambar 3.26 Diagram sequence Log in 87 Gambar 3.27 Diagram sequence Log out 87
xvi
Keterangan Halaman Gambar 3.28 Diagram sequence Merakit computer 88 Gambar 3.29 Diagram sequence Mengisi data pembelian 89 Gambar 3.30 Diagram sequence Mengubah data pembelian 89 Gambar 3.31 Diagram sequence Menghapus data pembelian 90 Gambar 3.32 Diagram sequence Mengubah status penjualan 91 Gambar 3.33 Diagram sequence Menghapus data penjualan 92 Gambar 3.34 Diagram sequence Mengisi komentar 93 Gambar 3.35 Diagram sequence Menjawab komentar 93 Gambar 3.36 Diagram sequence Menghapus komentar 94 Gambar 3.37 Diagram Sequence Mengisi berita 94 Gambar 3.38 Diagram Sequence Mengubah berita 95 Gambar 3.39 Diagram Sequence Menghapus berita 95 Gambar 3.40 Diagram sequence Mengisi Data Barang 96 Gambar 3.41 Diagram Sequence Mengubah data barang 96 Gambar 3.42 Diagram Sequence Menghapus data barang 97 Gambar 3.43 Diagram Sequence Mencari data barang 97 Gambar 3.44 Diagram Sequence Cetak laporan 98 Gambar 3.45 Diagram Sequence Membuat account baru 99 Gambar 3.46 Sequence Diagram Menghapus account 99 Gambar 3.47 Diagram Sequence Mencatat retur barang 100 Gambar 3.48 Flowchart manajemen transaksi pembelian 113 Gambar 3.49 Flowchart manajemen transaksi penjualan 115 Gambar 3.50 Arsitektur Three Tier 116 Gambar 3.51 Desain input halaman Log in 117 Gambar 3.52 Desain input halaman tambah data barang 118 Gambar 3.53 Desain input halaman ubah data barang 119 Gambar 3.54 Desain input halaman cetak laporan 120 Gambar 3.55 Desain input halaman data penjualan 121 Gambar 3.56 Desain input halaman cari data retur penjualan 122 Gambar 3.57 Desain input halaman tambah berita 123 Gambar 3.58 Desain input halaman ubah berita 124 Gambar 3.59 Desain input halaman jawab komentar 125 Gambar 3.60 Desain input halaman buat account 126 Gambar 3.61 Desain input halaman perakitan komputer 127 Gambar 3.62 Desain input halaman pengisian komentar 128 Gambar 3.63 Desain output halaman Utama Admin 129 Gambar 3.64 Desain output halaman menu data barang 130
xvii
Keterangan Halaman Gambar 3.65 Desain output halaman hapus data barang 131 Gambar 3.66 Desain output halaman cetak laporan penjualan 132 Gambar 3.67 Desain output halaman cetak laporan pembelian 133 Gambar 3.68 Desain output halaman cetak nota 134 Gambar 3.69 Desain output halaman catat retur penjualan 135 Gambar 3.70 Desain output halaman menu berita 136 Gambar 3.71 Desain output halaman hapus berita 137 Gambar 3.72 Desain output halaman menu komentar 138 Gambar 3.73 Desain output halaman hapus komentar 139 Gambar 3.74 Desain output halaman menu account 140 Gambar 3.75 Desain output halaman hapus account 141 Gambar 3.76 Desain output halaman utama Pembeli 142 Gambar 3.77 Desain output halaman cetak transaksi 143 Gambar 3.78 Desain output halaman berita 144 Gambar 3.79 Desain output halaman menu contact 145 Gambar 4.1 Halaman utama user 147 Gambar 4.2 Halaman belanja user 148 Gambar 4.3 Halaman detail belanja user 152 Gambar 4.4 Halaman berita 153 Gambar 4.5 Halaman komentar 154 Gambar 4.6 Halaman contact us 155 Gambar 4.7 Halaman cari produk 156 Gambar 4.8 Halaman login 157 Gambar 4.9 Halaman utama admin 160 Gambar 4.10 Halaman penjualan 161 Gambar 4.11 Halaman daftar retur 162 Gambar 4.12 Halaman ubah data penjualan 163 Gambar 4.13 Halaman detail penjualan 164 Gambar 4.14 Halaman retur penjualan 165 Gambar 4.15 Halaman cetak nota 166 Gambar 4.16 Halaman pembelian 170 Gambar 4.17 Halaman tambah pembelian 171 Gambar 4.18 Halaman ubah data pembelian 175 Gambar 4.19 Halaman cetak laporan 179 Gambar 4.20 Halaman laporan pembelian 180 Gambar 4.21 Halaman pengaturan jenis barang 181 Gambar 4.22 Halaman ubah data barang 185
xviii
Keterangan Halaman Gambar 4.23 Halaman berita 186 Gambar 4.24 Halaman tambah berita 187 Gambar 4.25 Halaman ubah berita 188 Gambar 4.26 Halaman upload foto berita 189 Gambar 4.27 Halaman komentar 190 Gambar 4.28 Halaman jawab komentar 191 Gambar 4.29 Halaman admin 192 Gambar 4.30 Halaman tambah admin 193 Gambar 5.1 Hasil pemasukan data processor Intel Core 2 Duo E7300 203 Gambar 5.2 Halaman pemesanan user 1 204 Gambar 5.3 Halaman pemesanan user 2 205 Gambar 5.4 Halaman detail pemesanan user 1 206 Gambar 5.5 Halaman detail pemesanan user 2 206 Gambar 5.6 Stok produk processor Intel Core 2 Duo setelah
pemesanan oleh 2 user secara bersamaan 207
Gambar 5.7 Data sampel harddisk Fujitsu MHZ 208 Gambar 5.8 Halaman pengisian data pembelian yang dilakukan oleh
user 1 209
Gambar 5.9 Halaman pengisian data pembelian yang dilakukan oleh user 2
210
Gambar 5.10 Halaman detail pembelian barang user 1 211 Gambar 5.11 Halaman detail pembelian barang user 2 211 Gambar 5.12 Stok harddisk Fujitsu MHZ setelah dilakukan
pencatatan pembelian secara bersamaan oleh user 1 dan user 2
212
xix
DAFTAR LISTING PROGRAM
Keterangan HalamanListing 4.1 Kelas ServletPenjualanTambah.java 149 Listing 4.2 Kelas ServletLogin.java 158 Listing 4.3 Kelas ServletCetakLaporan.java 166 Listing 4.4 Kelas ServletPembelianTambah.java 172 Listing 4.5 Method insertPembelian 174 Listing 4.6 Kelas ServletPembelianUbah.java 176 Listing 4.7 Kelas ServletPembelianHapus.java 177 Listing 4.8 Kelas ServletUploadBarangFoto.java 182 Listing 4.9 Stored procedure untuk penambahan data pembelian 195 Listing 4.10 Stored procedure untuk penambahan data penjualan 199
DAFTAR TABEL
Keterangan HalamanTabel 3.1 Ringkasan Use-Case 28 Tabel 3.2 Narasi Use-case Log in 30 Tabel 3.3 Narasi Use-case Log out 32 Tabel 3.4 Narasi Use-case Merakit Komputer 33 Tabel 3.5 Narasi Use-case Mengisi data pembelian 34 Tabel 3.6 Narasi Use-case Mengubah data pembelian 36 Tabel 3.7 Narasi Use-case Menghapus data pembelian 37 Tabel 3.8 Narasi Use-case Mengubah status penjualan 38 Tabel 3.9 Narasi Use-case Menghapus data penjualan 40 Tabel 3.10 Narasi Use-case Mengisi komentar 41 Tabel 3.11 Narasi Use-case Menjawab komentar 42 Tabel 3.12 Narasi Use-case Menghapus komentar 43 Tabel 3.13 Narasi Use-case Mengisi berita 45 Tabel 3.14 Narasi Use-case Mengubah berita 46 Tabel 3.15 Narasi Use-case Menghapus berita 48 Tabel 3.16 Narasi Use-case Mengisi data barang 49 Tabel 3.17 Narasi Use-case Mengubah data barang 50 Tabel 3.18 Narasi Use-case Menghapus data barang 52 Tabel 3.19 Narasi Use-case Mencari data barang 53 Tabel 3.20 Narasi Use-case Cetak laporan 54 Tabel 3.21 Narasi Use-case Membuat account baru 55
xx
Keterangan HalamanTabel 3.22 Narasi Use-case Menghapus account 56 Tabel 3.23 Narasi Use-case Mencatat retur barang 57 Tabel 3.24 Desain fisikal tabel admin 100 Tabel 3.25 Desain fisikal tabel barang 100 Tabel 3.26 Desain fisikal untuk tabel berita 101 Tabel 3.27 Desain fisikal untuk tabel jenis barang 102 Tabel 3.28 Desain fisikal untuk tabel komentar 102 Tabel 3.29 Desain fisikal untuk tabel pembeli 103 Tabel 3.30 Desain fisikal untuk tabel pembelian 103 Tabel 3.31 Desain fisikal untuk tabel pembelian_barang 103 Tabel 3.32 Desain fisikal untuk tabel penjualan 104 Tabel 3.33 Desain fisikal untuk tabel penjualan_barang 104 Tabel 3.34 Desain fisikal untuk tabel penjualan_retur 105 Tabel 3.35 Desain fisikal untuk tabel returpenjualan 105 Tabel 3.36 Daftar seluruh store procedure yang digunakan dalam sistem 107
Tabel 3.37 daftar stored procedure yang terkait dengan manajemen transaksi
110
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kebutuhan akan informasi pada saat ini sangat dibutuhkan.
Informasi yang diberikan harus cepat, tepat dan akurat. Dengan kemajuan
teknologi sekarang, informasi disajikan dalam berbagai macam perangkat
lunak (software). Peralihan sistem dari yang bersifat manual ke otomatis
mulai dilakukan oleh berbagai instansi, baik instansi pemerintahan
maupun instansi swasta. Pada instansi yang bergerak di bidang
perdagangan seperti toko komputer, sistem yang mengalami peralihan
adalah sistem transaksi dan sistem inventori.
Dalam setiap transaksi di toko komputer, pencatatan akan
penjualan barang dan pembelian merupakan hal yang penting untuk
dilakukan. Dengan adanya pencatatan ini toko komputer dapat mengetahui
keuntungan yang diperoleh ataupun kerugian yang dialami. Pencatatan
akan barang masuk dan barang keluar juga berguna untuk dilakukannya
pengecekan stok barang. Pengecekan stok ini dapat membantu untuk
melakukan keputusan penambahan ataupun pengurangan pemesanan
barang. Kegiatan-kegiatan tersebut harus dilakukan secara rutin dan
informasi yang dihasilkan harus sesuai dengan keadaan sebenarnya. Selain
itu, toko komputer juga harus dapat memberikan informasi tentang barang-
2
barang yang dijual secara detail. Informasi ini dibutuhkan oleh pembeli
untuk melakukan pembelian.
Pada transaksi pembelian, masalah muncul saat transaksi dilakukan
secara bersamaan. Pencatatan transaksi ini akan mengalami kesalahan jika
kedua transaksi mengakses dan melakukan perubahan terhadap data yang
sama. Hal ini dapat mengakibatkan data barang yang ter-update menjadi
hilang, pembacaan terhadap data salah, dan tidak konsistennya analisa
terhadap data.
Untuk meningkatkan kinerja toko komputer, maka perlu dibangun
sebuah sistem yang mampu untuk melakukan kegiatan transaksi dan
inventori barang pada toko komputer. Pada kegiatan transaksi pembelian
diperlukan manajemen transaksi untuk mengurangi kesalahan pencatatan
data pada saat transaksi berlangsung secara bersamaan.
1.2 Batasan Masalah
Sistem yang dibangun mempunyai batasan sebagai berikut :
1. Dalam manajemen transaksi, sistem menangani masalah the lost
update problem dengan menggunakan Two Phase Locking (2PL).
2. Sistem dapat melakukan transaksi penjualan (pencatatan barang keluar,
retur penjualan, laporan penjualan) dan transaksi pembelian
(pencatatan barang masuk, laporan pembelian).
3. Sistem tidak menangani laporan keuangan (neraca, rugi laba).
3
4. Sistem dibangun menggunakan bahasa pemrograman Java dengan
database MySQL Server 5.0.
1.3 Tujuan dan Manfaat Penelitian
Tujuan dari pembuatan sistem adalah :
1. Terbentuknya Sistem Penjualan Komputer Rakitan Berbasis Web yang
diharapkan dapat diaplikasikan secara nyata di toko komputer sehingga
dapat meningkatkan kinerja toko komputer.
2. Adanya manajemen transaksi yang baik dalam Sistem Informasi
Penjualan Komputer Rakitan Berbasis Web.
Manfaat dari pembuatan sistem adalah :
1. Mempermudah pengguna untuk melakukan transaksi pembelian
dengan mengakses website.
2. Menghindari terjadinya kesalahan pencatatan data jika terjadi transaksi
secara bersamaan.
1.4 Rumusan Masalah
Dari latar belakang yang telah dikemukakan, maka rumusan
masalah yang dapat diambil adalah :
1. Bagaimana membangun aplikasi sistem penjualan komputer berbasis
web menggunakan java?
4
2. Bagaimana sistem mengatasi masalah the lost update problem pada
saat transaksi yang dilakukan bersamaan oleh user?
1.5 Metodologi Penelitian
Metodologi yang digunakan untuk mengembangkan sistem ini
adalah studi kasus (case study) yang mempunyai beberapa tahapan, yaitu :
1. Wawancara
Wawancara dilakukan dengan pemilik toko komputer DATATEK
untuk mengetahui proses bisnis yang terjadi di toko tersebut dan
mengumpulkan materi-materi yang diperlukan untuk pembuatan
aplikasi.
2. Studi Pustaka
Studi Pustaka dilakukan untuk mendalami teori mengenai analisis,
perancangan dan pembuatan sistem.
3. Pembuatan Sistem Penjualan Komputer Rakitan Berbasis Web, dengan
tahap :
a. Analisis dan Perancangan Sistem
Analisis dan Perancangan Sistem menggunakan pemodelan
berorientasi obyek (object-oriented modeling). Pemodelan
dilakukan dengan menggunakan UML(Unified Modeling
Language) meliputi diagram Use Case, diagram Class, diagram
Sequence, dan diagram Activity.
b. Implementasi Aplikasi Sistem
5
Pembuatan aplikasi sistem menggunakan software Netbeans 6.5
untuk interface dan pengolahan data dan MySQL Server 5.0
sebagai software untuk database.
c. Pengujian Sistem
Aplikasi sistem yang telah selesai dibuat akan diujikan. Pengujian
dilakukan oleh penulis (pengujian tingkat alpha).
1.6 Sistematika Penulisan
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, batasan masalah,
tujuan dan manfaat penelitian, rumusan masalah, metodologi
penelitian yang digunakan serta sistematika isi penulisan laporan.
BAB II LANDASAN TEORI
Bab ini berisi tentang dasar teori yang mana akan digunakan untuk
pembahasan dalam penulisan laporan tugas akhir ini.
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi tentang cara penerapan konsep dasar yang telah
diuraikan pada bab sebelumnya untuk menganalisa dan merancang
aplikasi berbasis web.
6
BAB IV IMPLEMENTASI SISTEM
Bab ini akan berisi tentang implementasi sistem dari perancangan
yang telah dibuat.
BAB V ANALISA HASIL
Bab ini berisi analisa hasil yang terdiri dari kelebihan dan kelemahan
sistem yang dibuat.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan dan saran dari penulisan laporan
tugas akhir yang disusun.
7
BAB II
LANDASAN TEORI
2.1 Manajemen Transaksi
Transaksi merupakan kegiatan atau sekumpulan kegiatan yang
dilakukan oleh seorang pengguna atau program aplikasi yang membaca atau
mengubah konten pada basis data. Transaksi mempunyai sifat yang disebut
ACID, yaitu (Haerder dan Reuter, 1983):
a. Atomicity, di mana sebuah transaksi merupakan sebuah unit yang tidak
dapat dibagi yang dilakukan secara keseluruhan atau tidak sama sekali.
b. Consistency, di mana sebuah transaksi dapat mengubah basis data dari
suatu keadaan konsisten ke keadaan konsisten lainnya.
c. Isolation, di mana transaksi dijalankan secara bebas. Dengan kata lain, jika
terjadi transaksi yang tidak selesai, maka transaksi lain tidak akan
terpengaruh.
d. Durability, di mana transaksi dapat tercatat secara permanen dalam basis
data dan tidak hilang karena kesalahan pada transaksi berikutnya.
Untuk menciptakan transaksi yang menciptakan hasil yang sesuai dan
dapat meningkatkan integritas dan konsistensi basis data, maka dibutuhkan
concurrency control. Concurrency control merupakan proses mengatur
kegiatan yang terjadi secara bersamaan pada basis data tanpa harus
8
mengganggu transaksi satu sama lain. Masalah yang dapat terjadi jika tidak
ada kontrol terhadap concurrency :
a. The lost update problem
Merupakan masalah yang terjadi jika data transaksi yang telah di-
update tidak diakses oleh transaksi yang lainnya. Misalnya transaksi A
melakukan perubahan pada data A. Kemudian transaksi B mengakses
data A sebelum diubah transaksi A dan kemudian melakukan perubahan
terhadap data A tersebut. Maka yang tercatat hanya perubahan data yang
dilakukan oleh transaksi B.
b. The uncommitted dependency (dirty read) problem
Masalah ini terjadi jika suatu transaksi melakukan perubahan data.
Kemudian data tersebut digunakan oleh transaksi lainnya, meskipun
transaksi yang melakukan perubahan data tersebut membatalkan
perubahan data yang dilakukan. Misalnya transaksi A mengubah data A
dan data tersebut digunakan transaksi B untuk melakukan perubahan
terhadap data A. Kemudian transaksi A membatalkan seluruh kegiatan
transaksinya, maka data A menjadi tidak akurat.
c. The inconsistent analysis problem
Masalah ini disebabkan oleh dua transaksi yang mengakses
sumber yang sama pada waktu yang bersamaan. Transaksi yang pertama
melakukan perubahan terhadap data, kemudian transaksi lainnya
menggunakan data yang belum diubah untuk menganalisa data lainnya.
Misalnya transaksi A mengubah data A. Transaksi B melakukan
9
perubahan pada data B berdasarkan data A yang belum mengalami
perubahan yang dilakukan oleh transaksi A. Ini menyebabkan data B
menjadi data yang tidak konsisten.
2.1.1 Locking Methods (Metode-metode penguncian)
Locking adalah suatu prosedur yang digunakan untuk
mengendalikan akses bersamaan pada suatu data. Saat sebuah
transaksi mengakses basisdata, suatu kunci (lock) boleh menolak
akses dari transaksi lain untuk mencegah hasil yang tidak benar. Sifat
dasar locking pada sebuah transaksi adalah transaksi harus dinyatakan
sebagai shared untuk proses baca (read) dan sepenuhnya terkunci
untuk proses tulis (write). Aturan pada locking adalah :
1. Shared lock yaitu jika suatu transaksi memiliki suatu shared lock
pada item datanya, maka data tersebut dapat dibaca namun tidak
dapat diubah.
2. Exclusive lock yaitu jika suatu transaksi memiliki suatu exclusive
lock pada item datanya, maka data tersebut dapat dibaca dan
dapat diubah.
Karena operasi baca tidak menimbulkan konflik, maka diijinkan
lebih dari 1 transaksi untuk melakukan lock bersama secara serentak
pada saat yang bersamaan. Sedangkan pada exclusive lock jika suatu
transaksi melakukan exclusive lock pada suatu item data, maka tidak
10
ada transaksi-transaksi lain dapat membaca atau mengubah item data
tersebut. Locks dapat dilakukan dengan cara sebagai berikut :
1. Setiap transaksi perlu mengakses suatu item data maka pertama-
tama ia harus meminta shared lock untuk akses baca saja atau
exclusive lock untuk akses baca dan tulis.
2. Jika item data tersebut belum dikunci oleh transaksi lain, maka lock
akan diberikan.
3. Jika item data tersebut sedang dikunci, DBMS akan menentukan
apakah permintaan tersebut cocok atau sesuai dengan kondisi
lock yang sedang aktif. Jika shared lock diminta pada saat suatu
item data tersebut sedang dalam kondisi shared lock, maka
permintaan shared lock akan diberikan. Sebaliknya jika tidak,
transaksi tersebut harus menunggu (waiting) sampai lock yang
sedang aktif dilepaskan atau dibuka.
4. Sebuah transaksi melakukan lock sampai dilepaskan pada saat
eksekusi atau saat operasi transaksi berakhir (abort atau commit).
Efek dari perubahan data dapat dilihat oleh transaksi lain hanya
pada saat exclusive lock telah dilepaskan.
Sebagai tambahan dari peraturan tersebut, beberapa sistem
mengijinkan untuk :
1. Upgrade the lock (meningkatkan penguncian) yaitu dari shared
lock ke exclusive lock.
11
2. Downgrade the lock (menurunkan penguncian) yaitu dari exclusive
lock ke shared lock.
2.1.2 Two Phase Locking (2PL)
Sebuah Transaksi menerapkan protokol 2PL jika semua operasi
locking mendahului operasi yang tak terkunci (unlock) dalam
transaksi tersebut. Menurut aturan tersebut, setiap transaksi dapat
dibagi mejadi 2 fase, yaitu :
1. Growing phase : memperoleh semua locks yang dibutuhkan tetapi
tidak dapat melepaskan satu locks pun.
2. Shrinking phase : melepaskan semua locks yang dimiliki tetapi
tidak dapat memperoleh locks yang baru.
Peraturan yang ditetapkan adalah sebagai berikut :
1. Sebuah transaksi harus memperoleh suatu lock pada suatu item
data, sebelum melakukan operasi terhadap data tersebut. Macam
lock dapat untuk read atau write tergantung kebutuhan.
2. Sekali transaksi tersebut melepaskan suatu lock, maka transaksi
tersebut tidak pernah bisa mendapatkan sejumlah lock baru yang
lain.
12
2.2 Use Case Diagram
Diagram use case adalah sebuah diagram yang menggambarkan
interaksi antara sistem, eksternal sistem dan user. Secara grafis
menggambarkan siapa yang akan menggunakan sistem dan dengan cara
bagaimana user berinteraksi dengan sistem. Use case sendiri merupakan
bagian dari keseluruhan sistem yang digambarkan dalam bentuk elips
horisontal. Nama use case sendiri tertera di atas, di bawah atau di dalam
elips. Gambar 2.1 di bawah ini merupakan simbol use case :
Gambar 2.1 Simbol Use Case
Aktor merupakan segala sesuatu yg perlu berinteraksi dengan sistem
untuk mendapat/ mengubah informasi. Aktor dapat berupa orang, organisasi,
sistem informasi yang lain, piranti luar (external device) atau waktu kejadian.
Gambar 2.2 di bawah ini merupakan simbol aktor :
Gambar 2.2 Simbol Aktor
13
2.3 Activity Diagram
Merupakan diagram yang digunakan untuk menggambarkan aliran
sebuah proses bisnis, sebuah langkah dalam use case atau logika dari sifat
objek. Notasi-notasi yang digunakan pada diagram ini antara lain:
1. Initial node : berbentuk lingkaran berwarna hitam yang menggambarkan
dimulainya suatu proses.
2. Actions : berbentuk segi empat yang sisinya melengkung. Notasi ini
menggambarkan langkah-langkah yang dilakukan secara berurutan untuk
membentuk kegiatan secara keseluruhan.
3. Flow : disimbolkan dengan anak panah yang mengindikasikan pergerakan
pada setiap kegiatan. Umumnya flow tidak diberi keterangan kecuali
digambarkan keluar dari decisions.
4. Decision : disimbolkan dengan diamond dengan satu flow yang masuk dan
dua atau lebih flow yang keluar. Flow yang keluar ditandai dengan suatu
kondisi.
5. Merge : disimbolkan dengan diamond dengan dua atau lebih flow yang
masuk dan satu flow yang keluar.
6. Fork : disimbolkan dengan bar hitam yang memiliki satu flow yang masuk
dan dua atau lebih flow yang keluar.
7. Join : disimbolkan dengan bar hitam yang memiliki dua atau lebih flow
yang masuk dan satu flow yang keluar. Semua actions yang masuk ke join
harus diselesaikan terlebih dahulu sebelum proses berlanjut.
14
8. Activity final : digambarkan dengan lingkaran hitam yang berada di dalam
lingkaran putih. Simbol ini menandakan akhir dari sebuah proses.
9. Subactivity indicator : simbol dalam aksi ini menandakan bahwa aksi
dipecah menjadi diagram aktivitas yang terpisah. Hal ini untuk membantu
agar diagram aktivitas tidak menjadi kompleks.
10. Connector : merupakan huruf di dalam lingkaran yang membantu untuk
mengatur kompleksitas. Alur masuk ke dalam konektor akan melompat
ke alur keluar dengan huruf yang sesuai.
Gambar 2.3, 2.4 dan 2.5 berikut merupakan gambar dari notasi-notasi
yang telah dijelaskan sebelumnya.
Gambar 2.3 Activity diagram poin 1 sampai 5
15
Gambar 2.4 Activity diagram poin 6 sampai 8
16
Gambar 2.5 Activity diagram poin 9 dan 10
17
2.4 Class Diagram
2.4.1 Class Diagram Analisis
Class diagram analisis merupakan gambaran grafis dari
struktur obyek statis sistem. Class diagram ini menunjukkan kelas-
kelas obyek yang menyusun sistem serta relasi diantara kelas-kelas
obyek. Obyek pada class diagram ini dapat disimpan dalam dua 2
kelas, yaitu:
Kelas Persisten adalah sebuah kelas yang mendeskripsikan
obyek yang akan tetap ada meskipun eksekusi program sudah
selesai dengan kata lain obyek tersebut disimpan secara
permanen di dalam basis data.
Kelas obyek Transien adalah sebuah kelas yang
mendeskripsikan obyek yang dibuat secara temporer dan hanya
dikenali selama program dieksekusi.
2.4.2 Class Diagram Desain
Class diagram desain merupakan sebuah diagram yang
menggambarkan kelas-kelas yang berhubungan dengan komponen
software yang digunakan untuk membangun aplikasi software.
Diagram kelas ini berisi:
a. Kelas.
b. Relasi asosiasi, generalization/specialization, dan agregasi.
c. Informasi atribut dan tipe atribut.
18
d. Metode dengan parameter.
e. Navigability.
f. Ketergantungan (dependensi).
2.5 Sequence Diagram
Sequence diagram merupakan diagram UML yang memodelkan logika
dari use case dengan menggambarkan interaksi pesan-pesan antara obyek
dalam urutan waktu. Sequence diagram terdiri-dari beberapa bagian seperti
yang terlihat pada Gambar 2.6.
Gambar 2.6 Sequence Diagram
Keterangan Gambar:
1. Actor
2. Interface class
3. Controller class
4. Entity classes
19
5. Messages
6. Activation bars
7. Return messages
8. Self-call
9. Frame
2.6 Java
Java merupakan suatu bahasa pemrograman yang bersifat object-
oriented, multi platform dan aman. Object-oriented merupakan suatu metode
pengembangan perangkat lunak di mana sebuah program merupakan
sekelompok objek yang bekerja bersama. Multi platform berarti dapat
dijalankan di berbagai macam sistem operasi jika mempunyai interpreter Java
yang dapat membaca bytecode.
2.6.1 Java 2 Platform Enterprise Edition (J2EE)
J2EE merupakan ekstensi dari J2SE(Java 2 Platform Standard
Edition) yang membuat Java Enterprise API dapat berfungsi dan dapat
diakses dengan cara diintegrasikan. J2EE digunakan untuk
membangun aplikasi enterprise berskala besar dan mempunyai
arsitektur multi-tier. Gambar 2.7 merupakan arsitektur J2EE.
20
Gambar 2.7 Arsitektur J2EE
2.6.2 JSP(Java Server Pages)
JSP merupakan salah satu komponen J2EE yang digunakan
dalam pemrograman web sebagai penghubung antara HTML dan Java.
JSP menggunakan HTTP sebagai protokol untuk melakukan
komunikasi seperti meminta ke server dan merespon ke client. Hal ini
yang membuat JSP menjadi teknologi Web yang ideal untuk
digunakan.
Dalam arsitekturnya, JSP bergantung pada Java Servlet API
dan implementasi. Walaupun JSP ditulis oleh pembangun aplikasi,
tetapi pada akhirnya akan dikonversi ke Java Servlet. Implementasi
kelas pada JSP sebenarnya mendasari representasi servlet pada JSP.
Pembangun aplikasi dapat membuat komponen-komponen JSP
menggunakan element yang sesuai untuk penyajian seperti HTML,
XML, perintah-perintah JSP dan bahasa lainnya. Keuntungan yang
dihasilkan oleh Java Servlet dan komponen JSP sama karena kedua
21
teknologi tersebut dilihat secara umum sebagai komponen Web dalam
J2EE yang merupakan mekanisme untuk konfigurasi dan manajemen
layanan. Gambar 2.8 beikut merupakan arsitektur JSP.
Gambar 2.8 Arsitektur JSP
2.7 SQL (Structured Query Language)
SQL merupakan suatu bahasa yang digunakan untuk mengakses basis
data. SQL dapat digunakan untuk menjelaskan struktur dari suatu data,
modifikasi data pada basis data dan menetapkan batasan keamanan. SQL
mempunyai terbagi atas beberapa bagian, yaitu :
a. Data-Definition Language(DDL) yang menyediakan perintah untuk
menjelaskan relasi, menghapus relasi dan memodifikasi relasi. DDL
menyediakan perintah-perintah seperti :
22
1. CREATE nama_objek
2. ALTER nama_objek
3. DROP nama_objek
b. Data-Manipulation Language (DML) yang merupakan bahasa query
berbasis relational algebra dan tuple relational calculus. DML
menyediakan perintah-perintah seperti :
1. SELECT
Digunakan untuk membaca data dari basis data. Bentuk umum
perintah ini adalah :
SELECT * | {[DISTINCT|DISTINCTROW] column |
expression[alias], …}
FROM table
[WHERE condition(s)] [GROUP BY condition(s)] [HAVING
condition(s)]
[ORDER BY condition(s) [ASC|DEC]]
2. INSERT
Digunakan untuk menambahkan satu atau lebih data dari basis data.
Bentuk umum perintah ini adalah :
23
INSERT INTO table (column1, column2, [columnN]) VALUES
(value1, value2, [valueN])
3. UPDATE
Digunakan untuk mengubah data pada satu atau lebih baris data pada
tabel. Bentuk umum perintah ini adalah :
UPDATE table SET column1 = value1, column2 = value2,
[columnN = valueN] [WHERE id_column = value]
4. DELETE
Digunakan untuk menghapus satu atau lebih data dari suatu tabel.
Bentuk umum perintah ini adalah :
DELETE FROM tablename [where field1 = value1 [AND | OR]
field2 = value2 [AND | OR] fieldN = valueN]
c. View-Definition yang merupakan bagian dari DDL yang menyediakan
perintah view untuk melihat data dari satu tabel atau lebih.
d. Transaction control yang menyediakan perintah untuk memulai dan
mengakhiri transaksi.
e. Embedded SQL yang menjelaskan di mana perintah SQL dapat
diintegrasikan ke dalam bahasa pemrograman seperti C, C++, Java, Cobol,
Pascal dan lain-lain.
24
f. Integrity yang merupakan bagian dari DDL yang menyediakan perintah
untuk menspesifikasi integritas data yang masuk ke basis data.
g. Authorization yang merupakan bagian dari DDL yang menyediakan
perintah untuk menspesifikasi aturan akses.
25
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Sistem yang Ada Saat Ini
Ketika pembeli ingin membeli barang komputer, maka pembeli akan
langsung ke toko komputer untuk merakit komputer. Perakitan komputer
dapat dilakukan oleh pembeli ataupun penjual. Setelah melakukan perakitan,
maka penjual akan memberikan nota sebagai bukti transaksi. Proses ini
kemudian dilanjutkan dengan pembayaran. Penjual kemudian mencatat
proses penjualan ke buku penjualan. Toko juga dapat membantu pembeli
untuk melakukan retur barang selama masa garansi masih berlaku. Rekap
laporan penjualan dilakukan 1 minggu sekali.
Pada proses pembelian barang, nota pembelian yang diperoleh dari
distributor akan dicatat ke dalam buku pembelian. Kemudian dari buku
pembelian, akan dicatat stok barang yang bertambah sesuai dengan
pembelian yang dilakukan. Rekap laporan pembelian dilakukan 1 minggu
sekali.
3.2 Sistem yang Akan Dibangun
Sistem akan melakukan proses bisnis dari toko secara komputerisasi
meliputi pencatatan pembelian, penjualan, retur penjualan dan pencetakan
laporan. Sistem dibangun dengan berbasis website. Sistem juga akan
memberikan keleluasan bagi pembeli untuk melakukan perakitan komputer
26
melalui website. Setelah itu pembeli dapat mengambil barang dan melakukan
pembayaran ke toko.
Selain membantu proses bisnis, pembeli atau pengunjung website juga
dapat berinteraksi dengan penjual dengan memberi komentar atau
pertanyaan. Pembeli atau pengunjung website juga dapat memperoleh berita
terbaru seputar komputer.
3.3 Diagram Konteks
Gambar 3.1 berikut merupakan diagram konteks sistem.
Gambar 3.1 Diagram Konteks
3.4 Diagram Use case
Gambar 3.2 berikut merupakan diagram use case sistem.
27
Pegawai
Pemilik
Pembeli
Log in
Merakit Komputer
Subsistem Komentar
Mengisi komentar
Menjawab komentar
Menghapus komentar
Subsistem Data Barang
Mengisi data barang
Mengubah data barang
Menghapus data barang
Subsistem Berita
Mengisi berita
Mengubah berita
Menghapus berita
Log out
Cetak laporan
<<depends on>>
<<depends on>>
<<depends on>><<depends on>>
<<depends on>>
<<depends on>>
Membuat account baru
Menghapus account
<<depends on>>
Subsistem Data Pembelian
Mengisi data pembelian
Mengubah data pembelian
Menghapus data pembelian
Subsistem Data Penjualan
Mengubah status
penjualan
Menghapus data penjualan
Mencatat retur barang
<<depends on>>
Mencari data barang
Admin
«extends»
«extends»
<<depends on>>
<<depends on>>
Gambar 3.2 Diagram Use-case
28
29
3.4.1 Ringkasan Use case
Ringkasan use-case sistem yang memuat use-case, deskripsi dan
pelaku yang berpartisipasi dapat dilihat pada :
Tabel 3.1 Ringkasan Use-case
No Nama Use-case Deskripsi Use-case Pelaku yang berpartisipasi
1 Log in Use case ini menggambarkan
proses untuk masuk ke sistem
Administrasi
Pegawai , Pemilik (primary
business)
2 Log out Use case ini menggambarkan
proses untuk keluar ke sistem
Administrasi
Pegawai , Pemilik (primary
business)
3 Merakit komputer Use case ini menggambarkan
proses merakit komputer dan
memperoleh bukti transaksi
Pembeli (primary business)
4 Mengisi data
pembelian
Use case ini menggambarkan
proses pencatatan data barang
yang telah dibeli dari distributor
Pegawai , Pemilik (primary
business)
5 Mengubah data
pembelian
Use case ini menggambarkan
proses pengubahan data
pembelian. Proses ini dapat berupa
penambahan data barang ataupun
pengubahan detail data pembelian
Pegawai , Pemilik (primary
business)
6 Menghapus data Use case ini menggambarkan Pegawai , Pemilik (primary
30
pembelian proses penghapusan data
pembelian
business)
7 Mengubah status
penjualan
Use case ini menggambarkan
proses pengubahan status dari
suatu penjualan
Pegawai , Pemilik (primary
business)
8 Menghapus data
penjualan
Use case ini menggambarkan
proses penghapusan data
penjualan
Pegawai , Pemilik (primary
business)
9 Mengisi komentar Use case ini menggambarkan
proses untuk pengisian komentar
Pembeli (primary business)
10 Menjawab
komentar
Use case ini menggambarkan
proses menjawab komentar yang
telah diisi oleh Pembeli
Pegawai , Pemilik (primary
business)
11 Menghapus
komentar
Use case ini menggambarkan
proses penghapusan komentar
Pegawai , Pemilik (primary
business)
12 Mengisi berita Use case ini menggambarkan
proses pengisian berita
Pegawai , Pemilik (primary
business)
13 Mengubah berita Use case ini menggambarkan
proses mengubah berita yang telah
ada
Pegawai , Pemilik (primary
business)
14 Menghapus berita Use case ini menggambarkan
proses penghapusan berita
Pegawai , Pemilik (primary
business)
15 Mengisi data Use case ini menggambarkan Pegawai , Pemilik (primary
31
barang proses penambahan data barang business)
16 Mengubah data
barang
Use case ini menggambarkan
proses pengubahan data barang
yang ada
Pegawai , Pemilik (primary
business)
17 Menghapus data
barang
Use case ini menggambarkan
proses penghapusan data barang
Pegawai , Pemilik (primary
business)
18 Mencari data
barang
Use case ini menggambarkan
proses pencarian data barang
Pegawai , Pemilik (primary
business)
19 Cetak laporan Use case ini menggambarkan
proses pencetakan laporan
Pegawai , Pemilik (primary
business)
20 Membuat account
baru
Use case ini menggambarkan
proses pembuatan account baru
untuk Pegawai
Pemilik (primary business)
21 Menghapus account Use case ini menggambarkan
proses penghapusan data Pegawai
Pemilik (primary business)
22 Mencatat retur
barang
Use case ini menggambarkan
proses pencatatan barang yang
akan diretur
Pegawai , Pemilik (primary
business)
3.4.2 Narasi Use-case
Narasi Use-case Log in dapat dilihat pada :
Tabel 3.2 Narasi Use-case Log in
32
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Log in Jenis Use-case Use-case ID: DTK-001 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses masuk ke sistem Proses ini berguna untuk menjaga keamanan dalam mengakses data.
Precondition: Pegawai / Pemilik telah memiliki password dan Pembeliname. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
akan mengakses atau melakukan manipulasi data. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengakses halaman Log in. Step 3: Pegawai / Pemilik memasukkan username dan password. Step 4: Pegawai / Pemilik mengklik tombol OK
Step 2: Sistem meminta Pegawai / Pemilik memasukkan username dan password. Step 5: Sistem mengecek validasi username dan password di database. Step 6: Sistem masuk ke menu utama Admin.
Alternate Course:
Alt-Step 4: Pegawai tidak jadi memasukkan username dan password dengan mengklik tombol BATAL. Alt-Step 5: Jika username dan password yang diinputkan tidak sesuai, maka sistem akan memberikan peringatan dan secara otomatis kembali ke halaman Log in.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil masuk ke menu utama Pegawai.
Postcondition: • Pegawai / Pemilik berhasil masuk ke menu utama Admin. • Pegawai / Pemilik tidak berhasil masuk ke menu utama Admin.
Business Rules: Pegawai / Pemilik memasukkan username dan password yang benar. Implementation Constrains and
Tampilan sistem berupa Web.
33
Narasi Use-case Log out dapat dilihat pada :
Tabel 3.3 Narasi Use-case Log out
Specifications: Assumptions: - Open issues: Karena tidak hanya satu orang saja yang mengakses data-data yang
ada dikhawatirkan data yang harusnya tidak boleh dilihat oleh orang yang tidak memiliki wewenang pada akhirnya juga dapat dilihat.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Log out Jenis Use-case Use-case ID: DTK-002 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses keluar dari sistem Proses ini berguna untuk menjaga keamanan setelah mengakses sistem.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik ingin
keluar dari sistem. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik Log out.
Step 2: Sistem akan keluar.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik telah keluar dari sistem.
Postcondition: Pegawai / Pemilik kembali ke menu Log in. Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web.
Assumptions: - Open issues: Karena tidak hanya satu orang saja yang mengakses data-data yang
34
Narasi Use-case Merakit komputer dapat dilihat pada :
Tabel 3.4 Narasi Use-case Merakit komputer
ada dikhawatirkan data yang harusnya tidak boleh dilihat oleh orang yang tidak memiliki wewenang pada akhirnya juga dapat dilihat.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Merakit komputer Jenis Use-case Use-case ID: DTK-003 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pembeli
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses perakitan komputer. Proses ini berguna untuk transaksi pembelian barang komputer. Dalam proses ini Pembeli melakukan perakitan dan mendapatkan kode transaksi untuk kemudian melakukan pembayaran dengan kode tersebut.
Precondition: Pembeli mengakses menu utama sistem. Trigger: Use case ini akan digunakan apabila ada Pembeli ingin melakukan
transaksi pembelian barang komputer. Typical Course of event:
Actor Action System Response Step 1: Pembeli meng-klik menu produk Step 4: Pembeli mengklik menu cart untuk memasukkan produk tersebut ke keranjang belanja. Step 5: Untuk mengakses data belanja, Pembeli meng-klik menu belanja.
Step 2: Sistem akan masuk ke menu produk. Step 3: Sistem menampilkan data-data produk komputer. Step 6: Sistem menampilkan form untuk mengisi identitas diri dan mengisi jumlah produk yang akan
35
Narasi Use-case Mengisi data pembelian dapat dilihat pada :
Tabel 3.5 Narasi Use-case Mengisi data pembelian
Step 7: Pembeli mengisi data jumlah produk kemudian meng-klik OK untuk menyetujui transaksi.
dibeli. Step 8: Sistem menyimpan data transaksi yang telah disetujui oleh Pembeli. Step 9: Sistem memberitahukan bahwa proses pembelian berhasil dan memberikan kode transaksi untuk melakukan pembayaran.
Alternate Course:
Alt-Step 6: Pembeli dapat membatalkan pembelian produk dengan meng-klik menu hapus pada data produk. Alt-Step 7: Pembeli membatalkan transaksi dengan meng-klik tombol BATAL.
Conclusion: Use case ini berhenti apabila Pembeli telah menyetujui transaksi atau membatalkan transaksi.
Postcondition: • Pembeli berhasil melakukan pembelian produk. • Pembeli tidak berhasil melakukan pembelian produk.
Business Rules: Pembeli yang melakukan transaksi harus memberikan identitas diri yang sebenarnya.
Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi pilihan-pilihan barang komputer yang dapat dibeli. Pembeli hanya perlu meng-klik tombol yang disediakan untuk melakukan perakitan dan transaksi.
Assumptions: - Open issues: Terkadang Pembeli malas untuk merakit komputer langsung di toko
komputer karena suasana dan kondisi toko komputer yang ramai dan kurang nyaman.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengisi data pembelian Jenis Use-case Use-case ID: DTK-004 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other -
36
Participating Actor: Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pencatatan data pembelian. Pencatatan pembelian dilakukan berdasarkan faktur pembelian yang ada.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan jika Pemilik / Pegawai akan melakukan
pencatatan barang yang telah dibeli. Typical Course of event:
Actor Action System Response Step 1: Pemilik / Pegawai meng-klik menu pembelian. Step 4: Pemilik / Pegawai meng-klik menu tambah untuk melakukan penambahan data pembelian. Step 6: Pemilik / Pegawai mengisi data pembelian dan data barang pada form penambahan data pembelian.
Step 2: Sistem akan masuk ke menu pembelian. Step 3: Sistem menampilkan data-data pembelian yang telah ada dalam database. Step 5: Sistem menampilkan form penambahan data pembelian. Step 7: Sistem menyimpan data pembelian yang telah diisikan.
Alternate Course:
Alt-Step 6: Pemilik / Pegawai tidak jadi mencatat data pembelian dengan meng-klik tombol Batal.
Conclusion: Use case ini berhenti apabila Pemilik / Pegawai telah mengisikan semua data pembelian.
Postcondition: • Pemilik / Pegawai berhasil mengisikan data pembelian beserta detail data barang yang dibeli.
• Pemilik / Pegawai tidak berhasil mengisikan data pembelian beserta detail data barang yang dibeli.
Business Rules: Pemilik / Pegawai harus memiliki faktur pembelian yang belum dicatat untuk kemudian diisikan.
Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi inputan untuk mengisikan data pembelian. Pada saat mengisi data pembelian baru, semua data harus diisikan. Jika data pembelian sudah ada, Pemilik / Pegawai hanya perlu mengisikan data barang saja.
Assumptions: -
37
Narasi Use-case Mengubah data pembelian dapat dilihat pada :
Tabel 3.6 Narasi Use-case Mengubah data pembelian
Open issues: Pemilik / Pegawai perlu untuk mencatat data pembelian agar dapat melakukan penyesuaian antara stok barang yang tercatat dan yang tersedia.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengubah data pembelian Jenis Use-case Use-case ID: DTK-005 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengubahan data pembelian jika terjadi kesalahan pada saat melakukan penambahan.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan jika Pemilik / Pegawai akan melakukan
kesalahan pencatatan data pembelian. Typical Course of event:
Actor Action System Response Step 1: Pemilik / Pegawai meng-klik menu pembelian. Step 4: Pemilik / Pegawai meng-klik menu ubah untuk melakukan pengubahan data pembelian. Step 6: Pemilik / Pegawai mengubah data pembelian yang salah dan meng-klik Simpan untuk menyimpan
Step 2: Sistem akan masuk ke menu pembelian. Step 3: Sistem menampilkan data-data pembelian yang telah ada dalam database. Step 5: Sistem menampilkan form untuk mengubah data pembelian. Step7: Sistem menyimpan data pembelian yang telah diubah dan
38
Narasi Use-case Menghapus data pembelian dapat dilihat pada :
Tabel 3.7 Narasi Use-case Menghapus data pembelian
data.
kembali ke halaman pembelian.
Alternate Course:
Alt-Step 5: Pemilik / Pegawai tidak jadi mengubah data pembelian dengan meng-klik tombol Batal.
Conclusion: Use case ini berhenti apabila Pemilik / Pegawai telah mengganti data pembelian yang salah dalam pencatatan.
Postcondition: • Pemilik / Pegawai berhasil mengubah data pembelian beserta detail data barang yang dibeli.
• Pemilik / Pegawai tidak berhasil mengubah data pembelian beserta detail data barang yang dibeli.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi data pembelian yang akan diubah. Data yang diubah hanya data pembelian, tidak data barang dari pembelian.
Assumptions: - Open issues: Pemilik / Pegawai perlu untuk melakukan perubahan terhadap data
pembelian jika terjadi kesalahan pencatatan pada saat melakukan penambahan data pembelian.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus data pembelian Jenis Use-case Use-case ID: DTK-006 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses penghapusan data pembelian jika data tidak digunakan dan sudah diarsipkan.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan jika Pemilik / Pegawai akan menghapus
data-data pembelian yang tidak digunakan. Typical Course Actor Action System Response
39
Narasi Use-case Mengubah status penjualan dapat dilihat pada :
Tabel 3.8 Narasi Use-case Mengubah status penjualan
of event: Step 1: Pemilik / Pegawai meng-klik menu pembelian. Step 4: Pemilik / Pegawai meng-klik menu hapus untuk melakukan penghapusan data pembelian.
Step 2: Sistem akan masuk ke menu pembelian. Step 3: Sistem menampilkan data-data pembelian yang telah ada dalam database. Step 5: Sistem menghapus data pembelian dan kembali ke halaman pembelian.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pemilik / Pegawai berhasil menghapus data pembelian.
Postcondition: • Pemilik / Pegawai berhasil menghapus data pembelian. • Pemilik / Pegawai tidak berhasil menghapus data pembelian.
Business Rules: Data yang dihapus sebaiknya merupakan data yang sudah diarsipkan agar dapat kembali direkap jika diperlukan.
Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi data-data pembelian di mana terdapat menu untuk menghapus pada setiap datanya.
Assumptions: - Open issues: Pemilik / Pegawai perlu melakukan proses penghapusan data untuk
mengurangi jumlah data pembelian sehingga tidak terjadi penumpukan data di database.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengubah status penjualan Jenis Use-case Use-case ID: DTK-007 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
40
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengubahan status penjualan. Status penjualan berubah jika pembeli telah melakukan pembayaran terhadap barang pesanan atau data pesanan telah habis masa pembayarannya.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan jika Pemilik / Pegawai akan mengubah
status terhadap suatu data penjualan. Typical Course of event:
Actor Action System Response Step 1: Pemilik / Pegawai meng-klik menu penjualan. Step 4: Pemilik / Pegawai meng-klik menu ubah untuk melakukan pengubahan data penjualan. Step 6: Pemilik / Pegawai mengganti status dari data penjualan.
Step 2: Sistem akan masuk ke menu penjualan. Step 3: Sistem menampilkan data-data penjualan yang telah ada dalam database. Step 5: Sistem menampilkan form yang berisi data penjualan yang akan diubah. Step 7: Sistem melakukan perubahan terhadap data penjualan dan kembali ke halaman penjualan.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pemilik / Pegawai berhasil mengganti status dari suatu data penjualan.
Postcondition: • Pemilik / Pegawai berhasil mengubah data penjualan. • Pemilik / Pegawai tidak berhasil mengubah data penjualan .
Business Rules: Data yang akan diubah adalah data penjualan yang telah berhasil melakukan pembayaran ataupun data penjualan yang telah habis masa pembayarannya.
Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi detail data penjualan. Pada form ini hanya dapat dilakukan pengubahan data status penjualan saja.
41
Narasi Use-case Menghapus data penjualan dapat dilihat pada :
Tabel 3.9 Narasi Use-case Menghapus data penjualan
Assumptions: - Open issues: Pemilik / Pegawai perlu melakukan proses pengubahan status
penjualan untuk menjamin kebenaran data stok barang jika suatu penjualan batal.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus data penjualan Jenis Use-case Use-case ID: DTK-008 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses penghapusan data penjualan yang tidak digunakan dan telah direkap.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan jika Pemilik / Pegawai akan menghapus
data penjualan yang tidak digunakan. Typical Course of event:
Actor Action System Response Step 1: Pemilik / Pegawai meng-klik menu penjualan. Step 4: Pemilik / Pegawai meng-klik menu hapus untuk melakukan penghapusan data penjualan.
Step 2: Sistem akan masuk ke menu penjualan. Step 3: Sistem menampilkan data-data penjualan yang telah ada dalam database. Step 5: Sistem akan menghapus data penjualan yang dipilih dan kembali
42
Narasi Use-case Mengisi komentar dapat dilihat pada :
Tabel 3.10 Narasi Use-case Mengisi komentar
ke menu penjualan. Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pemilik / Pegawai berhasil menghapus data penjualan.
Postcondition: • Pemilik / Pegawai berhasil menghapus data penjualan. • Pemilik / Pegawai tidak berhasil menghapus data penjualan .
Business Rules: Data yang dihapus adalah data yang status penjualannya batal atau sudah bayar.
Implementation Constrains and Specifications:
Tampilan sistem berupa form yang disajikan dalam Web. Form ini berisi detail data penjualan. Untuk menghapus data penjualan langsung dengan meng-klik menu hapus.
Assumptions: - Open issues: Pemilik / Pegawai perlu melakukan proses penghapusan data
penjualan untuk menghindari penumpukan data penjualan pada database sehingga akses data penjualan menjadi lebih cepat.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengisi komentar Jenis Use-case Use-case ID: DTK-009 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pembeli
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengisian komentar. Proses ini berguna bagi Pembeli untuk memberi pertanyaan ataupun komentar seputar masalah komputer.
Precondition: Pembeli mengakses menu utama sistem. Trigger: Use case ini akan digunakan apabila ada Pembeli yang akan
memberi komentar atau pertanyaan. Typical Course of event:
Actor Action System Response Step 1: Pembeli mengakses Step 2: Sistem menampilkan
43
Narasi Use-case Menjawab komentar dapat dilihat pada :
Tabel 3.11 Narasi Use-case Menjawab komentar
menu Komentar. Step 3: Pembeli mengisikan form yang telah tersedia. Step 4: Pembeli mengklik tombol KIRIM
komentar-komentar dan form untuk mengisikan komentar Step 5: Sistem menyimpan komentar ke database. Step 6: Sistem menampilkan komentar yang masuk ke database.
Alternate Course:
Alt-Step 4: Pembeli tidak jadi mengisikan form komentar dengan mengklik tombol BATAL.
Conclusion: Use case ini berhenti apabila Pembeli berhasil memasukkan komentar atau membatalkan pengisian komentar.
Postcondition: Pembeli berhasil mengirimkan komentar. Pembeli tidak jadi mengirimkan komentar.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat komentar-komentar yang telah masuk dan jawabannya, serta form untuk mengisikan komentar.
Assumptions: - Open issues: Pembeli ingin tahu seputar masalah komputer dan memberi
komentar kepada toko komputer.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menjawab Komentar Jenis Use-case Use-case ID: DTK-010 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
44
Narasi Use-case Menghapus komentar dapat dilihat pada :
Tabel 3.12 Narasi Use-case Menghapus komentar
Description: Use case ini menggambarkan proses menjawab komentar yang telah diisikan oleh Pembeli. Komentar yang dijawab adalah komentar yang berupa pertanyaan yang berhubungan dengan komputer.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
akan menjawab komentar yang telah diberikan oleh Pembeli. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Komentar. Step 3: Pegawai / Pemilik memilih komentar yang akan dijawab kemudian mengklik tombol JAWAB. Step 5: Pegawai / Pemilik mengisikan jawaban pada form yang telah tersedia. Step 6: Pegawai / Pemilik mengklik OK untuk menyetujui jawaban komentar.
Step 2: Sistem akan menampilkan komentar-komentar yang ada pada database. Step 4: Sistem akan menampilkan form untuk menjawab komentar. Step 7: Sistem akan menampilkan pesan bahwa jawaban komentar berhasil dimasukkan.
Alternate Course:
Alt-Step 6: Pembeli tidak jadi mengisikan form komentar dengan mengklik tombol BATAL. Alt-Step 7: Sistem akan menampilkan pesan bahwa jawaban komentar tidak berhasil dimasukkan.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik telah berhasil mengisi komentar.
Postcondition: Pegawai / Pemilik berhasil menjawab komentar. Pegawai / Pemilik tidak jadi menjawab komentar.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data komentar dan pilihan untuk menjawab setiap komentar.
Assumptions: - Open issues: Pegawai / Pemilik perlu untuk berinteraksi dengan Pembeli.
45
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus komentar Jenis Use-case Use-case ID: DTK-011 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses penghapusan komentar atau pertanyaan. Komentar atau pertanyaan yang dihapus adalah komentar yang tidak sesuai dengan masalah komputer.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
ingin menghapus komentar. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Komentar. Step 3: Pegawai / Pemilik memilih komentar yang akan dihapus. Step 4: Pegawai / Pemilik meng-klik HAPUS.
Step 2: Sistem akan menampilkan komentar-komentar yang ada pada database. Step 5: Sistem akan menghapus komentar dari database.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik telah keluar dari sistem.
Postcondition: Pegawai / Pemilik berhasil menghapus komentar. Pegawai / Pemilik tidak berhasil menghapus komentar.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data komentar dan pilihan untuk menghapus setiap komentar.
Assumptions: - Open issues: Pegawai / Pemilik perlu melakukan seleksi terhadap komentar atau
pertanyaan yang ada. Jika tidak sesuai, maka komentar atau
46
Narasi Use-case Mengisi berita dapat dilihat pada :
Tabel 3.13 Narasi Use-case Mengisi berita
pertanyaan tersebut dihapus.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengisi berita Jenis Use-case Use-case ID: DTK-012 Business Requirements: √ Priority: High Source: Majalah, Internet Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengisian berita. Berita yang diisikan adalah berita seputar komputer atau informasi terbaru yang dimiliki oleh toko komputer.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
ingin mengisikan berita. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Berita. Step 3: Pegawai / Pemilik meng-klik TAMBAH. Step 5: Pegawai / Pemilik mengisi data berita. Step 6: Pegawai / Pemilik mengklik OK untuk memasukkan berita.
Step 2: Sistem akan menampilkan data-data berita yang ada di database. Step 4: Sistem menampilkan form untuk memasukkan berita. Step 7: Sistem akan memasukkan data berita ke database. Step 8: Sistem akan menampilkan pesan bahwa data berita berhasil dimasukkan.
Alternate Alt-Step 6: Pembeli tidak jadi mengisi berita dengan meng-klik
47
Narasi Use-case Mengubah berita dapat dilihat pada :
Tabel 3.14 Narasi Use-case Mengubah berita
Course: tombol BATAL. Alt-Step 8: Sistem akan menampilkan pesan bahwa data berita tidak berhasil dimasukkan.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil memasukkan data berita.
Postcondition: Pegawai / Pemilik berhasil memasukkan berita. Pegawai / Pemilik tidak berhasil memasukkan berita.
Business Rules: Pegawai / Pemilik mempunyai data berita yang lengkap. Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data berita dan pilihan untuk menambah berita. Jika Pembeli meng-klik TAMBAH maka akan ditampilkan form untuk mengisi berita baru.
Assumptions: - Open issues: Pegawai / Pemilik merasa perlu untuk memberi informasi terbaru
tentang komputer. Hal ini merupakan salah satu cara Pegawai / Pemilik untuk berinteraksi dengan pengunjung Website agar tertarik untuk mengaksesnya.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengubah berita Jenis Use-case Use-case ID: DTK-013 Business Requirements: √ Priority: Low Source: Majalah, Internet Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengubahan berita. Berita yang diubah adalah berita yang salah dalam pemasukkannya ataupun berita yang informasinya salah.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pegawai / Pemilik ingin
48
memperbaiki berita yang telah ada. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Berita. Step 3: Pegawai / Pemilik memilih data berita dan meng-klik UBAH. Step 5: Pegawai / Pemilik mengubah data berita. Step 6: Pegawai / Pemilik mengklik OK untuk menyimpan data berita yang diubah.
Step 2: Sistem akan menampilkan data-data berita yang ada di database. Step 4: Sistem menampilkan form yang telah berisi data berita yang akan diubah. Step 7: Sistem akan memasukkan data berita yang diubah ke database. Step 8: Sistem akan menampilkan pesan bahwa data berita berhasil diubah.
Alternate Course:
Alt-Step 6: Pembeli tidak jadi mengubah berita dengan meng-klik tombol BATAL. Alt-Step 8: Sistem akan menampilkan pesan bahwa data berita tidak berhasil disimpan.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil menyimpan data berita.
Postcondition: Pegawai / Pemilik berhasil mengubah berita. Pegawai / Pemilik tidak berhasil mengubah berita.
Business Rules: Pegawai / Pemilik mempunyai data berita yang lengkap. Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data berita dan pilihan untuk mengubah berita. Jika Pembeli meng-klik UBAH maka akan ditampilkan form untuk mengubah berita.
Assumptions: - Open issues: Kesalahan dalam pemasukkan data sering terjadi. Selain itu, berita
yang diperoleh tidak sepenuhnya akurat dan terpercaya.
49
Narasi Use-case Menghapus berita dapat dilihat pada :
Tabel 3.15 Narasi Use-case Menghapus berita
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus berita Jenis Use-case Use-case ID: DTK-014 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses penghapusan berita. Berita yang dihapus adalah berita yang salah informasinya dan berita yang sudah lama.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pegawai / Pemilik ingin
menghapus berita. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Berita. Step 3: Pegawai / Pemilik memilih berita yang akan dihapus. Step 4: Pegawai / Pemilik meng-klik HAPUS.
Step 2: Sistem akan menampilkan data berita yang ada pada database. Step 5: Sistem akan menghapus berita dari database.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil menghapus data berita.
Postcondition: Pegawai / Pemilik berhasil menghapus berita. Pegawai / Pemilik tidak berhasil menghapus berita.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data berita dan pilihan untuk menghapus berita. Jika Pembeli meng-klik HAPUS maka akan ditampilkan form untuk
50
Narasi Use-case Mengisi data barang dapat dilihat pada :
Tabel 3.16 Narasi Use-case Mengisi data barang
menghapus berita. Assumptions: - Open issues: Kesalahan dalam mengambil berita untuk dimasukkan ke Website
sering terjadi. Selain itu juga penghapusan berita-berita yang lama perlu dilakukan untuk mencegah data yang terlalu banyak.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengisi data barang Jenis Use-case Use-case ID: DTK-015 Business Requirements: √ Priority: High Source: Nota Pembelian Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengisian data barang. Barang yang dibeli dari distributor langsung disimpan ke database.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
ingin mengisikan data barang. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Pembelian. Step 3: Pegawai / Pemilik meng-klik detail. Step 5: Pegawai / Pemilik meng-klik tambah. Step 7: Pegawai / Pemilik mengisi data barang dan mengklik OK untuk
Step 2: Sistem akan menampilkan data-data pembelian yang ada di database. Step 4: Sistem menampilkan data-data pembelian barang. Step 6: Sistem akan menampilkan form pengisian data barang. Step 8: Sistem akan memasukkan data barang ke database.
51
Narasi Use-case Mengubah data barang dapat dilihat pada :
Tabel 3.17 Narasi Use-case Mengubah data barang
memasukkan data barang. Alternate Course:
Alt-Step 7: Pembeli tidak jadi mengisi barang dengan meng-klik tombol BATAL.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil memasukkan data barang.
Postcondition: Pegawai / Pemilik berhasil memasukkan data barang. Pegawai / Pemilik tidak berhasil memasukkan data barang.
Business Rules: Pegawai / Pemilik mempunyai data barang yang lengkap. Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data barang dari suatu data pembelian dan pilihan untuk menambah data barang. Jika Pembeli meng-klik TAMBAH maka akan ditampilkan form untuk mengisi data barang baru.
Assumptions: - Open issues: Dalam penyimpanan barang terdapat barang-barang baru yang perlu
dicatat agar informasi tentang barang tersebut dapat diakses.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mengubah data barang Jenis Use-case Use-case ID: DTK-016 Business Requirements: √ Priority: High Source: Nota Pembelian Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pengubahan data barang. Data barang yang diubah adalah data barang yang mengalami penambahan stok.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pegawai / Pemilik ingin
mengubah data barang yang ada. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Barang.
Step 2: Sistem akan menampilkan data-data barang yang ada di
52
Step 3: Pegawai / Pemilik memilih data barang dan meng-klik UBAH. Step 5: Pegawai / Pemilik mengubah data barang. Step 6: Pegawai / Pemilik mengklik OK untuk menyimpan data barang yang diubah.
database. Step 4: Sistem menampilkan form yang telah berisi data barang yang akan diubah. Step 7: Sistem akan menyimpan data barang yang diubah ke database. Step 8: Sistem akan menampilkan pesan bahwa data barang berhasil diubah.
Alternate Course:
Alt-Step 6: Pembeli tidak jadi mengubah data barang dengan meng-klik tombol BATAL. Alt-Step 8: Sistem akan menampilkan pesan bahwa data barang tidak berhasil disimpan.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil menyimpan data barang.
Postcondition: Pegawai / Pemilik berhasil mengubah data barang. Pegawai / Pemilik tidak berhasil mengubah data barang.
Business Rules: Pegawai / Pemilik mempunyai data barang yang akan diubah. Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data barang dan pilihan untuk mengubah. Jika Pembeli meng-klik UBAH maka akan ditampilkan form untuk mengubah data barang.
Assumptions: - Open issues: Data-data barang yang telah dicatat dapat mengalami perubahan
khususnya kuantitas barang.
53
Narasi Use-case Menghapus data barang dapat dilihat pada :
Tabel 3.18 Narasi Use-case Menghapus data barang
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus data barang Jenis Use-case Use-case ID: DTK-017 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses penghapusan data barang. Data barang yang akan dihapus adalah data barang yang tidak dijual lagi oleh toko komputer.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pegawai / Pemilik ingin
menghapus data barang. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Barang. Step 3: Pegawai / Pemilik memilih data barang yang akan dihapus. Step 4: Pegawai / Pemilik meng-klik HAPUS.
Step 2: Sistem akan menampilkan data barang yang ada pada database. Step 5: Sistem akan menghapus data barang dari database.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil menghapus data barang.
Postcondition: Pegawai / Pemilik berhasil menghapus data barang. Pegawai / Pemilik tidak berhasil menghapus data barang.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat tabel yang menampilkan data-data berita dan pilihan untuk menghapus data barang.
54
Narasi Use-case Mencari data barang dapat dilihat pada :
Tabel 3.19 Narasi Use-case Mencari data barang
Assumptions: - Open issues: Data barang-barang yang tidak diproduksi atau tidak dijual lagi tidak
perlu disimpan.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mencari data barang Jenis Use-case Use-case ID: DTK-018 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pembeli
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pencarian data barang. Barang dicari sesuai dengan kategori yang diinginkan.
Precondition: Pembeli telah mengakses website. Trigger: Use case ini akan digunakan apabila Pembeli ingin mencari data
barang / produk yang mereka inginkan. Typical Course of event:
Actor Action System Response Step 1: Pembeli masuk ke website. Step 3: Pembeli memasukkan kata kunci yang sesuai dan meng-klik CARI.
Step 2: Sistem akan menampilkan inputan untuk pencarian produk di setiap menu. Step 4: Sistem melakukan pencarian data barang sesuai dengan kata kunci yang dimasukkan kemudian menampilkan hasil pencarian.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Sistem berhasil menampilkan hasil pencarian data barang.
Postcondition: Pegawai / Pemilik memperoleh hasil pencarian. Pegawai / Pemilik tidak memperoleh hasil pencarian.
Business Rules: -
55
Narasi Use-case Cetak laporan dapat dilihat pada :
Tabel 3.20 Narasi Use-case Cetak laporan
Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana pada setiap menu terdapat inputan untuk melakukan pencarian berdasarkan kata kunci dan kategori yang diinginkan.
Assumptions: - Open issues: Barang-barang komputer mempunyai jenis dan merk yang berbeda-
beda. Pencarian secara manual akan memerlukan waktu yang cukup lama.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Cetak laporan Jenis Use-case Use-case ID: DTK-019 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pegawai, Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pencetakan laporan penjualan dan laporan pembelian.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pegawai / Pemilik ingin
mencetak laporan. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik mengklik menu Cetak Laporan pada menu pembelian atau penjualan. Step 3: Pegawai / Pemilik memilih tanggal yang diinginkan kemudian klik OK. Step 5: Pegawai / Pemilik
Step 2: Sistem akan menampilkan pilihan tanggal untuk mencetak laporan Step 4: Sistem menampilkan data-data yang akan dicetak. Step 6: Sistem melakukan
56
Narasi Use-case Membuat account baru dapat dilihat pada :
Tabel 3.21 Narasi Use-case Membuat account baru
meng-klik CETAK . pencetakan laporan. Alternate Course:
Alt-Step 5: Pegawai / Pemilik membatalkan pencetakan laporan dengan meng-klik BATAL.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil mencetak laporan.
Postcondition: Pegawai / Pemilik memperoleh laporan. Pegawai / Pemilik tidak memperoleh laporan.
Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana Pegawai / Pemilik dapat mencetak laporan sesuai dengan tanggal yang diinginkan.
Assumptions: - Open issues: Pembelian atau penjualan yang dilakukan dalam kurun waktu
tertentu perlu dilaporkan untuk mengetahui laba yang diperoleh atau kerugian yang dialami.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Membuat account baru Jenis Use-case Use-case ID: DTK-020 Business Requirements: √ Priority: High Source: - Primary Business Actor:
Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses membuat account untuk Pegawai yang baru. Account baru akan dibuat jika Pemilik memiliki pegawai baru.
Precondition: Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila Pemilik akan membuat account
baru. Typical Course of event:
Actor Action System Response Step 1: Pemilik meng-klik menu Account
Step 2: Sistem akan menampilkan data-data Pegawai
57
Narasi Use-case Menghapus account dapat dilihat pada :
Tabel 3.22 Narasi Use-case Menghapus account
Step 3: Pemilik meng-klik tambah Step 5: Pemilik mengisikan data Pegawai yang baru dan meng-klik OK
Step 4: Sistem menampilkan form untuk menambah data Pegawai baru. Step 6: Sistem menyimpan data Pegawai yang baru ke database. Step 7: Sistem menampilkan pesan berhasil membuat account.
Alternate Course:
Alt-Step 5: Pemilik membatalkan pembuatan account baru dengan meng-klik BATAL. Alt-Step 7: Sistem menampilkan pesan tidak berhasil membuat account.
Conclusion: Use case ini berhenti apabila Pemilik berhasil membuat account. Postcondition: Pemilik berhasil membuat account.
Pemilik tidak berhasil membuat account. Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana Pemilik dapat membuat account baru.
Assumptions: - Open issues: Pemilik merasa Pegawai yang baru harus memiliki account agar
dapat mengakses data dan melakukan manipulasi data.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Menghapus account Jenis Use-case Use-case ID: DTK-021 Business Requirements: √ Priority: Low Source: - Primary Business Actor:
Pemilik
Other Participating Actor:
-
Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses menghapus account. Account
58
Narasi Use-case Mencatat retur barang dapat dilihat pada :
Tabel 3.23 Narasi Use-case Mencatat retur barang
yang tidak digunakan akan dihapus untuk mengurangi data yang tidak diperlukan.
Precondition: Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila account tidak digunakan lagi
oleh Pegawai. Typical Course of event:
Actor Action System Response Step 1: Pemilik meng-klik menu Account Step 3: Pemilik memilih data Pegawai yang akan dihapus dan meng-klik HAPUS.
Step 2: Sistem akan menampilkan data-data Pegawai Step 4: Sistem menghapus data Pegawai dari database.
Alternate Course:
-
Conclusion: Use case ini berhenti apabila Pemilik berhasil menghapus account. Postcondition: Pemilik berhasil menghapus account.
Pemilik membatalkan penghapusan account. Business Rules: - Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana Pemilik dapat menghapus account yang tidak digunakan lagi.
Assumptions: - Open issues: Pemilik merasa data-data Pegawai yang sudah tidak bekerja lagi
tidak diperlukan. Hal ini untuk menjaga keamanan agar data tidak dapat diakses oleh Pegawai yang sudah tidak berhak untuk mengakses sistem.
Author : Johanes Taufan Sungkit Date : 21 November 2008 Version : 1.0
Use-case Name: Mencatat retur barang Jenis Use-case Use-case ID: DTK-022 Business Requirements: √ Priority: High Source: Nota Penjualan Primary Business Actor:
Pegawai, Pemilik
Other Participating
-
59
Actor: Other Interested Stakeholder:
-
Description: Use case ini menggambarkan proses pencatatan barang yang diretur. Barang yang diretur dapat berupa barang rusak yang bergaransi. Barang yang habis masa garansinya tidak dapat diretur.
Precondition: Pegawai / Pemilik telah Log in. Trigger: Use case ini akan digunakan apabila ada Pegawai / Pemilik yang
akan mencatat barang yang diretur. Typical Course of event:
Actor Action System Response Step 1: Pegawai / Pemilik meng-klik menu Retur pada menu detail penjualan. Step 3: Pegawai / Pemilik memasukkan data barang retur. Step 4: Pegawai / Pemilik mengklik tombol OK
Step 2: Sistem menampilkan data barang retur dan form untuk memasukkan barang retur. Step 5: Sistem menyimpan data barang retur ke database. Step 6: Sistem menampilkan pesan bahwa proses retur barang berhasil.
Alternate Course:
Alt-Step 4: Pegawai tidak jadi memasukkan data barang retur dengan mengklik tombol BATAL. Alt-Step 6: Sistem menampilkan pesan bahwa proses retur barang tidak berhasil.
Conclusion: Use case ini berhenti apabila Pegawai / Pemilik berhasil mencatat data barang retur.
Postcondition: • Pegawai / Pemilik berhasil mencatat data retur barang. • Pegawai / Pemilik tidak berhasil mencatat data retur barang .
Business Rules: Pegawai / Pemilik memiliki nota penjualan barang yang masih bergaransi.
Implementation Constrains and Specifications:
Tampilan sistem berupa Web di mana terdapat data-data barang retur dan form untuk memasukkan data barang retur.
Assumptions: - Open issues: Barang yang dijual dapat mengalami kerusakan pada saat masa
garansi. Toko wajib untuk menerima barang retur dan mengurusi penukaran barang tersebut ke distributor.
60
3.5 Diagram Activity
Gambar 3.3 berikut merupakan diagram activity untuk proses Log in.
Gambar 3.3 Diagram Activity Log in
Gambar 3.4 berikut merupakan diagram activity untuk proses Log out.
Gambar 3.4 Diagram Activity Log out
61
Gambar 3.5 berikut merupakan diagram activity untuk proses Merakit
Komputer.
Gambar 3.5 Diagram Activity Merakit Komputer
Gambar 3.6 berikut merupakan diagram activity untuk proses Mengisi Data
Pembelian.
SistemPemilik / Pegawai
Meng-klik menu pembelian Masuk ke menu pembelian
Menampilkan data pembelian yang ada di databaseMeng-klik menu ubah
Menampilkan form untuk mengubah data pembelian
Mengganti data pembelian yang salahdengan data pembelian baru
Menyimpan data pembelian yang telah diubah
[BATAL]
Gambar 3.6 Diagram Activity Mengisi Data Pembelian
62
Gambar 3.7 berikut merupakan diagram activity untuk proses Mengubah
Data Pembelian.
Gambar 3.7 Diagram Activity Mengubah Data Pembelian
Gambar 3.8 berikut merupakan diagram activity untuk proses Menghapus
Data Pembelian.
Gambar 3.8 Diagram Activity Menghapus Data Pembelian
63
Gambar 3.9 berikut merupakan diagram activity untuk proses Mengubah
Status Penjualan.
SistemPemilik / Pegawai
Meng-klik menu penjualan Masuk ke menu penjualan
Menampilkan data-data penjualan
Meng-klik menu ubah pada data penjualan Sistem menampilkan form ubah status penjualan
Mengganti status dari data penjualan
Menyimpan data status ke database
Gambar 3.9 Diagram Activity Mengubah Status Penjualan
Gambar 3.10 berikut merupakan diagram activity untuk proses Menghapus
Data Penjualan.
64
Pembeli Sistem
Menampilkan data-data produk komputer
Meng-klik menu cart
[OK]
[Hapus]
Meng-klikk menu produk Masuk ke menu produk
Meng-klik menu belanja Menampilkan form untuk mengisi identitas diri dan mengisi jumlah produk yang akan dibeli
Mengisi data jumlah produk
Menyimpan data transaksi yang telah disetujui oleh Pembeli
[BATAL]
Memberitahukan bahwa proses pembelian berhasil dan memberikan kode transaksi untuk melakukan
pembayaran
Gambar 3.10 Diagram Activity Menghapus Data Penjualan
Gambar 3.11 berikut merupakan diagram activity untuk proses Mengisi
Komentar.
65
Gambar 3.11 Diagram Activity Mengisi Komentar
Gambar 3.12 berikut merupakan diagram activity untuk proses Menjawab
Komentar.
66
Mengakses menu Komentar Menampilkan komentar yang ada di database
Memilih komentar yang akan dijawab dan meng-klik JAWAB
Menampilkan form untuk menjawab komentar
Pemilik / Pegawai Sistem
Mengisi jawaban pada form yang tersedia
Menampilkan pesan komentar berhasil
dimasukkan
Menampilkan pesan komentar tidak
berhasil dimasukkan
[Klik tombol OK]
[Klik tombol BATAL]
[Data berhasil masuk] [Data gagal masuk]
Menyimpan jawaban ke database
Gambar 3.12 Diagram Activity Menjawab Komentar
Gambar 3.13 berikut merupakan diagram activity untuk proses Menghapus
Komentar.
67
Gambar 3.13 Diagram Activity Menghapus Komentar
Gambar 3.14 berikut merupakan diagram activity untuk proses Mengisi
Berita.
68
Gambar 3.14 Diagram Activity Mengisi Berita
Gambar 3.15 berikut merupakan diagram activity untuk proses Mengubah
Berita.
69
Gambar 3.15 Diagram Activity Mengubah Berita
Gambar 3.16 berikut merupakan diagram activity untuk proses Menghapus
Berita.
70
Gambar 3.16 Diagram Activity Menghapus Berita
Gambar 3.17 berikut merupakan diagram activity untuk proses Mengisi Data
Barang.
71
Gambar 3.17 Diagram Activity Mengisi Data Barang
Gambar 3.18 berikut merupakan diagram activity untuk proses Mengubah
Data Barang.
72
Gambar 3.18 Diagram Activity Mengubah Data Barang
Gambar 3.19 berikut merupakan diagram activity untuk proses Menghapus
Data Barang.
73
Gambar 3.19 Diagram Activity Menghapus Data Barang
Gambar 3.20 berikut merupakan diagram activity untuk proses Mencari Data
Barang.
Gambar 3.20 Diagram Activity Mencari Data Barang
Gambar 3.21 berikut merupakan diagram activity untuk proses Cetak
Laporan.
74
Gambar 3.21 Diagram Activity Cetak Laporan
Gambar 3.22 berikut merupakan diagram activity untuk proses Membuat
Account Baru.
75
Gambar 3.22 Diagram Activity Membuat Account Baru
Gambar 3.23 berikut merupakan diagram activity untuk proses Menghapus
Account.
76
Gambar 3.23 Diagram Activity Menghapus Account
Gambar 3.24 berikut merupakan diagram activity untuk proses Mencatat
Retur Barang.
G
ambar 3.24 Diagram Activity Mencatat Retur Barang
77
78
3.6 Diagram Class
Gambar 3.25 berikut merupakan diagram class sistem.
Gambar 3.25 Diagram class sistem
79
3.7 Diagram Sequence
Identifikasi Kelas dalam Use-case Design
Use case Log in
Interface, Controller, dan Entity Classes dari Use-case LOG IN
Interface Classes Controller Classes Entity Classes
W01 - Halaman
Login
cekLogin Admin
Use case Log out
Interface, Controller, dan Entity Classes dari Use-case LOG OUT
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
cekLogout Admin
Use case Merakit computer
Interface, Controller, dan Entity Classes dari Use-case Merakit
komputer
Interface Classes Controller Classes Entity Classes
W03 - Halaman
Utama Pembeli
W04 – Halaman
Produk
transaksiJual Pembeli
Penjualan
Penjualan_Barang
Barang
80
Use case Mengisi data pembelian
Interface, Controller, dan Entity Classes dari Use-case Mengisi data
pembelian
Interface
Classes
Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W17 –
Halaman Menu
Pembelian
W24 –
Halaman Menu
Tambah
Pembelian
ManipulasiPembelian Pembelian
Pembelian_Barang
Barang
Use case Mengubah data pembelian
Interface, Controller, dan Entity Classes dari Use-case Mengubah
data pembelian
Interface Classes Controller Classes Entity Classes
W17 – Halaman
Menu Pembelian
W02 - Halaman
Utama Admin
W26 – Halaman
ManipulasiPembelian Pembelian
81
Menu Ubah
Pembelian
Use case Menghapus data pembelian
Interface, Controller, dan Entity Classes dari Use-case Menghapus
data pembelian
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W17 – Halaman
Menu Pembelian
ManipulasiPembelian Pembelian
Use case Mengubah status penjualan
Interface, Controller, dan Entity Classes dari Use-case Mengubah
status penjualan
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W17 – Halaman
Menu Penjualan
W26 – Halaman
Menu Ubah
Penjualan
ManipulasiPenjualan Penjualan
Use case Menghapus data penjualan
82
Interface, Controller, dan Entity Classes dari Use-case Menghapus
account
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W17 – Halaman
Menu Penjualan
ManipulasiPenjualan Penjualan
Use case Mengisi komentar
Interface, Controller, dan Entity Classes dari Use-case Mengisi
komentar
Interface Classes Controller Classes Entity Classes
W03 - Halaman
Utama Pembeli
W05 – Halaman
Komentar
ManipulasiKomentar Komentar
Use case Menjawab komentar
Interface, Controller, dan Entity Classes dari Use-case Menjawab
komentar
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W06 – Halaman
Menu Komentar
ManipulasiKomentar Komentar
83
W07 – Halaman
Jawab Komentar
Use case Menghapus komentar
Interface, Controller, dan Entity Classes dari Use-case Menghapus
komentar
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W06 – Halaman
Menu Komentar
W08 – Halaman
Hapus Komentar
ManipulasiKomentar Komentar
Use case Mengisi berita
Interface, Controller, dan Entity Classes dari Use-case Mengisi berita
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W09 – Halaman
Menu Berita
W10 – Halaman
Tambah Berita
ManipulasiBerita Admin
Berita
84
Use case Mengubah berita
Interface, Controller, dan Entity Classes dari Use-case Mengubah berita
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W09 – Halaman
Menu Berita
W11 – Halaman
Ubah Berita
ManipulasiBerita Admin
Berita
Use case Menghapus berita
Interface, Controller, dan Entity Classes dari Use-case Menghapus
berita
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W09 – Halaman
Menu Berita
W12 – Halaman
Hapus Berita
ManipulasiBerita Berita
85
Use case Mengisi data barang
Interface, Controller, dan Entity Classes dari Use-case Mengisi data
barang
Interface Classes Controller
Classes
Entity Classes
W02 - Halaman
Utama Admin
W25 – Halaman
Menu Detail
Pembelian
W14 – Halaman
Tambah Data
Barang
Manipulasi
Pembelian
Pembelian
Barang
Pembelian_Barang
Use case Mengubah data barang
Interface, Controller, dan Entity Classes dari Use-case Mengubah
data barang
Interface
Classes
Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W13 – Halaman
Menu Barang
W15 – Halaman
Ubah Data
ManipulasiBarang Pembelian
Barang
Pembelian_Barang
86
Barang
Use case Menghapus data barang
Interface, Controller, dan Entity Classes dari Use-case Menghapus
data barang
Interface
Classes
Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W13 – Halaman
Menu Barang
W16 – Halaman
Hapus Data
Barang
ManipulasiBarang Pembelian
Barang
Pembelian_Barang
Use case Mencari data barang
Interface, Controller, dan Entity Classes dari Use-case Mencari data
barang
Interface Classes Controller Classes Entity Classes
W03 - Halaman
Utama Pembeli
ManipulasiBarang Barang
87
Use case Cetak laporan
Interface, Controller, dan Entity Classes dari Use-case Mencetak
laporan
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W17 – Halaman
Menu Pembelian
W18 – Halaman
Menu Penjualan
W19 – Halaman
Cetak Laporan
CetakLaporan Pembelian_Barang
Pembelian
Penjualan
Penjualan_Barang
Barang
Use case Membuat account baru
Interface, Controller, dan Entity Classes dari Use-case Membuat
account baru
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W20 – Halaman
Menu Account
W21 – Halaman
Buat Account
ManipulasiAccount Admin
88
Use case Menghapus account
Interface, Controller, dan Entity Classes dari Use-case Menghapus
account
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W20 – Halaman
Menu Account
W22 – Halaman
Hapus Account
ManipulasiAccount Admin
Use case Mencatat retur barang
Interface, Controller, dan Entity Classes dari Use-case Mencatat retur
barang
Interface Classes Controller Classes Entity Classes
W02 - Halaman
Utama Admin
W23 – Halaman
Menu Retur
ManipulasiRetur Retur Penjualan
Penjualan_Retur
89
Diagram Sequence untuk Use-case Log in
Gambar 3.26 Diagram sequence Log in
Diagram Sequence untuk Use-case Log out
Pemilik / Pegawai
<<interface>>Halaman Utama
Admin
<<controller>> cekLogout
Admin
Login berhasil
Pilih menu Log out
cekLogout()
Keluar dari halaman Admin
Gambar 3.27 Diagram sequence Log out
90
Diagram Sequence untuk Use-case Merakit komputer
Gambar 3.28 Diagram sequence Merakit computer
91
Diagram Sequence untuk Use-case Mengisi data pembelian
Gambar 3.29 Diagram sequence Mengisi data pembelian
Diagram Sequence untuk Use-case Mengubah data pembelian
Gambar 3.30 Diagram sequence Mengubah data pembelian
92
Diagram Sequence untuk Use-case Menghapus data pembelian
Gambar 3.31 Diagram sequence Menghapus data pembelian
93
Diagram Sequence untuk Use-case Mengubah status penjualan
Gambar 3.32 Diagram sequence Mengubah status penjualan
94
Diagram Sequence untuk Use-case Menghapus data penjualan
Gambar 3.33 Diagram sequence Menghapus data penjualan
95
Diagram Sequence untuk Use-case Mengisi komentar
Gambar 3.34 Diagram sequence Mengisi komentar
Diagram Sequence untuk Use-case Menjawab komentar
Gambar 3.35 Diagram sequence Menjawab komentar
96
Diagram Sequence untuk Use-case Menghapus komentar
Gambar 3.36 Diagram sequence Menghapus komentar
Diagram Sequence untuk Use-case Mengisi berita
Gambar 3.37 Diagram Sequence Mengisi berita
97
Diagram Sequence untuk Use-case Mengubah berita
Gambar 3.38 Diagram Sequence Mengubah berita
Diagram Sequence untuk Use-case Menghapus berita
Gambar 3.39 Diagram Sequence Menghapus berita
98
Diagram Sequence untuk Use-case Mengisi data barang
Gambar 3.40 Diagram Sequence Mengisi data barang
Diagram Sequence untuk Use-case Mengubah data barang
Gambar 3.41 Diagram Sequence Mengubah data barang
99
Diagram Sequence untuk Use-case Menghapus data barang
Gambar 3.42 Diagram Sequence Menghapus data barang
Diagram Sequence untuk Use-case Mencari data barang
Alt-step
<<interface>>Halaman Utama
Pembeli
<<controller>> manipulasi
Barang
data ketemu
Barang
setelah Login
memasukkan kata kuncicariBarang(kataKunci)
data tidak ketemu
tampilkan data
tampilkan pesan data tidak ada
Pembeli
Gambar 3.43 Diagram Sequence Mencari data barang
100
101
Diagram Sequence untuk Use-case Cetak laporan
Gambar 3.44 Diagram Sequence Cetak laporan
102
103
Diagram Sequence untuk Use-case Membuat account baru
Alt-step
<<interface>>Halaman Utama
Admin
<<controller>> manipulasi
AccountAdmin
<<interface>>Halaman menu
Account
nilai salah
nilai benar
<<interface>>Halaman Buat
Account
setelah login
mengakses menu account
buat account barumengisi data account baru
account berhasil dibuat
account gagal dibuat
tambahAdmin(user,pass,status)
Pemilik
Gambar 3.45 Diagram Sequence Membuat account baru
Sequence Diagram untuk Use-case Menghapus account
Gambar 3.46 Sequence Diagram Menghapus account
104
Diagram Sequence untuk Use-case Mencatat retur barang
Alt-step
<<interface>>Halaman Utama
Admin
<<controller>> manipulasi
Retur
Retur Penjualan
<<interface>>Halaman menu
Retur
nilai salah
nilai benar
setelah login
mengakses menu retur
mengisi data barang returcatatRetur()
data retur ditambahkan
data retur gagal ditambahkan
Penjualan_Retur
catatBarangRetur(barang, jumlah)
Pemilik / Pegawai
Gambar 3.47 Diagram Sequence Mencatat retur barang
3.8 Diagram Class Desain (lampiran)
3.9 Desain Fisikal Tabel
Tabel 3.24 merupakan desain fisikal tabel admin.
Nama field Tipe data lebar keterangan
username varchar 255 nama admin (primary
key)
password varchar 255 kata sandi
status enum ‘pegawai’,’pemilik’ status admin
Tabel 3.25 merupakan desain fisikal tabel barang.
Nama field Tipe data lebar keterangan
105
idBarang varchar 50 kode barang(primary key)
nama varchar 255 nama barang
stokBarang int 11 stok barang
harga double 11 harga jual barang
garansi int 11 garansi barang
keterangan text infromasi detail mengenai
barang
file_gambar varchar 50 nama file untuk gambar
barang
tanggal_data_masuk timestamp tanggal data barang masuk
idJenisBarang int 11 kode jenis barang (foreign
key)
Tabel 3.26 merupakan desain fisikal untuk tabel berita.
Nama field Tipe data lebar keterangan
idBerita int 11 kode berita (primary key)
judulBerita varchar 255 judul berita
isiBerita text isi berita
gambar varchar 255 nama file untuk gambar
berita
tanggalBerita date tanggal berita masuk
username varchar 255 nama user yang
106
memasukkan berita
(foreign key)
Tabel 3.27 merupakan desain fisikal untuk tabel jenis barang
Nama field Tipe data lebar keterangan
idJenisBarang int 11 kode jenis barang
(primary key)
namaJenisBarang varchar 255 jenis barang
Tabel 3.28 merupakan desain fisikal untuk tabel komentar
Nama field Tipe data lebar keterangan
idKomentar int 11 kode komentar (primary
key)
nama varchar 255 user yang memberi
komentar
email varchar 255 email user
isiKomentar text isi komentar
tglKomentar date tanggal komentar masuk
jawabanKomentar text jawaban komentar
username varchar 255 nama user yang
menjawab komentar
(foreign key)
107
Tabel 3.29 merupakan desain fisikal untuk tabel pembeli
Nama field Tipe data lebar keterangan
idPembeli int 11 kode pembeli (primary
key)
nama varchar 255 nama pembeli
alamat varchar 255 alamat pembeli
email varchar 100 email pembeli
noTelpon varchar 20 nomor telpon pembeli
Tabel 3.30 merupakan desain fisikal untuk tabel pembelian
Nama field Tipe data lebar keterangan
idPembelian int 11 kode pembelian (primary
key)
noFaktur varchar 50 nomor faktur pembelian
distributor varchar 255 namam distributor
tanggalPembelian date tanggal data pembelian
keterangan varchar 255 keterangan pembayaran
Tabel 3.31 merupakan desain fisikal untuk tabel pembelian_barang
Nama field Tipe data lebar keterangan
idBeli_barang int 11 kode detail pembelian
(primary key)
108
idBarang varchar 50 kode barang (foreign
key)
idPembelian int 11 kode pembelian (foreign
key)
hargaBeli double harga pembelian barang
jumlah int 11 jumlah barang yang
dibeli
Tabel 3.32 merupakan desain fisikal untuk tabel penjualan
Nama field Tipe data lebar keterangan
idPenjualan int 11 kode penjualan (primary
key)
idPembeli int 11 kode pembeli (foreign
key)
noNota varchar 50 nomor nota penjualan
tanggalPenjualan date tanggal penjualan
statusPenjualan enum 'belum bayar',
'sudah bayar', 'batal'
status pembayaran
penjualan
Tabel 3.33 merupakan desain fisikal untuk tabel penjualan_barang
Nama field Tipe data lebar keterangan
idJual_barang int 11 kode detail penjualan
(primary key)
109
idBarang varchar 50 kode barang (foreign
key)
idPenjualan int 11 kode penjualan (foreign
key)
hargaJual double harga penjualan barang
jumlah int 11 jumlah barang yang
dijual
Tabel 3.34 merupakan desain fisikal untuk tabel penjualan_retur
Nama field Tipe data lebar keterangan
idJual_retur int 11 kode detail retur
(primary key)
idRetur varchar 20 kode retur (foreign key)
idPenjualan int 11 kode penjualan (foreign
key)
idBarang varchar 50 kode barang (foreign
key)
jumlah int 11 jumlah barang yang
diretur
Tabel 3.35 merupakan desain fisikal untuk tabel returpenjualan
Nama field Tipe data lebar keterangan
idRetur varchar 20 kode retur (primary key)
110
tanggalRetur date tanggal retur barang
107
3.10 Daftar Stored Procedure
Sistem yang dibangun menggunakan stored procedure untuk melakukan manipulasi data di basis data. Tabel 3.36
merupakan daftar seluruh stored procedure yang digunakan pada sistem ini.
Tabel 3.36 daftar seluruh stored procedure yang digunakan dalam sistem
Nama Stored Procedure
Penjelasan Proses Sequence
Input dan Output Tabel dan Field yang bersangkutan
SPAdminTambah Digunakan untuk menambah data admin.
Membuat account baru
Input : pUsername pPassword, pStatus. Output : konfirmasi.
Tabel : admin. Field : username, password, status.
SPAdminSelect Digunakan untuk melakukan pengecekan username dan password.
Log in Input : pUsername pPassword, pStatus. Output : konfirmasi.
Tabel : admin. Field : username, password, status.
SPAdminHapus Digunakan untuk menghapus data admin.
Menghapus account
Input : pUsername pPassword. Output : konfirmasi.
Tabel : admin. Field : username, password.
SPBarangTambah Digunakan untuk menambah data barang
Mengisi data barang
Input : pIdBarang, pNama, pHargaPokok, pGaransi, pJenisBrg. Output : konfirmasi
Tabel : barang. Field : idBarang, nama, stokBarang, harga, garansi, idJenisBarang, keterangan
108
SPBarangUbah Digunakan untuk mengubah data barang
Mengubah data barang
Input : pIdBarang, pNama, pHarga, pGaransi, pKeterangan, pIdJenis. Output : konfirmasi.
Tabel : barang Field : idBarang, nama, stokBarang, harga, garansi, idJenisBarang, keterangan
SPBarangHapus Digunakan untuk menghapus data barang
Menghapus data barang
Input : pIdBarang. Output : konfirmasi.
Tabel : barang, penjualan_barang, pembelian_barang, penjualan_retur Field : idBarang
SPBarangUpload Digunakan untuk mengubah data nama file gambar barang
Mengubah data barang
Input : pIdBarang, pFile. Output : konfirmasi.
Tabel : barang. Field : file_gambar, idBarang.
SPBeritaTambah Digunakan untuk menambah data berita.
Mengisi berita Input : pJudul, pIsiBerita, pUsername. Output : konfirmasi.
Tabel : berita Field : judulBerita, isiBerita, tanggalBerita, username.
SPBeritaUbah Digunakan untuk mengubah data berita.
Mengubah berita
Input : pId, pJudul, pIsiBerita, pUsername. Output : konfirmasi.
Tabel : berita Field : idBerita, judulBerita, isiBerita, username.
SPBeritaHapus Digunakan untuk menghapus data berita.
Menghapus berita
Input : pId. Output : konfirmasi.
Tabel : berita Field : idBerita.
SPBeritaUpload Digunakan untuk mengubah data nama file gambar berita.
Mengubah berita
Input : pId, pGambar. Output : konfirmasi.
Tabel : berita. Field : idBerita, gambar.
SPKomentarMasuk Digunakan untuk memasukkan data komentar.
Mengisi komentar
Input : pNama, pEmail, pIsi. Output : konfirmasi.
Tabel : komentar. Field : nama, email, isiKomentar, tglKomentar.
109
SPKomentarJawab Digunakan untuk mengubah data komentar.
Menjawab komentar
Input : pId, pJawaban, pUsername. Output : konfirmasi.
Tabel : komentar. Field : idKomentar, jawabanKomentar, username.
SPKomentarHapus Digunakan untuk menghapus data komentar.
Menghapus komentar
Input : pId. Output : konfirmasi.
Tabel : komentar. Field : idKomentar.
SPPembelianTambah Digunakan untuk menambah data pembelian
Mengisi data pembelian
Input : pNoFaktur, pDistributor, ptglBeli, pKeterangan, pIdBarang, pHargaBeli, pJumlah Output : konfirmasi.
Tabel : pembelian, pembelian_barang, barang. Field : noFaktur, distributor, tanggalPembelian, keterangan, idBarang, idPembelian, hargaBeli, jumlah.
SPPembelianUbah Digunakan untuk mengubah data pembelian
Mengubah data pembelian
Input : pIdBeli, pNoFaktur, pDistributor, ptglBeli, pKeterangan. Output : konfirmasi.
Tabel : pembelian Field : idPembelian, noFaktur, distributor, tanggalPembelian, keterangan.
SPPembelianHapus Digunakan untuk menghapus data pembelian.
Menghapus data pembelian
Input : pIdBeli. Output : konfirmasi.
Tabel : pembelian Field : idPembelian.
SPPenjualanTambah Digunakan untuk menambah data penjualan.
Merakit komputer
Input : pNamaPembeli, pAlamat, pEmail, pTelpon, pJumlahBarang, pIdBarang, pNota. Output : konfirmasi
Tabel : barang, penjualan, penjualan_barang, pembeli Field : nama, alamat, email, noTelpon, idPembeli, noNota, tanggalPenjualan, idBarang, idPenjualan, hargaJual, jumlah, stokBarang.
110
SPPenjualanUbah Digunakan untuk mengubah status penjualan.
Mengubah status penjualan
Input : pIdPenj, pStatus Output : konfirmasi.
Tabel : barang, penjualan, penjualan_barang Field : jumlah, idBarang, statusPenjualan, stokBarang.
SPPenjualanHapus Digunakan untuk menghapus penjualan.
Menghapus data penjualan
Input : pIdJual Output : konfirmasi
Tabel : penjualan Field : idPenjualan.
SPReturTambah Digunakan untuk menambah data retur.
Mencatat retur barang
Input : pIdRetur , pTglRetur, pIdJual, pIdBrg, pJumlahRetur Output : konfirmasi
Tabel : penjualan_barang, penjualan_retur, returpenjualan Field : idRetur, idPenjualan, idBarang, jumlah.
Daftar stored procedure yang terkait dengan manajemen transaksi ditampilkan pada tabel 3.37 berikut.
Tabel 3.37 daftar stored procedure yang terkait dengan manajemen transaksi
Nama stored procedure
Alasan Keterangan
SPPembelianTambah Penambahan data pembelian, data detail pembelian dan update stok barang yang terdapat pada tabel barang. Mengantisipasi data detail pembelian yang masuk secara bersamaan dan mengantisipasi jika pada proses penambahan ini tidak semua commit.
Kondisi awal AUTOCOMMIT=0 Status commit jika data pembelian, data detail pembelian telah dimasukkan dan data stok barang telah di-update.Data pembelian akan dimasukkan jika belum ada di database. Status rollback jika data detail pembelian telah ada di database. Setelah proses selesai nilai AUTOCOMMIT=1.
111
SPPenjualanTambah Penambahan data penjualan, data detail penjualan dan update stok barang yang terdapat pada tabel barang. Mengantisipasi data detail penjualan yang meng-update data stok barang secara bersamaan dan mengantisipasi proses penambahan ini tidak semua commit.
Kondisi awal AUTOCOMMIT=0 Status commit jika data penjualan, data pembeli, data detail penjualan telah dimasukkan dan data stok barang telah di-update.Data penjualan dan data pembeli akan dimasukkan jika belum ada di database. Status rollback jika data stok barang = 0 atau jumlah barang dipesan > stok barang. Setelah proses selesai nilai AUTOCOMMIT=1.
112
3.11 Desain Manajemen Transaksi
Pada basisdata terdapat manajemen transaksi pembelian untuk mengatur
transaksi pembelian yang masuk ke basisdata secara bersamaan. Proses
pengaturan ini digambarkan pada Gambar 3.48 berupa flowchart manajemen
transaksi.
113
Gambar 3.48 flowchart manajemen transaksi pembelian
114
Selain pada transaksi pembelian, transaksi penjualan juga menggunakan
manajemen transaksi untuk mengatur data penjualan yang masuk. Gambar
3.49 merupakan flowchart manajemen transaksi penjualan.
115
Gambar 3.49 flowchart manajemen transaksi penjualan
116
3.12 Desain Teknologi
Sistem yang akan dibangun berbasis web dengan database. Arsitektur sistem
ditunjukkan dengan Gambar 3.50 di bawah ini.
Gambar 3.50 Arsitektur Three Tier
117
3.13 Desain Input
3.13.1 Desain input Pegawai
Gambar 3.51 merupakan desain input untuk halaman Log in.
Gambar 3.51 halaman Log in
Gambar 3.52 merupakan desain input pada menu barang yang digunakan
Pegawai untuk mengisikan data pembelian barang.
118
Gambar 3.52 Halaman tambah data barang
Gambar 3.53 merupakan desain input yang digunakan Pegawai untuk
mengubah data barang.
119
Gambar 3.53 Halaman ubah data barang
Gambar 3.54 merupakan desain input pada menu cetak untuk melakukan
pencetakan laporan penjualan maupun pembelian sesuai dengan inputan
yang dimasukkan.
120
Gambar 3.54 Halaman cetak laporan
Gambar 3.55 merupakan desain input menu cetak laporan untuk mengakses
data penjualan yang akan dibuatkan nota.
121
Gambar 3.55 Halaman data penjualan
Gambar 3.56 merupakan desain input pada menu cetak laporan untuk
mencari data retur penjualan.
122
Gambar 3.56 Halaman cari data retur penjualan
Gambar 3.57 merupakan desain input pada menu berita untuk menambah
berita.
123
Gambar 3.57 Halaman tambah berita
Gambar 3.58 merupakan desain input pada menu berita untuk mengubah
berita sesuai pilihan.
124
Gambar 3.58 Halaman ubah berita
Gambar 3.59 merupakan desain input pada menu komentar untuk menjawab
komentar dari Pembeli.
125
Gambar 3.59 Halaman jawab komentar
Gambar 3.60 merupakan desain input pada menu komentar untuk menjawab
komentar dari Pembeli.
126
Gambar 3.60 Halaman buat account
3.13.2 Desain input Pembeli
Gambar 3.61 merupakan desain input untuk Pembeli dalam perakitan
komputer. Pada desain ini terdapat inputan untuk mengisi identitas Pembeli
dan komponen yang akan dibeli. Pada halaman ini, manajemen transaksi
akan mengatur transaksi yang terjadi jika dilakukan bersamaan untuk
masalah lost update problem.
127
Gambar 3.61 Halaman perakitan komputer
Gambar 3.62 merupakan desain input untuk Pembeli dalam pengisian
komentar.
128
Gambar 3.62 Halaman pengisian komentar
3.14 Desain Output
3.14.1 Desain output Pegawai
Gambar 3.63 merupakan desain output Halaman Utama Admin.
129
Gambar 3.63 Halaman Utama Admin
Gambar 3.64 merupakan desain output yang menampilkan data barang yang
ada di toko komputer. Pada halaman ini terdapat fasilitas pencarian data
barang.
130
Gambar 3.64 Halaman menu data barang
Gambar 3.65 merupakan desain output yang menampilkan detail dari data
barang yang akan dihapus.
131
Gambar 3.65 Halaman hapus data barang
Gambar 3.66 merupakan desain output yang menampilkan data penjualan
yang akan dicetak.
132
Gambar 3.66 Halaman cetak laporan penjualan
Gambar 3.67 merupakan desain output yang menampilkan data pembelian
yang akan dicetak.
133
Gambar 3.67 Halaman cetak laporan pembelian
Gambar 3.68 merupakan desain output menu cetak laporan untuk mencetak
nota penjualan.
134
Gambar 3.68 Halaman cetak nota
Gambar 3.69 merupakan desain output menu cetak laporan untuk mencatat
retur penjualan.
135
Gambar 3.69 Halaman catat retur penjualan
Gambar 3.70 merupakan desain output yang menampilkan data berita.
136
Gambar 3.70 Halaman menu berita
Gambar 3.71 merupakan desain output yang menampilkan detail dari data
berita yang akan dihapus.
137
Gambar 3.71 Halaman hapus berita
Gambar 3.72 merupakan desain output yang menampilkan data komentar.
138
Gambar 3.72 Halaman menu komentar
Gambar 3.73 merupakan desain output yang menampilkan detail dari data
komentar yang akan dihapus.
139
Gambar 3.73 Halaman hapus komentar
Gambar 3.74 merupakan desain output yang menampilkan detail dari data
account yang terdapat di database.
140
Gambar 3.74 Halaman menu account
Gambar 3.75 merupakan desain output yang menampilkan detail dari data
account yang akan dihapus.
141
Gambar 3.75 Halaman hapus account
3.14.2 Desain output Pembeli
Gambar 3.76 merupakan desain output untuk menampilkan halaman utama
Pembeli.
142
Gambar 3.76 Halaman utama Pembeli
Gambar 3.77 merupakan desain output untuk menampilkan detail data
transaksi dan melakukan pencetakan bukti transaksi.
143
Gambar 3.77 Halaman cetak transaksi
Gambar 3.78 merupakan desain output untuk menampilkan berita-berita
terbaru dari toko komputer.
144
Gambar 3.78 Halaman berita
Gambar 3.79 merupakan desain output untuk menampilkan data Pegawai
yang dapat dihubungi jika ada komplain dari Pembeli.
145
Gambar 3.79 Halaman menu contact
146
BAB IV
IMPLEMENTASI SISTEM
Implementasi merupakan tahap membangun aplikasi dari perancangan yang
telah dijelaskan pada bab sebelumnya. Pada bab ini dijelaskan implementasi konsep
manajemen transaksi pada website penjualan komputer DATATEK. Konsep
manajemen transaksi digunakan pada pencatatan penjualan dan pembelian.
4.1 Implementasi halaman user
Pada halaman user terdapat beberapa menu yang dapat diakses. Halaman
utama user berisi informasi mengenai produk terbaru, komentar yang masuk dan
berita terbaru seputar komputer. Gambar 4.1 merupakan halaman utama user.
147
Gambar 4.1 Halaman utama user
Pada menu belanja user dapat melihat daftar barang yang dipesan dan dapat
melakukan pemesanan dengan mengisi identitas diri terlebih dahulu. Untuk
menambah daftar barang pesanan user dapat mengakses menu produk kemudian
mengklik cart pada produk yang diinginkan. Gambar 4.2 merupakan halaman belanja
user.
148
Gambar 4.2 halaman belanja user
Pada saat user meng-klik tombol Order, maka proses akan berlanjut ke
ServletPenjualanTambah.java. Pada kelas ini dilakukan proses validasi data input-an
dengan mengecek apakah data yang masuk kosong atau tidak. Selain itu juga
dilakukan validasi terhadap data e-mail dan daftar barang pesanan. Setelah proses
validasi berhasil maka dilakukan proses penambahan data penjualan. Sebelum
melakukan penambahan data terlebih dahulu dibentuk 3 buah obyek dari kelas
penjualan.java, penjualan_barang.java dan barang.java. Setelah itu data yang masuk
diinisialisasi ke setiap obyek dan kemudian dilakukan penambahan data melalui kelas
149
penjualan.java. Data penjualan yang tidak berhasil masuk akan ditampung di
session.Session ini akan dikirimkan ke halaman detail belanja di mana user dapat
mengetahui status pemesanan user. Pada kelas ServletPenjualanTambah.java juga
terdapat suatu method getCode untuk membuat kode transaksi yang juga menjadi
nomor nota penjualan. Kelas ServletPenjualanTambah.java dapat dilihat pada Listing
4.1 di bawah ini.
package Servlet; import DataModel.Pembeli; import DataModel.Penjualan; import DataModel.Penjualan_Barang; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Vector; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * * @author Fan */ public class ServletPenjualanTambah extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd = null; PrintWriter pw = response.getWriter(); Penjualan p = new Penjualan(); Penjualan_Barang pb = new Penjualan_Barang(); Pembeli pmb = new Pembeli(); String idBarang = null; String jumlahBarang = null; // ambil session dari halaman sebelumnya HttpSession produk = request.getSession();
150
String nama = request.getParameter("textNama"); String alamat = request.getParameter("textAlamat"); String email = request.getParameter("textEmail"); String telpon = request.getParameter("textTelpon"); if(nama.isEmpty()==true || alamat.isEmpty()==true || email.isEmpty()==true || telpon.isEmpty()==true || email.contains("@")==false || produk.getAttribute("belanja")==null) { pw.println("<script language=\"javascript\">" + "window.alert('Terdapat data yang tidak diisikan atau data pesanan kosong');" + "history.back();" + "</script>"); } else { // set data pembeli pmb.setNamaPembeli(nama); pmb.setAlamat(alamat); pmb.setEmail(email); pmb.setNoTelpon(telpon); String sessionID = produk.getId(); Vector jumlah = (Vector) produk.getAttribute("belanja"); // set noNota Calendar cal = new GregorianCalendar(); int tahun = cal.get(Calendar.YEAR); String kodeNota = getCode(sessionID); String nota = "datatek/" + tahun + "/" + kodeNota; p.setNoNota(nota); // buat session untuk tampung data yang gagal masuk HttpSession produkKosong = request.getSession(); Vector tampungData = new Vector(); for (int i = 0; i < jumlah.size(); i++) { if (jumlah.get(i) != null) { idBarang = request.getParameter("idBarang" + i); jumlahBarang = request.getParameter("jumlah" + i); // set data barang pb.setJumlahBarang(Integer.valueOf(jumlahBarang)); pb.setIdBarang(idBarang); pw.println("<br>id barang dan jumlah : " + idBarang + " " + jumlahBarang); if (p.insertPenjualan(pmb, pb)==0) { tampungData.addElement(idBarang); } } } produk.removeAttribute("belanja"); produkKosong.setAttribute("produkKosong", tampungData);
151
rd = request.getRequestDispatcher("belanjadetail.jsp?id="+kodeNota); rd.forward(request, response); } } public String getCode(String sessionID){ StringBuffer code = new StringBuffer(); String enkripsi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; int index = 0; for(int i=0;i<sessionID.length();i++) { index = (int) Math.floor(Math.random()*sessionID.length()); code.append(enkripsi.charAt(index)); } return code.toString(); } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Listing 4.1 Kelas ServletPenjualanTambah.java
Setelah proses transaksi selesai, user mendapat konfirmasi status pemesanan.
Pada halaman ini, user diberi kode transaksi untuk melakukan pembayaran. Selain
itu, user juga mendapat informasi apakah semua produk dapat dipesan atau terdapat
152
produk yang gagal dipesan dikarenakan stok produk yang tidak mencukupi jumlah
pesanan. Gambar 4.3 merupakan halaman detail belanja user.
Gambar 4.3 halaman detail belanja user
Selain melakukan transaksi pemesanan, user juga dapat mengakses berita-
berita terbaru yang disajikan di website ini, informasi mengenai produk-produk yang
ada, memberikan komentar serta melakukan pencarian data produk. Untuk
mengakses berita-berita user dapat mengakses menu berita. Gambar 4.4 merupakan
halaman berita.
153
Gambar 4.4 halaman berita
User dapat melakukan pengisian komentar pada halaman komentar. Pada
halaman ini juga ditampilkan komentar-komentar yang telah masuk. Gambar 4.5
merupakan halaman komentar.
154
Gambar 4.5 halaman komentar
Selain itu website ini juga menyediakan menu contact us yang berisi informasi
toko komputer DATATEK. Gambar 4.6 merupakan halaman contact us.
155
Gambar 4.6 halaman contact us
Pada setiap halaman terdapat input-an untuk pencarian produk. Pencarian
produk ini dilakukan berdasarkan nama produk dan jenis produk. Gambar 4.7
merupakan halaman hasil pencarian produk.
156
Gambar 4.7 halaman cari produk
4.2 Implementasi halaman admin
Sebelum mengakses halaman admin terlebih dahulu dilakukan login agar tidak
semua user dapat masuk ke halaman admin. Gambar 4.8 merupakan halaman login.
157
Gambar 4.8 halaman login
Proses login dimulai dari halaman login dengan mengisikan Username dan
password yang telah tersedia. Selain itu juga dipilih status login sebagai pegawai atau
pemilik. Setelah admin meng-klik tombol login maka proses dilanjutkan ke
ServletLogin.java. Kelas ini melakukan pengecekan data admin yang dimasukkan
dengan data yang ada di database. Username dan password yang diinputkan diterima
untuk melakukan pengecekan di database dengan membuat obyek dari kelas admin
untuk kemudian memanggil method cekLogin pada kelas admin. Method ini yang
melakukan koneksi ke database kemudian mengecek data input-an yang masuk
158
sudah sesuai atau tidak. Jika sesuai maka proses dilanjutkan ke halaman utama admin
sedangkan jika tidak sesuai maka proses akan dilanjutkan ke halaman index.jsp yang
merupakan halaman kosong. Listing 4.2 berikut merupakan kelas ServletLogin.java.
package Servlet; import DataModel.Admin; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * * @author Fan */ public class ServletLogin extends HttpServlet { // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Admin admin = new Admin(); RequestDispatcher rd = null; PrintWriter pw = response.getWriter(); String user = request.getParameter("Username"); String pass = request.getParameter("password"); String status = request.getParameter("status"); admin.setUsername(user); admin.setPassword(pass); admin.setStatus(status);
159
if(admin.cekLogin()) { HttpSession login = request.getSession(); login.setAttribute("loginStatus", status); rd = request.getRequestDispatcher("/datatekAdmin/adminMain.jsp"); rd.forward(request, response); } else { rd = request.getRequestDispatcher("index.jsp"); rd.forward(request, response); } pw.close(); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Listing 4.2 Kelas ServletLogin.java
Gambar 4.9 merupakan halaman utama admin. Halaman ini tampil jika proses
login sebagai admin berhasil dilakukan.
160
Gambar 4.9 halaman utama admin
Pada halaman ini berisi data penjualan terbaru dan komentar baru yang telah
masuk. Pada halaman admin terdapat beberapa menu seperti penjualan, pembelian,
barang, berita, komentar, dan account. Menu penjualan mempunyai beberapa menu
untuk melakukan melihat daftar retur, pengubahan status penjualan, penghapusan
data penjualan dan pencetakan laporan. Pada halaman penjualan ditampilkan data
penjualan yang masuk. Gambar 4.10 merupakan halaman penjualan.
161
Gambar 4.10 halaman penjualan
Jika menu daftar retur di-klik maka halaman akan berpindah ke halaman daftar
retur. Halaman ini berisi data barang yang telah diretur. Admin dapat menghapus data
retur dengan meng-klik menu hapus yang terdapat pada setiap data. Gambar 4.11
merupakan halaman daftar retur.
162
Gambar 4.11 halaman daftar retur
Pada penjualan juga dapat dilakukan pengubahan status penjualan. Untuk
mengubah status penjualan admin meng-klik menu ubah yang terdapat pada setiap
data penjualan. Pada halaman ubah data penjualan, admin hanya dapat mengubah
status penjualan dari data penjualan yang belum melakukan pembayaran. Gambar
4.12 merupakan halaman ubah data penjualan.
163
Gambar 4.12 halaman ubah data penjualan
Untuk menghapus data penjualan admin dapat meng-klik menu hapus pada
setiap data yang ada di halaman penjualan. Admin dapat melihat detail dari data
penjualan dengan meng-klik menu detail pada setiap data. Detail data penjualan
disajikan pada halaman detail penjualan. Jika penjualan telah dibayarkan, maka pada
menu detail penjualan akan muncul menu retur untuk melakukan retur barang.
Gambar 4.13 dan 4.14 merupakan halaman detail penjualan dan halaman retur
penjualan.
164
Gambar 4.13 halaman detail penjualan
165
Gambar 4.14 halaman retur penjualan
Pada halaman detail penjualan admin juga dapat mencetak nota penjualan
dengan meng-klik menu cetak nota. Gambar 4.15 merupakan halaman cetak nota.
166
Gambar 4.15 halaman cetak nota
Proses cetak nota dilakukan di kelas ServletCetakLaporan.java. Pada kelas ini
diterima input berupa tipe laporan. Dari tipe laporan ini kemudian dilakukan proses
pemanggilan file dengan ekstensi .jasper yang merupakan file laporan tersebut. Tipe
laporan berupa beli, jual dan nota. Listing 4.3 berikut adalah kode dari kelas
ServletCetakLaporan.java.
package Servlet; import DataModel.ConnectionUtil; import java.util.HashMap; import java.io.*; import java.io.IOException; import java.io.PrintWriter; import java.sql.*;
167
import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.jasperreports.engine.JasperRunManager; /** * * @author Fan */ public class ServletCetakLaporan extends HttpServlet { // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String tipe = request.getParameter("radioLaporan"); if(tipe.equals("beli")){ String tanggalawal=request.getParameter("tanggal_awal"); String tanggalakhir=request.getParameter("tanggal_akhir"); ConnectionUtil connection; ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream reportStream = this.getServletContext().getResourceAsStream("/report/pembelianDatatek.jasper"); HashMap parameterMap = new HashMap(); parameterMap.put("tanggal_awal", tanggalawal); parameterMap.put("tanggal_akhir", tanggalakhir); try { connection = new ConnectionUtil(); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection.getConnection()); connection.closeConnection(); response.setContentType("application/pdf");
168
servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { // display stack trace in the browser StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } } else if(tipe.equals("jual")) { String tanggalawal=request.getParameter("tanggal_awal"); String tanggalakhir=request.getParameter("tanggal_akhir"); ConnectionUtil connection; ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("/report/penjualanDatatek.jasper"); HashMap parameterMap = new HashMap(); parameterMap.put("tanggal_awal", tanggalawal); parameterMap.put("tanggal_akhir", tanggalakhir); try { connection = new ConnectionUtil(); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection.getConnection()); connection.closeConnection(); response.setContentType("application/pdf"); servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { // display stack trace in the browser StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } } else if(tipe.equals("nota")) { String idJual=request.getParameter("idj");
169
// String tanggalakhir=request.getParameter("tanggal_akhir"); ConnectionUtil connection; ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("/report/notaDatatek.jasper"); HashMap parameterMap = new HashMap(); parameterMap.put("idJual", idJual); // parameterMap.put("tanggal_akhir", tanggalakhir); try { connection = new ConnectionUtil(); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection.getConnection()); connection.closeConnection(); response.setContentType("application/pdf"); servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { // display stack trace in the browser StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } } } /** * Returns a short description of the servlet. * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Listing 4.3 kelas ServletCetakLaporan.java.
170
Halaman pembelian mempunyai beberapa menu seperti menambah data
pembelian, mengubah data pembelian, menghapus data pembelian dan mencetak
laporan. Halaman ini juga menampilkan data-data pembelian. Gambar 4.16
merupakan halaman pembelian.
Gambar 4.16 halaman pembelian
Untuk menambah data pembelian admin perlu meng-klik menu tambah
pembelian yang kemudian akan menampilkan form untuk mengisi data pembelian
dan data barang. Gambar 4.17 merupakan halaman tambah pembelian.
171
Gambar 4.17 halaman tambah pembelian
Pada halaman tambah pembelian terdapat tombol simpan untuk menyimpan
data pembelian dan barang. Proses pencatatan data pembelian dilakukan di kelas
ServletPembelianTambah.java. Pada kelas ini mula-mula dilakukan pengecekan
input-an. Jika terdapat input-an yang kosong maka proses akan kembali ke halaman
tambah pembelian dengan peringatan bahwa terdapat data yang tidak diisikan. Proses
pencatatan data ke database dilakukan jika proses pengecekan berhasil. Data
pembelian dan data barang yang masuk akan disimpan di obyek pembelian dan obyek
barang yang dibentuk dari masing-masing kelas. Kemudian dilakukan pemanggilan
172
method insertPembelian pada kelas pembelian dengan parameter masukan berupa
obyek barang dan obyek pembelian_barang. Setelah method insertPembelian
dijalankan proses akan berlanjut ke halaman detail pembelian. Listing 4.4 berikut
merupakan kelas ServletPembelianTambah.java.
package Servlet; import DataModel.Barang; import DataModel.Pembelian; import DataModel.Pembelian_Barang; import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Fan */ public class ServletPembelianTambah extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Pembelian pembelian = new Pembelian(); Barang barang = new Barang(); Pembelian_Barang p_barang = new Pembelian_Barang(); RequestDispatcher rd = null; PrintWriter pw = response.getWriter(); String path; String status = request.getParameter("status"); String idPembelian; String faktur = request.getParameter("noFaktur"); String distributor = request.getParameter("distributor");
173
String tglBeli = request.getParameter("tglBeli"); String keterangan = request.getParameter("keterangan"); String idBarang = request.getParameter("idBarang"); String hargaBeli = request.getParameter("hargaBeli"); String jumlah = request.getParameter("jumlah"); if (faktur == "" || distributor == "" || tglBeli == "" || keterangan == "" || idBarang == "" || hargaBeli == "" || jumlah == "") { pw.println("<script language=\"javascript\"> " + "window.alert('Terdapat data yang tidak diisikan');" + "history.back(); " + "</script>"); } else { pembelian.setNoFaktur(faktur); pembelian.setDistributor(distributor); pembelian.setTanggalBeli(Date.valueOf(tglBeli)); pembelian.setKeteranganBeli(keterangan); barang.setIdBarang(idBarang); p_barang.setHargaBeli(Double.valueOf(hargaBeli)); p_barang.setJumlahBarang(Integer.valueOf(jumlah)); pembelian.insertPembelian(barang, p_barang); if (status.equals("insert")) { idPembelian = pembelian.getID(faktur); path = "/datatekAdmin/adminPembelianDetail.jsp?id=" + idPembelian; } else { idPembelian = request.getParameter("id"); path = "/datatekAdmin/adminPembelianDetail.jsp?id=" + idPembelian; } rd = request.getRequestDispatcher(path); rd.forward(request, response); } pw.close(); }
174
@Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Listing 4.4 kelas ServletPembelianTambah.java
Method insertPembelian dari kelas penjualan ditampilkan di bawah ini. Pada
method ini dilakukan pemanggilan prosedur untuk menambah data pembelian.
Kemudian parameter dengan tanda “?” dari prosedur diisikan dan prosedur
dijalankan. Listing 4.5 berikut merupakan method insertPembelian.
public boolean insertPembelian(Barang brg, Pembelian_Barang p_brg) { boolean insert_status = false; conn = new ConnectionUtil(); String query = "call SPPembelianTambah(?,?,?,?,?," + "?,?)"; try { cstmt = conn.getConnection().prepareCall(query); // tabel Pembelian cstmt.setString(1, this.noFaktur); cstmt.setString(2, this.distributor); cstmt.setDate(3, this.tanggalBeli); cstmt.setString(4, this.keteranganBeli); // tabel Barang cstmt.setString(5, brg.getIdBarang()); // tabel pembelian_barang cstmt.setDouble(6, p_brg.getHargaBeli()); cstmt.setInt(7, p_brg.getJumlahBarang()); cstmt.executeQuery(); insert_status = true; cstmt.close(); conn.closeConnection(); } catch(SQLException ex) {System.out.println(ex);} return insert_status; }
Listing 4.5 method insertPembelian
175
Admin dapat mengubah data pembelian dengan meng-klik menu ubah yang
terdapat pada setiap data pembelian. Pada halaman ubah data pembelian admin
hanya mengubah detail dari data pembelian tanpa menghapus data barang yang ada
pada pembelian. Gambar 4.18 merupakan halaman ubah data pembelian.
Gambar 4.18 halaman ubah data pembelian
Proses pengubahan data pembelian dilakukan di kelas
ServletPembelianUbah.java. Pada kelas ini dilakukan pengecekan data input kosong
atau tidak. Jika kosong proses akan kembali ke halaman ubah data pembelian dengan
peringatan bahwa terdapat data yang belum diisikan. Jika proses pengecekan ini
176
berhasil, maka akan dilanjutkan dengan pencatatan data pembelian yang akan diubah.
Proses pencatatan ini dilakukan dengan memanggil method updatePembelian yang
terdapat pada kelas pembelian. Listing 4.6 berikut merupakan kelas
ServletPembelianUbah.java.
package Servlet; import DataModel.Pembelian; import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Fan */ public class ServletPembelianUbah extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Pembelian pembelian = new Pembelian(); RequestDispatcher rd = null; PrintWriter pw = response.getWriter(); String idBeli = request.getParameter("idBeli"); String noFaktur = request.getParameter("noFaktur"); String distributor = request.getParameter("distributor"); String tglBeli = request.getParameter("tglBeli"); String keterangan = request.getParameter("keterangan"); if(distributor.isEmpty() || tglBeli.isEmpty() || keterangan.isEmpty()) { pw.println("<script language=\"javascript\">" +
177
"window.alert('Terdapat data yang tidak diisikan');" + "history.back();" + "</script>"); } else { pembelian.setIdBeli(Integer.valueOf(idBeli)); pembelian.setNoFaktur(noFaktur); pembelian.setDistributor(distributor); pembelian.setTanggalBeli(Date.valueOf(tglBeli)); pembelian.setKeteranganBeli(keterangan); pembelian.updatePembelian(); rd = request.getRequestDispatcher("/datatekAdmin/adminPembelian.jsp"); rd.forward(request, response); } pw.close(); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Listing 4.6 kelas ServletPembelianUbah.java
Admin dapat menghapus data dengan meng-klik menu hapus pada halaman
pembelian. Proses penghapusan data pembelian dilakukan oleh
ServletPembelianHapus.java. Pada kelas ini dilakukan penghapusan data dengan
membentuk obyek dari kelas pembelian. Kemudian dengan obyek tersebut dipanggil
method deletePembelian untuk menghapus data pembelian berdasarkan idPembelian.
Listing 4.7 berikut merupakan kelas ServletPembelianHapus.java.
package Servlet; import DataModel.Pembelian; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException;
178
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Fan */ public class ServletPembelianHapus extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Pembelian beli = new Pembelian(); RequestDispatcher rd = null; PrintWriter pw = response.getWriter(); String id = request.getParameter("idPemb"); beli.setIdBeli(Integer.valueOf(id)); if(beli.deletePembelian()) { pw.println("<script language=\"javascript\">" + "window.alert('Pembelian terhapus');" + "</script>"); } else { pw.println("<script language=\"javascript\">" + "window.alert('Pembelian tidak terhapus');" + "</script>"); } rd = request.getRequestDispatcher("/datatekAdmin/adminPembelian.jsp"); rd.forward(request, response); pw.close(); } /** * Returns a short description of the servlet. * @return a String containing servlet description */ @Override public String getServletInfo() {
179
return "Short description"; }// </editor-fold> }
Listing 4.7 kelas ServletPembelianHapus.java
Untuk mencetak laporan admin meng-klik menu cetak laporan kemudian
proses dilanjutkan ke halaman cetak laporan. Pada halaman ini dapat dicetak laporan
pembelian maupun penjualan berdasarkan tanggal pembelian maupun penjualan.
Gambar 4.19 merupakan halaman cetak laporan.
Gambar 4.19 halaman cetak laporan
180
Untuk menampilkan laporan pembelian maupun penjualan admin dapat meng-
klik tombol preview pada halaman cetak laporan. Proses cetak laporan dilakukan oleh
ServletCetakLaporan.java. Gambar 4.20 merupakan halaman laporan pembelian.
Gambar 4.20 halaman laporan pembelian
Pada halaman barang ditampilkan data barang yang telah masuk dari
pembelian. Halaman ini mempunyai menu seperti pengaturan jenis barang, upload
foto barang dan ubah data barang. Pada halaman pengaturan jenis barang admin dapat
menambah, mengubah dan menghapus jenis barang yang ada. Untuk menambah
barang admin mengisikan input jenis barang kemudian meng-klik tombol simpan.
181
Untuk mengubah data jenis barang admin meng-klik menu ubah pada data jenis
barang kemudian mengganti data tersebut pada input-an dan menyimpannya dengan
meng-klik tombol simpan. Untuk menghapus data jenis barang admin meng-klik
menu hapus. Gambar 4.21 merupakan halaman pengaturan jenis barang.
Gambar 4.21 halaman pengaturan jenis barang
Admin dapat meng-klik menu upload untuk meng-upload foto barang. Pada
halaman upload foto admin hanya dapat meng-upload file yang bertipe jpg, bmp atau
png. Pengaturan upload dilakukan oleh ServletUploadBarangFoto.java. Kelas ini
melakukan pengecekan tipe file yang di-upload. Jika sesuai maka file akan disimpan
182
dan proses dilanjutkan ke ServletSimpanDataUpload.java untuk kemudian
menyimpan nama file gambar ke database. Listing 4.8 berikut merupakan kelas
ServletUploadBarangFoto.java.
package Servlet; import java.io.*; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.FileItemStream; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.util.Streams; /** * * @author Fan */ public class ServletUploadBarangFoto extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); RequestDispatcher rd = null; String filename=null; try { //variabel untuk mengambil nilai request berupa multipart ato tidak boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { ServletFileUpload upload = new ServletFileUpload();
183
FileItemIterator iter = upload.getItemIterator(request); if(iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); filename = getRealName(item.getName()); String idBarang = request.getParameter("idBarang"); if(cekIsImage(filename)==false) { pw.println("<script language=\"javascript\">" + "window.alert('Cek ekstensi file'); " + "history.back();" + "</script>"); } // pw.println(name + " " + filename + "<br>" + // this.getServletContext().getRealPath("/") + idBerita); else { InputStream stream = item.openStream(); FileOutputStream savedFile; if (!item.isFormField()) { File file = new File (this.getServletContext().getRealPath("/")+ "DatatekPic/Produk/" + filename); if (file.exists()) { file.delete(); } savedFile = new FileOutputStream(file); Streams.copy(stream, savedFile, true); pw.println("File berhasil disimpan "); rd = request.getRequestDispatcher("../datatekAdmin/" + "ServletSimpanDataUpload?id="+idBarang+"&data=barang&file="+filename); rd.forward(request, response); } } } } else { pw.println("not multipart"); } } catch (Exception ex) {
184
} } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> public String getRealName(String name) { int lastIndex = name.length(); int newIndex = name.lastIndexOf("\\"); String real = name.substring(newIndex + 1, lastIndex); return real; } public boolean cekIsImage(String filename) { boolean kondisi = false; String fileEKS = filename.substring(filename.length()-3,filename.length()); String[] ekstension = {"JPG","jpg","PNG","png","BMP","bmp"}; for(int i=0;i<ekstension.length;i++) { if(fileEKS.equals(ekstension[i])) { kondisi = true; } } return kondisi; } }
Listing 4.8 kelas ServletUploadBarangFoto.java
Pada halaman barang admin juga dapat mengubah data barang. Dengan meng-
klik ubah pada data yang akan diubah maka proses akan berlanjut ke halaman ubah
data barang. Pada halaman ini admin dapat mengganti data barang tetapi tidak dapat
mengubah stok barang. Gambar 4.22 merupakan halaman ubah data barang.
185
Gambar 4.22 halaman ubah data barang
Pada menu berita admin dapat menambah, mengubah, menghapus dan upload
foto berita. Untuk menambah berita admin dapat meng-klik menu tambah. Kemudian
proses akan berlanjut ke halaman tambah berita dan admin dapat mengisikan data
berita kemudian meng-klik tombol simpan untuk menyimpan data berita. Admin
dapat meng-klik menu ubah untuk mengubah data berita yang ada. Setelah meng-klik
menu ubah maka proses akan berlanjut ke halaman ubah berita dan admin dapat
mengganti data berita. Untuk menghapus data berita admin hanya perlu meng-klik
menu hapus pada halaman berita. Menu upload foto berita digunakan untuk
186
menambah atau mengubah gambar yang akan ditampilkan pada suatu berita. Proses
upload ini sama dengan proses upload foto barang. Gambar 4.23, 4.24, 4.25 dan 4.26
menunjukkan halaman berita, halaman tambah berita, halaman ubah dan halaman
upload foto berita.
Gambar 4.23 halaman berita
187
Gambar 4.24 halaman tambah berita
188
Gambar 4.25 halaman ubah berita
189
Gambar 4.26 halaman upload foto berita
Menu komentar digunakan untuk menjawab dan menghapus komentar. Pada halaman
komentar ditampilkan data-data komentar yang masuk. Komentar dapat ditampilkan
semua atau komentar yang belum dijawab. Admin dapat meng-klik menu jawab
untuk menjawab komentar. Selain itu admin juga dapat menghapus data komentar
dengan meng-klik menu hapus pada halaman komentar. Gambar 4.27 dan 4.28
merupakan halaman komentar dan halaman jawab komentar.
190
Gambar 4.27 halaman komentar
191
Gambar 4.28 halaman jawab komentar
Menu account merupakan menu yang hanya dapat diakses oleh admin yang
berstatus pemilik. Pada halaman ini admin dapat menambah dan menghapus data
admin. Admin dapat meng-klik menu tambah untuk menambah data admin. Pengisian
data admin baru dilakukan di halaman tambah account kemudian data dapat disimpan
dengan meng-klik tombol simpan. Admin dapat meng-klik menu hapus untuk
melakukan penghapusan data admin. Gambar 4.29 dan 4.30 merupakan halaman
admin dan halaman tambah admin.
192
Gambar 4.29 halaman admin
193
Gambar 4.30 halaman tambah admin
4.3 Implementasi Manajemen Transaksi
Manajemen transaksi digunakan pada pencatatan penjualan dan pencatatan
pembelian. Skenario Manajemen Transaksi untuk pencatatan 2 pembelian sebagai
berikut :
Waktu (t)
Transaksi 1 (T1) Transaksi 2 (T2) Stok Barang (s)
t1 t2 t3
Start transaction T1; IF not exists(T1) then IF not exists(data pembelian T1) then
Start transaction T2; WAITING…
s s s
194
t4 t5 t6 t7 t8 t9 t10 t11
INSERT data pembelian; END IF; SELECT s FOR UPDATE; s = s + stok T1; IF exists(data pembelian T1) then INSERT data detail pembelian; END IF; COMMIT; ELSE ROLLBACK; END IF;
WAITING… WAITING… WAITING… IF not exists(T2) then IF not exists(data pembelian T2) then INSERT data pembelian; END IF; SELECT s FOR UPDATE; s = s + stok T2; IF exists(data pembelian T2) then INSERT data detail pembelian; END IF; COMMIT; ELSE ROLLBACK; END IF;
s s + stok T1 s + stok T1 s + stok T1 s + stok T1 s + stok T1 s + stok T1 + stok T2 s + stok T1 + stok T2
Skenario di atas diimplementasikan dalam pemrograman sebagai berikut :
195
DELIMITER $$ DROP PROCEDURE IF EXISTS `datatekkom`.`SPPembelianTambah`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `SPPembelianTambah`(pNoFaktur varchar(50), pDistributor varchar(255), ptglBeli date,pKeterangan varchar(255), pIdBarang varchar(50), pNama varchar(255), pHargaPokok double, pGaransi int(11), pJenisBrg int(11), pHargaBeli double, pJumlah int(11) ) BEGIN declare vPembelian int(11); -- declare vIdJenis int(11); declare vStok int(11); SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET AUTOCOMMIT=0; START TRANSACTION; -- cek data pembelian(tidak boleh 1 pembelian, barangnya sama) IF NOT EXISTS(select * from pembelian_barang where idBarang like pIdBarang AND idPembelian=(select idPembelian from pembelian where noFaktur like pNoFaktur and distributor like pDistributor)) THEN -- insert ke tb pembelian IF NOT EXISTS(select * from pembelian where noFaktur like pNoFaktur and distributor like pDistributor) THEN INSERT INTO pembelian(noFaktur,distributor,tanggalPembelian,keterangan) VALUES(pNoFaktur,pDistributor,ptglBeli,pKeterangan); END IF; -- insert ke tb barang SELECT stokBarang into vStok from barang where idBarang like pIdBarang FOR UPDATE; UPDATE barang SET stokBarang=if(isnull(vStok),0,vStok)+pJumlah WHERE idBarang like pIdBarang; -- insert ke tb pembelian_barang select idPembelian into vPembelian from pembelian where noFaktur like pNoFaktur AND distributor like pDistributor; IF EXISTS(select * from pembelian p, barang b where b.idBarang like pIdBarang and p.noFaktur like pNoFaktur and
196
distributor like pDistributor) THEN insert into pembelian_barang(idBarang,idPembelian,hargaBeli,jumlah) values(pIdBarang,vPembelian,pHargaBeli,pJumlah); END IF; COMMIT; ELSE ROLLBACK; END IF; SET AUTOCOMMIT=1; END$$ DELIMITER ;
Listing 4.9 Stored procedure untuk penambahan data pembelian
Query di atas menunjukkan manajemen transaksi dengan metode 2 Phase
Locking pada pencatatan pembelian. Sebelum transaksi dimulai, AUTOCOMMIT
untuk transaksi ini diatur menjadi 0 agar data tidak tercatat secara otomatis sebelum
COMMIT. Selain itu level transaksi juga diatur menjadi SERIALIZABLE dan
transaksinya bertipe SESSION. Level transaksi SERIALIZABLE berarti transaksi
dijalankan satu per satu dan SESSION berarti level transaksi ini ditujukan untuk
transaksi yang akan dijalankan pada koneksi yang digunakan saat ini. Pada saat data
akan masuk, dilakukan pengecekan apakah data pembelian suatu barang yang masuk
sudah tercatat atau belum. Jika belum, maka dilakukan pengecekan terhadap data
pembelian. Jika data pembelian belum ada maka dilakukan penambahan data
pembelian. Kemudian proses dilanjutkan pada pengecekan data barang. Jika data
barang telah ada, maka data stok barang akan di-update. Dengan perintah
SELECT…FOR UPDATE, data stok barang dikunci(lock) terhadap akses transaksi
197
lain untuk kemudian dilakukan penambahan stok barang. Jika data barang tidak ada,
maka akan dilakukan penambahan data barang dengan perintah INSERT. Setelah
proses data barang dilakukan maka proses berlanjut ke pengecekan data detail
pembelian untuk kemudian dilakukan penambahan ke data detail pembelian. Setelah
proses detail data pembelian dilakukan, maka transaksi akan COMMIT. Transaksi
akan ROLLBACK jika data pembelian yang akan dimasukkan telah ada. Setelah
transaksi dilakukan AUTOCOMMIT kembali diatur menjadi 1.
Skenario Manajemen Transaksi untuk pencatatan penjualan sebagai berikut :
Waktu (t) Transaksi 1 (T1) Transaksi 2 (T2) Stok Barang (s)
t1 t2 t3 t4 t5 t6 t7
Start transaction T1; SELECT s FOR UPDATE; IF(s>0 and stok T1 <= s) IF not exists(data penjualan) then IF not exists(data pembeli) then INSERT data pembeli; END IF; INSERT data penjualan; END IF; INSERT detail penjualan; UPDATE s = s – stok T1; SELECT statusInsert = 1;
Start transaction T2; WAITING… WAITING… WAITING… WAITING… WAITING… WAITING… WAITING…
s s s s s s s s s - stok T1
198
t8 t9 t10 t11 t12 t13 t14 t15 t16
COMMIT; ELSE SELECT statusInsert = 0; ROLLBACK; END IF;
WAITING… SELECT s FOR UPDATE; IF(s>0 and stok T2 <= s) IF not exists(data penjualan) then IF not exists(data pembeli) then INSERT data pembeli; END IF; INSERT data penjualan; END IF; INSERT detail penjualan; UPDATE s = s – stok T2; SELECT statusInsert = 1; COMMIT; ELSE SELECT statusInsert = 0; ROLLBACK; END IF;
s - stok T1 s - stok T1 s - stok T1 s - stok T1 s - stok T1 s - stok T1 s - stok T1 s - stok T1 - stok T2 s - stok T1 - stok T2
199
Skenario di atas diimplementasikan dalam pemrograman sebagai berikut :
DELIMITER $$ DROP PROCEDURE IF EXISTS `datatekkom`.`SPPenjualanTambah`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `SPPenjualanTambah`(pNamaPembeli varchar(255), pAlamat varchar(255), pEmail varchar(100), pTelpon varchar(20), pJumlahBarang INT, pIdBarang varchar(50), pNota varchar(50), OUT pInsertStatus INT) BEGIN declare v_stok_barang INT; declare v_idPembeli INT; declare v_hargajual DOUBLE; declare v_statusInsert INT default 1; declare v_idPenjualan INT; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET AUTOCOMMIT=0; START TRANSACTION; select harga into v_hargajual from barang where idBarang like pIdBarang; -- CEK STOK BARANG select stokBarang into v_stok_barang from barang where idBarang like pIdBarang FOR UPDATE; IF(v_stok_barang > 0 AND pJumlahBarang <= v_stok_barang) THEN -- cek data penjualan IF NOT EXISTS(select * from penjualan where noNota like pNota) THEN -- cek data pembeli IF NOT EXISTS(SELECT * FROM pembeli WHERE nama like pNamaPembeli AND email like pEmail AND noTelpon like pTelpon) THEN INSERT INTO pembeli(nama,alamat,email,noTelpon) VALUES(pNamaPembeli,pAlamat,pEmail,pTelpon); END IF; SELECT idPembeli INTO v_idPembeli FROM pembeli WHERE nama like pNamaPembeli AND email like pEmail AND noTelpon like pTelpon;
200
INSERT INTO penjualan(idPembeli,noNota,tanggalPenjualan) VALUES(v_idPembeli,pNota,now()); END IF; SELECT idPenjualan INTO v_idPenjualan FROM penjualan WHERE noNota like pNota; INSERT INTO penjualan_barang(idBarang,idPenjualan,hargaJual,jumlah) VALUES(pIdBarang,v_idPenjualan,v_hargajual,pJumlahBarang); -- UPDATE STOK BARANG UPDATE barang SET stokBarang = v_stok_barang - pJumlahBarang WHERE idBarang like pIdBarang; SELECT v_statusInsert INTO pInsertStatus; COMMIT; ELSE SET v_statusInsert=0; SELECT v_statusInsert INTO pInsertStatus; ROLLBACK; END IF; SET AUTOCOMMIT=1; END$$ DELIMITER ;
Listing 4.10 Stored procedure untuk penambahan data penjualan
Query di atas menunjukkan manajemen transaksi dengan metode 2 Phase
Locking pada transaksi pencatatan penjualan. Sebelum transaksi dimulai,
AUTOCOMMIT untuk transaksi ini diatur menjadi 0 agar data tidak tercatat secara
otomatis sebelum COMMIT. Selain itu level transaksi juga diatur menjadi
SERIALIZABLE dan transaksinya bertipe SESSION. Level transaksi
SERIALIZABLE berarti transaksi dijalankan satu per satu dan SESSION berarti level
transaksi ini ditujukan untuk transaksi yang dijalankan pada koneksi yang digunakan
saat ini. Mula-mula dilakukan locking terhadap data stok barang agar tidak digunakan
oleh transaksi lain. Locking ini dilakukan dengan perintah SELECT…FOR
201
UPDATE. Kemudian data stok barang tersebut dicek apakah lebih dari 0 dan jumlah
barang pada data penjualan <= stok barang. Jika memenuhi kondisi tersebut, maka
proses akan berlanjut ke pengecekan data penjualan. Jika data penjualan belum ada
maka dilakukan penambahan data penjualan dan penambahan data pembeli. Data
pembeli akan ditambahkan jika data belum tercatat di database atau belum pernah
melakukan pembelian. Setelah pengecekan data penjualan dilakukan penambahan
data detail penjualan dan kemudian pengurangan data stok barang karena telah
dipesan. Jika semua proses telah berhasil dilakukan, maka status pencatatan data akan
diatur = 1 dan transaksi COMMIT. Transaksi akan ROLLBACK jika stok barang <=
0 atau jumlah pemesanan barang melebihi stok yang tersedia. Setelah transaksi
dilakukan AUTOCOMMIT kembali diatur menjadi 1.
202
BAB V
ANALISA HASIL
Pada bab ini dibahas mengenai hasil dari implementasi Manajemen Transaksi
pada pencatatan pembelian dan penjualan barang di toko komputer Datatek. Pada
pencatatan data pembelian, Manajemen Transaksi digunakan untuk mengatasi stok
barang yang dapat berubah setiap saat. Pada pencatatan penjualan, Manajemen
Transaksi digunakan untuk mengatasi suatu transaksi pemesanan barang yang diakses
secara bersamaan oleh pembeli. Transaksi pemesanan ini akan mempengaruhi stok
barang yang ada sehingga dapat terjadi pembeli tidak mendapatkan barang yang
diinginkan karena pemesanan terhadap barang yang sama telah dilakukan oleh
pembeli lain pada saat yang bersamaan sehingga stok tidak mencukupi untuk
dilakukan pemesanan. Manajemen transaksi dalam ruang lingkup ini menggunakan
teknik Two Phase Locking (2PL) untuk mengatasi masalah the lost update problem.
Pengujian manajemen transaksi penjualan dilakukan dengan skenario berikut :
1. Mula-mula dilakukan pemasukan data sampel barang. Contoh : processor Intel
Core 2 Duo E7300 sebanyak 2 buah. Gambar 5.1 adalah hasil pemasukan data
processor Intel Core 2 Duo E7300.
203
Gambar 5.1 hasil pemasukan data processor Intel Core 2 Duo E7300
2. User 1 melakukan pemesanan processor Intel Core 2 Duo E7300 sebanyak 2
buah. Gambar 5.2 merupakan halaman pemesanan yang dilakukan User 1.
204
Gambar 5.2 halaman pemesanan User 1
3. User 2 melakukan pemesanan produk yang sama sebanyak 2 buah. Gambar 5.3
merupakan halaman pemesanan yang dilakukan User 2.
205
Gambar 5.3 halaman pemesanan User 2
4. Pemesanan dilakukan secara bersamaan oleh User 1 dan User 2. User 1
mendapatkan produk yang dipesan dan User 2 tidak mendapatkan produk yang
sama karena stok barang sudah habis. Gambar 5.4 dan 5.5 adalah halaman
detail pemesanan User 1 dan User 2.
206
Gambar 5.4 halaman detail pemesanan User 1
Gambar 5.5 halaman detail pemesanan User 2
207
Gambar 5.6 merupakan stok produk processor Intel Core 2 Duo setelah terjadi
pemesanan oleh 2 User secara bersamaan.
Gambar 5.6 stok produk processor Intel Core 2 Duo setelah pemesanan oleh 2 User secara
bersamaan
Dari pengujian skenario di atas dapat disimpulkan bahwa manajemen transaksi
untuk penjualan dapat berfungsi dengan baik. Hal ini dibuktikan dengan salah satu
User tidak dapat melakukan pemesanan produk dikarenakan produk tersebut telah
dipesan terlebih dahulu oleh User yang lain.
Pengujian manajemen transaksi pembelian dilakukan dengan skenario berikut :
208
1. Mula-mula dimasukkan data sampel barang. Contoh : harddisk Fujitsu MHZ
sebanyak 2 buah. Gambar 5.7 adalah hasil pemasukan data sampel harddisk
Fujitsu MHZ.
Gambar 5.7 data sampel harddisk Fujitsu MHZ
2. User 1 melakukan pencatatan pembelian harddisk Fujitsu MHZ sebanyak 1
buah. Gambar 5.8 merupakan halaman pengisian data pembelian yang
dilakukan oleh User 1.
209
Gambar 5.8 halaman pengisian data pembelian yang dilakukan oleh User 1
3. User 2 melakukan pencatatan pembelian harddisk Fujitsu MHZ sebanyak 1
buah. Gambar 5.9 merupakan halaman pengisian data pembelian yang
dilakukan oleh User 2.
210
Gambar 5.9 halaman pengisian data pembelian yang dilakukan oleh User 2
4. User 1 dan User 2 melakukan pencatatan pembelian terhadap barang berupa
harddisk Fujitsu MHZ secara bersamaan. Gambar 5.10 dan 5.11 merupakan
halaman detail pembelian barang User 1 dan User 2.
211
Gambar 5.10 halaman detail pembelian barang User 1
Gambar 5.11 merupakan halaman detail pembelian barang User 2
Gambar 5.12 merupakan stok harddisk Fujitsu MHZ setelah dilakukan
pencatatan pembelian secara bersamaan oleh User 1 dan User 2.
212
Gambar 5.12 stok harddisk Fujitsu MHZ setelah dilakukan pencatatan pembelian
secara bersamaan oleh User 1 dan User 2
Dari pengujian skenario di atas dapat disimpulkan bahwa manajemen transaksi
untuk pembelian dapat berfungsi dengan baik. Hal ini dibuktikan dengan tidak
adanya kesalahan dalam pencatatan stok barang Fujitsu MHZ yang dilakukan secara
bersamaan oleh User 1 dan User 2.
213
BAB VI
PENUTUP
Pada bab akhir dibahas kesimpulan dan saran dari hal-hal yang berkaitan
dengan konsep Manajemen Transaksi pada sistem penjualan komputer yang
mengambil contoh toko komputer DATATEK.
6.1 Kesimpulan
Dari implementasi Manajemen Transaksi dengan metode 2 Phase Locking
pada sistem penjualan komputer dengan mengambil studi kasus pada toko komputer
DATATEK dapat disimpulkan bahwa :
1. Manajemen transaksi dalam sistem penjualan komputer rakitan berbasis web
ini dapat berfungsi dengan baik.
2. Metode 2 Phase Locking yang digunakan pada sistem manajemen transaksi ini
dapat mengatasi masalah lost update problem akibat transaksi yang dilakukan
oleh 2 user dalam waktu yang bersamaan. Dengan metode ini dilakukan
locking pada proses yang mengakses data yang sama agar proses dijalankan
satu per satu. Metode ini dapat menjamin konsistensi data.
214
6.2 Saran
1. Implementasi website menggunakan metode 2 Phase Locking ini dilakukan
hanya untuk mengatasi masalah the lost update problem. Saran yang dapat
diberikan adalah mengembangkan implementasi ini untuk mengatasi masalah
concurrency control lainnya seperti the uncommitted dependency problem dan
the inconsistency analysis.
DAFTAR PUSTAKA
Connoly, Thomas & Begg, Carolyn. Database Systems : A Practical Approach to
Design, Implementation and Management (ed.4). England : Addison-
Wesley. 2005.
Whitten, Jeffrey L., Bentley, Lonnie D., & with Kevin C Dittman. Systems Analysis
and Design Methods (ed.5). New York : McGraw-Hill. 2001.
Bruegge, Bernd & Dutoit, Allen H. Object-Oriented Software Engineering : Using
UML, Patterns and Java (ed.2). USA : Pearson Education, Inc. 2004.
Darmawan, J.B.Budi, S.T., M.Sc. Teknik Kontrol Concurrency Menggunakan 2PL
dalam MySQL untuk Menangani Masalah dalam Concurrency. Jurusan
Teknik Informatika Universitas Sanata Dharma. 2007.
Horstmann, Cay S & Cornell, Gary. Core Java 2 Volume II Advanced Features
(ed.7). California : Prentice Hall PTR. 2004.
Foenandioen, S.Kom., MM & Prakoso, Samuel, S.Kom. Pedoman Praktis :
Pengembangan Aplikasi Web Database Menggunakan Java Server Page.
Yogyakarta : Penerbit Andi. 2008.
Swastika, Rindra. Resep CSS (Cascading Style Sheet). Jakarta : Dian Rakyat. 2006.
LAMPIRAN
Lampiran - 1
Lampiran - 2