You are on page 1of 114

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 OF
MOTORCYCLE 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 ENGINEERING


FACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITY
YOGYAKARTA
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 MARIA


Dia yang Selalu Menuntun aku, dan Berjalan Bersamaku dalam suka dan duka hidup ini dan
tidak pernah meninggalkanku....

BAPA & MAMA


Untuk Segala Cinta dan Kasih Sayang yang Tidak Pernah Berakhir...

NITA & HERRY


Untuk Kesempatan menjadi seorang kakak...

KOMUNITAS SANT’EGIDIO
Untuk Anugerah terindah menjadi Saudara dan Sahabatku...
HALAMAN MOTTO

Dalam Kehidupan ini kita tidak dapat melakukan


sesuatu 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 karena


makin 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 selesai J

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 PENDAHULUAN
1.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 TEORI
2.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 Halaman


2. 1 Simbol Use Case 11
2. 2 Simbol Aktor 12
2. 3 Contoh dari E-R Diagram 13
2. 4 Contoh dari Entity 13
2. 5 Contoh dari Atribut 14
2. 6 Contoh dari identifier atau key 15
2. 7 Contoh dari Relasi 15
2. 8 Notasi dari Cardinality 16
2. 9 Simbol Proses menurut Gane dan Sarson 17
2. 10 Simbol dari arus data 17
2. 11 Simbol kesatuan luar menurut Gane dan Sarson 18
2. 12 Simbol penyimpanan data menurut Gane dan Sarson 18
2. 13 Proses pada JSP 19
3. 1 Use Case Diagram 32
3. 2 Context Diagarm 33
3. 3 Gambar Bagan Berjenjang 34
3. 4 Overview Diagram Level 0 35
3. 5 Overview Diagram Level 1 Proses Login 36
3. 6 Overview Diagram Level 1 Proses Update data 37
3. 7 Overview Diagram Level 1 Proses Workorder 38
3. 8 DAD Gabungan 39
3. 9 Context Data Model 40
3. 10 Key Base Data Model 40
3.11 Fully Attribute Data Model 41
3. 12 Relasi Antar tabel 42
4. 1 Gambar User Interface Proses Login 57
4. 2 Gambar User Interface Proses Login Admin 58
4. 3 Gambar User Interface Halaman Menu Admin 59
4. 4 Gambar User Interface Workorder 60
4. 5 Gambar User Interface Lihat Data Pelanggan 61
4. 6 Gambar User Interface Lihat Data Kendaraan 62
4. 7 Gambar User Interface Form Pertama Workorder 63
4. 8 Gambar User Interface Form Pengisian Workorder 65
4. 9 Gambar User Interface Faktur Workorder Customer 67
4.10 Gambar User Interface Cetakan Workorder Customer 68
4. 11 Gambar User Interface ID Card Customer 68
4. 12 Gambar User Interface Lihat Stok Sparepart 69
4.13 Gambar History kendaraan 71
4. 14 Gambar History kendaraan pada tanggal tertentu 73
4. 15 Gambar Detail History Kendaraan 74
4. 16 Gambar Tambah Customer 77
4. 17 Gambar Lihat Data Customer 79
4. 18 Gambar Form Pengisian Data Customer 80
4. 19 Gambar Hapus Data Customer 82
4. 20 Gambar User Interface halaman Supervisior 83
4. 21 Gambar User Interface Laporan Harian 84
4. 22 Gambar Cetakan Laporan Harian 85
4. 23 Gambar User Interface Laporan Bulanan 86
4. 24 Gambar Cetakan Laporan Bulanan 86
4. 25 Gambar Laporan Perservice 87
4. 26 Gambar Laporan Cetakan Perservis 88
DAFTAR TABEL

Tabel Keterangan Halaman


3.1 Tabel Proses Modeling 33
3.2 Tabel Customer 44
3.3 Tabel Kendaraan 44
3.4 Tabel Jenis Motor 44
3.5 Tabel Workorder 45
3.6 Tabel Service 45
3.7 Tabel Sparepart 45
3.8 Tabel Mekanik 46
3.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 membuat
2
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 :

