PENERAPAN MANAJEMEN TRANSAKSI
RESERVASI TIKET KAPAL LAUT BERBASIS WEB
( Studi Kasus : PT. Bangun Jasa Terpadu )
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
W. I Etta Farneubun
025314072
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
THE APPLICATION OF TRANSACTION
MANAGEMENT ON
WEB BASED SHIP TICKET RESERVATION
( Case Study : PT Bangun Jasa Terpadu )
SKRIPSI
Proposed To Fulfil One Of The Requirements
To Obtain Bachelor Degree In Information Technology
By :
W. I ETTA FARNEUBUN
025314072
INFORMATION TECHNOLOGY
FACULTY OF TECHNIQUE
SANATA DHARMA UNIVERSITY
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, Mei 2007
HALAMAN PERSEMBAHAN
Karya ini kupersembahkan untuk :
...
Yesus-ku yang selalu memberikan aku kekuatan disaat aku putus asa dan
selalu memberikan aku kebahagiaan disaat aku sedih,
...
Ibuku dan Alm Bapak yang telah membesarkan dan mendidik aku dengan
cinta dan kelembutan,
...
Kakak dan kemenakan-kemenakanku yang selalu menyayangi dan menghibur
aku,
...
HALAMAN MOTTO
Ada waktu untuk Menangis,
Ada Waktu untuk Tertawa ;
Ada Waktu untuk Meratap,
Ada waktu untuk Menari.
Ia Membuat Sesuatu Indah
Pada Waktunya
( Pengkhotbah 3:4,11a)
Faith Makes all thing possible
Hope makes all things work
ABSTRAKSI
Sistem informasi reservasi tiket kapal laut berbasis web merupakan sistem informasi yang melayani pemesanan tiket secara online untuk keberangkan dari dermaga Tanjung Perak Surabaya dengan tujuan beberapa dermaga terbesar di indonesia.
Sistem ini terdiri dari 2 pemakai yaitu user dan admin. Adapun berbagai fasilitas yang tersedia bagi user yaitu dapat melakukan pemesanan tiket dengan terlebih dahulu melakukan proses registrasi. Selain itu user juga dapat melakukan proses perubahan data pribadi, melihat data pesanan, membatalkan pesanan, melihat informasi yang berhubungan dengan kapal seperti jadwal keberangkatan kapal, harga tiket , fasilitas yang disediakan kapal, fasilitas kelas, dll. Sedangkan untuk admin dapat mengolah data kapal, kelas, dermaga, harga tiket maupun untuk menangani proses pembelian dan penentuan nomor tempat.
ABSTRACT
Information system for web based ship ticket reservation is an information system which provides online ticket reservation service for departure from Tanjung Perak Harbor Surabaya to different largest harbors destination in Indonesia.
This system consisted of 2 wearer that is user and admin. The facilities available to users are they can reserve ticket after doing registration process. In addition, users can change information in their personal identity, see their reservation data, cancel reservation, search for information such as ship departure schedule, ticket fare, facility provided by the ships, class facility, etc. Differently, Admin can manage data of the ship, class, harbor, ticket fare and also can manage the process of ticket purchasing and assign the seat number.
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. Bapak JB. Budi Darmawan, S.T., M.Sc., selaku Dosen Pembimbing , yang telah banyak membantu terutama dalam memberikan bimbingan, dukungan, dan penyediaan sarana yang mendukung, sehingga penulis dapat menyelesaikan laporan tugas akhir ini. Terima kasih banyak pak, atas semuanya.
2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma dan salah satu dosen penguji.
3. Bapak Wisnu dan Bapak Yudi, selaku Dosen Penguji TA.
5. Bapak Bele, makasih atas segala bantuan yang diberikan.
6. Ibuku tercinta yang telah memberikan semua yang dimiliki kepada penulis, tanpa mengarapkan imbalan apapun. Terima kasih Tuhan karena telah memberikan ibu yang luar biasa.
7. Ka Ida dan Bu Abas, Ka Robi dan ka Eda, ka nona and spesial buat ka didi, makasih buat semangat, bantuan dan cinta dari kalian. Aku bangga menjadi adik kalian.
8. Kemenakan-kemenakanku : Sri, Jorf, Mozat, ade Nona, Afo kalian selalu jadi penghibur buat bong. Kapan maen ke jogja ?
9. Agnes, Regis, Anna dan Ferdi, makasih buat perhatian selama ini and buat Agnes makasih sudah mau antar jemput bong.
10.Om Engel keluarga, Om Pla keluarga makasih buat bantuan selama ini. Buat mama Du, makasih buat kasih sayang tanpa lelah yang mama Du berikan, mama Tu, Ebenis, Eb Jayapura makasih buat nasihatnya. Sr Yohana, makasih sudah jadi penyemangat waktu ujian, yang akur sama Sr Stefani ya?.
11.My Best Friends : Borne ( makasih udah jadi saudara and sabahat buat aku ), Pipiet , Butet, Banang. Makasih buat persahabatan yang kalian berikan. Sampai kapanpun kalian adalah sahabat terbaikku. Tanpa kalian Jogja terasa sepi. He...he...he..
12.Melin, Tri, Dian. Bersama kalian hari-hari kuliah yang membosankan terasa mengasikan. Ayo semangat kalian pasti bisa.
aku header. Top bgt), Lijun ( makasih udah kasih semangat buat aku untuk maju and yakini aku bahwa aku bisa.Makasih ya???? ), Dadit, Tono, Santo, Pristo, Tere, Yohana dan semuanya ya.
14.Teman-teman TI’01 : Mas Sigit, ka Anan, ka Vindi, Mas Tio, Mb Nita, Mb Agnes, Xtin ( makasih udah jadi teman yang super gila buat aku. Hari-hari dikost terasa menyenangkan ), Ka dami ( makasih udah ajarin aku transaction support.), and special thanks untuk Sunarko,S.T. yang telah membantu penulis dalam pembuatan program.
15.Teman-teman Kost : Ka Sri ( kapan foto-foto and karoeke lagi??? ), Mb Uci, Mb Tiar, Dani, Ida and spesial buat ka Vina ( Ka, makasih atas printernya ya. he..he..he. Ka Pin, semangat ya ).
16.Teman-teman dari Tual : Sri, Ka Eri, Ena, Ani, Dona and adik, Ati Esomar, Enjelo, Ka Jimie, Ka Ivo dan semua anak-anak Babarsari. Kapan pesta-pesta lagi?
17.Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan tugas akhir ini yang tidak dapat penulis sebutkan satu-persatu.
membutuhkannya. Atas segala perhatiannya dan kerjasamanya, penulis ucapkan terima kasih.
Yogyakarta, Mei 2007
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...xvii
Daftat Tabel...xxi
BAB I Pendahuluan ………1
1.1Latar Belakang Masalah………...1
1.2Rumusan Masalah..………...2
1.3Batasan Masalah.……….……….2
1.4Tujuan Penelitian..………2
1.5Metodologi Penelitian .……….…4
1.6Sistematika Penulisan………....5
BAB II Landasan Teori………7
2.2 Kebutuhan Concurency Control Dan Level Isolasi Dalam Oracle ...9
2.3 Sistem………...………....13
2.3.1 Konsep Dasar Sistem...13
2.3.2 Karakteristik Sistem ... ...13
2.4 Informasi ...……….15
2.4.1 Konsep Dasar Informasi...15
2.4.2 Siklus Informasi... ...15
2.4.3 Kualitas Informasi... ...16
2.4.4 Nilai Informasi ...16
2.5 Metodologi Pengembangan Sistem…….………16
2.5.1 Use Case Diagram……...16
2.6 ERD (Entity Relationship Diagram) ...18
2.7 DFD (Data Flow Diagram) ...22
2.8 Word Wide Web ...24
2.9 HTML ( Hypertext Mrkup Language ) ...25
2.10 PHP ( Personal Home Page ) ...26
2.10.1 Hubungan PHP dan HTML...27
2.10.2 Kelebihan PHP... ...29
2.11 Pemrograman SQL di Oracle ...30
2.12 Pemrograman PL/SQL...33
2.12.1 Store Procedure...36
2.12.2 Package... ...37
2.12.4 Fungsi-Fungsi PHP ...38
BAB III Analisa dan Perancangan Sistem...40
3.1 Analisis Sistem...40
3.1.1 Gambaran Umum Sistem Yang Lama...40
3.1.2 Gambaran Umum Sistem Yang Baru...41
3.1.2.1 Ruang Lingkup Sistem...43
3.1.3 Requirement Analysis...44
3.1.3.1 Use Case Diagram...44
3.1.4 Logical Design...45
3.1.4.1 Process Modeling...45
3.1.4.1.1 Context Diagram...46
3.1.4.1.2 Diagram Berjenjang...48
3.1.4.1.3 Overview Diagram...49
3.1.4.2 Data Modeling...67
3.2 Disain Sistem ...68
3.2.1 Disain Database...68
3.2.2 Relasi Antar Tabel...72
3.3 Disain Penanganan Masalah Multi User ...72
3.3.1 Kemungkinan Masalah Yang Bisa Terjadi ...72
3.3.2 Penanganan Terhadap Masalah Yang Terjadi ...74
3.4 Disain Teknologi Yang Digunakan ...75
BAB IV Implementasi Sistem ...………...76
4.2 Kebutuhan Sistem...76
4.3 Setting Koneksi PHP ke Oracle Database...77
4.4 User Interface...78
4.4.1 User Interface untuk user... ...78
4.4.2 User Interface untuk Admin...95
4.4.2.1 Proses Input Admin... ...95
4.4.2.2 Proses Output Admin... ...106
BAB V Analisa Hasil...120
5.1 Pengujian Aplikasi ...120
5.1.1 Pengujian Aplikasi Tanpa Menggunakan Teknologi Manajemen Transaksi ...120
5.1.2 Pengujian Aplikasi Dengan Menggunakan Teknologi Manajemen Transaksi ...125
5.1.2.1 Pengujian Terhadap Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) ...126
5.1.2.1.1 Pengujian Terhadap Proses Pemesanan Tiket... ...126
5.1.2.1.2 Pengujian Terhadap proses Pembatalan Tiket...134
5.2 Kelebihan Dan Kekurangan Sistem ...140
5.2.1 Kelebihan Sistem ...140
5.2.2 Kekurangan Sistem ...141
BAB VI Penutup ...142
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Diagram Transisi Transaksi 8
2.2 Simbol Use Case 17
2.3 Simbol Aktor 17
2.4 Contoh dari E-R Diagram 18
2.5 Contoh dari Entity 19
2.6 Contoh dari Atribut 19
2.7 Contoh dari identifier atau key 20
2.8 Contoh dari Relasi 21
2.9 Notasi dari Cardinality 21
2.10 Simbol Proses menurut Gane dan Sarson 23
2.11 Simbol dari arus data 23
2.12 Simbol kesatuan luar menurut Gane dan Sarson 23 2.13 Simbol penyimpanan data menurut Gane dan Sarson 24
3.1 Use Case Diagram 45
3.2 Context Diagram 47
3.3 Diagram Berjenjang 48
3.4 Overview Diagram 49
3.5 Overview Diagram Level 1 Proses Registrasi dan Login 50 3.6 Overview Diagram Level 1 Proses Update Data Kapal 51 3.7 Overview Diagram Level 1 Proses Update Data Kelas 52 3.8 Overview Diagram Level 1 Proses Update Data Dermaga 53 3.9 Overview Diagram Level 1 Proses Update Data Detail Kapal 54 3.10 Overview Diagram Level 1 Proses Update Data Tiket 55 3.11 Overview Diagram Level 1 Proses Data Transaksi Pemesanan 56 3.12 Overview Diagram Level 1 Proses Transaksi Pembelian 57 3.13 Overview Diagram Level 1 Proses Update Data Tempat 58 3.14 Overview Diagram Level 1 Proses Update Data Detail Tiket 59 3.15 Overview Diagram Level 1 Proses Update Data Pemesan 60 3.16 Overview Diagram Level 1 Proses Update Data Propinsi 61 3.17 Overview Diagram Level 1 Proses Update Data Fasilitas 62 3.18 Overview Diagram Level 1 Proses Update Data Berita 63 3.19 Overview Diagram Level 1 Proses Update Data Buku Tamu 64 3.20 Overview Diagram Level 1 Proses Ubah Password 65 3.21 Overview Diagram Level 1 Proses Proses Logout 66
3.22 ER Diagram 67
3.23 Relasi Antar Tabel 72
4.1 User Interface Halaman Index 78
4.5 User Interface Halaman Lupa Password 84 4.6 User Interface Halaman Home User Setelah Login 86
4.7 User Interface Halaman Pemesanan 87
4.8 User Interface Halaman Form Pemesanan 89
4.9 User Interface Halaman Detail Pemesanan 90 4.10 User Interface Halaman Batal Pemesanan 92 4.11 User Interface Halaman Ubah Data Pemesan 94
4.12 User Interface Halaman Login Admin 95
4.13 User Interface Halaman Input Kapal 96
4.14 User Interface Halaman Input Kelas 98
4.15 User Interface Halaman Input Dermaga 99
4.16 User Interface Halaman Input Data Tiket 101 4.17 User Interface Halaman Input Data Detail Kapal 103 4.18 User Interface Halaman Input Pembelian dan Tempat 105
4.19 User Interface Halaman Output Kapal 107
4.20 User Interface Halaman Output Kelas 108
4.21 User Interface Halaman Output Dermaga 110
4.22 User Interface Halaman Output Tiket 111
4.23 User Interface Halaman Output Detail Tiket 113 4.24 User Interface Halaman Output Detail Kapal 114
4.25 User Interface Halaman Output Tempat 116
4.26 User Interface Halaman Output Data Pemesan 117 4.25 User Interface Proses Mengubah Data Barang 112
5.1 User Interface Data Jumlah Stok Tiket Awal Pengujian Aplikasi Tanpa Penggunaan Teknologi Manajemen Transaksi
120 5.2 User Interface Simulasi Tak Ada Manajemen Transaksi 1 121 5.3 User Interface Simulasi Tak Ada Manajemen Transaksi 2 123 5.4 User Interace Data Tiket Akhir Pengujian aplikasi tanpa
penggunaan manajemen transaksi
124 5.5 User Interface Data Jumlah Stok Tiket Awal Pengujian
Terhadap Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) Dengan Menggunakan Teknologi
Manajemen Transaksi
126
5.6 User Interface Simulasi Ada Manajemen Transaksi 1 127 5.7 User Interface Simulasi Ada Manajemen Transaksi 2 129 5.8 User Interface Reaksi Yang Terjadi Jika 2 Simulasi Aplikasi
Yang Menggunakan Teknologi Manajemen Transaksi Dengan Level Isolasi Serializable Saling Bertabrakan Pada Pengujian Masalah Hilangnya Data Yang Diubah (The Lost Update Problem)
130
5.9 User Interface Data Jumlah Stok Tiket Yang Dipengaruhi Simulasi Aplikasi Pertama Pada Pengujian Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) Dengan
Menggunakan Teknologi Manajemen Transaksi
131
Terhadap Masalah Transaksi Yang Belum Dilaksanakan (The Uncommitted Dependency) Dengan Menggunakan Teknologi Manajemen Transaksi
5.11 User Interface Data Jumlah Stok Tiket Awal Pengujian Terhadap Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) Pada Proses Pembatalan Dengan
Menggunakan Teknologi Manajemen Transaksi
135
5.12 User Interface Simulasi Ada Manajemen Transaksi 1 untuk Proses Pembatalan
135 5.13 User Interface Simulasi Ada Manajemen Transaksi 2 yntuk
Proses Pembatalan
137 5.14 User Interface Reaksi Yang Terjadi Jika 2 Simulasi Aplikasi
Yang Menggunakan Teknologi Manajemen Transaksi Dengan Level Isolasi Serializable Saling Bertabrakan Pada Pengujian Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) pada Proses Pembatalan
138
5.15 User Interface Data Jumlah Stok Tiket Yang Dipengaruhi Simulasi Aplikasi Pertama Pada Pengujian Masalah Hilangnya Data Yang Diubah (The Lost Update Problem) Dengan
Menggunakan Teknologi Manajemen Transaksi pada Proses Pembatalan
138
5.16 User Interface Data Jumlah Stok Tiket akhir pada pengujian Pembatalan Tiket Dengan Menggunakan Teknologi
Manajemen Transaksi
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Contoh Masalah Hilangnya Data Yang Diubah 10
2.2 Jenis-Jenis Web Server 25
2.3 Tipe Data SQL Dalam Oracle 35
2.4 Fungsi-Fungsi PHP untuk Mengkases Database Oracle 38 3.1 Spesifikasi Kelas dan Kapasitas kapal. 41
3.2 Input Output Proses Modeling 46
3.3 Tabel Pemesan 68
3.4 Tabel Kapal 68
3.5 Tabel Kelas 68
3.6 Tabel Dermaga 68
3.7 Tabel Det_Kapal 69
3.8 Tabel Tiket 69
3.9 Tabel Det_Tiket 69
3.10 Tabel Pemesanan 69
3.11 Tabel Pembelian 70
3.12 Tabel Tempat 70
3.13 Tabel Fasilitas 70
3.14 Tabel Berita 70
3.15 Tabel Propinsi 70
3.16 Tabel Buku Tamu 71
3.17 Tabel Admin 71
3.18 Contoh Ilustrasi Masalah Hilangnya Data Yang Diubah 73 5.1 Proses Yang Terjadi Pada Pengujian Aplikasi Tanpa
Menggunakan Teknologi Manajemen Transaksi
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG MASALAH
Informasi saat ini sudah menjadi sebuah komoditi yang penting sehingga menuntut sumber daya manusia yang lebih terampil dan berkompeten. Kemampuan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi atau perusahaan. Teknologi internet memungkinkan untuk menyediakan informasi secara cepat.
pemesanan dan pembatalan tiket. Sistem yang dibuat ini menggunakan PHP dan oracle10g dengan menerapkan manajemen transaksi untuk menangani pemesanan yang dilakukan multiuser / banyak pemakai dalam waktu yang bersamaan. Jika setiap pemakai hanya membaca data maka tidak akan timbul masalah namun jika salah satu dari pemakai tersebut malakukan update maka akan timbul masalah dalam database. Untuk menangani masalah tersebut maka diterapkan manajemen transaksi.
1.2 RUMUSAN MASALAH
Berdasarkan latar belakang masalah diatas maka dirumuskan menjadi beberapa masalah sebagai berikut :
1. Bagaimana membuat sebuah sistem informasi berbasis web yang menyediakan informasi tentang reservasi tiket kapal laut yakni informasi jadwal keberangkatan, pemesanan dan pembatalan tiket ?
2. Bagaimana menangani reservasi tiket yang dilakukan oleh banyak user dengan menerapkan manajemen transaksi?
1.3 BATASAN MASALAH
Agar perancangan sistem ini dapat dilakukan secara tepat, maka dilakukan pembatasan cakupan sistem antara lain sebagai berikut :
2. Pemesan harus melakukan registrasi terlebih dahulu sebelum melakukan proses pemesanan maupun pembatalan.
3. Tidak melayani pembayaran tiket online, hanya dapat memesan tiket. Jumlah pesanan tiket dibatasi, paling banyak 5 ( lima ) tiket untuk setiap pemesan.
4. Sistem informasi ini digunakan untuk pemesanan tiket kapal Cirimai dan Tatamailau dengan pelabuhan awal Tanjung Perak Surabaya dan tujuan akhir Tual.
5. Tidak menangani proses pencetakan tiket. 6. Tidak menangani proses diskon.
7. Sistem yang dibuat tidak memperhatikan masalah keamanan jaringan. 8. Level isolasi manajemen transaksi yang digunakan adalah level isolasi
serializable.
9. Bahasa pemrograman yang digunakan adalah PHP dan didukung oleh DBMS Oracle 10g.
1.4 TUJUAN PENELITIAN
1.5 METODOLOGI PENELITIAN
Metodologi Penelitian yang digunakan untuk membuat aplikasi sistem informasi reservasi tiket kapal laut berbasis web antara lain adalah :
1.5.1 Studi pustaka
Dengan mengumpulkan data atau informasi dari berbagai literature yang sesuai dengan sistem yang akan dibuat. Metode ini juga meliputi dicumenter. Metode documenter adalah suatu cara pengambilan data dengan memahami data yang berasal atau bersumber dari dokumen-dokumen tertulis, arsip-arsip, buku-buku pedoman, peraturan-peraturan yang berhubungan dengan objek pembahasan.
1.5.2 Tahap-tahap Rekayasa perangkat Lunak secara terstuktur ( Jogiyanto, 2003)
1. Analisa
Identifikasi masalah dengan menggunakan teknik antara lain :
a) Pengamatan ( observasi ) : pengamatan langsung dan pengambilan sample data di PT. Bangun Jasa Terpadu
b) Wawancara ( interview ) : melakukan tanya jawab antara penulis dengan pihak PT. Bangun Jasa Terpadu maupun calon penumpang c) Membuat use case diagram ( Whitten, 2004 ).
2. Perancangan
3. Implementasi
Setelah melakukan rancangan sistem yang diinginkan, maka hasil rancangan tersebut diimplementasikan, yang mana rancangan tersebut diterjemahkan kedalam bahasa yang dapat dimengerti mesin.
4. Testing
Pengujian ini dimaksudkan untuk menguji konsistensi data yang ada dengan menerapkan manajemen transaksi. Pengujian telah dilakukan di lab komputer USD.
1.6 SISTEMATIKA PENULISAN
Sistimatika yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
BAB I. PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian yang digunakan serta sistimatika isi penulisan laporan.
BAB II. LANDASAN TEORI
Bab ini berisi tentang landasan teori yang digunakan oleh penulis dalam menyelesaikan tugas akhir ini.
BAB III. ANALISA DAN PERANCANGAN SISTEM
BAB IV. IMPLEMENTASI SISTEM
Bab ini berisi tentang implemetasi dari desain sistem yang dibuat dan telah dikembangkan kedalam sebuah aplikasi.
BAB V. ANALISA HASIL
Bab ini berisi tentang analisa hasil yang dilakukan terhadap proses implementasi yang telah dibuat.
BAB VI PENUTUP
BAB II
LANDASAN TEORI
2.1 MANAJEMEN TRANSAKSI ( Transaction Management)
Transaksi adalah sebuah tindakan atau serangkaian tindakan yang dilakukan oleh single user atau program aplikasi yang membaca atau mengubah isi dari database. Sebuah traksaksi dapat mempunyai salah satu hasil yakni jika sukses seluruhnya transakasi dikatakan telah committed ( dilakukan ) dan database mencapai suatu keadaan konsisten yang baru. Sebaliknya jika gagal, transaksi dibatalkan. Jika transaksi dibatalkan maka database harus dikembalikan ke keadaan konsisten ( consistent state ) seperti sebelum transaksi dimulai (Connolly, T., Begg, C., 2002). Transaksi tersebut disebut rolled back atau undone ( tidak dilakukan ).
Ada 4 hal dasar yang harus dimiliki semua transaksi, disebut ACID yaitu : 1. Atomicity
Sebuah transaksi adalah sebuah unit yang tidak dapat dibagi lagi sehingga dapat melakukan seluruhnya atau tidak melakukan apapun. Ini merupakan tangung jawab dari subsystem recovery dari DBMS untuk memastikan ke ‘atom’annya.
2. Consistency
3. Isolation
Transaksi secara bebas mengeksekusi yang lainnya. Dengan kata lain, sebagian transaksi yang tidak lengkap akan mengakibatkan transaksi yang lain menjadi tidak visible. Ini merupakan tanggung jawab dari subsystem concurrency control untuk memastikan isolasi.
4. Durability
Setelah DBMS memberitahu pengguna bahwa transaksi telah selesai dengan sukses, maka efeknya tetap bertahan bahkan jika sistem mengalami crash sebelum semua perubahannya direfleksikan pada disk. Ini merupakan tanggung jawab dari recovery subsystem untuk memastikan durability. Gambar 2.1 merupakan diagram transisi sebuah transaksi.
Diagram transisi sebuah transaksi :
Gambar 2.1 Diagram Transisi Transaksi
Dari diagram tersebut terdapat 5 keadaan ( state ) yaitu : 1. ACTIVE ( aktif )
Jika ditemukan bahwa transaksi melanggar serializability atau melanggar integrity constraint maka transaksi harus dibatalkan. Transaksi demikian akan menuju FAILED ( keadaan gagal ) dan harus dibatalkan.
Jika transaksi sukses, beberapa update dapat disimpan secara aman dan transaksi menuju ke keadan COMMITED.
3. COMMITED ( dilaksanakan ) 4. FAILED ( gagal )
Terjadi jika transaksi tidak dapat dilaksanakan atau transaksi dibatalkan pada saat aktif ( keadaan aktif ).
Kondisi ini terjadi jika user membatalkan transaksi atau protocol concurrency control membatalkan transaksi untuk memastikan serializability.
5. ABORTED ( dibatalkan )
2.2 KEBUTUHAN CONCURRENCY CONTROL DAN LEVEL ISOLASI
DALAM ORACLE
data, maka ada kemungkinan terjadi benturan. Concurrency control diperlukan untuk menjamin bahwa transaksi-transaksi yang dilakukan oleh multiuser secara konkuren tidak saling mengganggu operasinya masing-masing.
Ada 3 masalah yang disebabkan oleh concurrency control ( akses bersama ) yaitu :
1. Hilangnya data yang diubah (Lost Update Problem )
Sebuah transaksi yang melakukan update,namun pada waktu interfal yang bersamaan proses update tersebut ditimpa oleh transaksi lain. Tabel 2.1 merupakan contoh dari masalah hilangnya data yang diubah.
Waktu T1 T2 balx
t1 Begin_transaction 100
t2 Begin_transaction Read(balx) 100 t3 Read(balx) balx=balx+100 100 t4 balx=balx-10 Write(balx) 200
t5 Write(balx) Commit 90
t6 Commit 90
Tabel 2.1 Contah Masalah Hilangnya data yang diubah
dengan melarang T1 membaca nilai balx sampai transaksi T2 selesai melakukan perubahan data.
2. Pembacaan yang salah ( Dirty Read Problem )
Masalah ini terjadi saat suatu transaksi diijinkan membaca hasil suatu transaksi lain sebelum transaksi lain tersebut selesai dilakukan.
3. Inconsistent Analysis Problem ( Analisa yang salah )
Masalah ini terjadi ketika transaksi pertama membaca beberapa nilai dari database tetapi transaksi kedua mengubah nilai-nilai tersebut selama proses/eksekusi pertama belum selesai.
Masalah-masalah tersebut dapat diatasi jika ada kontrol yang baik dalam database. Artinya bahwa hasil dari transaksi yang dieksekusi secara serial ( transaksi dijalankan sendiri-sendiri, tanpa ada sela, menjamin konsistensi data) sama dengan transaksi yang dieksekusi secara bersama. Hal ini disebut serialzability. Serializability merupakan parameter keberhasilan dalam concurrency control dan dicapai dengan menggunakan macam-macam level isolasi pada transaksi ( transaction isolation levels ). Level isolasi digunakan mengontrol tingkat dimana transaksi tertentu terbuka terhadap tindakan transaksi lain yang melakukan eksekusi secara konkuren. Oracle menyediakan 3 level isolasi yaitu Read Committed, Serializable dan Read Only.( Connolly, T., Begg, C., 2002)
a. READ COMMITTED.
bukan transaksi dimulai ). Ini berarti bahwa data mungkin diubah oleh transaksi lain selama eksekusi dari statement yang sama didalam transaksi yang sama. Transaksi jenis ini merupakan default dari tipe transaksi pada oracle.
b. SERIALIZABLE.
Level isolasi ini menjamin bahwa sebuah transaksi T hanya membaca data yang telah di-commited dan tidak ada nilai yang dibaca atau ditulis oleh transaksi T yang diubah oleh transaksi lain sampai transaksi tersebut selesai. Dalam konteks implementasi lock-based, transaksi SERIALIZABLE memperoleh lock sebelum membaca atau menulis data, menyertakan lock pada sekumpulan data yang tidak boleh berubah dan menyimpannya sampai akhir transaksi.
c. READ ONLY
Transaksi READ ONLY hanya melihat data yang commited sebelum transaksi dimulai.
Level isolasi dapat diset dioracle dengan memilih salah satu dari level isolasi yang akan dipakai pada awal transaksi dimulai. Seperti :
SET TRANSACTION ISOLATION LEVEL READ COMMITED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
2.3 SISTEM
2.3.1 Konsep Dasar Sistem
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu (Jogiyanto, 2005). 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.3.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 (process) 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. Komponen-komponen sistem atau elemen-elemen sistem dapat berupa suatu subsistem atau bagian-bagian dari sistem.
2) Batas sistem
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.
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.4 INFORMASI
2.4.1 Konsep Dasar Informasi
Sistem informasi dapat didefinisikan sebagai kumpulan elemen yang saling berhubungan satu sama lain yang membentuk satu kesatuan untuk mengintegrasikan data, memproses dan menyimpan serta mendistribusikan informasi ( Sutedjo, 2002 ).
Sedangkan Informasi dapat diartikan sebagai :
“ Data yang diolah menjadi bentuk yang lebih berguna bagi usernya” ( Jogiyanto, 2005).
2.4.2 Siklus Informasi
disebut dengan siklus informasi (information cycle). Siklus ini juga disebut dengan siklus pengolahan data (data processing cycles).
2.4.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.4.4. Nilai Informasi
Informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya.
“ Data yang diolah menjadi bentuk yang lebih berguna bagi usernya” ( Jogiyanto, 2003).
2.5 METODOLOGI PENGEMBANGAN SISTEM
2.5.1 Use Case Diagram
Use-case merupakan urutan langkah-langkah yang secara tindakan saling terkait (scenario ), baik terotomatisasi maupun secara manual, untuk tujuan melengkapi satu tugas bisnis tunggal. Use-case disajikan secara grafis dengan elips horizontal dengan nama use-case muncul di atas, bawah, atau di dalam elips tersebut. Gambar 2.2 merupakan simbol dari Use Case.
Gambar 2.2 Simbol Use Case
Use-case diawali atau dipicu oleh pengguna eksternal yang dinamakan pelaku ( actor ). Actor adalah segala sesuatu yang perlu berinteraksi dengan sistem untuk pertukaran informasi. Actor menginisiasi kegiatan sistem yakni use-case dengan maksud melengkapi beberapa tugas yang menghasilkan sesuatu yang dapat diukur. Seorang actor ditampilkan secara grafis sebagai gambar tongkat berlabel dengan nama peran yang dimainkan oleh actor itu. Gambar 2.3 merupakan simbol dari actor.
Sim bol Actor
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.6 ERD ( Entity Relationship Diagram )
ERD merupakan sebuah data model yang memanfaatkan beberapa notasi untuk menggambarkan data dalam entity dan relasi yang dijelaskan oleh data ( Whitten, J.L, 2004 ). Data model adalah sebuah teknik untuk mengorganisasikan dan mendokumentasikan data dari sistem. Juga disebut dengan database modeling. Gambar 2.4 merupakan contoh dari E-R Diagram.
Gambar 2.4 Contoh E-R Diagram
Gambar 2.5 Contoh entity
Atribut merupakan sebutan untuk mewakili suatu entity. Sebuah atribut juga merupakan sifat-sifat dari sebuah entity. Sinonimnya adalah element, property, dan field. Gambar 2.6 merupakan contoh dari atribut student.
Gambar 2.6 Contoh Atribut
Key merupakan sebuah atribut atau kelompok atribut yang diasumsikan memiliki nilai yang unik untuk setiap instance ( Whitten, J.L, 2004 ). Sering juga disebut dengan identifier.
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.7 merupakan contoh dari identifier atau key
Gambar 2.7. Contoh dari identifier atau key
Gambar 2.8. Contoh Relasi
Cardinality merupakan minimum dan maksimum kejadian dari sebuah entity yang dihubungkan dengan kejadian tunggal dari entity yang lain ( Whitten, J.L, 2004 ). Karena seluruh relasi adalah bidirectional maka cardinality harus didefinisikan pada kedua direction untuk setiap relasi. Gambar 2.9 merupakan notasi dari cardinality.
Gambar 2.9. Notasi dari Cardinality
Foreign key adalah sebuah primary key dari sebuah entity yang digunakan oleh entity yang lain untuk mengidentifikasikan instance dari sebuah relasi ( Whitten, J.L, 2004 ).
Nonspecific relationship merupakan relasi dimana banyak instance dari sebuah entity berasosiasi dengan banyak instance dari entity yang lainnya ( Whitten, J.L, 2004 ). 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.7 DFD ( Data Flow Diagram )
Data Flow Diagram merupakan sebuah model proses yang digunakan untuk mengambarkan aliran dari data yang melalui sebuah sistem dan proses yang dibentuk oleh sistem ( Whitten, J.L, 2004 ).
Simbol –simbol umum yang dipakai dalam DFD adalah : 1. Proses ( Process )
Gambar 2.10 Simbol Proses menurut Gane dan Sarson
2. Arus Data ( Data Flow )
Menunjukan input data ke prosea atau output data ( atau informasi ) dari proses. Arus data digunakan untuk menunjukan pembuatan, pembacaan, penghapusan atau pembaruan data dalam file atau database. Gambar 2.11 menunjukan simbol dari arus data.
Gambar 2.11 Simbol arus data
3. Kesatuan Luar ( External Agent ).
Agen eksternal mendefinisikan orang, unit organisasi, sistem atau organisasi luar yang berinteraksi dengan sistem. Disebut juga entitas eksternal. Gambar 2.12 merupakan simbol Kesatuan Luar menurut Gane dan Sarson.
Gambar 2.12. Simbol Kesatuan Luar . Process Name
Nama Kesatuan Luar
4. Penyimpanan Data ( Data Store )
Data Store adalah penyimpanan data yang ditunjukan untuk penggunaan selanjutnya. Sinonimnya adalah file dan database. Gambar 2.13 merupakan simbol dari penyimpanan data menurut Gane dan Sarson.
Gambar 2.13 .Simbol Penyimpanan Data
2.8 Word Wide Web
Word Wide Web ( WWW ) atau lebih dikenal dengan web adalah sistem komunikasi hypertext yang popular digunakan pada jaringan komputer internet, dengan komunikasi data menggunakan model client / server ( Kadir, 2003). Dengan menggunakan teknologi hypertext, user dituntut untuk menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web yang ditampilkan dalam browser web.
1. Web Server
Web Server adalah komputer yang digunakan untuk menyimpan dokumen-dokumen web dan melayani permintaan dari client. Browser Web seperti Explorer atau Navigator berkomunikasi melalui jaringan dengan web server dan menggunakan HTTP ( Hypertext Transfer Protokol ). Browser akan mengirimakan request
kepada server untuk meminta dokumen tertentu atau layanan lain yang disediakan oleh server. Server memberikan dokumen atau layanannya jika tersedia juga dengan menggunakan protokol HTTP.
Dibawah ini adalah jenis-jenis web server yang ada beserta sistem operasi yang digunakan. Tabel 2.2 merupakan Jenis-jenis web server.
Tabel 2.2 Jenis-jenis web Server.
2. Web Client
Web client mamanfaatkan HTTP ( hypertext Transfer Protokol ) untuk berkomunikasi dengan web server. Web client berfungsi untuk menampilkan data yang diminta oleh user dari web server melalui web client.
2.9 HTML ( Hypertext Markup Language )
HTML merupakan standar bahasa yang digunakan untuk menampilkan dokumen web. Dokumen HTML disusun oleh elemen-elemen. Elemen merupakan istilah bagi komponen-kmponen dasar pembentuk dokumen HTML seperti head, body, table, paragraph dan list.
WEBSERVER Pengembang Sistem Operasi
NCSA httpd NCSA Unix
IIS Microsoft Windows NT
PWS Microsoft Windows 9x/2000/NT
Penulisan HTML dapat dilakukan dengan melalui editor text seperti notepad yang dimiliki oleh sistem operasi Windows ataupun editor lain seperti wordpad, Microsoft Word dan lain-lain. Dengan berkembangnya software, saat ini web editor HTML dapat memudahkan pemakai dalam menulis halaman web, contohnya : Microsoft FrontPage, Macromedia Dreamweaver, dan sebagainya.
Untuk menandai berbagai elemen dalam dokumen HTML digunakan tag. Adapun petunjuk penggunaan tag HTML aadalah sebagai berikut :
1. Tag HTML diapit dengan dua karakter kurung bersudut seperti < head> 2. Tag HTML selalu berpasangan seperti <a>...</a>
3. Tag pertama dalam suatu pasangan adalah tag awal dan tag kedua merupakan tag akhir.
4. Tag HTML tidak case sensitive ( tidak dibedakan antara huruf besar dan huruf kecil )
5. Jika dalam tag ada tag lagi maka penulisan tag akhir tidak boleh bersilang ( harus berurutan ). Misalnya <a>……..<b> dan tag akhir </b>…….</a>.
2.10 PHP ( Personal Home Page )
Ada beberapa cara untuk menuliskan script PHP : 1. <? Script PHP ada disini ?> atau
2. <?php script php ada disini ?> atau 3. <% script PHP ada sini ?> atau
4. <SCRIPT language=”php”> script PHP ada disini </SCRIPT>
Ada beberapa kriteria yang harus diperhatikan dalam penulisan script PHP yaitu : 1. Setiap halaman yang mengandung script PHP harus disimpan dengan
EXTENSI PHP sesuai dengan program PHP yang mendukung.
2. Setiap script php harus dimulai dengan tag <? Dan diakhiri dengan tag ?> 3. Setiap akhir baris perintah harus diakhiri dengan titik koma ( ; ).
4. Setiap bentuk variabel harus diberi tanda string dolar ( $ ) pada penulisan awalnya.
5. Penulisan komentar didahului dengan pembuka /* dan diakhiri dengan */.
2.10.1 Hubungan PHP dan HTML
ditambahkan dengan mengapit program tersebut di antara tanda <? dan ?>. Tanda-tanda tersebut biasanya disebut Tanda-tanda untuk escaping( kabur ) dari kode html. File html yang telah dibubuhi program php harus diganti ekstensi-nya menjadi .php atau .php3.
PHP merupakan bahasa pemograman web yang bersifat server-side HTML=embedded scripting, di mana script-nya menyatu dengan HTML dan berada si server. Artinya adalah sintaks dan perintah-perintah yang kita berikan akan sepenuhnya dijalankan di server tetapi disertakan HTML biasa. PHP dikenal sebgai bahasa scripting yang menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk membuat halaman web yang dinamis seperti ASP (Active Server Pages) dan JSP (Java Server Pages).
PHP pertama kali dibuat oleh Rasmus Lerdroft, seorang programmer C. Semula PHP digunakannya untuk menghitung jumlah pengunjung di dalam webnya. Kemudian ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis. Versi ini pertama kali keluar pada tahun 1995. Isinya adalah sekumpulan script PERL yang dibuatnya untuk membuat halaman webnya menjadi dinamis. Kemudian pada tahun1996 ia mengeluarkan PHP versi 2.0 yang kemampuannya telah mampu mengakses database dan dapat terintegrasi dengan HTML.
Engine yang dibuat oleh Zend Suraski dan Andi Gutmans yang merupakan penyempurnaan dari PHP3 scripting engine. Yang lainnya adalah build in HTTP session, tidak lagi menggunakan library tambahan seperti pada PHP3. Tujuan dari bahasa scripting ini adalah untuk membuat aplikasi- aplikasi yang dijalankan di atas teknologi web. Dalam hal ini, aplikasi pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan web server.
2.10.2 Kelebihan PHP
Ketika e-commerce semakin berkembang, situs-situs yang statispun semakin ditinggalkan Karena dianggap sudah tidak memenuhi keinginan pasar karena situs tersebut harus tetap dinamis selama setiap hari. Pada saat ini bahasa PERL dan CGI sudah jauh ketinggalan jaman sehingga sebagian besar designer web banyak beralih ke bahasa server-side scripting yang lebih dinamis seperti PHP. Seluruh aplikasi berbasis web dapat dibuat dengan PHP. Namun kekuatan yang paling utama PHP adalah pada konektivitasnya dengan system database di dalam web. Sistem database yang dapat didukung oleh PHP adalah :
1. Oracle 2. MySQL
3. MS SQL Server 4. PostgreSQL 5. dan lainnya
http://www.php.net, ataupun dari situs - situs yang menyediakan software. Software ini juga dapat berjalan pada web server seperti PWS (Personal Web Server), Apache, IIS, AOLServer, fhttpd, phttpd dan sebagainya. PHP juga merupakan bahasa pemograman yang dapat kita kembangkan sendiri seperti menambah fungsi-fungsi baru. Keunggulan lainnya dari PHP adalah PHP juga mendukung komunikasi dengan layanan seperti protocol IMAP, SNMP, NNTP, POP3 bahkan HTTP. PHP dapat diinstal sebagai bagian atau modul dari apache web server atau sebagai CGIscript yang mandiri. Banyak keuntungan yang dapat diperoleh jika menggunakan PHP sebagai modul dari apache di antaranya adalah
1. Tingkat keamanan yang cukup tinggi.
2. waktu eksekusi yang lebih cepat dibandingkan dengan bahasa pemograman web lainnya yang berorientasi pada server-side scripting. Akses ke sistem database yang lebih fleksibel
2.11 Pemrograman SQL Di Oracle
SQL ( Structured Query Language ) adalah bahasa pemrograman yang digunakan untuk akses ke oracle database. SQL diciptakan oleh perusahaan IBM sekitar tahun 1970, pada waktu yang bersamaan dengan diperkenalkan konsep Relational Database. Bahasa SQL dapat digolongkan bahasa generasi ke-4 yang tidak berupa bahasa yang berstruktur dan beraturan sehingga SQL mudah dipelajari ( Wijaya, 2003).
1. Data Definition Language ( DDL ) yang mendifinisikan struktur suatu data. a. Perintah CREATE
Digunakan untuk membuat tabel. Sintaks yang digunakan adalah : CREATE TABLE[Pemakai.] Nama Tabel
( {nama kolom pertama Tipedata [default] [constraint kolom] constraint tabel ) [, (
nama kolom kedua Tipe data [default] [constraint kolom] constraint tabel } ]…) [
AS QUERY].
b. Perintah ALTER
Digunakan untuk mengubah ( modify ) tabel yang telah dibuat seperti menambah kolom baru, mengubah ukuran kolom, mengubah aturan-aturan yang berlaku untuk suatu kolom. Sintaks yang digunakan adalah :
ALTER TABLE [Pemakai. ] Nama Tabel
{ [ADD { Nama Kolom | [CONSTRAINT Nama Constraint] Constraint Tabel }
[, Nama Kolom | [CONSTRAINT Nama Constraint] Constraint Tabel } ]…) ]
[ MODIFY (Nama Kolom [, Nama Kolom]..)]
[ Drop Nama Constraint] }
[ ENABLE Nama Constraint | DISABLE Nama Constraint].
c. Perintah DROP
Digunakan untuk menghapus suatu tabel. Sintaks yang digunakan DROP TABLE [Pemakai. ] Nama tabel
[CASCADE CONSTRAINTS].
Sering dipakai karena kegunaannya untuk membaca ( query ) isi tabel. Sintaks yang digunakan :
SELECT [ALL | DISTINCT
{ * | [Pemakai. ] Nama Table.* |
Ekspresi [Alias[, Ekspresi [Alias]..}
FROM [Pemakai.]Nama Table [@Nama Database] [Alias]
[, [Pemakai. ]Nama Table [@Nama Database] [Alias]..
[Where Kondisi]
[ CONNECT BY Kondisi [START WITH Kondisi] ]
[GROUP BY Ekspresi [,Ekspresi]..]
[HAVING Kondisi]
[ (UNION [ALL] | INTERSECT | MINUS} SELECT ..]
[ ORDER BY {Ekspresi | Posisi } [ASC | DESC]..
[, {Expresi | Posisi} [ASC | DESC] ] ] ..
[ FOR UPDATE [ OF [ [ Pemakai.] { Nama Tabel | Nama View}. ] Nama Kolom [ ,
[[Pemakai.] { Nama Tabel | Nama View}. ]]..]
[NOWAIT]
b. Perintah INSERT
Digunakan untuk memasukan data ke tabel. Sintaks yang digunakan:
INSERT INTO [Pemakai.]Nama Tabel [@Nama Database]
[ ( Nama Kolom [, Nama Kolom]..) ]
VALUE ( Ekspresi [. Ekspresi] .. ) | Query..);
c. Perintah UPDATE
UPDATE [Pemakai.] Nama Tabel
SET { Nama Kolom = Ekspresi [, Nama Kolom = Ekspresi] .. |
( Nama Kolom [, Nama Kolom]..) = ( Subquery) | [Where Kondisi].
d. Perintah DELETE
Digunakan untuk menghapus isi tabel. Sintaks yang digunakan :
DELETE FROM [Pemakai . ] Nama Tabel [@Nama Database]
[ where Kondisi]
3. Data Control Language ( DCL )
Data control language digunakan untuk mengatur hak-hak ( Privilage ) untuk seorang user database.
2.12 Pemrograman PL /SQL
PL/SQL ( Procedural Language / Structured Query Language ) adalah suatu blok yang berisi skrip-skrip bahasa procedural.( Wijaya, 2003). Perbedaan SQL dengan PL/SQL ialah PL/SQL bukan unit transaksi. Selain itu fungsi commit, savepoint dan rollback independent terhadap blok, tapi perintah tersebut dapat diaktifkan di dalam blok. PL/SQL tidak mendukung Data Definition Language ( DDL ) dan Data Control Language ( DCL ). Semua program PL/SQL mengikuti struktur pemrograman sebagai berikut :
b. Bagian ini hanya digunakan jika PL/SQL diberikan nama, misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok, daftar parameter, dan pengambilan hasil ( return ) jika blok adalah fungsi.
c. Bagian Deklarasi ( Declaration )
Bagian ini untuk membuat deklarasi mengenai semua variabel dan konstanta yang diferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perintah DECLARE. Jika tidak ada variabel atau konstanta yang ingin dideklarasikan bagian ini boleh dihilangkan.
d. Bagian Eksekusi ( Execution )
Bagian ini memuat pernyataan –pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
e. Bagian Perkecualian ( Exception )
Bagian ini memuat cara menangani kesalahan-kesalahan ( error) pada waktu eksekusi program PL/SQL. Jika program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan.
Setiap pernyataan PL/SQL harus diakhiri dengan tanda titik koma ( ; ) dan semua program PL/SQL harus diakhiri dengan perintah END. Sintak umum untuk membuat sebuah blok PL/SQL di Oracle adalah :
DECLARE
Variabel tipe_data; --mendeklarasikan variabel
Konstanta Constant tipe_data := nilai; --Mendeklarasikan konstanta
………
BEGIN
Statement_2;
…………..
EXCEPTION
WHEN nama_eksepsi THEN
Statemen_untuk_mengatasi_error;
………..
END;
PL/SQL mendukung tipe data SQL. Tipe data SQL dalam Oracle ditunjukan pada tabel 2.3
Nama Tipe Keterangan
Integer Numerik Untuk menyimpan angka bulat
Number Numerik Untuk menyimpan semua jenis angka baik bilangn bulat maupun pecahan.
Decimal Numerik Untuk menyimpan angka pecahan
Float Numerik Untuk menyimpan angka pecahan yang dapat berubah.
Char Karakter Menyimpan karaketr berukuran tetap sampai 255 karakter
Varchar Karakter Menyimpan karakter dengan ukuran berubah-ubah
Varchar2 Karakter Menggantikan tipe data varchar dan dapat menyimpan 2000 karakter
Long Karakter Menympan samapi 2GB karakter
Selain tipe data dalam tabel diatas, Oracle PL/SQL juga mendukung sejumlah tipe data:
1. BOOLEAN : Dipakai untuk menyatakan data logika yaitu TRUE ( benar ), FALSE ( salah ) dan NULL ( kosong )
2. BINARY_INTEGER : Digunakan untuk mendeklarasikan bilanagn yang tidak mempunyai angka decimal.
3. %tTYPE : Tipe data ini jika dipakai menandakan bahwa variabel yang dideklarasikan sama dengan tipe data dari kolom tabel tertentu. 4. %ROWTYPE : Tipe data ini menandakan bawa sekelompok variabel
adalah sama dengan tipe data dari row suatu tabel tertentu.
2.12.1 STORE PROCEDURE
Sintak untuk membuat suatu store procedure CREATE [OR REPLACE] PROCEDURE nama_prosedur
[ ( parameter [ IN | OUT tipe_data [.parameter [ IN | OUT] tipe_data]..)]
{ IS | AS }
[ deklarasi variabel local ]
BEGIN
Seksi_eksekusi
[ Seksi Perkecualian]
END [ nama_prosedur ]
2.12.2 PACKAGE
untuk tujuan atau pemakaian tertentu. Suatu Package terdiri dari dua bagian :
1. Package Specification ( Spesifikasi Paket ) 2. Package body ( badan Paket ).
Sintak yang digunakan untuk mendeklarasikan Package adalah : CREATE [OR REPLACE ] PACKAGE nama_package IS
FUNCTION nama_fungsi_tersimpan
[ (parameter [IN ] tipe_data[. Parameter {IN] tipe_data]..)]
RETURN tipe_data
[ FUNCTION berikutnya...]
PROCEDURE nama_procedure_tersimpan
[ ( parameter [ IN | OUT ] tipe_data[. Parameter [ IN | OUT ] tipe_data]..) ]
[ PROCEDURE berikutnya .. ]
END nama_package;
Sintak yang digunakan untuk membuat package body : CREATE [ OR REPLACE ] PACKAGE BODY nama_package IS
FUNCTION nama_fungsi_tersimpan
[ ( parameter [IN] tipe_data [. Parameter [IN] tipe_data]..)]
RETURN tipe_data
{ IS | AS }
[ deklarasi variabel_lokal ]
BEGIN
SEKSI_EKSEKUSI
[ Seksi perkecualian ]
RETURN nilai fungsi
[ FUNCTION berikutnya…]
[( Parameter [IN | OUT ] tipe_data [.parameter [ IN | OUT] tipe_data ] ..)]
Sintak yang digunakan untuk membuat sequence adalah : Create [OR REPLECE] SEQUENCE [nama.table.] nama_sequence
INCREMENT BY nilai_penambahan
START WITH nilai_mula
2.12.4 Fungsi-fungsi PHP yang umum digunakan untuk mengakses
Database Oracle.
Tabel 2.4 merupakan contoh fungsi-fungsi php yang digunakan untuk mengakses database oracle.
Function Return Description
OCIBindByName ( Statement, ph_name,&variable, length, [, type ])
Integer Binds the specified PHP variable to
the oracle placeholder specified by
ph_name
OCIExecute( Statement, [mode ] )
integer Executes the specified SQL
statement.
OCIFetch( Statement) Integer Fetches the next row from the rusultset.
OCIFetchinto( Statement, results, [mode] )
Integer Retusn the next row from the
OCIFetchstatement( Statement, results)
Integer Retyrn all rows from the rusultset
into the results array.
OCILogoff Integer Close the specified oracle connection
OCILogon ( username, password, [ database ] )
Integer Opens a connection to an oracle
database and return a connection
identifier.
OCIParse (connection, query )
Integer Validates the specified query.
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 ANALISA SISTEM
3.1.1 Gambaran Umum Sistem yang Lama
PT. Bangun Jasa Terpadu bergerak dalam bidang jasa Transportasi baik darat,laut maupun udara. Sebagai agen resmi PT PELNI, maka PT. Bangun jasa terpadu melayani pembelian maupun pemesanan tiket untuk 3 dermaga terbesar di Indonesia yaitu Jakarta, Surabaya dan Semarang. Saat ini pemesanan tiket masih dilakukan secara manual. Beberapa hal yang harus dilakukan pemesan antara lain :
1. Untuk melakukan pemesanan, pemesan harus datang langsung ke PT Bangun Jasa Terpadu dengan membawa kartu identitas.
2. Pemesan harus mengisi form pemesanan yang disedikan oleh PT. Bangun Jasa Terpadu.
3. Pemesan harus membayar uang muka sebagai tanda bukti pemesaan sebanyak 50% dari total harga tiket yang dipesan.
4. Pemesan akan diberikan kwitansi sebagai bukti pemesanan.
5. Jika Pemesan membatalkan pemesanan maka dikenakan potongan sebesar 10% dari jumlah uang muka dan pembatalan tiket paling lambat 2 hari sebelum tanggal keberangkatan kapal .
Untuk spesifikasi kapal cirimai dan tatamailau dapat dilihat di table 3.1
Nama Kapal Kelas – Kelas Kapasitas
Kelas I 44 orang
Kelas II 88 orang
Kelas III 288 orang CIREMAI
Kelas Ekonomi 1.554 orang
Kelas I 14
Kelas II 40 TATAMAILAU
Kelas Ekonomi 915
Tabel 3.1 Spesifikasi Kelas dan Kapasitas kapal.
3.1.2 Gambaran Umum Sistem Yang Baru
Sistem informasi reservasi tiket kapal Laut berbasis web yang dibangun, bertujuan untuk memudahkan calon penumpang dalam hal melihat informasi yang berhubungan dengan kapal, pemesanan maupun pembatalan tiket. Salah satu keuntungan yang diperoleh pemesan adalah tidak adanya pembayaran uang muka sebagai jaminan maupun potongan harga jika pemesan membatalkan pesanan tiket.
masalah ini, maka aplikasi ini akan menggunakan dukungan teknologi manajemen transaksi dengan level isolasi Serializable.
Secara umum ilustrasi pemesanan yang dilakukan oleh pemesanan dalam sistem yang baru adalah sebagai berikut :
1. Calon penumpang melakukan registrasi terlebih dahulu dengan mengisikan data-data seperti user id, password , no ktp,nama, alamat, jenis kelamin, kota, email, dan no_telpon.. Setelah sukses melakukan registrasi, pemakai akan diberikan username dan password yang selanjutnya akan digunakan untuk melakukan proses login Jika login suskes maka pemesan dapat melakukan pemesanan tiket.
2. Informasi yang dapat diperoleh dari sistem ini adalah informasi mengenai kapal laut, jadwal kapal, harga tiket dan pemesan dapat melakukan pemesanan maupun pembatalan tiket.
3. Dari dua jenis kapal yang ada pemesan dapat memilih tujuan, tanggal keberangkatan dan kelas yang diinginkan.
4. Jumlah maksimum tiket yang dapat dipesan adalah sebanyak 5 tiket untuk setiap kelas.
5. Setelah pemesan berhasil melakukan proses pemesanan tiket, pemesan akan memperoleh no pesanan yang digunakan sebagai tanda bukti telah melakukan pemesanan.
identitas diri ( NO KTP / SIM ) . Jika sesuai maka proses pembelian akan dilakukan.
7. Pengambilan tiket paling lambat 1 hari sebelum tanggal keberangkatan. Jika pemesan belum mengambil pesanan tiket maka data pesanan akan dihapus.
8. Pada proses pembatalan tiket, akan ditampilkan no pesanan dan detail data pesanan Selanjutnya pemesan dapat memilih tiket mana yang dibatalkan.
Sedangkan dari sisi administrator, mengolah dan merekan data dan melakukan manipulasi terhadap data yang terdapat dalam database. Seperti data pemesan, data pemesanan,data kapal,data harga kelas, data jadwal, data dermaga, data kelas, data tempat dan data pembelian.
3.1.2.1 Ruang Lingkup Sistem
Sistem informasi reservasi tiket kapal laut berbasis web terdiri dari 2 buah subsistem yaitu :
1. Subsistem User
melakukan login, dan melihat account yang dimilikinya sehingga proses update data diri dapat di lakukan. Selain itu sistem ini mampu memberikan informasi tentang jadwal keberangkatan kapal, harga tiket kapal maupun fasilitas-fasilitas yang dimiliki kapal Pelni.
2. Subsistem Admin.
Subsistem ini di khususkan bagi administrator yang diberi hak untuk melakukan proses update terhadap data kapal, data kelas, data dermaga, data tiket yakni jadwal keberangkatan kapal, data harga, data pemesan, data pesanan,data pembelian, data berita, data fasilitas dan data buku tamu.
3.1.3 Requirement Analysis
Tahap requirement analysis meliputi pembuatan use case diagram.
3.1.3.1. Use Case Diagram
Gambar 3.1 Use Case diagram
3.1.4 Logical Design
Tahap logical design meliputi prosess modeling dan data modeling.
3.1.4.1Proses Modeling
Tabel 3.2 Input Output Proses Modeling
Entitas Input Output
Pemesan Registrasi pemesan, data transaksi pemesanan, data
3.1.4.1.1 Context Diagram
Context diagram merepresentasikan elemen sistem sebagai sebuah proses tunggal dengan inputan dan output data yang ditunjukan oleh panah masuk dan keluar. Gambar 3.2 adalah contoh context diagram sistem informasi reservasi tiket kapal laut berbasis web.
Overview Diagram OVERVIEW DIAGRAM
OVERVIEW DIAGRAM LEVEL 1 PROSES REGISTARIS DAN LOGIN
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA KAPAL
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA KELAS
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA DERMAGA
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA DET_KAPAL / TARIF TIKET
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA TIKET
OVERVIEW DIAGRAM LEVEL 1 PROSES DATA TRANSAKSI PEMESANAN
OVERVIEW DIAGRAM LEVEL 1 PROSES DATA TRANSAKSI PEMBELIAN
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA TEMPAT
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA DET_TIKET
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA PEMESAN
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA PROPINSI
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA FASILITAS
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA BERITA
OVERVIEW DIAGRAM LEVEL 1 PROSES UPDATE DATA BUKU TAMU
OVERVIEW DIAGRAM LEVEL 1 PROSES UBAH PASSWORD
Ga
m
bar 3.21 overview diagram
level 1 proses Logout
3.1.4.2 DATA MODELING
Tahap data modeling dapat dimulai dengan pembuatan ER Diagram seperti pada Gambar 3.22.
3.2 DISAIN SISTEM
3.2.1 Disain Database
Tabel 3.3 Tabel Pemesan
Name Type Size Deskription Key
User_id Varchar2 8 User id pemesan PK
Password Varchar2 12 Password pemesan Nama Varchar2 42 Nama lengkap pemesan
JK Varchar2 1 Jenis kelamin pemesan
No KTP Varchar2 25 No KTP pemesan
Alamat Varchar2 50 Alamat Pemesan No_Tlp Varchar2 12 No telpon pemesan
Email Varchar2 30 Email pemesan
Kota Varchar2 30 Kota pemesan
Tanggal_registrasi date Tanggal registrasi pemesan
Tabel 3.4 Tabel Kapal
Name Type Size Deskription Key
Kd_kpl Varchar2 6 Kode Kapal PK
Nama Varchar2 20 Nama kapal
Route Varchar2 40 Route kapal
Keterangan Varchar2 200 Keterangan kapal Gambar Varchar2 25 Gambar kapal
Tabel 3.5 Tabel Kelas
Name Type Size Deskription Key
Kd_kls Varchar2 5 Kode kelas PK
Nama_kelas Varchar2 20 Nama kelas
Fasilitas Varchar2 100 Fasilitas kelas
Gambar Varchar2 25 Gambar kelas
Tabel 3.6 Tabel Dermaga
Name Type Size Deskription Key
Kd_dermaga Int 5 Kode dermaga PK
Nama_dermaga Varchar2 35 Nama dermaga
Tabel 3.7 Tabel Det_kapal
Name Type Size Deskription Key
Kd_dkapal Number 11 Kode detail kapal PK
Kapasitas Number 4 Kapasitas det kapal
Tabel 3.8 Tabel Tiket
Name Type Size Deskription Key
Kd_tiket Number 11 Kode jadwal berangkat kapal PK
Kd_kpl Varchar2 6 Kode kapal FK
Tgl_brkt Date Tanggal berangkat
Jam_brkt Varchar2 15 Jam berangkat
Tabel 3.9 Tabel det_tiket
Name Type Size Deskription Key
Kd_tiket Number 11 Kode jadwal berangkat kapal FK
Kd_dkapal Number 11 Kode detail kapal FK
Stok Number 4 Jumlah tiket yang dipesan
Tabel 3.10 Tabel Pemesanan
Name Type Size Deskription Key
No_psn Varchar2 7 No pesanan PK
User_id Varchar2 8 User id pemesan FK
Kd_tiket Int 11 Kode jadwal berangkat kapal FK
Kd_dkapal Int 11 Kode detail kapal FK
Kelas Varchar2 5 Nama kelas
JD Number 1 Jumlah dewasa pemesanan
JA Number 1 Jumlah anak pemesanan
JB Number 1 Jumlah bayi pemesanan
Jumlah Number 1 Jumlah total pemesanan
Total Number 5 Total harga pemesanan
Tabel 3.11 Tabel Pembelian
Name Type Size Deskription Key
Id_pembelian Int 11 Id pembelian PK
User_id Varchar2 8 User id pemesan FK
No_psn Varchar2 15 No pesanan FK
Tgl Date Tanggal transaksi pembelian
Tabel 3.12 Tabel Tempat
Name Type Size Deskription Key
Id_tmp Number 5 Id no tempat PK
No_tempat Number 5 No tempat
No_psn Varchar2 7 No pesanan FK
Id_pembelian Int 11 Id pembelian FK
Nama_penumpang Varchar2 50 Nama penumpang
Umur Number 3 Umur penumpang
Tabel 3.13 Tabel Fasilitas
Name Type Size Deskription Key
Id_fasilitas Int 5 Id fasilitas kapal PK
Fasilitas Varchar2 25 Fasilitas yang disediakan kapal
Keterangan Varchar2 25 Keterangan fasilitas kapal Foto Varchar2 25 Foto fasilitas kapal
Tabel 3.14 Tabel Berita
Name Type Size Deskription Key
Kd_berita Int 11 Kode berita PK
Judul_berita Varchar2 50 Judul berita Isi_berita Varchar2 1000 Isi berita
Penulis Varchar2 8 Penulis berita
Tabel 3.15 Tabel Propinsi
Name Type Size Deskription Key
Idpropinsi Int 5 Id propinsi PK
Tabel 3.16 Tabel Buku Tamu
Name Type Size Deskription Key
Bid Int 11 Id buku tamu PK
Nama Varchar2 15 Nama user
Alamat Varchar2 30 Alamat user
Email Varchar2 20 Email user
Komentar Varchar2 100 Komentar user
Tgl Date Tanggal pemasukan buku tamu
Tabel 3.17 Tabel Admin
Name Type Size Deskription Key
username Varchar2 8 Username admin PK
3.2.2 Relasi Antar Tabel
Relasi antar tabel dari sistem dapat dilihat pada Gambar 3.23
3.3 DISAIN PENANGANAN MASALAH MULTI USER
3.3.1 Kemungkinan Masalah Yang Bisa Terjadi
Dalam Aplikasi ini, terdapat beberapa masalah yang bisa saja terjadi jika terdapat penggunaan akses secara bersama oleh beberapa pemesan terhadap stok tiket yang terdapat dalam tabel det_tiket.