Anda di halaman 1dari 5

PENERAPAN ALGORITMA GREEDY PADA APLIKASI SEDERHANA

RESERVASI HOTEL DENGAN C++

Aris Bimas Nugroho


Program Studi Teknik Informatika, STMIK Bani Saleh
E-mail: aribimas2@gmail.com

ABSTRAK

Algoritma Greedy adalah salah satu algoritma yang biasa digunakan sebagai salah satu penyelesaian masalah
optimasi. Pada algoritma Greedy, diterapkan prinsip “take what you can get now!”, dengan kata lain algoritma ini
akan mengambil keputusan terbaik yang ada saat itu tanpa memikirkan konsekuensi ke depannya nanti. Aplikasi
berbasis dekstop ini bertujuan untuk memudahkan receptionist untuk mendata dan memperliatkan kepada pengunjung
yang datang ke hotel berapa harga kamar sesuai class room dan lama penginapan, yang jika hanya di tulis di buku
saja terkadang akan hilang atau rusak dan tidak tahan lama,tidak seperti jika dalam PC. Dengan adanya aplikasi
reservasi hotel ini diharapkan dapat membantu receptionist menghitung lama penginapan pengunjung serta total harga
yang harus di bayarkan oleh pengunjung.

Kata kunci: Algoritma Greedy,Reservasi,Aplikasi, Dev C++

1. PENDAHULUAN

1.1. Latar Belakang dan menghitung total harga kamar. Di dalam penulisan
Perkembangan dan kemajuan teknologi di berbagai ini penulis juga membatasi ruang lingkup yaitu hanya
bidang, dapat dimanfaatkan pada bidang perhotelan pada menghitung harga kamar sesuai class room yang
khususnya untuk dapat membantu receptionist dalam ada di dalam hotel tersebut.
proses mendata pengunjung dan penghitungan harga
kamar. Menggunakan Aplikasi Reservasi ini sangatlah 2. METODE PENELITIAN
mudah. Selain itu, dengan menggunakan program-
program seperti ini, pekerjaan kita akan semakin cepat 2.1. Tempat Penelitian
dan ringan. Aplikasi ini diharapkan dapat memberikan Peneliti melakukan penelitian di Sekolah Tinggi
hasil yang lebih baik. Manajemen Informasi Dan Komputer ( STMIK ) Bani
Saleh, Jl. Mayor M. Hasibuan No 68 Bekasi Timur
1.2. Perumusan Masalah 17113, Jawa Barat, Indonesia
a. Bagaimana membuat suatu aplikasi Reservasi
Hotel menggunakan Dev C++ dan bagaimana 2.2. Teknik Pengumpulan Data
cara kerjanya ? Penulis menggunakan teknik pengumpulan data dengan
b. Bagaimana Implementasi algoritma Greedy cara Searching, yaitu mengamati dan mencari contoh
pada aplikasi Reservasi Hotel ? data dan aplikasi yang mirip di internet untuk
melengkapi data-data yang dibutuhkan.
1.3. Ruang Lingkup
Ruang lingkup pada penulisan ini penulis melakukan 2.3. Sumber Data
analisa dan perancangan tentang aplikasi Reservasi a. Data Primer
Hotel “Kudu Mampir” yang diharapkan dapat Mengumpulkan data secara langsung dari objek
memudahkan receptionist untuk mendata pengunjung yang diteliti. Data yang dibuat oleh peneliti untuk