Simbol Use case

Gambar 2.1. 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 :

Simbol 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.


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

Student Is being studied by is enrolled in


Curriculum

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.


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 :

Nama Proses

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 :


Nama 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).
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 :

Nama
kesatuan luar

Gambar 2.11 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

Penyimpanan data

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


presentasi data yang dihasilkan dari suatu proses untuk dikirimkan ke client.

Gambar 2.13 Proses pada JSP

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
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 ConnectionApp
Mencoba membangun connection ke
‘jdbc:mysql://localhost:3306/MYAPP_DB’ dengan user ‘ekobs’ dan
password ‘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.

Login

<< depend on >>

Update data Update data Update Data service


Customer Sparepart

Kasir/ Update data Update data


Update Data
Administrator mekanik Kendaraan Jenis Motor
Supervisior

Melihat riwayat
Service

Merekam workorder Melihat Stok Sparepart

Laporan Workorder
Pertanggal

Laporan Workorder
Perorder service

Gambar 3.1 Diagram Use Case Pengguna Sistem Informasi riwayat servis kendaraan
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 kendaraan Data seluruh Workorder Data Stok, ID
data mekanik,data jenis motor, Card Customer.
data sparepart, data service
Supervisior Username,Password Laporan Workorder pertanggal dan laporan
workorder perjenis servis

Tabel 3.1 Proses Modeling

Data customer, data kendaraan


data mekanik,
data jenis motor
data sparepart, data service Username,Password
Sistem Informasi
Mencetak id
Akuntansi
customer
History Service
Data workorder, History Laporan Workorder pertanggal
kendaraan, id_card, Jumlah stok dan perjenis servis, jumlah stok

Gambar 3.2 Context Diagram


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

Sistem Informasi
riwayat Service
kendaraan

1 2 3 4 5 6 7 8
Proses
Login Proses Update Proses Proses Work Proses History Mencetak ID Membuat Logout
Data Verifikasi Order Service Customer Laporan.
User

1.1p 1.1p 1.4p


3.1p
Login Update Data Update
Admin Customer Kendaraan Merekam Workorder
Sparepart dan service
1.2p 1.2p
1.5p
3.2p
Login Update Jenis
Update
Supervisior Motor
Sparepart Proses Cek Jumlah
Sparepart
1.3p

Update Data
Teknisi

Gambar 3.3 Diagram Berjenjang


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.

a. Administrator A
Pesan Kesalahan
Username dan password
sbg admin Username dan password
sbg supervisior c. Supervisior B
Pesan Kesalahan

1 Username dan password sbg admin


Update data customer, Data jenis motor yang
2 ditelah diupdate
data teknisi/mekanik,
Login data kendaraan, D2 Jenis Motor
data spare part,data service Proses Update
Data Detail Data jenis motor

Data Detail data kendaraan


Data jenis layanan Data Sparepart yang
customer Detail ditelah diupdate
Data kendaraan yang yang ditelah diupdate
yang Jenis
ditelah ditelah diupdate layanan
diupdate
D6 Kendaraan D4 Service
ID_Customer
Data jenis Detail Data Sparepart
ID_Customer tidak valid Data mekanik yang layanan
ditelah diupdate Detail Data D5 Sparepart
Mekanik
3
Data Sparepart

Proses D3 Mekanik
verifikasi
user
Username dan password
sbg admin
ID_Customer Data workorder 4

ID_Customer valid Proses Username dan password


D1 Customer member sbg admin
Detail WorkOrder Data Pesan Sparepart
Data Pesan Sparepart
Customer Data Customer
Data Stok Sparepart A
Input data untuk work order Cetakan workorder
Data workorder untuk Kasir/admin Data Pesan Data Stok Sparepart
Sparepart
Data kendaraan
D5 Sparepart
Data Workorder Informasi
B History
D6 Kendaraan
D7 Service
Workorder
Username dan kendaraan
password valid sebagai
supervisior,

Tanggal periode
7 workorder,
D7 Workorder Data workorder 5
Proses Laporan Proses
Workorder Laporan workorder History
Service
Data Customer 6

