Tuesday, December 6, 2011

DATABASE TICKET KERETA API

        Pada postingan kali ini, saya akan mempraktekan bagaimana cara membuat databse tiket kereta api. Menggunakan SQL server 2000 (lol, now almost 2012 :p). Nah langsung aja ke caranya.
        Dibawah database ini saya membuat 5 Tabel yaitu :
1. Penumpang
2. Rencana
3. Tiket
4. Kelas
5. Kasir

Untuk Selengkapnya bisa Download File PPTX dan SQL nya DISINI !!!
Tapi jangan lupa dulu untuk menyimak ulasan di bawah :)
         Nah, langsung saja kita ke ERD dan pembuatannya :


STRUKTUR TABEL
TABEL Pembeli

(
    idpembeli char(5)not null primary key, nama varchar(50),
    Penumpang varchar(6),
    Kelas varchar(9),
    Nama_KA varchar(20)
)
CONTOH  PENGISIAN NILAI:           
                insert into pembeli (idpembeli ,nama , penumpang,kelas,nama_ka) values ('IP001','Maulana Hasan','DEWASA','EKSEKUTIF','TAKSAKA_MALAM')
Hasil : 


TABEL Kereta
(
    id_ka char(5) not null primary key, Nama_KA varchar(20),
    j_berangkat datetime,
    j_tiba datetime,
    dari varchar(30),
    ke varchar(30),
    harga int
)
Pengisian Nilai Kereta
CONTOH :           
                 insert into kereta(id_ka,nama_ka,j_berangkat,j_tiba, dari, ke,harga) values ('KA001','TAKSAKA_MALAM','02-12-2011 22:00', '03-12-2011 08:00','Bandung','Semarang','150000')
Hasil : 

TABEL Tiket
(
    idpembeli char(5) not null primary key, No_duduk char(4),
    id_ka char(5),
    kelas varchar(9), 
    jumlah int,
)
CONTOH PENGISIAN NILAI:        
                 insert into tiket (idpembeli,no_duduk,id_ka,kelas,jumlah) values ('IP001','6-A','KA001','EKSEKUTIF','1')
Hasil :

TABEL Kasir
create table kelas (idpembeli char(5) primary key not null, kelas varchar(9), harga int)
(
    idpembeli char(5) primary key not null, uang int,
    harga int,
    kembalian int
)
PENGISIAN NILAI KASIR
CONTOH  PENGISiAN NILAI:           
                 insert into kasir (idpembeli, uang) values ('IP001','500000')
* Script tambahan untuk Harga agar bisa menghitung harga tiket
update kasir
set harga = (kereta.harga+kelas.harga)*tiket.jumlah from kereta, kelas, tiket
* Script tambahan untuk Kembalian agar bisa menghitung kembalian
                set kembalian = (uang-harga)
Hasil :

TABEL Kelas
(
    idpembeli char(5) primary key not null, kelas varchar(9),
    harga int
)
CONTOH PENGISAN NILAI:           
                 insert into kelas(idpembeli,kelas,harga) values ('IP002','EKONOMI','25000')
Hasil :

RELASI ANTAR TABEL
      1. Dengan Query SQL
-          alter table [dbo].[pembeli] with check add constraint [FK_pembeli_tiket] foreign key ([idpembeli]) references [dbo].[tiket] ([idpembeli])
-          alter table [dbo].[tiket] with check add constraint [FK_tiket_kasir] foreign key ([idpembeli]) references [dbo].[kasir] ([idpembeli])

2. DENGAN DIAGRAM
       Bisa dibuka di Enterprise Manager >> Lalu masuk ke database kamu >> Diagram >> Create New Database Diagram >> Lalu tambahkan tabel yang ingin dimasukan >> setelah itu tinggal tarik garis antar table untuk merelasi >> dan jangan lupa di SAVE

Masalah yang biasa timbul adalah tidak terelasi nya antar tabel, biasa disebabkan karena :
a. Nilai yang berbeda
b. Struktur tabel yang berbeda, misalkan Tabel A, idpembeli char(5) dan Tabel B, idpembeli char(6), jika seperti itu maka tabel akan tidak ter- relasi karena struktur tabel yang berbeda.
c. Masih banyak faktor lain

PENGUJIAN DATABSE/KEBUTUHAN INFORMASI
  1. Bagaimana cara menampilkan Beberapa data user dari tabel lain menjadi 1 tabel ?