1
maksud khusus menyelesaikan permasalahan sudah dipilih pada suatu langkah tidak bisa diubah di
yang sedang ditanganinya. langkah selanjutnya. 4. Fungsi kelayakan Fungsi ini
b. Data Sekunder akan memeriksa kelayakan suatu kandidat yang telah
Data yang telah dikumpulkan untuk maksud selain dipilih. Dalam arti, kandidat tersebut dan himpunan
menyelesaikan masalah yang sedang dihadapi. solusi yang terbentuk tidak melanggar constraints yang
Dalam penelitian ini yang menjadi sumber data ada. Bila kandidat layak, maka kandidat tersebut akan
sekunder adalah mata kuliah semester satu yaitu dimasukkan ke dalam himpunan solusi, dan jika
logika dan algoritma kandidat tersebut tidak layak, maka kandidat akan
dibuang dan tidak akan dipertimbangkan lagi dalam
3. PEMBAHASAN DAN HASIL pencarian solusi optimum. 5. Fungsi obyektif Fungsi ini
akan membuat nilai solusi maksimum atau minimum,
3.1. Algoritma Greedy sesuai dengan jenis optimasi apa yang dibutuhkan.
Dalam bahasa Inggris, Greedy berarti rakus, tamak, atau
Dengan kata lain, algoritma Greedy akan melakukan
loba. Definisi ini sangat sesuai dengan prinsip algoritma
pencarian sebuah himpunan bagian S dari himpunan
Greedy, yaitu “take what you can get now!”. Prinsip ini
kandidat C. Himpunan bagian S harus memenuhi
menggambarkan algoritma Greedy yang akan
beberapa criteria yang ditentukan, yaitu menyatakan
mengambil keputusan yang terbaik pada setiap langkah
suatu solusi dan S dioptimisasi oleh fungsi obyektif.
penyelesaian, tanpa memperhitungkan akibatnya pada
keseluruhan permasalahan. Akan tetapi, agar algoritma
Algoritma Greedy mempunyai beberapa variasi, antara
Greedy benarbenar dapat menyelesaikan masalah
lain :
optimasi, pada setiap langkah harus dibuat keputusan
terbaik.
1. Algoritma Greedy Murni
2. Algoritma Greedy Orthogonal
Algoritma Greedy merupakan salah satu algoritma yang
3. Relaxed Greedy Algorithm
sering digunakan untuk memecahkan permasalahan
optimasi. Pada setiap langkah, kita harus membuat
Perlu diketahui bahwa tidak semua pemakaian algoritma
pilihan optimum lokal (local optimum), yang dapat
Greedy akan menghasilkan solusi optimum.
diartikan sebagai keputusan terbaik yang diambil pada
Contohcontoh permasalahan yang tidak bisa
langkah tersebut. Karena algoritma Greedy biasanya
menggunakan algoritma Greedy untuk menghasilkan
dilakukan dalam beberapa langkah, maka dalam satu
solusi optimum adalah Knapsack Problem dan
permasalahan optimasi kita akan membuat beberapa
Travelling Salesman Problem
pilihan optimum lokal, sesuai dengan banyaknya
langkah yang harus dilakukan. Diharapkan bahwa setiap
kali diambil pilihan optimum lokal, langkah-langkah 3.2. Program yang digunakan
setelahnya akan mengarah ke solusi optimum global. Dev C++
Perlu diingat bahwa algoritma Greedy hanya memakai
dua macam persoalan optimasi, yaitu maksimasi 3.3. Implementasi (Kode)
(maximization) dan minimasi (minimization). Di bawah ini adalah kode sumber dari penerapan
algoritma yang telah dibuat :
Pada algoritma Greedy, ada beberapa elemen yang
#include<iostream>
harus diperhatikan, yaitu : #include <conio.h>
#include <string>
1. Himpunan kandidat (C) Himpunan ini berisi elemen- #include <stdio.h>
using namespace std;
elemen pembentuk solusi. main()
2. Himpunan solusi (S) Himpunan ini berisi kandidat- {
kandidat yang terpilih sebagai solusi dari permasalahan char kodeKamar,
pengunjung[50],tipeKamar,pesanKembali
optimasi yang akan diselesaikan ;
3. Fungsi seleksi Fungsi ini akan memilih kandidat yang int
paling memungkinkan untuk mencapai solusi optimal. lamaMenginap,hargaSewa,sewa,uangBayar
,total,kembali,paketBonus;
Sesuai dengan prinsip algoritma Greedy, kandidat yang
2
atas: break;
cout<<"\t Hotel Kudu
Mampir";cout<<endl; case ('b') :
cout<<"\t JL.Yang Benar No 69 case ('B') :
Boyolali";cout<<endl; {
cout<<" cout<<"Best Suite
===================================== Room"<<tipeKamar;
===============";cout<<endl; hargaSewa= 1200000;
cout<<endl; }
cout<<" Nama Pengunjung break;
: ";gets(pengunjung);
cout<<" Kode Kamar Hotel [S/P/D/B] default:
: ";cin>>kodeKamar; cout<<endl;
cout<<" Lama Menginap cout<<" Kode Kamar Yang Anda
: ";cin>>lamaMenginap; Masukan Salah"<<endl;
goto bawah;
}
cout<<endl;
cout<<" if(lamaMenginap>=3)
===================================== {paketBonus=200000;
===============";cout<<endl; } else paketBonus=0;
cout<<endl; sewa=lamaMenginap*hargaSewa;
cout<<" \t Informasi total=sewa-paketBonus;
Pemesanan"<<endl; cout<<endl;
cout<<" cout<<" Lama Menginap :
===================================== "<<lamaMenginap; cout<<" Hari"<<endl;
===============";cout<<endl; cout<<" Biaya Sewa Kamar
cout<<endl; : Rp. "<<sewa<<endl;
cout<<" Nama Pengunjung cout<<" Potongan Harga
: "<<pengunjung<<endl; : Rp. "<<paketBonus<<endl;
cout<<" Kode Kamar cout<<" Total Biaya
: "<<kodeKamar<<endl; : Rp. "<<total<<endl;
cout<<" Lama Menginap cout<<"
: "<<lamaMenginap;cout<<" =====================================
Hari"<<endl; ===============";cout<<endl;
cout<<" cout<<endl;
===================================== cout<<" Uang Bayar
===============";cout<<endl; : Rp. ";cin>>uangBayar;
cout<<endl; kembali=uangBayar-total;
cout<<" Tipe Kamar cout<<" Uang Kembali
:"<<tipeKamar; : Rp. "<<kembali<<endl;
bawah:
switch(kodeKamar) cout<<endl;
{ cout<<" Pesan Lagi?[Y/T]
case ('s') : :";cin>>pesanKembali;
case ('S') :
{ if(pesanKembali=='y'||pesanKembali=='
cout<<"Standard Y')
Room"<<tipeKamar; goto atas;
hargaSewa= 250000; else
} cout<<endl;
break; }
case ('p') : 3.4. Cara kerja
case ('P') :
{ Cara mengisikan Form Reservasi:
cout<<"Premium Ada 4 form yang harus di isi yaitu Nama
Room"<<tipeKamar; Pengunjung, Kode/Jenis Kamar Hotel, Lama
hargaSewa= 400000;
} Menginap, Uang Bayar. Langkah pertama adalah
break; mengisi form nama pengunjung, jenis kamar hotel
case ('d') : dan lama waktu menginap. Dan secara otomatis
case ('D') :
{ akan terlihat berapa harga yang harus di bayarkan
cout<<"Deluxe Room"<<tipeKamar; oleh pengunjung sesuai dengan jenis kamar dan
hargaSewa= 700000; lama waktu penginapan. Jika pengunjung
}
3
menginap lebih dari 3 hari maka sistem akan b. Tampilan program ketika sudah diisi data
memberi potongan harga (discount) sebanyak Rp. pelanggan.
200.000.

Cara menghitung harga kamar sesuai class room


dan lama waktu menginap

Harga Kamar * Lama Menginap

Cara menghitung total harga adalah

Sewa – Potongan Harga

3.5. Tampilan Program

a. Tampilan awal program

4. KESIMPULAN

4.1. Kesimpulan Umum


Berdasarkan pembahasan yang telah dikemukakan pada
bab sebelumnya dalam penelitian ini, maka penulis
mengambil kesimpulan Umun, yaitu :
a. Dengan menggunakan algoritma Greedy kita
dapat membuat aplikasi sederhana seperti
diatas.

4.2. Kesimpulan Khusus


Berdasarkan pembahasan yang telah dikemukakan pada
bab sebelumnya dalam penelitian ini, maka penulis
mengambil kesimpulan Khusus, yaitu :

a. Dengan menggunakan aplikasi yang diusulkan,


maka receptionist dapat dengan cepat
menghitung dan atau mendata pelanggan
dengan kamar pesannannya dan pelanggan bisa
langsung melihat total harga yang harus
dibayarkan.
b. Dengan menggunakan bahasa pemograman
C++ dan dengan bantuan aplikasi Dev C++

4
kita dapat membuat suatu program sederhana
yang lebih menarik dan ringkas untuk
membantu memecahkan atau menringankan
suatu masalah atau pekerjaan.

DAFTAR PUSTAKA

Artikel dari internet:


[1] Membuat Program Pemesanan Hotel
Menggunakan Pemrograman
C++.http://www.jalaninformatika.com/201
6/06/membuat-program-pemesanan-
hotel.html [3] Program Penginputan Nilai
Akhir Mahasiswa.
(2013).(http://muliahamdani.blogspot.co.id
/2013/10/program-penginputan-nilai-
mahasiswa.html), diakses14 Januari 2017

[2] Algoritma Greedy untuk Optimasi Sistem Booking


Hotel.https://www.google.com/url?sa=t&rct=j
&q=&esrc=s&source=web&cd=1&ved=0ahUKE
wiX6aC3-
8PRAhWGuY8KHdGHDhcQFggeMAA&url=http
%3A%2F%2Finformatika.stei.itb.ac.id%2F~rinal
di.munir%2FStmik%2F2010-
2011%2FMakalah2010%2FMakalahStima2010
-035.pdf&usg=AFQjCNFvJmZtJIQnb3-
azeAgxBv0QdxIiA&sig2=5nyNXLoKisbwSMuJkG
l3XA&cad=rja, diakses15 Januari 2017.

Anda mungkin juga menyukai