Kamis, 06 November 2014

e-Ticketing Kereta Api


Saat ini penerapan teknologi semakin maju dan merambah ke dalam setiap bidang. Berbagai aplikasi komputer banyak digunakan untuk menggantikan tugas manusia. Hal ini pun berlaku pada bisnis. Customer atau pelanggan merupakan faktor yang sangat penting. Dengan mempelajari perilaku atau habit dari pelanggan, maka perusahaan dapat mengambil langkah - langkah yang efektif untuk meningkatkan pelayanan mereka terhadap pelanggan. Peningkatan pelayanan terhadap customer dapat dilakukan dengan beberapa cara, antara lain dengan memberikan fasilitas - fasilitas tertentu kepada pelanggan atau dengan memberikan informasi yang cepat, akurat, dan memiliki jangkauan yang luas.
Kali ini kita akan membahas penerapan teknologi dalam bidang ticketing yang dilakukan oleh perusahaan pelayanan jasa transportasi yaitu PT. Kereta Api Persero. Pelayanan ticketing yang akan kita bahas yaitu e-Ticket,  apa yang dimaksud dengan e-Ticket itu? e-Ticket atau Electronic Ticket yang diterjemahkan ke dalam Bahasa Indonesia menjadi “Tiket Elektronik” yaitu adalah tiket yang berbentuk elektronik. Jika dulu tiket berbentuk secarik kertas yang dapat dilihat fisiknya, e-Ticket merupakan tiket yang berbentuk elektronik. E-Ticket berisi data rincian perjalanan seperti tiket kertas biasa.
            E-Ticketing atau electronic ticketing merupakan salah satu cara untuk meningkatkan pelayanan terhadap pelanggan dan juga berpeluang untuk meminimalkan biaya untuk mencetak tiket kertas. Namun di Indonesia masih mengharuskan penumpang untuk membawa tanda bukti perjalanan.



1.    Flowchart Pemesanan e-Ticket

            Pemesanan e-Ticket kereta api secara online dapat dilakukan di website https://tiket.kereta-api.co.id . Dalam flowchart dijelaskan alur untuk pemesan bila memesan tiket secara online. Ketika pemesan masuk ke laman tersebut, pemesan dapat memilih tanggal, stasiun awal keberangkatan, stasiun tujuan dan jumlah orang. Jika kita melakukan reservasi tiket kereta api di laman tersebut, pemesan dapat melakukan reservasi tanpa harus registrasi terlebih dahulu untuk menjadi anggota. Bila tiket yang diinginkan tersedia maka pemesan dapat memesan langsung tiket dengan mengisi beberapa pilihan. Jika pemesan sudah mengikuti alur pemesanan maka data reservasi akan disimpan dalam basis data dan pemesan harus melakukan pembayaran seperti yang ditetapkan. Untuk lebih jelasnya, silahkan lihat flowchart dibawah ini.   
            Setelah mengikuti alur reservasi, pemesan akan mendapatkan kode booking terhadap kursi dalam kereta api tersebut

2.    ERD (Entity Relationship Diagram)

            Pemesan mempunyai 5 entitas yaitu id_pemesan (sebagai primary key), nama, no_kontak, alamat, no_identitas. Gerbong mempunyai 2 entitas yaitu no_gerbong (sebagai primary key), jml_kursi. Kereta mempunyai 3 entitas yaitu id_kereta (sebagai primary key), no_gerbong, dan tujuan. Setiap kereta mempunyai beberapa gerbong dan setiap gerbong mempunyai hubungan dengan kereta maka di foreign key. Dan Tiket mempunyai 8 entitas yaitu no_tiket (sebagai primary key), id_pemesan, id_kereta, no_kursi, harga, jadwal_keberangkatan, jadwal_tiba, dan kelas. Tiket merupakan sebuah relasi yang berubah menjadi entitas karena menghubungkan 2 entitas yaitu pelanggan dan kereta degan kardinalitas banyak ke banyak. 
ERD
ERD Kereta Api









3.    SQL

            Dari ERD diatas kita dapat membuat sql nya, dibawah merupakan syntax nya :

membuat tabel pemesan
 create table pemesan(  
      id_pemesan varchar2(10) primary key,  
      nama varchar2(20) not null,  
      alamat varchar2(30) not null,  
      no_kontak varchar(15) not null,  
      no_identitas varchar2(40) unique not null  
 );  
membuat tabel gerbong
 create table gerbong(  
      no_gerbong varchar2(10) primary key,  
      jml_kursi number (10) not null  
 );  
membuat tabel kereta
 create table kereta(  
      id_kereta varchar2(10) primary key,  
      tujuan varchar2(20) not null,  
      no_gerbong varchar2(10) not null,  
      constraint fk_gerbong foreign key (no_gerbong) references gerbong(no_gerbong)  
 );  

membuat tabel tiket
 create table tiket (  
      id_tiket varchar2(10) primary key,  
      id_pembeli varchar2(10) not null,  
      id_kereta varchar2(10) not null,  
      jadwal_berangkat timestamp not null,  
      jadwal_tiba timestamp not null,  
      kelas varchar2(10) not null,  
      no_kursi number(5) not null,  
      harga number(10) not null,  
      constraint fk_pembeli foreign key (id_pembeli) references pembeli(id_pembeli) on delete set null,  
      constraint fk_kereta foreign key (id_kereta) references kereta(id_kereta) on delete set null  
 );  

membuat trigger untuk kursi pada gerbong
 create or replace trigger kursi  
      after  
           insert on delete or update  
           on tiket for each row  
 begin  
      if inserting then  
           update gerbong set jml_kursi = jml_kursi - 1 where no_kursi := new.no_kursi;  
      end if;  
      if deleting then  
           update gerbong set jml_kursi = jml_kursi + 1 where no_kursi := old.no_kursi;  
      end if;  
      if updating then  
           update gerbong set jml_kursi = jml_kursi - 1 where no_kursi := new.no_kursi;  
           update gerbong set jml_kursi = jml_kursi + 1 where no_kursi := old.no_kursi;  
      end if;  
 end;  
 /  

            Jika dalam tiket no kursi ditambah maka jumlah kursi dalam gerbong akan berkurang. Berkurang karena sebelumnya no_gerbong sudah di foreign key dengan kereta.

            e-Ticketing merupakan solusi untuk meminimalisir biaya penggunaan kertas dan memberikan kenyamanan bagi pemesan untuk memesan tiket tanpa harus pergi ke statiun kereta api. Dan diharapkan kedepannya teknologi ini dapat berkembang lagi.

Referensi : Budi Laksono Putro , Ilmu Komputer UPI