D1 Customer member Mencetak ID Username dan password sbg admin


Customer Input data Customer untuk ID

Cetakan ID Customer
A

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

Username, Password,
1 Sebagai Admin, yang
valid a. Administrator
Username, Password,
Sebagai Admin
11p
a. Administrator
Login Admin D8 Admin
Detail Data Mekanik

1.1p
D9 Supervisior
Username, Password, Login Detail Jenis layanan
b. Administrator Sebagai Supervisior Supervisior

b. Administrator
Username, Password,
Sebagai Supervisior
yang valid

Gambar 3.5 DAD Level 1 proses 1 (proses Login)


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.1p
Data customer yang
Proses Update telah diupdate
D1 Customer Member
Data
Customer Detail Data customer

2.2p Data jenis motor


yang
Proses Update ditelah diupdate D2 Jenis motor
Jenis Motor
Detail jenis motor
Update data customer,
data teknisi/mekanik,
data jenis layanan,
data spare part. 2.3p
data service, username dan Data mekanik yang
a. Administrator password valid Proses Update ditelah diupdate
Data Teknisi D3 Mekanik
Detail Data Mekanik

2.4p
Data jenis layanan yang
ditelah diupdate
Proses Update
Jenis layanan D4 Service
dan harga Detail Jenis layanan

2.5p
Data Sparepart yang
ditelah diupdate
Proses Update D5 Sparepart
Sparepart Detail data Sparepart

Data Kendaraan yang


2.6p telah diupdate
D8 Kendaraan
Proses Update
Kendaraan Detail data Kendaraan

Gambar 3.6 DAD Level 1 proses 2 (proses update data)


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.

Input data customer, 3


data teknisi/mekanik,
data jenis layanan,
data spare part.
data service untuk WO Data customer D1 CustomerMember
3.1p
a. Administrator Data jenis motor
Merekam D2 Jenis Motor
Workorder Data mekanik
Data workorder D3 Mekanik
D6 Workorder
Data Sparepart
D5 Sparepart
Data Workorder
Data service
D4 Service

Username dan password


supervisior valid, harga
Sparepart
b.Customer 6

Lihat Stok Sparepart 3.2p


Lihat Stok Sparepart
Data Stok Sparepart
Proses Cek D5 Sparepart
data Data Stok Sparepart
Sparepart

Faktur Sparepart
Faktur Service

Gambar 3.7 DAD Level 1 proses 3 (proses workorder)


3.6.6 DAD Gabungan
ID_Customer
2
ID_Customer tidak valid
ID_Customer valid
Proses 3.1p
Verifikasi user Data Workorder
ID_Customer Merekam b.Customer
Data customer yang Data customer Workorder
2.1p telah direkam D1 CustomerMember
Data jenis motor
Merekam Data Data mekanik
Customer

2.2p Data jenis motor yang


ditelah direkam D2 Jenis Motor
Merekam
Jenis Motor Data workorder
D7 Workorder
Username dan password
admin yang valid Data mekanik yang
Update data customer, 2.3p ditelah direkam
data teknisi/mekanik, D3 Mekanik
data kendaraan,
data spare part.
Merekam Data
1.1p data service Mekanik
Data service yang
Login Admin Username dan ditelah direkam Data service
password 2.4p D4 Service

Merekam Data
Service
Username dan
password sebagai D9 Admin
admin
Pesan error Data Sparepart dan
Data Service
2.6p
Data kendaraan yang
a. Administrator ditelah direkam
Merekam D6 Kendaraan Informasi History Service
Kendaraan Kendaraan,
Data pesan sparepart 3

Data Sparepart
a.Administrator Proses
History
2.5p Data Stok Sparepart
Data Sparepart yang
Service
ditelah direkam
Merekam D5 Sparepart 3.2p
Sparepart Cetakan ID
Proses cek Customer
data
sparepart
D8 Supervisior Input data
Customer
Data pesan sparepart
untuk ID
Data Stok Sparepart
Username dan password
7 5
6 Proses Mencetak ID Data Customer
Pesan error Login Membuat Customer D1 CustomerMember
b. Supervisior Supervisior Username dan password Laporan
Supervisior valid
Username dan password
sebagai supervisior
Laporan Workorder

