VCD Rental Management System using Turbo C 3.0

My second project, masih berkutat dengan graphic.h-nya Turbo C 3.0 yang kali ini jauh lebih mbulet. Sesuai judulnya, aplikasi ini berfungsi sebagai management system sederhana suatu rental vcd, dengan fitur database standar search, insert, update, delete (namun masih menggunakan file teks!!!) dan shopping cart sederhana yang memungkinkan user dapat melakukan browsing sendiri terhadap koleksi vcd dan melakukan pemesanan sendiri.

Idenya pada sebuah rental vcd disediakan komputer yang dapat digunakan oleh member. Member login terlebih dahulu ke dalam aplikasi ini, lalu member dapat mencari sendiri judul vcd yang ingin disewa, apakah tersedia atau tidak. Apabila member ingin meminjam vcd yang diinginkan, tinggal mengklik link "add to cart" dan vcd tersebut secara otomatis akan ditambahkan ke shopping cart milik member tersebut. Apabila sudah selesai (sesudah melakukan logout tentunya), member tinggal menuju kasir, menyebutkan member ID-nya, dan petugas kasir dapat melihat vcd yang ingin disewa dalam shopping cart member tersebut. Setelah petugas meng-approve cart tersebut, otomatis status vcd pada database vcd akan terupdate menjadi "keluar" dan melakukan insert record peminjaman pada file log, tak lupa menghapus record shopping cart member tersebut. File log inilah yang akan digunakan pada saat pengembalian vcd.

Saat member melakukan pengembalian, relasi antara member dengan transaksi peminjaman, serta vcd yang dipinjam terdapat pada file log. Bila semua transaksi pengembalian sudah beres, petugas meng-approve transaksi pengembalian, status vcd pada database diupdate kembali menjadi "ada" dan record transaksi ini pada file log diberikan suatu flag yang menandakan bahwa transaksi ini sudah beres.

Ada satu fitur yang sangaaaaaaaat susah untuk dilakukan oleh Turbo C 3.0 dalam aplikasi ini, yaitu fitur hyperlink, di mana user dapat mengklik judul vcd yang ditampilkan, lalu membawa user pada halaman baru yang menampilkan detail vcd tersebut, termasuk fitur edit dan delete. Susahnya adalah list vcd yang ditampilkan sifatnya dinamis (di dalamnya juga digunakan fitur paging), sesuai dengan databasenya. Maka algoritma yang diterapkan adalah seperti ini :

Dengan menggunakan sistem paging (diasumsikan satu page menampilkan sepuluh item vcd), kita membaca sepuluh record pada file database vcd secara berurutan, lalu menampungnya dalam linked list (yang tentunya memiliki sepuluh node). Linked list inilah yang digunakan untuk segala proses manipulasi data selanjutnya. Oiya node pada linked list berisi semua atribut vcd sama dengan yang ada pada file database vcd, ditambahkan atribut index bertipe integer untuk memberikan nomor urut pada sepuluh record vcd yang ditampilkan.

Lalu kita melakukan mapping atau pemetaan koordinat area hyperlink pada layar aplikasi di mana kita akan menampilkan hyperlink kesepuluh record vcd tersebut. Tentunya kita membuat sepuluh koordinat area hyperlink. Langkah berikutnya adalah menampilkan record sepuluh vcd dari linked list sesuai dengan pemetaan koordinat yang sudah ditentukan dan di-layout sebelumnya. Kemudian kita membuat suatu prosedur hyperlink; prosedur ini menjalankan fungsi apabila pointer mouse meng-klik salah satu koordinat area hyperlink yang sudah dipetakan, kita memberikan nilai integer pada variabel index, yaitu hyperlink baris ke berapa yang di-klik oleh user (baris satu sampai sepuluh ditentukan urut dari area hyperlink paling atas ke bawah).

Lalu prosedur hyperlink ini memanggil satu prosedur lagi yang bertugas untuk menampilkan detail record vcd sesuai dengan hyperlink yang di-klik oleh user (mbulet yah). Parameter yang dimasukkan ke dalam prosedur ini adalah index baris hyperlink yang diberikan oleh prosedur hyperlink di atas. Index ini digunakan untuk mengambil record vcd dari linked list (ini sebabnya kita harus menambahkan atribut index pada node linked list). Dengan begitu detail record yang ditampilkan sama dengan record yang di-klik di hyperlink pada halaman sebelumnya.

Download Sourcecode

 
 

 

 

My Portfolio
 

 

 

 

 

 

 

 

nbrahmantyo © 2006