Query SQL :
JOIN DENGAN WHERE
select pembeli.idpembeli, pembeli.nama , kereta.nama_ka, kereta.j_berangkat , kereta.j_tiba ,tiket.kelas, tiket.no_duduk, pembeli.penumpang, tiket.jumlah
                from pembeli, kereta, tiket
                where  pembeli.idpembeli=tiket.idpembeli and kereta.id_ka = tiket.id_ka
HASILNYA :

2. Bagaimana cara menampilkan Jumlah Harga dengan menggunakan Where
Query SQL :
select pembeli.idpembeli, pembeli.nama, kasir.uang, kasir.harga, kasir.kembalian from pembeli, kasir where pembeli.idpembeli=kasir.idpembeli
HASILNYA :

3. Bagaimana cara mencari Pembeli/Penumpang yang menaiki kereta  KUJANG_MALAM
Query SQL :
select*from pembeli where nama_ka = 'KUJANG_MALAM'
HASILNYA :

Untuk Selengkapnya bisa Download File PPTX dan SQL nya DISINI !!!

Nah itu dia share sedikit tentang Database, mohon maaf kalo ada salah, maklum baru belajar 1 semester, hehe… . Koreksi juga bila saya salah :D. Nantikan terus update Selanjutnya !!!


kalau berkenan, klik iklannya ya gan ;-)

21 comments:

  1. makasih ya de..sangat membantu tulisannya :)

    ReplyDelete
  2. Kalo menurut saya sih struktur databasenya masih lemah tuh, masih banyak yang harus diperbaiki masalah mastering tablenya.

    ReplyDelete
    Replies
    1. hehe iya gan, itu TA saya pas kelas XI iseng2 aja di upload :D
      emang sih masih kurang, ditambah saya kan gatau sistem yang sebenarnya gimana.
      makasih udah berkunjung gan :)

      Delete
  3. lumayannn hehehe
    bgus2 (Y)

    thanks ,,
    buat infonya

    ReplyDelete
  4. terimakasih kang infonyaa
    lumayan buat referensii
    terus berkarya :D

    ReplyDelete
  5. sama-sama.
    saya juga sedang tahap belajar hehe

    ReplyDelete
  6. Maaf nih pengen nanya, kalo pengen tau nama penumpang yang naik kereta gitu gimana caranya ya?
    Soalnya saya punya temen, baru ketemu di kereta yang aku naikin, pokonya awal bulan februari 2014 deh. Dia duduk di seberang kursi aku, terus lama kelamaan jadi ngobrol2 gitu. tapi aku lupa namanya siapa. Nah aku pengen tau gimana caranya liat daftar penumpang di kereta sesuai dengan waktu, nomor kursi dan nama keretanya?

    ReplyDelete
    Replies
    1. Mungkin tanya stasiun kali ya

      Delete
    2. Saya jg, punya temen nunggu kereta yg sama tp saya lupa namanya dan gak minta kontaknya. Bisa ditanyain ke stasiunnya?

      Delete
    3. Saya jg, punya temen nunggu kereta yg sama tp saya lupa namanya dan gak minta kontaknya. Bisa ditanyain ke stasiunnya?

      Delete
    4. Saya jg, punya temen nunggu kereta yg sama tp saya lupa namanya dan gak minta kontaknya. Bisa ditanyain ke stasiunnya?

      Delete
  7. Link nya g bisa dibuka...
    Bisa minta bantu gak liatin nama penumpang, sya lupa nama dia siapa...
    Kereta Bogowonto tgl 5 Januari 2016 tujuan pasar senen gerbong 5 no 9A.
    Mohon bantuannya...

    ReplyDelete
  8. Link nya g bisa dibuka...
    Bisa minta bantu gak liatin nama penumpang, sya lupa nama dia siapa...
    Kereta Bogowonto tgl 5 Januari 2016 tujuan pasar senen gerbong 5 no 9A.
    Mohon bantuannya...

    ReplyDelete
  9. Maaf mau tanya, apakah boleh menanyakan nama penumpang lain di stasiun? Tolong dijawab ya, lg urgent soalnya

    ReplyDelete
  10. Boleh nanya gak, caranya mengisi tabel kembalian itu gimana cara masukin rumusnya, sya gak paham😢

    ReplyDelete
  11. Kira2 boleh g ya nanya ke cs distasiun data penumpang yg naek kereta tp dh lwt tglnya

    ReplyDelete

Ayo dong komentar postingan ini, biar bikin semangat postingan lagi. Sekalian juga bisa diskusi kan tentang ide dan gagasan disini