Gambar 3.8 DAD Gabungan


3. 7 Logical Design

3. 7.1 Data Modeling

3. 7.2 Context Data Model

milik lakukan
Customer Kendaraan Service

Punya

Jenis Motor

Gambar 3.9 Context Data Model

3.7.3 Key Base Data Model

Mekanik

Primary Key
Id_mekanik
[PK1]

kerja

Customer Service
Kendaraan Workorder
milik
Primary Key lakukan Id_workorder [PK1]
No_polisi[FK1] lakukan Primary Key
Id_customer Primary Key
No_polisi[PK1] Id_service[FK2] Id_service[PK1]
[PK1] [FK1]
Id_jenismotor [FK1] Id_Mekanik[FK3
Id_customer [FK2]

Punya
Punya

Detailwo Sparepart
Primary Key
Nomor[PK1]
Primary Key
Jenis Motor Id_sparepart
Id_sparepart
[PK1]
Pakai [PK1]
Id_workorder [FK1]
Primary Key
Id_jenismotor
[PK1]

Gambar 3.10 Key Base Data Model


3. 7.4 Fully Attribute Data Model

Mekanik
Id_mekanik
[PK1]
Nama
Alamat
Kota Lahir
No_Telp
Pendidikan

kerja

Workorder
Customer Kendaraan Id_workorder [PK1]
lakukan
milik No_polisi[FK1] lakukan Service
Id_customer No_polisi[PK1] Id_service[FK2]
[PK1] Id_jenismotor [FK1] Id_Mekanik[FK3]
Id_service[PK1]
Nama Id_customer Tgl_service
Nama Service
Alamattinggal [FK2] Km
Jenis Service
Kota Keterangan Keluhan_pemakai
Uraian Kerja
Pekerjaan KeteranganWO Ongkos_Kerja
No_ktp
Pekerjaan
Punya
Tgl_lahir

Punya

Detailwo
Sparepart
Jenis Motor Id_workorder [PK1]
Id_jenismotor Nomor[PK2] Pakai Id_sparepart
[PK1] Id_sparepart [PK1]
Jenis Motor [FK1] Nama Sparepart
Warna Jumlah Jenis Sparepart
Model Harga Sparepart
Thn_pembuatn Jumlah
Keterangan

Gambar 3.11 Fully Attribute Data Model


3.7.5. Relational Model

Dari tabel-tabel tersebut, seluruhnya saling berelasi yang ditunjukkan

dengan gambar berikut :

Customer Kendaraan

ID_Customer* No_Polisi*
Nama Workorder ID_Customer**
Alamat ID_Produk**
Kota ID_JenisMotor**
No_KTP ID_WorkOrder* Keterangan
Pekerjaan No_Polisi**
Tgl_Lahir ID_Service**
No_Telp ID_Mekanik
Keterangan Tgl_Servis
Km Jenis Motor
Pajak
Keluhan Pemakai
Kasir
Keterangan ID_JenisMotor*
Jenis
Warna
Service Merk
Thn_Pembuatan
ID_Service* Model
ID_Mekanik** Keterangan
Nama_Service
Jenis_service
Uraian_kerja
Keterangan_kerja
Ongkos_Kerja Detailwo

Id_workorder*
Nomor*
id_sparepart
jumlah Mekanik
Sparepart ID_Mekanik*
Nama
ID_Sparepart* Alamat
Nama_SP Kota
Jenis_SP No_Telp
Qty Pendidikan terakhir
Harga_SP Tgl_Lahir
Keterangan_SP

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 di


servis:

Nama field Tipe Data Panjang Keterangan

id_customer * Varchar 10 Id customer


nama Varchar 30 Nama customer
alamat Varchar 30 Alamat Customer
kota Varchar 15 Kota Customer
no_ktp Varchar 20 No KTP Customer
pekerjaan Varchar 20 Pekerjaan Customer
tgl_lahir Date/time 25 Tanggal lahir Customer
no_telp int 15 No Telp Customer
keterangan Varchar 50 Keterangan
Tabel 3.2 Tabel Customer

Tabel Kendaraan

Tabel ini berisi data-data kendaraan yang melakukan servis:

Nama Field Tipe Data Panjang Keterangan


no_polisi * Varchar 15 No Polisi Kendaraan
id_customer** Varchar 10 ID customer
id_jenisMotor** Varchar 10 ID Jenis motor
keterangan Varchar 50 Keterangan
Tabel 3.3 Tabel Kendaraan

Tabel Jenis Motor


Tabel ini berisi data-data jenis kendaraan:

Nama Field Tipe Data Panjang Keterangan


id_jenismotor* Varchar 15 ID Jenis Motor
jenis Varchar 10 Jenis Kendaraan
merk Varchar 10 Merk Kendaraan
warna Varchar 10 Warna Kendaraan
thn_pembuatan Date/time Tahun Pembuatan
model Varchar 10 Model Kendaraan
keterangan Varchar 50 Keterangan
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 Workorder


no_polisi ** Varchar 15 No Polisi Kendaraan
id_service** Varchar 10 ID Servis
id_mekanik** Varchar 10 Id Mekanik
tgl_servis Date/time Tanggal servis
km int 10 Kilometer kendaraan
pajak Varchar 4 Pajak
keluhan_pemakai Varchar 50 Keluhan pemakai
kasir Varchar 10 Nama kasir
keterangan Varchar 50 Keterangan
Tabel 3.5 Tabel Workorder
Tabel Service

Tabel ini berisi data-data macam-macam servis :


Nama Field Tipe Data Panjang Keterangan
id_service* Varchar 10 ID Service
id_mekanik* Varchar 10 ID Mekanik
nama_service Varchar 15 Nama servis
jenis_service Varchar 15 Jenis servis
uraian_kerja Varchar 30 Uraian kerja
ongkos_kerja Varchar 15 Biaya kerja
keterangan_kerja Varchar 30 Keterangan
Tabel 3.6 Tabel Service
Tabel Sparepart

Tabel ini berisi data-sparepart dan berisi jumlah stok dari sparepart
tersebut:
Nama Field Tipe Data Panjang Keterangan
id_sparepart* Varchar 10 ID Spare part
id_service** Varchar 10 ID Service
nama_SP Varchar 15 Nama Spare part
jumlah Varchar 10 jumlah sparepart
jenis_SP Varchar 10 Jenis Spare part
harga_SP Varchar 15 Harga Spare part
keterangan_SP Varchar 30 Keterangan
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 Mekanik


nama Varchar 15 Nama mekanik
alamat Varchar 30 Alamat mekanik
kota Varchar 15 Kota alamat mekanik
no_Telp int 15 No telepon
pendidikan_terakhir Varchar 15 Pendidikan terakir
tgl_Lahir Date/time Tanggal lahir
keterangan Varchar 30 keterangan
Tabel 3.8 Tabel Mekanik

Tabel detailwo
Tabel 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 workorder


nomor* int 15 nomor detail
id_sparepart** Varchar 30 id sparepart
jumlah Varchar 15 jumlah sparepart
Tabel 3.9 Detail WO

Keterangan : * = Primary Key


** = Foreign Key
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.

Username :

Password :

Login

1. Cetakan ID Customer

Ini merupakan desain untuk id card customer

HEADER

ID CUSTOMER
NAMA CUSTOMER
ALAMAT CUSTOMER
2. Dialog input Data Customer

Halaman admin untuk Input data customer


HEADER

Ubah / Hapus

Home ID_Customer
Nama
Customer
No KTP
Kendaraan Alamat
Kota
Mekanik
No_KTP
Service
Tanggal Lahir
Sparepart

Stok Sparepart No_Telp


Keterangan

Tambah Reset

3.Dialog input Data Kendaraan

HEADER

Home

Customer
No Polisi
Kendaraan ID_Customer
ID Produk
Mekanik
ID Jenis Motor
Service Keterangan
Sparepart

Stok Sparepart

Tambah Reset
4.Dialog input Data Mekanik

HEADER

ID_Mekanik
Nama
Home Tgl_Lahir
Alamat
Customer
Kota
Kendaraan
Pendidikan Akhir
Mekanik No_Telp

service
Keterangan

Sparepart

Stok Sparepart

Tambah Reset

5.Dialog input Data Jenis Layanan

HEADER

Home
ID_Service
Customer Nama Service
Jenis Service
Kendaraan
Uraian Kerja
Mekanik Biaya
Keterangan
Jenis_service

Sparepart

Stok Sparepart

Tambah Reset
6.Dialog input Data Produk/sparepart yang diservice

HEADER

Home

Customer ID_Sparepart
Nama SP
Kendaraan
Jenis Komponen
Mekanik Harga
Keterangan
Jenis_service

Sparepart

Stok Sparepart

Tambah Reset

7.Dialog input Stock Sparepart

HEADER

Home

Customer
Nomor
Kendaraan
Id_sparepart
Mekanik Jumlah Stok

Jenis_service

Sparepart

Stok Sparepart
Tambah Reset
8.Dialog input Workorder
HEADER Tanggal Service

ID_Workorder
Home
No_Polisi
ID_Service
Workorder
KM
Lihat Stok SP Keluhan Pemakai:
Lihat History

Keterangan:

No ID_SP NamaSP Qty @ Biaya

RP

Total Biaya Service dan biaya sparepart Rp.

Total Biaya Part


Submit Reset
9.Dialog input perubahan harga sparepart oleh supervisior

HEADER

No ID_SP NamaSP Qty @ Biaya

RP

Submit Reset
Logout

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


HEADER

No ID_SP NamaSP Jumlah Stok @ RP

11. Laporan workorder sparepart harian

Tanggal HEADER

ID_WO No.Polisi Nama Pemilik ID_SP Qty SP ID_Service Total


12. Laporan Service tiap pelanggan

HEADER
Tanggal

Nama
Nama

ID_WO Tgl_Service No_Polisi Sparepart Qty Service KM Keterangan Total


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 :

<%@ include file="koneksi.jsp" %>

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 :
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 Yang
Null!!!!!\");history.back()</script></body>");}

