PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1 APLIKASI PENCARIAN JALUR ALTERNATIF KERETA API BERBASIS WEB Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Prog...
Author:  Hengki Atmadja

5 downloads 54 Views 8MB Size
                                                              <%  out.print("");                                                                  out.print(""); 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

51 

 

                                                                out.print("");                                                                  out.print("");%>                                                              );"  href="#"  id="<%=result.getString("Nomor_Kereta")%>">Alternatif
   

<%

Gambar 4.5 Form Pesan Gambar 4.5 di atas menampilkan sebuah form pemesanan. Form ini akan muncul jika tombol pesan pada gambar 4.4 ditekan. Form ini menampilkan detail pemesanan. Sebelum form ini dikirimkan untuk melanjutkan proses pemesanan, maka pengguna harus mengisikan data pemesan yang berupa nama dan nomor identitas yang digunakan. Kemudian klik tombol pesan jika setuju untuk memesan, jika tidak maka bisa menekan tombol batal untuk kembali ke menu sebelumnya. Setelah kursi berhasil

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

52 

 

dipesan maka akan ditampilkan pesan bahwa pemesanan telah berhasil, dengan ditunjukan pada gambar 4.6 di berikut :

Gambar 4.6 Pemesanan Berhasil. 4.1.4

Halaman Update

Gambar 4.7 Halaman Update Gambar halaman update di atas adalah halaman update data untuk admin. Halaman ini memiliki empat (5) submenu, yaitu Update Kereta, Update Stasiun, Update Template , Update User dan Insert. Semuanya    

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

53 

 

memiliki struktur program yang sama, yaitu melakukan query ke dalam database berdasarkan tabel yang akan diubah. Listing potongan program untuk update data stasiun ditampilkan pada listing 4.5 berikut :

Listing 4.5 Update Stasiun <%          java.sql.Statement statement = connectionku.openConnection().createStatement();    %>                                                                                                                                                                                                                                                                                                                                                                                    No urut                                                                  Nomor Stasiun                                                                  Nama Stasiun                                                                                                                                                                                                                                                                        Ubah                                                                  Hapus                                                                                                                                                                                                                                                <%          java.sql.ResultSet result = entity.stasiun.lihatDataStasiun(); 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

54 

 

          while (result.next()) {              out.println("");              out.println(" ");              out.println("" + result.getString("Nomor_Stasiun") + "");              out.println("" + result.getString("Nama_Stasiun") + "");              out.println("");              out.println("");              out.println("");                                                              %>                                                              )"  href="ubahStasiun.jsp?ns=<%= result.getString("Nomor_Stasiun")%>" class="ubahguru"  rel="iframe width:740 height:300 modal:true" title="Mengubah Data  Guru...">Ubah
                                                              <%  out.print("");                                                                  out.print("");                                                                  out.print("");                                                                  out.print("");%>                                                              );"  href="#"  id="<%=result.getString("Nomor_Stasiun")%>">Hapus
                                                                <%              out.println("");          } 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

55 

 

        statement.close();

Penjelasan Listing 4.5 Update Stasiun Untuk menampilkan data dari database perlu koneksi, ditunjukan pada baris berikut;   java.sql.Statement statement = connectionku.openConnection().createStatement();

Tabel untuk menempatkan data menggunakan script program sebagai berikut ;                                                                                                                                                                                           No urut                                                                  Nomor Stasiun                                                                  Nama Stasiun                                                                                                                                                                                                                                                                        Ubah                                                                  Hapus                                                               

Untuk mengisi data pada tabel menggunakan method lihatDataStasiun, ditunjukan pada baris berikut ;         

   java.sql.ResultSet result = entity.stasiun.lihatDataStasiun(); 

       

   

