Aplikasi Perhotelan Berbasis Client Server dengan Menggunakan Bahasa Pemrograman C# .NET 1
Willy Witanto , Hadiq, S.T, M.Kom 2 1*
Teknik Informatika, STIKOM PGRI, Banyuwangi, Indonesia
[email protected] Teknik Informatika, STIKOM PGRI, Banyuwangi, Indonesia2*
Abstrak – Hotel yang berada dalam tahap menengah kebawah kebanyakan masih menggunakan pencatatan manual dalam mencatat transaksi atau menggunakan program seperti MS. Excel yang notabene bukan program yang khusus dibuat untuk mengolah dan mencatat informasi. Pencatatan yang semacam itu kurang efektif karena kemungkinan terjadinya kesalahan dalam pencatatan dan perhitungan lebih besar. Jika kesalahan tersebut terulang terus, bisa jadi hotel akan mengalami kerugian bahkan bangkrut. Untuk mengatasi permasalahan tersebut perlu dibuat sebuah aplikasi yang bisa menangani sistem informasi sebuah hotel. Karena jenis dan type hotel berbeda, maka program aplikasi yang dibuat ini berdasarkan model sistem informasi yang dipakai oleh kabanyakan hotel. Program aplikasi ini berbasis client server dengan bahasa pemrograman C# untuk memudahkan pengguna dalam pengoprasiannya. Jadi antara receptionist dan admin bisa mengakses program secara bersamaan dan dari tempat yang berbeda serta kemungkinan terjadinya kesalahan perhitungan dan pencatatan transaksi, bisa diminimalisir dengan program aplikasi ini. Dalam penelitian ini dihasilkan aplikasi client server dalam Framework .NET yang bisa menangani transaksi perhotelan yang bisa memudahkan dalam pencatatan transaksi dan aplikasi ini bisa diakses oleh user biasa yang hanya bisa menginputkan transaksi ataupun diakses oleh admin yang bisa melakukan maintenance database yang ternormalisasi. Kata kunci – C#, .Net Framework, database, client server, perhotelan 1.
banyak pengusaha yang menganggap remeh hall tersebut. Mereka tetap menggunakan sistem yang telah ada sebelumnya sehingga usaha yang mereka miliki tidak mampu bersaing dengan usaha lain yang sudah menggunakan teknologi dalam sistem informasinya dan seringkali mengalamii kegagalan. Hotel pun juga demikian. Jika suatu hotel tetap menggunakan sistem manual dalam administrasinya, banyak yang harus ditanggung oleh hotel tersebut. Pertama, kesalahan dalam pencatatan administrasi akan lebih besar kemungkinannya dan jika dibiarkan terus-menerus hotel tersebut bisa mengalami suatu kebangkrutan. Yang kedua, hotel harus merekrut seseorang yang ahli untuk mengelola administrasi tersebut. Akan banyak uang yang dikeluarkan untuk menggaji ahlii tersebut. Pengaplikasian teori client server bisa mengoptimalkan eisiensi sistem informasii perhotelan karena client server bisa diakses dalam waktu yang bersamaan dari lain tempat. Sehingga memudahkan admin dan user biasa untuk menginputkan data. Maka dari itu, penggunaan sistem informasi berbasis komputer dalam hotel diperlukan untuk mengatasi kedua permasalahan diatas. Suatu sistem informasi berbasis komputer bisa meminimalisir kesalahan dalam administrasi. Untuk itulah diperlukan adanya Aplikasi Perhotelan Berbasis Client Server dengan Menggunakan Bahasa Pemrograman C# .NET. 2. Pemrograman Client Server Pemrograman Client Server adalah pemrograman dimana dimana suatu aplikasi dibagi menjadi dua bagian yaitu sebagai klien dan server tetapi tetap merupakan suatu kesatuan.[1]
Pendahuluan
Pemanfaatan sistem informasi berbasis komputer sudah banyak digunakan dalam segala bidang dan segala kalangan. Mulai dari instansi pemerintahan hingga instansi swasta. Semua itu dikarenakan dengan sistem informasi, pekerjaan seseorang bisa lebih terbantu daripada harus mengerjakannya secara manual. Banyak pengusaha berlombalomba memanfaatkan teknologi untuk meningkatkan usaha yang dimilikinya. Seringkali,
Client/server adalah suatu program yang dijalankan pada client dan mengakses database yang dijalankan oleh server, dimana User Interface dan Bussiness Logic berada pada sisi computer client. Aplikasi pada client menerima inputan data dari pengguna, selanjutnya inputan tersebut dikirim ke server untuk dilakukan pemrosesan. Setelah data tersebut diproses oleh server, hasil pemrosesannya tersebut dikembalikan lagi ke
aplikasi di client untuk kemudian ditampilkan ke pengguna.[1] 3. Bahasa Pemrograman C# C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lainlain) dengan beberapa penyederhanaan. [2]
a.
Desain Tabel
Secara kesuluruhan table yang dibutuhkan adalah sebagai berikut : tabel checkin, tabel checkout, tabel data tamu, tabel kamar, tabel type kamar, dan tabel user. Adapun rancangan tabel-tabell tersebut terlihat pada gambar 1.
4. Framework .NET Framework .NET terdiri atas dua elemen penting, yaitu Common Language Runtime dan Framework Class Library. Elemen pertama adalah sebuah lingkungan yang menjalankan program saat runtime dan dikenal dengan nama Common Language Runtime (CLR), kemudian elemen kedua adalah Class Library (FCL) yang diletakkan diatas CLR dan menyediakan Layanan yang dibutuhkan oleh aplikasi .NET.[3] Ketika sebuah aplikasi dijalankan dengan target framework .NET, maka secara langsung Class Library akan saling berinteraksi, kemudian CLR akan memberikan layanan sebagai penyedia mesin untuk menjalankan aplikasi. [3]
Gambar 1 : Desain Database
5. Normalisasi Database
b.
Normalisasi database adalah suatu teknik untuk mendesain tabel sehingga kita tahu berapa jumlah tabel yang ada dalam database. Penggunaan teknik ini dimaksudkan untuk menghilangkan data yang tidak konsisten maupun data yang berulang (redudance). [4]
Dibawah ini adalah rancangan stored procedure sesuai dengan desain tabel seperti diatas.
Karena database bisa dikatakan jelek apabila beberapa hal seperti misalnya ada data yang sama tersimpan di beberapa tempat (file atau record), lalu terjadi ketidak mampuan untuk menghasilkan informasi tertentu, terjadi kehilangan informasi, terjadi adanya redudansi atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan saat proses updating data dan terkhir timbul adanya NULL VALUE. Untuk itulah pentingnya normalisasi data, guna menghindari hal-hal seperti diatas. [4] 6.
Desain System
Desain system pada aplikasi perhotelan ini dibagi menjadi dua bagian yaitu desain logical database dan desain aplikasi perhotelan. 1.
Desain Logical Database
Desain logical database dalam aplikasi ini dibagi menjadi dua bagian. Yang pertama adalah desain tabel dan yang kedua adalah desain stored procedure.
Stored Procedure
Cari User
CREATE PROCEDURE `hotel`.`CariUser` (usr varchar(15)) BEGIN select pass from tbl_user where username=usr; END$$
Cari Data Admin
CREATE DEFINER=`root`@`localhost` `CariDataAdmin`() BEGIN case when kondisi = 'user' then select when kondisi = 'no' then select * when kondisi = 'type' then select tbl_type_kmr; end case; END$$
PROCEDURE
* from tbl_user; from tbl_kmr; * from
Cari Data CheckIn
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariDataCheckin`() BEGIN select c.no_kmr, b.nama_tamu, b.no_identitas, b.alamat, b.no_telepon, b.jk, c.type_kmr, b.id_member, a.tgl_check_in from tbl_checkin as a inner join tbl_data_tamu as b on a.id_tamu=b.id_tamu inner join (select x.no_kmr, y.type_kmr, y.harga from tbl_kamar as x inner join tbl_type_kmr as y on x.id_type_kmr=y.id_type_kmr) as c on a.no_kmr = c.no_kmr; END$$
Cari Harga
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariDataCheckin`() BEGIN select c.no_kmr, b.nama_tamu, b.no_identitas, b.alamat, b.no_telepon, b.jk, c.type_kmr, b.id_member, a.tgl_check_in from tbl_checkin as a inner join tbl_data_tamu as b on a.id_tamu=b.id_tamu inner join (select x.no_kmr, y.type_kmr, y.harga from tbl_kamar as x inner join tbl_type_kmr as y on x.id_type_kmr=y.id_type_kmr) as c on a.no_kmr = c.no_kmr; END$$
Cari ID Member
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariIdMember`(mb char(1)) BEGIN select id_member from tbl_data_tamu where member = mb; END$$
Cari Kamar
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariKamar`() BEGIN select a.no_kmr, b.type_kmr, a.status_kmr from tbl_kamar as a inner join tbl_type_kmr as b on a.id_type_kmr=b.id_type_kmr; END$$
Cari Nama Member
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariNamaMember`(id varchar(20)) BEGIN select nama_tamu, no_identitas, alamat, no_telepon, jk, alamat from tbl_data_tamu where id_member = id; END$$
Cari type Kamar
Isi No Kamar
CREATE PROCEDURE `hotel`.`IsiNoKmr` (noKmr int(5), idType varchar(15), statusKmr char(1)) BEGIN insert into tbl_kamar values(noKmr, idType, statusKmr); END$$
Isi User
CREATE DEFINER=`root`@`localhost` PROCEDURE `IsiUser`(username varchar(10), pass varchar(20)) BEGIN insert into tbl_user values(username, pass); END$$
Isi Type Kamar
CREATE PROCEDURE `hotel`.`IsiTypeKmr` (idType int(3), typeKmr varchar(15), harga int(9)) BEGIN insert into tbl_type_kmr values(idType, typeKmr, harga); END$$
Edit User
CREATE PROCEDURE `hotel`.`EditUser` (passwd varchar(20), usr varchar (15)) BEGIN update tbl_user set pass=passwd where username=usr; END$$
Edit Kamar
CREATE PROCEDURE `hotel`.`EditKamar` (noKmr int(5)) BEGIN update tbl_kamar set status_kmr='y' where no_kmr=noKmr; END$$
Edit No Kamar
CREATE DEFINER=`root`@`localhost` PROCEDURE `CariTypeKmr`() BEGIN select type_kmr from tbl_type_kmr; END$$
CREATE PROCEDURE `hotel`.`EditNoKamar` (tipe varchar(20), noKmr int(5)) BEGIN update tbl_kamar set id_type_kmr = tipe where no_kmr=noKmr; END$$
Isi Check In
CREATE DEFINER=`root`@`localhost` PROCEDURE `IsiCheckin`(idCheckIn varchar(20), idTamu varchar(3), noKmr int(3), idMember int(10), tglCheckIn date) BEGIN insert into tb_checkin values(idCheckIn, idTamu, noKmr, idMember, tglCheckIn); END$$
Isi Check Out
CREATE DEFINER=`root`@`localhost` PROCEDURE `IsiCheckOut`(idCheckOut varchar(20), idCheckIn varchar(20), diskon int(10), tglCheckOut date, lamaInap int(5), totalBayar int(10)) BEGIN insert into tbl_checkout values(idCheckOut, idCheckIn, diskon, tglCheckOut, lamaInap, totalBayar); END$$
Isi Data Tamu
CREATE DEFINER=`root`@`localhost` PROCEDURE `IsiDataTamu`(namatamu varchar(20), noIdentitas varchar(20), alamat varchar(20), noTelepon varchar(15), jk char(1), member varchar(10), idMember varchar(10)) BEGIN insert into tbl_data_tamu values(namaTamu, noIdentitas, alamat, noTelepon, jk, member, idMember); END$$
Edit Type Kamar
CREATE PROCEDURE `hotel`.`EditTypeKmr` (tipe varchar(20), hrg int(10), idTipe char(1)) BEGIN update tbl_type_kmr set type_kmr = tipe, harga=hrg where id_type_kmr = idTipe; END$$
Hapus User
CREATE PROCEDURE `hotel`.`HapusUser` (usr varchar(15)) BEGIN delete from tbl_user where username=usr; END$$
Hapus No. Kamar
CREATE PROCEDURE `hotel`.`HapusNoKmr` (noKmr int(5)) BEGIN delete from tbl_kamar where no_kmr=noKmr; END$$
Hapus Type Kamar
CREATE PROCEDURE `hotel`.`HapusTypeKmr` (idTipe char(1)) BEGIN delete from tbl_type_kmr where id_type_kmr = idTipe; END$$
Hapus member
CREATE PROCEDURE `hotel`.`HapusMember` (idMember varchar(5)) BEGIN delete from tbl_data_tamu where id_member=idMember; END$$
2.
Desain Aplikasi Hotel
Desain aplikasi perhotelan ini dapat digambarkan seperti desain activity dibawah ini.
penginputan selesai, maka data akan tampil pada datagrid yang ada dibagian bawah. Sehingga memudahkan receptionist untuk melihat data tamu yang sedang check in di hotel tersebut.
Gambar 4 : Tampilan transaksi Check in
Gambar 2 : Activity Diagram 7.
Uji Coba
Gambar 5 merupakan tampilan dari transaksi check out. Disni receptionist cukup memilih nomor kamar yang sudah disewa oleh tamu dan akan keluar data tamu beserta jumlah uang sewa yang harus dibayarkan.
Dalam uji coba ini dapat dibuktikan bahwa pengaplikasian Pemrograman Client Server Hotel dapat berjalan dengan baik. Berikut tampilan pada aplikasi yang telah jadi. Gambar 3 menunjukkan form login yang digunakan untuk menginputkan username dan password agar seseorang bisa mengakses program aplikasi hotel tersebut. Terdapat 2 user dalam aplikasi ini. Pertama yaitu user biasa yang hanya dapat menginputkan transaksi. Kedua yaitu admin yang dapat mengelola dan melakukan maintenance data, seperti menambah dan mengedit user, menambah dan mengedit data kamar, serta menambah dan mengedit data type kamar.
Gambar 5 : Tampilan transaksi Check Out
Gambar 3 : Form Login Gambar 4 adalah tampilan form transaksi check in. Receptionist menginputkan identitas tamu dan no kamar yang akan disewa. Setelah proses
Gambar 6 adalah tampilan dari member area. Disini receptionist bisa menambahkan data member baru dan mengedit data member yang sudah terdaftar. Jadi, jika ada tamu yang ingin mendaftar untuk menjadi seorang member di hotel ini, receptionist bisa menginutkan datanya pada tab berikut ini. Dan jika data member yang sudah terdaftar ada yang berubah, receptionist bisa juga mengubah data dalam database.
Gambar 6 : Tampilan member area Gambar 7 merupakan tampilan untuk melihat kamar mana saja yang masih kosong dan kamar mana saja yang sudah dipakai. Jika status tersebut bernilai ‘y’ maka kamar tesebut sudah disewa dan apabila status bernilai ‘n’ maka kamar tersebut masih kosong.
Gambar 8 : Tampilan admin area 8.
Kesimpulan
Kesimpulan yang dapat dihasilkan dari penelitian ini adalah : 1. Pemrograman client server berhasil diterapkan pada aplikasi perhotelan, hal ini berguna untuk menangani admin dan receptionist bisa mengakses aplikasi dari tempat yang berbeda dalam waktu yang bersamaan dan hanya perlu satu database di server untuk menjalankan aplikasi ini. 2. Penggunaan bahasa C# dapat mempermudah pembuatan aplikasi perhotelan karena C# bahasanya mudah dipahami dan cocok untuk pembuatan aplikasi client server seperti apllikasi perhotelan ini. 3. .NET Framework menyediakan environment kerja yang handal dan konsisten, sehingga mampu menjalankan pemrograman berorientasi object (OOP) berbasis client server. Hal ini memudahkan pembuatan aplikasi perhotelan ini. 4. Teknik normalisasi database terbukti bisa memudahkan dalam maintenance data. Sehingga mengoptimalkan penggunaan aplikasi yang mengakses database tersebut.
Gambar 7 : Tampilan lihat data kamar 9. Gambar 8 berisi tampilan halaman admin. Form ini hanya bisa diakses oleh seorang admin. Di form ini seorang admin bisa melakukan suatu perubahan terhadapa data jika diperlukan seperti menambah user untuk bisa mengakses aplikasi hotel tersebut dan bisa juga mengganti password dari user yang telah terdaftar. Seorang admin juga dapat menambah type kamar dan harga sewa .Selain itu, seorang admin juga bisa menambah dan mengedit nomor kamar yang tersedia di hotel tersebut.
Saran
Dalam aplikasi ini hanya bisa untuk menangani transaksi hotel tingkat menengah kebawah. Akan lebih optimal lagi jika aplikasi ini dikembangkan sehingga bisa menangani transaksi hotel yang berskala besar yang sudah memiliki kafe atau resetoran sendiri. Jadi data antara sewa kamar dan meu yang dipesan oleh tamu bisa tercatat secara baik. Penerapan teknik modularity dalam pembuatan aplikasi client server seperti ini juga akan mempermudah dalam manajemen aplikasi. Apabila terjadi kekurangan maka hanya perlu mengcompile ulang form yang mempunyai kekurangan tersebut.
10. Daftar Pustaka [1]
[2]
[3] [4]
Nurrohmah, Ratnasari. Client/Server dengan Java Remote Method Invocation (Java RMI), Sebuah Tutorial. Surakarta : Teknik Elektro Universitas Muhammadiyah Surakarta 2003 Hartanto, Budi. Membuat Program – Program Keren dengan Visual C#.Net Secara Mudah. Yogyakarta : C.V Andi Offset 2009 Jaenudin, S.T. Belajar Sendiri .NET dengan Visual Studio C# 2005. Yogyakarta : CV. Andi Offset Kusrini, Andri Koniyo. Optimasi Penggunaan Tabel terhadap Informasi Akuntansi yang Dihasilkan pada Sistem Informasi Akuntansi. Yogyakarta : STMIK AMIKOM Yogyakarta.