if (pemakaix.equals("") || sandi.equals(""))
{out.println("<body bgcolor=\"#FFFFFF\"><script language=\"JavaScript\">alert(\"Maaf Ada Data Yang
Kosong!!!!!\");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 Tidak
Berhak 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,customer
c,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, jenismotor
j,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 di
isi!!!!!\");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 BEGIN
update 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 customer
WHERE 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 sparepart
LIMIT "+ currentRs +",5");

out.println("<TABLE BORDER=\"1\">");
out.println(
"<TR><TH>ID SP</TH><TH>NAMA SP</TH><TH>JENIS SP</TH><TH>HARGA
SP</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 WHERE
kend.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("SELECT
w.id_workorder,s.nama_service,w.tgl_servis,w.km,w.keluhan_pemakai,w.keteranganwo FROM workorder
w,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>TGL
SERV</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 AND
kend.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("SELECT
w.id_workorder,s.nama_service,w.tgl_servis,w.km,w.keluhan_pemakai,w.keteranganwo FROM workorder
w,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 FROM
workorder w,detailwo d,sparepart s WHERE d.id_workorder=w.id_workorder AND
d.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>NAMA
SPAREPART</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(\"Format
data 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 Yang
perlu 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>ALAMAT
TINGGAL</TH><TH>KOTA</TH><TH>NO KTP</TH><TH>PEKERJAAN</TH><TH>TGL
LAHIR</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 kapital
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(\"Format data 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("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 di
isi!!!!!\");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.jumlah
FROM workorder w, sparepart s, detailwo d, service serv
WHERE w.id_workorder=d.id_workorder AND d.id_sparepart=s.id_sparepart AND
w.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>Harga
Serv</TH><TH>Km</TH><TH>Keterangan</TH><TH>Keluhan</TH><TH>Biaya SP</TH><TH>Total
Biaya</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.

You might also like