Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
SISTEM INFORMASI PEMESANAN KASET DAN CD DENGAN
MANAJEMEN TRANSAKSI MENGGUNAKAN JSP DAN MySQL (Studi Kasus di Bulletin Music Shop, Yogyakarta)
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana
Teknik Jurusan Teknik Informatika
Disusun oleh :
Nama : Yuwinda Aryono
NIM : 035314044
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
i
THE INFORMATION SYSTEM OF CASSETTE AND CD
RESERVATION WITH TRANSACTION MANAGEMENT
USING JSP AND MySQL
(A CASE STUDY AT BULLETIN MUSIC SHOP, YOGYAKARTA)
A Thesis
Presented as Partial Fullfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By :
Name : Yuwinda Aryono
Student Number : 035314044
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
ii
HALAMAN PERSEMBAHAN
Ku persembahkan Karyaku untuk :
…
Allah Bapa Yang Maha Kuasa yang selalu memberiku karunia
dan anugrah serta selalu mengabulkan doa-doaku.
…
Orang tua ku yang telah membesarkan dan mendidik ku, terima
kasih atas perhatian dan pengorbanan yang memberikan yang
terbaik untuk ku.
…
Kakak-kakakku yang selalu mengalah untuk ku dan atas
semangat serta dukungannya
…
Keluarga besar yang selalu memberi dukungan dan doa.
…
Seseorang yang selalu menemani ku dalam suka dan duka,
terima kasih juga atas dukungan dan doanya.
…
Sahabat-sahabatku yang memberikan keceriaan dan smangat
yang tidak akan pernah aku lupakan
v
HALAMAN MOTTO
Segala sesuatu pasti bisa kita capai
Dengan harapan dan hasrat
Dengan usaha dan kerja keras untuk mencapainya
Tanpa usaha dan kerja keras
Maka tidak akan mungkin mendapatkan yang kita ingin
vi
vii
ABSTRAKSI
Sistem informasi pemesanan kaset dan CD ini dibuat untuk membantu
Bulletin Music Shop untuk menangani proses pemesanan secara online, dengan
tujuan customer yang ingin mendapatkan kaset CD bisa memesan terlebih dulu,
sehingga tidak takut kehabisan kaset CD yang diinginkan.
Sistem ini dibuat untuk multi user dengan menggunakan manajemen
transaksi dengan level isolasi serializable. Sistem dijalankan pada Sistem Operasi
Windows, dengan menggunakan JSP sebagai bahasa pemrograman, dan Apache
tomcat sebagai Web Server, serta MySQL sebagai database sistem yang dibuat.
Dengan adanya sistem pemesanan secara online dengan manajemen
transaksi, maka customer yang diinginkan dan bila kaset yang tersedia tinggal satu
dan customer yang memesan lebih dari satu pada waktu yang bersamaan maka
hanya salah satu customer yang mendapatkan.
viii
ABSTRACT
The information system of cassette and CD reservation pretended to
help. Bulletin Music Shop, for reservation process by online. In order to, the
customer gets cassette and CD, with order first so that, it impossible cassette and
CD loss.
The system’s made for Multiuser with using transaction management of
isolation level serializable. It’s operated on Windows operation system, with JSP
as programme language, Apache tomcat as web server, and MySQL as database
system.
Thus, online reservation system with transaction management customer
can order cassette and CD, what they are want. If cassette and CD is only one,
while there are two instructins on the same time, then only one customer has
found it.
ix
KATA PENGANTAR
Puji serta syukur penulis panjatkan kepada Yesus Kristus, atas segala cinta
kasihnya penulis dapat menyelesaikan tugas akhir ini dengan baik dan lancar.
Penulis menyadari bahwa ada begitu banyak pihak yang telah memberikan
bantuan dan perhatian selama penulis mengerjakan tugas akhir ini. Oleh karena itu
penulis ingin mengucapkan terima kasih antara lain kepada :
1. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Dosen Pembimbing I, yang
telah memberikan bimbingan, dukungan, dan fasilitas yang mendukung,
sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan baik.
2. Ibu Ridowati Gunawan, S.Kom., M.T., selaku pembimbing akademik Jurusan
Teknik Informatika angkatan 2003.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
4. Ibu Agnes Maria Polina, S.Kom., M.Sc., Ibu Ridowati Gunawan, S.Kom.,
M.T., dan Bapak JB. Budi Darmawan, selaku panitia penguji yang telah
memberikan banyak kritik dan saran demi sempurnanya tugas akhir penulis.
5. Bapak dan Ibu dan Keluarga besarku yang telah memberikan dukungan dan
semangat serta pengorbanannya selama ini.
6. Mas dan Mbak penulis semua, terutama mas yudi terima kasih atas dukungan
dan fasilitas yang diberikan untuk menunjang studi penulis.
7. Teman dan sahabat Teknik Informatika 2003 yang telah memberi banyak
pengalaman selama ini.
x
8. Dan seluruh pihak yang tidak dapat penulis sebutkan satu per satu yang telah
membantu penulis dalam menyelesaikan tugas akhir ini.
Akhir kata, saya menyadari bahwa dalam pembuatan tugas akhir ini
masih banyak kekurangan dan keterbatasa. Oleh karena itu saya mengharapkan
kritik dan saran dari pembaca agar laporan ini dapat berguna bagi semua pihak.
Yogyakarta, Juli 2009
Penulis
xi
DAFTAR ISI
Halaman Judul ……………………………………………………………...i
Halaman Judul ……………………………………………………………..ii
Halaman Persetujuan ……………………………………………………………iii
Halaman Pengesahan …………………………………………………………….iv
Halaman Persembahan…………………………………………………………….v
Halaman Motto …………………………………………………………….vi
Halaman Pernyataan ……………………………………………………………vii
Abstraksi …………………………………………………………..viii
Abstract ………………………….…………………………………ix
Kata Pengantar ……………………………………………………………..x
Daftar Isi ………………………………………………………........xii
Daftar Tabel …………………………………………………………...xvi
Daftar Gambar ………………………………………………………..…xvii
Daftar Listing ………………………………………………………........xx
BAB I PENDAHULUAN ……………………………………………………..1
1.1 Latar Belakang ……………………………………………………..1
1.2 Perumusan Masalah ……………………………………………………..2
1.3 Tujuan …………………………………..........................................2
1.4 Batasan Masalah ……………………………………………………..2
1.5 Metodologi ……………………………………………………………..3
1.6 Sistematika Penulisan ……………………………………………………..4
xii
BAB II LANDASAN TEORI ..……………………………………………6
2.1 Sistem, Informasi, Sistem Informasi ……………………………………..6
2.1.1 Sistem ……………………………………………………………..6
2.1.2 Informasi…………………………………………………………..6
2.1.3 Sistem Informasi…………………………………………………..7
2.2 Transaksi Manajemen …………………………………………………….8
2.2.1 Transaksi Support …………………………………………….8
2.2.2 Concurrency Control ……………………………………………12
2.2.3 Serializability & Recoverability………………………………….12
2.3 JSP, Servlet & Tomcat…………………………………………...13
2.3.1 JSP ……………………………………………………………13
2.3.2 Arsitektur JSP ……………………………………………………15
2.3.3 Kode JSP ……………………………………………………15
2.3.4 Ekspresi JSP ……………………………………………………16
2.3.5 Direktif JSP ……………………………………………………17
2.3.6 Tag Deklaratif ……………………………………………………18
2.3.7 Servlet ……………………………………………………………18
2.3.8 Tomcat……………………………………………………………20
2.4 Web …………………………………………………………………....22
2.5 HTML ………………...………………………………………………….23
2.6 MySQL…………………………………………………………………...26
2.7 Use Case………………………………………………………………….28
2.8 Data Flow Diagram………………………………………………………29
xiii
2.9 Entity Relation……... ……………………………………………………31
BAB III ANALISA & PERANCANGAN SISTEM ……………………33
3.1 Analisa & Perancangan Sistem…………………………………………..33
3.1.1 Gambaran Sistem Lama & Sistem Baru…………………………33
3.1.1.1 Gambaran Sistem Lama………………………………….33
3.1.1.2 Gambaran Sistem Baru …..………………………..33
3.1.2 Orang yang terlibat dalam sistem………………………………...34
3.1.3 Requirement Analysis……………………………………………35
3.1.4 Logical design (Pemodelan Proses dan Data)……………………36
3.1.4.1 Proses Modeling………………………………………….36
3.1.4.1.1 Context Diagram…………………………………37
3.1.4.1.2 Diagram Berjenjang……………………………...38
3.1.4.1.3 Overview Diagram……………………………….39
3.1.4.2 Data Modeling……………………………………………41
3.2 Desain Sistem…………………………………………………………….42
3.2.1 Desain Database………………………………………………….42
3.2.2 Desain User Interface…………………………………………….44
BAB IV IMPLEMENTASI SISTEM ……………………………………47
4.1 Karakteristik Sistem……………………………………………………...47
4.2 Kebutuhan Sistem………………………………………………………..47
4.3 Pembuatan Database Sistem Informasi Pemesanan Menggunakan
Manajemen Transaksi dengan MySQL…………………………………..48
4.4 Koneksi JSP & MySQL………………………………………………….49
xiv
4.5 User Interface…………………………………………………………….50
4.5.1 User Interface User Lihat Data Kaset……………………………50
4.5.2 User Interface User Pesan………………………………………..54
4.5.3 User Interface Admin…………………………………………….60
4.5.4 User Interface Admin untuk Daftar………………………………64
4.5.5 User Interface Admin Proses Menambah Data…………………..65
4.5.6 User Interface Admin Proses Ubah Data Kaset………..………...67
4.5.7 User Interface Admin Proses Hapus Data Kaset…………………70
4.5.8 User Interface Admin Lihat Data Pesan Kaset…………………..73
BAB V ANALISA HASIL ……………………………………………………77
5.1 Pengujian Sistem Informasi .…………………………………………...77
5.2 Kelebihan dan Kekurangan Sistem .…………………...………………79
5.2.1 Kelebihan Sistem ……………………………………………79
5.2.2 Kekurangan Sistem ……………………………………………80
BAB VI PENUTUP ……………………………………………………………81
6.1 Kesimpulan ……………………………………………………………81
6.2 Saran ……………………………………………………………………81
xv
DAFTAR TABEL
2.1 Daftar Obyek Implisit ……………………………………………………13
2.2 Tag-tag HTML…………………………………………………………...24
3.1 Input dan Output Sistem………………………………………………….36
3.2 Admin…………………………………………………………………….42
3.3 Kaset…………………………………………………………………...…42
3.4 Userpsn………………………………………………………………...…43
3.5 Pesan ..……...………………………………………………………...…43
3.6 detailpesan………………………………………………………………..43
4.1 Admin…………………………………………………………………….48
4.2 Kaset…………………………………………………………………...…48
4.3 Pesan .……………………………………………………………...……48
4.4 Userpsn………………………………………………………………...…48
4.5 detailpesan………………………………………………………………..48
xvi
DAFTAR GAMBAR
2.1 Siklus Informasi…………………………………………………………...7
2.2 State Transaction…………………………………………………………..9
2.3 Database dan Katalog Sistem…………………………………………….11
2.4 Arsitektur Servlet ………………………………………………...….18
2.5 Cara Kerja Servlet………………………………………………………..19
2.6 Simbol Use Case…………………………………………………………28
2.7 Simbol Actor……………………………………………………………..28
2.8 Simbol Use Case Association Relationship……………………………...29
2.9 Simbol Proses…………………………………………………………….30
2.10 Simbol External Agent………………………………………………...…30
2.11 Simbol Arus Data………………………………………………………...30
2.12 Simbol Data Source………………………………………………………31
2.13 Simbol Entitas……………………………………………………………31
2.14 Lambang pada ER………………………………………………………..32
3.1 Use Case Admin ……………………………………………………35
3.2 Use Case User ……………………………………………………………36
3.3 Context Diagram…………………………………………………………37
3.4 Diagram Berjenjang Admin ……………………………………………38
3.5 Diagram Berjenjang User ……………………………………………39
3.6 Overview Diagram Level 0 untuk admin…………………………...……39
3.7 Overview Diagram Level 0 untuk user………………………………..…40
xvii
3.8 Overview Diagram Level 1 proses 2……………………………………..40
3.9 Overview Diagram Level 1 proses 3……………………………………..41
3.10 Entity Relational Diagram………………………………………………..41
3.11 Relasi Antar table………………………………………………………...42
3.12 Tampilan Lihat Kaset…………………………………………………….44
3.13 Tampilan Pesan Kaset…………………………………………………....44
3.14 Tampilan Home Admin…………………………………………………..45
3.15 Tampilan Tambah Data kaset…………………………………………….45
3.16 Tampila Ubah atau Hapus……………………………………………..…46
3.17 Tampilan Lihat Pesan…………………………………………………….46
4.1 Lihat Kaset……………………………………………………………….50
4.2 Pesan Kaset……………………………………………………………....54
4.3 Input Data Diri Pemesan……………………………………………........54
4.4 Home Admin……………………………………………………………..60
4.5 Tambah Admin………………………………………………………...…64
4.6 Tambah kaset…………………………………………...………………..65
4.7 Output Simpan Kaset…………………………………………………….67
4.8 Daftar Ubah Hapus Kaset………………………………………………...67
4.9 Form Ubah Kaset…………………………………………………...……69
4.10 Form hapus Kaset …………………………………………………....70
4.11 Lihat Data Pesan ……………………………………………………73
4.12 Lihat detail pemesan ……………………………………………………73
5.1 User yang mendapat kaset………………………………………………..77
xviii
5.2 User yang mendapat kaset 2……………………………………………..78
5.3 User yang tidak mendapat kaset………………………………………....79
xix
DAFTAR LISTING
4.1 Koneksi.jsp …………………………………………………………....49
4.2 lihat kaset ...….………………………………………………………51
4.3 definisi.jsp ……………………………………………………………52
4.4 p1.jsp …………………………………………………………………....55
4.5 store procedure jmlkaset .……...……………………………………57
4.6 vallogin.jsp ……………………………………………………………60
4.7 otentikasi.jsp …………………………………………………………....62
4.8 hpsartis2.jsp ………………..…………………………………………..71
4.9 lihatpesan.jsp ……………..…………………………………………..…74
Daftar Pustaka ……………………………………………………………………82
xx
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Saat ini proses pembelian kaset dan CD lagu yang sering ditemui masih
dilakukan secara manual dengan mendatangi toko kaset langsung untuk mencari
kaset yang diinginkan.
Masalah timbul ketika kaset atau CD yang dicari ternyata stock habis
sehingga customer kecewa
Dengan adanya internet saat ini dapat dimanfaatkan untuk membuat sistem
pemesanan kaset dan cd secara online, dengan demikian customer lebih mudah
untuk memesan sehingga tidak takut kehabisan kaset atau CD yang diinginkan
ketika datang ke toko. Namun pemesanan secara online tanpa transaksi
manajemen sering menimbulkan masalah, jika ada dua atau lebih orang memesan
kaset CD judul yang sama pada waktu yang hamper bersamaan dan kaset tersebut
hanya tinggal satu. Dengan adanya transaksi manajemen maka akan ada
pengaturan transaksi yang dilakukan pada saat bersamaan sehingga proses update
database dapat dilakukan dengan benar dan masalah lost update problem dapat
diatasi.
2
Dari latar belakang itu penulis tertarik untuk membuat sistem pemesanan
kaset dan cd secara online dengan transaksi manajemen menggunakan JSP dan
MySQL.
1.2. Perumusan Masalah
Bagaimana membuat sebuah sistem pemesanan kaset dan CD secara
online dengan manajemen transaksi?
1.3. Tujuan
Tujuan dari Tugas Akhir ini adalah mengembangkan sistem informasi
pemesanan kaset dan CD secara online dengan melibatkan manajemen transaksi.
1.4. Batasan Masalah
1. Sistem yang dikembangkan hanya menangani pemesanan CD dan
kaset saja tetapi tidak menangani transaksi penjualan ke customer.
2. Transaksi Manajemen mengatasi bila stock kaset tinggal satu,
namun yang akan memesan lebih dari satu.
3. Sistem yang dibuat tidak memperhatikan masalah keamanan, yang
meliputi keamanan jaringan.
4. Tools yang digunakan dalam pembuatan sistem pemesanan kaset
dan CD ini antara lain :
a. Sistem operasi yang digunakan adalah Windows XP.
3
b. Program menggunakan Software dari JSP (Java Server
Pages).
c. Database menggunakan software MySQL.
d. Web menggunakan Macromedia Dreamweaver MX.
5. Studi kasus dilaksanakan di toko kaset Bulletin (Bulletin Music
Shop) Yogyakarta.
1.5. Metodologi
Metodologi yang digunakan adalah studi kasus dengan langkah-langkah
sebagai berikut :
1. Observasi
Melakukan observasi di Bulletin dan melakukan wawancara kepada
pihak Bulletin yang berwenang.
2. Studi Pustaka
Mempelajari Referensi tentang JSP (Java Server Pages) yang akan
digunakan sebagai piranti perangkat lunak pengembangan sistem
informasi.
3. Pembuatan sistem pemesanan kaset dan cd online, dengan tahap-tahap
sebagai beikut :
a. Analisa Sistem
Merupakan tahapan untuk pengumpulan kebutuhan yang
diperlukan dalam pembuatan sistem, dilakukan melalui
wawancara dan observasi.
4
b. Desain Sistem
Perancangan interface dan database yang berkaitan dengan
pembuatan sistem pemesanan kaset dan cd online.
c. Implementasi Sistem
Coding program sesuai dengan desain yang sudah dirancang.
d. Uji Coba Sistem
Testing digunakan untuk mencari kesalahan dan kekurangan
yang terdapat dalam pembuatan program.
1.6. Sistematika Penulisan
1. Pendahuluan
Bab ini menjelaskan latar belakang masalah diperlakannya
pembuatan Pemesanan kaset dan cd online, tujuan dan manfaat
penelitian, metodologi penelitian.
2. Landasan Teori
Bab ini berisi landasan teori yang mendukung kegiatan
penelitian, baik dalam analisa, desain, dan implementasi sistem.
3. Analisis dan Desain Sistem
Bab ini menjelaskan tahap-tahap desain sistem yang terdiri dari
analisis dan perancangan sistem yang akan dibuat.
4. Implementasi Sistem
Bab ini menjelaskan proses pengubahan analisis dan
perancangan menjadi kode-kode program.
5
5. Analisis dan Hasil Implementasi.
Berisi hasil analisis pengujian sistem, kelebihan serta
kekurangan sistem.
6. Kesimpulan dan Saran
Berisi kesimpulan dari sistem yang telah dibuat dan saran untuk
pengembangan sistem lebih lanjut.
6
BAB II
LANDASAN TEORI
2.1. Sistem, Informasi, dan Sistem Informasi
2.1.1 Sistem
Sistem adalah kumpulan objek seperti manusia, sumber daya, konsep, dan
prosedur yang terorganisasi, saling berinteraksi, dan terpadu untuk mencapai
tujuan tertentu. (Whitten, 2001)
Sistem merupakan sekelompok elemen-elemen yang terintegrasi dengan
maksud yang sama untuk mencapai suatu tujuan. (Raymond, 1995). Pendapat ini
juga didukung oleh Jogiyanto, H.M. dalam bukunya Pengenalan Komputer(1995)
yang mengatakan bahwa sistem adalah suatu jaringan kerja dari prosedur yang
saling berhubungan bersama-sama untuk melakukan suatu kegiatan atau
menyelesaikan tujuan tertentu.
2.1.2 Informasi
Informasi bersumber dari data akurat yang merupakan gambaran dari
kenyataan pada saat tertentu. Data yang ada kemudian diolah melalui suatu model
tertentu sehingga akan menghasilkan suatu informasi. Informasi yang dihasilkan
dapat untuk mendukung pengambilan keputusan dan melakukan tindakan
7
selanjutnya yang akan menghasilkan sejumlah data sebagai masukan (input),
kemudian diproses lagi dan demikian seterusnya sehingga akan membentuk suatu
siklus yang disebut Information Cycle/Siklus Informasi. (John Burch).
Proses (Model)
BasisdatInput data
Data (ditangka
Hasil-hasil
Keputusan
Penerima
Output data
Gambar 2.1. Siklus Informasi
Hidup matinya suatu organisasi tergantung pada informasi yang berkualitas atau
memiliki informasi yang akurat, tepat waktu, dan relevan. Agar suatu organisasi
dapat berkembang dengan baik, diperlukan suatu informasi pendukung yang
berkualitas dan bernilai. Nilai informasi ditentukan oleh dua hal, yaitu manfaat
dan biaya mendapatkan informasi tersebut, serta informasi tidak dapat ditaksir
keuntungannya dengan materi, tetapi dapat ditaksir nilai efektifitasnya.
2.1.3 Sistem Informasi
Sistem Informasi adalah sekumpulan orang, data, proses, interface, dan
geografi yang terintegrasi untuk mendukung dan meningkatkan operasional bisnis
hari ke hari, sedemikian rupa sehingga dapat menyelesaikan masalah dan
8
memberikan informasi yang mendukung pengambilan keputusan. (Whitten,
2001). Sistem informasi banyak digunakan dalam organisasi untuk meningkatkan
kemampuan memperoleh manfaat atau competitive advantage.
Sistem informasi juga merupakan sekumpulan prosedur organisasi yang
dalam pelaksanaannya membutuhkan informasi dengan tujuan membantu dalam
pengambilan keputusan untuk mengendalikan organisasi. Oleh sebab itu,
informasi sangatlah dibutuhkan untuk membangun suatu sistem yang dapat
berjalan sesuai dengan tujuan dari perusahaan, yaitu keuntungan yang maksimal
dan optimal.
2.2. Transaksi Manajemen
2.2.1 Transaksi Support
Transaksi adalah sebuah aksi, atau sederetan aksi, yang dilakukan oleh
single user atau program aplikasi, dengan membaca atau meng-update isi dari
database. (Conolly, 2002).
Sebuah transaksi adalah sebuah logical unit of work dalam database.
Maksudnya transaksi merupakan bagian dari program atau perintah tunggal
(perintah SQL atau UPDATE), dan mungkin berisi sejumlah operasi dalam
database. Dalam konteks database eksekusi dari program aplikasi dapat diartikan
sebagai sekumpulan transaksi dengan proses tanpa database didalamnya.
Transaksi harus selalu melakukan transformasi dari satu kondisi konsisten ke yang
lainnya, walaupun saat transaksi menerima krtidak-konsistenan namun setelah
9
transaksi selesai data harus dalam kondisi konsisten. Sebuah transaksi memiliki
dua buah keluaran yaitu, jika transaksi sukses berarti transaksi telah melakukan
commit dan database telah mencapai keadaan konsisten yang baru, serta jika
transaksi tidak berhasil maka database harus melakukan restore ke keadaan
konsisten saat transaksi belum mulai atau disebut dengan rolled back atau undone.
Berikut gambar yang menunjukkan state transition diagram untuk sebuah
transaksi :
Gambar 2.2. state Transaction
Ada empat property dari transaksi yang sering disingkat ACID, yaitu:
1. Atomicity
“The all or nothing property”. Sebuah transaksi adalah sebuah unit yang
tidak dapat dibagi lagi sehingga dapat melakukan seluruhnya atau tidak
melakukan apapun.
10
2. Consistency
Sebuah transaksi harus mentransformasikan satu keadaan konsisten ke
keadaan lainnya. Ini merupakan tanggung jawab dari DBMS dan
pengembangan aplikasi untuk memastikan kekonsintenannya.
3. Isolation
Transaksi secara bebas mengeksekusi yang lainnya atau sebagian transaksi
yang tidak lengkap akan mengakibatkan transaksi yang lain menjadi tidak
visible.
4. Durability
Pengaruh dari transaksi yang commit secara permanen disimpan dalam
database dan akan hilang karena kegagalan sebsuquent.
Arsitektur database dapat diidentifikasi ke dalam empat modul database
high-level yang akan menangani transaksi, concurrency control, dan recovery.
Empat modul database high-level dalam arsitektur database tugasnya, yaitu:
1. Transaction Manager
Bertugas mengkoordinasikan transaksi dalam program aplikasi,
berkomunikasi dengan scheduler, bertanggung jawab untuk
mengimplementasikan strategi khusus untuk concurrency control.
11
2. Scheduler
Untuk memaksimalkan concurrency.
3. Recovery Manager
Bertugas memastikan database di restore ke kondisi sebelum mulai
transaksi dan karenanya kondisi konsisten terjadi.
4. Buffer Manager
Bertanggung jawab untuk mentransfer data dari disk sampai ke memori
utama.
Berikut gambar dari arsitektur database:
Transaction
Buffer Manager
Recovery Manger
Schedule
System Manager
File Manager
Access manager
Gambar 2.3. Database dan Katalog sistem
12
2.2.2 Concurrency Control
Concurrency control adalah proses untuk me-manajemen operasi secara
simultan dalam database tanpa mencampur dengan lainnya. (Conolly, 2002).
Tujuan utama mengembangkan sebuah database adalah agar dapat
mengakses data share dengan baik. Akses yang dilakukan bersamaan relative
mudah jika seluruh user hanya membaca data, sehingga tidak terjadi interfensi
satu dengan yang lainnya. Tetapi saat dua atau lebih user mengakses database
secara simultan dan paling sedikit satu user melakukan update, maka akan terjadi
interfensi yang dapat mengakibatkan ke tidak-konsistenan.
Contoh masalah yang disebabkan oleh concurrency, salah satunya Lost update problem.
Lost update problem adalah operasi update yang lengkap dan sukses yang
dilakukan oleh user yang ditimpa (overridden) oleh user yang lain.
2.2.3 Serializability dan Recoverability
Konkurensi control diperlukan saat banyak user mengakses database
secara simultan. Tanpa konkurensi control masalah lost update, uncommitted,
dependency, dan inconsistent analisis akan meningkat.
Eksekusi serial berarti bahwa eksekusi satu transaksi terjadi pada waktu
tertentu tanpa meninggalkan operasi. Schedule memperlihatkan urutan dari
operasi transaksi. Sebuah schedule memperlihatkan urutan dari operasi transaksi.
Sebuah schedule dikatakan serializability jika menghasilkan hasil yang sama
seperti schedule yang serial.
13
Serializability mengidentifikasi schedule yang databasenya konsisten
(tidak ada transaksi yang gagal). Alternatif lainnya dengan recoverability yang
merupakan schedule untuk setiap pasangan dari transaksi.
2.3 JSP(Java Server Pages), Servlet, dan Tomcat
2.3.1 JSP (Java Server Pages)
JSP (Java Server Pages) merupakan salah satu perangkat lunak yang
digunakan untuk pengembangan web dinamis dan merupakan perluasan dari
servlet namun tidak untuk menggantikan servlet. Servlet sendiri merupakan
teknologi java yang memungkinkan pembuatan halaman web yang bersifat
dinamis dan diproses pada sisi server. Sehingga web yang dibangun menggunakan
JSP akan dijalankan di sisi server. (Kadir, 2004).
Dalam JSP dikenal suatu objek implisit, yaitu obyek yang sudah
dideklarasikan dan tinggal digunakan. Obyek-obyek tersebut juga muncul dalam
servlet hanya saja kita harus mendeklarasikannya sendiri. Obyek implicit tersebut
merupakan obyek utama yang digunakan untuk berinteraksi dalam aplikasi web,
JSP, dan Servlet. Berikut adalah implisit obyek :
Nama Obyek Tipe
Request javax.servlet.http.HttpServletRequest
Response javax.servlet.http.HttpServletResponse
Out javax.servlet.jsp.JspWriter
Session javax.servlet.http.HttpSession
Application javax.servlet.ServletContext
14
pageContext javax.servlet.jsp.PageContext
Page javax.servlet.jsp.HttpJspPage
Exception java.lang.Throwable
Config javax.servlet.ServletConfig
Table 2.1. table daftar obyek implisit JSP
Keuntungan menggunakan JSP adalah sebagai berikut :
1. JSP dibuat berdasarkan bahasa Java.
2. JSP mendukung multiplatform, yakni kode yang dibuat untuk tidak
terpengaruh dengan sistem operasi, jadi bias berjalan pada
Windows, Linux, maupun sistem operasi lain.
3. JSP sangat cocok untuk skala enterprise dengan pemrograman
multifier karena menyediakan ke akses JavaBean.
4. JSP memberi dukungan terhadap berbagai jenis database seperti
MySQL, Oracle, Fox Pro, dan lain-lain.
Karena kode JSP merupakan bahasa yang penggunaannya berjalan pada
internet, maka JSP merupakan salah satu bahasa yang embedded pada halaman
HTML, jadi bukanlah bahasa pemrograman standalone.
Hal-hal yang harus diperhatikan dalam pemrograman JSP :
1. Harus ada web server yang mendukung JSP, dalam hal ini akan
digunakan Apache Jakarta-Tomcat.
2. Penamaan file harus berakhiran *.jsp.
3. Pemrograman bersifat case sensitive (huruf kecil dan besar dibedakan).
15
2.3.2 Arsitektur JSP
Pemakai yang ingin mengakses halaman web harus diawali dengan
mengirimkan permintaan halaman web melalui protocol HTTP (HyperText
Transfer Protocol ) dalam bentuk JSP (berekstensi .jsp). Permintaan ini akan
disampaikan ke web server, kemudian web server mengambil dokumen JSP dan
mengirimkan ke JSP Servlet Engine. Bagian inilah yang melakukan pemrosesan
kode-kode JSP (termasuk didalamnya melakukan pengkompilasian) dan
membentuk kode HTML. Kemudian kode HTML ini disampaikan oleh web
server ke klien yang memintanya selanjutnya kode HTML, diproses oleh browser
sehingga pemakai bisa memperoleh informasi dari halaman web yang diinginkan.
Pengkompilasian kode JSP hanya dilakukan sekali saja, yaitu pada pemanggilan
dokumen yang pertama kali. Oleh karena itu, pemakai yang memanggil dokumen
yang baru saja dibuat atau diperbaharui akan merasakan bahwa tanggapan
terhadap permintaan halaman web cukup lama. Untuk menghindari keadaan
seperti ini, pengembang dapat memanggil terlebih dulu dokumen tersebut setelah
dilakukan perubahan.
2.3.3 Kode JSP
Kode JSP pada dasarnya sama dengan kode HTML namun dilengkapi
dengan tag-tag JSP. Pada tag-tag inilah proses penyisipan kode dalam bahasa Java
dilakukan. Berikut contohnya :
16
Selamat.jsp
<body>
<html>
<head>
<title>latihan JSP Pertama</title>
</head>
Berikut detail pemrosesan yang dilakukan oleh JSP Servlet Engine :
1. Melakukan pemilihan (parsing) kode JSP.
2. Membangkitkan kode sumber Servlet.
3. Mengkompilasi kode sumber Servlet menjadi sebuah class.
4. Membuat instan servlet.
5. Memberikan keluaran servlet ke web server.
Servlet adalah teknologi Java yang memungkinkan pembuatan halaman web yang
bersifat dinamis dan diproses pada sisi server.
2.3.4 Ekspresi JSP
Hasil suatu ekspresi JSP dapat dijadikan sebagai keluaran pada halaman
web dengan menggunakan bentuk tag yang bersifat khusus, yakni seperti berikut :
<%= ekspresi Java %>
Tag <%= %> biasa dinamakan tag ekspresi. Dalam hal ini semua ekspresi
dikonversikan ke string (deretan karakter) dan disisipkan ke halaman web.
17
2.3.5 Direktif JSP
Pada JSP, pengimportan suatu paket dilakukan dengan menggunakan tag
direktif, bentuk umumnya adalah :
<%@ ... %>
Misalnya :
<%@ page import=”java.util.*” %>
Yang berarti mengimport semua kelas yang terdapat pada paket java.util.
JSP dengan sendirinya akan mengimport paket-paket berikut :
a. java.lang
b. javax.servlet
c. javax.servlet.jsp
d. javax.servlet.http
Tag direktif ini ditujukan untuk memberitahukan kepada mesin JSP dan bukan
ditujukan untuk membentuk keluaran. JSP memiliki tiga buah direktif yaitu :
1. page (digunakan untuk mendefinisikan atribut-atribut yang terdapat pada
halaman JSP).
2. include (digunakan untuk menyisipkan suatu berkas atau mengimport
suatu kelas).
3. taglib (digunakan untuk mendefinisikan tag-tag buatan pemrogram).
18
2.3.6 Tag Deklaratif
JSP memyediakan tag yang khusus ditujukan untuk melakukan
pendeklarasian variable yang berlevel halaman. Variable seperti ini akan dikenal
sepanjang halaman. Tag yang dimaksud biasa dinamakan tag deklaratif. Tag ini
berbentuk sebagai berikut :
<%! … %>
Tag deklaratif selain digunakan untuk mendeklarasikan variable juga
dapat digunakan untuk mendeklarasikan metode.
2.3.7 Servlet
Teknologi servlet adalah dasar dari aplikasi web menggunakan bahasa
pemrograman Java. Servlet merupakan salah satu teknologi yang penting dalam
java, dan mendasari teknologi untuk teknologi java berbasis web yang umum,
yaitu JSP.
Servlet (dan juga JSP) memberikan keuntungan yang tidak didapat pada
teknologi lain :
• Performance. Unjuk kerja dari servlet sangat baik disbanding dengan CGI
karena tidak ada penciptaan proses untuk setiap kali client melakukan
request. Karena setiap request ditangani oleh proses pada servlet
container. Setelah servlet selesai melakukan proses suatu request, maka
servlet akan menetap di memori untuk menunggu request yang lain.
• Portability. Mirip dengan teknologi Java yang lain, aplikasi servlet adalah
ringkas.
19
• Pemakaian yang semakin luas. Saat ini semakin banyak vendor perangkat
lunak yang menggunakan teknologi java.
HTTP REQUEST
HTTP Response
Servlet Contain
servlet
Static Content
HTTP Server
Browser
Gambar 2.4. arsitektur servlet
Cara kerja servlet :
no
yes
no
yes
Is Servlet
Is server
Process
Load Servlet
Receive
Send Respons
gambar 2.5. cara kerja servlet
20
2.3.8 Tomcat
Tomcat adalah servlet container yang mengimplementasikan teknologi
Java Servlet dan Java Server Pages (JSP) dari Sun Microsystem. Tomcat dibuat
oleh Apache Software Foundation (ASF). Tomcat dibangun dalam bahasa
pemrograman Java dan dijalankan diatas Java Virtual Machine (JVM). Untuk
terhubung ke sebuah web server diperlukan komponen yang disebut sebagai
‘connector’. Tomcat dapat berjalan sendiri (standalone) tanpa webserver lain
dengan Apache HTTP Server, diperlukan connector JK2. Selain dapat
dihubungkan dengan Apache, Tomcat juga dapat digunakan dengan IIS (Internet
Information Service ), yaitu web server dari Microsoft.
Tomcat memiliki bootstrap process yang melakukan inisialisasi container
dan komponen-komponen didalamnya. Apabila sebuah aplikasi pertama kali
dijalankan maka Tomcat akan melakukan proses kompilasi dari JSP menjadi Java
Class. Hal ini membuat seakan-akan Tomcat sebagai webserver sangat lambat
atau berat. Tetapi jika dilakukan pemanggilan page yang sama untuk kedua kali
dan seterusnya, maka kinerja Tomcat menjadi lebih cepat, karena sekarang yang
dijalankan adalah Java bytecode yang sudah terkompilasi. Selanjutnya Java
bytecode tinggal dijalankan oleh JVM.
Penjelasan struktur direktori Tomcat :
1. Bin
Skrip startup, shutdown dan file lain.
21
2. Classes
Class yang tidak diekstrak (masih dipack) untuk aplikasi web global.
3. Conf
File konfigurasi Tomcat termasuk server.xml (file konfigurasi utama
Tomcat) dan web.xml global (file deployment descriptor) serta tomcat-
user.xml(file konfigurasi user Tomcat).
4. Server
File archive Tomcat.
5. Lib
File class umum dalam bentuk .jar
6. Logs
Direktori untuk menyimpan log Tomcat
7. Common
File class common untuk Catalina dan aplikasi web.
8. Webapps
Folder untuk menyimpan file-file dari aplikasi web,servlet, JSP, HTML,
static dan image serta file-file terkait.
9. Work
File servlet hasil kompilasi dari file JSP.
22
2.4 Web
Web pada dasarnya sama dengan homepage karena homepage pada situs
web berbentuk sebuah halaman yang ditulis dalam bahasa pemrograman web,
dengan isi informasi individu / personal atau kelompok / organisasi tertentu
ataupun informasi tertentu yang lebih spesifik. Homepage merupakan dokumen
pertama yang akan dilihat oleh user, setiap mengakses Web Server. Web dapat
dirancang dengan menggunakan bahasa pemrograman web yang tersedia di
pasaran. Apabila situs yang dibuat akan selesai maka perlu dilakukan pemilihan
domain yang akan digunakan untuk situs tersebut.
Domain adalah identitas suatu wilayah atau kelompok dalam sebuah
jaringan atau internet. Pada mulanya domain hanya digunakan untuk identitas
computer. Nama domain yang cukup besar dan paling banyak digunakan adalah
memiliki akhiran .com, akhiran com menunjukkan nama domain untuk
perusahaan (company). Selain .com terdapat beberapa akhiran nama domain yang
banyak digunakan, seperti .net, .edu, .org, dan .mil. Domain dengan akhiran .net
merupakan nama domain yang berhubungan dengan jaringan (networking).
Akhiran .edu berhubungan dengan dunia pendidikan (education), .org
berhubungan dengan organisasi, dan .mil berhubungan dengan militer. Dari nama-
nama domain ini telah berkembang bermacam-macam domain untuk
menunjukkan identitas, seperti Negara Indonesia menggunakan “id”. Biasanya
setelah mendapat nama domain, langkah terakhir adalah mencari tempat bagi situs
web tersebut.
23
Web hosting merupakan tempat dimana seseorang dapat menyimpan data
atau dokumen di sebuah web server. Data atau dokumen ini terhubung ke internet
dengan harapan dapat diakses orang lain.
2.5 HTML
HTML adalah bahasa universal yang dirancang untuk mempublikasikan
halaman web yang memiliki elemen berupa heading, teks, table, list, dan
sebagainya serta merupakan bahasa standar yang digunakan pada protocol HTTP.
Penulisan HTML dapat dilakukan dengan melalui text editor seperti Notepad yang
dimiliki oleh system operasi Windows ataupun editor lain seperti wordpad,
Microsoft Word dan lain-lain. HTML juga dapat memungkinkan dalam membuat
rancangan dokumen yang dapat dimanfaatkan untuk mencari informasi.
Ciri-ciri HTML :
1. Tersusun oleh tag-tag, misalnya <html> …. <html>
2. Pada umumnya tag selalu mempunyai tag pembuka seperti <html> dan
kemudian selalu ada tag penutupnya </html>, namun ada beberapa tag
yang tidak mempunyai tag penutup misalnya <br>, <hr>, dan
sebagainya.
3. Bukan merupakan case sensitive (huruf kecil dan besar dianggap
sama).
4. Nama file berupa *.html atau *.htm
Semua tag-tag tersebut harus diletakkan dalam tag <html> … </html>
24
Tag-tag dasar
<body>…</body> Untuk tampilan halaman web. Mempunyai
atribut bgcolor untuk warna background,
text untuk warna text
<br> Untuk pindah baris. Tanpa tag penutup
<h1>…</h1> Untuk membuat heading dan mempunayai 6
jenis heading. <h1>...</h1> yang paling
besar fontnya, <h6>…</h6> yang paling kecil
<hr> Membuat garis horizontal. Tanpa tag penutup
<center>…</center> Menengahkan kata
<b>…</b> Membuat huruf tebal
<big>…</big> Memperbesar teks dari ukuran normal
<i>…</i> Membuat huruf miring
<small>…</small> Memperkecil teks dari ukuran normal
<sub>…</sub> Membuat subscript
<sup>…</sup> Membuat superscript
<u>…</u> Membuat garis bawah
<font>…</font> Menentukan jenis font. Mempunyai atribut
face, size, dan color.
<p> Untuk membuat paragraph. Tanpa tag penutup
<pre>…</pre> Teks akan ditampilkan apa adanya seperti
yang kita ketik pada editor
<ul>…</ul> Membuat list tanpa nomor urut. Mempunyai
atribut berupa type
<ol>…</ol> Membuat list bernomor. Mempunyai atribut
type
<li> Membuat item-item pada list dan harus
25
berada di dalam tag <ul>…</ul> atau
<ol>…</ol>. Tanpa tag penutup
<img src =
”nama_file”>
Untuk menampilkan gambar. Jenis file yang
didukung adalah *.gif, *.jpg, *.jpeg,
*.png, dan *.tif. Tanpa tag penutup. Tag
ini juga mempunyai atribut align yang
berfungsi untuk mengatur posisi text
terhadap gambar, atribut border untuk
member bingkai gambar, height untuk tinggi
gambar, dan width untuk lebar gambar.
<table>…</table> Untuk membuat table. Mempunyai atribut :
Border : untuk mengatur bingkai table,
besarnya antara 0..10
Bgcolor : untuk member warna background
Width : untuk mengatur lebar table.
<captain>…</captain> Untuk membuat judul table.
<th>…</th> Untuk membuat judul kolom
<tr>…</tr> Untuk membuat baris dalam table. Mempunyai
atribut sama dengan <td>…</td>
<td>…</td> Untuk membuat satu sel data. Mempunyai
atribut-atribut :
Rowspan : untuk menggabungkan baris.
Colspan : untuk menggabungkan kolom.
Table 2.2 tag-tag HTML
26
2.6 MySQL
Bahasa standar yang digunakan dalam database adalah SQL (Structured
Query Language ). MYSQL adalah sebuah system manajemen database open
source, yang popular dan gratis untuk platform Unix dan Windows. System
manajemen MySQL menggunakan kumpulan perintah sederhana untuk
memanggil, memasukkan, menghapus, dan memperbaharui data.
Beberapa kemampuan MySQL antara lain :
a. MySQL bisa diakses dan dimanipulasi dari sejumlah bahasa
pemrograman terkenal, diantaranya C, C++, Java, Perl, Piton, dan PHP.
b. MySQL ditulis dalam C/C++ dan dioptimasi untuk platform Unix dan
Win32.
c. MySQL mendukung tipe data yang umum digunakan termasuk FLOAT,
DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, SET, dan
ENUM.
d. MySQL mendukung subset fungsi query dan pengelompokkan lanjaut,
termasuk diantaranya GROUP BY dan ORDER BY.
e. MySQL memungkinkan alokasi password tiap server. Password yang
melalui MySQL untuk melakukan authentifikasi terenkripsi.
f. MySQL mendukung berbagai macam metode koneksi, seperti TCP/IP,
soket Unix, dan koneksi untuk Windows NT/2000.
g. MySQL bisa diperoleh secara gratis termasuk aplikasi-aplikasi lain
yang diperlukan dalam memakai MySQL.
27
Perintah-perintah SQL terbagi menjadi tiga kelompok, yaitu :
1. DDL (Data Definition Language )
Perintah yang digunakan untuk mendefinisikan data. Pernyataan-
pernyataannya berkaitan dengan pembuatan table, penghapusan table,
dan lain-lain. Misalnya create table, drop table, dan sebagainya.
Hasil kompilasi dari statement DDL adalah satu set table yang disimpan
pada file khusus yang disebut Data Dictionary. Data Dictionary adalah
file yang berisi Meta Data yaitu “data mengenai detail pembuatan data
tersebut”.
2. DML (Data Manilupation Language)
Perintah yang digunakan untuk memanipulasi/memodifikasi data. Yaitu
perintah-perintah yang berkaitan dengan penambahan data, penghapusan
data, menampilkan data, ppenyisipan data, dan lain-lainnya. Misalnya
select, insert, update, dan sebagainya.
3. DCL (Data Control Language)
Perintah yang digunakan untuk membantu mengontrol keamanan setiap
database atau sebagai dari isi database dengan membuat hak-hak akses
tertentu bagi user. Misalnya grant digunakan untuk memberikan hak-hak
tertentu kepada seorang user dan revoke digunakan untuk mencabut hak-
hak tertentu dari seorang user terhadap database tertentu. Software
database yang akan digunakan adalah MySQL
28
2.7 Use Case
“Use case modeling is the process of modeling systenm’s function in term
of business events, who initiated the events, and how the system responds to the
events” (Whitten, 2001).
Use case diagram adalah sebuah diagram yang menggambarkan interaksi
antara sistem dan eksternal sistem serta user.
Symbol dasar use case diagram antara lain :
1. Use case
“A use case is a behaviorally related sequence of steps (a scenario)
both automated and manual for the purpose of completing a single
business task” (Whitten, 2001). Use case merupakan bagian dari
seluruh fungsi system.
Use Case
Gambar 2.6. Simbol Use Case
2. Actor
“An actor represents anything that needs to interact with the system to
exchange information”. (Whitten, 2001)
29
Actor1
Gambar 2.7. Simbol Actor
3. Use case association relationship
Association adalah relasi antara actor dan sebuah use case, dimana
terjadi interaksi antar mereka.
Actor Use Case
Gambar 2.8. Simbol Use Case Association Relationship
2.8 Data Flow Diagram (DFD)
Data Flow Diagram (DFD) digunakan untuk menggambarkan suatu
sistem yang telah ada atau system baru yang akan dikembangkan secara logika
tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau
lingkungan fisik dimana data tersebut akan disimpan. DFD merupakan alat yang
digunakan pada metodologi pengembangan sistem yang terstruktur (Structural
Analysis and Design).
Simbol yang sering digunakan dalam DFD, antara lain :
30
1. Proses (process)
Proses adalah kerja yang dilakukan oleh sistem dalam merespon data
flow yang datang atau suatu kondisi.
Gambar 2.9. Simbol proses
2. Kesatuan Luar (External Agent)
External Agent adalah orang, unit organisasi, sistem, atau organisasi
luar yang berinteraksi dengan sistem, atau disebut juga External Entity.
Gambar 2.10. smbol external agent
3. Arus Data (Data Flow)
Data flow adalah data sebagai masukan ke proses atau keluaran dari
sebuah proses, serta merupakan data yang bergerak. Data flow juga
digunakan untuk mewakili creation, reading, atau updating dari data
dalam file atau database (disebut data store atau penyimpanan data)
Gambar 2.11. simbol arus data
31
4. Penyimpanan Data (Data Source)
Data Store adalah penyimpanan data untuk penggunaan selanjutnya.
Gambar 2.12. simbol data source
2.9 Entity Relation
Entity Relational Model merupakan suatu model yang menunjukkan
diagram hubungan antar table atau entitas yang menerangkan hubungan antar
tabel atau entitas yang ada. Dua komponen utama pembentuk ER Model :
1. Entitas (entity)
Entitas merupakan sebuah obyek yang nyata ada dan dapat dibedakan
dari suatu yang lain.
Gambar 2.13. symbol entitas
2. Relasi (Relationship)
Relasi merupakan hubungan antar entitas.
32
Notasi ER model
Berikut lambang pada ER Model yang sering digunakan :
: himpunan entity
: atribut (atribut yang memiliki fungsi primer
diberi garis bawah)
: relasi
: penghubung antar entity dengan relasinya
2.14 lambang pada ER
33
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Gambaran Sistem Lama dan Sistem Baru
3.1.1.1.Gambaran Sistem Lama
Sistem yang lama proses pembelian dilakukan secara langsung, yaitu
customer akan membeli kaset cd harus datang ke toko kaset dan melihat
tumpukan deretan kaset yang terpajang di toko. Kendalanya customer tidak selalu
mendapatkan kaset yang dicari karena berbagai alasan, diantaranya kaset yang
diinginkan telah habis atau bahkan tidak menemukan letak kaset yang dicari
karena terlalu banyak kaset yang terpajang di toko kaset.
3.1.1.2.Gambaran Sistem Baru
Sistem yang akan dibuat ini bersifat online sehingga user yang berperan
sebagai customer lebih mudah untuk mendapat kaset-kaset yang diinginkan.
Dengan sistem yang baru diharapkan user bisa mendapatkan kaset yang
diinginkan dengan cara memesan kaset tersebut sehingga tidak kecewa lagi karena
kaset yang diinginkan telah habis. Sistem ini menginformasikan data kaset secara
lengkap, sehingga pesanan benar-benar sesuai yang diinginkan user.
34
Hal-hal yang harus dilakukan oleh user agar dapat memesan dalam sistem ini
adalah :
• User memilih kaset yang dipesan, lalu klik pesan maka akan muncul data
kaset yang akan dipesan.
• Form Pemesanan
Setelah klik pesan dan mendapatkan data kaset yang akan dipesan, maka
akan ada form yang berisi data user. User wajib mengisi form tersebut
untuk bisa memesan kaset yang diinginkan tersebut.
3.1.2. Orang yang terlibat dalam sistem
Ada dua orang yang akan terlibat dalam “Sistem Informasi Pemesanan
Kaset CD dengan Transaksi Managemen”:
a. Admin
Orang yang berhak menambah, meng-edit, menghapus, serta
melihat data pemesanan Kaset CD.
b. User
Orang yang menggunakan sistem informasi untuk melakukan
proses pemesanan kaset cd.
35
3.1.3. Requirement Analysis
Tahap requirement analysis meliputi pembuatan use case diagram
admin
melihat data kaset
<<depends on>>
hapus data kaset <<depends on >>
ubah data kaset<<depends on>>
melihat data user yang pesan
<<depends on>>
melihat data kaset
<<depends on>>
logout
login
<<depends on>>
Gambar 3.1. Use Case Admin
36
melihat detail kaset
Memesankaset
user
Gambar 3.2 Use Case User
3.1.4. Logical Design (Pemodelan Proses dan Data)
Tahap logical design meliputi proses modeling dan data modeling.
3.1.4.1. Process Modelling
Proses modeling dapat dimulai dari pembuatan input dan output dari sistem.
Entitas Input Output
Admin Data login, update data Kaset dan CD
Data Kaset CD
User Lihat data kaset cd, pesan kaset cd
Data kaset cd, serta data pesan
Table 3.1. Input dan output sistem
37
3.1.4.1.1.Context Diagram
Context Diagram berguna untuk menggambarkan secara jelas bagaimana
sistem yang akan dibuat bekerja, mulai dari inputan awal sampai outputnya.
Context diagram dan overview-nya
0
Pemesanan onlineadmin usert
Username, password, data kaet,
data pesanan, update
iInformasi detail data kaset, detail data
pesanan, mengupdate
Informasi detail kaset, proses pemesanan
Data kaset, pesan
Gambar 3.3. Context Diagram
38
3.1.4.1.2.Diagram Berjenjang
Gambar 3.4. Diagram berjenjang Admin
39
0
SI Pemesanan Kaset CD dengan
Transaksi Managemen
1
Lihat kaset
2.2
Isi data diri
2.1
Lihat data kaset yang dipesan
2
pesan
Gambar 3.5. Diagram berjenjang user
3.1.4.1.3.Overview Diagram
Gambar 3.6. Overview Diagram Level 0 untuk admin
40
gambar 3.7. Overview Diagram Level 0 untuk User
Overview Diagram Level 1 proses 2
Gambar 3.8 Overview Diagram Level 1 Proses 2
41
Gambar 3.9 Overview Diagram Level 1 proses 3
3.1.4.2. Data Modeling
gambar 3.10 Entity Relational Diagram
42
userpsn pesan kaset
detailpesan
admin
Gambar 3.11 Relasi antar Tabel
3.2. Desain Sistem
3.2.1 Desain Database
Di dalam pembuatan sistem informasi ini terdapat beberapa table yang
digunakan yaitu table admin, table kaset, table userpsn, dan table pesan.
nama tipe ukuran keterangan Key nip int 10 nip pegawai Pk password varchar 10 password
Table 3.2 admin
nama tipe ukuran keterangan Key kd_kaset varchar 8 kode kaset pk nartis varchar 30 nama artis
id_user
*
nama
no_ktp
almt
id_pesan *
id_user **
jmlh
tgl_pesan
kd_kaset *
artis
judul
kategori
jenis
password
Nip * Jmlh_pes
id_user **
Kd_kaset ** jumlah
harga
tgl_rel
43
judul varchar 20 judul album kategori varchar 15 kategori kaset jenis varchar 30 jenis kaset tgl_rel date tanggal release harga int 10 harga kaset jumlah int 5 jumlah kaset
Table 3.3 kaset
nama tipe Ukuran Keterangan key Id_user int 20 Id auto_increments pk nama varchar 20 nama user yang akan pesan almt varchar 60 alamat user telp varchar 15 no telp yang bisa dihubungi No_ktp varchar 20 No_ktp user
Table 3.4 t userpsn
nama tipe ukuran Keterangan key id_pesan int 5 kode pesan pk Id_user int 20 id user yang pesan fk Tgl_pesan Timestamp 14 Tanggal user memesan Jmlh Int 5 Jumlah kaset yang dipesan
Table 3.5 pesan
nama tipe ukuran Keterangan key id_user int 20 kode pesan fk kd_kaset varchar 8 kode kaset fk Jmlh_pes int 5 Jumlah kaset yang dipesan
Table 3.6 detailpesan
44
3.2.2 Desain User Interface
1. Tampilan untuk user
BANNER
MENU GAMBAR
GAMBAR
Judul:
Artis :
Judul:
Artis :
Gambar 3.12 tampilan lihat kaset
BANNER
MENU Judul :
Harga :
Masukkan data User
Nama:
Id:
Alamat :
OK
Gambar 3.13 tampilan pesan kaset
45
2. tampilan untuk admin
Gambar 3.14 tampilah home admin
BANNER
MENU Username :
Password :
Login
1
MENU Kode kaset:
Judul:
Artis:
Kategori :
Jenis:
Tgl release:
simpan
Gambar 3.15 tampilan tambah kaset
46
BANNER
MENU Judul ubah / hapus
Gambar 3.16 tampilan ubah atau hapus
BANNER
MENU Id_pesan kd_kaset id waktu
Gambar 3.17 tampilan lihat pesan
47
BAB IV
IMPLEMENTASI SISTEM
4.1 Karakteristik Sistem
Sistem informasi ini dibangun untuk Bulletin Music Shop yang beralamat
di jalan Colombo, Yogyakarta. Sistem ini akan digunakan untuk multiuser.
Sistem ini mendukung multiuser karena sistem merupakan sistem berbasis
web yang bisa diakses oleh lebih dari satu orang atau beberapa orang dalam waktu
yang sama, serta menggunakan teknologi manajemen transaksi dengan level
serializable dalam proses pemesanannya.
Pada sistem ini terdapat admin yang memiliki fasilitas, menambah,
mengubah dan menghapus data kaset, serta bisa melihat data pemesanan kaset.
User dapat mengakses sistem ini tanpa melakukan login. User dapat memesan
kaset yang diinginkan dengan cara memilih kaset yang user inginkan. Kemudian
user diharuskan mengisi data yang berisi nama, no identitas diri, alamat, dan no
telp.
4.2 Kebutuhan Sistem
Untuk dapat melakukan pengujian sistem, dibutuhkan beberapa sistem
penunjang, antara lain :
• Server
Sistem Operasi Windows
Browser Internet Explorer, Mozilla Firefox
MySQL 5, JSP dan tomcat
48
• Client
Sistem Operasi Windows
Browser Internet Explorer, Mozilla Firefox
4.3 Pembuatan database SI Pemesanan menggunakan manajemen
transaksi dengan MYSQL
Table 4.1 admin
table 4.2 kaset
Table 4.3 pesan
Table 4.4 userpsn
Table 4.5 detailpesan
49
4.4 Koneksi JSP dan MySQL
Setelah membuat database dengan MySQL kemudian membuat koneksi
antara JSP dan MySQL menggunakan bahasa pemrograman JSP. Koneksi JSP dan
MySQL dapat dilihat pada listing berikut.
<%@ page import="java.sql.Connection, java.sql.DriverManager" %> <% boolean salah=false; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception ex){ out.println("Kesalahan: " + ex); salah = true; } if(!salah){ Connection koneksi = null; try{ koneksi = DriverManager.getConnection( "jdbc:mysql://localhost/tabullet", "root", "rahasia"); out.println("Koneksi berhasil"); } catch(Exception ex){ out.println("Kesalahan: " + ex); } } %>
Listing 4.1 koneksi.jsp
Pada listing 4.1 koneksi pada server MySQL digunakan untuk login ke dalam
MySQL server, menggunakan interface Connection dan kelas DriverManager.
Fungsi Class.forName("com.mysql.jdbc.Driver"); digunakan untuk memuat
driver MySQL (MySQL Connector) dan
DriverManager.getConnection("jdbc:mysql://localhost/tabullet",
"root", "rahasia"); digunakan untuk membentuk hubungan dengan database
50
MySQL yang bernama tabullet yang terdapat pada localhost, dengan username
root dan password rahasia.
4.5 USER INTERFACE
User interface ini merupakan implementasi dari proses modeling yang ada.
4.5.1 User Interface User Lihat Data Kaset
Berikut gambar user interface lihat data kaset
Gambar 4.1 lihat kaset
Proses lihat data kaset bisa dilakukan oleh semua user. Data kaset dikategorikan
menjadi 4 kategori, yaitu Domestic, International, Jazz, dan Mandarin. Pembagian
kategori sebagai berikut:
• Kategori domestic dikenal oleh database sebagai 1
51
• Kategori international dikenal oleh database sebagai 2
• Kategori jazz dikenal oleh database sebagai 3
• Kategori mandarin dikenal oleh database sebagai 4
Sedangkan kaset dibagi menjadi 2 jenis, yaitu kaset dan cd. CD menjadi jenis 1
dan kaset jenis 2.
Berikut listing tampilkan data kaset kategori domestic :
if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery( "SELECT kd_kaset, nartis, kategori, judul, harga, jumlah FROM kaset " + "where kategori = '1'"); } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } if (!ada_kesalahan) { try { while (hasilQuery.next()) { String kd_kaset = hasilQuery.getString("kd_kaset"); String berkasFoto = getServletContext().getRealPath("/") + "/image/" + kd_kaset + ".jpg"; String nartis = hasilQuery.getString("nartis"); String nama = hasilQuery.getString("judul"); String harga = hasilQuery.getString("harga"); String jumlah = hasilQuery.getString("jumlah"); nartis = nartis.toUpperCase(); nama = nama.toUpperCase(); File berkas = new File(berkasFoto); if(berkas.exists()) out.print("<tr><td><IMG SRC = "+ berkasFoto +"></td>"); out.println( "<TD> ARTIS : " + nartis + "<br> JUDUL :"
52
+ nama + "<br > HARGA :" + harga + "<br> JUMLAH :" + jumlah + "<br><br><A HREF = \"p1.jsp?kode=" + kd_kaset + "\" TARGET = \"frame_kanan\">Pesan</A>\n</TD></tr><TR>\n"); } } catch (Exception ex) { out.println("Kesalahan: " + ex); ada_kesalahan = true; } } } } %>
Listing 4.2 lihat kaset
Pada listing di atas terdapat <%@ include file="definisi.jsp" %> yang
digunakan mendefinisikan nama server, database, username dan password. Serta
memudahkan dalam melakukan perubahan nama server maupun nama user yang
mengakses database. Selain itu juga untuk mendefinisikan sebuah fungsi
gantiKosong(). Fungsi ini berguna mengubah nilai null menjadi string kosong,
yang terdapat pada dokumen lainnya yang berhubungan dengan listing ini.
Berikut listing definisi.jsp:
<%! String NAMA_SERVER = "localhost"; String NAMA_DB = "jdbc:mysql://localhost/jazz"; String NAMA_USER = "root"; String PASSWORD = "rahasia"; public String gantiKosong(String par) { String st = par; if (st == null) st = ""; return(st); } %>
Listing 4.3 definisi.jsp
53
Sedang untuk menampilkan data kaset berdasarkan kategori kaset, dibutuhkan
listing berikut untuk memanggil kaset berdasarkan kategorinya.
hasilQuery = stm.executeQuery("SELECT kd_kaset, nartis, kategori, judul, harga, jumlah FROM kaset " + "where kategori = '1'");
Untuk menampilkan kode kaset dalam bentuk gambar, maka diperlukan listing
berikut :
String berkasFoto = getServletContext().getRealPath("/") + "/image/" + kd_kaset + ".jpg";
Listing tersebut dipakai untuk memperoleh nama berkas foto, serta direktori
tempat foto berada. Sedangkan getServletContext().getRealPath("/")
berguna untuk memperoleh nama direktori web server.
File berkas = new File(berkasFoto); if(berkas.exists()) out.print("<tr><td><IMG SRC = "+ berkasFoto +"></td>");
Pernyataan diatas digunakan untuk memeriksa ada tidaknya berkas foto. Bila ada
maka gambar akan ditampilkan melalui tag HTTP bernama IMG.
54
4.5.2 User Interface User Pesan
Gambar berikut merupakan gambar user interface user untuk pesan kaset
Gambar 4.2 pesan kaset
Gambar 4.3 input data diri pemesan
55
Bila user telah memilih kaset yang akan dipesan, maka user harus mengisi data
user, seperti nama, no identitas, alamat, serta no telp yang akan disimpan di table
userpsn. Berikut listing programnya :
<% // --- Baca data artis String kode = gantiKosong(request.getParameter("kode")); //out.print("<h1>Kode kaset : "+kode+"</h1>"); if (kode == "") { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); } String judul =""; String harga=""; String jumlah=""; if (!ada_kesalahan) { CallableStatement cs = null; int stat = -1; try{ out.print("<h1>Kode kaset : "+kode+"</h1>"); cs = koneksi.prepareCall("{call jmlkaset(?,?)}"); cs.setString(1, kode); cs.registerOutParameter(2, java.sql.Types.INTEGER); h = cs.executeUpdate(); stat = cs.getInt(2); if (stat == 0) out.print("<h2>.Barang habis, Silahkan pesan kaset yang lain<br> Terima kasih</h2>"); } catch(Exception ex){ ada_kesalahan = true; } ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); String strQuery = "SELECT kd_kaset, judul, harga, jumlah FROM kaset " + "where kd_kaset = \"" + kode + "\""; hasilQuery = stm.executeQuery(strQuery); } catch (Exception ex) { ada_kesalahan = true; }
56
if (!ada_kesalahan) { try { if (hasilQuery.next()) { judul = gantiKosong(hasilQuery.getString("judul")); harga = gantiKosong(hasilQuery.getString("harga")); jumlah = gantiKosong(hasilQuery.getString("jumlah")); } } catch (Exception ex) { ada_kesalahan = true; } } } }
Listing 4.4 p1.jsp
Pada interface pesan ini, kode kaset, judul, jumlah diambil dari interface
sebelumnya, untuk menampilkannya maka diperlukan pernyataan berikut :
String kode = gantiKosong(request.getParameter("kode"));
if (kode == "") { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); } String judul =""; String harga=""; String jumlah="";
Selain menampilkan data kaset yang dipesan, listing diatas juga perintah yang
digunakan untuk memanggil procedured, berikut pernyataan yang digunakan
untuk memanggil store procedure yang berisi transaksi manajemen yang berfungsi
untuk mengurangi jumlah kaset bila ada proses pemesanan serta menolak akses
user bila terjadi pemesanan secara bersamaan namun barang tersebut ternyata
sudah habis. Pernyataan berikut yang digunakan untuk memanggil store
procedurenya:
57
if (!ada_kesalahan) {
CallableStatement cs = null; int stat = -1; try{ out.print("<h1>Kode kaset : "+kode+"</h1>"); cs= koneksi.prepareCall("{call jmlkaset(?,?)}"); cs.setString(1, kode); cs.registerOutParameter(2,java.sql.Types.INTEGER); h = cs.executeUpdate(); stat = cs.getInt(2); if (stat == 0) out.print("Barang habis"); } catch(Exception ex){ ada_kesalahan = true; } CallableStatement digunakan untuk mengeksekusi strored procedure yang
didefinisikan dalam database. Untuk mengimplememtasikan agar dikenal dalam
java maka diperlukan java.sql.CallableStatement dan untuk mengambil
obyek CallableStatement maka dibutuhkan beberapa method dari interface
Connection.
Berikut store procedured-nya:
DELIMITER $$; DROP PROCEDURE IF EXISTS `tabullet`.`jmlkaset`$$ CREATE PROCEDURE `jmlkaset`(in kode varchar(8), out stat int) BEGIN declare jml int; declare txn_error integer default 0; declare continue handler for sqlexception begin set txn_error=1; end; set autocommit = 0; set session transaction isolation level serializable; start transaction; select jumlah into jml from kaset where kd_kaset = kode for update; if(jml > 0)then begin update kaset set jumlah = jml-1 where kd_kaset = kode; if txn_error then rollback;
58
else begin commit; end; end if; set stat:= 1; end; else set stat := 0; end if; set autocommit = 1; END$$ DELIMITER ;$$
Listing 4.5 Store Procedured jmlkaset
Pada listing 4.6 terdapat 2 parameter yaitu kode dan stat. Parameter ini digunakan
agar program yang memanggil store procedure dapat mengakses database yang
diperlukan. Dalam store procedured diatas terdapat txn_error yang dideklarasikan
dengan tipe integer yang beri nilai default 0. Kemudian txn_error diset 1 yang
menandakan telah terjadi error. Perintah start transaction adalah perintah yang
digunakan sebagai pertanda transaksi dimulai. Data yang dimasukkan pada table
kaset adalah kd_kaset. Set autocommit diset terlebih dahulu dengan nilai 0. Agar
jml dank ode dikenal maka dideklarasikan
select jumlah into jml from kaset where kd_kaset = kode for
update;
bila jumlah kaset lebih dari 0 maka akan dijalankan perintah:
update kaset set jumlah = jml-1 where kd_kaset = kode;
bila kaset masih tersedia maka akan dieksekusi perintah commit dan membaca
stat := 1 , namun bila kaset habis maka yang akan dieksekusi adalah perintah
rollback yang akan membaca stat := 0. Bila transaksi telah selesai dibaca maka
set autocommit akan diubah menjadi bernilai 1.
59
Dan bila user telah mengisi data diri dengan lengkap, maka data user disimpan ke
table kaset, pernyataan berikut yang menunjukkan penyimpanan data user yang
terdapat pada listing p2.jsp:
String strQuery = "insert into userpsn" + "(nama, no_ktp, almt, telp)" + " values (" + "\'" + request.getParameter("nama") + "\', " + "\'" + request.getParameter("no_ktp") + "\', " + "\'" + request.getParameter("almt") + "\', " + "\'" + request.getParameter("telp") + "\'" + ")"; hasil_penyisipan1 = stm.executeUpdate(strQuery);
Setelah semua diisi data user diisi maka proses pemesanan tersebut akan disimpan
ke table pesan, berikut pernyataannya :
String strQuery = "insert into pesan" + "(kd_kaset, no_ktp)" + " values (" + "\'" + request.getParameter("kode") + "\', " + "\'" + request.getParameter("no_ktp") + "\'" + ")"; hasil_penyisipan = stm.executeUpdate(strQuery);
id_pesan yang terdapat pada table pesan diperoleh otomatis dari sistem karena
pada database telah didefinisikan auto_increment. Sedang id merupakan no
identitas diri user, pada table userpsn id merupakan primary key, kd_kaset
merupakan primary key table kaset namun pada table pesan merupakan foreign
key.
60
4.5.3 User Interface Admin
Gambar berikut merupakan user interface pada admin
Gambar 4.4 home admin
Sebelum mengakses sistem, admin diharuskan melakukan login terlebih dahulu.
Form login ini terhubung dengan vallogin.jsp, vallogin.jsp ini akan dijalankan bila
tombol login di klik. Berikut listing vallogin.jsp
<%@ include file="otentikasi.jsp" %> <% String sesi_user = gantiKosong( request.getParameter("admin")); String sesi_pass = gantiKosong( request.getParameter("sandi")); if (! otentikasi(sesi_user, sesi_pass)) { String msg = "Harap diisi dengan benar"; response.sendRedirect("login.jsp?msg=" + msg + "&admin=" + sesi_user); } else { session.invalidate(); session = request.getSession(true);
61
session.setAttribute("sesi_user", sesi_user); session.setAttribute("sesi_pass", sesi_pass); } %>
Listing 4.6 vallogin.jsp
Untuk memperoleh nilai parameter admin dan sandi, maka perintah berikut yang
akan dipanggil :
String sesi_user = gantiKosong( request.getParameter("admin")); String sesi_pass = gantiKosong( request.getParameter("sandi"));
untuk memeriksa sah tidaknya admin yang login, maka akan dicek seperti
dibawah ini :
if (! otentikasi(sesi_user, sesi_pass))
bila data tidak valid, maka akan dijalan pernyataan tersebut:
String msg = "Harap diisi dengan benar"; response.sendRedirect("login.jsp?msg=" + msg + "&admin=" + sesi_user); Sedangkan perintah sendRedirect() digunakan untuk menjalankan login.jsp
dengan menyertakan parameter berupa msg dan admin, agar nama admin tetap
ditampilkan pada login.jsp, dan msg digunakan untuk menyatakan pesan pada
login.jsp.
Bila admin yang melakukan login valid, maka pernyataan berikut akan dijalankan:
else { session.invalidate(); session = request.getSession(true); session.setAttribute("sesi_user", sesi_user); session.setAttribute("sesi_pass", sesi_pass); }
Maka JSP akan menghapus sesi sekarang, menciptakan sesi baru, dan membentuk
dua data sesi dengan nama sesi_user dan sesi_pass, yang akan digunakan untuk
62
melakukan validasi pada setiap dokumen yang dipanggil tanpa harus memasukkan
data admin dan password lagi, kecuali bila admin telah melakukan logout.
Pada vallogin.jsp terdapat otentikasi.jsp, yang merupakan sebuah fungsi
otentikasi() karena sering digunakan. Berikut isi dari otentikasi.jsp :
<%@ page import="java.sql.Connection, java.sql.DriverManager, java.sql.Statement, java.sql.ResultSet" %> <%@ include file="definisi.jsp" %> <%! public boolean otentikasi(String admin, String password) { if (admin == null || password == null) return(false); if (admin.equals("") || password.equals("")) return(false); boolean ada_kesalahan = false; boolean password_cocok = false; try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan) { // Bentuk koneksi Connection koneksi = null; try { koneksi = DriverManager.getConnection( NAMA_DB, NAMA_USER, PASSWORD); } catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan) { ResultSet hasilQuery = null; try { Statement stm = koneksi.createStatement(); hasilQuery = stm.executeQuery( "SELECT password FROM admin " + "WHERE nip = '" + admin + "'");
63
} catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan) { String data_password = ""; try { if (hasilQuery.next()) data_password = hasilQuery.getString("password"); } catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan) if (password.equals(data_password)) password_cocok = true; } } } return(password_cocok); } %>
Listing 4.7 otentikasi.jsp
Fungsi otentikasi() melibatkan dua parameter bertipe String yang mewakili admin,
password. Nilai balik fungsi bertipe Boolean, nilai true menyatakan bahwa admin
boleh mengakses database dan bila bernilai false berarti admin tidak diijinkan
mengakses database. Data pada table admin dibaca dengan pernyataan berikut:
hasilQuery = stm.executeQuery( "SELECT password FROM admin " + "WHERE nip = '" + admin + "'");
Pernyataan di atas berguna untuk mendapatkan nilai password pada table admin
yang memiliki field bernama nip yang bernilai sama dengan parameter admin.
Hasil dari pernyataan tersebut dibaca melalui:
if (hasilQuery.next()) data_password = hasilQuery.getString("password");
64
Bila ditemukan maka data password dibaca dan diberikan ke variable
data_password.
Untuk memeriksa apakah nilai data_password (table admin) cocok dengan
parameter password atau tidak, bila cocok maka variable password_cocok diberi
nilai true, berikut pernyataannya:
if (!ada_kesalahan) if (password.equals(data_password))
password_cocok = true;
bila password tidak cocok maka dipersilakan login kembali dan diberi pesan
bahwa password tidak benar.
4.5.4 User Interface Admin untuk Daftar
Gambar User interface admin daftar
Gambar 4.5 tambah admin
65
Dalam form login tersebut bila belum terdaftar dan klik daftar maka akan muncul
form daftar admin seperti di atas. Penyimpanan data ke table admin menggunakan
query berikut:
String strQuery = "INSERT INTO admin (nip, password) " + "VALUES (" + "\'" + request.getParameter("nip") + "\'," + "\'" + request.getParameter("password") + "\'" + ")";
Untuk mengeksekusi query tersebut dideklarasikan seperti di bawah ini:
hasil_penyisipan = stm.executeUpdate(strQuery);
4.5.5 User Interface Admin untuk Proses Menambah Data
Gambar berikut merupakan user interface untuk menambah data kaset
Gambar 4.6 tambah kaset
66
Sebelum tambah kaset, admin diharuskan melakukan login terlebih dahulu. Hal
ini terlihat pada listing terdapat validasi.jsp yang mewajibkan admin melakukan
login dulu, bila admin belum melakukan login maka login.jsp dipanggil.
Listing di atas berfungsi untuk menyimpan data kaset ke table kaset. Berikut
query yang digunakan untuk melakukan proses menyimpanan di table kaset:
"INSERT INTO kaset (kd_kaset, nartis, judul, kategori, jenis, tgl_rel, harga, jumlah) " + "VALUES (" + "\'" + request.getParameter("kode") + "\'," + "\'" + request.getParameter("nartis") + "\'," + "\'" + request.getParameter("judul") + "\'," + "\'" + request.getParameter("kategori") + "\'," + "\'" + request.getParameter("jenis") + "\'," + "\'" + tgl_lahir + "\'," + "\'" + request.getParameter("harga") + "\'," + "\'" + request.getParameter("jumlah") + "\'" + ")";
Dan pengeksekusian query di atas, dengan pernyataan berikut :
hasil_penyisipan = stm.executeUpdate(strQuery);
pernyataan tersebut akan membuat variable hasil_penyisipan bernilai lebih besar
dari nol, maka data akan disimpan ke table kaset. Seperti pernyataan di bawah ini:
if (hasil_penyisipan > 0) out.print("Data telah disimpan" + "<BR>");
bila data kaset telah diisi dan telah klik pesan, maka data akan disimpan ke
database. Bila database telah menerima data tersebut, maka browser akan
menampilkan output seperti gambar di bawah ini
67
Gambar 4.7 output simpan kaset
4.5.6 User Interface Admin dalam Proses Ubah Data Kaset
Gambar berikut merupakan user interface ubah data kaset:
68
Gambar 4.8 Daftar Ubah Hapus
Listing di atas digunakan untuk menampilkan data kaset dari table kaset yang
diurutkan berdasarkan judul, hal itu terlihat pada potongan listing berikut:
"SELECT kd_kaset, nartis, judul FROM kaset " + "ORDER BY judul");
Untuk membentuk link baik ke ubhartis.jsp untuk mengubah data kaset dan
hps.jsp untuk menghapus data kaset maka dibutuhkan kode berikut:
out.println( "<TR><TD>" + nartis + "</TD><TD>" + nama + "</td><td> " + "<A HREF = \"ubhartis1.jsp?kode=" + kd_kaset + "\" TARGET = \"frame_kanan\">Ubah</A>"+ " / " + "<A HREF = \"hpsartis.jsp?kode=" + kd_kaset + "\" TARGET = \"frame_kanan\">Hapus</A>"+ "</TD><TR>\n");
Pada kolom pertama berisi data yang berasal dari variable nama (dalam table
dikenal sebagai judul), kolom kedua berisi link ke ubhartis1.jsp dan link ke
hpsartis.jsp, serta menggunakan kd_kaset sebagai parameter. Sedang atribut
TARGET digunakan untuk menentukan frame letak dokumen yang di link.
Bila ingin mengubah maka pilih ubah berarti link ke ubhartis1.jsp, yang
menampilkan seperti gambar berikut:
69
Gambar 4.9 Form Ubah kaset
Secara prinsip ubah kaset sama dengan tambah kaset, namun dalam ubah kaset
kode kaset yang tidak bisa diubah. Bila data kaset telah diubah dan tombol simpan
telah diklik, maka akan link ke ubhartis2.jsp yang terdapat query yang digunakan
untuk mengupdate data kaset yang baru ke dalam database.
Setelah data diubah dan tombol simpan diklik maka data akan disimpan ke table
kaset, menggunakan query berikut untuk mengupdate data lama menjadi data
baru.
"UPDATE kaset SET " + " kd_kaset = \"" + kode + "\", " + " nartis = \"" + nartis + "\", " + " judul = \"" + judul + "\", " + " kategori = \"" + kategori + "\", " + " jenis = \"" + jenis + "\", " + " tgl_rel = \"" + tgl_rel + "\", " + " harga = \"" + harga + "\", " + " jumlah = \"" + jumlah + "\"" + " WHERE kd_kaset = \"" + kode + "\"";
70
Pengeksekusian perintah ubah data kaset, ditangani oleh pernyataan berikut:
hasil_perekaman = stm.executeUpdate(strQuery);
pernyataan tersebut akan membuat variable hasil perekaman bernilai lebih besar
dari nol, maka data akan berhasil disimpan.
4.5.7 User Interface Admin dalam Proses Hapus Data Kaset
Gambar berikut merupakan user interface admin untuk hapus data
Gambar 4.10 Form Hapus Kaset
Gambar di atas merupakan hasil link dari dafartis.jsp yang dideklarasikan dengan
"<A HREF = \"hpsartis.jsp?kode=" + kd_kaset + "\" TARGET = \"frame_kanan\">Hapus</A>" + "</TD><TR>\n");
Data kaset yang akan dihapus berdasarkan nilai parameter kode yang merupakan
kd_kaset pada table kaset. Bila tombol hapus telah diklik maka akan terjadi link
ke hpsartis2.jsp karena terdapat tag html <FORM ACTION="hpsartis2.jsp"
71
METHOD="POST"> dan membawa serta kode dan nama artis yang ditunjukkan
dengan adanya tag html berikut:
<INPUT TYPE="HIDDEN" NAME="kode" VALUE="<%= kode %>"> <INPUT TYPE="HIDDEN" NAME="nartis" VALUE="<%= nartis %>"> <INPUT TYPE="SUBMIT" VALUE="Hapus"> Berikut listing hpsartis2.jsp
<%@ page import="java.sql.Connection, java.sql.DriverManager, java.sql.Statement, java.sql.ResultSet, java.sql.Clob" %> <%@ include file="segarkan.jsp" %> <%@ include file="validasi.jsp" %> <% String kode = request.getParameter("kode"); if (kode == null) { String msg = "Salah pemakaian"; response.sendRedirect("info.jsp?msg=" + msg); } String nartis = request.getParameter("nartis"); %> <HTML> <HEAD> <TITLE>Menghapus Data Artis</TITLE> </HEAD> <BODY> <CENTER> <H1>Informasi Penghapusan Artis</H1> <HR> <% out.println("Kode: <B>" + request.getParameter("kode") + "</B><BR>"); out.println("artis: <B>" + request.getParameter("nartis") + "</B><BR>"); out.println("<HR>"); // Koneksi ke database boolean ada_kesalahan = false; try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception ex) { ada_kesalahan = true;
72
} if (!ada_kesalahan) { // Bentuk koneksi Connection koneksi = null; try { koneksi = DriverManager.getConnection( NAMA_DB, NAMA_USER, PASSWORD); } catch (Exception ex) { ada_kesalahan = true; } if (!ada_kesalahan) { try { Statement stm = koneksi.createStatement(); String strQuery = "DELETE FROM kaset " + " WHERE kd_kaset = \"" + kode + "\""; stm.executeUpdate(strQuery); out.print("Data telah dihapus"); } catch (Exception ex) { ada_kesalahan = true; } } } if (ada_kesalahan) out.print("Gagal menghapus"); %> </CENTER> </BODY> </HTML>
Listing 4.8 hpsartis2.jsp
Data pada table kaset dihapus menggunakan perintah SQL delete, sebagaimana
dapat dilihat pada kode berikut:
String strQuery = "DELETE FROM kaset " + " WHERE kd_kaset = \"" + kode + "\"";
Dan pengeksekusian perintahnya dilakukan melalui pernyataan berikut:
stm.executeUpdate(strQuery);
73
4.5.8 User Interface Admin untuk Melihat Data Pesan Kaset
Berikut gambar user interface admin untuk melihat data pesan kaset :
Gambar 4.11 lihat data pesan
Gambar 4.12 lihat detail pemesan
74
Berikut listing lihatpesan.jsp:
<% boolean salah = false; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception ex){ out.println("Kesalahan : " + ex); salah = true; } if(!salah){ Connection koneksi = null; try{ koneksi = DriverManager.getConnection( NAMA_DB, NAMA_USER, PASSWORD); } catch(Exception ex){ out.println("Kesalahan : " + ex); salah = true; } if(!salah){ ResultSet hasilQuery = null; try{ Statement stm = koneksi.createStatement(); //hasilQuery = stm.executeQuery("SELECT a.id_pesan, a.kd_kaset, b.nama FROM pesan a, userpsn b"); hasilQuery = stm.executeQuery("select id_pesan, kd_kaset, no_ktp from pesan"); } catch(Exception ex){ out.println("Kesalahan : " + ex); salah = true; } if(!salah){ try{ while(hasilQuery.next()){ String id_pesan = hasilQuery.getString("id_pesan"); String kd_kaset = hasilQuery.getString("kd_kaset"); //String nama = hasilQuery.getString("nama"); String no_ktp = hasilQuery.getString("no_ktp"); out.println( "<tr><td>" + id_pesan + "</td>" + "<td>" + kd_kaset + "</td>" +
75
"<td>" + no_ktp + "</td></tr>" ); //"<td>" + waktu + "</td>" + "<tr>"); } } catch(Exception ex){ out.println("Kesalahan : " + ex); salah = true; } } } } %>
Listing 4.9 lihatpesan.jsp
Untuk menampilkan data pesanan maka dibutuhkan query berikut
hasilQuery = stm.executeQuery("SELECT id_pesan, kd_kaset, jml, id, waktu FROM pesan ");
Dan perintah berikut untuk menampilkan data dari table kaset ke browser, namun
harus dicek dulu apakah ada kesalahan atau tidak, seperti pada penggalan kode
berikut
if(!salah){ try{ while(hasilQuery.next()){ String id_pesan = hasilQuery.getString("id_pesan"); String kd_kaset = hasilQuery.getString("kd_kaset"); String jml = hasilQuery.getString("jml"); String id = hasilQuery.getString("id"); String waktu = hasilQuery.getString("waktu"); out.println( "<tr><td>" + id_pesan + "</td>" + "<td>" + kd_kaset + "</td>" + "<td>" +jml + "</td>" + "<td>" + id + "</td>" + "<td>" + waktu + "</td>" + "<tr>"); } } catch(Exception ex){ out.println("Kesalahan : " + ex);
76
salah = true; } }
Bila tidak ada kesalahan maka data pesanan yang terdapat pada table pesan akan
ditampilkan pada browser.
77
BAB V
ANALISIS HASIL
5.1. Pengujian Sistem Informasi
Terdapat dua user mengakses data kaset yang sama untuk memesannya
pada waktu yang sama, dan pada keadaan itu kaset yang tersedia hanya tinggal
satu maka disini manajemen transaksi akan bekerja. Sistem akan memberikan
kaset tersebut kepada user yang lebih cepat memesan dengan selang waktu yang
sangat kecil.
Berikut akan tampil, user yang mendapatkan kaset yang dipesan:
Gambar 5.1 user yang mendapat kaset
Hal tersebut didapatkan dari listing p1.jsp yang terdapat pernyataan yang
memanggil store procedured yang akan mengirimkan stat = 1 bila kaset masih
78
tersedia. Dan user diijinkan untuk melanjutkan akses data dengan mengisi data
diri dengan tujuan admin mengetahui data diri user yang akan digunakan untuk
konfirmasi pemesanan untuk pengambilan barang yang dipesan. Bila user telah
mengisikan data diri, maka data diri akan dieksekusi oleh p2.jsp dan akan
ditampilkan seperti berikut dibawah ini:
Gambar 5.2 user yang mendapat kaset
Sedang user yang satu akan mendapat tampilan berikut karena kaset tinggal satu,
namun telah habis karena user pertama lebih cepat waktu pesannya:
79
Gambar 5.3 user yang tidak mendapat kaset
Hal tersebut karena p1.jsp memanggil store procedure yang mengirimkan stat = 0
karena jumlah kaset telah habis. Karena pada saat yang bersamaan ada user lain
yang memesan kode yang sama dengan selang waktu yang sangat kecil.
5.2. Kelebihan dan Kekurangan Sistem
5.2.1. Kelebihan Sistem
1. Sistem pemesanan menggunakan Manajemen Transaksi dengan
level isolasi serializable dalam pembuatan sistemnya, sehingga
tidak akan terjadi lost update problem
2. Pada pemesanan proses update jumlah kasetnya menggunakan
stored procedure yang memuat manajemen transaksi di dalamnya.
80
5.2.2. Kekurangan Sistem
• Pemborosan database karena setiap user yang akan memesan
harus memasukkan data pribadi terlebih dahulu.
81
BAB VI
PENUTUP
6.1. KESIMPULAN
1. Sistem Informasi Pemesanan yang telah dibuat dengan manajemen
transaksi dengan level isolasi serializable, telah dapat berfungsi
dengan baik untuk menangani transaksi yang bersamaan dalam
pemesanan kaset CD.
2. Manajemen transaksi pada sistem ini berhasil digunakan pada
proses pemesanan untuk mengurangi jumlah kaset serta mengatasi
bila ada lebih dari satu user memesan data kaset yang sama dan
data kaset tersebut hanya tinggal satu.
6.2. SARAN
1. Sebaiknya pada Sistem Informasi Pemesanan, dibuat login jadi bila
user akan memesan tidak perlu mengisi data diri lagi sehingga
tidak terjadi pemborosan database.
2. Sebaiknya Sistem Informasi Pemesanan tidak hanya dikembangkan
untuk pemesanan saja, namun untuk penjualan juga.
82
DAFTAR PUSTAKA
Whitten, J.L., Bentlex, L.D., Barlow, V.M., System Analysis & Design Methods
Sixth Edition, Irwin / McGraw-Hill, 2004.
Linda Marlinda, S.Kom, Sistem Basis Data, Andi Offset, Yogyakarta, 2004.
Pedoman Penulisan Skripsi, Universitas Sanata Dharma, Yogyakarta, 2004.
Wahidin, 7 Jam Belajar Dreamweaver MX 2004, Maxikom, Palembang, 2005.
Abdul Kadir, Dasar Pemrograman Web Dinamis dengan JSP (Java Server Page),
Andi Offset, Yogyakarta, 2004.
Alb. V. Dian Sano, 24 Jam Menguasai HTML, JSP, dan MySQL