while (result.next()) { 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

56 

 

              

out.println(""); 

          

out.println(" "); 

    

               

out.println("" + result.getString("Nomor_Stasiun") + ""); 

               

out.println("" + result.getString("Nama_Stasiun") + ""); 

               

out.println(""); 

               

out.println(""); 

              

 out.println(""); 

 

Isi method lihatDataStasiun ditujukan dalam listing 4.6 berikut; Listing 4.6 Method lihatDataStasiun public static ResultSet lihatDataStasiun() throws SQLException {          DatabaseConnection konek = new DatabaseConnection();          ResultSet rs;          String sql = "select * from stasiun";          rs = (ResultSet) konek.lihatData(sql);          return rs;    

   }

Penjelasan Method lihatDataStasiun Method ini melakukan koneksi ke database, ditunjukan pada baris berikut;   DatabaseConnection konek = new DatabaseConnection();

Method ini melakukan perintah query dan disimpan dalam variabel rs yang bertipe ResultSet, ditunjukan dalam baris berikut;   ResultSet rs;           

String sql = "select * from stasiun"; 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

57 

 

         

rs = (ResultSet) konek.lihatData(sql); 

Mengembalikan nilai rs, ditunjukan pada baris berikut ;   return rs; 

Bersamaan pengisian data pada tabel, juga disisipkan link untuk update atau delete data, ditunjukan pada baris program berikut; %>  )" href="ubahStasiun.jsp?ns=<%=  result.getString("Nomor_Stasiun")%>" class="ubahguru" rel="iframe width:740  height:300 modal:true" title="Mengubah Data Guru...">Ubah
                 <%             out.print("");                out.print("");                  out.print("");                  out.print("");  %>  );"  href="#"  id="<%=result.getString("Nomor_Stasiun")%>">Hapus
                                                         <%   

Jika link update di tekan maka akan muncul tampilan yang ditunjukan gambar 4.6 berikut;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

58 

 

Gambar 4.8 Ubah Data Stasiun Pada tampilan ini muncul data yang akan diubah, dan dua buah tombol yaitu; Batal dan Simpan. Cara untuk melakukan update adalah dengan mengubah inputan yang ada misalnya untuk nama kereta diubah menjadi ARGO JATI kemudian tekan tombol Simpan, maka data akan terupdate.Potongan listing untuk program tampilan di atas ditunjukan dalam listing 4.7 berikut :

