PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI APLIKASI PENGOLAHAN DATA TRANSAKSI BENGKEL MOTOR DENGAN MENERAPKAN PROTOKOL TWO PHASE LOCKING (Studi Kasus Bengkel Anugrah Motor) Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun Oleh : Ardy Christianto Joseph 105314092 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI TRANSACTION DATA PROCESSING APPLICATIONS MOTOR WORKSHOP USING TWO PHASE LOCKING PROTOCOLS (Case Study at Bengkel Anugrah Motor) ` Thesis Presented as Partial Fullfillment of the Requirements To Obtain Sarjana Komputer Degree In Departement of Informatics Engineering By : Ardy Christianto Joseph 105314092 INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016 i PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI iii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya susun dan saya tulis ini tidak memuat karya orang lain , kecuali yang telah disebutkan dalam kutipan dan daftar pustaka , sebagaimana layaknya karya ilmiah. Yogyakarta , ……………………. 2016 Penulis Ardy Christianto Joseph iv PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI HALAMAN PERSEMBAHAN Karya ini saya persembahkan kepada : Tuhan Yesus Kristus atas segala berkat penyertaannya selama mengerjakan tugas akhir Ayah dan Ibu yang selalu mendoakan dan memberi dukungan selama pengerjaan tugas akhir Seluruh keluarga besar yang selalu memberi semangat dselama pengerjaan tugas akhir Semua teman teman yang telah memberikan bantuan dan dukungan v PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI HALAMAN MOTTO Dia memberi kekuatan kepada yang lelah dan menambah semangat kepada yang tiada berdaya. (Yesaya 40:29) Waktu dipenuhi dengan banyak kesempatan. dan seperti waktu setiap kesempatan hanya datang satu kali, saat anda lewatkan kesempatan itu tak akan ada lagi kesempatan kedua Tidak ada kata terlambat untuk belajar vi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma Nama : Ardy Christianto Joseph Nim : 105314092 Demi pengembangan ilmu pengetahuan saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul APLIKASI PENGOLAHAN DATA TRANSAKSI BENGKEL MOTOR DENGAN MENERAPKAN PROTOKOL TWO PHASE LOCKING (Studi Kasus Bengkel Anugrah Motor) Berserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma untuk hak menyimpan, mengalihkan dalam bentuk media lain, mengolahnya dalam bentuk pangkalan data, mendistribusikanya secara terbatas, dan mempublikasikanya di internet dan media lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan saya ini saya buat dengan sebenarnya Dibuat di Yogyakarta Pada tanggal ……………………….. Yang menyatakan, Ardy Christianto Josep vii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRAK Transaksi pengambilan suku cadang dalam proses layanan sepeda motor sangat penting, terutama dalam pencatatan data stok suku cadang yang ada. Dalam mengurangi data stok suku cadang yang digunakan dalam proses layanan ini, manajemen transaksi diterapkan untuk menghindari kesalahan dalam pencatatan stok data suku cadang. Transaksi di bengkel Anugrah Motor masih menggunakan pencatatan manual dengan cara menulis catatan kertas. Untuk meningkatkan kinerja bengkel Anugrah Motor, sistem pengolahan data transaksi dibuat. Sistem ini akan terhubung dengan database untuk melakukan pengolahan data bengkel Anugrah Motor. Dengan penggunaan database pada sistem ini, dimungkinkan ada masalah konkuren seperti: The Lost Update Problem, The Uncommited Dependency Problem and The Inconsistent Analysis Problem. Hal ini bisa terjadi karena penggunaan aplikasi secara bersamaan untuk proses transaksi pengurangan atau penambahan suku cadang oleh beberapa administrator. Oleh karena itu, manajemen transaksi dibutuhkan dalam proses transaksi pengurangan dan penambahan suku cadang, yang akan dibuat menggunakan Two Phase Locking (2PL) protokol untuk mengendalikan transaksi penambahan atau pengurangan stok suku cadang sehingga data yang diperoleh adalah benar. Dalam tesis ini, protokol 2PL diuji dengan membuat aplikasi pengolahan data, pada studi kasus di bengkel Anugrah Motor. Sistem ini dibuat untuk membantu administrator dalam transaksi layanan jasa yang mencakup pencatatan data konsumen, rincian motor, rincian jasa, biaya total, dan pengurangan stok suku cadang yang digunakan dalam proses ini. Sistem ini memungkinkan menampilkan rincian dari setiap konsumen yang telah melakukan transaksi layanan jasa di bengkel Motor Anugrah. Hasil dari pengujian sistem aplikasi transaksi dalam bengkel Anugrah Motor dengan menerapkan manajemen transaksi menggunakan protokol 2PL dirancang untuk membuat aplikasi yang mampu menghindari masalah konkuren serta meningkatkan kinerja administrator bengkel Anugrah Motor. Kata kunci : Pengolahan Data, Transaksi, Manajemen Transaksi, Two Phase Locking viii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRACT Transactions of spare parts retrieval in the process of motorcycle services are very important, especially in data recording of the existing spare parts stock. In substracting data transaction of the parts used in the process of these services, transaction management is applied in order to avoid errors in the data recording stock of the spare parts. Transactions on Anugrah Motor Workshop still use manual recording by means of writing paper notes. To improve the performance of Anugrah Motor Workshop, transaction data processing system is made. This system will be connected to the database to perform data processing of Anugrah Motor Workshop. With the use of databases on this system, there may be problems of concurrent such as: The Lost Update Problem, The Uncommited Dependency Problem, and The Inconsistent Analysis Problem. This could happen due to the simulteneous use of applications, for transaction processing subtraction or addition of spare parts by some administrators. Therefore, the transaction management is needed in the transaction process of spare parts' reduction and addition, which is going to be created using the Two Phase Locking (2PL) protocols to control transactions of addition or reduction in spare parts stock so that the data obtained is valid. In this thesis, the Two Phase Locking protocols was tested by making application transaction of data processing, in the case study on Anugrah Motor Workshop. This system was designed to help administrator in transaction processing services that include consumer data recording, motor details, services, total costs, and the reduction of stock parts used in this process. This system enables displays of the details of every consumer who has made transaction processing services in the Anugrah Motor Workshop. The results of the transaction data process application system testing in the motorcycle workshops with the implementation of transaction management using Two Phase Locking protocols, is designed to build applications that is able to avoid potential concurrent problems as well as increasing the performance of the Anugrah Motor Workshop administrator. Keywords: Data Processing, Transaction, Transaction Management, Two Phase Locking ix PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI KATA PENGANTAR Puji dan syukur kepada Tuhan Yesus Kristus yang telah memberikan berkat dan rahmatnya secara senantiasa tak berkesudahan serta kesempatan yang telah diberikan kepada penulis sehingga dapat menyelesaikan skripsi dengan judul " Aplikasi Pengolahan Data Transaksi Bengkel Motor Dengan Menerapkan Protokol Two Phase Locking (Studi Kasus Bengkel Anugrah Motor) " Dalam kesempatan ini, penulis juga ingin mengucapkan terimakasih yang sebesar besarnya terhadap semua pihak yang telah memberikan dukungan dan waktunya sehingga skripsi ini dapat diselesaikan : 1. Bapak JB. Budi Darmawan S.T.,M.Sc selaku dosen pembimbing terimakasih atas semua pengorbanan waktu untuk memberikan bimbingan, diskusi, ilmu, serta kesabaran dalam membimbing penulis. 2. Bapak Sudi Mungkasi, Ph.D. Selaku Dekan Fakultas Sains dan Teknologi. 3. Ibu Dr Anastasia Rita Widiarti. Selaku ketua jurusan Teknik Informatika Universitas Sanata Dharma. 4. Ibu Dr Anastasia Rita Widiarti. S.si., M.Sc. selaku dosen pembimbing akademik. 5. Ibu Agnes Maria Polina, M.Sc., dan Dr Anastasia Rita Widiarti selaku dosen penguji. Yang telah memberikan kritik dan saran. 6. Kedua orang tua penulis. Terimakasih untuk semua semangat, dukungan dan kasih sayang yang diberikan selama ini. 7. Segenap keluarga besar yang telah mendukung dan memberi semangat penulis selama proses penyusunan tugas akhir . 8. Untuk Eduardus Hardika S.A., Wisnu Yhoga W., Alfonsus Doni S., I Nyoman Rama A. dan seluruh teman "2nd home" yang telah memberikan bantuan dan semangat dalam mengerjakan tugas akhir. 9. Untuk seluruh teman teman Teknik Informatika angkatan 2010. terimaka kasih atas dukungan dan kebersamaan selama kuliah di Universitas Sanata Dharma. x PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Penulis Merasa masih banyak kekurangan dalam penyusunan laporan tugas akhir ini. Untuk itu, penlis mengarapkan saran dan kritik yang membangun dari segenap pembaca. Semoga tugas akhir ini dapat bermanfaat, khususnya pada bidang teknik informatika Yogyakarta, ...................................2016 Penulis Ardy Christianto Joseph xi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN PERSETUJUAN.............................................................................................ii HALAMAN PENGESAHAN ........................................................................................... iii PERNYATAAN KEASLIAN KARYA .......................................................................... iiiv HALAMAN PERSEMBAHAN .......................................................................................... v HALAMAN MOTTO ......................................................................................................... vi ABSTRAK .........................................................................................................................vii ABSTRACT ........................................................................................................................ ix KATA PENGANTAR ......................................................................................................... x DAFTAR ISI......................................................................................................................xii DAFTAR GAMBAR ......................................................................................................... xv DAFTAR TABEL .......................................................................................................... xviii DAFTAR LISTING ........................................................................................................... xx DAFTAR GRAFIK ..........................................................................................................xxii BAB I ................................................................................................................................... 1 1.1 Latar Belakang ....................................................................................................... 1 1.2 Rumusan Masalah .................................................................................................. 2 1.3 Tujuan ..................................................................................................................... 2 1.4 Batasan ................................................................................................................... 2 1.5 Metodologi ............................................................................................................. 3 1.6 Sistematika Penulisan ............................................................................................. 4 BAB II.................................................................................................................................. 5 2.1 Manajemen Transaksi ............................................................................................ 5 2.1.1 Concurency Control ..................................................................................... 6 2.1.2 Two Phase Locking atau 2pl ........................................................................ 6 2.2 Pemodelan .............................................................................................................. 9 2.2.1 Use case ....................................................................................................... 9 2.2.2 Actor ........................................................................................................... 10 2.2.3 Use Case Association Relationship ........................................................... 10 2.3 Entity Relationship Diagram (ERD) .................................................................... 11 2.3.1 Entitas ........................................................................................................ 11 2.3.2 Atribut ........................................................................................................ 11 xii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.3.3 Relasi.......................................................................................................... 11 2.4 Conceptual Database Design ............................................................................... 12 2.5 Logical Database Design ..................................................................................... 12 2.6 Physical Database Design.................................................................................... 13 BAB III .............................................................................................................................. 14 3.1 Gambaran Sistem Lama ....................................................................................... 14 3.2 Gambaran Sistem Baru ......................................................................................... 14 3.3 Requirment Analysis ............................................................................................. 15 3.3.1 Use Case Diagram ..................................................................................... 15 3.3.2 Definisi Aktor ............................................................................................ 16 3.3.3 Definisi Use Case ...................................................................................... 16 3.3.4 Skenario Use Case ..................................................................................... 17 3.4 Activity Diagram .................................................................................................. 29 3.5 Perangancan Diagram Sekuensial ........................................................................ 41 3.6 Perancangan Diagram Kelas ................................................................................ 51 3.7 Perancangan Konseptual Basisdata ...................................................................... 52 3.8 Perancangan Logikal Basisdata ............................................................................ 53 3.9 Perancangan Fisikal Basis Data ........................................................................... 54 3.10 Desain User Interface ......................................................................................... 57 3.10.1 Halaman Utama Aplikasi ......................................................................... 57 3.10.2 Halaman Menu Pertama Daftar Servis .................................................... 57 3.10.3 Halaman Menu Kedua Update Data Pesanan .......................................... 58 3.10.4 Halaman Menu Ketiga Database ............................................................. 58 3.10.5 Halaman Menu Kempat Lihat Record Service ........................................ 59 BAB IV .............................................................................................................................. 60 4.1 Spesifikasi Software dan Hardware yang digunakan........................................... 60 4.1.1 Spesifikasi Software ................................................................................... 60 4.1.2 Spesifikasi Hardware................................................................................. 60 4.2 Implementasi Stored Procedure ........................................................................... 61 4.2.1 Implementasi Stored Procedure untuk Insert dan Update Data Pemesanan Suku Cadang ....................................................................................................... 61 4.2.2 Implemetasi Stored Procedure untuk Menghapus Data Pesanan Suku Cadang ................................................................................................................ 63 xiii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.2.3 Implementasi Stored Procedure untuk Mengupdate Data Suku Cadang kedalam Database ............................................................................................... 64 4.2.4 Implementasi Stored Procedure Mendapatkan Nonota untuk Pendaftaran Servis................................................................................................................... 65 4.3 Implementasi Antarmuka ..................................................................................... 66 4.3.1 Halaman Menu Utama ............................................................................... 66 4.3.2 Halaman Daftar Service ............................................................................. 69 4.3.3 Halaman Ubah Data Pesanan ..................................................................... 81 4.3.4 Halaman Ubah Data ................................................................................... 83 4.3.5 Halaman Histori Servis .............................................................................. 97 BAB V ............................................................................................................................... 99 5.1 Analisa Hasil Perangkat Lunak ............................................................................ 99 5.2 Analisa Hasil Coba Terhadap Program ................................................................ 99 5.2.1 Pengujian terhadap Masalah Ketergantungan Transaksi yang Belum Di Laksanakan (Uncommited Dependency Problem) pada Proses Daftar Servis.. 100 5.2.2 Pengujian terhadap Masalah Hilangnya Data yang Diubah (Lost Update Problem) pada Proses Pengambilan Suku Cadang dalam Proses Servis .......... 101 5.3 Analisa Hasil Coba Terhadap Pengguna ............................................................ 106 5.4 Hasil Pengujian Ddministrator Bengkel ..................................................... 106 BAB VI ............................................................................................................................ 111 6.1 Kesimpulan ......................................................................................................... 111 6.2 Saran ................................................................................................................... 111 Daftar Pustaka .................................................................................................................. 112 Lampiran .......................................................................................................................... 113 xiv PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR GAMBAR Gambar 2. 1 Use Case ......................................................................................................... 9 Gambar 2. 2 Aktor ............................................................................................................. 10 Gambar 2. 3 Relasi ............................................................................................................. 10 Gambar 2. 4 Entitas............................................................................................................ 11 Gambar 2. 5 Atribut ........................................................................................................... 11 Gambar 2. 6 Relasi ............................................................................................................. 11 Gambar 3. 1 Use Case ........................................................................................................ 15 Gambar 3. 2 Diagram Aktifitas Menambah Transaksi ...................................................... 29 Gambar 3. 3 Diagram Aktifitas Menambah Data Suku Cadang ........................................ 30 Gambar 3. 4 Diagram Aktifitas Mengupdate Data Suku Cadang ..................................... 30 Gambar 3. 5 Diagram Aktifitas Menambah Data Konsumen ............................................ 31 Gambar 3. 6 Diagram Aktifitas Mengupdate Data Konsumen.......................................... 31 Gambar 3. 7 Diagram Aktifitas Menambah Data Kendaraan ............................................ 32 Gambar 3. 8 Diagram Aktifitas Mengupdate Data Kendaraan.......................................... 32 Gambar 3. 9 Diagram Aktifitas Menambah Data Suku Cadang ........................................ 33 Gambar 3. 10 Diagram Aktifitas Mengupdate Data Suku Cadang ................................... 33 Gambar 3. 11 Diagram Aktifitas Menambah Data Jenis Suku Cadang ............................. 34 Gambar 3. 12 Diagram Aktifitas Mengupdate Data Jenis Suku Cadang .......................... 34 Gambar 3. 13 Diagram Aktifitas Menambah Data Jenis Motor ........................................ 35 Gambar 3. 14 Diagram Aktifitas Mengupdate Data Jenis Motor ...................................... 36 Gambar 3. 15 Diagram Aktifitas Menambah Data Merek ................................................. 36 Gambar 3. 16 Diagram Aktifitas Mengupdate Data Merek .............................................. 37 Gambar 3. 17 Diagram Aktifitas Menambah Data Jenis Jasa ........................................... 37 Gambar 3. 18 Diagram Aktifitas Mengupdate Data Jenis Jasa ......................................... 38 Gambar 3. 19 Diagram Aktifitas Mengubah Data Pesanan ............................................... 39 Gambar 3. 20 Diagram Aktifitas Mengecek Data Penjualan ............................................. 39 Gambar 3. 21 Diagram Aktifitas Mencetak Nota Servis ................................................... 40 Gambar 3. 22 Diagram Aktifitas Melihat Record Transaksi ............................................. 40 Gambar 3. 23 Diagram Sekuensial Menambah Transaksi ................................................. 41 Gambar 3. 24 Diagram Sekuensial Menambah Data Suku Cadang .................................. 41 Gambar 3. 25 Diagram Sekuensial Mengupdate Data Suku Cadang ................................ 42 xv PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 3. 26 Diagram Sekuensial Menambah Data Konsumen ...................................... 42 Gambar 3. 27 Diagram Sekuensial Mengupdate Data Konsumen .................................... 43 Gambar 3. 28 Diagram Sekuensial Menambah Data Kendaraan ...................................... 43 Gambar 3. 29 Diagram Sekuensial Mengupdate Data Kendaraan .................................... 43 Gambar 3. 30 Diagram Sekuensial Menambah Data Suku Cadang .................................. 44 Gambar 3. 31 Diagram Sekuensial Mengupdate Data Suku Cadang ................................ 44 Gambar 3. 32 Diagram Sekuensial Menambah Data Jenis Suku Cadang ......................... 45 Gambar 3. 33 Diagram Sekuensial Mengupdate Data Jenis Suku Cadang ....................... 45 Gambar 3. 34 Diagram Sekuensial Menambah Data Jenis Motor ..................................... 46 Gambar 3. 35 Diagram Sekuensial Mengupdate Data Jenis Motor................................... 46 Gambar 3. 36 Diagram Sekuensial Menambah Data Merek ............................................. 47 Gambar 3. 37 Diagram Sekuensial Mengupdate Data Merek ........................................... 47 Gambar 3. 38 Diagram Sekuensial Menambah Data Jenis Jasa ........................................ 48 Gambar 3. 39 Diagram Sekuensial Mengupdate Data Jenis Jasa ...................................... 48 Gambar 3. 40 Diagram Sekuensial Mengubah Data Pesanan............................................ 49 Gambar 3. 41 Diagram Sekuensial Mencetak Nota Servis ................................................ 49 Gambar 3. 42 Diagram Sekuensial Mengecek Data Penjualan ......................................... 50 Gambar 3. 43 Diagram Sekuensial Melihat Record Transaksi .......................................... 50 Gambar 3. 44 Diagram Kelas............................................................................................. 51 Gambar 3. 45 Diagram Konseptual Basisdata ................................................................... 52 Gambar 3. 46 Diagram Logikal Basisdata ......................................................................... 53 Gambar 3. 47 Halaman Utama Aplikasi ............................................................................ 57 Gambar 3. 48 Halaman Menu Pertama Daftar Servis........................................................ 57 Gambar 3. 49 Halaman Menu Kedua Update Data Pesanan ............................................. 58 Gambar 3. 50 Halaman Menu Ketiga Database................................................................. 58 Gambar 3. 51 Halaman Menu Keempat Melihat Record Servis ....................................... 59 Gambar 4. 1 Menu Utama .................................................................................................. 66 Gambar 4. 2 Form Data Konsumen ................................................................................... 70 Gambar 4. 3 Form Data Kendaraan ................................................................................... 72 Gambar 4. 4 Form Suku Cadang........................................................................................ 73 Gambar 4. 5 Form Pemesanan Barang .............................................................................. 74 Gambar 4. 6 Form Keluhan, Jasa, Kilometer. Total Biaya ................................................ 77 Gambar 4. 7 Form Tambah Jasa ........................................................................................ 77 xvi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4. 8 Jasper Laporan Nota Transaksi ..................................................................... 81 Gambar 4. 9 Form Masukkan No Nota (ubah data pesanan) ............................................. 81 Gambar 4. 10 Tab Data Suku Cadang ............................................................................... 83 Gambar 4. 11 Tab Data Jenis Suku Cadang ...................................................................... 86 Gambar 4. 12 Tab Data Jenis Motor .................................................................................. 88 Gambar 4. 13 Tambah Sk Motor ....................................................................................... 91 Gambar 4. 14 Tab Data Merek .......................................................................................... 92 Gambar 4. 15 Tab Data Jenis Jasa ..................................................................................... 94 Gambar 4. 16 Cek Data Penjualan ..................................................................................... 96 Gambar 4. 17 Halaman Histori Servis ............................................................................... 97 Gambar 4. 18 Halaman Detil Servis .................................................................................. 98 Gambar 5. 1 Berhasil Mendaftar Servis ........................................................................... 100 Gambar 5. 2 Gagal Mendaftar Servis dan Ada Pesan Kesalahan .................................... 101 Gambar 5. 3 Pemesanan Suku Cadang dengan No Nota 0001 ........................................ 102 Gambar 5. 4 Pemesanan Suku Cadang dengan No Nota 0002 ........................................ 102 Gambar 5. 5 Pemesanan Suku Cadang Berhasil .............................................................. 103 Gambar 5. 6 Pemesanan Suku Cadang Gagal .................................................................. 104 xvii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR TABEL Tabel 2. 1 Masalah Hilangnya Data yang Diubah ............................................................... 6 Tabel 2. 2 Masalah Ketergantungan Transaksi yang Belum Dilaksanakan......................... 7 Tabel 2. 3 Masalah Analisis yang Tidak Konsisten ............................................................. 8 Tabel 3. 1 Definisi Aktor ................................................................................................... 16 Tabel 3. 2 Definisi Use Case.............................................................................................. 17 Tabel 3. 3 Menambah Transaksi ........................................................................................ 18 Tabel 3. 4 Menyimpan Data Konsumen ............................................................................ 18 Tabel 3. 5 Mengedit Data Konsumen ................................................................................ 19 Tabel 3. 6 Menyimpan Data Motor.................................................................................... 19 Tabel 3. 7 Mengedit Data Motor........................................................................................ 20 Tabel 3. 8 Menambah Data Suku Cadang ......................................................................... 21 Tabel 3. 9 Update Data Suku Cadang ................................................................................ 21 Tabel 3. 10 Menambah Data Jenis Suku Cadang .............................................................. 22 Tabel 3. 11 Mengupdate Data Jenis Suku Cadang ............................................................ 23 Tabel 3. 12 Menambah Data Jenis Motor .......................................................................... 23 Tabel 3. 13 Mengupdate Data Jenis Motor ........................................................................ 24 Tabel 3. 14 Menambah Data Merek .................................................................................. 25 Tabel 3. 15 Mengupdate Data Merek ................................................................................ 25 Tabel 3. 16 Menambah Data Jenis Jasa ............................................................................. 26 Tabel 3. 17 Mengupdate Data Jenis Jasa ........................................................................... 26 Tabel 3. 18 Mengubah Data Pesanan Servis ...................................................................... 27 Tabel 3. 19 Cek Data Penjualan ......................................................................................... 28 Tabel 3. 20 Mencetak Nota Servis ..................................................................................... 28 Tabel 3. 21 Melihat Record Servis .................................................................................... 29 Tabel 3. 22 Tabel jenis Suku Cadang ................................................................................ 54 Tabel 3. 23 Tabel Suku Cadang ......................................................................................... 54 Tabel 3. 24 Tabel Merek .................................................................................................... 54 Tabel 3. 25 Tabel Motor ................................................................................................... 55 Tabel 3. 26 Tabel Jenis Motor ........................................................................................... 55 Tabel 3. 27 Tabel Konsumen ............................................................................................. 55 xviii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 3. 28 Tabel Servis .................................................................................................... 55 Tabel 3. 29 Tabel Detil Jasa ............................................................................................... 56 Tabel 3. 30 Tabel Jasa Servis ............................................................................................. 56 Tabel 3. 31 Tabel Pemesanan ............................................................................................ 56 Tabel 3. 32 Tabel Sk Motor ............................................................................................... 56 Tabel 5. 1 Tabel Proses Transaksi dengan 2PL ............................................................... 105 Tabel 5. 2 Hasil Pertanyaan 1 .......................................................................................... 106 Tabel 5. 3 Hasil Pertanyaan 2 .......................................................................................... 106 Tabel 5. 4 Hasil Pertanyaan 3 .......................................................................................... 107 Tabel 5. 5 Hasil Pertanyaan 4 .......................................................................................... 107 Tabel 5. 6 Hasil Pertanyaan 5 .......................................................................................... 107 Tabel 5. 7 Hasil Pertanyaan 6 .......................................................................................... 108 Tabel 5. 8 Hasil Pertanyaan 7 .......................................................................................... 108 Tabel 5. 9 Hasil Pertanyaan 8 .......................................................................................... 109 xix PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR LISTING Listing 4. 1 Stored Procedure Tambah Suku Cadang ....................................................... 63 Listing 4. 2 Stored Procedure Hapus Sk Pesan ................................................................. 63 Listing 4. 3 Stored Procedure Tambah Sk......................................................................... 64 Listing 4. 4 Stored Procedure Servis ................................................................................. 66 Listing 4. 5 Daftar Servis ................................................................................................... 67 Listing 4. 6 Menampilkan Jdialog ..................................................................................... 67 Listing 4. 7 Mencari No Nota ............................................................................................ 68 Listing 4. 8 Method Show .................................................................................................. 68 Listing 4. 9 Ubah Data ....................................................................................................... 68 Listing 4. 10 Histori servis ................................................................................................. 69 Listing 4. 11 Simpan Konsumen Baru ............................................................................... 70 Listing 4. 12 Update Data Konsumen................................................................................ 71 Listing 4. 13 Cari Konsumen ............................................................................................. 71 Listing 4. 14 Simpan Data Kendaraan ............................................................................... 72 Listing 4. 15 Update Data Kendaraan................................................................................ 73 Listing 4. 16 Menampilkana Jdialog Tambah Suku Cadang ............................................. 74 Listing 4. 17 Tambah dan Update Pesanan ....................................................................... 76 Listing 4. 18 Batal Pemesanan ........................................................................................... 76 Listing 4. 19 Menampilkan Form Tambah Jasa................................................................. 77 Listing 4. 20 Penghitungan Diskon .................................................................................... 78 Listing 4. 21 Menutup Form Tambah Jasa ........................................................................ 78 Listing 4. 22 Menyimpan Jasa Servis ................................................................................ 79 Listing 4. 23 Memanggil Jasper Report ............................................................................. 80 Listing 4. 24 Menampilkan Form Cari Nota ...................................................................... 82 Listing 4. 25 Cari No Nota ................................................................................................. 82 Listing 4. 26 Menutup Form Cari No Nota........................................................................ 83 Listing 4. 27 Cari Semua Suku Cadang ............................................................................. 84 Listing 4. 28 Cari Kategori ................................................................................................ 84 Listing 4. 29 Simpan Suku Cadang.................................................................................... 84 Listing 4. 30 Update Data Sk ............................................................................................. 85 Listing 4. 31 Tombol Batal ................................................................................................ 85 xx PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Listing 4. 32 Autonumber Jenis Sk .................................................................................... 87 Listing 4. 33 Simpan Jenis Sk ............................................................................................ 87 Listing 4. 34 Update Jenis Sk ............................................................................................ 87 Listing 4. 35 Tombol Batal ................................................................................................ 88 Listing 4. 36 Autonumber Motor ....................................................................................... 89 Listing 4. 37 Simpan Jenis Motor ...................................................................................... 89 Listing 4. 38 Update Jenis Motor ...................................................................................... 90 Listing 4. 39 Tombol Batal ................................................................................................ 90 Listing 4. 40 Menampilkan Jdialog Tambah Sk Motor ..................................................... 90 Listing 4. 41 Menambahkan Suku Cadang Kedalam Motor Tertentu ............................... 91 Listing 4. 42 Menghapus Suku Cadang Motor Tertentu.................................................... 91 Listing 4. 43 Autonumber Merek....................................................................................... 92 Listing 4. 44 Simpan Merek............................................................................................... 93 Listing 4. 45 Update Merek ............................................................................................... 93 Listing 4. 46 Tombol Batal ................................................................................................ 93 Listing 4. 47 Autonumber Jasa .......................................................................................... 95 Listing 4. 48 Simpan Jenis Sk ............................................................................................ 95 Listing 4. 49 Update Jenis Jasa .......................................................................................... 95 Listing 4. 50 Tombol batal ................................................................................................. 96 Listing 4. 51 Cek Penjualan ............................................................................................... 96 Listing 4. 52 Cari No Polisi ............................................................................................... 97 Listing 4. 53 Cari Data Servis ............................................................................................ 98 xxi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR GRAFIK Grafik 5. 1 Grafik Kuisioner ........................................................................................................ 110 xxii PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1 BAB I PENDAHULUAN 1.1 Latar Belakang Bengkel merupakan tempat perawatan kendaraan bermotor untuk menjaga performanya agar tetap maksimal. Bengkel juga dapat memperbaiki segala kerusakan yang dialami kendaraan bermotor dalam penggunaanya. Para pemilik kendaraan bermotor akan melakukan servis berkala untuk merawat ataupun untuk memperbaiki kendaraan mereka. Proses pelayanan dalam suatu bengkel dimulai saat staff administrator menanyakan apa keluhan konsumen, apakah hanya ingin servis ringan saja atau ingin mengganti beberapa bagian yang rusak. Setelah staff administrator mengumpulkan informasi dari konsumen, staff administrator akan memprosesnya dan menyerahkan tugas kepada mekanik berikut suku cadang yang dibutuhkan . Kumpulan data transaksi yang dimiliki sebuah bengkel inilah yang merupakan asset berharga bagi bengkel itu sendiri, salah satu fungsinya adalah untuk membantu meningkatkan kualitas pelayanan pada bengkel tersebut. Bengkel “ Anugrah Motor “ adalah bengkel yang sama dengan bengkelbengkel resmi yang sudah ada saat ini, yang membedakan bengkel ini dari bengkel resmi adalah jika di bengkel resmi mematok biaya jasa servis sesuai dengan ketentuan perusahaan . maka di bengkel ini akan memberikan diskon khusus atau harga khusus yang akan diberikan kepada pelanggan dengan kebijakan dari pemilik bengkel. Bengkel “Anugrah Motor” memiliki 2 staff administrator yang akan melayani pelanggan mulai dari pendaftaran sampai pengecekan suku cadang yang dibutuhkan dalam servis. Bengkel “Anugrah Motor” masih menggunakan cara penyimpanan dan pengumpulan data-data dengan bentuk manual ditulis menggunakan kertas nota. Hal ini memiliki banyak kelemahan diantaranya tidak bisa langsung merekap data, kemungkinan data hilang akan semakin besar dan juga akan berakibat juga pada kinerja staff administrator dalam melakukan pengecekan stok suku cadang yang akan dibutuhkan dalam proses servis karena pasti akan sulit mengecek stock suku cadang yang pendataannya masih belum terkomputerisasi. Dengan otomatis staff administrator akan kesulitan dalam menentukan apakah barang yang dibutuhkan masih ada atau tidak dengan jumlah stok yang akan sulit ditentukan. Dari sinilah maka akan dibuat sistem yang dapat memudahkan staff administrator dalam melakukan proses dari pendaftaran sampai dengan pengecekan stock sparepart yang dibutuhkan, program ini akan digunakan di PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2 lingkungan multiuser sehingga dalam sistem ini juga harus ditanamkan teknologi manajemen transaksi dengan menerapkan protokol Two Phase Locking. Protokol Two Phase Locking akan melakukan penguncian data pada saat salah satu staff administrator melakukan transaksi untuk mengurangi maupun menambah stok barang sehingga jika staff administrator yang lain juga akan melakukan transaksi maka transaksi oleh staff administrator kedua harus menunggu transaksi dari staff administrator pertama selesai. Sehingga dengan program yang akan dibuat dapat mengefisienkan kinerja staff administrator yang bertugas sekaligus dapat mengurangi kemungkinan ketidak konsistenan data stok suku cadang. 1.2 Rumusan Masalah Dari latar belakang yang telah dibuat maka rumusan masalah yang dapat di ambil adalah : 1. Bagaimana mengelola data transaksi bengkel dalam lingkungan multiuser demi menjaga kekonsistenan data dengan menerapkan manajemen transaksi. 2. Bagaimana hasil pengujian sistem untuk mempermudah kinerja staff administrator bengkel. 3. Apakah protokol Two Phase Locking dapat berfungsi dengan baik. 1.3 Tujuan Tujuan dibangunnya sistem ini adalah mengembangkan aplikasi pengelolaan traksaksi servis dan suku cadang bengkel Anugrah Motor yang menerapkan manajemen transaksi dengan protokol Two Phase Locking. 1.4 Batasan Sistem yang akan dibangun memiliki beberapa batasan : 1. Aplikasi ini hanya berjalan dalam aplikasi desktop. 2. Aplikasi ini hanya menangani penghitungan keuangan tanpa menangani sistem keuangan. 3. Pembayaran dilakukan secara langsung di bengkel tempat servis. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3 1.5 Metodologi Metodologi yang akan digunakan adalah studi kasus dengan langkah-langkah sebagai berikut : 1. Observasi Melakukan observasi pada bengkel dan melakukan wawancara kepada pemilik bengkel. 2. Studi Pustaka Mempelajari referensi tentang Java yang akan digunakan atau diterapkan dalam pengembangan aplikasi. 3. Pembuatan Aplikasi Pengolahan Data Bengkel Motor, dengan tahap-tahap sebagai berikut : a. Analisa sistem : Merupakan tahap untuk pengumpulan kebutuhan yang diperlukan dalam pembuatan aplikasi, yang dilakukan melalui wawancara dan observasi. b. Desain sistem : Perancangan interface dan database yang berkaitan dengan pembuatan aplikasi pengolahan data bengkel motor. c. Implementasi Sistem : Dalam tahap ini akan dilakukan pembuatan aplikasi sesuai dengan desain yang sudah di rancang. d. Uji coba sistem Pada tahap ini akan digunakan untuk mencari kesalahan maupun kekurangan dari aplikasi yang dibuat. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4 1.6 Sistematika Penulisan Dalam penulisan skripsi ini sistematika penulisan dibagi menjadi 5 bab yaitu : 1. Bab I Pendahuluan Dalam bab ini dimuat mengenai latar belakang masalah, perumusan maslah, tujuan dibangun aplikasi, batasan masalah, metode penelitian (Metodologi), dan sistematika penulisan. 2. Bab II Landasan Teori Dalam bab ini dimuat tengang teori yang melandasi pembuatan aplikasi untuk “Aplikasi Pengolahan Data Transaksi Bengkel Motor Dengan Menerapkan Protokol Two Phase Locking”. 3. Bab III Analisa dan Perancangan Aplikasi Dalam bab ini dimuat detil rancangan sistem serta analisa sistem. Akan dijelaskan mengenai perancangan sistem dengan bantuan class diagram, use case diagram, sequence diagram, activity diagram. 4. Bab IV Implementais Sistem dan Pembahasan Hasil Dalam bab ini menjelaskan mengenai implementasi dari aplikasi yang dibuat serta hasil pembahasan aplikasi. 5. Bab V Kesimpulan dan Saran Dalam bab ini dimuat mengenai kesimpulan pembahasan dan saran yang berguna untuk mengembangkan aplikasi ini lebih lanjut. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5 BAB II LANDASAN TEORI 2.1 Manajemen Transaksi Transaksi merupakan sebuah atau serangkaian aksi yang dilakukan oleh tunggal atau program aplikasi dengan membaca atau mengubah isi dari basis data (Connolly; 2002). Transaksi merupakan sebuah unit kerja logis dalam basis data yang terdiri dari satu atau lebih kalimat SQL dan dapat melibatkan sejumlah operasi pada basis data. Transaksi merupakan unit yang atomic. Sebuah transaksi akan memiliki dua buah keluaran yaitu : a. Jika transaksi sukses, maka transaksi dapat dikatakan telah melakukan commit dan basis data telah mencapai keadaan konsistensi yang baru. Transaksi commit, maka tidak dapat dibatalkan. Sebuah transaksi yang telah dilakukan (Commited transaction), tidak dapat dibatalkan. Jika diputuskan bahwa transaksi yang telah dilakukan tersebut memiliki suatu kesalahan, kita harus melakukan transaksi pengganti untuk mengembalikan pengaruhnya. b. Sebaliknya jika transaksi gagal dieksekusi, maka basis data harus dikembalikan ke keadaan yang konsisten seperti pada saat transaksi belum dimulai. Transaksi ini disebut rolled back atau undone atau tidak dilakukan. Statement begin transaction, commit dan rollback merupakan statement DML yang berfungsi untuk membatasi transaksi-transaksi. Jika statement tersebut tidak digunakan, maka dianggap sebagai transaksi tunggal yang dianggap commit saat program selesai dijalankan dengan benar, dan rollback jika tidak (Connolly; 2002). Ada 4 hal dasar yang harus dimiliki semua transaksi, hal ini sering disebut ACID , yaitu : a. Atomicity, dimana keadaan transaksi yang tidak dapat dibagi-bagi lagi yang dilakukan secara keseluruhan atau tidak sama sekali. b. Consistency, dimana suatu keadaan basis data dapat dirubah dari suatu konsistensi ke konsistensi yang lain. c. Isolation, dimana suatu keadaan transaksi itu bebas, suatu transaksi tidak mempengaruhi transaksi yang lain. d. Durability, dimana transaksi dapat dicatat secara permanen dan tidak bisa hilang dalam basis data. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6 2.1.1 Concurency Control Concurrency Control atau akses secara bersamaan, merupakan proses pengelolaan operasi yang berjalan secara bersamaan dalam basis data tanpa harus saling mengganggu satu dengan lainnya. Bedanya dengan manajemen transaksi adalah untuk menangani transaksi dengan masalah pengontrolan akses user secara bersamaan supaya tidak terjadi lose update data. Tujuan utama pengembangan basis data adalah adanya kemampuan untuk mengakses shared data secara bersamaan. Ada 3 masalah yang dapat disebabkan oleh concurrency control, yaitu : a. masalah hilangnya data yang diubah (the lost update problem). b. masalah ketergantungan transaksi yang belum dilaksanakan (The Uncommitted Dependency Problem). c. masalah analisa yang tidak konsisten (the inconsistent analysis problem). 2.1.2 Two Phase Locking atau 2pl Sebuah transaksi akan menerapkan protocol 2PL jika semua operasi locking mendahului operasi unlocking yang pertama dalam transaksi tersebut. Setiap transaksi dibagi menjadi 2 fase yaitu : 1. Growing Phase : fase ini memperoleh semua locks yang dibutuhkan, tetapi tidak dapat melepaskan satu lock pun. 2. Shrinking Phase : fase ini melepaskan semua locks yang dimiliki, tetapi tidak dapat Berikut ini adalah contoh penggunaan dari protolol 2PL : a. Mencegah masalah hilangnya data yang diubah (the lost update problem). Table 2.1 merupakan table penjelasan mengenai masalah hilangnya data yang diubah Tabel 2. 1 Masalah Hilangnya Data yang Diubah PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7 Keterangan : Untuk mencegah terjadinya masalah hilangnya data yang diubah, maka : pertama-tama T2 meminta exclusive lock pada balₓ Setelah itu T2 dapat melakukan proses baca nilai balₓ, menambahnya dengan nilai 100, dan menuliskan nilai baru dari baₓ tersebut kedalam basis data. Saat T1 memulai transaksi, T1 juga meminta suatu exclusive lock pada balₓ, namu karena balₓ sedang berada dalam posisi exclusive lock oleh T2, maka permintaan read balₓ tidak segera diberikan kepada T1 dan T1 harus menunggu sampai lock dipelaskan oleh T2. Hal ini terjadi saat T2 melaksanakan operasi commit atau unlock balₓ (Connoly; 2002). b. Mencegah masalah ketergantungan transaksi yang belum dilaksanakan (the uncommitted dependency problem). tabel 2.2 merupakan tabel penjelasan mengenai masalah ketergantungan transaksi yang belum dilaksanakan. Tabel 2. 2 Masalah Ketergantungan Transaksi yang Belum Dilaksanakan Keterangan : Untuk mencegah terjadinya masalah ketergantungan transaksi yang belum dilaksanakan , maka : pertama-tama T4 meminta suatu exclusive lock pada balₓ Setelah itu, T4 dapat melakukan proses baca nilai balₓ dari dalam basis data, menambahnya dengan nilai 100, dan meluliskan nilai baru balₓ tersebut kedalam basis data. rollback dieksekusi , peng-update-an pada transaksi T4 tidak jadi dilakukan dan nilai dalam basis data dikembalikan ke kondisi semula yaitu 100. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8 Saat T3 memulai transaksi T3 juga meminta suatu exclusive lock pada balₓ, namun karena balₓ sedang dalam posisi exclusive lock oleh T4, maka, permintaan tersebut tidak segera diberikan kepada T3, dan T3 harus menunggu sampai lock dilepaskan oleh T4. Hal ini terjadi saat T4 melaksanakan operasi rollback atau unlock balₓ, barulah T3 dapat melakukan proses baca nilai balₓ (Connoly; 2002) c. Mencegah masalah analisis yang tidak konsisten (the inconsisteng analysis problem). Tabel 2.3 merupakan tabel penjelasan mengenai masalah analisis yang tidak konsisten Tabel 2. 3 Masalah Analisis yang Tidak Konsisten Keterangan : Untuk mencegah terjadinya masalah analisis yang tidak konsisten, maka : T5 mengawali meminta suatu exclusive lock pada balₓ. T5 juga meminta suatu exclusive lock pada balᵧ . Saat T6 ingin membaca nilai balₓ, ia harus menunggu sampai lock dilepaskan oleh T5. Hal ini terjadi saat T5 melaksanakan operasi commit atau unlock balₓ, barulah T6 dapat membaca nilai balₓ (Connolly; 2002). PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9 Untuk mengatasi masalah diatas, mesin basis data oracle XE mempunyai kemampuan mendukung transaksi dengan metode 2PL yang dapat menjaminkonsistensi data. ketiga contoh permasalahan yang dapat timbul akibat dua atau lebih transaksi yang dieksekusi secara bersamaan (concurency) dapat diselesaikan dengan menerapkan. a. Tingkat isolasi Serializable. b. Autocommit dibuat disable. c. Operasi pembacaan data yang akan diikuti dengan operasi update data tersebut memberikan exclusive lock dengan cara memberikan perintah for update setelah perintah select. Teknik ini merupakan salah satu alternatif dalam menerapkan 2pl dalam mesin basis data Oracle XE sehingga tidak menutup kemungkinan melakukan penelitian untuk mencari alternatif lain dalam menjaga konsistensi data (Darmawan; 2007). 2.2 Pemodelan “Pemodelan use case adalah proses memodelkan fungsi sistem dalam proses transaksi, siapa yang mnjalankan perintah dan bagaimana sistem merespon perintah tersebut”(Whitten; 2001). Use case adalah sebuah diagram yang menggambarkan interaksi antara sistem dan eksternal sistem serta user Symbol symbol pada pemodelan use case. 2.2.1 Use case “Use case adalah aksi yang terkait dengan urutan langkah atau skenario, baik otomatis dan manual dengan tujuan meyelesaikan sebuah proses bisnis tunggal" (Whitten; 2001). simbol use case akan disajikan dalam gambar 2.1. Use case Gambar 2. 1 Use Case PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10 2.2.2 Actor “Aktor mewakili semua yang memerlukan interaksi dengan sistem untuk bertukar suatu informasi" (Whitten; 2001) simbol aktor akan disajikan dalam gambar 2.2. Actor Gambar 2. 2 Aktor 2.2.3 Use Case Association Relationship Adalah relasi antara actor dan sebuah use case, dimana terjadi interaksi antara actor dan use case. simbol relasi akan disajikan dalam gambar 2.3. Use case Association relationship Actor Gambar 2. 3 Relasi e PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11 2.3 Entity Relationship Diagram (ERD) Entity Relationship diagram (ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi (Brady dan Loonam 2010), ERD merupakan suatu model yang dibuat untuk menjalaskan hubungan antar data dalam basis data, dalam pembuatanya erd menggunakan beberapa notasi dan simbol. Ada tiga komponen dasar yang digunakan yaitu : 2.3.1 Entitas Adalah objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain sebagai contoh : mahasiswa, dosen yang akan digambarkan seperti pada gambar 2.4. Gambar 2. 4 Entitas 2.3.2 Atribut Adalah setiap elemen yang dimiliki oleh entitas untuk mendeskripsikan karakteristik dari entitas tersebut sebagai contoh mahasiswa memiliki nama, nim, notlp, alamat yang akan digambarkan seperti pada gambar 2.5. Gambar 2. 5 Atribut 2.3.3 Relasi Adalah hubungan dari beberapa entitas yang dihubungkan dengan garis lurus untuk menghubungkan dua entitas yang berbeda sebagai contoh entitas mahasiswa dan entitas kuliah maka relasinya adalah mahasiswa mengambil matakuliah yang akan di gambarkan seperti pada gambar 2.6. Gambar 2. 6 Relasi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12 2.4 Conceptual Database Design Conceptual database design adalah proses membangun suatu model berdasarkan informasi yang digunakan oleh perusahaan atau organisasi, tanpa pertimbangan perencanaan fisikal (Connolly; 2002). Langkah langkah dalam perancangan desain konseptual adalah : 1. Mengidentifikasi tipe entitas. 2. Mengidentifikasi tipe relasi. 3. Mengidentifikasi dan menggabungkan atribut dan entitas atau relasi. 4. Menentukan domain atribut. 5. Menentukan atribut primary key dan candidate key. 6. Mempertimbagkan penggunaan enhanced modelling concept. 7. Cek model dari redundancy. 8. Memvalidasi model konseptual lokal terhadap pengguna. 9. Melakukan riview data konseptual terhadap pengguna. 2.5 Logical Database Design Logical database design adalah proses pembuatan suatu model informasi yang digunakan pada perusahaan berdasarkan pada sebuah model data yang spesifik tetapi bebas dari fakta fakta DBMS dan pertimbangan fisik lainnya (Connolly; 2002). Langkah langkah dalam perancangan desain logikal adalah : 1. Menentukan relasi untuk model data logikal. 2. Memvalidasi relasi dengan menggunakan normalisasi. 3. Memvalidasi relasi terhadap transaksi pengguna. 4. menentukan integrity constraint. 5. mengecek model data logikal lokal dengan pengguna. 6. menggabungkan kmodel data logical menjadi model data global. 7. memeriksa pertumbuhan selanjutnya. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13 2.6 Physical Database Design Physical database design adalah proses untuk menghasilkan gambaran dari implementasi basis data pada tempat penyimpanan, menjelaskan dasar dari relasi, organisasi, file dan indeks yang digunakan untuk efisiensi data dan menghubungkan beberapa integrity constraint dan tindakan keamanan (Connolly; 2002). langkah langkah dalam perancangan desain fisikal adalah 1. Merancang basis relasional Dalam memulai merancang desain fisikal, diperlukan untuk mengumpulkan dan memahami informasi tentang relasi yang dihasilkan dari desain logikal. 2. Merancang represtasi dari data yang diperoleh bertujuan untuk menentukan bagaimana setiap data merepresentasikan semua model data logikal. 3. Merancang Batasan umum bertujuan untuk merancang batasan yang ada pada perusahaan. yang diperoleh PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14 BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Gambaran Sistem Lama Bengkel “Anugrah Motor” adalah bengkel yang melayani perbaikan maupun servis rutin sepeda motor. Proses servis akan bermula dari pendaftaran konsumen ke staff administrator untuk mendapatkan antrian dimana tahap-tahapnya akan akan berjalan seperti berikut : Konsumen mendaftarkan kendaraanya 1. Staff administrator akan meminta data-data kendaraan. 2. Staff administrator menanyakan keluhan dari konsumen. 3. Staff administrator mencatat semua dalam satu nota (tertulis). 4. Staff administrator akan mengecek stok suku cadang yang digunakan dan melakukan pengambilan barang (pendataan stok dalam bentuk tertulis). 5. Setelah semua proses pendaftaran selesai maka staff administrator akan memberikan daftar pekerjaan pada mekanik yang bertugas untuk menjalankan proses servis. Pembayaran secara langsung di staff administrator setelah proses servis selesai. Tentu saja dengan sistem yang sudah ada ini akan menyulitkan kerja staff administrator dalam proses pengecekan stok suku cadang yang digunakan dan juga untuk mengurangi stok barang yang di gunakan hal ini akan menjadi masalah ketika aplikasi diakses oleh lebih dari satu staff administrator. dan juga pencatatan record servis dari sebuah kendaraan juga dilakukan serara tertulis. 3.2 Gambaran Sistem Baru Aplikasi baru yang akan dibuat ini memiliki tujuan untuk mempermudah kinerja staff administrator untuk mengecek stok suku cadang, melakukan pencatatan semua data data yang dibutuhkan dalam proses servis, melakukan perhitungan biaya yang dibutuhkan, dan juga dapat melakukan pengecekan record servis dari sebuah kendaraan. Aplikasi yang dibuat disini bisa melakukan beberapa hal diantaranya 1. Bisa mencatat data – data kendaraan dari kendaraan yang di servis. 2. Bisa mencatat keluhan dari konsumen mengenai kendaraannya. 3. Bisa melakukan pengecekan stok suku cadang yang dibutuhkan sekaligus mengurangi stok suku cadang yang dibutuhkan. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15 4. Bisa melakukan perhitungan total biaya servis. 5. Bisa melihat record servis dari kendaraan tertentu. Aplikasi baru yang dikembangkan akan digunakan di lingkungan multi user atau bisa diakses oleh lebih dari satu orang aplikasi ini akan melakukan kontrol terhadap concurrency dalam database saat dilakukan update stok oleh staff administrator dikarenakan pengambilan barang untuk proses servis ataupun penambahan stok sukucadang. Untuk mengatasi salah satu masalah concurrency yaitu Lost update problem dan Uncomited Dependency Problem maka aplikasi ini dibuat dengan menerapkan protocol Two Phase Locking. 3.3 Requirment Analysis 3.3.1 Use Case Diagram Berikut ini adalah diagram use case yang akan disajikan dalam gambar 3.1. Gambar 3. 1 Use Case PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16 3.3.2 Definisi Aktor Berikut ini adalah definisi aktor yang akan di sajikan dalam tabel 3.1. No 1 Aktor Deskripsi Operator Aktor ini adalah operator dari sistem dimana bisa (staff administrator menambah transaksi servis, mengedit data konsumen, kendaraan konsumen, suku cadang, jenis suku cadang, bengkel) jenis motor, merek motor, jenis jasa, pesanan servis, mencetak nota servis dan melihat record transaksi Tabel 3. 1 Definisi Aktor 3.3.3 Definisi Use Case Berikut ini adalah definisi use case yang akan di sajikan dalam tabel 3.2 No Use Case Deskripsi 1 Menambah transaksi Sistem akan memasukkan data transaksi yang dibuat servis oleh administrator kedalam tabel 2 Mengedit konsumen 3 4 Mengedit data kendaraan konsumen Mengedit sukucadang data administrator bisa menambah dan mengupdate. data konsumen dalam database administrator bisa menambah dan mengupdate data kendaraan dalam database data administrator bisa menambah dan mengupdate data suku cadang dalam database 5 Mengedit data jenis administrator bisa menambah dan mengupdate data sukucadang jenis suku cadang dalam database 6 Mengedit data jenis administrator bisa menambah dan mengupdate data motor jenis motor dalam database 7 Mengedit merek motor data administrator bisa menambah dan mengupdate data merek motor dalam database 8 Mengedit data jenis administrator bisa menambah dan mengupdate data Jasa service jasa service dalam database 9 Mengedit data administrator bisa menambah , menghapus dan pesanan servis mengupdate data pesanan servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17 10 Mengecek penjualan administrator bisa mengecek total penjualan suku suku cadang cadang dalam bulan tertentu dan tahun tertentu 11 Mencetak servis nota administrator bisa mencetak nota akhir dari proses servis yang berisi detail servis dan detail jasa berikut total biaya yang harus dibayar 12 Melihat record administrator menampilkan detil record servis dari transaksi servis konsumen tertentu Tabel 3. 2 Definisi Use Case 3.3.4 Skenario Use Case Skenario Skenario : Menambah transaksi servis. Kondisi awal :- Kondisi akhir : Data tersimpan dalam database. Actor : Operator (staff administrator bengkel). Berikut iini adalah definisi use case untuk menambah transaksi servis yang akan disajikan dalam tabel 3.3. Aktor 1. Sistem Menekan tombol daftar service 2. Menampilkan form konsumen 3. Mengisi data konsumen 4. Menekan tombol lanjut 5. Menampilkan form kendaraan 6. Mengisi data kendaraan 7. Menekan tombol lanjut 8. Menampilkan form sukucadang 9. Memilih suku cadang yang digunakan 10. Menekan tombol lanjut 11. Menampilkan form keluhan, jasa, kilometer dan detil biaya total service PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18 12. Mengisi data keluhan, kilometer masuk , jasa , dan diskon 13. Menekan tombol pesan 14. Menyimpan dalam database 15. Menampilkan nota transaksi Tabel 3. 3 Menambah Transaksi Skenario Skenario : Menyimpan data konsumen. Kondsi awal :- Kondisi Akhir : Data konsumen akan ditampilkan dalam tabel konsumen. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk menyimpan data konsumen yang akan disajikan dalam tabel 3.4. Aktor Sistem 1. Memilih tombol daftar service 2. Menampilkan form isian data konsumen 3. Mengubah data data konsumen 4. Menekan tombol simpan 5. Sistem akan menyimpan data konsumen 6. Sistem akan menampilkan data konsumen dalam tabel Tabel 3. 4 Menyimpan Data Konsumen Skenario Skenario : Mengedit data konsumen. Kondsi awal :- Kondisi Akhir : Data konsumen akan ditampilkan dalam tabel konsumen. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk mengubah data konsumen yang akan disajikan dalam tabel 3.5. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19 Aktor Sistem 1. Memilih tombol daftar service 2. Menampilkan form isian data konsumen 3. Mengubah data data konsumen 4. Menekan tombol update 5. Sistem akan mengupdate data konsumen 6.Sistem akan menampilkan data konsumen dalam tabel Tabel 3. 5 Mengedit Data Konsumen Skenario Skenario : Menyimpan data motor. Kondsi awal : Form data konsumen telah terisi. Kondisi Akhir : Data motor akan ditampilkan dalam tabel motor. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk menyimpan data motor yang akan disajikan dalam tabel 3.6 Aktor 1. Menekan tombol lanjut Sistem pada form konsumen 2. Menampilkan form data kendaraan 4. Mengisi data kendaraan secara lengkap 5. Menekan tombol simpan 6. Sistem akan menyimpan data motor dengan kode konsumen yang telah diisikan 7. Sistem akan menampilkan data kendaraan dalam tabel Tabel 3. 6 Menyimpan Data Motor PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20 Skenario Skenario : Mengubah data motor. Kondsi awal : Form data konsumen telah terisi. Kondisi Akhir : Data motor baru akan ditampilkan dalam tabel motor. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk mengubah data motor yang akan disajikan dalam tabel 3.7. Aktor Sistem 1. Menekan tombol lanjut pada form konsumen 2. Menampilkan form data kendaraan 3. Mengubah data kendaraan secara lengkap 4. Menekan tombol update 5. Sistem akan mengupdate data motor 6. Sistem akan menampilkan data kendaraan baru dalam tabel Tabel 3. 7 Mengedit Data Motor Skenario Skenario : Menambah data suku cadang. Kondisi awal : Dalam menu ubah data (data suku cadang). Kondisi akhir : Data stok suku cadang baru ditampilkan dalam tabel suku cadang. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk menambah data suku cadang yang akan disajikan dalam tabel 3.8. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21 Aktor Sistem 1. Sistem menampilkan form suku cadang 2. Mengisi data suku cadang secara lengkap 3. Menekan tombol simpan 5. Data suku cadang baru akan tersimpan 6. Data suku cadang ditampilkan dalam tabel suku cadang Tabel 3. 8 Menambah Data Suku Cadang Skenario Skenario : Merubah data suku cadang. Kondisi awal : Dalam menu ubah data (data suku cadang). Kondisi akhir : Data update suku cadang ditampilkan dalam tabel suku cadang. Actor : Operator (staff administrator bengkel). Berikut ini adalah definisi use case untuk merubah data suku cadang yang akan disajikan dalam tabel 3.9. Aktor Sistem 1. Sistem menampilkan form suku cadang 2. Memilih data suku cadang yang akan diupdate 3. Mengubah data suku cadang secara lengkap 4. Menekan tombol update 5. Data suku cadang akan terupdate 6. Data suku cadang ditampilkan dalam tabel suku cadang Tabel 3. 9 Update Data Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22 Skenario Skenario : Menambah data Jenis suku cadang. Kondisi awal : Dalam menu ubah data (data jenis suku cadang). Kondisi akhir : Data jenis suku cadang baru ditampilkan dalam tabel jenis suku cadang. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk menambah data jenis suku cadang yang akan disajikan dalam tabel 3.10. Aktor Sistem 1. Sistem menampilkan form jenis suku cadang 2. Mengisi data jenis suku cadang secara lengkap 3. Menekan tombol simpan 4. Data jenis suku cadang baru akan tersimpan 5. Data jenis suku cadang ditampilkan dalam tabel suku cadang Tabel 3. 10 Menambah Data Jenis Suku Cadang Skenario Skenario : Merubah data jenis suku cadang. Kondisi awal : Dalam menu ubah data (data jenis suku cadang). Kondisi akhir : Data update jenis suku cadang ditampilkan dalam tabel jenis suku cadang. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk merubah data jenis suku cadang yang akan disajikan dalam tabel 3.11. Aktor Sistem 1. Sistem menampilkan form jenis suku cadang 2. Memilih data jenis suku cadang yang akan diupdate PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23 3. Mengubah data jenis suku cadang secara lengkap 4. Menekan tombol update 5. Data jenis suku cadang akan terupdate 6. Data jenis suku cadang ditampilkan dalam tabel jenis suku cadang Tabel 3. 11 Mengupdate Data Jenis Suku Cadang Skenario Skenario : Menambah data jenis motor Kondisi awal : Dalam menu ubah data (data jenis motor) Kondisi akhir : Data jenis motor baru ditampilkan dalam tabel jenis motor Actor : Operator (staff administrator bengkel) berikut ini adalah definisi use case untuk menambah data jenis motor yang akan disajikan dalam tabel 3.12. Aktor Sistem 1. Sistem menampilkan form jenis motor 2. Mengisi data jenis motor secara lengkap 3. Menekan tombol simpan 4. Data jenis motor baru akan tersimpan 5. Data jenis motor ditampilkan dalam tabel jenis motor 6. Menekan tombol tambak sk motor 7. Menampilkan form sk motor 8. Menambahkan data sk motor 9. Data sk motor tersimpan 10. Data sk motor ditampilkan dalam tabel sk motor Tabel 3. 12 Menambah Data Jenis Motor PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24 Skenario Skenario : Merubah data jenis motor. Kondisi awal : Dalam menu ubah data (data jenis motor). Kondisi akhir : Data update jenis motor ditampilkan dalam tabel jenis suku cadang. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk merubah data jenis motor yang akan disajikan dalam tabel 3.13. Aktor Sistem 1. Sistem menampilkan form jenis motor 2. Memilih data jenis motor yang akan diupdate 3. Mengubah data jenis motor secara lengkap 4. Menekan tombol update 5. Data jenis motor akan terupdate 6. Data jenis motor ditampilkan dalam tabel jenis motor Tabel 3. 13 Mengupdate Data Jenis Motor Skenario Skenario : Menambah data merek. Kondisi awal : Dalam menu ubah data (data merek). Kondisi akhir : Data merek baru ditampilkan dalam tabel merek. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk menambah data merek yang akan disajikan dalam tabel 3.14. Aktor Sistem 1. Sistem menampilkan form merek 2. Mengisi data merek secara lengkap 3. Menekan tombol simpan 4. Data merek baru akan tersimpan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25 5. Data merek ditampilkan dalam tabel merek Tabel 3. 14 Menambah Data Merek Skenario Skenario : Merubah data merek. Kondisi awal : Dalam menu ubah data (data merek). Kondisi akhir : Data update merek ditampilkan dalam tabel merek. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk merubah data merek yang akan disajikan dalam tabel 3.15. Aktor Sistem 1. Sistem menampilkan form merek 2. Memilih data merek yang akan diupdate 3. Mengubah data merek secara lengkap 4. Menekan tombol update 5. Data merek akan terupdate 6. Data merek ditampilkan dalam tabel merek Tabel 3. 15 Mengupdate Data Merek Skenario Skenario : Menambah data jenis jasa. Kondisi awal : Dalam menu ubah data (data jenis jasa). Kondisi akhir : Data jenis jasa baru ditampilkan dalam tabel jenis jasa. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk menambah data jenis jasa yang akan disajikan dalam tabel 3.16. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26 Aktor Sistem 1. Sistem menampilkan form jenis jasa 2. Mengisi data jenis jasa secara lengkap 3. Menekan tombol simpan 4. Data jenis jasa baru akan tersimpan 5. Data jenis jasa ditampilkan dalam tabel jenis jasa Tabel 3. 16 Menambah Data Jenis Jasa Skenario Skenario : Merubah data jenis jasa. Kondisi awal : Dalam menu ubah data (data jenis jasa). Kondisi akhir : Data update jenis jasa ditampilkan dalam tabel jenis jasa. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk merubah data jenis jasa yang akan disajikan dalam tabel 3.17. Aktor Sistem 1. Sistem menampilkan form jenis jasa 2. Memilih data jenis jasa yang akan diupdate 3. Mengubah data jenis jasa secara lengkap 4. Menekan tombol update 5. Data jenis jasa akan terupdate 6. Data jenis jasa ditampilkan dalam tabel jenis jasa Tabel 3. 17 Mengupdate Data Jenis Jasa Skenario Skenario : Mengubah data pesanan servis. Kondisi awal : Sudah melakukan transaksi servis. Kondisi akhir : Data pesanan servis akan ditampilkan dalam nota servis. Actor : Operator (staff administrator bengkel). PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27 berikut ini adalah definisi use case untuk merubah data pesanan servis yang akan disajikan dalam tabel 3.18. Aktor Sistem 1. Menekan ubah data pesanan 2. Menampilkan form isian nomor nota 3. Mengisi nomor nota yang sudah didapat dalam transaksi servis pertama 4. Menekan tombol cari 5. Menampilkan data suku cadang pesanan 6. Menambah atau mengurangi suku cadang yang digunakan 7. Menekan tombol lanjut 8. Menampilkan form keluhan, kilometer, dan jasa 9. Menambah atau mengurangi data keluhan kilometer dan jasa 10. Menghitung biaya total sukucadang, jasa dan total biaya servis 11. Menekan tombol pesan 12. Menampilkan jasper nota baru untuk pesanan servis (nota) Tabel 3. 18 Mengubah Data Pesanan Servis Skenario Skenario : Mengecek penjualan suku cadang. Kondisi awal : Sudah dalam menu database. Kondisi akhir : Menampilkan total penjualan suku cadang dalam tabel. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk mengecek penjualan suku cadang yang akan disajikan dalam tabel 3.19. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28 Aktor Sistem 1. Aktor menekan tab cek data penjualan 2. Sistem menampilkan form cek data penjualan 3. Actor memilih bulan dan tahun pada form cek data penjualan 4. Actor menekan tombol cari 5. sistem menampilkan data sesuai dengan bulan dan tahun yang di inginkan dalam tabel Tabel 3. 19 Cek Data Penjualan Skenario Skenario : Mencetak nota servis. Kondisi awal : Sudah mengisi form tambah transaksi servis. Kondisi akhir : Menampilkan nota servis dalam jasper. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk mencetak nota servis yang akan disajikan dalam tabel 3.20. Aktor Sistem 1. Aktor menekan tombol Pesan pada form transaksi servis 2. Sistem akan menampilkan jasper report untuk form nota servis Tabel 3. 20 Mencetak Nota Servis Skenario Skenario : Melihat record servis. Kondisi awal :- Kondisi akhir : Menampilkan record transaksi servis. Actor : Operator (staff administrator bengkel). berikut ini adalah definisi use case untuk melibah record servis yang akan disajikan dalam tabel 3.21. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29 Aktor Sistem 1. Aktor menekan tombol Histori servis 2. Menampilkan table data transaksi 3. Mencari data atau memilih langsung data yang ditampilkan dalam tabel 4. Menekan tombol detail 5. Menampilkan Detail data yang dipilih kedalam form Tabel 3. 21 Melihat Record Servis 3.4 Activity Diagram Berikut ini adalah diagram aktifitas menambah transakasi yang akan disajikan dalam gambar 3.2. Menambah transaksi Aktor Sistem Menekan tombol daftar service Menampilkan form konsumen Mengisi data konsumen Menekan tombol lanjut Menampilkan form kendaraan Mengisi data kendaraan Menekan tombol lanjut Menampilkan form suku cadang Memilih suku cadang yang digunakan Menekan tombol lanjut Menampilkan form keluhan, kilometer , jenis jasa, dan detil biaya total service Mengisi data keluhan, kilometer masuk, jenis jasa Menekan tombol pesan Menyimpan dalam database Menampilkan nota servis Gambar 3. 2 Diagram Aktifitas Menambah Transaksi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30 Berikut ini adalah diagram aktifitas menambah data sukucadang yang akan disajikan dalam gambar 3.3. Tambah Suku cadang Aktor Sistem Menampilkan form suku cadang berikut tabel data yang sudah ada Mengisi form tambah data dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data suku cadang dalam tabel Gambar 3. 3 Diagram Aktifitas Menambah Data Suku Cadang Berikut ini adalah diagram aktifitas mengupdate data suku cadang yang akan disajikan dalam gambar 3.4. Update Suku cadang Aktor Sistem Menampilkan form suku cadang berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data barang dalam form (data barang masuk / update data) Menekan tombol batal Menekan tombol update Mengupdate stok dalam database Menampilkan data stok barang dalam tabel Gambar 3. 4 Diagram Aktifitas Mengupdate Data Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31 Berikut ini adalah diagram aktifitas menambah data konsumen yang akan disajikan dalam gambar 3.5. Menyimpan Data Konsumen Aktor Sistem Menampilkan form isian data konsumen Mengisi data konsumen secara lengkap Menekan tombol batal Menekan tombol Simpan Menyimpan data konsumen dalam database Menampilkan data dalam tabel Gambar 3. 5 Diagram Aktifitas Menambah Data Konsumen Berikut ini adalah diagram aktifitas mengupdate data konsumen yang akan disajikan dalam gambar 3.6. Mengupdate Data Konsumen Aktor Sistem Menampilkan form isian data konsumen Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data Konsumen Menekan tombol batal Menekan tombol update Mengupdate Konsumen dalam database Menampilkan data Konsumen dalam tabel Gambar 3. 6 Diagram Aktifitas Mengupdate Data Konsumen PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32 Berikut ini adalah diagram aktifitas menambah data kendaraan yang akan disajikan dalam gambar 3.7. Menambah Data Motor Aktor Sistem Menekan tombol lanjut pada form konsumen Menampilkan form Data Motor berikut tabel data yang sudah ada Mengisi data kendaraan secara lengkap Menekan tombol batal Menekan tombol Simpan Menyimpan data kendaraan dengan kode konsumen yang telah diisikan dalam database Menampilkan data Motor dalam tabel Gambar 3. 7 Diagram Aktifitas Menambah Data Kendaraan Berikut ini adalah diagram aktifitas mengupdate data kendaraan yang akan disajikan dalam gambar 3.8. Mengubah Data Motor Aktor Menekan tombol lanjut pada form konsumen Sistem Menampilkan form Data Motor berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data Motor Menekan tombol batal Menekan tombol update Mengupdate Motor dalam database Menampilkan data Motor dalam tabel Gambar 3. 8 Diagram Aktifitas Mengupdate Data Kendaraan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33 Berikut ini adalah diagram aktifitas menambah data suku cadang yang akan disajikan dalam gambar 3.9. Tambah Suku cadang Aktor Sistem Menampilkan form suku cadang berikut tabel data yang sudah ada Mengisi form tambah data dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data suku cadang dalam tabel Gambar 3. 9 Diagram Aktifitas Menambah Data Suku Cadang Berikut ini adalah diagram aktifitas mengupdate data suku cadang yang akan disajikan dalam gambar 3.10. Update Suku cadang Aktor System Menampilkan form suku cadang berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data barang dalam form (data barang masuk / update data) Menekan tombol batal Menekan tombol update Mengupdate stok dalam database Menampilkan data stok barang dalam tabel Gambar 3. 10 Diagram Aktifitas Mengupdate Data Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34 Berikut ini adalah diagram aktifitas menambah data jenis suku cadang yang akan disajikan dalam tabel 3.11. Tambah Jenis Suku cadang Aktor Sistem Menampilkan form jenis sukucadang berikut tabel data yang sudah ada Mengisi form jenis suku cadang dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data jenis suku cadang dalam tabel Gambar 3. 11 Diagram Aktifitas Menambah Data Jenis Suku Cadang Berikut ini adalah diagram aktifitas mengupdate data jenis suku cadang yang akan disajikan dalam tabel 3.12. Udate Jenis Suku cadang Aktor Sistem Menampilkan form jenis suku cadang berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data jenis suku cadang Menekan tombol batal Menekan tombol update Mengupdate jenis suku cadang dalam database Menampilkan data jenis suku cadang dalam tabel Gambar 3. 12 Diagram Aktifitas Mengupdate Data Jenis Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35 Berikut ini adalah diagram aktifitas menambah data jenis motor yang akan disajikan dalam tabel 3.13. Tambah Jenis Motor Aktor Sistem Menampilkan form jenis motor berikut tabel data yang sudah ada Mengisi form jenis motor dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data jenis motor dalam tabel Menekan tombol tambah Menampilkan form skmotor Mengisikan skmotor Data akan tersimpan dalam database Menampilkan data skmotor dalam tabel Menambahkan sk motor baru Selesai Gambar 3. 13 Diagram Aktifitas Menambah Data Jenis Motor PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36 Berikut ini adalah diagram aktifitas mengupdate data jenis motor yang akan disajikan dalam tabel 3.14. Update Jenis Motor Aktor Sistem Menampilkan form jenis motor berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data jenis motor Menekan tombol batal Mengupdate jenis motor dalam database Menekan tombol update Menampilkan data jenis motor dalam tabel Gambar 3. 14 Diagram Aktifitas Mengupdate Data Jenis Motor Berikut ini adalah diagram aktifitas menambah data merek yang akan disajikan dalam tabel 3.15. Tambah Merek Aktor Sistem Menampilkan form merek berikut tabel data yang sudah ada Mengisi form merek dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data merek dalam tabel Gambar 3. 15 Diagram Aktifitas Menambah Data Merek PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37 Berikut ini adalah diagram aktifitas mengupdate data merek yang akan disajikan dalam tabel 3.16. Update Merek Aktor Sistem Menampilkan form merek berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data merek Menekan tombol batal Menekan tombol update Mengupdate merek dalam database Menampilkan datamerek dalam tabel Gambar 3. 16 Diagram Aktifitas Mengupdate Data Merek Berikut ini adalah diagram aktifitas menambah data jenis jasa yang akan disajikan dalam gambar 3.17. Tambah Jenis Jasa Aktor Sistem Menampilkan form jenis jasa berikut tabel data yang sudah ada Mengisi form jenis jasa dengan lengkap Menekan tombol batal Menekan tombol simpan Data akan tersimpan dalam database Menampilkan data jenis jasa dalam tabel Gambar 3. 17 Diagram Aktifitas Menambah Data Jenis Jasa PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38 Berikut ini adalah diagram aktifitas mengupdate data jenis jasa yang akan disajikan dalam gambar 3.18. Update Jenis Jasa Aktor Sistem Menampilkan form jenis jasa berikut tabel data yang sudah ada Memilih data dalam tabel Menampilkan data yang dipilih kedalam form Mengubah data jenis jasa Menekan tombol batal Menekan tombol update Mengupdate jenis jasa dalam database Menampilkan data jenis jasa dalam tabel Gambar 3. 18 Diagram Aktifitas Mengupdate Data Jenis Jasa PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39 Berikut ini adalah diagram aktifitas mengubah data pesanan yang akan disajikan dalam gambar 3.19. Aktor Sistem Menampilkan menu utama Menekan tombol ubah data pesanan Menampilkan form pencarian nota Memasukkan nonota yang sudah didapat dari proses transaksi Menekan tombol batal Data tidak ditemukan Menekan tombol cari Data ditemukan Menampilkan form suku cadang dari hasil pencarian nota Memilih suku cadang yang digunakan Menekan tombol lanjut Menampilkan form keluhan, kilometer , jenis jasa, dan detil biaya total service Mengisi data keluhan, kilometer masuk, jenis jasa Menekan tombol pesan Menyimpan dalam database Menampilkan nota servis Gambar 3. 19 Diagram Aktifitas Mengubah Data Pesanan Berikut ini adalah diagram aktifitas mengecek data penjualan yang akan disajikan dalam gambar 3.20. Mengecek data penjualan Aktor Sistem Menekan tab cek data penjualan Menampilkan form cek data penjualan Memilih bulan dan tahun untuk proses pencarian Menekan tombol cari Menampilkan data penjualan sesuai dengan kriteria yang telah dipilih kedalam tabel Gambar 3. 20 Diagram Aktifitas Mengecek Data Penjualan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40 Berikut ini adalah diagram aktifitas mencetak nota service yang akan disajikan dalam gambar 3.21 Mencetak nota servis Aktor Sistem Mengisi semua data yang dibutuhkan dalam proses pesan Menekan tombol pesan Menampilkan nota transaksi (Jasper) Gambar 3. 21 Diagram Aktifitas Mencetak Nota Servis Berikut ini adalah diagram aktifitas melihat record transaksi yang akan akan disajikan dalam gambar 3.22. Melihat record servis Aktor Sistem Menampilkan form menu utama Menekan tombol record transaksi Menampilkan table data transaksi Mencari data (method) atau memilih langsung data yang ditampilkan dalam tabel Menekan tombol keluar Menekan tombol detil Menampilkan detil servis dalam form Gambar 3. 22 Diagram Aktifitas Melihat Record Transaksi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41 3.5 Perangancan Diagram Sekuensial Diagram sekuensial adalah diagram yang menjelaskan alur dari operasi yang dijalankan dalam sistem secara bertahap. Berikut ini adalah diagram sekuensial menambah transakasi yang akan disajikan dalam gambar 3.23. Menu utama Form konsumen Form motor konsumen Form suku cadang Form jasa , keluhan , kilometer, total biaya Proses Database Administrator Menekan tombol daftar servis Menampilkan form konsumen Mengisi data konsumen dalam form Menekan tombol lanjut Menampilkan form motor konsumen Mengisi data motor dalam form Menekan tombol lanjut Menampilkan form suku cadang Mengisikan suku cadang yang digunakan dalam servis Proses simpan dalam db Simpan sk dalam db Menampilkan pesanan sk dalam form sk Menekan tombol lanjut Form jasa , keluhan , kilometer, total biaya Memilih jasa yang dibutuhkan Proses simpan dalam db Simpan Jasa dalam db Menampilkan jasa dalam form Mengisikan keluhan , kilometer masuk Menampilkan total biaya jasa dan sukucadang dalam form Menekan tombol pesan Melakukan proses memanggil jasper untuk nota servis Gambar 3. 23 Diagram Sekuensial Menambah Transaksi Berikut ini adalah diagram sekuensial menambah data suku cadang yang akan disajikan dalam gambar 3.24. Menu utama Form ubah data Form suku cadang Proses Database Administrator Menekan tombol ubahdata Menekan tab sukucadang Menampilkan form sukucadang Mengisikan data suku cadang Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 24 Diagram Sekuensial Menambah Data Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42 Berikut ini adalah diagram sekuensial mengupdate data sukucadang yang akan disajikan dalam gambar 3.25. Menu utama Form ubah data Form suku cadang Proses Database Administrator Menekan tombol ubah data Menekan tab suku cadang Menampilkan form suku cadang Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data suku cadang Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 25 Diagram Sekuensial Mengupdate Data Suku Cadang Berikut ini adalah diagram sekuensial menyimpan data konsumen yang akan disajikan dalam gambar 3.26. Form data konsumen Proses Database Administrator Mengisikan data konsumen Menyimpan kedalam database Menyimpan data dalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 26 Diagram Sekuensial Menambah Data Konsumen Berikut ini adalah diagram sekuensial mengupdate data konsumen yang akan disajikan dalam gambar 3.27. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43 Form data konsumen Proses Database Administrator Mengubah data konsumen Mengupdate kedalam database Mengupdate data dalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 27 Diagram Sekuensial Mengupdate Data Konsumen Berikut ini adalah diagram sekuensial menambah data kendaraan yang akan disajikan dalam gambar 3.28. Form data motor konsumen Proses Database Administrator Mengisikan data motor konsumen Menyimpan kedalam database Menyimpan data dalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 28 Diagram Sekuensial Menambah Data Kendaraan Berikut ini adalah diagram sekuensial mengupdate data kendaraan yang akan disajikan dalam gambar 3.29. Form data motor konsumen Proses Database Administrator Mengubah data motor konsumen Mengupdate kedalam database Mengupdate data dalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 29 Diagram Sekuensial Mengupdate Data Kendaraan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44 Berikut ini adalah diagram sekuensial menambah data suku cadang yang akan disajikan dalam gambar 3.30. Menu utama Form ubah data Form suku cadang Proses Database Administrator Menekan tombol ubahdata Admin menekan tab suku cadang Menampilkan form suku cadang Mengisikan data suku cadang Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 30 Diagram Sekuensial Menambah Data Suku Cadang Berikut ini adalah diagram sekuensial mengupdate data suku cadang yang akan disajikan dalam gambar 3.31. Menu utama Form ubah data Form suku cadang Proses Database Administrator Menekan tombol ubah data Admin menekan tab suku cadang Menampilkan form suku cadang Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data suku cadang Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 31 Diagram Sekuensial Mengupdate Data Suku Cadang Berikut ini adalah diagram sekuensial menambah data jenis sukucadang yang akan disajikan dalam gambar 3.32. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45 Menu utama Form ubah data Jenis suku cadang Proses Database Administrator Menekan tombol ubah data Admin menekan tab jenis suku cadang Menampilkan form jenis suku cadang Mengisikan data jenis suku cadang Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 32 Diagram Sekuensial Menambah Data Jenis Suku Cadang Berikut ini adalah diagram sekuensial mengupdate data jenis suku cadang yang akan disajikan dalam gambar 3.33. Menu Uutama Form ubah data Form jenis suku cadang Proses Database Administrator Menekan tombol ubahdata Admin menekan tab jenis suku cadang Menampilkan form jenis suku cadang Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data jenis suku cadang Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 33 Diagram Sekuensial Mengupdate Data Jenis Suku Cadang Berikut ini adalah diagram sekuensial menambah data jenis motor yang akan disajikan dalam gambar 3.34. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46 Menu utama Form ubah data Jenis motor Form tambah skmotor Proses Administrator Menekan tombol ubah data Admin menekan tab jenis motor Menampilkan form jenis motor Mengisikan data jenis motor Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Admin menekan tambahsk Menampilkan form tambah skmotor Mengisikan skmotor Menyimpan kedalam database Data tersimpan ditampilkan dalam tabel Data tersimpan diambil dari database Gambar 3. 34 Diagram Sekuensial Menambah Data Jenis Motor Berikut ini adalah diagram sekuensial mengupdate data jenis motor yang akan disajikan dalam gambar 3.35. Menu utama Form ubah data Form jenis motor Proses Database Administrator Menekan tombol ubahdata Admin menekan tab jenis motor Menampilkan form jenis motor Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data jenis motor Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 35 Diagram Sekuensial Mengupdate Data Jenis Motor Berikut ini adalah diagram sekuensial menambah data merek yang akan disajikan dalam gambar 3.36. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47 Menu utama Form ubah data Form Merek Proses Database Administrator Menekan tombol ubah data Admin menekan tab merek Menampilkan form merek Mengisikan data merek Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 36 Diagram Sekuensial Menambah Data Merek Berikut ini adalah diagram sekuensial mengupdate data merek yang akan disajikan dalam gambar 3.37. Menu utama Form ubah data Form merek Proses Database Administrator Menekan tombol ubah data Admin menekan tab merek Menampilkan form merek Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data merek Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 37 Diagram Sekuensial Mengupdate Data Merek Berikut ini adalah diagram sekuensial menambah data jenis jasa yang akan disajikan dalam gambar 3.38. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48 Menu utama Form ubah data Form jenis jasa Proses Database Administrator Menekan tombol ubahdata Admin menekan tab jenis jasa Menampilkan form jenis jasa Mengisikan data jenis jasa Menyimpan kedalam database Data tersimpan diambil dari database Data tersimpan ditampilkan dalam tabel Gambar 3. 38 Diagram Sekuensial Menambah Data Jenis Jasa Berikut ini adalah diagram sekuensial mengupdate data jenis jasa yang akan disajikan dalam gambar 3.39. Menu utama Form ubah data Form jenis jasa Proses Database Administrator Menekan tombol ubah data Admin menekan tab jenis jasa Menampilkan form jenis jasa Memilih data yang akan diupdate dari tabel (db) Data dari tabel (db) diambil dan di tampilkan dalam form Mengisikan data jenis jasa Mengupdate kedalam database Data terupdate diambil dari database Data terupdate ditampilkan dalam tabel Gambar 3. 39 Diagram Sekuensial Mengupdate Data Jenis Jasa PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49 Berikut ini adalah diagram sekuensial mengubah data pesanan yang akan disajikan dalam gambar 3.40. Menu utama Form konsumen Form motor konsumen Form suku cadang Form jasa , keluhan , kilometer, total biaya Proses Database Administrator Menekan daftar servis Menampilkan form konsumen Mengisi data konsumen dalam form Menekan tombol lanjut Menampilkan form motor konsumen Mengisi data motor dalam form Menekan tombol lanjut Menampilkan form suku cadang Mengisikan suku cadang yang digunakan dalam servis Proses simpan dalam db Menampilkan pesanan sk dalam form sk Simpan sk dalam db Menekan tombol lanjut Form jasa , keluhan , kilometer, total biaya Memilih jasa yang dibutuhkan Proses simpan dalam db Menampilkan jasa dalam form Mengisikan keluhan , kilometer masuk Simpan Jasa dalam db Menampilkan total biaya jasa dan sukucadang dalam form Menekan tombol pesan Melakukan proses memanggil jasper untuk nota servis Gambar 3. 40 Diagram Sekuensial Mengubah Data Pesanan Berikut ini adalah diagram sekuensial mencetak nota service yang akan disajikan dalam gambar 3.41. Form servis (akhir) Proses Jasper : Administrator Menekan tombol pesan Data dari proses servis diambil Menampilkan nota servis dalam jasper Gambar 3. 41 Diagram Sekuensial Mencetak Nota Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50 Berikut ini adal diagram sekuensial mengecek data penjualan yang akan disajikan dalam gambar 3.42. Form cek data penjulan Proses Database Administrator Memilih tanggal dan tahun yang diinginkan Melakukan pencarian dalam database Mengambil data dari dalam database Menampilkan data dalam tabel Gambar 3. 42 Diagram Sekuensial Mengecek Data Penjualan Berikut ini adalah diagram sekuensial melihat record transaksi yang akan disajikan dalam gambar 3.43. Menu utama Form servis Halaman detail servis Administrator Menekan tombol histori Menampilkan form servis Mengisikan nonota yang dicari dalam form servis Mencari data dalam database Menampilkan data dalam form Memilih data yang dicari lalu menekan tombol detail Mencari detil servis dari data yang di cari dalam database Menampilkan data detil servis dalam halaman detail servis Gambar 3. 43 Diagram Sekuensial Melihat Record Transaksi Proses PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51 3.6 Perancangan Diagram Kelas Perancangan diagram kelas akan disajikan dalam gambar 3.44. Gambar 3. 44 Diagram Kelas PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52 3.7 Perancangan Konseptual Basisdata Berikut ini adalah perancangan konseptual basisdata yang disajikan di gambar 3.45 Gambar 3. 45 Diagram Konseptual Basisdata PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53 3.8 Perancangan Logikal Basisdata Berikut ini adalah perancangan Logikal yang akan disajikan dalam gambar 3.46 Gambar 3. 46 Diagram Logikal Basisdata PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54 3.9 Perancangan Fisikal Basis Data Dalam pembuatan sistem bengkel ini memerlukan beberapa tabel yang akan disajikan dibawah ini. Berikut ini adalah tabel jenis suku cadang yang akan disajikan dalam tabel 3.22. Nama Tipe data Lebar Id Jenis Varchar 5 Jenis suku cadang Varchar 25 Key PK Tabel 3. 22 Tabel jenis Suku Cadang Berikut ini adalah tabel suku cadang yang akan disajikan dalam tabel 3.23. Nama Tipe data Lebar Id suku cadang Varchar 8 Nama suku cadang Varchar 50 Stock Int 5 Limit Int 5 Id jenis Varchar 2 Harga Varchar 10 Key PK FK Tabel 3. 23 Tabel Suku Cadang Berikut ini adalah tabel merek yang akan disajikan dalam tabel 3.24. Nama Tipe data Lebar Id merek Varchar 5 Nama merek Varchar 25 Tabel 3. 24 Tabel Merek Key PK PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55 Berikut ini adalah tabel motor yang akan disajikan dalam tabel 3.25. Nama Tipe data Lebar key Id motor Varchar 10 PK Id Jenis Motor Varchar 5 FK No Rangka Varchar 20 No Mesin Varchar 15 Id konsumen Varchar 20 FK Tabel 3. 25 Tabel Motor Berikut ini adalah tabel jenis motor yang disajikan dalam tabel 3.26. Nama Tipe data Lebar Id jenis Motor Varchar 5 Nama Jenis Varchar 25 Id merek Varchar 5 key PK FK Tabel 3. 26 Tabel Jenis Motor Berikut ini adalah tabel konsumen yang disajikan dalam tabel 3.27. Nama Tipe data Lebar Id konsumen Varchar 20 Nama Varchar 20 No hp Varchar 15 Alamat Varchar 30 key PK Tabel 3. 27 Tabel Konsumen Berikut ini adalah tabel servis yang disajikan dalam tabel 3.28. Nama Tipe data Lebar key No nota Varchar 5 PK Id motor Varchar 5 FK Kilometer Int 10 Tanggal Date Keluhan Varchar 50 Tabel 3. 28 Tabel Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56 Berikut ini adalah tabel jenis jasa yang disajikan dalam tabel 3.29. Nama Tipe data Lebar Id jasa Varchar 5 Jenis jasa Varchar 20 Biaya jasa Int 10 key PK Tabel 3. 29 Tabel Detil Jasa Berikut ini adalah tabel jasa servis yang akan disajikan dalam tabel 3.30. Nama Tipe data Lebar key Nonota Varchar 5 FK Id jasa Varchar 5 FK Keterangan Int 10 Discount Int 10 Biaya jasa Int 10 Tabel 3. 30 Tabel Jasa Servis Berikut ini adalah tabel pemesanan yang akan disajikan dalam tabel 3.31. Nama Tipe data Lebar key Nonota Varchar 5 FK Id suku cadang Varchar 5 FK Jumlah Int 20 Total harga Int 20 Tabel 3. 31 Tabel Pemesanan Berikut ini adalah tabel skmotor yang akan disajikan dalam tabel 3.32. Nama Tipe data Lebar key Id jenis motor Varchar 5 FK Id suku cadang Varchar 5 FK Tabel 3. 32 Tabel Sk Motor PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57 3.10 Desain User Interface 3.10.1 Halaman Utama Aplikasi Berikut ini akan ditampilkan gambaran halaman utama pada gambar 3.47. Banner Menu 1 menu daftar servis Menu 2 Ubah data pesanan Menu 4 menu lihat histori servis Menu 3 Database Gambar 3. 47 Halaman Utama Aplikasi 3.10.2 Halaman Menu Pertama Daftar Servis Berikut ini akan ditampilkan gambaran halaman menu pertama daftar servis pada gambar 3.48. Banner Form isian data kendaraan + keluhan + rincian biaya Tombol batal tombol simpan Gambar 3. 48 Halaman Menu Pertama Daftar Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58 3.10.3 Halaman Menu Kedua Update Data Pesanan Berikut ini akan ditampilkan gambaran halaman menu kedua update data pesanan pada gambar 3.49. Banner Form isian data pesanan Tombol batal tombol update Gambar 3. 49 Halaman Menu Kedua Update Data Pesanan 3.10.4 Halaman Menu Ketiga Database Berikut ini akan ditampilkan menu ketiga database data pada gambar 3.50. Banner Form isian data Tombol batal tombol update Gambar 3. 50 Halaman Menu Ketiga Database PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59 3.10.5 Halaman Menu Kempat Lihat Record Service Berikut ini akan ditampilkan gambaran menu ke empat lihat record servis pada gambar 3.51. Banner ID kendaraan Tabel histori servis kendaraan menurut filter yang dipakai detail Tombol batal Tombol hapus Gambar 3. 51 Halaman Menu Keempat Melihat Record Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60 BAB IV IMPLEMENTASI SISTEM 4.1 Spesifikasi Software dan Hardware yang digunakan 4.1.1 Spesifikasi Software Spesifikasi software yang digunakan untuk implementasi sistem aplikasi bengkel adalah sebagai berikut : 1. Sistem operasi windows 7 Ultimate 32 bit 2. Database Oracle XE 3. Oracle SQL Developer 4. Netbeans 6.8 4.1.2 Spesifikasi Hardware Spesifikasi hardware yang digunakan untuk implementasi sistem aplikasi bengkel ini adalah sebegai berikut : 1. Prosesor : Intel Core 2 solo 1,40 ghz 2. Memori ram 4gb ddr 3 3. Harddisk 320GB 4. Monitor lg 19" (min 1366 x 768) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61 4.2 Implementasi Stored Procedure 4.2.1 Implementasi Stored Procedure untuk Insert dan Update Data Pemesanan Suku Cadang Berikut ini adalah listing stored procedure insert dan update data suku cadang yang digunakan oleh administrator ketika mengambil suku cadang untuk proses servis dalam masalah ini 1 administrator hanya melayani 1 konsumen, stored procedure akan berjalan ketika ada 2 administrator dengan 2 konsumen berbeda sedang mengambil barang untuk proses servis untuk menghindari adanya kesalahan dalam pencatatan jumlah stok suku cadang yang ada dalam database. Stored Prodecure ini digunakan untuk memasukkan data pemesanan suku cadang yang digunakan oleh konsumen kedalam database dan juga bisa mengupdate jumlah suku cadang dengan id yang sama dalam satu nota servis. Stored procedure ini berguna dalam menangani masalah concurrency control dengan menerapkan protokol 2PL ( Two phase locking ) dengam menambahkan query FOR UPDATE. Locking akan berjalan ketika stored procedure Tambahsukucadang dipanggil, locking berguna untuk mengunci jumlah stok dari suku cadang dengan id tertentu, agar tidak terjadi lost update problem pada suku cadang tertentu ketika data suku cadang yang sama digunakan secara bersamaan oleh dua administrator yang berbeda. Status digunakan untuk melaporkan hasil prosedur apakah transaksi berhasil dijalankan atau tidak, setelah mengunci stok suku cadang maka stored procedure akan menerima masukan v_pemesanan untuk menentukan apakah akan menambahkan barang baru kedalam pemesanan atau akan menambahkan jumlah pemesanan saja, ketika menerima masukan v_pemesanan = 1 maka stored procedure akan melanjutkan mengecek jumlah pesanan suku cadang dan stok suku cadang yang ada apakah jumlah suku cadang yang diambil tidak melebihi stok suku cadang yang ada jika melebihi maka stored procedure akan membatalkan transaksi dan akan memberikan pesan kesalahan status : 0 , ketika jumlah yang diambil tidak melebihi stok yang ada maka akan melakukan penyimpanan ke tabel pemesanan dan memberikan pesan sukses status : 1. Sedangkan ketika stored procedure menerima masukan v_pemesanan selain 1 maka akan dibaca untuk mengupdate jumlah suku cadang yang dipesan selanjutnya mengecek jumlah pesanan suku cadang dan stok suku cadang yang ada apakah jumlah suku cadang yang diambil tidak melebihi stok suku cadang yang ada jika melebihi maka stored procedure akan membatalkan transaksi dan akan memberikan pesan kesalahan status : 0 , ketika jumlah yang diambil tidak melebihi stok PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62 yang ada maka akan melakukan penyimpanan ke tabel pemesanan dan memberikan pesan sukses status : 1 yang akan ditampilkan dalam listing 4.1. create or replace procedure tambahsukucadang (v_idnota in pemesanan.nonota%type, v_idsuku in pemesanan.idsukucadang%type, v_jumlah in pemesanan.jumlah%type, v_harga in pemesanan.totalharga%type, v_stockkurang number, v_idsukucad in sukucadang.idsukucadang%type, v_pemesanan in number, status out number) is v_stock sukucadang.stock%type; v_tambah sukucadang.stock%type; begin select stock into v_stock from sukucadang where idsukucadang = v_idsukucad for update; dbms_lock.sleep(5); if (v_pemesanan = 1) then if (v_stock - v_jumlah) < 0 then ROLLBACK; status := 0; else insert into pemesanan (nonota, idsukucadang, jumlah, totalharga) values (v_idnota,v_idsuku,v_jumlah,v_harga); update sukucadang set stock = v_stock - v_jumlah where idsukucadang = v_idsukucad; commit; status := 1; end if; else select jumlah into v_tambah from pemesanan where idsukucadang = v_idsuku and nonota = v_idnota; if (v_stock - v_tambah) < 0 then ROLLBACK; status := 0; else update pemesanan set jumlah = v_tambah + v_jumlah where idsukucadang = v_idsuku and nonota = v_idnota; update sukucadang set stock = v_stock - v_jumlah where idsukucadang = v_idsukucad; commit; status := 1; end if; end if; end tambahsukucadang; PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63 Listing 4. 1 Stored Procedure Tambah Suku Cadang 4.2.2 Implemetasi Stored Procedure untuk Menghapus Data Pesanan Suku Cadang Berikut ini adalah listing stored procedure yang digunakan untuk menghapus data pesanan jika konsumen tidak jadi menggunakan suku cadang tertentu untuk proses service pertama stored procedure akan mengunci stok dari tabel pemesanan dengan perintah FOR UPDATE, lalu akan mengembalikan jumlah suku cadang yang diambil kedalam tabel suku cadang, kemudian akan menghapus data pesanan suku cadang dari tabel pemesanan yang akan ditampilkan dalam listing 4.2. create or replace procedure hapusskpesanan (idnota in pemesanan.nonota%type, idsuku in pemesanan.idsukucadang%type) is stock sukucadang.stock%type; jumlahdiambil pemesanan.jumlah%type; begin select stock into stock from pemesanan where idsukucadang = idsuku and nonota = idnota for update; dbms_lock.sleep(5); select jumlah into jumlahdiambil from pemesanan where idsukucadang = idsuku and nonota = idnota; update sukucadang set stock = stock + jumlahdiambil where idsukucadang = idsuku; delete from pemesanan where idsukucadang = idsuku and nonota = idnota; commit; end hapusskpesanan; Listing 4. 2 Stored Procedure Hapus Sk Pesan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64 4.2.3 Implementasi Stored Procedure untuk Mengupdate Data Suku Cadang kedalam Database Berikut ini adalah listing stored procedure yang digunakan untuk mengupdate data suku cadang kedalam database , pertama stored procedure akan mengunci stock dari tabel suku cadang sesuai dengan id suku cadang yang dipilih setelah itu akan melakukan perintah update suku cadang set nama suku cadang, stock, limit, idjenis, id jenis motor, harga, sesuai dengan masukan yang didapat dan berdasarkan id suku cadang yang dipilih. Yang akan ditampilkan dalam listing 4.3. create or replace procedure tambahsk (v_idsuku in sukucadang.idsukucadang%type, v_namasuku in sukucadang.namasukucadang%type, v_limit in sukucadang.limit%type, v_idjenis in sukucadang.idjenis%type, v_harga in sukucadang.harga%type, v_stocktambah number) is v_stock sukucadang.stock%type; begin select stock into v_stock from sukucadang where idsukucadang = v_idsuku for update; dbms_lock.sleep(5); update sukucadang set namasukucadang = v_namasuku, stock = v_stock + v_stocktambah, limit = v_limit, idjenis = (select idjenis from jenissukucadang where jenissukucadang = v_idjenis), harga = v_harga where idsukucadang = v_idsuku; commit; end tambahsk; Listing 4. 3 Stored Procedure Tambah Sk PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65 4.2.4 Implementasi Stored Procedure Mendapatkan Nonota untuk Pendaftaran Servis Berikut ini adalah listing stored procedure untuk mendapatkan no nota yang akan digunakan dalam proses pemesanan servis dan akan menambahkan no nota yang didapat kedalam database. Pertama stored procedure akan mengunci nomor nota dari tabel servis dan akan disimpan sebagai s_maxnota , setelah mendapaatkan s_maxnota maka akan mencari nomor nota baru dengan perintah s_idnota = s_maxnota + 1, dan selanjutnya akan membaca panjang dari maxnota yang dihasilkan ketika panjang dari s_idnota baru adalah 1 maka secara otomatis akan menambahkan "000" didepan s_idnota baru jika panjang s_idnota adalah 2 maka akan menambahkan "00" di depan s_idnota dan jika panjang s_idnota adalah 3 maka akan menambahkan "0" didepan s_idnota dan ketika s_idnota memiliki panjang lebih dari 3 maka tidak menambahkan 0 didepan s_idnota. Setelah mendapatkan s_notaakhir maka stored procedure akan menambahkan notaakhir dalam database berikut dengan id kendaraan yang akan diservis dan tanggal servis yang didapat. ketika transaksi berhasil maka stored procedure akan memberikan pesan sukses yaitu v_status = 1 dan ketika transaksi gagal maka stored procedure akan melakukan roolback dan akan memberikan pesan gagal yaitu v_status = 0. yang akan ditampilkan dalam listing 4.4 create or replace procedure servis (v_idmotor in service.idmotor%type, v_tanggal in service.tanggal%type, v_status out number) is s_ceknota service.nonota%type; s_maxnota service.nonota%type; s_notaakhir service.nonota%type; s_idnota service.nonota%type; begin select max(nonota) into s_ceknota from service; select nonota into s_maxnota from service where nonota = s_ceknota for update of nonota; dbms_lock.sleep(5); s_idnota := s_maxnota + 1; if(length(s_idnota) = 1) then s_notaakhir := '000'||s_idnota; elsif(length(s_idnota) = 2) then s_notaakhir := '00'||s_idnota; elsif (length(s_idnota) = 3) then s_notaakhir := '0'||s_idnota; else s_notaakhir := s_idnota; end if; PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66 insert into service values (s_notaakhir, v_idmotor, '', v_tanggal,''); commit; v_status := 1; exception when others then rollback; v_status :=0; end servis; Listing 4. 4 Stored Procedure Servis 4.3 Implementasi Antarmuka Dalam sebuah aplikasi tampilan user interface yang bersahabat sangatlah penting. Sehingga aplikasi yang dibuat di implementasikan kedalam user interface yang mudah dipahami oleh pengguna sehingga memudahkan dalam melakukan proses transaksi servis. 4.3.1 Halaman Menu Utama Halaman Menu utama adalah halaman yang pertama akan dilihat ketika menjalankan aplikasi ini halaman ini berfungsi untuk memberikan menu untuk menuju ke halaman yang lain yang akan disajikan dalam gambar 4.1. Gambar 4. 1 Menu Utama PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67 Form ini digunakan sebagai form utama dalam sistem dengan cara menekan salah satu tombol menu yang terdapat dalam tampilan jika menekan tombol daftar servis maka akan menuju ke halaman daftar servis dengan menjalankan perintah dalam listing 4.5 berikut. try { DaftarForm a = new DaftarForm(); this.setVisible(false); a.setVisible(true); } catch (Exception ex) { } this.dispose(); Listing 4. 5 Daftar Servis Maka tampilan akan menuju ke form daftar servis dengan perintah daftarform.setvisible(true), dan akan menutup halaman menu utama dengan perintah this.dispose();. Jika menekan menu kedua yaitu menu ubah data pesanan maka akan menampilkan form isian nomor nota dengan perintah JDialog Carinota.setVisible(true); untuk melakukan pencarian pesanan dengan menjalankan perintah pada listing 4.6. try { this.disable(); JDialogCarinota.setVisible(true); JDialogCarinota.setLocationRelativeTo(this); inputnonota.requestFocus(); } catch (Exception ex) { } Listing 4. 6 Menampilkan Jdialog Dan setelah menekan tombol cari maka sistem akan melakukan pencarian nomor nota dengan menjalankan perintah cari nota untuk mencari apakah nota yang di masukkan sudah ada dalam database atau belum yang akan disajikan dalam listing 4.7 berikut. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68 String hasil = B.Daftar_service.DaftarControl.koneksi().carinota(inputnonota.getText()); if (hasil.equals(inputnonota.getText())) { try { DaftarForm df = new DaftarForm(); JDialogCarinota.setVisible(false); df.setVisible(true); df.show(inputnonota.getText(), 2); this.setVisible(false); } catch (Exception ex) { } } else { JOptionPane.showMessageDialog(this, "No nota tidak ditemukan"); } Listing 4. 7 Mencari No Nota Jika menemukan data yang di cari maka akan memanggil metod show untuk menuju ke halaman form suku cadang dengan perintah Tabsemua.setEnabledAt (2,true), sehingga akan langsung menuju ke tab 3 form suku cadang seperti pada gambar 4.4. metod show akan disajikan dalam listing 4.8. this.a = tab; JtNonota.setText(nonota); TabSemua.setSelectedIndex(a); TabSemua.setEnabledAt(2, true); TabSemua.setEnabledAt(0, false); Listing 4. 8 Method Show Untuk menu ketiga adalah menu ubah data menu ini digunakan ketika akan menuju ke halaman untuk mengubah data suku cadang, jenis sukucadang, jenis motor, merek , dan jenis jasa dengan memanggil b.setvisible(true) yang akan disajikan dalam listing 4.9. try { UbahDataForm b = new UbahDataForm(); b.setVisible(true); } catch (Exception ex) { } this.dispose(); } Listing 4. 9 Ubah Data PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69 Untuk menu keempat yaitu menu histori form menu ini digukanan ketika konsumen menanyakan kepada admin bengkel kapan terakhir kali konsumen tersebut servis di bengkel atau perawatan apa yang terakhir kali dilakukan terhadap kendaraan konsumen di bengkel "Anugrah Motor" dengan menjalankan perintah c.visible(true); yang akan disajikan dalam listing 4.10. try { HistoryForm c = new HistoryForm(); c.setVisible(true); } catch (Exception ex) { } this.dispose(); } Listing 4. 10 Histori servis 4.3.2 Halaman Daftar Service Halaman daftar service adalah halaman yang diakses dari halaman menu utama, halaman ini berguna untuk memasukkan data pesanan servis sekaligus dapat menyimpan nama konsumen dan kendaraan konsumen baru yang akan mendaftar di bengkel ini. terdapat 4 tab, yaitu data konsumen gambar 4.2, data kendaraan konsumen gambar 4.3, data sukucadang yang digunakan gambar 4.4, dan data jasa ,keluhan kilometer, detil biaya gambar 4.5. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70 Gambar 4. 2 Form Data Konsumen Pada halaman ini terdapat beberapa perintah yang dapat dijalankan diantaranya menyimpan data konsumen baru, mengupdate data konsumen dan pencarian nama konsumen. ketika tombol simpan ditekan maka akan menjalankan perintah untuk menyimpan konsumen yaitu simpan konsumen (idkonsu, nm, nohp, alamat) yang akan melakukan penyimpanan data konsumen yang berisi idkonsumen, nama, nohp, dan alamat dari konsumen berikut ini adalah perintah yang di jalankan untuk menyimpan data konsumen baru disajikan dalam listing 4.11. if (tomsimpan1.getText().equals("Simpan")) { DaftarControl df = null; try { DaftarControl.koneksi().simpankonsumen(idkonsu, nm, nohp, alamat); refreshkonsumen(); JtIdkonsumen.setText(""); JtNama.setText(""); JtNohp.setText(""); JtAlamat.setText(""); JOptionPane.showMessageDialog(PanelKomsumen, "Data Konsumen Berhasil Ditambahkan"); } catch (SQLException ex) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, ex); } Listing 4. 11 Simpan Konsumen Baru PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71 Ketika tombol update di tekan maka akan melakukan update terhadap data konsumen dengan perintah update konsumen(idkonsu, nm, nohp, alamat) maka akan mengupdate nama no hp dan alamat dari konsumen dengan id konsumen tertentu yang akan disajikan dalam listing 4.12 else if (tomsimpan1.getText().equals("Update")) { DaftarControl df = null; try { DaftarControl.koneksi().updatekonsumen(idkonsu, nm, nohp, alamat); refreshkonsumen(); JtIdkonsumen.setText(""); JtNama.setText(""); JtNohp.setText(""); JtAlamat.setText(""); JOptionPane.showMessageDialog(PanelKomsumen, "Data Konsumen Berhasil DiUpdate"); } catch (SQLException ex) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, ex); } Listing 4. 12 Update Data Konsumen Untuk melakukan pencarian administrator harus memasukkan nama dari konsumen pada kolom nama lalu menekan enter untuk melakukan pencarian lalu sistem akan mencari pencarian dengan memanggil perintah carinama(nm) yang berfungsi untuk mencari semua nama yang memiliki kesamaan dengan apa yang di isikan administrator di kolom nama lalu akan di masukkan dalam list tabel dengan perintah TabelKonsumen.setmodel(model); yang akan disajikan dalam listing 4.13. String nm = JtNama.getText(); try { List<Daftar> konsum = (List<Daftar>) DaftarControl.koneksi().carinama(nm); TabelModelKonsumen model = new TabelModelKonsumen(konsum); TabelKonsumen.setModel(model); } catch (Exception e) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, e); } tombsimpan1(); Listing 4. 13 Cari Konsumen PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72 Setelah selesai dengan data konsumen maka akan di lanjutkan ke halaman berikutnya yaitu halaman data kendaraan sesuai dengan pemilik kendaraan tersebut seperti pada gambar 4.3. Gambar 4. 3 Form Data Kendaraan Untuk halaman kedua akan menampilkan data kendaraan dari konsumen yang telah di pilih di form data konsumen, dalam tab ini ada 2 perintah yang dapat dilakukan yaitu untuk menyimpan data kendaraan baru dan mengupdate data kendaraan yang sudah ada. Ketika akan melakukan penyimpanan data kendaraan baru maka admin harus mengisikan secara lengkap data kendaraan lalu menekan tombol simpan yang akan melakukan penyimpanan data kendaraan baru kedalam database dengan perintah simpanmotor(nopol, jenis, norangka, nomesin, idkonsum) yang akan disajikan dalam listing 4.14. if (tomsimpan2.getText().equals("Simpan")) { DaftarControl df = null; try { DaftarControl.koneksi().simpanmotor(nopol, jenis, norangka, nomesin, idkonsum); JOptionPane.showMessageDialog(PanelKomsumen, "Data Motor Berhasil Ditambahkan"); } catch (SQLException ex) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, ex); } Listing 4. 14 Simpan Data Kendaraan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73 Dan ketika ingin mengupdate data kendaraan maka administrator harus memilih data kendaraan yang sudah ada dari dalam tabel , secara otomatis data akan langsung mengisi form data kendaraan dan tombol simpan berubah menjadi tombol update setelah itu administrator mengubah data dari kendaraan dan setelah itu menekan tombol update yang akan menjalankan perintah update motor (nopol, jenis, norangka, nomesin, idkonsum) yang akan mengupdate data dari kendaraan sesuai dengan nopol dari kendaraan yang dipilih tadi yang akan disajikan dalam listing 4.15. else if (tomsimpan2.getText().equals("Update")) { DaftarControl df = null; try { DaftarControl.koneksi().updatemotor(nopol, jenis, norangka, nomesin, idkonsum); JOptionPane.showMessageDialog(PanelKomsumen, "Data Motor Berhasil Diupdate"); } catch (SQLException ex) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, ex); } Listing 4. 15 Update Data Kendaraan Ketika administrator selesai memasukkan data kendaraan lalu menekan lanjut maka akan menuju ke form berikutnya yaitu form suku cadang seperti pada gambar 4.4. Gambar 4. 4 Form Suku Cadang Pada form ini akan menampilkan kategori suku cadang dengan pencarian berdasarkan merek kendaraan yang telah dipilih pada form sebelumnya, pada form ini PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74 perintah yang dapat dilakukan adalah perintah menambahkan suku cadang dengan cara menekan tombol tambah untuk membuka form pemesanan suku cadang yang di inginkan dengan memanggil perintah jdialog tambah sukucadang.setVisible(true);, tetapi ketika suku cadang sudah habis maka akan langsung diberikan pesan bahwa suku cadang sudah habis dengan perintah JOptionPane.showMessageDialog(this, "Maaf Stok barang sudah habis"); yang akan disajikan dalam listing 4.16. int row2 = TableSukucadang.getSelectedRow(); String idsukucadang = TableSukucadang.getValueAt(row2, 0).toString(); try { if (DaftarControl.koneksi().cekstock(idsukucadang).equals("0")) { JOptionPane.showMessageDialog(this, "Maaf Stok barang sudah habis"); } else { jdialogtambahsukucadang.setLocationRelativeTo(this); this.disable(); jdialogtambahsukucadang.setVisible(true); Listing 4. 16 Menampilkana Jdialog Tambah Suku Cadang Maka akan membuka form tambah pesanan seperti gambar 4.5 . Gambar 4. 5 Form Pemesanan Barang Ada 2 tombol dalam form ini yang memiliki fungsi untuk menambahkan suku cadang kedalam pesanan dan tombol batal untuk membatalkan pesanan suku cadang tersebut. ketika administrator akan menambahkan suku cadang kedalam pesanan maka administrator harus mengisikan jumlah pesanan dari suku cadang tersebut, setelah mengisikan jumlah pesanan lalu administrator menekan tombol pesan yang akan menjalankan perintah df.kurangstock(nonota, idbarang, diambil, totharga, stock, idsuku, pemesanan);, tetapi sebelum itu akan melakukan pengecekan stok suku cadang dengan perintah if (Integer.parseInt(stok) == 0 maka akan memunculkan pesan bahwa stok habis dengan perintah JOptionPane.showMessageDialog(this, "Maaf Stock Sudah Habis");, sedangkan jika jumlah pesanan melebihi stok yang ada else if (Integer.parseInt(stok) < ambil) maka akan memunculkan pesan pesanan melebihi stok PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75 yang ada dengan perintah JOptionPane.show MessageDialog(this, "Maaf Pesanan Anda Melebihi Stock Yang Ada"); dan jika pesanan sama dengan atau lebih kecil dari stok yang ada else if (Integer.parseInt(stok) >= ambil) maka akan menjalankan pengecekan apakah sudah ada barang dengan id yang dipilih if (d.getNonota() == null) maka akan melakukan simpan dengan perintah df.kurangstock(nonota, idbarang, diambil, totharga, stock, idsuku, pemesanan); ketika idbarang yang dicari sudah ada maka akan melakukan update dengan perintah statusupdate = df.kurangstock(nonota, idbarang, diambil, totharga, stock, idsuku, pemesanan); yang akan disajikan dalam listing 4.17. try { int row2 = TableSukucadang.getSelectedRow(); String idsukucadang = TableSukucadang.getValueAt(row2, 0).toString(); String stok = DaftarControl.koneksi().cekstock(idsukucadang); int ambil = Integer.parseInt(internaldiambil.getText()); if (Integer.parseInt(stok) == 0) { JOptionPane.showMessageDialog(this, "Maaf Stock Sudah Habis"); } else if (Integer.parseInt(stok) < ambil) { JOptionPane.showMessageDialog(this, "Maaf Pesanan Anda Melebihi Stock Yang Ada"); } else if (ambil == 0) { JOptionPane.showMessageDialog(this, "Tolong Masukkan Jumlah Pesanan Dengan Benar"); } else if (Integer.parseInt(stok) >= ambil) { try { DaftarControl df; df = DaftarControl.koneksi(); String nonota = JtNonota.getText(); String idbarang = Internalid.getText(); int hargasat = Integer.parseInt(InternalHargasat.getText()); String stock = InternalStock.getText(); int diambil = Integer.parseInt(internaldiambil.getText()); String idsuku = Internalid.getText(); String Status = ""; int totharga = hargasat * diambil; Daftar d = new Daftar(); d = df.cekbarang(nonota, idbarang); if (d.getNonota() == null) { String pemesanan = "1"; statusinput = df.kurangstock(nonota, idbarang, diambil, totharga, stock, idsuku, pemesanan); if (statusinput.equals("1")) { JOptionPane.showMessageDialog(PanelKomsumen, "Sukucadang Berhasil Ditambahkan Kedalam Daftar Pesanan"); } else { JOptionPane.showMessageDialog(PanelKomsumen, "Maaf terjadi kesalahan dalam pemesanan barang, mohon ulangi proses pemesanan"); PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76 } } else { String pemesanan = "2"; statusupdate = df.kurangstock(nonota, idbarang, diambil, totharga, stock, idsuku, pemesanan); if (statusupdate.equals("1")) { JOptionPane.showMessageDialog(PanelKomsumen, "Sukucadang Berhasil Ditambahkan Kedalam Daftar Pesanan"); } else { JOptionPane.showMessageDialog(PanelKomsumen, "Maaf terjadi kesalahan dalam pemesanan barang, mohon ulangi proses pemesanan"); } } Listing 4. 17 Tambah dan Update Pesanan Ketika admin ingin membatalkan transaksi maka admin menekan tombol batal maka akan menjalankan perintah jdialogtambahsukucadang.dispose(); untuk menutup form pemesanan sukucadang yang akan disajikan dalam listing 4.18. jdialogtambahsukucadang.dispose(); this.enable(); requestFocus(); Listing 4. 18 Batal Pemesanan Setelah selesai memasukkan suku cadang yang dipilih dan menekan tombol lanjut maka akan memunculkan form keluhan, jasa, kilometer, dan total biaya servis seperti pada gambar 4.6. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77 Gambar 4. 6 Form Keluhan, Jasa, Kilometer. Total Biaya Pada halaman ini akan ada beberapa perintah yang bisa di jalankan yaitu untuk tombol tambah jasa akan memanggil perintah untuk memanggil form untuk memanggil form tambah jasa dengan menjalankan perintah jdialogtambahjasa.setVisible(true);, yang akan disajikan dalam listing 4.19. jdialogtambahjasa.setLocationRelativeTo(this); this.disable(); jdialogtambahjasa.setVisible(true); Listing 4. 19 Menampilkan Form Tambah Jasa Dan akan memanggil form tambah jasa seperti pada gambar 4.7 dibawah ini. Gambar 4. 7 Form Tambah Jasa Administrator bengkel diminta untuk memilih jasa sesuai jasa yang dibutuhkan untuk proses servis setelah itu mengisikan keterangan tambahan pada kolom keterangan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78 dan untuk kolom biaya jasa awal dan akhir akan secara otomatis terisi, ketika administrator memasukkan diskon dalam persen maka sistem akan mengecek apakah diskon melebihi 100% dengan perintah if (disc persen <= 100) ketika diskon tidak melebihi 100% maka secara otomatis kolom diskon rp akan terisi dengan otomatis dan biaya jasa akhir akan di hitung dengan perintah int hasil = (int) (biaya - diskonrp); maka kolom biaya akhir akan langsung terisi jika diskon melebihi 100% maka akan ada pesan kesalahan dengan perintah JOptionPane. show Message Dialog(this, "Discount tidak bisa lebih dari 100%"); yang akan disajikan dalam listing 4.20. Integer discpersen = Integer.valueOf(jtinternaldiscountpersen.getText()); Integer biaya = Integer.valueOf(jtinternalbiayajasa.getText()); if (discpersen <= 100) { Integer diskonrp = (biaya * discpersen / 100); String diskonrupiah = Integer.toString(diskonrp); int hasil = (int) (biaya - diskonrp); jtinternaldiscountrp.setText(diskonrupiah); jtinternaljasabiayaakhir.setText(Integer.toString(hasil)); jtinternaldiscountrp.setEditable(false); } else { JOptionPane.showMessageDialog(this, "Discount tidak bisa lebih dari 100%"); jtinternaldiscountpersen.setText(""); } internaljasatomboltambah.setEnabled(true); Listing 4. 20 Penghitungan Diskon Ketika admin menekan tombol batal maka akan menjalankan perintah jdialogtambahjasa.dispose(); untuk menutup form tambah yang akan disajikan dalam listing 4.21. if (comboxjasa.getSelectedItem().equals("Pilih Jasa")) { jdialogtambahjasa.dispose(); this.enable(); this.requestFocus(); } else { comboxjasa.setSelectedIndex(0); jtinternaldiscountpersen.setText("0"); jtinternaldiscountrp.setText("0"); jtinternaljasabiayaakhir.setText("0"); jtinternalbiayajasa.setText("0"); jtinternaljasaketerangan.setText(""); } Listing 4. 21 Menutup Form Tambah Jasa PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79 Ketika admin selesai mengisikan data dari jasa yang digunakan dan menekan tombol simpan maka akan memanggil perintah DaftarControl.koneksi(). simpanjasa (nonota, jasa, keterangan, biaya, discrp); untuk menyimpan jasa yang dipilih tadi kedalam database jika jasa berhasil ditambahkan akan memunculkan pesan berhasil dengan perintah JOptionPane. showMessageDialog(PanelKomsumen, "Jasa Berhasil Ditambahkan"); dan jika jasa yang dimasukkan merupakan jasa yang sudah dimasukkan maka sistem akan memberikan pesan kesalahan dengan perintah JOptionPane. showMessage Dialog(this, "Maaf Anda Sudah Memasukkan Jasa Ini"); yang akan disajikan dalam listing 4.22. DaftarControl df; df = DaftarControl.koneksi(); Daftar d = new Daftar(); d = df.cekjasa(nonota, jasa); if (d.getNonota() == null) { DaftarControl.koneksi().simpanjasa(nonota, jasa, keterangan, biaya, discrp); refreshjasa(); jdialogtambahjasa.dispose(); this.enable(); this.requestFocus(); JOptionPane.showMessageDialog(PanelKomsumen, "Jasa Berhasil Ditambahkan"); } else { JOptionPane.showMessageDialog(this, "Maaf Anda Sudah Memasukkan Jasa Ini"); } Listing 4. 22 Menyimpan Jasa Servis Sedangkan untuk tombol pesan akan menjalankan perintah reportSource = "./Reports/Faktur Penjualann.jasper"; yang digunakan memanggil jasper report sebagai nota penjualan dan untuk mengisi jasper JasperPrint jasperPrint = JasperFillManager.fill Report (reportSource, params, kon); dan perintah yang digunakan untuk menyimpan data pesanan kedalam database adalah DaftarControl.koneksi().simpanorder(nonota, kmmasuk, tanggal, keluhan); yang akan disajikan dalam listing 4.23 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80 Connection kon = null; String reportSource = ""; kon = KoneksiDatabase.KoneksiDataBase(); reportSource = "./Reports/Faktur Penjualann.jasper"; Map<String, Object> params = new HashMap<String, Object>(); -----gettext. try { DaftarControl.koneksi().simpanorder(nonota, kmmasuk, tanggal, keluhan); } catch (SQLException ex) { Logger.getLogger(DaftarForm.class.getName()).log(Level.SEVERE, null, ex); } params.put("tanggal", tanggal); params.put("nonota", nonota); params.put("nama", namaa); params.put("alamat", alamat); params.put("notlp", notlp); params.put("nopol", nopol); params.put("norangka", norangka); params.put("nomesin", nomesin); params.put("jenis", jenis); params.put("merek", merek); params.put("kilometer", kmkembali); params.put("Biayatotaljasa", Biayatotaljasa); params.put("Biayatotalservice", Biayatotalservice); try { JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource, params, kon); JasperViewer.viewReport(jasperPrint, false); } catch (JRException ex) { ex.printStackTrace(); } Listing 4. 23 Memanggil Jasper Report dan akan memanggil jasper laporan nota seperti gambar 4.8 dibawah ini PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81 Gambar 4. 8 Jasper Laporan Nota Transaksi 4.3.3 Halaman Ubah Data Pesanan Halaman ubah data pesanan adalah halaman yang diakses untuk memberikan kemudahan untuk mengupdate data pesanan dari nota tertentu ketika proses service sedang dilakukan tetapi membutuhkan suku cadang baru dalam proses service sehingga data pesanan dalam database dapat diubah dimulai dengan mencari no nota yang akan ditampilkan dalam gambar 4.9 dan setelah nota ditemukan akan membuka halaman menu daftar service (tab suku cadang) yang bisa dilihat pada gambar 4.4. Gambar 4. 9 Form Masukkan No Nota (ubah data pesanan) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82 Untuk tombol kedua pada menu utama akan memanggil form untuk masukan no nota jika sewaku servis konsumen / mekanik bengkel menghendaki menambah suku cadang pada proses servis maka dapat di jalankan dengan menekan tombol menu kedua yaitu ubah data pesanan akan memanggil perintah JDialogCarinota.setVisible(true); untuk menampilkan form masukan nomor nonota yang akan disajikan dalam listing 4.24. this.disable(); JDialogCarinota.setVisible(true); JDialogCarinota.setLocationRelativeTo(this); inputnonota.requestFocus(); Listing 4. 24 Menampilkan Form Cari Nota Maka akan menampilkan form nota seperti pada gambar 4.9 dan tombol cari berfungsi untuk mencari nomor nota yang akan diubah datanya dalam proses servis dengan memanggil perintah berikut B.Daftar_service.Daftar Control.koneksi(). carinota (inputnonota.getText()); jika data ditemukan maka akan memanggil method show seperti pada listing 4.8 dan ketika data yang dicari tidak ditemukan akan memunculkan pesan kesalahan dengan perintah JOptionPane.show MessageDialog(this, "No nota tidak ditemukan"); yang akan disajikan dalam listing 4.25. String hasil = B.Daftar_service.DaftarControl.koneksi().carinota(inputnonota.getText()); if (hasil.equals(inputnonota.getText())) { try { DaftarForm df = new DaftarForm(); JDialogCarinota.setVisible(false); df.setVisible(true); df.show(inputnonota.getText(), 2); this.setVisible(false); } catch (Exception ex) { } } else { JOptionPane.showMessageDialog(this, "No nota tidak ditemukan"); } Listing 4. 25 Cari No Nota PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83 Sedangkan untuk tombol batal akan menutup form cari nota dengan menggunakan perintah berikut JDialogCarinota.setVisible(false); yang akan disajikan dalam listing 4.26 this.enable(); JDialogCarinota.setVisible(false); Listing 4. 26 Menutup Form Cari No Nota 4.3.4 Halaman Ubah Data Halaman Ubah Data adalah halaman yang diakses dari menu utama tombol ubah data yang berfungsi untuk mengupdate data stok suku cadang dan juga dapat menyimpan data suku cadang, data jenis suku cadang, data jenis motor, data jenis jasa, dan data merek, jika dibutuhkan untuk menambahkan data baru, halaman ini memiliki 6 tab yaitu tab data suku cadang (gambar 4.10) , tab data jenis suku cadang (gambar 4.11), tab data jenis motor (gambar 4.12), tab data merek (gambar 4.13), dan tab data jenis jasa (gambar 4.14) dan tab cek data penjualan (gambar 4.16). Gambar 4. 10 Tab Data Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84 Pada tab pertama ada beberapa perintah yang dijalankan, yang pertama adalah perintah untuk mencari semua suku cadang yang ada dalam database dengan perintah List<UbahData> sk = (List<UbahData>) UbahDataControl.koneksi().getallsk(); dan akan ditampilkan dalam tabel suku cadang dengan perintah tabelsukucadang. setModel(mod); yang akan disajikan dalam listing 4.27. List<UbahData> sk = (List<UbahData>) UbahDataControl.koneksi().getallsk(); TabelModelEditSK mod = new TabelModelEditSK(sk); tabelsukucadang.setModel(mod); Listing 4. 27 Cari Semua Suku Cadang Ketika administrator memilih kategori saja dalam kolom kategori maka akan memanggil perintah refresh sk kategori untuk mencari suku cadang menurut kategori saja dan ketika tombol kategori terisi pilih kategori maka akan memanggil metod refresh suku cadang untuk menampilkan semua suku cadang yang akan ditampilkan dalam tabel dalam bentuk list yang akan ditampilkan dalam listing 4.28. if (!comkategori.getSelectedItem().equals("Pilih Kategori")) { refreshskkategori(); } else { refreshsukucadang(); } Listing 4. 28 Cari Kategori Fungsi selanjutnya yang dijalankan adalah menyimpan data suku cadang baru, setelah mengisi semua data yang dibutuhkan seperti nama suku cadang, harga satuan, limit stock dan masuk administrator akan menekan tombol simpan yang akan menjalankan perintah UbahData Control.koneksi().simpansukucadang(id, nama, masuk, limit, kategori, harga); untuk menyimpan data suku cadang baru yang akan disajikan dalam listing 4,29. UbahDataControl.koneksi().simpansukucadang(id, nama, masuk, limit, kategori, harga); refreshsukucadang(); JOptionPane.showMessageDialog(rootPane, "Data Sukucadang Berhasil Ditambahkan"); Listing 4. 29 Simpan Suku Cadang PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85 Sedangkan untuk tombol update akan otomatis muncul ketika administrator menekan salah satu data dari dalam tabel dan data yang dipilih dan akan di tampilkan dalam form suku cadang untuk dilakukan update data setelah data diupdate maka administrator akan menekan tombol update yang akan melakukan update dengan memanggil perintah String tambahsk = UbahData Control.koneksi().tambahsk(id, nama, limit, idjenis, harga, masuk); ketika berhasil mengupdate data maka akan muncul pesan berhasil dengan perintah JOptionPane.show MessageDialog(rootPane, "Data Sukucadang Berhasil Diupdate"); yang akan disajikan dalam listing 4.30. String tambahsk = UbahDataControl.koneksi().tambahsk(id, nama, limit, idjenis, harga, masuk); refreshsukucadang(); JOptionPane.showMessageDialog(rootPane, "Data Sukucadang Berhasil Diupdate"); Listing 4. 30 Update Data Sk Ketika administrator menekan tombol batal maka akan menghapus semua data dalam form sehingga form siap digunakan lagi dengan menggunakan perintah seperti dalam listing 4.31. buttonsimpan1.setText("Simpan"); JtIdSK.setText(""); JtNama.setText(""); JtHargasatuan.setText(""); JtLimitstock.setText(""); JtMasuk.setText(""); comkategori.setSelectedIndex(0); buttonsimpan1.setEnabled(false); refreshsukucadang(); Listing 4. 31 Tombol Batal PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86 Tab kedua adalah tab data jenis suku cadang seperti pada gambar 4.11. Gambar 4. 11 Tab Data Jenis Suku Cadang Untuk tab kedua yaitu tab data jenis suku cadang terdapat 2 fungsi yang dapat dijalanlankan di halaman ini yaitu untuk menambahkan data jenis suku cadang baru atau mengupdate data suku cadang yang sudah ada, untuk menambah data suku cadang baru administrator hanya mengisikan nama jenis suku cadang dengan benar lalu menekan tombol simpan, untuk id jenis akan secara otomatis dibuat dengan perintah String a = UbahDataControl.koneksi().autonumberjenissk(); untuk mendapatkan nomor id jenissk tertinggi lalu ditambah dengan 1 selanjutnya akan ada pengecekan panjang dari id jenissk jika id jenissk kosong maka akan menampilkan id jenissk = 0001 dengan perintah a= "0001"; jika panjang id jenissk 1 maka akan menambahkan "000" di depan id jenissk dengan perintah a = "000" + a; jika panjang id jenissk 2 maka akan menambahkan "00" di depan id jenissk dengan perintah a = "00" + a; jika id jenissk 3 maka akan menambahkan "0" di belakang id jenissk dengan perintah a = "0" + a; jika panjang id jenissk lebih dari 3 maka akan langsung menampilkan hasil pencarian id jenissk JtIdjenis.setText(a); yang akan ditampilkan dalam listing 4.32. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87 private void autonumberjenissk() { try { String a = UbahDataControl.koneksi().autonumberjenissk(); if (a.equals("null")) { a = "0001"; } else if (a.length() == 1) { a = "000" + a; } else if (a.length() == 2) { a = "00" + a; } else if (a.length() == 3) { a = "0" + a; } JtIdjenis.setText(a); Listing 4. 32 Autonumber Jenis Sk Dan selanjutnya untuk menyimpan data jenis suku cadang baru maka akan menggunakan perintah berikut UbahDataControl.koneksi().simpanjenissk(id, nama); jika berhasil menambahkan maka akan ada pesan sukses dengan perintah JOptionPane.show MessageDialog(rootPane, "Data Jenis Suku Cadang Berhasil Ditambahkan"); seperti pada listing 4.33 UbahDataControl.koneksi().simpanjenissk(id, nama); refreshjenissuku(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Suku Cadang Berhasil Ditambahkan"); Listing 4. 33 Simpan Jenis Sk Sedangkan untuk tombol update akan otomatis muncul ketika user menekan salah satu data dari dalam tabel dan data yang dipilih akan di tampilkan dalam form jenis sukucadang untuk dilakukan update data dengan menggunakan perintah UbahDataControl .koneksi().updatejenissk(id, nama); dan ketika berhasil memasukkan akan menampilkan pesan sukses dengan perintah JOptionPane. showMessageDialog (rootPane, "Data Jenis Suku Dadang Berhasil Diupdate"); yang akan disajikan dalam listing 4.34. UbahDataControl.koneksi().updatejenissk(id, nama); refreshjenissuku(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Suku Cadang Berhasil Diupdate"); Listing 4. 34 Update Jenis Sk PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88 Sedangkan untuk perintah batal akan mengosongkan form jenis suku cadang dengan menjalankan perintah seperti pada listing 4.35. JtIdjenis.setText(""); JtJenissuku.setText(""); buttonsimpan5.setText("Simpan"); buttonsimpan5.setEnabled(false); Listing 4. 35 Tombol Batal Tab ke tiga adalah tab data jenis motor seperti pada gambar 4.12. Gambar 4. 12 Tab Data Jenis Motor Untuk tab ketiga disini adalah tab data jenis motor, sama halnya dengan tab jenis suku cadang hanya perlu menambah nama jenis dan merek pada form isian jenis motor untuk id jenis akan dibuat secara otomatis dengan perintah String a = UbahDataControl. koneksi(). autonumbermotor();, untuk mendapatkan id jenis motor tertinggi lalu ditambah dengan 1 selanjutnya akan ada pengecekan panjang dari id jenis motor jika id jenis motor kosong maka akan menampilkan id jenis motor = 0001 dengan perintah a= "0001"; jika panjang id jenis motor 1 maka akan menambahkan "000" di depan id jenis motor dengan perintah a = "000" + a; jika panjang id jenis motor 2 maka akan menambahkan "00" di depan id jenis motor dengan perintah a = "00" + a; jika panjang id jenis motor 3 maka akan menambahkan "0" di belakang id jenis motor dengan perintah a = "0" + a; jika panjang id jenis motor lebih dari 3 maka akan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89 langsung menampilkan hasil pencarian id jenis motor JtIdjenismotor.setText(a); yang akan ditampilkan dalam listing 4.36. try { String a = UbahDataControl.koneksi().autonumbermotor(); if (a.equals("null")) { a = "0001"; } else if (a.length() == 1) { a = "000" + a; } else if (a.length() == 2) { a = "00" + a; } else if (a.length() == 3) { a = "0" + a; } JtIdjenismotor.setText(a); Listing 4. 36 Autonumber Motor Selanjutnya untuk menyimpan data suku cadang baru daministrator akan mengisikan nama jenis dan merek dari jenis motor tersebut, setelah mengisikan dan menekan tombol simpan maka akan menyimpan kedalam database dengan perintah berikut UbahData Control.koneksi().simpanjenismotor(id, nama, merek); dan jika sukses menyimpan data jenis motor baru maka akan memunculkan pesan sukses dengan perintah JOptionPane.show MessageDialog(rootPane, "Data Jenis Motor Berhasil Ditambahkan"); yang akan disajikan dalam listing 4.37. UbahDataControl.koneksi().simpanjenismotor(id, nama, merek); refreshdatamotor(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Motor Berhasil Ditambahkan"); Listing 4. 37 Simpan Jenis Motor Sedangkan untuk tombol update akan otomatis muncul ketika user menekan salah satu data dari dalam tabel dan data yang dipilih akan di tampilkan dalam form jenis motor untuk dilakukan update data dengan menggunakan perintah UbahData Control. koneksi ().updatejenismotor(id, nama, merek); dan ketika berhasil mengupdate jenis motor akan memunculkan pesan berhasil dengan perintah JOptionPane. showMessage Dialog(rootPane, "Data Jenis Motor Berhasil Diupdate"); yang akan disajikan dalam listing 4.38. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 90 UbahDataControl.koneksi().updatejenismotor(id, nama, merek); refreshdatamotor(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Motor Berhasil Diupdate"); Listing 4. 38 Update Jenis Motor Untuk perintah batal akan berjalan untuk mengosongkan data di form jenis motor dengan menjalankan perintah seperti pada listing 4.39. JtIdjenismotor.setText(""); JtNamajenismotor.setText(""); combomerek.setSelectedIndex(0); buttonsimpan2.setText("Simpan"); buttonsimpan2.setEnabled(false); Listing 4. 39 Tombol Batal Untuk tombol tambah sk digunakan ketika akan menambahkan suatu suku cadang untuk motor tertentu, maka administrator harus memilih jenis motor yang akan ditambahkan suku cadangnya lalu menekan tombol tambah sk maka akan menampilkan jdialog tambah sk dengan perintah seperti pada listing 4.40. dialogtambahskmotor.setLocationRelativeTo(this); this.disable(); dialogtambahskmotor.setVisible(true); Listing 4. 40 Menampilkan Jdialog Tambah Sk Motor Lalu akan muncul jdialog skmotor seperti pada gambar 4.13 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 91 Gambar 4. 13 Tambah Sk Motor Untuk perintah tambah admin harus klik kanan pada data yang diinginkan di tabel sebelah kanan tabel sksemua lalu menekan tombol popup tambah maka akan menyimpan data id jenis motor dan id suku cadang pada tabel sk motor dengan perintah seperti pada listing 4.41. UbahDataControl.koneksi().simpansukumotor(idjenismotor, idsuku); refreshsukucadang(); JOptionPane.showMessageDialog(dialogtambahskmotor, "Data Sukucadang Berhasil Ditambahkan"); Listing 4. 41 Menambahkan Suku Cadang Kedalam Motor Tertentu Untuk perintah hapus admin harus klik kanan pada data yang diinginkan di tabel sebelah kiri tabel sk motor lalu menekan tombol popup hapus maka akan menghapus data berdasarkan id jenis motor dan id suku cadang dengan perintah seperti pada listing 4.42. UbahDataControl.koneksi().hapussukumotor(idjenismotor, idsuku); refreshsukucadang(); JOptionPane.showMessageDialog(dialogtambahskmotor, "Data Sukucadang Berhasil Dihapus"); Listing 4. 42 Menghapus Suku Cadang Motor Tertentu PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 92 Tab ke empat adalah tab data merek seperti pada gambar 4.13. Gambar 4. 14 Tab Data Merek Untuk tab ke-empat adalah tab data merek dalam tab ini administrator dapat mengisikan data merek baru dengan cara mengisikan nama merek pada form dan menekan tombol simpan, untuk id merek akan dibuat secara otomatis dengan menggunakan perintah berikut String a = UbahDataControl.koneksi(). autonumbermerek();, untuk mendapatkan id merek tertinggi lalu ditambah dengan 1 selanjutnya akan ada pengecekan panjang dari id merek jika id merek kosong maka akan menampilkan id merek = 001 dengan perintah a= "0001"; jika panjang id merek 1 maka akan menambahkan "000" di depan id merek dengan perintah a = "000" + a; jika panjang id merek 2 maka akan menambahkan "00" di depan id merek dengan perintah a = "00" + a; jika panjang id merek lebih dari 2 maka akan langsung menampilkan hasil pencarian id merek JtIdmerek.setText(a);yang akan ditampilkan dalam listing 4.43. String a = UbahDataControl.koneksi().autonumbermerek(); if (a.equals("null")) { a = "001"; } else if (a.length() == 1) { a = "00" + a; } else if (a.length() == 2) { a = "0" + a; } JtIdmerek.setText(a); Listing 4. 43 Autonumber Merek PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 93 Setelah itu untuk menyimpan data merek motor baru admin menekan tombol simpan dan akan memanggil perintah UbahDataControl.koneksi().simpanmerek(id, nama);, ketika berhasil menambahkan merek baru maka akan memunculkan pesan sukses dengan perintah JOptionPane.showMessageDialog(rootPane, "Data Merek Motor Berhasil Ditambahkan"); yang akan disajikan dalam listing 4.44. UbahDataControl.koneksi().simpanmerek(id, nama); refreshmerek(); JOptionPane.showMessageDialog(rootPane, "Data Merek Motor Berhasil Ditambahkan"); Listing 4. 44 Simpan Merek Sedangkan untuk tombol update akan otomatis muncul ketika user menekan salah satu data dari dalam tabel dan data yang dipilih akan di tampilkan dalam form merek motor untuk dilakukan update data dengan menggunakan perintah UbahDataControl. koneksi().updatemerek(id, nama); ketika berhasil mengupdate merek maka akan memunculkan pesan sukses dengan perintah JOptionPane.show Message Dialog (rootPane, "Data Merek Motor Berhasil Diupdate"); yang akan disajikan dalam listing 4.45. UbahDataControl.koneksi().updatemerek(id, nama); refreshmerek(); JOptionPane.showMessageDialog(rootPane, "Data Merek Motor Berhasil Diupdate"); Listing 4. 45 Update Merek Untuk perintah batal akan berjalan untuk mengosongkan data di form merek dengan menjalankan perintah seperti pada listing 4.47. JtIdmerek.setText(""); JtNamamerek.setText(""); buttonsimpan4.setText("Simpan"); buttonsimpan4.setEnabled(false); Listing 4. 46 Tombol Batal Tab kelima adalah tab jenis jasa seperti pada gambar 4.15. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 94 Gambar 4. 15 Tab Data Jenis Jasa Untuk tab terakhir adalah tab jenis jasa disini terdapat 3 fungsi yang dijalankan yaitu untuk menyimpan jenis jasa, mengupdate jenis jasa dan batal , fungsi simpan dijalankan ketika administrator sudah mengisikan nama jenis jasa dan biaya jasa pada form jenis jasa secara benar dan menekan tombol simpan untuk id jenis jasa akan dibuat secara otomatis dengan menggunakan perintah sebagai berikut String a = UbahDataControl.koneksi() .autonumberjasa();untuk mendapatkan id jenis jasa tertinggi lalu ditambah dengan 1 selanjutnya akan ada pengecekan panjang dari id jenis jasa jika id jenis jasa kosong maka akan menampilkan id jenis jasa = 0001 dengan perintah a= "0001"; jika panjang id jenis jasa 1 maka akan menambahkan "000" di depan id jenis jasa dengan perintah a = "000" + a; jika panjang id jenis jasa 2 maka akan menambahkan "00" di depan id jenis jasa dengan perintah a = "00" + a; jika panjang id jenis jasa 3 maka akan menambahkan "0" di belakang id jenis jasa dengan perintah a = "0" + a; jika panjang id jenis jasa lebih dari 3 maka akan langsung menampilkan hasil pencarian id jenis jasa jtidjasa.setText(a); yang akan ditampilkan dalam listing 4.47. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 95 String a = UbahDataControl.koneksi().autonumberjasa(); if (a.equals("null")) { a = "0001"; } else if (a.length() == 1) { a = "000" + a; } else if (a.length() == 2) { a = "00" + a; } else if (a.length() == 3) { a = "0" + a; } jtidjasa.setText(a); Listing 4. 47 Autonumber Jasa Setelah itu untuk menambahkan data jasa baru administrator menekan tombol simpan dan akan memanggil perintah berikut UbahDataControl.koneksi() .simpanjenisjasa(id, nama, biaya); JOption Pane.showMessageDialog(rootPane, "Data Jenis Jasa Berhasil Ditambahkan"); yang akan disajikan dalam listing 4.48. UbahDataControl.koneksi().simpanjenisjasa(id, nama, biaya); refreshjenisjasa(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Jasa Berhasil Ditambahkan"); Listing 4. 48 Simpan Jenis Sk Sedangkan untuk tombol update akan otomatis muncul ketika user menekan salah satu data dari dalam tabel dan data yang dipilih akan di tampilkan dalam form jenis jasa untuk dilakukan update data dengan menggunakan perintah Ubah DataControl .koneksi() .updatejenisjasa(id, nama, biaya); ketika berhasil mengupdate jenis jasa maka akan memunculkan pesan sukses dengan perintah JOptionPane.showMessageDialog (rootPane, "Data Jenis Jasa Berhasil Diupdate"); yang akan disajikan dalam listing 4.49. UbahDataControl.koneksi().updatejenisjasa(id, nama, biaya); refreshjenisjasa(); JOptionPane.showMessageDialog(rootPane, "Data Jenis Jasa Berhasil Diupdate"); Listing 4. 49 Update Jenis Jasa Untuk perintah batal akan berjalan untuk mengosongkan data di form jenis jasa dengan menjalankan perintah seperti pada listing 4.50. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 96 jtidjasa.setText(""); jtnamajasa.setText(""); jtbiayajasa.setText(""); buttonsimpan3.setText("Simpan"); buttonsimpan3.setEnabled(false); Listing 4. 50 Tombol batal Tab ke enam adalah tab cek data penjualan seperti pada gambar 4.16. Gambar 4. 16 Cek Data Penjualan Tab ini berfungsi untuk mengecek barang yang terjual pada bulan dan tahun tertentu, hanya ada satu fungsi di tab ini yaitu fungsi untuk mencari data dengan menekan tombol cari setelah memilih bulan dan tahun , lalu akan menjalankan perintah cari seperti pada listing 4.51 berikut, untuk bulan akan menambahkan perintah jmonthchooser.getmonth()+1 dikarenakan bulan dalam java terbaca mulai bulan 0 sehingga harus menambahkan 1 agar bulan yang didapat sesuai dengan data dalam database. int bulan = jmonthchooser.getMonth() + 1; int tahun = jYearChooser.getYear(); List<UbahData> konsum = (List<UbahData>) UbahDataControl.koneksi().cekpenjualan(bulan, tahun); TabelModelCekPenjualan model = new TabelModelCekPenjualan(konsum); tabelcekpenjualan.setModel(model); Listing 4. 51 Cek Penjualan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 97 4.3.5 Halaman Histori Servis Halaman histori servis adalah halaman yang diakses ketika konsumen menanyakan kapan terakhir kali konsumen tersebut melakukan servis atau apa yang di servis ketika terakir kali melakukan proses servis yang akan ditampilkan dalam gambar 4.16 dan detil servis akan ditampilkan dalam gambar 4.17. Gambar 4. 17 Halaman Histori Servis Pada form ini ada 2 perintah yang dapat dijalankan perintah pertama adalah untuk mencari data servis dengan memasukkan nomor polisi kendaraan yang dicari, kemudian sistem akan menjalankan perintah cari untuk melakukan pencarian nomor polisi yang dimasukkan dengan menjalankan perintah List<History> histo = (List<History>) HistoryControl.koneksi().carinopol(np); dan akan ditampilkan di dalam tabel histori dengan perintah TabelHistori.setModel(model); yang akan disajikan dalam listing 4.52 List<History> histo = (List<History>) HistoryControl.koneksi().carinopol(np); TabelModelHistory model = new TabelModelHistory(histo); TabelHistori.setModel(model); Listing 4. 52 Cari No Polisi Untuk perintah yang kedua yaitu perintah detil servis, ketika data yang dicari sudah muncul dalam tabel administrator dapat menekan tombol detil untuk melihat detil servis dari kendaraan tertentu yang sudah ditampilkan dalam tabel dengan menjalankan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 98 perintah berikut untuk mendapatkan data konsumen, jasa yang digunakan, suku cadang yang digunakan, biaya total suku cadang, biaya total jasa, dan data servis seperti kilometer keluhan. Yang akan disajikan dalam listing 4.53. konsumen(); getjasa(); getsk(); getbiayask(); getbiayajasa(); getdataservice(); String totalsk = JtTotalbiayaSK.getText(); String totaljasa = JtTotalbiayajasa.getText(); int totalbiayaservice = Integer.valueOf(totalsk) + Integer.valueOf(totaljasa); JtTotalBiayaServis.setText(Integer.toString(totalbiayaservice)); Jdialoghistori.setLocationRelativeTo(this); this.disable(); Jdialoghistori.setVisible(true); Listing 4. 53 Cari Data Servis Dan data yang diperloleh akan ditampilkan kedalam form detil servis seperti pada gambar 4.17 Gambar 4. 18 Halaman Detil Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 99 BAB V ANALISA HASIL PENGUJIAN 5.1 Analisa Hasil Perangkat Lunak Aplikasi bengkel merupakan aplikasi pendataan data bengkel dengan menerapkan protokol Two Phase Locking (2PL), aplikasi ini dibuat untuk membantu staff administrator untuk melakukan pencatatan data pemesanan suku cadang yang digunakan dalam proses servis, mendata stock suku cadang yang ada, fungsi utama dari aplikasi ini adalah untuk menghindari kesalahan pencatatan stok suku cadang yang di lakukan dalam proses servis dan juga dalam proses pemasukan stok suku cadang agar data yang diperoleh adalah data yang valid tidak terjadi kesalahan pencatatan stok suku cadang. Pengujian dilakukan oleh 5 orang staff administrator bengkel sebagai responden. Pengujian yang dilakukan oleh administrator yang akan menggunakan sistem meliputi pengujian mulai dari pendaftaran servis, pengambilan barang servis sampai pengubahan data data bengkel seperti data suku cadang, jenis suku cadang, jenis motor, merek, dan jenis jasa dan juga admin mengecek nota servis dan histori servis dari kendaraan tertentu. 5.2 Analisa Hasil Coba Terhadap Program Aplikasi bengkel yang menerapkan protokol 2PL digunakan dalam lingkungan multi user sehingga dimungkinkan terjadi permasalahan concurrency. Pada kasus ini 2PL menangani masalah ketergantungan transaksi yang belum dilaksanakan (uncommited dependency problem) seperti pada bab 5.2.1, dan juga akan menangani masalah hilangnya data yang diubah (lost update problem) seperti pada bab 5.2.2. Untuk masalah ketiga analisa yang tidak konsisten (inconsistent analysis problem) tidak dimungkinkan terjadi dalam aplikasi bengkel motor ini. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 100 5.2.1 Pengujian terhadap Masalah Ketergantungan Transaksi yang Belum Di Laksanakan (Uncommited Dependency Problem) pada Proses Daftar Servis Berikut ini adalah gambaran yang dilakukan untuk mendaftar servis dan mendapatkan no nota untuk proses selanjutnya. Dilakukan pengujian untuk mendaftar servis dari dua transaksi yang berbeda secara bersamaan dengan dua id konsumen yang berbeda, untuk membuktikan diberikan sedikit delay pada stored procedure dengan perintah menambahkan perintah dbms_lock.sleep(5);, stored procedure yang digunakan disini adalah stored procedure servis seperti pada listing 4.4. Untuk hasil pengujian transaksi pertama adalah transaksi yang terlebih dahulu mendapatkan no nota sehingga mendapatkan pesan sukses "Berhasil mendaftar" seperti pada gambar 5.1, sedangkan transaksi kedua akan terjadi kesalahan dan melakukan proses rollback, sehingga sistem menampilkan pesan kesalahan "Maaf terjadi kesalahan dalam pendaftaran servis, mohon ulangi proses pendaftaran" seperti pada gambar 5.2. Gambar 5. 1 Berhasil Mendaftar Servis PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 101 Gambar 5. 2 Gagal Mendaftar Servis dan Ada Pesan Kesalahan 5.2.2 Pengujian terhadap Masalah Hilangnya Data yang Diubah (Lost Update Problem) pada Proses Pengambilan Suku Cadang dalam Proses Servis Berikut ini adalah gambaran yang dilakukan untuk melakukan proses pemesanan suku cadang . akan menampilkan halaman suku cadang yang berisi kategori suku cadang yang ada sesuai dengan merek motor yang telah dipilih sebelumnya yang telah ditampilkan di gambar 4.4. Dalam pengujian ini akan menggunakan jenis suku cadang busi dengan nama suku cadang denso std b dengan menggunakan 2 interface yang akan melakukan pemesanan barang dengan id yang sama secara bersamaan yang akan di tampilkan dalam gambar 5.3 dengan nonota 0001 dan 5.4 dengan nonota 0002. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 102 Gambar 5. 3 Pemesanan Suku Cadang dengan No Nota 0001 Pada gambar 5.3 administrator satu telah memilih kategori suku cadang busi dan memilih busi denso std b terlihat stock suku cadang untuk busi denso std b tersisa 1 buah Gambar 5. 4 Pemesanan Suku Cadang dengan No Nota 0002 Pada gambar 5.4 administrator 2 telah memilih suku cadang yang sama dengan administrator satu yaitu busi denso std b dan terlihat disinilah 2PL akan berjalan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 103 diberikan delay pada stored procedure untuk percobaan ini dengan cara menambahkan perintah dbms_lock.sleep(5); pada kasus ini stored procedure yang digunakan adalah Tambah suku cadang seperti pada listing 4.1. Perintah ini akan melakukan pemberian jeda waktu selama 5 detik untuk membuktikan procedure two phase locking berjalan dengan benar, maka jika transaksi dijalankan bersamaan pada tab yang menjalankan transaksi terlebih dahulu akan berhasil mengambil suku cadang dan akan menampilkan pesan sukses yang akan ditampilkan dalam gambar 5.5 dan transaksi kedua akan menunggu transaksi pertama selesai melakukan transaksi dan melakukan commit selanjutnya transaksi kedua akan melakukan roolback karena suku cadang yang di minta sudah digunakan dalam transaksi pertama akan mengeluarkan pesan kesalahan dikarekanan suku cadang busi denso std b sudah diambil oleh transaksi pertama dan akan ditampilkan dalam gambar 5.6. Gambar 5. 5 Pemesanan Suku Cadang Berhasil PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 104 Gambar 5. 6 Pemesanan Suku Cadang Gagal Pada gambar 5.5 adalah pengujian pengambilan suku cadang dengan pesan sukses yang berarti suku cadang berhasil di tambahkan kedalam database dengan no nota yang sudah ada sedangkan pada gambar 5.6 menunjukkan pesan kesalahan "Maaf terjadi kesalahan dalam pemesanan barang, mohon ulangi proses pemesanan" karena ketika kedua transaksi tersebut melakukan proses pemesanan transaksi pada gambar 5.5 telah lebih dahulu melakukan penguncian sehingga transaksi pada gambar 5.6 harus menunggu transaksi pertama tadi melakukan commit dan transaksi pertama telah melepaskan penguncian, sehingga pada transaksi kedua melakukan proses rollback dan memberikan pesan kesalahan agar proses diulang kembali. Tabel 5.1 merupakan gambaran tabel untuk proses pengambilan suku cadang dalam pengujian aplikasi yang menerapkan protokol 2PL untuk menghindari masalah concurency. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 105 Tabel 5. 1 Tabel Proses Transaksi dengan 2PL Waktu T1 T2 T3 T4 T5 T6 Transaksi 1 Transaksi 2 Stok sukucadang Open procedure tambahsukucadang 1 select stock into v_stock from Open procedure 1 sukucadang where idsukucadang = tambahsukucadang v_idsukucad for update if (v_stock - v_jumlah) < 0 then Wait 1 insert into pemesanan (nonota, Wait 1 idsukucadang, jumlah, totalharga) values (v_idnota,v_idsuku,v_jumlah,v_harga) ; update sukucadang set stock = v_stock Wait 0 - v_jumlah where idsukucadang = v_idsukucad; status := 1; commit; select stock into v_stock 0 from sukucadang where idsukucadang = v_idsukucad T7 if (v_stock - v_jumlah) < 0 0 then ROLLBACK; status := 0; T8 Dari tabel 5.1 dapat dilihat bahwa transaksi pertama seperti pada gambar 5.3 dan transaksi ke dua pada gambar 5.4 melakukan pemesanan barang di saat hampir bersamaan tetapi transaksi pertama terlebih dahulu mengunci tabel suku cadang dapat dilihat di T2 tabel 5.1 sehingga transaksi kedua harus menunggu selama 5 detik dengan perintah dbms_lock.sleep(5); seperti pada listing 4.1. Setelah transaksi pertama selesai dan melakukan commit. Dapat dilihat pada gambar 5.5 transaksi pertama berhasil mengambil suku cadang, dan pada gambar 5.6 transaksi kedua gagal mengambil suku cadang dikarenakan transaksi pertama telah mengambil barang terakhir dalam stok maka akan muncul pesan kesalahan dan transaksi kedua akan melakukan roolback seperti kolom t8 tabel 5.1. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 106 5.3 Analisa Hasil Coba Terhadap Pengguna Uji coba terhadap pengguna dilakukan dengan menyebarkan kuisioner kepada 5 orang staff administrator bengkel (untuk menguji apakah sistem yang dibuat dapat membantu kinerja staff administrator bengkel). 5.4 Hasil Pengujian Ddministrator Bengkel Hasil dari pembagian kuisioner yang telah dibagikan untuk pengguna sistem menghasilkan data yang akan diolah sehinggal mendapatkan gambaran dari sistem yang dibuat sebagai berikut. Pertanyaan 1 : Apakah merasa mudah melihat dan memahami tampilan sistem. Tabel 5. 2 Hasil Pertanyaan 1 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 2 3 0 0 0 Skor Bobot 5 4 3 2 1 Nilai 10 12 0 0 0 4,4 Hasil analisa dari kuisioner yang didapat dari pertanyaan pertama adalah mendapatkan nilai 4,4 dari skala 5 yang berarti bahwa responden setuju jika merasa mudah melihat dan memahami tampilan sistem. Pertanyaan 2 : Apakah mudah membaca tulisan dalam sistem. Tabel 5. 3 Hasil Pertanyaan 2 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 0 2 3 0 0 Skor Bobot 5 4 3 2 1 Nilai 0 8 9 0 0 3,4 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 107 Hasil analisa dari kuisioner yang didapat dari pertanyaan kedua adalah mendapatkan nilai 3,4 dari skala 5 yang berarti bahwa responden ragu ragu jika mudah membaca tulisan dalam sistem. Pertanyaan 3 : Apakah mudah memahami petunjuk penggunaan sistem. Tabel 5. 4 Hasil Pertanyaan 3 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 0 4 1 0 0 Skor Bobot 5 4 3 2 1 Nilai 0 16 3 0 0 3,8 Hasil analisa dari kuisioner yang didapat dari pertanyaan ketiga adalah mendapatkan nilai 3,8 dari skala 5 yang berarti bahwa responden setuju jika mudah memahami petunjuk penggunaan sistem. Pertanyaan 4 : Apakah mudah mengenali setiap perintah dalam sistem. Tabel 5. 5 Hasil Pertanyaan 4 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 0 4 1 0 0 Skor Bobot 5 4 3 2 1 Nilai 0 16 3 0 0 3,8 Hasil analisa dari kuisioner yang didapat dari pertanyaan keempat adalah mendapatkan nilai 3,8 dari skala 5 yang berarti bahwa responden setuju jika mudah mengenali setiap perintah dalam sistem. Pertanyaan 5 : Apakah mudah menggunakan perintah dalam sistem (simpan, ubah). Tabel 5. 6 Hasil Pertanyaan 5 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Jumah responden 1 3 1 0 Bobot 5 4 3 2 Nilai 5 12 3 0 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 108 Sangat Tidak Setuju 0 Skor 1 0 4,0 Hasil analisa dari kuisioner yang didapat dari pertanyaan kelima adalah mendapatkan nilai 4,0 dari skala 5 yang berarti bahwa responden setuju jika mudah menggunakan perintah dalam sistem. Pertanyaan 6 : Apakah perintah yang di tampilkan sesuai dengan fungsi yang diinginkan. Tabel 5. 7 Hasil Pertanyaan 6 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 0 5 0 0 0 Skor Bobot 5 4 3 2 1 Nilai 0 20 0 0 0 4,0 Hasil analisa dari kuisioner yang didapat dari pertanyaan keenam adalah mendapatkan nilai 4,0 dari skala 5 yang berarti bahwa responden setuju bahwa perintah yang ditampilkan sesuai dengan fungsi yang diinginkan. Pertanyaan 7 : Apakah mudah mencari data yang diinginkan dalam sistem. Tabel 5. 8 Hasil Pertanyaan 7 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 2 3 0 0 0 Skor Bobot 5 4 3 2 1 Nilai 10 12 0 0 0 4,4 Hasil analisa dari kuisioner yang didapat dari pertanyaan ketuju adalah mendapatkan nilai 4,4 dari skala 5 yang berarti bahwa responden setuju jika mudah mencari data yang diinginkan dalam sistem. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 109 Pertanyaan 8 : Apakah sistem ini mempermudah kinerja anda. Tabel 5. 9 Hasil Pertanyaan 8 Jawaban Sangat Setuju Setuju Ragu - ragu Tidak setuju Sangat Tidak Setuju Jumah responden 2 3 0 0 0 Skor Bobot 5 4 3 2 1 Nilai 10 12 0 0 0 4,4 Hasil analisa dari kuisioner yang didapat dari pertanyaan terakhir adalah mendapatkan nilai 4,4 dari skala 5 yang berarti bahwa responden menyatakan setuju jika sistem mempermudah kinerja mereka. Maka untuk pertanyaan pertama didapatkan hasil 2 dari 5 orang menyatakan sangat setuju jika mudah melihat dan memami tampilan sistem sedangkan 3 lainnya mengatakan setuju saja, sedangkan untuk pertanyaan kedua didapatkan hasil 2 dari 5 responden mengatakan setuju jika mudah membaca tulisan dalam sistem sedangkan 3 lainnya mengatakan ragu jika mudah membaca tulisan dalam sistem, untuk pertanyaan ke tiga didapatkan hasil 4 dari 5 responden mengatakan setuju jika mudah memahami petunjuk penggunaan sistem sedangkan sisanya mengatakan ragu ragu jika mudah memahami petunjuk penggunaan sistem, untuk pertanyaan ke empat didapatkan hasil 4 dari 5 responden mengatakan setuju jika mudah mengenali setiap perintah dalam sistem sedangkan sisanya mengatakan ragu ragu jika mudah mengenali setiap perintah dalam sistem, untuk pertanyaan kelima didapatkan hasil 1 dari 5 responden mengatakan sangat setuju jika mudah menggunakan perintah dalam sistem, 3 responden mengatakan bahwa setuju jika mudah menggunakan perintah dalam sistem, dan 1 responden mengatakan ragu ragu jika mudah menggunakan perintah dalam sistem, untuk pertanyaan ke enam didapatkan hasil 5 atau semua responden mengatakan setuju jika perintah yang ditampilkan sesuai dengan fungsi yang diinginkan, untuk pertanyaan ketuju didapatkan hasil 2 dari 5 responden mengatakan sangat setuju jika mudah mencari data yang diinginkan dalam sistem dan 3 responden mengatakan setuju jika mudah mencari data yang diinginkan dalam sistem, untuk pertanyaan ke 8 didapatkan hasil 2 dari 5 responden mengatakan sangat setuju jika sistem ini mempermudah kinerja PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 110 anda, sedangkan 3 responden sisanya mengatakan setuju jika sistem ini mempermudah kinerja anda. Berikut ini adalah grafik dari hasil kuisioner oleh staff administrator bengkel yang akan ditampilkan dalam grafik 5.1, dengan kesimpulan sebagian besar hasil pengujian terhadap responden mengatakan bahwa responden cukup setuju dengan sistem yang mempermudah kinerja mereka. Grafik 5. 1 Grafik Kuisioner PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 111 BAB VI KESIMPULAN DAN SARAN 6.1 Kesimpulan Kesimpulan yang penulis dapat dari pengujian sistem adalah : 1. Sistem Aplikasi Bengkel Motor adalah sistem yang mengaplikasikan protokol Two Phase Locking telah berhasil dibuat dan dapat menangani masalah concurrency yang mungkin terjadi seperti masalah ketergantungan transaksi yang belum dilaksanakan (uncommited dependency problem) dan masalah hilangnya data yang diubah (lost update problem). 2. Dari hasil uji coba oleh administrator bengkel dapat disimpulkan bahwa sebagian besar administrator merasa setuju bahwa aplikasi ini mudah digunakan seperti tampilan sistem yang mudah di pahami, perintah yang mudah dikenali, perintah yang mudah digunakan, dan juga informasi yang diinginkan mudah ditemukan dalam sistem. Secara garis besar sistem aplikasi bengkel motor dapat mempermudah kinerja adminstrator bengkel. 6.2 Saran Berdasarkan hasil pengujian dan hasil kuisioner yang di bagikan dapat di lihat bahwa beberapa pengguna masih merasa ragu ragu dan hanya menjawab setuju untuk kuisioner yang di bagikan, hal ini membuktikan bahwa sistem masih belum maksimal di mata pengguna sistem. Saran dari penulis untuk kedepanya adalah : a. Agar bisa dibuat laporan bulanan untuk stok suku cadang. b. Agar dibuat lebih menarik dari segi tampilan agar pengguna lebih mudah dalam menggunakan sistem. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 112 Daftar Pustaka Brady, M.,& Loonam, J, 2010, Exploring the use of entity-relationship diagramming as a technique to support grounded theory inquiry. Bradford: Emerald Group Publishing. Connolly, T., Begg, C., DATABASE SYSTEM A Practical Approach To Design, Impementation And Management, Addison Wesley, 2002. Darmawan, J.B.Budi, S.T., M.Sc. 2007. Teknik Kontrol Concurrency Menggunakan 2PL dalam MySQL untuk Menangani Masalah dalam Concurrency, Seminar Nasional Sains dan Teknologi Universitas Sanata Dharma, Pemanfaatan Potensi Lokal Untuk Meningkatkan Daya Saing Bangsa, halaman 279 - 287 Oracle Database 10g:PL/SQL Fundamental, Oracle Inc. 2004 Whitten, JeffereyL., Bentley, LonnieD., & with Kecin C Dittman. System Analysis and Design Methods (ed.5). New York : McGraw-Hill.2001 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 113 Lampiran PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Kuisioner Aplikasi Bengkel Motor Kuisioner administrator bengkel (pengguna sistem) Nama : Rizka Berikan tanda centang ( √ ) pada penilaian yang sesuai Penilaian No Kriteria Sangat Setuju 1 2 3 4 5 6 7 8 Apakah merasa mudah melihat dan memahami tampilan sistem Apakah mudah membaca tulisan dalam sistem Apakah mudah memahami petunjuk penggunaan sistem Apakah mudah mengenali setiap perintah dalam sistem Apakah mudah menggunakan perintah dalam sistem (simpan update) Apakah perintah yang di tampilkan sesuai dengan fungsi yang di inginkan Apakah mudah mencari data yang di inginkan dalam sistem Apakah sistem ini mempermudah kinerja anda Setuju Ragu Tidak Ragu Setuju √ √ √ √ √ √ √ √ Saran : Akan lebih bagus jika bisa melihat penjualan barang dalam satu hari Sangat Tidak Setuju PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Kuisioner Aplikasi Bengkel Motor Kuisioner administrator bengkel (pengguna sistem) Nama : Yanto Berikan tanda centang ( √ ) pada penilaian yang sesuai Penilaian No Kriteria Sangat Setuju 1 2 3 4 5 6 7 8 Apakah merasa mudah melihat dan memahami tampilan sistem Apakah mudah membaca tulisan dalam sistem Apakah mudah memahami petunjuk penggunaan sistem Apakah mudah mengenali setiap perintah dalam sistem Apakah mudah menggunakan perintah dalam sistem (simpan update) Apakah perintah yang di tampilkan sesuai dengan fungsi yang di inginkan Apakah mudah mencari data yang di inginkan dalam sistem Apakah sistem ini mempermudah kinerja anda Saran : Font di perbesar Setuju Ragu Tidak Ragu Setuju √ √ √ √ √ √ √ √ Sangat Tidak Setuju PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Kuisioner Aplikasi Bengkel Motor Kuisioner administrator bengkel (pengguna sistem) Nama : Rini Berikan tanda centang ( √ ) pada penilaian yang sesuai Penilaian No Kriteria Sangat Setuju 1 2 3 4 5 6 7 8 Apakah merasa mudah melihat dan memahami tampilan sistem Apakah mudah membaca tulisan dalam sistem Apakah mudah memahami petunjuk penggunaan sistem Apakah mudah mengenali setiap perintah dalam sistem Apakah mudah menggunakan perintah dalam sistem (simpan update) Apakah perintah yang di tampilkan sesuai dengan fungsi yang di inginkan Apakah mudah mencari data yang di inginkan dalam sistem Apakah sistem ini mempermudah kinerja anda Saran : Dibuat lebih efisien lagi Setuju √ √ √ √ √ √ √ √ Ragu Tidak Ragu Setuju Sangat Tidak Setuju PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Kuisioner Aplikasi Bengkel Motor Kuisioner administrator bengkel (pengguna sistem) Nama : Pitoyo Berikan tanda centang ( √ ) pada penilaian yang sesuai Penilaian No Kriteria Sangat Setuju 1 2 3 4 5 6 7 8 Apakah merasa mudah melihat dan memahami tampilan sistem Apakah mudah membaca tulisan dalam sistem Apakah mudah memahami petunjuk penggunaan sistem Apakah mudah mengenali setiap perintah dalam sistem Apakah mudah menggunakan perintah dalam sistem (simpan update) Apakah perintah yang di tampilkan sesuai dengan fungsi yang di inginkan Apakah mudah mencari data yang di inginkan dalam sistem Apakah sistem ini mempermudah kinerja anda Saran : Alur program dibuat lebih simple Font kurang besar Setuju Ragu Tidak Ragu Setuju √ √ √ √ √ √ √ √ Sangat Tidak Setuju PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Kuisioner Aplikasi Bengkel Motor Kuisioner administrator bengkel (pengguna sistem) Nama : Hushin Berikan tanda centang ( √ ) pada penilaian yang sesuai Penilaian No Kriteria Sangat Setuju 1 2 3 4 5 6 7 8 Apakah merasa mudah melihat dan memahami tampilan sistem Apakah mudah membaca tulisan dalam sistem Apakah mudah memahami petunjuk penggunaan sistem Apakah mudah mengenali setiap perintah dalam sistem Apakah mudah menggunakan perintah dalam sistem (simpan update) Apakah perintah yang di tampilkan sesuai dengan fungsi yang di inginkan Apakah mudah mencari data yang di inginkan dalam sistem Apakah sistem ini mempermudah kinerja anda Setuju Ragu Tidak Ragu Setuju Sangat Tidak Setuju √ √ √ √ √ √ √ √ Saran : Kurang cocok dengan patokan harga untuk jasa (tingkat kesulitan tiap kendaraan berbeda)