sistem informasi riwayat servis kendaraan bermotor
TRANSCRIPT
SISTEM INFORMASI RIWAYAT SERVIS
KENDARAAN BERMOTOR(Studi Kasus: Asia Motor, Solo)
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
Vincentya Yuliana Diwa
NIM: 015314059
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
THE INFORMATION SYSTEM OFMOTORCYCLE SERVICE RECORD
(Case Study : Asia Motor,Solo)
SKRIPSI
Proposed To Fulfill One Of The Requirements
To Obtain Bachelor Degree In Information Technology
By:
Vincentya Yuliana Diwa
015314059
DEPARTEMENT OF INFORMATICS ENGINEERINGFACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITYYOGYAKARTA
2007
PERNYATAAN
Dengan ini saya sebagai penulis tugas akhir menyatakan dengan
sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian
karya orang lain, kecuali pemikiran, metode atau hasil penelitian orang lain yang
diambil disebutkan dengan jelas sebagai acuan.
Yogyakarta, Agustus 2007
Vincentya Yuliana Diwa
Penulis
HALAMAN PERSEMBAHAN
Ia Membuat Segala Sesuatu Indah pada Waktunya(Pengkhotbah 3:11)
Karya kecilku ini kupersembahkan untuk:
YESUS KRISTUS DAN BUNDA MARIADia yang Selalu Menuntun aku, dan Berjalan Bersamaku dalam suka dan duka hidup ini dantidak pernah meninggalkanku....
BAPA & MAMAUntuk Segala Cinta dan Kasih Sayang yang Tidak Pernah Berakhir...
NITA & HERRYUntuk Kesempatan menjadi seorang kakak...
KOMUNITAS SANT’EGIDIOUntuk Anugerah terindah menjadi Saudara dan Sahabatku...
HALAMAN MOTTO
Dalam Kehidupan ini kita tidak dapat melakukansesuatu hal yang besar,
Kita hanya bisa lakukan pekerjaan kecil dengan Cinta yang Besar (Mother Teresa)
Buatlah Semua Tangung Jawab Menjadi Kesenangan bukan Beban,Maka Semuanya Menjadi Ringan
(Andrea Riccardi)
Jangan bimbang menghadapi penderitaan karenamakin dekat cita-cita kita tercapai makin berat
penderitaan yang harus kita alami (Soedirman)
ABSTRAKSI
Saat ini Sistem pada Asia Motor masih bersifat manual. Asia motor
belum memiliki sistem yang membantu menangani proses mulai dari pencatatan
workorder, pencarian riwayat service kendaraan pada service-service sebelumnya,
pencarian persediaan stok sparepart, dan pembuatan laporan workorder. Sehingga
diharapkan dengan adanya sistem informasi ini dapat membantu membantu Asia
motor mengatasi masalah-masalah tersebut.
Sistem informasi riwayat servis kendaraan bermotor ini
diimplementasikan dalam lingkungan intranet dengan menggunakan JSP dan
didukung dengan MySQL DBMS.
Hasil akhir yang diperoleh adalah sebuah Sistem Informasi Riwayat
Sevis Kendaraan bermotor yang mampu mengolah data pelanggan,data
kendaraan,data servis,sparepart,workorder dan dapat memberikan informasi
kepada pelanggan tetang servis-servis kendaraan dari pelanggan tersebut,
memberikan informasi stok sparepart dan dapat memberikan laporan workorder.
Tapi sistem informasi ini masih memiliki kekurangan yaitu laporan yang
diberikan belum dilengkapi dengan laporan dalam bentuk grafis.
ABSTRACT
At present system of Asia Motor Solo is still manually. Asia Motor has
not used system yet to process the data from writing workorder, searching the data
of history services of motorcycle from services before, searching stock of spare
part and making report of workorder. By using information system of history
service of motorcycle it is expected that it will help Asia Motor Solo to save the
problems.
The information system of history service of motorcycle is manually
implemented with intranet method, by using JSP(Java Server Pages) that must be
supported by MySQL DBMS.
The achieved end result is an information system of history service
which is able to process the data such as the data of customer, data of service, data
of spare part,data of workorder and the system able to give the report of
workorder. But the information system of history service is still lack of the
graphical report for supervisior.
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa
yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan
Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi
salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.
Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta
beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena
itu, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut
membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,
petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada:
1. Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc. selaku Dekan Fakultas Teknik
Informatika Universitas Sanata Dharma.
2. Ridowati Gunawan,S.Kom.,M.T., selaku Dosen Pembimbing I, dan Daniel
Alvin S.,SE, S.Kom.,AKT, selaku Dosen Pembimbing II, yang telah banyak
membantu terutama dalam memberikan bimbingan, dukungan,masukan dan
waktu, sehingga penulis dapat menyelesaikan laporan tugas akhir ini.
3. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
4. Bapak Alb. Agung Hadhiatma, S.T., M.T., Bapak St. Wisnu Wijaya, S.T.,
M.T, dan Bapak St. Yudianto Asmoro, S.T selaku panitia penguji pada ujian
pendadaran penulis.
5. Seluruh Dosen Universitas Sanata Dharma, khususnya Dosen yang mengajar
di Teknik Informatika, yang telah memberikan dan mengajarkan banyak ilmu
kepada penulis.
6. Pak Bele, Mas Danang, dan seluruh Laboran, yang telah memberikan
bantuannya terutama dalam proses penelitian penulis.
7. Kedua Orangtuaku yang selalu mendoakan,mendorong saya untuk cepat
menyelesaikan skripsi dan selalu mengkwatirkan saya karena belum selesaiJ
8. Nita(‘Ndut), Herry, Kristin(Siti) ,Rensi(cabe merah),K’Mince,Rasna,Ina Pai,
Bp.Degha,sek., Bp.Kadho,sek., Ma Ina,sek., Mama Koro, K’Benya,sek.,
K’Ani,K’steve,K’Yunus,sek,Opa Ibrahim dan semua keluarga di
Sabu,Flores,Jakarta dan dimana saja yang telah membantu,memberi dukungan
dan telah lama menanti untuk penulis selesai..Terima Kasih Banyak.
9. Teman-teman Jurusan Teknik Informatika Angkatan 2001 (A dan B) yang
telah berjuang bersama, khususnya Teman-teman kelas B untuk kekompakkan
kita.
10. Comunità di Sant’Egidio dimana saja, Khususnya di Yogyakarta,
K’John(Pengki) Makasih kak telah menuntun saya di Sant”Egidio, Mas Aan
& Erny, K’Teddy,Gita(thanx ya sering membantu saya selama ini,rambutnya
makin keren aja), Sarinem(Makasih karena telah banyak membantu ,kpn kita
renang lg?), K’stello,K’Marten,Echa,Ochi,Len,Mace,Maya(kucingan yuk!),
kori, Fitri,Obet,Antok,Charles,Mayus(Jemuran),Hery(Baju biru celana
kotak2!!!),Kribo Senior(KSE)kok lu makin kribo n kurus saja??, Kriwil
Senior K’Iwan kita bangun KSE dikupang lagi ya kak, Lori,Ima makasih ya
buat printernya,dan untuk Fanny(Kaji). Terima Kasih Banyak untuk Segala
dukungan,cinta. Saya belajar banyak tentang “Kehidupan, Cinta, Mengasihi”
Dan Saya banyak mendapatkan pengalaman berharga yang tidak cukup
dengan hanya kata “Terima Kasih”.
11. Wirata Boys, Piche Djuang, K’johntor,Bang Gato,Heri,Kribo
Antol,Mayus,Yuris,K’Naga,K’Teddy,Kelik,Dhika,Robert. Makasih ya, kalian
selalu mewarnai hidup saya, selalu membantu dan menjadi sahabat saya sejak
pertama kali. J
12. Narko (Low Profile, High Profit) yang selalu membantu penulis disaat
penulis mengalami kebuntuan, Makasih banget ya narko .
13. Tio, Xteen, Dh35ni dan Nita, yang selalu memberi semangat dan
menghiburku dalam kesedihan. Khususnya untuk Xteen, Mr.Oti untuk
kebersamaan kita dan petualangan kita, yang tak terlupakan, kalian
mengajarkan bagaimana seharusnya menjadi wanita yang “utuh”.
14. Adri, Dami, dan Anan ( ADA Band) Makasih buat kekompakan kita.
Onny,Sigit,Firdaus,Willy,Manu, Terima kasih untuk dukungan dan
bantuannya.
15. Paingan II no 113A, Wiwi, Itha,Delfi, Makasih untuk kebersamaan kita
selama ini, kalian selalu membuat saya tersenyum.
16. HKF (Himpunan Keluarga Flobamora), makasih banyak Johntor Pengki, yang
menyambut saya ketika saya mahasiswa baru,Penink, Kudes, San,
Sil,Maya,Kori,Teteh(thanx girl), K’Lucky, K’Iwan,K’Arot, K’Willy,
K’Selsi,K’Ika.Kapan kita koor lagi??
17. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan
tugas akhir ini yang tidak dapat penulis sebutkan satu-persatu.
Penulis menyadari segala keterbatasan dalam menyelesaikan laporan
tugas akhir ini. Oleh karena itu, penulis ingin menyampaikan mohon maaf apabila
terdapat kesalahan dan kekurangan. Untuk itu, penulis mengharapkan kritik dan
saran yang membangun dari seluruh pihak yang membutuhkan laporan tugas akhir
ini.
Semoga laporan tugas akhir ini dapat memberikan manfaat bagi siapa
saja yang membutuhkannya. Atas segala perhatiannya dan kerjasamanya, penulis
ucapkan terima kasih.
Yogyakarta, Agustus 2007
Vincentya Yuliana Diwa
( Penulis )
DAFTAR ISI
Halaman Judul .............................................................................. i
Halaman Persetujuan .............................................................................. ii
Halaman Pengesahan .............................................................................. iii
Halaman Pernyataan .............................................................................. iv
Halaman Persembahan .............................................................................. v
Halaman Motto .............................................................................. vi
Abstraksi .............................................................................. vii
Abstract .............................................................................. viii
Kata Pengantar .............................................................................. ix
Daftar isi .............................................................................. xiii
Daftar Gambar .............................................................................. xviii
Daftat Tabel .............................................................................. xx
BAB I PENDAHULUAN1.1 Latar Belakang Masalah …………………………………….............. 1
1.2 Batasan Masalah …………………………………….............. 2
1.3 Tujuan Penulisan …………………………………….............. 2
1.4 Rumusan Masalah …………………………………….............. 3
1.5 Metodologi Penelitian …………………………………….............. 3
1.6 Sistematika Penulisan …………………………………….............. 5
BAB II LANDASAN TEORI2.1 Sistem .................................................. 6
2.1.1 Konsep Dasar Sistem .................................................. 6
2.1.2 Karakteristik Sistem .................................................. 6
2.2 Informasi .................................................. 8
2.3.1 Konsep Dasar Sistem Informasi .................................................. 8
2.3.2 Siklus Informasi .................................................. 8
2.3.3 Kualitas Informasi .................................................. 9
2.3.4 Nilai Informasi .................................................. 9
2.3. Sistem Informasi .................................................. 9
2.3.1 Komponen Sistem Informasi .................................................. 10
2.4 Metodologi Pengembangan Sistem .................................................. 11
2.4.1 Use Case Diagram .................................................. 11
2.4.2 ERD (Entity Relation Model) .................................................. 12
2.4.3 Teknik Entity Relation Model .................................................. 13
2.4.4 Data Flow Diagram .................................................. 17
2.5 JSP .................................................. 18
2.5.1 MySQL .................................................. 24
2.6 JDBC .................................................. 26
2.7 History Service .................................................. 28
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1 Sistem yang dikembangkan ............................................................. 30
3.2 Batasan sistem ............................................................. 30
3.3 Analisa kebutuhan sistem ............................................................. 31
3.4 Requirement Analysis ............................................................. 32
3.4.1 Use Case Diagram .............................................. 32
3.5 Context Diagram ............................................................. 33
3.6 Diagram Arus Data ............................................................. 34
3.6.1 Diagram Berjenjang .............................................. 34
3.6.2 Overview Diagram .............................................. 35
3.6.3 DAD Level 1 Proses 1 .............................................. 36
3.6.4 DAD Level 1 Proses 2 .............................................. 37
3.6.5 DAD Level 1 Proses 3 .............................................. 38
3.6.6 DAD Gabungan ............................................. 39
3.7 Logical Design ............................................................. 40
3.7.1 Data Modeling ....................................... 40
3.7.2 Contex Data Modeling ....................................... 40
3.7.3 Key Base Data Modeling ....................................... 40
3.7.4 Fully Atribute Data Model ....................................... 41
3.7.5 Relasi Antar Tabel ....................................... 42
3. 8 Disain Sistem .................................................................................... 43
3.8.1 Disain Database ......................................................... 43
3.9 Desain Input .................................................................................. 47
3.10 Desain Output .................................................................................. 52
BAB IV IMPLEMENTASI SISTEM
4.1 Karakteristik Sistem ....................................................... 54
4.2 Kebutuhan Sistem ....................................................... 54
4.3 Koneksi ....................................................... 55
4.4 User Interface ....................................................... 57
4.4.1 User Interface Proses Login ............................................ 57
4.4.2 User Interface Halaman Admin ............................................ 59
4.4.2.1 User Interface untuk Workorder .......................... 60
4.4.2.2 User Interface ID Card Pelanggan .......................... 68
4.4.2.3 User Interface Melihat Stok .......................... 69
4.4.2.4 User Interface History .......................... 70
4.4.2.5 User Interface Menambah data .......................... 76
4.4.2.6 User Interface Mengedit data .......................... 78
4.4.3 User Interface untuk supervisior ..................................... 83
4.4.3.1 User Interface Laporan Harian .......................... 83
4.4.3.2 User Interface Laporan Bulanan .......................... 86
4.4.3.2 User Interface Laporan Perservice .......................... 87
BAB V ANALISA HASIL IMPLEMENTASI
5.1 Kelebihan Sistem Yang Dibuat ....................................................... 89
5.2 Kekurangan Sistem Yang Dibuat ....................................................... 89
5.3 Analisa Manfaat ....................................................... 90
BAB VI PENUTUP
6.1 Kesimpulan .......................................................................................... 91
6.2 Saran .......................................................................................... 91
DAFTAR PUSTAKA .......................................................................................... 92
DAFTAR GAMBAR
Gambar Keterangan Halaman2. 1 Simbol Use Case 112. 2 Simbol Aktor 122. 3 Contoh dari E-R Diagram 132. 4 Contoh dari Entity 132. 5 Contoh dari Atribut 142. 6 Contoh dari identifier atau key 152. 7 Contoh dari Relasi 152. 8 Notasi dari Cardinality 162. 9 Simbol Proses menurut Gane dan Sarson 172. 10 Simbol dari arus data 172. 11 Simbol kesatuan luar menurut Gane dan Sarson 182. 12 Simbol penyimpanan data menurut Gane dan Sarson 182. 13 Proses pada JSP 193. 1 Use Case Diagram 323. 2 Context Diagarm 333. 3 Gambar Bagan Berjenjang 343. 4 Overview Diagram Level 0 353. 5 Overview Diagram Level 1 Proses Login 363. 6 Overview Diagram Level 1 Proses Update data 373. 7 Overview Diagram Level 1 Proses Workorder 383. 8 DAD Gabungan 393. 9 Context Data Model 403. 10 Key Base Data Model 403.11 Fully Attribute Data Model 413. 12 Relasi Antar tabel 424. 1 Gambar User Interface Proses Login 574. 2 Gambar User Interface Proses Login Admin 584. 3 Gambar User Interface Halaman Menu Admin 594. 4 Gambar User Interface Workorder 604. 5 Gambar User Interface Lihat Data Pelanggan 614. 6 Gambar User Interface Lihat Data Kendaraan 624. 7 Gambar User Interface Form Pertama Workorder 634. 8 Gambar User Interface Form Pengisian Workorder 654. 9 Gambar User Interface Faktur Workorder Customer 674.10 Gambar User Interface Cetakan Workorder Customer 684. 11 Gambar User Interface ID Card Customer 684. 12 Gambar User Interface Lihat Stok Sparepart 694.13 Gambar History kendaraan 71
4. 14 Gambar History kendaraan pada tanggal tertentu 734. 15 Gambar Detail History Kendaraan 744. 16 Gambar Tambah Customer 774. 17 Gambar Lihat Data Customer 794. 18 Gambar Form Pengisian Data Customer 804. 19 Gambar Hapus Data Customer 824. 20 Gambar User Interface halaman Supervisior 834. 21 Gambar User Interface Laporan Harian 844. 22 Gambar Cetakan Laporan Harian 854. 23 Gambar User Interface Laporan Bulanan 864. 24 Gambar Cetakan Laporan Bulanan 864. 25 Gambar Laporan Perservice 874. 26 Gambar Laporan Cetakan Perservis 88
DAFTAR TABEL
Tabel Keterangan Halaman3.1 Tabel Proses Modeling 333.2 Tabel Customer 443.3 Tabel Kendaraan 443.4 Tabel Jenis Motor 443.5 Tabel Workorder 453.6 Tabel Service 453.7 Tabel Sparepart 453.8 Tabel Mekanik 463.9 Tabel Detail WO 46
BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
Saat ini teknologi informasi mengalami kemajuan yang sangat pesat,
baik dalam bidang komputer yang meliputi perangkat keras maupun perangkat
lunak. Kebutuhan akan informasi yang akurat sangat diperlukan. Kebutuhan akan
informasi ini menjadi keharusan yang sangat mempengaruhi tingkat efisiensi dan
efektifitas kerja pada semua bidang. Untuk kebutuhan tersebut pengembangan
sistem yang terencana dengan baik akan memberikan manfaat dalam peningkatan
unjuk kerja suatu badan organisasi atau perusahaan.
Sistem pada Asia Motor masih bersifat manual. Mulai dari pencatatan
workorder, pencarian riwayat service kendaraan pada service-service sebelumnya,
pencarian persediaan stok sparepart. Hal ini membuat pekerjaan pada Asia Motor
kurang efisien dan efektif.
Untuk mengatasi kelemahan-kelemahan yang ada maka salah satu
alternatif yang dilakukan adalah dengan membangun suatu sistem baru. Dengan
sistem ini maka dapat membantu baik customer maupun Asia Motor sendiri
dimana sistem ini dapat mengetahui kerusakan atau service apa yang dilakukan
pada kendaraan customer pada service-service sebelumnya. Dengan sistem ini
bisa mengetahui stok dari spare part yang digunakan, apakah persediaannya masih
ada atau tidak.
Sistem ini akan menghasilkan report harian dimana dapat mengetahui
berapa banyak workorder yang diterima secara keseluruhan atau per jenis order
yang masuk, dan juga mampu mencetak ID Customer.
1.2. BATASAN MASALAH
Agar perancangan cakupan sistem ini dapat dilakukan secara tepat, maka
dilakukan pembatasan cakupan sistem antara lain sebagai berikut.
1. Kasus yang dipilih adalah kasus yang berada dalam lingkungan bagian
transaksional service pada Asia Motor, Solo dan tidak membahas
tentang pembelian stok, diasumsikan stok sudah tersedia.
2. Sistem Informasi ini hanya sebatas tentang riwayat kendaraan.
3. Sistem ini hanya membahas pembayaran dengan tunai.
4. Perancangan sistem ini hanya berbasiskan single-user.
5. Tidak membahas masalah keamanan.
6. Tidak membahas masalah human error.
1.3. TUJUAN PENELITIAN
Adapun pembuatan Sistem Informasi riwayat servis kendaraan bermotor
ini bertujuan untuk:
1. Membangun suatu sistem informasi yang dapat membantu dan
mengoptimalkan kinerja Asia Motor untuk mengolah data-data yang
masih secara manual.
2. Meningkatkan pelayanan kepada customer misalkan dalam mengetahui
riwayat dari kendaraannya pada service sebelumnya.
1.4. RUMUSAN MASALAH
Pada pembuatan tugas akhir ini rumusan masalahnya adalah bagaimana
membangun suatu sistem informasi untuk mengetahui riwayat dari suatu
kendaraan yang diservis, mengetahui persediaan sparepart kendaraan, membuat
workorder service, membuat report harian dan mencetak ID Customer pada Asia
Motor, Solo.
1.5. METODOLOGI PENELITIAN
Metodologi yang digunakan dalam penyusunan tugas akhir ini adalah
sebagai berikut:
1. Peninjauan (Survey) lapangan
Mencari informasi dan melakukan wawancara langsung dengan
pemilik toko dan karyawan tentang proses transaksi dan service secara
manual pada Asia Motor, Solo.
2. Studi literatur
Mempelajari dan memahami konsep-konsep tentang Sistem Informasi
riwayat servis kendaraan bermotor dan mempelajari konsep-konsep
tentang perangkat lunak yang terlibat yaitu JSP dan MySQL.
3. Metode pengembangan sistem
Sistem ini dikembangkan dengan menggunakan metode
pengembangan sistem SDLC (System Development Life Cycle).
Metodologi ini terbagi menjadi beberapa fase yaitu :
a. Fase Analisis Sistem (Analysis Phase)
Analisis sistem yang dimaksud untuk mengidentifikasi dan
mengevaluasi permasalahan-permasalahan yang dihadapi dan
kebutuhan-kebutuhan yang diharapkan sehingga dapat
menyelesaikan hambatan-hambatan yang terjadi kearah
perbaikan sistem.
b. Fase Rancangan (Design Phase)
Merupakan langkah multi proses yang memusatkan kerja pada
perancangan sistem secara umum misalnya perancangan menu,
perancangan tampilan dan user interface.
c. Fase Implementasi (Implementation Phase)
Setelah melakukan rancangan sistem yang diinginkan, maka
hasil rancangan tersebut diimplementasikan, yang mana
rancangan tersebut diterjemahkan ke dalam bahasa yang dapat
dimengerti mesin.
d. Fase Pengujian (Testing Phase)
Pengujian ini dimaksudkan untuk menguji apakah hasil sudah
selesai dengan rancangan yang diinginkan dan mencari segala
kesalahan yang mungkin terjadi.
1.6. SISTEMATIKA PENULISAN
BAB I PENDAHULUAN
Pada bab ini berisi tentang latar belakang masalah, batasan masalah, tujuan
dan manfaat penelitian, rumusan masalah, dan metodologi penelitian yang
digunkana serta sistematika isi penulisan laporan.
BAB II LANDASAN TEORI
Pada bab ini berisi tentang dasar teori yang mana akan digunakan untuk
pembahasan dalam penulisan skripsi ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini berisi tentang cara penerapan konsep dasar yang telah diuraikan
pada bab sebelumnya untuk menganalisa dan merancang sebuah sistem baik
berupa perancangan database, perancangan input, perancangan output maupun
perancangan user interface.
BAB IV IMPLEMENTASI SISTEM
Pada bab ini akan berisi tantang implementasi dari perancangan yang telah
dibuat yang meliputi cara kerja program yaitu berupa hasil input program
maupun hasil output program.
BAB V ANALISA HASIL
Pada bab ini berisi tentang kelebihan dan kekurangan pada sistem yang telah
dibuat.
BAB VI KESIMPULAN DAN SARAN
Pada bab ini berisi tentang kesimpulan dan saran dari penulisan tugas akhir
yang disusun.
BAB II
LANDASAN TEORI
Secara garis besar yang akan diuraikan dalam landasan teori adalah konsep
mengenai Sistem Informasi, History Service dan pemrograman JSP serta
MySQL.
2.1 SISTEM
2.1.1 Konsep Dasar Sistem
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk
mencapai suatu tujuan tertentu.1 Sebuah perusahaan juga merupakan suatu sistem.
Komponen atau unsur-unsur di dalamnya seperti pemasaran,penjualan, penelitian,
pembukuan, dan personalia yang mana semuanya bekerja sama untuk mencapai
keuntungan baik bagi para pekerjanya maupun bagi pemilik perusahaan.
2.1.2 Karakteristik Sistem
Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu, yaitu
mempunyai komponen-komponen(components), batas sistem (boundary),
lingkungan luar sistem (environment), penghubung (interface), masukkan (input),
keluaran (output), pengolah (proses) dan sasaran (objectives) atau tujuan (goal).
1) Komponen Sistem
Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi,
yang artinya saling bekerja sama membentuk satu kesatuan.
1 Jogiyanto
Komponen-komponen sistem atau elemen-elemen sistem dapat berupa
suatu subsistem atau bagian-bagian dari sistem.
2) Batas sistem
Batas sistem (boundary) merupakan daerah yang membatasi antara
suatu sistem dengan sistem yang lainnya atau dengan lingkungan
luarnya. Batas sistem itu memungkinkan suatu sistem dipandang
sebagai satu kesatuan. Batas suatu sistem menunjukkan ruang lingkup
(scope) dari sistem tersebut.
3) Lingkungan Luar Sistem
Lingkungan luar (environment) dari suatu sistem adalah apapun diluar
batas dari sistem yang mempengaruhi operasi sistem.
4) Penghubung Sistem.
Penghubung (interface) merupakan media penghubung antara satu
subsistem dengan subsistem lainnya. Melalui penghubung ini
memungkinkan sumber-sumber daya mengalir dari satu subsistem ke
subsistem lainnya.
5) Masukkan Sistem
Masukan (input) adalah energi yang dimasukkan ke dalam sistem.
Masukan dapat berupa masukan perawatan (maintenance input) dan
masukan sinyal (signal input) agar sistem tersebut dapat beroperasi.
6) Keluaran Sistem
Keluaran (output) adalah hasil dari energi yang diolah dan
diklasifikasikan menjadi keluaran yang berguna. Keluaran dapat
merupakan masukan untuk subsistem yang lain.
7) Pengolah Sistem
Bagian pengolah sistem ini merupakan bagian yang akan merubah
masukkan menjadi keluaran.
8) Sasaran Sistem
Suatu sistem pasti mempunyai tujuan (goal) atau sasaran (objective).
Jika suatu sistem tidak mempunyai sasaran, maka operasi sistem tidak
akan ada gunanya. Sasaran dari sistem sangat menentukan sekali
masukan yang dibutuhkan sistem dan keluaran yang akan dihasilkan
sistem. Sistem dikatakan berhasil bila mengenai sasaran atau
tujuannya.
2.2. Informasi
2.2.1 Konsep Dasar Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan
lebih berarti bagi yang menerimanya.2
2.2.2 Siklus Informasi
Data yang diolah melalui suatu model menjadi informasi, penerima
kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan
tindakan, yang berarti menghasilkan suatu tindakan lain yang akan membuat2 Jogiyanto,
sejumlah data kembali. Data tersebut akan ditangkap sebagai input, diproses
kembali lewat suatu model dan seterusnya membentuk suatu siklus. Siklus ini
disebut dengan siklus informasi (information cycle). Siklus ini juga disebut
dengan siklus pengolahan data (data processing cycles).
2.2.3 Kualitas Informasi
Kualitas dari suatu informasi (quality of information) tergantung dari tiga
hal antara lain :
1. Akurat yang berarti informasi harus bebas dari kesalahan-kesalahan
dan tidak menyesatkan dan juga harus jelas mencerminkan maksudnya.
2. Tepat pada waktunya, berarti informasi yang datang pada penerima
tidak boleh terlambat. Karena informasi merupakan landasan di dalam
pengambilan keputusan.
3. Relevan, berarti informasi tersebut mempunyai manfaat untuk
pemakainya.
2.2.4. Nilai Informasi
Informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan
dengan biaya mendapatkannya.
2.3.SISTEM INFORMASI
2.3.1 Konsep Dasar Sistem Informasi
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi,
bersifat managerial dan kegiatan startegi dari suatu organisasi dan menyediakan
pihak luar tertentu dengan laporan-laporan yang diperlukan.3
2.3.2. Komponen Sistem Informasi
Dalam Sistem Informasi terdapat 6 blok atau komponen yang masing-
masing saling berinteraksi satu dengan yang lainnya membentuk satu
kesatuan untuk mencapai sasarannya. Keenam blok tersebut adalah
sebagai berikut :
a. Blok Masukan
Input ini termasuk metode-metode dan media untuk menangkap
data yang akan dimasukkan, yang dapat berupa dokumen-dokumen dasar.
b. Blok Model
Blok ini terdiri dari kombinasi prosedur, logika dan model
matematik yang akan memanipulasi data input dan data yang tersimpan di
basis data dengan cara yang sudah tertentu untuk menghasilkan keluaran
yang diinginkan.
c. Blok Keluaran
Merupakan informasi yang berkualitas dan dokumentasi yang
berguna untuk semua tingkatan manajemen serta semua pemakai sistem.
d. Blok Teknologi
Teknologi digunakan untuk menerima input, menjalankan model,
menyimpan dan mengakses data, menghasilkan dan mengirimkan keluaran
3 Robert A. Leitch/K. Roscoe Davis, Accounting Information System, (New Jersey: Prentice Hall,1983), hal. 6.
dan membantu pengendalian dari sistem secara keseluruhan, yang terdiri
dari 3 bagian utama, yaitu teknisi, perangkat lunak, dan perangkat keras.
e. Blok Basis Data
Merupakan kumpulan dari data yang saling berhubungan satu
dengan yang lainnya, untuk keperluan penyediaan informasi lebih lanjut.
Basis data diakses dan dimanipulasi dengan menggunakan perangkat lunak
paket yang disebut dengan DBMS (Database Management System).
f. Blok Kendali
Blok kendali perlu dirancang dan diterapkan untuk mencegah atau
mengatasi kesalahan-kesalahan yang dapat merusak sistem informasi.
2.4 METODOLOGI PENGEMBANGAN SISTEM
2.4.1 Use Case Diagram
Use case diagram adalah sebuah diagram yang menggambarkan interaksi
antara sistem dan eksternal sistem dan pemakai. Use case merupakan bagian dari
keseluruhan sistem. Digambarkan secara grafik dengan elips yang horizontal
dengan nama dari use case tertera diatas, dibawah atau di dalam ellips. Gambar
2.1 merupakan simbol use case :
Gambar 2.1. Simbol Use Case
Simbol Use case
Aktor merupakan segala sesuatu yang dibutuhkan untuk berinteraksi dengan
sistem untuk mengubah informasi. Dapat berupa orang, organisasi atau sistem
informasi yang lain atau juga suatu waktu kejadian. Gambar 2.2 merupakan
simbol dari actor :
Gambar 2.2. Simbol Aktor
Use case depends on relationship merupakan sebuah relasi use case yang
menentukan bahwa use case yang lain harus dibuat sebelum use case yang
sekarang. Digambarkan sebagai anak panah yang dimulai dari satu use case dan
menunjuk ke use case yang depend on kepadanya. Setiap relasi depend on diberi
label “<<depend on>>”
2.4.2 ERD (Entity Relationship Diagram)
ERD merupakan sebuah data model yang memanfaatkan beberapa notasi
untuk menggambarkan data dalam entity dan relasi yang dijelaskan oleh data.
Data model adalah sebuah teknik untuk mengorganisasikan dan
mendokumentasikan data dari sistem. Juga disebut dengan database modeling.
Simbol Actor
Gambar 2.3 merupakan contoh E-R diagram
Gambar 2.3. Contoh dari E-R Diagram
Entity adalah sebuah kumpulan dari orang, tempat, objek, kejadian atau konsep
yang diperlukan untuk menyimpan data. Nama entity berupa kata benda tunggal
(singular noun). Gambar 2.4 merupakan contoh dari entity student
Gambar 2.4 Contoh dari Entity
Atribut merupakan sebuah properti yang deskriptif atau karakteristik dari sebuah
entity. Sinonimnya adalah element, property, dan field.
Gambar 2.5 merupakan contoh dari atribut student
Gambar 2.5 Contoh dari Atribut
Key merupakan sebuah atribut atau kelompok atribut yang diasumsikan memiliki
nilai yang unik untuk setiap instance. Sering juga disebut dengan identifier.
1. Concatenated key merupakan sekelompok atribut yang memiliki
identitas instance dari sebuah entity yang unik Sinonimnya composite
key dan compound key.
2. Candidate key merupakan satu dari nilai key yang akan berfungsi
sebagai primary key dari sebuah entity. Sinonimnya adalah candidate
identifier
3. Primary key merupakan sebuah candidate key yang paling umum
digunakan untuk mengidentifikasikan secara unik instance dari entity
yang tunggal.
4. Alternate key merupakan sebuah candidate key yang tidak dapat dipilih
untuk menjadi primary key. Sinonimnya adalah secondary key.
Gambar 2.6 merupakan contoh dari identifier atau key
Gambar 2.6. Contoh dari identifier atau key
Relationship adalah sebuah asosiasi bisnis normal yang ada antara satu atau lebih
entity. Relasi mungkin juga mewakili suatu kejadian yang menghubungkan antara
entity atau logika gabungan antara entity. Gambar 2.7 merupakan contoh dari
relasi
Gambar 2.7. Contoh dari Relasi
Cardinality merupakan minimum dan maksimum kejadian dari sebuah entity yang
dihubungkan dengan kejadian tunggal dari entity yang lain. Karena seluruh relasi
adalah bidirectional maka cardinality haru didefinisikan pada kedua direction
untuk setiap relasi.
Student CurriculumIs being studied by is enrolled in
Gambar 2.8 merupakan notasi dari cardinality.
Gambar 2.8. Notasi dari Cardinality
Foreign key adalah sebuah primary key dari sebuah entity yang digunakan oleh
entity yang lain untuk mengidentifikasikan instance dari sebuah relasi.
Nonspecific relationship merupakan relasi dimana banyak instance dari sebuah
entity berasosiasi dengan banyak instance dari entity yang lainnya. Disebut juga
dengan relasi many-to-many relationship. Nonspecific relationship harus
diselesaikan. Kebanyakan dari nonspecific relationship diselesaikan dengan
sebuah associative entity.
Key-base data model bertujuan untuk mengeliminasikan nonspecific relationship
jika ada, menambah asosiatif entity termasuk primary dan alternate key, dan
kardinalitas yang tepat.
Fully attributed data model bertujuan untuk memasukkan seluruh atribut.
2.4.3 DFD (Data Flow Diagram)
Data Flow Diagram merupakan sebuah model proses yang digunakan
untuk mengambarkan aliran dari data yang melalui sebuah system dan proses
yang dibentuk oleh sistem.
DFD terdiri dari 4 buah simbol yaitu :
1. Proses (Process)
Proses adalah kerja yang dilakukan oleh sistem dalam merespon arus data
yang datang atau suatu kondisi.Gambar 2.3 merupakan simbol proses
menurut Gane dan Sarson :
Gambar 2.9 Simbol Proses menurut Gane dan Sarson
2. Arus data (Data Flow)
Arus data adalah data sebagai masukan ke proses atau keluaran dari
sebuah proses.
Gambar 2.6 merupakan simbol dari arus data :
Gambar 2.10 Simbol dari arus data
Arus data adalah data yang bergerak.
Arus data juga digunakan untuk mewakili creation, reading, deleting, atau
updating dari data dalam file atau database (disebut datastore atau
penyimpanan data).
Nama Proses
Nama Arus Data
3. Kesatuan Luar (External Agent).
Kesatuan luar adalah orang, unit organisasi, sistem atau organisasi luar
yang berinteraksi dengan sistem. Disebut juga dengan external entity.
Gambar 2.5 merupakan simbol kesatuan luar menurut Gane dan Sarson :
4. Penyimpanan data (Data Store)
Penyimpanan data digunakan untuk menyimpan data hasil proses maupun
menyediakan data untuk diproses. Sinonim dengan file dan database.
Gambar 2.6 merupakan simbol penyimpanan data menurut Gane dan
Sarson
Gambar 2.12 Simbol penyimpanan data menurut Gane dan Sarson
2.5. Java Sever Pages (JSP)
Java Server Pages(JSP) merupakan perluasan dari spesifikasi Java
Servlet, yang bertujuan untuk menyederhanakan dalam pengembangan suatu
content yang dinamis. JSP merupakan bagian dari teknologi J2EE,bersama-sama
dengan Servet, EJB, JNDI, XML. JSP dan Servlet bekerja dalam suatu
lingkungan web container yang
Menyediakan koneksi dan service, sedangkan JSP dan Servlet mengontrol
Penyimpanan data
Namakesatuan luar
Gambar 2.11 Simbol kesatuan luar menurut Gane dan Sarson
presentasi data yang dihasilkan dari suatu proses untuk dikirimkan ke client.
Server yang menangani permintaan JSP seperti sebuah kompiler halaman yang
menggabungkan template HTML dengan kode Java yang dinyatakan pada elemen
JSP.
Sebuah JSP ketika akan dijalankan, web container akan memeriksa status
class servlet terakhir, jika belum Ada atau berstatus lama, maka container akan
melakukan kompilasi terhadap file JSP untuk dihasilkan suatu servlet yang
menerapka interface HttpJspPage berdasar isi dari halaman JSP. Dari Servlet
inilah kemudian dijalankan method _jspService untuk menghasilkan response
dengan menggunakan class HttpServletRequest dan HttpServletResponse.
Untuk dapat menggunakan JSP, terdapat dua package tambahan lain:
• package javax.servlet.jsp
berisi kelas-kelas dan method utama JSP
• package javax.servlet.jsp.tagtest
Gambar 2.13 Proses pada JSP
berisi kelas-kelas dan method untuk custom tag
Tag asli JSP pada dokumen HTML adalah:
2.5.1 Objek Implisit
Setiap halaman JSP berisi variabel penunjuk ke objek servlet yang disebut
objek implisit yang sudah terdefinisikan dan siap digunakan. Variabel ini
memiliki ruang lingkup:
Berikut adalah objek implisit yang disediakan:
2.5.2 Directive
page Directive
Mendefinisikan atribut yang digunakan oleh seluruh halaman JSP. Contoh
pemakaiannya :
<%@ page language=”java” import=”java.util.*, java.io.*” %>
Beberapa atribut directive page
Include Directive
untuk memasukan text dari suatu file lain. Berikut bentuk elementnya
<%@ include file=”/xxxx/cr.txt” %>
Tag-tag kompatibel dengan XML
Tag-tag asli JSP dapat dituliskan dengan bentuk elemen XML, yang
menggunakan namespace “jsp:” untuk tiap elemennya.
Berikut adalah persamaan tag JSP dengan XML:
Terdapat perbedaan jika Anda menggunakan <%@ include file=”url” %>
dengan <jsp:include page=”url” />, antara lain :
untuk tag <%@ include file= url %> :
• file dibaca dan disisipkan pada halaman JSP sebelum halaman
diterjemahkan
• file dapat berisi JSP
untuk tag <jsp:include page= url /> :
• hasil dari url di sisipkan ke dalam halaman JSPpada saat request
• file yang diinclude tidak dapat berisi JSP
2.6. MySQL
MySQL adalah multi user database yang menggunakan bahasa SQL
(Structured Query Language). MySQL mampu untuk menangani data yang cukup
besar, karena menerapkan suatu metode yang sangat cepat dalam hal relasi antar
tabel databasenya.
MySQL juga memproses bahasa yang sering digunakan untuk mengakses
basis data, yaitu:
1. DDL (Data Definition Language)
Bahasa ini digunakan untuk membuat tabel baru, membuat indeks,
mengubah tabel. Perintah-perintah yang digunakan dalam MySQL untuk
mengerjakan itu semua yaitu:
a. Create tabel ( Namafield1 typedata yang
digunakan(ukuran yang disediakan), Namafield2
typedata(ukuran yang disediakan),...);
Jika field tersebut merupakan primary key, maka dibelakang tipe
data ditambahkan “primary key”. Selain itu jika field tersebut
berupa angka dan tidak boleh kosong untuk pengisian
pertama,maka dibelakang primary key ditambahkan “not null
auto_increment”.
b. Merubah tabel
Untuk merubah suatu tabel, dalam hal ini field-fieldnya maupun
tipe datanya, maka digunakan perintah:
Alter table namatabel perintah namafield tipedata;
Perintah disini adalah perintah yang akan dikerjakan misalnya:
a. add : untuk menambahkan field.
b. modify : untuk memodifikasi range suatu field.
c. drop: untuk mendelete suatu field.
Tetapi jika web server yang digunakan adalah apache, maka
MySQL sudah disediakan beserta perintah-perintah untuk
membuat dan memodifikasi suatu tabel.
2. DML (Data Manipulation Language)
Merupakan bahasa yang bertujuan memudahkan pemakai untuk
mengakses data sebagaimana direpresentasikan oleh model data,
misalnya untuk menyisipkan, menambah, menghapus, dan mengubah
data dalam suatu database. Dalam MySQL perintah-perintah yang
digunakan, yaitu:
a. Menambah
INSERT INTO namatabel (namafield1, namafield2,...)
VALUES ( nilai field1 nilai field2 ,...);
b. Menghapus
DELETE FROM namatabel WHERE kriteria;
c. Mengubah
UPDATE namatabel SET namafield=nilaibaru,...;
2.7. Koneksi Java ke Server MySQL ( JDBC )
Java Database Connectivity(JDBC) merupakan teknologi inti didalam Java
untuk mengakses dengan database. JDBC digunakan baik dalam aplikasi desktop,
aplikasi Web maupun aplikasi enterprise.
JDBC menyediakan satu cara untuk mengakses database secara
independent terhadap database vendor. Melalui JDBC kita bisa mengakses
mySQL dengan program yang sama ,mengakses Oracle, UDB2 dan PostgreSQL.
Dimana mendukung semangat Java untuk write once, run anywhere.
Kunci utama dari JDBC adalah JDBC Driver yang bertanggung jawab
menjadi jembatan antara program Java dan database tertentu. JDBC Driver untuk
mySQL, misalnya bertanggung jawab untuk menjembatani antara program yang
ditulis dengan Java ke mySQL RDBMS.
Untuk mengakses database melalui JDBC, pertama perlu mendapatkan
obyek Connection. Selanjutnya baru bisa mendapatkan obyek-obyek seperti
Statement dan PreparedStatement. Melalui Statement, dan PreparedStatement,
kita bisa mengirimkan perintah SQL ke database seperti INSERT, SELECT,
UPDATE dan DELETE.
Untuk membuat JDBC connection ke mySQL database server yaitu:
1. Buat direktori untuk bekerja, misalnya /home/lab/myjava. Setelah itu kita
membutuhkan JDBC Driver ke mySQL. Misalnya file JDBC Driver yabg
digunakan adalah /home/lab/mm.mysql-2.0.8/mm.mysql-2.0.8-bin.jar
2. Tulis ConnectionAPP.java, yang disimpan dalam folder yang sudah
dipersiapkan.
Import java .io.*;Import java.sql.*;
public class ConnectionApp{ public static void main ( String [] args ) { Connection conn = null ; try {
String jdbcDriver = “org.gjt.mm.mysql.Driver”; Class.forName ( jdbcDriver ) ; String url = “jdbc : mysql : // localhost : 3306 /MYAPP_DB”; String user = “ekobs” ; String pwd = “j2ee” ;
System.out.println ( “mencoba membangun connection ke ‘ “ +url + “ ‘ dengan user ‘ “ + user + “ ‘ dan password ‘ “ + pwd + “ ‘ … “ ) ; conn = DriverManager.getConnection ( url, user ,pwd ) ; Sytem.out.println ( “ Success.” ) ; } cacth ( ClassNotFoundException cnfe ) { cnfe.printStackTrace ( ) ; } cacth ( SQLException sqle ) { sqle.printStackTrace ( ) ;
} finally { try { if ( conn ! = null ) { System.out.println ( “ Menutup connection.“ ) ; Conn.close ( ) ; } } catch ( SQLException sqle ) { sqle.printStackTrace ( ) ; } } }}
3. Buka sebuah terminal dan rubah directory ke directory kerja tersebut
4. kemudian kompile
$ javac ConnectionApp.java
kemudian akan menghasilkan ConnectionApp.java
5. SetCLASSPATH agar membuat driver yang dibutuhkan untuk mengakses
mySQL database server…..
$ export CLASSPATH =.$ export CLASSPATH=$CLASSPATH:/home/lab/mm.mysql-2.0.8/mm.mysql-2.0.8-bin.jar
6. Launch…
$ java ConnectionAppMencoba membangun connection ke‘jdbc:mysql://localhost:3306/MYAPP_DB’ dengan user ‘ekobs’ danpassword ‘j2ee’…..Success.Menutup connection.
2.8. History Service
Pada saat ini pelayanan kepada customer menjadi perhatian. Customer
sering ingin untuk mengetahui biaya dari servie terdahulu, dan beberapa
permintaan seperti anggaran yang telah diberikan kepada customer. Banyak
bengkel reparasi yang mengirimkan memo ke customer untuk mengingatkan
mereka untuk tune up, ganti oli dll.
2.8.1. Order servis Customer
Dokumen utama akuntansi yaitu order servis customer. Ketika kendaraan
datang, nomor serial kendaraan tersebut dimasukkan ke dalam komputer.
Kemudian servis atau history servis dari kendaraan yang ada pada komputer
ditampilkan dan informasi yang berhubungan dalam servis di print .
Penasehat servis kemudian meneruskan order servis ke mekanik yang
memeriksa kendaraan dan menulis kerja yang dilakukan dan spare part yang
dibutuhkan untuk servis tersebut. Penasehat servis kemudian menyiapkan dan
mengkalkulasikan kemudian mengontak customer untuk melakukan persetujuan.
Ketika persetujuan sudak komplit maka order servis akan dikembalikan ke
customer untuk pembayaran, sedangkan copian yang lain disimpan pada
departemen servis dan kopian ketiga di kirim ke kantor akuntansi.
Ketika spare part, asesoris dan material dipakai berhubungan dengan servis,
maka semuanya akan dicatat/direcord oleh bagian spare part pada suatu hard
copy. Upah juga tenaga kerja dimasukkan pada servis order.
BAB III
ANALISA DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas tentang analisis perangkat lunak (PL) yang akan
dibangun untuk Sistem Informasi riwayat servis kendaraan bermotor. Dimana
pada tahap analisa ini dilakukan pendefinisian dan pemodelan sistem yang akan
dibangun. Yang harus diperhatikan dalam pendefinisian sistem tersebut, yaitu :
3.1 Sistem yang dikembangkan
Sistem Informasi (SI) yang ingin dikembangkan di sini adalah
Sistem Informasi riwayat servis kendaraan bermotor dimana arsitektur dari
DBMS, basis data dan aplikasi ditempatkan pada mesin komputer yang
sama. Pemakai dapat menggunakannya di setiap saat juga hanya satu orang
(single user). Dimana program yang dibuat untuk menampikan history dari
kendaraan yang di servis, dimana histori yang telah tersimpan di database
ini berguna untuk servis berikutnya. Sistem ini mengambil kasus di Asia
Motor, Solo.
3.2 Batasan sistem
Batasan yang dimiliki oleh Sistem Informasi ini adalah :
1. Sistem Informasi riwayat servis kendaraan bermotor ini memberikan
fasilitas kepada Administrator/kasir untuk memberikan informasi
tentang hal-hal yang berhubungan dengan servis kendaraan pada servis-
servis sebelumnya. Tanpa mengikutsertakan Sistem Akutansinya.
2. Kegiatan-kegiatan yang dilakukan pada Sistem Informasi riwayat servis
kendaraan bermotor ini yaitu Manajemen servis, histori customer .
3. Adiministrator bertugas untuk memasukkan data customer, sparepart,
mekanik dan data-data servis tersebut serta membuat laporan dari servis.
Sedangkan supervisior dapat melihat laporan workorder pertanggal atau
untuk melihat workorder perjenis servis.
4. Sistem ini mengangsumsikan jumlah stok sudah ada tanpa
mengikutsertakan proses pembelian stok
5. Sistem ini hanya berbasiskan single-user.
3.3 Analisis kebutuhan sistem
Analisis kebutuhan sistem di sini dimaksudkan untuk mengumpulkan
kebutuhan para pengguna yang akan dipenuhi dalam Sistem Informasi ini.
1. Analisa sistem
Berdasarkan analisis yang telah dilakukan maka disimpulkan
bahwa yang diperlukan dalam Sistem Informasi riwayat servis
kendaraan bermotor ini adalah:
a. Dapat memberikan informasi histori dari kendaraan.
b. Dapat memberikan laporan servis perhari atau per jenis order.
c. Dapat memberikan kemudahan bagi administrator untuk mengetahui
persediaan sparepart yang digunakan.
2. Analisis Administrator dan Operator
Sistem ini masih digunakan oleh dua pengguna yaitu
Administrator/kasir yang bertugas dalam memasukkan data, melihat
histori kendaraan dan supervisior dimana memiliki hak untuk melihat
laporan workorder pertanggal tertentu atau perjenis servis.
3.4 Requirement Analysis
3.4.1. Pemodelan Use Case (Use Case modelling)
Pemodelan ini digambarkan dalam bentuk Diagram Use Case yang
merupakan suatu analisis untuk menggambarkan fungsi-fungsi apa saja yang
disediakan oleh sistem.
Gambar 3.1 Diagram Use Case Pengguna Sistem Informasi riwayat servis kendaraan
Login
Kasir/Administrator
Laporan WorkorderPertanggal
Merekam workorder
Melihat riwayatService
Supervisior
Update dataKendaraan
Update dataCustomer
Update Datamekanik
Update Data service
Update dataJenis Motor
Update dataSparepart
Laporan WorkorderPerorder service
Melihat Stok Sparepart
<< depend on >>
3.5. Context Diagram
Context Diagram menggambarkan suatu proses yang mewakili proses
dari seluruh sistem dan menggambarkan hubungan input dan output antara
sistem dan kesatuan luar.
Selanjutnya, dari context diagram tersebut, dapat diperjelas mengenai
proses yang dilakukan dalam diagram berjenjang.
Input dan output yang terkait dengan external entity yaitu :
Entitas Input Output
Kasir/Administrator Data customer, data kendaraandata mekanik,data jenis motor,data sparepart, data service
Data seluruh Workorder Data Stok, IDCard Customer.
Supervisior Username,Password Laporan Workorder pertanggal dan laporanworkorder perjenis servis
Sistem InformasiAkuntansiHistory Service
Mencetak idcustomer
Data customer, data kendaraandata mekanik,data jenis motordata sparepart, data service Username,Password
Laporan Workorder pertanggaldan perjenis servis, jumlah stok
Data workorder, Historykendaraan, id_card, Jumlah stok
Gambar 3.2 Context Diagram
Tabel 3.1 Proses Modeling
3.6. Diagram Arus Data
Diagram arus data lebih tepat digunakan untuk menggambarkan
sistem yang akan dibuat, diagram ini tidak menekankan pada bagaimana
sistem diterapkan, tetapi penekanannya hanya pada logika dari kebutuhan-
kebutuhan sistem, yaitu proses yang secara logika dibutuhkan oleh sistem.
3.6.1. Diagram Berjenjang SI Riwayat servis kendaraan bermotor
Pada level ini, akan dijelaskan keseluruhan proses yang terjadi di
dalam sistem
Gambar 3.3 Diagram Berjenjang
0
Sistem Informasiriwayat Servicekendaraan
4
Proses WorkOrder
2
Proses UpdateData
1
Login
5
Proses HistoryService
1.4p
UpdateKendaraan
1.5p
UpdateSparepart
1.1p
Update DataCustomer
1.3p
Update DataTeknisi
1.2p
Update JenisMotor
6
Mencetak IDCustomer
3
ProsesVerifikasi
User
8
Logout
7Proses
MembuatLaporan.
1.1p
LoginAdmin
1.2p
LoginSupervisior
3.1p
Merekam WorkorderSparepart dan service
3.2p
Proses Cek JumlahSparepart
3.6.2. Diagram Arus Data Level 0 (top level)
Pada level ini, akan dijelaskan keseluruhan proses yang terjadi di
dalam sistem, dimana sebelumnya telah diketahui alur data dari sistem yang
dapat terlihat pada contex diagram.
5ProsesHistoryService
6
Mencetak IDCustomer
2
Proses UpdateData
Username dan password sbg adminUpdate data customer,data teknisi/mekanik,data kendaraan,data spare part,data service
Informasi History Service kendaraan
a. Administrator
D1 Customer member
D3 Mekanik
D4 Service
D5 Sparepart
D2 Jenis Motor
Data mekanik yang ditelah diupdate
Data jenis layananyang ditelah diupdate
Data jenis motor yangditelah diupdate
Data Sparepart yangditelah diupdate
Data jenis layanan
D7 Workorder
4
ProsesWorkOrder
Data Sparepart
Input data untuk work order
Data Workorder
Data workorder untuk Kasir/admin
Data workorder
Username dan password sbg adminInput data Customer untuk ID
Data Customer
Cetakan ID Customer
3
Prosesverifikasi
user
ID_Customer
ID_Customer tidak valid
ID_Customer
ID_Customer valid
Detail DataMekanik
Data Customer
Detail Data jenis motor
Datacustomeryangditelahdiupdate
DetailCustomer
Detail Data Sparepart
DetailJenislayanan
Data Pesan Sparepart
Data Stok Sparepart
Data Pesan Sparepart
Data Stok Sparepart
D1 Customer member
D5 Sparepart
Cetakan workorder
Username dan passwordsbg adminData workorder
D6 Kendaraan
Data kendaraan yangditelah diupdate
Detail data kendaraan
Data kendaraan
D6 Kendaraan
1
Login
c. Supervisior
Username dan passwordsbg admin
Pesan Kesalahan
A
BUsername dan passwordsbg supervisior
Pesan Kesalahan
Username danpassword valid sebagaisupervisior,
7
Proses LaporanWorkorder
WorkorderD7
Tanggal periodeworkorder,
Laporan workorder
B
A
A
Username dan passwordsbg adminData Pesan Sparepart
Gambar 3.4 Overview Diagram Level 0
3.6.3. Diagram Arus Data Level 1 proses 1
Dari diagram arus data level 0 dapat diturunkan lebih rinci lagi ke dalam
level 1. DAD level 1 akan menjelaskan proses-proses yang terjadi pada sistem.
DAD level 1 terdiri atas dua proses, yaitu proses login administrator dan login
supervisior
1
a. AdministratorD8 Admin
D9 Supervisior
Username, Password,Sebagai Admin
1.1p
LoginSupervisior
11p
Login Admin
Gambar 3.5 DAD Level 1 proses 1 (proses Login)
Detail Data Mekanik
Detail Jenis layananb. Administrator
a. Administrator
b. Administrator
Username, Password,Sebagai Admin
Username, Password,Sebagai Supervisior
Username, Password,Sebagai Admin, yangvalid
Username, Password,Sebagai Supervisioryang valid
3.6.4. Diagram Arus Data Level 1 proses 2
Dari diagram arus data level 0 dapat diturunkan lebih rinci lagi ke
dalam level 1. DAD level 1 akan menjelaskan proses-proses yang terjadi
pada sistem. DAD level 1 terdiri atas enam proses, yaitu proses update Data
Customer, proses update Data Mekanik, proses update service, proses
update Sparepart, proses update Jenis Motor,proses update kendaraan.
2
a. Administrator
D1 Customer Member
D2 Jenis motor
D3 Mekanik
D4 Service
D5 Sparepart
Update data customer,data teknisi/mekanik,data jenis layanan,data spare part.data service, username danpassword valid
Data customer yangtelah diupdate
Data jenis motoryangditelah diupdate
Data mekanik yangditelah diupdate
Data jenis layanan yangditelah diupdate
Data Kendaraan yangtelah diupdate
2.4p
Proses UpdateJenis layanandan harga
2.5p
Proses UpdateSparepart
2.1p
Proses UpdateDataCustomer
2.3p
Proses UpdateData Teknisi
2.2p
Proses UpdateJenis Motor
Gambar 3.6 DAD Level 1 proses 2 (proses update data)
Detail Data customer
Detail jenis motor
Detail Data Mekanik
Detail Jenis layanan
Detail data Sparepart
2.6p
Proses UpdateKendaraan
D8 Kendaraan
Detail data Kendaraan
Data Sparepart yangditelah diupdate
3.6.5. Diagram Arus Data Level 1 proses 3
DAD level 1 proses 3 terdiri atas empat proses, yaitu proses
merekam workorder sparepart, proses merekam service, proses merekam
pembayaran tunai dan merekam proses cek data sparepart.
Faktur SparepartFaktur Service
3
3.1p
MerekamWorkorder
a. Administrator
D5 Sparepart
Input data customer,data teknisi/mekanik,data jenis layanan,data spare part.data service untuk WO D1 CustomerMember
D2 Jenis Motor
D3 Mekanik
D4 Service
D6 Workorder
b.Customer
Data customer
Data mekanik
Data Sparepart
Data jenis motor
Data serviceData Workorder
Data workorder
6
Username dan passwordsupervisior valid, hargaSparepart
Gambar 3.7 DAD Level 1 proses 3 (proses workorder)
3.2p
Proses CekdataSparepart
D5 Sparepart
Lihat Stok Sparepart
Data Stok Sparepart
Lihat Stok Sparepart
Data Stok Sparepart
3.6.6 DAD Gabungan
D4 Service
a. Administrator
D1 CustomerMember
D3 Mekanik
D5 Sparepart
D2 Jenis Motor
Username dan passwordadmin yang validUpdate data customer,data teknisi/mekanik,data kendaraan,data spare part.data service
Data customer yangtelah direkam
Data mekanik yangditelah direkam
Data service yangditelah direkam
Data jenis motor yangditelah direkam
Data Sparepart yangditelah direkam
2.4p
Merekam DataService
2.5p
MerekamSparepart
2.1p
Merekam DataCustomer
2.3p
Merekam DataMekanik
2.2p
MerekamJenis Motor
3.1p
MerekamWorkorder
Username dan passwordSupervisior valid
D7 Workorder
b.CustomerData Workorder
Data workorder
Data Sparepart danData Service
Cetakan IDCustomer
3
ProsesHistoryService
a.Administrator
Informasi History ServiceKendaraan,
5Mencetak ID
Customer D1 CustomerMember
Input dataCustomeruntuk ID
Data Customer6Login
Supervisior
D8 Supervisior
b. Supervisior
Username dan passwordsebagai supervisior
Username dan password
2
ProsesVerifikasi user
ID_Customer
ID_CustomerData customer
Data jenis motorData mekanik
Data Sparepart
Data service
ID_Customer validID_Customer tidak valid
3.2pProses cek
datasparepart
Data pesan sparepart
Data pesan sparepart
Data Stok Sparepart
Data Stok Sparepart
Laporan Workorder
2.6p
MerekamKendaraan
D6 Kendaraan
Data kendaraan yangditelah direkam
1.1p
Login Admin
Pesan error
Username danpassword sebagaiadmin
Pesan error
D9 Admin
Username danpassword
7Proses
MembuatLaporan
Gambar 3.8 DAD Gabungan
3. 7 Logical Design
3. 7.1 Data Modeling
3. 7.2 Context Data Model
Gambar 3.9 Context Data Model
3.7.3 Key Base Data Model
Customer
Jenis Motor
milikKendaraan Service
Punya
lakukan
Gambar 3.10 Key Base Data Model
milikKendaraan
Primary KeyNo_polisi[PK1]
Id_jenismotor [FK1]Id_customer [FK2]
kerja
Customer
Primary KeyId_customer
[PK1]
Service
Primary KeyId_service[PK1]
[FK1]
Mekanik
Primary KeyId_mekanik
[PK1]
Punya
Jenis Motor
Primary KeyId_jenismotor
[PK1]
Punya
Sparepart
Primary KeyId_sparepart
[PK1]
DetailwoPrimary KeyNomor[PK1]Id_sparepart
[PK1]Id_workorder [FK1] Pakai
WorkorderId_workorder [PK1]
No_polisi[FK1]Id_service[FK2]Id_Mekanik[FK3
lakukan lakukan
3. 7.4 Fully Attribute Data Model
Gambar 3.11 Fully Attribute Data Model
milik
Customer
Id_customer[PK1]Nama
AlamattinggalKota
PekerjaanNo_ktp
PekerjaanTgl_lahir
Kendaraan
No_polisi[PK1]Id_jenismotor [FK1]
Id_customer[FK2]
Keterangan
Service
Id_service[PK1]Nama ServiceJenis ServiceUraian Kerja
Ongkos_Kerja
Punya
Jenis MotorId_jenismotor
[PK1]Jenis Motor
WarnaModel
Thn_pembuatnKeterangan
MekanikId_mekanik
[PK1]NamaAlamat
Kota LahirNo_Telp
Pendidikan
kerja
Punya
Detailwo
Id_workorder [PK1]Nomor[PK2]Id_sparepart
[FK1]Jumlah
Sparepart
Id_sparepart[PK1]
Nama SparepartJenis SparepartHarga Sparepart
Jumlah
Pakai
WorkorderId_workorder [PK1]
No_polisi[FK1]Id_service[FK2]
Id_Mekanik[FK3]Tgl_service
KmKeluhan_pemakaiKeteranganWO
lakukanlakukan
3.7.5. Relational Model
Dari tabel-tabel tersebut, seluruhnya saling berelasi yang ditunjukkan
dengan gambar berikut :
ID_WorkOrder*No_Polisi**ID_Service**ID_MekanikTgl_ServisKmPajakKeluhan PemakaiKasirKeterangan
WorkorderID_Customer*NamaAlamatKotaNo_KTPPekerjaanTgl_LahirNo_TelpKeterangan
Customer
No_Polisi*ID_Customer**ID_Produk**ID_JenisMotor**Keterangan
Kendaraan
ID_Sparepart*Nama_SPJenis_SPQtyHarga_SPKeterangan_SP
Sparepart ID_Mekanik*NamaAlamatKotaNo_TelpPendidikan terakhirTgl_Lahir
Mekanik
ID_Service*ID_Mekanik**Nama_ServiceJenis_serviceUraian_kerjaKeterangan_kerjaOngkos_Kerja
Service
ID_JenisMotor*JenisWarnaMerkThn_PembuatanModelKeterangan
Jenis Motor
Id_workorder*Nomor*id_sparepartjumlah
Detailwo
Gambar 3.10. Relasi Antar Tabel
3.8 DISAIN SISTEM
Perancangan sistem merupakan langkah multi proses yang
memusatkan kerja pada struktur data, arsitektur perangkat lunak (PL),
prosedur rinci serta karakteristik antar muka. Proses ini akan mengubah
kebutuhan-kebutuhan sistem menjadi sebuah representasi PL yang dapat
dimengerti sebelum proses penulisan program dimana hasil rancangan harus
didokumentasikan dan menjadi bagian konfigurasi PL.
Tahap perancangan sistem ini merupakan kelanjutan dari tahap
analisis. Perancangan sistem untuk Sistem Informasi riwayat Service
kendaraan yang dibuat, meliputi perancangan PL, perancangan struktur
modul/unit program, dan perancangan antarmuka pemakai (dalam hal ini
untuk Administrator dan Supervisior). Terdapat beberapa tahap perancangan
yaitu perancangan database, perancangan modul program serta perancangan
antar muka.
3.8.1 Disain Database
Dalam desain database ini terdapat 8 tabel, yakni terdiri dari tabel
Customer, tabel Kendaraan, tabel Workorder, tabel Service, Tabel Sparepart, tabel
Mekanik, tabel jenis motor,tabel detail wo . Secara lebih jelas dapat dilihat pada
tabel-tabel berikut ini :
Tabel Customer
Tabel ini berisi data-data customer yang memiliki kendaraan untuk diservis:
Tabel Kendaraan
Tabel ini berisi data-data kendaraan yang melakukan servis:
Nama Field Tipe Data Panjang Keterangan
no_polisi * Varchar 15 No Polisi Kendaraanid_customer** Varchar 10 ID customer
id_jenisMotor** Varchar 10 ID Jenis motorketerangan Varchar 50 Keterangan
Tabel Jenis MotorTabel ini berisi data-data jenis kendaraan:
Nama Field Tipe Data Panjang Keterangan
id_jenismotor* Varchar 15 ID Jenis Motorjenis Varchar 10 Jenis Kendaraanmerk Varchar 10 Merk Kendaraanwarna Varchar 10 Warna Kendaraan
thn_pembuatan Date/time Tahun Pembuatanmodel Varchar 10 Model Kendaraan
keterangan Varchar 50 Keterangan
Nama field Tipe Data Panjang Keterangan
id_customer * Varchar 10 Id customernama Varchar 30 Nama customer
alamat Varchar 30 Alamat Customerkota Varchar 15 Kota Customer
no_ktp Varchar 20 No KTP Customerpekerjaan Varchar 20 Pekerjaan Customertgl_lahir Date/time 25 Tanggal lahir Customerno_telp int 15 No Telp Customer
keterangan Varchar 50 Keterangan
Tabel 3.2 Tabel Customer
Tabel 3.3 Tabel Kendaraan
Tabel 3.4 Tabel Jenis Motor
Tabel Workorder
Merupakan tabel untuk mengisi data-data workorder :Nama Field Tipe Data Panjang Keterangan
id_workorder * Varchar 10 ID Workorderno_polisi ** Varchar 15 No Polisi Kendaraanid_service** Varchar 10 ID Servis
id_mekanik** Varchar 10 Id Mekaniktgl_servis Date/time Tanggal servis
km int 10 Kilometer kendaraanpajak Varchar 4 Pajak
keluhan_pemakai Varchar 50 Keluhan pemakaikasir Varchar 10 Nama kasir
keterangan Varchar 50 Keterangan
Tabel Service
Tabel ini berisi data-data macam-macam servis :Nama Field Tipe Data Panjang Keteranganid_service* Varchar 10 ID Service
id_mekanik* Varchar 10 ID Mekaniknama_service Varchar 15 Nama servisjenis_service Varchar 15 Jenis servisuraian_kerja Varchar 30 Uraian kerjaongkos_kerja Varchar 15 Biaya kerja
keterangan_kerja Varchar 30 Keterangan
Tabel Sparepart
Tabel ini berisi data-sparepart dan berisi jumlah stok dari spareparttersebut:
Nama Field Tipe Data Panjang Keterangan
id_sparepart* Varchar 10 ID Spare partid_service** Varchar 10 ID Service
nama_SP Varchar 15 Nama Spare partjumlah Varchar 10 jumlah sparepart
jenis_SP Varchar 10 Jenis Spare partharga_SP Varchar 15 Harga Spare part
keterangan_SP Varchar 30 Keterangan
Tabel 3.5 Tabel Workorder
Tabel 3.6 Tabel Service
Tabel 3.7 Tabel Sparepart
Tabel Mekanik
Tabel ini berisi data-data mekanik yang melakukan servis:Nama Field Tipe Data Panjang Keterangan
id_mekanik* Varchar 10 ID Mekaniknama Varchar 15 Nama mekanik
alamat Varchar 30 Alamat mekanikkota Varchar 15 Kota alamat mekanik
no_Telp int 15 No teleponpendidikan_terakhir Varchar 15 Pendidikan terakir
tgl_Lahir Date/time Tanggal lahirketerangan Varchar 30 keterangan
Tabel detailwoTabel ini merupakan tabel detail dari workorder dimana berisi sparepart
dan jumlah yang digunakan oleh workorder:
Nama Field Tipe Data Panjang Keterangan
id_workorder* Varchar 10 id workordernomor* int 15 nomor detail
id_sparepart** Varchar 30 id sparepartjumlah Varchar 15 jumlah sparepart
Keterangan : * = Primary Key
** = Foreign Key
Tabel 3.8 Tabel Mekanik
Tabel 3.9 Detail WO
3.8. Disain Input
Bentuk desain input mencakup input data customer, input data produk
input data mekanik, input data sparepart, input kendaraan, input data jenis
layanan, input workorder dan input perubahan harga oleh supervisior.
Gambar dibawah adalah halaman disain login dimana halaman disain ini
digunakan untuk mengamankan data agar tidak diakses oleh orang lain yang tidak
berwenang. Pada halaman ini diminta untuk memasukkan username, password.
Bila username, password, yang dimasukkan salah maka akan muncul pesan
kesalahan.
1. Cetakan ID Customer
Ini merupakan desain untuk id card customer
Username :
Password :
Login
HEADER
ID CUSTOMER
NAMA CUSTOMER
ALAMAT CUSTOMER
ID_CustomerNamaNo KTP
Tanggal Lahir
Tambah Reset
Keterangan
Alamat
No_KTP
Kota
No_Telp
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
Service
Home
HEADER
Tambah Reset
ID Jenis MotorKeterangan
HEADER
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
Service
Home
No PolisiID_CustomerID Produk
2. Dialog input Data Customer
Halaman admin untuk Input data customer
3.Dialog input Data Kendaraan
Ubah / Hapus
Tambah Reset
ID_ServiceNama ServiceJenis Service
HEADER
ID_MekanikNamaTgl_Lahir
Tambah Reset
Keterangan
Alamat
Pendidikan Akhir
Kota
No_Telp
HEADER
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
service
Home
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
Jenis_service
Home
Uraian KerjaBiayaKeterangan
4.Dialog input Data Mekanik
5.Dialog input Data Jenis Layanan
Tambah Reset
HEADER
ID_SparepartNama SPJenis KomponenHarga
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
Jenis_service
Home
Keterangan
NomorId_sparepartJumlah Stok
Tambah Reset
HEADER
Customer
Mekanik
Kendaraan
Stok Sparepart
Sparepart
Jenis_service
Home
6.Dialog input Data Produk/sparepart yang diservice
7.Dialog input Stock Sparepart
Submit Reset
ID_WorkorderNo_PolisiID_Service
HEADER
Workorder
Home
Lihat Stok SP
Lihat History
KM
8.Dialog input Workorder
Keluhan Pemakai:
Keterangan:
No ID_SP NamaSP Qty @
RP
Biaya
Total Biaya Part
Tanggal Service
Total Biaya Service dan biaya sparepart Rp.
HEADER
Submit Reset
9.Dialog input perubahan harga sparepart oleh supervisior
No ID_SP NamaSP Qty @
RP
Biaya
Total Biaya Part
3.10. Disain Output
Desain output meliputi desain Output Stok Sparepart, desain output
Faktur Sparepart, desain output faktur service, desain laporan workorder sparepart
harian, laporan service tiap pelanggan, cetakan ID Customer.
10. Desain Output Stok Sparepart
Logout
HEADER
HEADER
No ID_SP NamaSP Jumlah Stok @ RP
11. Laporan workorder sparepart harian
ID_WO ID_SP TotalID_ServiceQty SPNama PemilikNo.Polisi
Tanggal
12. Laporan Service tiap pelanggan
ID_WO Tgl_Service No_Polisi Sparepart Qty Service KM Keterangan Total
HEADER
Nama
Nama
Tanggal
BAB IV
IMPLEMENTASI SISTEM
IV.1 Karakteristik Sistem
Sistem ini dibangun sebagai Sistem Informasi riwayat servis kendaraan
bermotor untuk Asia Motor, Solo.
Pada sistem ini terdapat 2 user yaitu Admin, dan Supervisior. Admin
menggunakan sistem ini untuk mengisi data kendaraan yang melakukan
servis, melihat history atau riwayat servis dari kendaraan, mencetak id card
untuk customer,melihat jumlah stok dari sparepart dan menginput serta
mengupdate data customer, kendaraan,jenis motor, service,mekanik dan
sparepart. Sedangkan supervisior menggunakan sistem ini untuk melihat
laporan-laporan dari workorder.
IV.2 Kebutuhan Sistem
Untuk dapat melakukan pengujian sistem, dibutuhkan beberapa sistem
penunjang, antara lain :
Spesifikasi Software
1. Sistem Operasi Windows XP
2. Macromedia Dreamweaver ver 8
3. Jakarta-tomcat-5.0.16
4. SQLyog .
5. mysql-5.0.16-win32
6. Adope Photoshop 7.0
7. Internet Explorer 6.0
Spesifikasi Hardware
1. Prosessor Intel Pentium IV
2. Memory 512 MB
3. Harddisk 40 GB
IV.3 Koneksi
Tabel-tabel yang telah dibuat belum dapat terhubung dengan sistem.
Untuk menghubungkan MySQL dengan sistem, maka digunakan sintak
sebagai berikut :
<% boolean ada_kesalahan = false; Connection koneksi = null; try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception ex) { ada_kesalahan = true; }
if (!ada_kesalahan) { // Bentuk koneksi koneksi = null; try { koneksi = DriverManager.getConnection( "jdbc:mysql://localhost/history", "root", "diwa"); } catch (Exception ex) { ada_kesalahan = true; } }
if (ada_kesalahan) { String msg = "Database tak dapat dibuka"; response.sendRedirect("info.jsp?msg=" + msg); }
ResultSet hasilQuery = null;%>
try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception ex) {
out.println(“Kesalahan: “ +ex); ada_kesalahan = true; }Digunakan untuk memuat driver MySQL (yaitu MySQL Connector) jika
terjadi suatu ekspresi maka bagian berikut akan dijalankan:
out.println(“Kesalahan: “ +ex); ada_kesalahan = true;
Pernyataan pertama akan membuat pesan kesalahan ditampilkan dan
pernyataan kedua digunakan untuk membuat variabel ada_kesalahan yang
bertipe boolean diisi dengan nilai true,yang menyatakan bahwa terjadi
kesalahan. Penyataan:
Connection koneksi = null;
digunakan untuk mendeklarasikan variable koneksi yang merujuk ke objek
Connection dan sekaligus mengisinya dengan null.
Pernyataan:
try { koneksi =DriverManager.getConnection("jdbc:mysql://localhost/history", root","diwa"); } catch (Exception ex) { ada_kesalahan = true; }
digunakan untuk membentuk hubungan ke database MySQL bernama
history yang terdapat pada localhost, menggunakan pemakai root dan
password diwa.
Untuk memudahkan membuat koneksi sistem dengan database, maka
script koneksi dibuat dalam sebuah file tersendiri yaitu koneksi.jsp. jika
sistem akan melakukan koneksi dengan Database maka file ini akan
dipanggil. Pendeklerasian yang digunakan untuk memanggil koneksi ini
adalah sebagai berikut :
IV.4 User Interface
User interface ini adalah implementasi dari proses modeling yang ada.
IV.4.1 User Interface Proses Login
Gambar IV.1 Gambar user interface proses login
Proses login ini harus dilakukan oleh semua user sebelum melakukan
hak akses nya. User terlebih dahulu akan memilih menu login sesuai dengan
satusnya sebagai Admin maupun sebagai supervisior. Data yang diinputkan
adalah user name dan password. Jika data login tidak sesuai, maka aplikasi
tidak bisa digunakan oleh user. Berikut ini adalah user interface halaman
login admin :
<%@ include file="koneksi.jsp" %>
Gambar IV.2 Gambar user interface proses login Admin
Berikut ini adalah perintah yang digunakan untuk melakukan
verfikasi data login admin :
<% String pemakaix = gantiKosong(request.getParameter("pemakai")); String sandi = gantiKosong(request.getParameter("sandi"));
if (pemakaix == null || sandi == null) {out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Maaf Ada Data YangNull!!!!!\");history.back()</script></body>");}
if (pemakaix.equals("") || sandi.equals("")) {out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Maaf Ada Data YangKosong!!!!!\");history.back()</script></body>");} boolean ada_kesalahan = false; String data_username = ""; String data_password = ""; if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery("SELECT nama,password FROM pemakai " + "WHERE nama = '" + pemakaix + "'"); } catch (Exception ex) { ada_kesalahan = true; }
if (!ada_kesalahan) { try { if (hasilQuery.next())
{ data_username = hasilQuery.getString("nama"); data_password = hasilQuery.getString("password");
}
} catch (Exception ex) { ada_kesalahan = true; } } if((!pemakaix.equals(data_username)) || (!sandi.equals(data_password))) {out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Sorry Anda TidakBerhak Akses!!!!!\");history.back()</script></body>");} }}%>
Setelah proses login admin berhasil dilakukan, maka akan muncul
halaman utama untuk admin. Gambar VI.3 adalah Gambar user interface
halaman admin.
IV.4.2 User Interface halaman untuk Admin
Pada user interface halaman admin ini, ada beberapa menu yang di
akses seperti menu melakukan workorder service untuk customer, menu
untuk mencetak ID Customer, menu untuk melihat stok sparepart, menu
untuk melihat history customer, menu untuk mebuat laporan workorder baik
harian maupun bulanan, dan menu untuk menambah dan mengubah data.
Gambar IV.3 Gambar user interface menu untuk Admin
IV.4.2.1 User Interface untuk Workorder
Gambar IV.4 Gambar user interface menu untuk Workorder
Ketika ingin melakukan workorder maka admin akan memasukan
Id Customer dari pelanggan untuk melakukan servis kendaraannya, disini
jika id customer atau kendaraan itu belum terdaftar maka akan muncul
pesan id customer atau kendaraan itu belum terdaftar akan di tampilkan,
untuk mempermudah admin dalam pengisian Id Customer atau no polisi
maka di sediakan fasilitas untuk melihat data-data dari customer terlihat
pada gambar IV.5 dan data dari kendaraan terlihat pada gambar IV.6.
Gambar IV.5 Gambar untuk melihat data pelanggan
Kode program untuk menghasilkan user interface pada gambar
IV.5 diatas adalah:
<%hasilQuery = stm.executeQuery( "SELECT id_customer,nama,alamattinggal,kota,no_ktp,pekerjaan,tgl_lahir,no_telp,keterangancustomer FROM customer LIMIT "+currentRs +",5");while (rs.next()){ out.println(); while (hasilQuery.next())
{ String id_customer = hasilQuery.getString("id_customer"); String nama = hasilQuery.getString("nama");
String alamattinggal = hasilQuery.getString("alamattinggal"); String kota = hasilQuery.getString("kota");
String no_ktp = hasilQuery.getString("no_ktp"); String pekerjaan = hasilQuery.getString("pekerjaan"); String tgl_lahir = hasilQuery.getString("tgl_lahir"); String no_telp = hasilQuery.getString("no_telp");
String tgl_lengkap = "Tak tercatat";
if (tgl_lahir != null) { // Ambil data tanggal, bulan, tahun String tahun = tgl_lahir.substring(0,4); String bulan = tgl_lahir.substring(5,7); String tanggal = tgl_lahir.substring(8); tgl_lengkap = tanggal + "/" + bulan + "/" + tahun;
} out.println("</TD><TD><A HREF = \"workorder2.jsp?kodeid="+ id_customer + "\">"+ id_customer+"</A>"+ " " + "</TD><TD>" + nama +
"</TD><TD>" + alamattinggal + "</TD><TD>" + kota + "</TD><TD>" + no_ktp + "</TD><TD>" + pekerjaan +
"</TD><TD>" + tgl_lengkap + "</TD><TD>" + no_telp + "</TD></TR>");
} } out.println("</TABLE>");%>
Gambar IV.6 Gambar untuk melihat data kendaraan
Kode program ini untuk menghasilkan user interface melihat data
kendaraan pada gambar IV.6 diatas adalah:
<%Statement stm = con.createStatement();hasilQuery = stm.executeQuery( "SELECT no_polisi, k.id_customer,c.nama,k.id_jenismotor,j.jenis FROM kendaraan k,customerc,jenismotor j WHERE k.id_customer=c.id_customer AND k.id_jenismotor=j.id_jenismotor LIMIT "+currentRs +",5");
while (rs.next()){out.println();while (hasilQuery.next()){ String no_polisi = hasilQuery.getString("k.no_polisi"); String id_customer = hasilQuery.getString("k.id_customer"); String nama = hasilQuery.getString("c.nama"); String id_jenismotor = hasilQuery.getString("k.id_jenismotor"); String jenis = hasilQuery.getString("j.jenis");
out.println("</TD><TD><A HREF = \"workorder3.jsp?kodeid="+ no_polisi + "\">"+ no_polisi +"</A>"+ " "+ "</TD><TD>" + id_customer +
"</TD><TD>" + nama + "</TD><TD>" + id_jenismotor + "</TD><TD>" + jenis + "</TD></TR>");
} } out.println("</TABLE>");%>
Setelah data id customer atau nomor polisi di masukkan maka akan
ditampilkan lagi data customer atau data dari kendaraan tersebut kemudian
akan dilakukan servis dimana pertama admin akan memasukan km dan
keluhan pemakai seperti terlihat pada gambar IV.7 dimana pada form ini
juga ditampilkan data dari customer,kendaraannya dan KM sebelum
melakukan service ini.
Gambar IV.7 Gambar form pertama dalam workorder
Kode program untuk melakukan user interface pada gambar IV.7 di
atas adalah:
<% String kodeid = gantiKosong(request.getParameter("kodeid"));
if (kodeid == "") { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); } String km_max=""; String id_customer =""; String id_jenismotor =""; String jenis =""; String nama ="";
if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); String strQuery = "SELECT k.no_polisi,k.id_customer,c.nama,k.id_jenismotor,j.jenis FROM kendaraan k, jenismotorj,customer c WHERE k.id_jenismotor=j.id_jenismotor AND k.id_customer=c.id_customer AND k.no_polisi =\"" + kodeid + "\"";hasilQuery = stm.executeQuery(strQuery); }
catch (Exception ex){
ada_kesalahan = true; } if (!ada_kesalahan) { try
{ if (hasilQuery.next()) {
id_customer = hasilQuery.getString("k.id_customer"); nama = hasilQuery.getString("c.nama"); id_jenismotor = hasilQuery.getString("k.id_jenismotor"); jenis = hasilQuery.getString("j.jenis");}
} catch (Exception ex)
{ ada_kesalahan = true; } } } }
if (ada_kesalahan) { String msg = "Ada kesalahan dalam mengakses database"; response.sendRedirect("info.jsp?msg=" + msg); }
// ambil km max dari tabel WO dengan no polisi tertentu// Mulai dari sini ngambil KM nya
if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery( "SELECT max(km) as maxKM FROM workorder WHERE no_polisi='"+kodeid+"'" + "ORDER BY id_workorder"); } catch (Exception ex)
{ out.println("Kesalahan kowe: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { try { while (hasilQuery.next()) { km_max = hasilQuery.getString("maxKM");
} } catch (Exception ex) { out.println("Kesalahan iki neng: " + ex); } } } }%>
Setelah kendaraan di servis maka berdasarkan keterangan dari
mekanik maka admin akan memasukan data-data seperti service apa yg
dilakukan, nama mekanik yang melakukan servis tersebut, keterangan servis
yang dilakukan oleh mekanik dan sparepart yang digunakan oleh mekanik
dalam service tersebut.
Gambar IV.8 Gambar form pengisian workorder
Setelah memasukan data-maka data tersebut akan disimpan. Kode
program untuk menyimpan data-data tersebut yaitu:
<%int jml = Integer.valueOf(request.getParameter("jml")).intValue(); String [] id_sparepart = new String [jml]; String [] jumlah = new String [jml]; for (int j = 0; j < jml; j++) { id_sparepart [j] = request.getParameter("id_sparepart_"+j);
jumlah [j] = request.getParameter("jumlah_"+j); } int jmlh = Integer.valueOf(request.getParameter("jml")).intValue(); String no_polisi = request.getParameter("no_polisi"); String idservice = gantiKosong(request.getParameter("idservice")); String mekanik1 = gantiKosong(request.getParameter("mekanik1")); String km = request.getParameter("km"); String keluhan_pemakai = request.getParameter("keluhan_pemakai"); String keteranganwo = gantiKosong(request.getParameter("keteranganwo")); String idbrikut=""; if ( idservice.equals("0") || mekanik1.equals("0") || keteranganwo.equals("")) { out.println("<body bgcolor=\"#EAF4FF\"><script language=\"JavaScript\">alert(\"Ada Data Yang perlu diisi!!!!!\");history.back()</script></body>"); } boolean ada_kesalahan = false; int hasil_penyisipan1 = 0; int hasil_penyisipan2 = 0; int hasil_penyisipan3 = 0;
if (!ada_kesalahan) { try
{ Statement stm = koneksi.createStatement(); String strQuery = "INSERT INTO workorder(no_polisi,id_service,id_mekanik,tgl_servis,km,keluhan_pemakai,keteranganwo) " + "VALUES (" + "\'" + no_polisi + "\'," +
"\'" + idservice + "\'," + "\'" + mekanik1 + "\'," + "curdate()," + "\'" + km + "\'," + "\'" + keluhan_pemakai + "\'," + "\'" + keteranganwo + "\'" + ")";
hasil_penyisipan1 = stm.executeUpdate(strQuery); } catch (Exception ex)
{ ada_kesalahan = true; } }
ResultSet hasilQuery = null; if (!ada_kesalahan) {
try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery( "SELECT max(id_workorder) as maxidwo FROM workorder " + "ORDER BY id_workorder"); } catch (Exception ex)
{ out.println("Kesalahan kowe: " + ex); ada_kesalahan = true; }if (!ada_kesalahan)
{ try { while (hasilQuery.next()) { String id_workorder = hasilQuery.getString("maxidwo");
idbrikut=hasilQuery.getString("maxidwo"); int vindyl = Integer.valueOf(idbrikut).intValue(); } } catch (Exception ex) { out.println("Kesalahan iki neng: " + ex); }
} } // ---- Rekam di tabel detail WO if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); for (int i = 0; i < jmlh; i++) { if (!id_sparepart[i].equals(""))
{ String strQuery = "INSERT INTO detailwo " + "( id_workorder,nomor,id_sparepart) " + "VALUES (" + "\"" + idbrikut + "\"," +
"\"" + String.valueOf(i+1) + "\"," + "\"" + id_sparepart[i] + "\"" + ")";hasil_penyisipan2 = stm.executeUpdate(strQuery); } }}catch (Exception ex){
ada_kesalahan = true; } }
try {
Statement stm = koneksi.createStatement();
for (int j = 0; j < jmlh; j++) {
String strQuery2 = "UPDATE detailwo SET " + " jumlah = \"" + jumlah[j] + "\"" + " WHERE nomor = \"" + (j+1) + "\" AND id_workorder= \"" + idbrikut + "\"";
hasil_penyisipan3 = stm.executeUpdate(strQuery2); }} catch (Exception ex)
{ ada_kesalahan = true; }} if (!ada_kesalahan && (hasil_penyisipan1 >0) ) out.print("<br>");
out.print("Data sudah disimpan "); %>
Penggunaan sparepart pada workorder ini mempengaruhi jumlah dari
sparepart , untuk menangani pengurangan sparepart itu ditangani oleh
trigger yang kodenya sperti dibawah ini:
DELIMITER $$;DROP TRIGGER `history`.`d_jual_after_insert`$$create trigger `d_jual_after_insert` AFTER UPDATE on `detailwo`for each row BEGINupdate sparepart set jumlah = jumlah-NEW.jumlah where id_sparepart=NEW.id_sparepart;END;$$DELIMITER ;$$
Setelah data ditambahkan maka data akan ditampilkan lagi dan kemudian
faktur workorder ini akan di printkan untuk customer.
Gambar IV.9 Gambar faktur workorder dari customer
Gambar IV.10 Gambar Print faktur workorder untuk customer
IV.4.2.2 User interface untuk mencetak ID card customer
User interface ini menampilkan id card dari customer,dimana mula-
mula admin memasukan ID customernya atau mencari id customer tersebut.
Gambarnya interfacenya bisa dilihat pada Gambar IV.11.
Gambar IV.11 Gambar ID Card Customer
Kode program untuk menampilkan id card diatas yaitu:<% boolean ada_kesalahan = false; String kode = gantiKosong(request.getParameter("kode")); String id_customer=""; String nama =""; String alamattinggal=""; String kota=""; String no_ktp="";
if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery("SELECT id_customer,nama,alamattinggal,no_ktp FROM customerWHERE id_customer ='"+kode+"'"); } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { try { while (hasilQuery.next())
{ id_customer = hasilQuery.getString("id_customer"); nama = hasilQuery.getString("nama");
alamattinggal = hasilQuery.getString("alamattinggal"); no_ktp = hasilQuery.getString("no_ktp");
} } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } } } }%>
IV.4.2.3 User Interface untuk melihat Stok dari sparepart.
Ketika workorder penggunaan sparepart dalam workorder otomatis
akan mengurangi jumlah stok dari sparepart. Bisa dilihat pada gambar
Gambar IV.12
Gambar IV.12 Gambar ID Card Customer
Kode Program untuk melihat stok sparepart yaitu:
<%@ include file="konekdblg.jsp" %> <%Statement stmvd = con.createStatement();
hasilQuery = stmvd.executeQuery( "SELECT id_sparepart,nama_sparepart,jenis_sparepart,harga_sparepart,jumlah FROM sparepartLIMIT "+ currentRs +",5");
out.println("<TABLE BORDER=\"1\">");out.println( "<TR><TH>ID SP</TH><TH>NAMA SP</TH><TH>JENIS SP</TH><TH>HARGASP</TH><TH>STOK</TH></TR>");while (rs.next()){out.println(); while (hasilQuery.next()) { String id_sparepart = hasilQuery.getString("id_sparepart"); String nama = hasilQuery.getString("nama_sparepart"); String jenis = hasilQuery.getString("jenis_sparepart"); String harga = hasilQuery.getString("harga_sparepart"); String jumlah = hasilQuery.getString("jumlah"); out.println("<TR><TD>" + id_sparepart + "</TD><TD>" + nama +
"</TD><TD>" + jenis + "</TD><TD>" + harga + "</TD><TD>" + jumlah + "</TD></TR>");
} } out.println("</TABLE>");%>
IV.4.2.4 User Interface untuk History
User interface ini berguna untuk menampilkan history atau riwayat
servis dari kendaraan tertentu dimana terdapat dua sub menu yaitu pencarian
data untuk melihat historynya berdasarkan masukan nomor polisi dan
berdasarkan id customer. Setelah pencarian data baik nomor polisi maupun
id customer maka akan ditampilkan seluruh history dari kendaraan tertentu,
seperti yang terlihat pada gambar Gambar IV.13 disini bisa dilihat history
dari suatu kendaraan tertentu pada tanggal tertentu, bisa dilihat pada gambar
Gambar IV.14.
Gambar IV.13 Gambar History kendaraan
Kode program untuk menampilkan gambar IV.11 history dari
kendaraan diatas yaitu:
<% String kode = gantiKosong(request.getParameter("kode")); if (kode == "") { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); }
String kodeid = ""; String tglawal = ""; String tglakhir = ""; String no_polisi =""; String jenis =""; String nama =""; if (!ada_kesalahan)
{ ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); String strQuery ="SELECT kend.no_polisi,j.jenis,cust.nama FROM kendaraan kend, customer cust, jenismotor j WHEREkend.id_customer=cust.id_customer AND kend.id_jenismotor=j.id_jenismotor AND kend.no_polisi='"+kode+"'";hasilQuery = stm.executeQuery(strQuery); } catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan)
{ try
{ if (hasilQuery.next())
{ no_polisi = hasilQuery.getString("kend.no_polisi");
jenis = hasilQuery.getString("j.jenis"); nama = hasilQuery.getString("cust.nama");}
} catch (Exception ex)
{ ada_kesalahan = true } } }
} if (ada_kesalahan) { String msg = "Ada kesalahan dalam mengakses database"; response.sendRedirect("info.jsp?msg=" + msg); }
kodeid = gantiKosong(request.getParameter("kode")); tglawal = gantiKosong(request.getParameter("dateawal")); tglakhir = gantiKosong(request.getParameter("dateakhir"));
if (!ada_kesalahan) {
ResultSet hasilQuery = null; try
{ Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery("SELECTw.id_workorder,s.nama_service,w.tgl_servis,w.km,w.keluhan_pemakai,w.keteranganwo FROM workorderw,service s WHERE w.id_service=s.id_service AND w.no_polisi= '"+kodeid+"' group by w.id_workorder"); } catch (Exception ex){ out.println("Kesalahan: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { out.println("<TABLE BORDER=\"1\">"); out.println( "<TR><TH>ID WO</TH><TH>NAMA SERV</TH><TH>TGLSERV</TH><TH>KM</TH><TH>KELUHAN</TH><TH>KET</TH><TH>SP</TH></TR>"); try
{ while (hasilQuery.next())
{ String id_workorder = hasilQuery.getString("w.id_workorder"); String nama_service = hasilQuery.getString("s.nama_service");
String tgl_servis = hasilQuery.getString("w.tgl_servis");String km = hasilQuery.getString("w.km");String keluhan_pemakai = hasilQuery.getString("w.keluhan_pemakai");String keteranganwo = hasilQuery.getString("w.keteranganwo");String tgl_lengkap = "Tak tercatat";
if (tgl_servis != null) { // Ambil data tanggal, bulan, tahun String tahun = tgl_servis.substring(0,4); String bulan = tgl_servis.substring(5,7); String tanggal = tgl_servis.substring(8); tgl_lengkap = tanggal + "/" + bulan + "/" + tahun;
}
out.println("<TR><TD>" + id_workorder + "</TD><TD>" + nama_service +
"</TD><TD>" + tgl_lengkap + "</TD><TD>" + km + "</TD><TD>" + keluhan_pemakai + "</TD><TD>" + keteranganwo + "</TD><TD> <A HREF = \"historynopoldetail.jsp?kode="+ id_workorder + "\" > [<em>
Detail </em>] </A>" + "</TD></TR>"); } } catch (Exception ex) { out.println("Kesalahan: " + ex); } out.println("</TABLE>");
} } }%>
Data history dari kendaraan itu bisa dilihat berdasarkan tanggal
tertentu sehingga mempermudah melihat history dari kendaraan tersebut,
gambar dari history kendaraan pada tanggal tertentu yaitu dapat dilihat pada
Gambar IV.14 dibawah ini:
Gambar IV.14 Gambar History kendaraan pada tanggal tertentu
Setelah daftar dari history di tampilkan kita melihat detail dari history
kendaraan. Disini akan ditampilkan data-data history dari servis kendaraan
bermotor itu yang meliputi nomor polisi, nama pemiliknya, jenis servicenya,
pada KM berapa kendaraan diservis, keluhannya, sparepart yang digunakan,
jumlahnya dan total biaya yang harus dibayar pelanggan. Gambar IV.15
menunjukan detail servis dari kendaraan tersebut.
Gambar IV.15 Gambar Detail History Kendaraan
Kode Program untuk menampilkan detail history dari kendaraan
tersebut yaitu:
<% String kode = gantiKosong(request.getParameter("kode")); if (kode == "") { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); } String id_workorderx =""; String no_polisi =""; String jenis =""; String namax ="";
if (!ada_kesalahan) {
ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); String strQuery ="SELECT w.id_workorder,kend.no_polisi,j.jenis,cust.nama FROM workorder w,kendaraan kend, customer cust,jenismotor j WHERE kend.id_customer=cust.id_customer AND kend.id_jenismotor=j.id_jenismotor ANDkend.no_polisi=w.no_polisi AND w.id_workorder= '"+kode+"'";hasilQuery = stm.executeQuery(strQuery); } catch (Exception ex) { ada_kesalahan = true; }
if (!ada_kesalahan) { try
{ if (hasilQuery.next())
{ id_workorderx = hasilQuery.getString("w.id_workorder");
no_polisi = hasilQuery.getString("kend.no_polisi");jenis = hasilQuery.getString("j.jenis");namax = hasilQuery.getString("cust.nama");}
} catch (Exception ex) { ada_kesalahan = true; } } }
if (ada_kesalahan) { String msg = "Ada kesalahan dalam mengakses database"; response.sendRedirect("info.jsp?msg=" + msg); }
String kodeid = gantiKosong(request.getParameter("kode"));
String id_workorder =""; String nama_service=""; String tgl_servis=""; String km=""; String total_biaya=""; String keluhan_pemakai=""; String keteranganwo=""; String tgl_lengkap="";
if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery("SELECTw.id_workorder,s.nama_service,w.tgl_servis,w.km,w.keluhan_pemakai,w.keteranganwo FROM workorderw,service s WHERE w.id_service=s.id_service AND w.id_workorder= '"+kodeid+"'"); } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { try { while (hasilQuery.next())
{ id_workorder = hasilQuery.getString("w.id_workorder"); nama_service = hasilQuery.getString("s.nama_service");
tgl_servis = hasilQuery.getString("w.tgl_servis");km = hasilQuery.getString("w.km");nama_service = hasilQuery.getString("s.nama_service");keluhan_pemakai = hasilQuery.getString("w.keluhan_pemakai");keteranganwo = hasilQuery.getString("w.keteranganwo");tgl_lengkap = "Tak tercatat";
if (tgl_servis != null){
String tahun = tgl_servis.substring(0,4); String bulan = tgl_servis.substring(5,7); String tanggal = tgl_servis.substring(8); tgl_lengkap = tanggal + "/" + bulan + "/" + tahun;
} } } catch (Exception ex)
{ out.println("Kesalahan: " + ex); } out.println("</TABLE>"); } } String kodeid2 = gantiKosong(request.getParameter("kode")); int totalharga = 0; int totalsemua = 0; if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery("SELECT d.id_sparepart,s.nama_sparepart,d.jumlah,s.harga_sparepart FROMworkorder w,detailwo d,sparepart s WHERE d.id_workorder=w.id_workorder ANDd.id_sparepart=s.id_sparepart AND w.id_workorder= '"+kodeid2+"' ORDER BY d.nomor"); } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; }
if (!ada_kesalahan) { out.println("<TABLE BORDER=\"1\">"); out.println( "<TR><TH>ID_SPAREPART</TH><TH>NAMASPAREPART</TH><TH>JUMLAH</TH><TH>HARGA</TH><TH>TOTAL</TH></TR>"); try
{ while (hasilQuery.next())
{ String id_sparepart = hasilQuery.getString("d.id_sparepart"); String nama = hasilQuery.getString("s.nama_sparepart"); String jumlah = hasilQuery.getString("d.jumlah"); String harga = hasilQuery.getString("s.harga_sparepart");
String bil = hasilQuery.getString("s.harga_sparepart"); int vindy = Integer.valueOf(bil).intValue(); int diwa = Integer.valueOf(jumlah).intValue(); totalharga=(vindy*diwa); totalsemua=totalsemua+totalharga;
out.println( "</TD><TD>" + id_sparepart + "</TD><TD>" + nama + "</TD><TD>" + jumlah + "</TD><TD>" + harga + "</TD><TD>" + totalharga + "</TD></TR>");
}}
catch (Exception ex){ out.println("Kesalahan: " + ex }
out.println("</TABLE>"); } }%>
Sedangkan yang searching menggunakan id customer kode
programnya sama dengan yang searching menggunakan nomor polisi.
IV.4.2.5 User Interface untuk menambah data
User Interface menambah data ini memiliki beberapa sub menu seperti
data customer, jenis motor, kendaraan, mekanik, service, sparepart. Pada
gambar IV.16 merupakan user interface untuk input data pasien.
Gambar IV.16 Gambar Tambah Customer
Kode program untuk menambah data yaitu:
<%
String strBilangan2 = request.getParameter("no_telp"); if (strBilangan2 != null) { int bilangan2; try
{ bilangan2 = Integer.valueOf(strBilangan2).intValue(); } catch (Throwable t)
{ out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Formatdata anda salah!!!!!\");history.back()</script></body>"); } } String nama = gantiKosong(request.getParameter("nama")); String alamattinggal = gantiKosong(request.getParameter("alamattinggal")); String kota = gantiKosong(request.getParameter("kota")); String no_ktp = gantiKosong(request.getParameter("no_ktp")); String pekerjaan = gantiKosong(request.getParameter("pekerjaan")); String tgl_lahir = gantiKosong(request.getParameter("tanggal_lahir")); String no_telp = gantiKosong(request.getParameter("no_telp")); String keterangancustomer = gantiKosong(request.getParameter("keterangancustomer"));
if (nama.equals("") || alamattinggal.equals("") || kota.equals("") || no_ktp.equals("") || pekerjaan.equals("") || tgl_lahir.equals("") || no_telp.equals("") || keterangancustomer.equals("")) { out.println("<body bgcolor=\"#EAF4FF\"><script language=\"JavaScript\">alert(\"Ada Data Yangperlu di isi!!!!!\");history.back()</script></body>"); } out.println("Nama: <B>" + request.getParameter("nama") + "</B><BR>"); out.println("<HR>"); int hasil_penyisipan = 0; if (!ada_kesalahan) { try {
Statement stm = koneksi.createStatement(); String strQuery = "INSERT INTO customer (nama,alamattinggal,kota,no_ktp,pekerjaan,tgl_lahir,no_telp,keterangancustomer) " + "VALUES (" +
"\'" + request.getParameter("nama") + "\'," + "\'" + request.getParameter("alamattinggal") + "\'," + "\'" + request.getParameter("kota") + "\'," + "\'" + request.getParameter("no_ktp") + "\'," + "\'" + request.getParameter("pekerjaan") + "\'," + "\'" + tgl_lahir + "\'," + "\'" + request.getParameter("no_telp") + "\'," +
"\'" + request.getParameter("keterangancustomer") + "\'" + ")"; hasil_penyisipan = stm.executeUpdate(strQuery); } catch (Exception ex) { ada_kesalahan = true; }
if (hasil_penyisipan > 0) out.print("Data telah disimpan" + "<BR>"); else ada_kesalahan = true; } if (ada_kesalahan) out.print("Gagal menyimpan");%>
Untuk menambah data kendaraan, jenis motor, mekanik, service dan
sparepart, kode programnya sama dengan menambah data customer diatas.
IV.4.2.6 User Interface untuk Melihat dan mengedit Data
User Interface Melihat dan mengedit Data ini memiliki beberapa sub
menu seperti data customer, jenis motor, kendaraan, mekanik, service,
sparepart. Pada gambar IV.17 merupakan user interface untuk melihat data
pelanggan:
Gambar IV.17 Gambar Lihat Data Customer
Kode Program untuk menampilkan data customer ini yaitu:
<%Statement stm = con.createStatement();hasilQuery = stm.executeQuery( "SELECT id_customer,nama,alamattinggal,kota,no_ktp,pekerjaan,tgl_lahir,no_telp,keterangancustomer FROM customer " + "LIMIT "+ currentRs +",5");out.println("<TABLE BORDER=\"1\">");out.println( "<TR><TH>KODE</TH><TH>NAMA</TH><TH>ALAMATTINGGAL</TH><TH>KOTA</TH><TH>NO KTP</TH><TH>PEKERJAAN</TH><TH>TGLLAHIR</TH><TH>NO TELEPON</TH><TH>EDIT</TH></TR>");while (hasilQuery.next()) { String id_customer = hasilQuery.getString("id_customer"); String nama = hasilQuery.getString("nama"); String alamattinggal = hasilQuery.getString("alamattinggal"); String kota = hasilQuery.getString("kota"); String no_ktp = hasilQuery.getString("no_ktp"); String pekerjaan = hasilQuery.getString("pekerjaan"); String tgl_lahir = hasilQuery.getString("tgl_lahir"); String no_telp = hasilQuery.getString("no_telp"); String tgl_lengkap = "Tak tercatat"; if (tgl_lahir != null) { //Ambil data tanggal, bulan, tahun String tahun = tgl_lahir.substring(0,4); String bulan = tgl_lahir.substring(5,7); String tanggal = tgl_lahir.substring(8); tgl_lengkap = tanggal + "/" + bulan + "/" + tahun;
} out.println("<TR><TD>" + id_customer + "</TD><TD>" + nama + "</TD><TD>" + alamattinggal + "</TD><TD>" + kota + "</TD><TD>" + no_ktp + "</TD><TD>" + pekerjaan + "</TD><TD>" + tgl_lengkap + "</TD><TD>" + no_telp + "</TD><TD> <A HREF = \"editpelangganubah.jsp?kode="+ id_customer + "\" >Ubah</A>"+ " / " +"<A HREF = \"hpspelanggan.jsp?kode=" + id_customer + "\" >Hapus</A>"+"</TD></TR>");} out.println("</TABLE>");%>
Pada gambar diatas ditampilkan data dari pelanggan, dan terdapat link
untuk mengubah data tersebut dan link untuk menghapus data pelanggan.
Ketika dipilih data ubah maka akan ditampilkan seperti pada gambar
Gambar IV.18 dibawah ini:
Gambar IV.18 Gambar Form Pengisian Data Customer
Disini ditampilkan data dari pelanggan yang dipilih, data akan dirubah
dengan menggunakan program dibawah ini:
<% // Validasi Data String kode = request.getParameter("kode"); if (kode == null) { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); }kode = kode.toUpperCase(); // Ubah ke kapitalString strBilangan2 = request.getParameter("no_telp"); if (strBilangan2 != null) { int bilangan2; try { bilangan2 = Integer.valueOf(strBilangan2).intValue(); } catch (Throwable t)
{ out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Format data andasalah!!!!!\");history.back()</script></body>"); } }
String nama = gantiKosong(request.getParameter("nama")); String alamattinggal = gantiKosong(request.getParameter("alamattinggal")); String kota = gantiKosong(request.getParameter("kota")); String no_ktp = gantiKosong(request.getParameter("no_ktp"));
String pekerjaan = gantiKosong(request.getParameter("pekerjaan")); String tgl_lahir = gantiKosong(request.getParameter("tgl_lahir")); String no_telp = gantiKosong(request.getParameter("no_telp")); String keterangancustomer = gantiKosong(request.getParameter("keterangancustomer")); if (kode.equals("") || nama.equals("") ||
alamattinggal.equals("") || kota.equals("") || no_ktp.equals("") || pekerjaan.equals("") || tgl_lahir.equals("") ||
no_telp.equals("")) {
out.println("<body bgcolor=\"#EAF4FF\"><script language=\"JavaScript\">alert(\"Ada Data Yang perlu diisi!!!!!\");history.back()</script></body>");
}out.println("Kode: <B>" + request.getParameter("kode") + "</B><BR>"); out.println("Nama: <B>" + request.getParameter("nama") + "</B><BR>");int hasil_perekaman = 0; if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); String strQuery = "UPDATE customer SET " + " nama = \"" + nama + "\", " + " alamattinggal = \"" + alamattinggal + "\", " + " kota = \"" + kota + "\", " + " no_ktp = \"" + no_ktp + "\", " + " pekerjaan = \"" + pekerjaan + "\", " + " tgl_lahir = \"" + tgl_lahir + "\", " + " no_telp = \"" + no_telp + "\", " + " keterangancustomer = \"" + keterangancustomer + "\"" + " WHERE id_customer = \"" + kode + "\""; hasil_perekaman = stm.executeUpdate(strQuery); } catch (Exception ex) { ada_kesalahan = true; } if (hasil_perekaman > 0) out.print("Data telah diubah"); else ada_kesalahan = true; } } if (ada_kesalahan) out.print("Gagal menyimpan");%>
Sedangkan untuk mebghapus data menggunakan seperti gambar
dibawah ini:
Gambar IV.19 Gambar Hapus Data Customer
Program untuk menghapus data diatas adalah sebagai berikut:
<% out.println("Kode: <B>" + request.getParameter("kode") + "</B><BR>"); out.println("Nama: <B>" + request.getParameter("nama") + "</B><BR>"); out.println("<HR>"); if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); String strQuery = "DELETE FROM customer " + " WHERE id_customer = \"" + kode + "\"";
stm.executeUpdate(strQuery); out.print("Data telah dihapus"); } catch (Exception ex) { ada_kesalahan = true; } } if (ada_kesalahan) out.print("Gagal menghapus");%>
Untuk melihat data jenis motor, kendaraan, mekanik, service, sparepart kode
programnya tidak jauh berbeda dengan untuk melihat data pelanggan pada
Gambar IV.17 sedangkan untuk mengedit data data jenis motor, kendaraan,
mekanik, service, sparepart seperti pada gambar IV.18 kode programnya
juga tidak jauh berbeda begitu juga dengan menghapus data.
IV.4.3 User Interface Untuk Supervisior
User interface halaman supervisior memiliki menu laporan dengan sub
menu seperti melihat laporan harian, laporan bulanan dan laporan perservis. User
Interface supervisior dapat dilihat pada gambar IV.20 dibawah ini:
Gambar IV.20 Gambar User Interface halaman Supervisior
IV.4.3.1 User Interface untuk melihat Laporan Harian
User interface untuk melihat laporan harian dapat dilihat pada gambar
dibawah ini:
Gambar IV.21 Gambar User Interface Laporan Harian
Kode program untuk menampilkan laporan harian ini yaitu:
<% boolean ada_kesalahan = false; String tanggal = gantiKosong(request.getParameter("tanggal")); String bulan = gantiKosong(request.getParameter("bulan")); String thn = gantiKosong(request.getParameter("tahun")); //String tgl = thn+"-"+bulan+"-"+tanggal; String tgl = gantiKosong(request.getParameter("date")); long totalharga = 0; long totalsemua = 0; long totalspserv = 0;
if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery( "SELECT w.id_workorder,w.no_polisi,w.id_service,serv.nama_service,serv.ongkos_kerja,w.km, w.keluhan_pemakai,w.keteranganwo,s.harga_sparepart,d.jumlahFROM workorder w, sparepart s, detailwo d, service servWHERE w.id_workorder=d.id_workorder AND d.id_sparepart=s.id_sparepart ANDw.id_service=serv.id_service AND w.tgl_servis='"+tgl+"' group by w.id_workorder"); } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { out.println("<TR><TH>Id Wo</TH><TH>Nopol</TH><TH>Nama Serv</TH><TH>HargaServ</TH><TH>Km</TH><TH>Keterangan</TH><TH>Keluhan</TH><TH>Biaya SP</TH><TH>TotalBiaya</TH></TR>"); try { while (hasilQuery.next())
{ String id_workorder = hasilQuery.getString("w.id_workorder");
String no_polisi = hasilQuery.getString("w.no_polisi");String nama_service = hasilQuery.getString("serv.nama_service");String ongkos_kerja = hasilQuery.getString("serv.ongkos_kerja");
String km = hasilQuery.getString("w.km");String keluhan_pemakai = hasilQuery.getString("w.keluhan_pemakai");String keteranganwo = hasilQuery.getString("w.keteranganwo");String hargasp = hasilQuery.getString("s.harga_sparepart");String jumlahsp = hasilQuery.getString("d.jumlah"); int vindy = Integer.valueOf(hargasp).intValue(); int diwa = Integer.valueOf(jumlahsp).intValue(); int ongkos = Integer.valueOf(ongkos_kerja).intValue(); totalharga=(vindy*diwa); totalspserv=totalharga+ongkos;totalsemua=totalsemua+totalspserv;
out.println("<TR><TD>" + id_workorder + "</TD><TD>" + no_polisi + "</TD><TD>" + nama_service +"</TD><TD>Rp." + ongkos_kerja + "</TD><TD>" + km + "</TD><TD>" + keteranganwo + "</TD><TD>" +keluhan_pemakai + "</TD><TD>Rp." + totalharga + "</TD><TD>Rp." + totalspserv + "</TD>"); } } catch (Exception ex)
{ out.println("Kesalahan: " + ex); ada_kesalahan = true; } } } }%>
Sedangkan laporan bulanan kode programnya sama dengan laporan
harian, perbedaannya inputnya tanggal awal bulan dan tanggal awal bulan.
Laporan-laporan ini menunjukan ke supervisior pendapatan yang diperoleh
dalam sehari atau sebulan. Laporan ini juga bisa ditampilkan seperti pada
gambar dibawah ini:
Gambar IV.22 Gambar cetakan laporan Harian
IV.4.3.2 User Interface untuk melihat Laporan Bulanan
User interface untuk melihat laporan harian dapat dilihat pada gambar
dibawah ini:
Gambar IV.23 Gambar User Interface Laporan Bulanan
Kode Program untuk menampilkan laporan bulanan ini tidak jauh
berbeda dengan yang laporan harian.
Gambar IV.24 Gambar cetakan Laporan Bulanan
IV.4.3.3 User Interface untuk melihat Laporan Perservice
Laporan ini digunakan untuk melihat laporan perservis yang
terjadi, dimana terdapat 4 jenis servis yaitu servis gratis, servis berkala,
servis ringan dan servis berat. User interface untuk melihat interface ini
dapat dilihat pada Gambar IV.25 dibawah ini:
Gambar IV.25 Gambar Laporan Perservice
Tampilan untuk report perservis dapat dilihat pada gambar IV.26 dibawah ini:
Gambar IV.26 Gambar cetakan Laporan Perservis
Kode program untuk menampilkan laporan ini hampir sama dengan
laporan harian diatas.
BAB V
ANALISA HASIL IMPLEMENTASI
Secara umum, sistem informasi perangkat lunak ini sudah dapat berjalan
dengan baik, sehingga tidak menutup kemungkinan dapat digunakan di Asia
Motor,Solo. Adapun kelebihan, kekurangan, dan manfaatnya adalah sebagai
berikut.
V.1 Kelebihan sistem yang dibuat
1. Sistem ini mampu menginformasikan kondisi setiap motor pada saat
servis dan mampu memberikan riwayat dari kendaraan bermotor pada
servis sebelumnya.
V.2 Kekurangan sistem yang dibuat
1. Sistem informasi ini tidak memiliki fasilitas laporan dalam bentuk grafis
ke supervisior.
2. Sistem informasi ini belum mampu memberikan informasi data sparepart
yang tepat untuk setiap jenis motor.
V.3 Analisa manfaat
Manfaat yang bisa diperoleh dengan adanya sistem ini adalah sebagai berikut
1. Informasi tentang data riwayat servis kendaraan, data pelanggan, data
kendaraan, data sparepart disampaikan ke pihak yang bersangkutan.
2. Sistem ini bisa mencetak ID Card untuk Customer.
3. Supervisior dapat melihat rangkuman laporan tentang workorder kapan
pun dan dalam waktu yang cepat.
BAB VI
PENUTUP
VI.1 Kesimpulan
1. Sistem Informasi Riwayat Servis kendaraan ini secara umum dapat
berjalan dengan baik sehingga tidak menutup kemungkinan dapat
digunakan dalam kondisi sesungguhnya.
2. Sistem ini mampu menginformasikan kondisi setiap motor pada saat servis
dan mampu memberikan riwayat dari kendaraan bermotor pada servis
sebelumnya.
3. Sistem ini bisa mencetak ID Card untuk Customer.
4. Supervisior dapat melihat rangkuman laporan tentang workorder kapan
pun dan dalam waktu yang cepat akan tetapi sistem ini masih memiliki
kekurangan yaitu tidak memiliki fasilitas laporan dalam bentuk grafis
untuk direktur..
VI.2 Saran
1. Sebaiknya sistem ini dilengkapi dengan proses penanganan stok.