Listing 4.7 Ubah Data Stasiun      <%                      tool.DatabaseConnection conn = new tool.DatabaseConnection();                      try {                          String noStasiunnya = request.getParameter("ns");                          java.sql.Statement statement =  conn.openConnection().createStatement();                          java.sql.ResultSet result =  entity.stasiun.lihatDataStasiun2(noStasiunnya);                          while (result.next()) {          %>             

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

59 

 

                                                                                                                       No Stasiun                          "  maxlength="100" />                                                                                                                     Nama Stasiun                          " maxlength="50" />                                                                                                                                                                                                                 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

60 

 

Penjelasan potongan Listing 4.7 Ubah Data Stasiun Untuk menampilkan data yang akan diubah sistem melakukan pemanggilan method lihatDataStasiun yang ditunjukan pada baris berikut ;                         java.sql.ResultSet result entity.stasiun.lihatDataStasiun2(noStasiunnya);

Method ini memerlukan sebuah input, yaitu nomor kereta, sedangkan untuk isi method lihatDataStasiun ditampilkan pada Listing 4.8 berikut;

Listing 4.8 Method lihatDataStasiun2 public static ResultSet lihatDataStasiun2(String noStasiun) throws  SQLException {          DatabaseConnection konek = new DatabaseConnection();          ResultSet rs;          String sql = "select * from stasiun where nomor_stasiun like '" +  noStasiun + "'";          rs = (ResultSet) konek.lihatData(sql);          return rs;      }

4.1.5

Halaman Lihat Order

Gambar 4.9 Lihat Order

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

61 

 

4.1.6

Halaman Sisa Kursi

Gambar 4.10 Halaman Sisa Kursi Halaman pada Gambar 4.10 di atas untuk menampilkan sisa kursi yang masih kosong untuk tiap kereta. Kursi yang masih kosong ini diambil dengan melihat kursi yang belum terisi sama sekali pada semua setasiun yang dilewati. Untuk menampilkan sisa kursi ini menggunakan baris program sebagai berikut ; Listing 4.8 Kursi Kosong                                                                                                                                               
href="Admin_Home.jsp" 

class="but 

but_t"  

title="">Home                          Update                          Lihat  Order                          Sisa  Kursi 

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

62 

 

                                                                                            logout                                                                                                                                                                                                                                                                                                            

Kursi Kosong

                                                                                                          <%                                                  tool.DatabaseConnection 

conn 



new 

tool.DatabaseConnection();                                                  java.sql.Statement 

statement 



result 



conn.openConnection().createStatement();                                                  java.sql.ResultSet  entity.cari.cariKosong("9");                                                  while (result.next()) {                                      %>                                       

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

63 

 

                                                                                   Argo Lawu                                           
class="field">


readonly 

id="namaKereta" 

name="Nama_Keretanya" 

type="text" 

value="<%=result.getString("tole")%>" maxlength="50" />                                              <%                                                        }                                                          java.sql.ResultSet 

result1 



entity.cari.cariKosong("7");                                                          while (result1.next()) {                                              %>                                                                                                                                                                 
class="label">
>Argo 

Dwipangga                                          
colspan="2" 

class="field">
readonly 

onKeyPress="return  checkItsiswa(event)"  style="width:  200px;  height:  25px" id="nomorKereta"                                                                                name="No_Keretanya"  type="text" 

value="<%=result1.getString("tole")%>" 

maxlength="100" 

/> <%                                                  }                                                 java.sql.ResultSetresult2=entity.cari.cariKosong("1");                                                  while (result2.next()) {                                      %>                                                                                     Argo  Bromo  Anggrek   

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

64 

 

                                        
class="field">


readonly 

id="namaKereta" 

name="Nama_Keretanya" type="text"value="<%=  result2.getString("tole")%>" maxlength="50" />                                                                            <%                                                }                                      %>                                                                                                                                                                        

4.1.7

Halaman Home User Tampilan untuk Home user ditunjukan Gambar 4.11 berikut;

Gambar 4.11 Halaman Home User

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

65 

 

Halaman ini memiliki menu yang lebih sedikit dari halaman yang didapat oleh user dengan hak akses sebagai admin. Tetapi tetap memiliki kesamaan tampilan pada form Cari Jalur. Untuk melakukan pencarian user diminta melakukan inputan yang tersedia. Kemudian menekan tombol cari. Sistem secara otomatis akan menampilkan hasilnya. Tampilan hasil pencarian ditunjukan oleh Gambar 4.12 berikut :

Gambar 4.12 Hasil Pencarian Pada halaman hasil pencarian ini terdapat dua kereta yaitu kereta dengan nama ARGO LAWU dan ARGODWIPANGGA. Halaman ini juga menampilkan informasi keberangkatan kereta pada hari Jumat, 3 Januari 2012 untuk tujuan GAMBIR-YOGYAKARTA dengan jumlah kursi 1. Di halaman ini juga ditampilkan form Cari Jalur untuk memudahkan pencarian kembali. Jika tombol pesan di klik maka akan menampilkan data untuk pesan yang ditunjukan pada gambar 4.13 berikut :

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

66 

 

Gambar 4.13 Form Pesan Form ini sama pada form pesan untuk admin, yang menampilkan detail kursi yang akan dipesan. Jika ingin melanjutkan pemesanan maka user harus mengisikan data pemesan yang berupa nama dan nomor identitas. Setelah melengkapi data pemesan maka proses pemesanan dapat dilanjutkan dengan menekan tombol pesan. Setelah berhasil maka akan ditampilkan pesan bahwa proses pemesanan telah berhasil yang ditunjukan oleh gambar 4.14 berikut :

Gambar 4.14 Pesan Berhasil

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

67 

 

4.2

Proses Generate Data Untuk otomatisasi database menggunakan beberapa prosedure. Untuk prosedure pertama ditampilkan dalam potongan listing program berikut : Listing 4.10 Generate Kereta_Berangkat

create or replace procedure gen_kereta_berangkat is v_berangkat kereta_template.JAM_BERANGKAT%type; v_tiba kereta_template.JAM_TIBA%type; cursor berangkat is select nomor_template, jam_berangkat, jam_tiba from kereta_template where tanggal_awal_berlaku <= (select * from sekarang) and tanggal_akhir_berlaku >=(select * from sekarang); berangkat_record berangkat%ROWTYPE; begin open berangkat; loop fetch berangkat into berangkat_record; exit when berangkat%NOTFOUND; select

jam_berangkat

into

v_berangkat

from

kereta_template

where

nomor_template=berangkat_record.nomor_template; select

jam_tiba

into

v_tiba

from

kereta_template

where

nomor_template=berangkat_record.nomor_template; if v_berangkat > v_tiba then insert into kereta_berangkat(nomor_berangkat,tanggal_berangkat,tanggal_tiba) values (berangkat_record.nomor_template, (select tgl_sekarang from sekarang), (select tgl_sekarang+1 from sekarang)); else insert into kereta_berangkat(nomor_berangkat,tanggal_berangkat,tanggal_tiba) values (berangkat_record.nomor_template, (select tgl_sekarang from sekarang), (select tgl_sekarang from sekarang));    

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

68 

 

end if; end loop; commit; close berangkat; end gen_kereta_berangkat;

Penjelasan Listing 4.10 Generate Kereta_Bertangkat Prosedure ini akan melakukan insert data dengan membaca data dari tabel

kereta_template

kemudian

mengisikannya

ke

dalam

tabel

kereta_berangkat. Prosedure ini dimulai dengan perintah yang ditunjukan oleh baris program berikut : create or replace procedure gen_kereta_berangkat is v_berangkat kereta_template.JAM_BERANGKAT%type; v_tiba kereta_template.JAM_TIBA%type;

Perintah create or replace untuk membuat prosedure sedangkan gen_kereta_berangkat merupakan nama prosedur yang dibuat. Dua baris di bawahnya merupakan variabel, v_berangkat kereta bertipe data seperti tipe data pada JAM_BERANGKAT pada tabel kereta template. Sedangkan v_tiba bertipe JAM_TIBA pada kereta_template. Perintah selanjutnya adalah pendeklarasian sebuah kursor. Kursor merupakan sebuah mekanisme untuk dapat melakukan pembacaan sebuah record per baris. Ditunjukan pada baris berikut : cursor berangkat is select nomor_template, jam_berangkat, jam_tiba from kereta_template

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

69 

 

where

tanggal_awal_berlaku

<=

(select

*

from

sekarang)

and

tanggal_akhir_berlaku >=(select * from sekarang); berangkat_record berangkat%ROWTYPE; berangkat merupakan nama dari kursor ini, isinya untuk mengambil data nomor_template,

jam_berangkat,

dan

jam_tiba

dari

tabel

kereta_template

menggunakan perintah select. Pengambilan data ini memiliki ketentuan untuk data yang diambil memiliki tanggal_awal_berlaku sama atau lebih dari tanggal sekarang dan tanggal akhir_berlakunya sama atau kurang dari tanggal sekarang. Ini untuk memilih bahwa data yang di generate sesuai dengan tanggal berlakunya. Data ini akan disimpan dalam berangkat_record. Untuk memulai prosedure ini dengan perintah pada baris berikut : begin Untuk membuka kursor digunakan baris berikut : open berangkat;

Setelah kursor dibuka maka akan melakukan perulangan untuk memasukkan data ke dalam berangkat_record, sampai semua data habis. Ditunjukan pada perintah berikut : loop fetch berangkat into berangkat_record; exit when berangkat%NOTFOUND;

Setiap memasukkan data, dilakukan juga perintah untuk mengambil data jam_berangkat dan jam_tiba. Ditunjukan pada baris berikut : select jam_berangkat into v_berangkat from kereta_template where nomor_template=berangkat_record.nomor_template;    

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

70 

 

select

jam_tiba

into

v_tiba

from

kereta_template

where

nomor_template=berangkat_record.nomor_template;

Jam berangkat dan jam tiba dipakai untuk menentukan tanggal tiba, jika jam tiba lebih kecil dari jam berangkat berarti sudah berada di hari berikutnya. Maka tanggal tiba harus ditambahkan satu. Ditunjukan pada baris berikut :

if v_berangkat > v_tiba then insert into kereta_berangkat(nomor_berangkat,tanggal_berangkat,tanggal_tiba) values (berangkat_record.nomor_template, (select tgl_sekarang from sekarang), (select tgl_sekarang+1 from sekarang)); else insert into kereta_berangkat(nomor_berangkat,tanggal_berangkat,tanggal_tiba) values (berangkat_record.nomor_template, (select tgl_sekarang from sekarang), (select tgl_sekarang from sekarang)); end if;

Untuk mengahiri prosedur ini, ditunjukan pada baris berikut : end loop; commit; close berangkat; end gen_kereta_berangkat;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

71 

 

end loop dipakai untuk mengakhiri perulangan, kemudian commit untuk menyatakan bahwa perintah eksekusi data selesai. Close berangkat untuk menutup kursor dan end untuk mengahiri prosedur ini. Untuk prosedur yang kedua ditunjukan pada listing 4.11 berikut : Listing 4.11 Generate Gebong create or replace procedure gen_gerbong is v_jml_gerbong kereta_template.JUMLAH_GERBONG%type; v_counter number(2):=1; cursor gerbong is select nomor_berangkat, tanggal_berangkat, tanggal_tiba from kereta_berangkat where tanggal_berangkat like (select tgl_sekarang from sekarang); gerbong_record gerbong%ROWTYPE; begin

open gerbong; loop fetch gerbong into gerbong_record; exit when gerbong%NOTFOUND; select

jumlah_gerbong

into

v_jml_gerbong

from

kereta_template

where

nomor_template=gerbong_record.nomor_berangkat; loop insert

into

gerbong(nomor_berangkat,nomor_gerbong,tanggal_berangkat,tanggal_tiba) values (gerbong_record.nomor_berangkat,v_counter,gerbong_record.tanggal_berangkat,gerbong_re cord.tanggal_tiba); v_counter:=v_counter+1;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

72 

 

exit when v_counter > v_jml_gerbong; end loop; v_counter:=1; end loop; commit; close gerbong; end gen_gerbong;

Penjelasan Listing 4.11 Generate Gerbong. Prosedur ini dipakai untuk melakukan insert data gerbong secara otomatis sesuai dengan jumlah gerbong yang terdapat dalam kereta_template. Prosedure ini juga memakai kursor untuk membaca data tiap baris, kemudian melakukan insert ke dalam tabel gerbong. Untuk prosedur yang ketiga ditunjukan pada listing 4.12 berikut : Listing 4.12 Generate Kursi create or replace procedure gen_kursi is v_jml_kursi kereta_template.JUMLAH_KURSI_TIAP_GERBONG%type; v_kursi kursi_temp.NOMOR_KURSI%type; v_counter number(2):=1; v_nomer_kereta number(2):=null; v_stasiun has_stasiun.NO_STASIUN%type;

cursor kursi is select nomor_kereta, nomor_gerbong, tanggal_berangkat, tanggal_tiba from gerbong where tanggal_berangkat like (select tgl_sekarang from sekarang) order by nomor_kereta;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

73 

 

kursi_record kursi%ROWTYPE;

cursor stas is select no_stasiun from has_stasiun where nomor_kereta=v_nomer_kereta; stasiun_record stas%ROWTYPE; begin

open kursi; loop fetch kursi into kursi_record; exit when kursi%NOTFOUND; select jumlah_kursi_tiap_gerbong into v_jml_kursi from kereta_template where nomor_kereta=kursi_record.nomor_kereta; loop if v_counter < 14 then v_nomer_kereta :=kursi_record.nomor_kereta; dbms_output.PUT_LINE('nilai'||v_nomer_kereta); open stas; loop fetch stas into stasiun_record; exit when stas%NOTFOUND; dbms_output.PUT_LINE('hasil :' ||('A'||v_counter)||'stasiun :'||stasiun_record.no_stasiun); insert into kursi_temp(nomor_kereta, nomor_gerbong, nomor_kursi, tanggal_berangkat, tanggal_tiba, stasiun) values (kursi_record.nomor_kereta, kursi_record.nomor_gerbong,'A'||v_counter, kursi_record.tanggal_berangkat, kursi_record.tanggal_tiba, stasiun_record.no_stasiun); end loop; commit;

close stas;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

74 

 

elsif v_counter < 28 then

v_nomer_kereta :=kursi_record.nomor_kereta; dbms_output.PUT_LINE('nilai'||v_nomer_kereta); open stas; loop fetch stas into stasiun_record; exit when stas%NOTFOUND; dbms_output.PUT_LINE('hasil :' ||('B'||v_counter)||'stasiun :'||stasiun_record.no_stasiun); insert into kursi_temp(nomor_kereta, nomor_gerbong, nomor_kursi, tanggal_berangkat, tanggal_tiba, stasiun) values (kursi_record.nomor_kereta, kursi_record.nomor_gerbong,'B'||v_counter, kursi_record.tanggal_berangkat, kursi_record.tanggal_tiba, stasiun_record.no_stasiun); end loop; commit; close stas;

elsif v_counter < 39 then

v_nomer_kereta :=kursi_record.nomor_kereta; dbms_output.PUT_LINE('nilai'||v_nomer_kereta); open stas; loop fetch stas into stasiun_record; exit when stas%NOTFOUND; dbms_output.PUT_LINE('hasil :' ||('C'||v_counter)||'stasiun :'||stasiun_record.no_stasiun); insert into kursi_temp(nomor_kereta, nomor_gerbong, nomor_kursi, tanggal_berangkat, tanggal_tiba, stasiun) values (kursi_record.nomor_kereta, kursi_record.nomor_gerbong,'C'||v_counter, kursi_record.tanggal_berangkat, kursi_record.tanggal_tiba, stasiun_record.no_stasiun); end loop;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

75 

 

commit; close stas;

els if v_counter < 50 then

v_nomer_kereta :=kursi_record.nomor_kereta; dbms_output.PUT_LINE('nilai'||v_nomer_kereta); open stas; loop fetch stas into stasiun_record; exit when stas%NOTFOUND; dbms_output.PUT_LINE('hasil :' ||('D'||v_counter)||'stasiun :'||stasiun_record.no_stasiun); insert into kursi_temp(nomor_kereta, nomor_gerbong, nomor_kursi, tanggal_berangkat, tanggal_tiba, stasiun) values (kursi_record.nomor_kereta, kursi_record.nomor_gerbong,'D'||v_counter, kursi_record.tanggal_berangkat, kursi_record.tanggal_tiba, stasiun_record.no_stasiun); end loop; commit; close stas; end if; v_counter:=v_counter+1; exit when v_counter > v_jml_kursi; end loop; v_counter:=1; end loop; commit; close kursi; end gen_kursi;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

76 

 

Penjelasan Listing 4.12 Generate Kursi Prosedur ini dipakai untuk melakukan insert data secara otomatis ke dalam tabel kursi. Pada prosedur ini juga menggunakan kursor, tetapi lebih dari satu, yaitu kursor kursi dan kurso stas. Ditunjukan dalam baris berikut : cursor kursi is select nomor_kereta, nomor_gerbong, tanggal_berangkat, tanggal_tiba from gerbong where tanggal_berangkat like (select tgl_sekarang from sekarang) order by nomor_kereta; kursi_record kursi%ROWTYPE; cursor stas is select no_stasiun from has_stasiun where nomor_kereta=v_nomer_kereta; stasiun_record stas%ROWTYPE;

Kursor kursi untuk mendapatkan data dari gerbong yang nantinya akan dimasukkan kedalam tabel kursi. Sedangkan kursor stas dipakai untuk mengambil stasiun dari tabel has_stasiun. Cara kerja prosedur ini adalah, dengan membaca data pada tabel gerbong satu per satu sampai selesai. Tiap data gerbong dicari berapa kursi untuk tiap gebongnya, dan stasiun yang dimiliki menggunakan kursor stas. Selanjutnya, dilakukan insert data ke dalam tabel kursi sebanyak kursi dan stasiun yang dimiliki. Untuk memulai prosedur ditunjukan pada baris berikut : open kursi; loop fetch kursi into kursi_record; exit when kursi%NOTFOUND;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

77 

 

select jumlah_kursi_tiap_gerbong into v_jml_kursi from kereta_template where nomor_kereta=kursi_record.nomor_kereta;

Untuk melakukan insert data ditunjukan pada baris berikut : v_nomer_kereta :=kursi_record.nomor_kereta; dbms_output.PUT_LINE('nilai'||v_nomer_kereta); open stas; loop fetch stas into stasiun_record; exit when stas%NOTFOUND; dbms_output.PUT_LINE('hasil :' ||('A'||v_counter)||'stasiun :'||stasiun_record.no_stasiun); insert into kursi_temp(nomor_kereta, nomor_gerbong, nomor_kursi, tanggal_berangkat, tanggal_tiba, stasiun) values (kursi_record.nomor_kereta, kursi_record.nomor_gerbong,'A'||v_counter, kursi_record.tanggal_berangkat, kursi_record.tanggal_tiba, stasiun_record.no_stasiun); end loop;

Untuk mengakhiri prosedure ini ditunjukan pada baris berikut : end if; v_counter:=v_counter+1; exit when v_counter > v_jml_kursi; end loop; v_counter:=1; end loop; commit; close kursi; end gen_kursi;

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

 

 

BAB V ANALISIS HASIL

5.1

Analisis Hasil Perangkat Lunak Aplikasi Pencarian Jalur Alternatif ini telah berhasil dibangun. Untuk menggunakan aplikasi ini pengguna hanya perlu memasukkan beberapa inputan yaitu ; tanggal berangkat, stasiun asal, stasiun tujuan dan jumlah kursi yang diinginkan, dan aplikasi akan menampilkan hasilnya. Setiap hasil yang keluar adalah kereta yang memiliki kursi yang kosong, sesuai dengan input yang telah dimasukkan. Untuk dapat melakukan pemesanan pengguna harus melakukan login terlebih dahulu. Selain itu login ini juga berguna untuk menentukan hak akses atau wewenang terhadap aplikasi ini, apakah user biasa atau sebagai admin. Untuk admin memiliki menu yang lebih banyak, yaitu untuk melakukan pengelolaan aplikasi. Seperti melakukan perubahan data kereta, pengguna, dan lain-lain. Setelah dicobakan ke beberapa pengguna, aplikasi ini mendapat beberapa tanggapan. Dari enam responden, empat orang menyatakan setuju bahwa aplikasi ini membantu melakukan pencarian jalur alternatif dengan secara cepat dan efisien. Dua orang menyatakan sangat setuju bahwa aplikasi ini dapat melakukan pencarian jalur alternatif secara efisien.. Dua orang menyatakan sangat setuju bahwa aplikasi ini dapat melakukan pemesanan kursi dengan mudah, dua orang setuju dan sisanya ragu-ragu. Untuk tampilan aplikasi ini lima orang setuju dan satu orang menyatakan ragu-ragu bahwa aplikasi pencarian jalur alternatif ini memiliki tampilan yang menarik dan user friendly. Beberapa responden juga memberikan saran dan kritik terhadap aplikasi pencarian jalur alternatif ini. Tiga orang responden menyarankan untuk menambah jumlah pemesanan kursi dan detail pemesanan. Seorang

78   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

79 

 

responden juga memberikan kritik bahwa warna tampilan perlu untuk diperjelas lagi.

5.2

Kelebihan dan Kekurangan Aplikasi Kelebihan dari aplikasi ini adalah aplikasi mampu melakukan pencarian jalur alternatif menggunakan perintah SQL database. Selain itu aplikasi ini juga menggunakan teknik stored procedure untuk melakukan generate data secara otomatis. Didalam stored procedure ini juga memakai cursor yang digunakan untuk menggenerate data dalam jumlah yang banyak secara otomatis. Kekurangan dari aplikasi ini hanya bisa melakukan pemesanan untuk satu kursi untuk sekali pemesanan. Adapun masukan dari reponden terkait kekurangan aplikasi ini adalah pemesanan kursi yang lebih dari satu dalam sekali pemesanan, dan ditampilkan detail pemesananya. Selain itu tampilan dirasa masih kurang, akan lebih baik jika warna yang digunakan sesuai dengan warna dari pihak pengelola kereta api.

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

80 

 

BAB VI KESIMPULAN

6.1

Kesimpulan

Berdasarkan hasil analisa, desain, implementasi, dan hasil uji coba terhadap pengguna Aplikasi Pencarian Jalur Alternatif, maka dapat disimpulkan bahwa : 1. Aplikasi Pencarian Jalur Alternatif telah berhasil dibangun untuk dapat melakukan pencarian jalur alternatif dan pemesanan kursi, satu kursi dalam sekali pemesanan. 2. Aplikasi Pencarian Jalur Alternatif dibangun menggunakan teknolgi web JSP dan menggunakan basisdata Oracle Express Edition dengan teknik stored prcedure dan cursor untuk melakukan generate data. 3. Aplikasi Pencarian Jalur Alternatif dapat melakukan pencarian jalur alternatif menggunakan perintah SQL database.

6.2

Saran Saran yang didapat penulis untuk pengembangan aplikasi ini adalah : 1. Pemesanan kursi lebih dari satu dalam sekali pemesanan dan dilengkapi detail pemesanan. 2. Warna disesuaikan dengan warna resmi pihak pengelola kereta api.

   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

DAFTAR PUSTAKA

Atzeni, Paolo, Stefano Ceri, Stefano Parabochi, Riccardo Torlone. 2000. Database Systems Consepts Languages, & Architectures. London : Macgrow-Hill Publishing Company Connolly, T., Begg, C. 2005. Database Systems A Practical Approach to Design, Implementation, and Management. Pearson Education Limited Kadir, Abdul. 2004. Dasar Pemrograman Dinamis dengan JSP. Yogyakarta: Andi. Nugroho, Adi. 2009. Rekayasa Perangakat Lunak Menggunakan UML dan JAVA. Yogyakarta : Andi. Pressman, R.S. 1997. Rekayasa Perangkat Lunak Pendekatan Praktisi. Yogyakarta: Andi. Susanto, Budi. 2012. Membangun Sistem Basisdata dengan OracleXE. Yogyakarta : Yogyakarta. Wijono, G.Sri Hartati, B.Herry Suharto, M.Soesilo Wijono. 2007. Pemrograman Java Servlet dan JSP dengan NetBeans.Yogyakarta : Andi. Website resmi PT. KERETA API INDONESIA (PERSERO), www.keretaapi.co.id

81   

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI  

82 

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI  

83 

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

84 

 

 

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

85 

 

 

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI  

86 

PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

87