Ko nfe re nsi Na sio na l Ilm u Ko m pute r (KO NIK) 2014 ISSN : 2 338- 2 89 9
PENERAPAN ALGORITMA GREEDY PADA SISTEM PENUKARAN
NOMINAL MATA UANG RUPIAH
Abdul Jalil(1), Pujianti Wahyuningsih(2)
1)Pascasarjana Magister Sistem Komputer STMIK Handayani Makassar 2)Jurusan Sistem Informasi STMIK AKBA
Email : [email protected]) , [email protected])
Abstrak
Sistem penukaran nominal mata uang rupiah yang bersifat otomasi sangat jarang ditemukan tetapi sangat dibutuhkan pada saat tertentu. Tujuan dari mesin otomasi ini adalah untuk memudahkan masyarakat yang ingin menukar uangnya dari nominal yang besar ke kecil. Kendala yang dihadapi dalam sistem penukaran ini adalah penggunaan algoritma yang dibutuhkan untuk dapat menjalankan sistem tersebut. Salah satu metode yang dapat digunakan untuk merancang dan menerapkan sistem ini adalah mengunakan algoritma Greedy. Dengan menggunakan algoritma ini maka sebuah permasalahan dengan teknik pencarian rute terpendek dapat diselesaikan. Hasil dari penerapan Algoritma Greedy ini adalah dapat menyelesaikan permasalahan mengenai teknik penukaran Nominal Mata Uang Rupiah secara otomasi.
Kata Kunci : Algoritma Greedy, Nominal Uang Rupiah.
1. Pendahuluan
Kebutuhan masyarakat dengan perkembangan teknologi saling terkait erat, hal tersebut digunakan untuk mempermudah pekerjaan manusia. Penggunanya pun beragam, salah satu unit usaha yang sangat bergantung dengan teknologi adalah perbankan yang hampir semua transaksi harus terhubung ke jaringan komunikasi.
Terdapat beberapa layanan keuangan bank, seperti jasa penyimpanan uang, jasa pinjaman/kredit, jasa penyediaan ATM dan lain-lain. Namun layanan jasa penukaran uang kecil menggunakan mesin ATM masih belum digunakan untuk layanan masyarakat.
Kurangnya layanan jasa penukaran uang kecil membuat masyarakat kesulitan mencari tempat penukaran uang, baik itu diwarung-warung, supermarket, teman dan sebagainya. Salah satu layanan penukaran uang yang bersifat manual adalah jasa jual beli penukaran uang kecil, pada saat seseorang membutuhkan uang kecil maka penyedia jasa penukaran uang menjualnya dengan nominal
harga yang lebih besar dari jumlah uang yang ditukarkan.
Berdasarkan permasalahan tersebut maka penulis mengusulkan untuk melakukan penelitian sistem penukaran nominal mata uang rupiah secara otomasi. Algoritma yang digunakan pada sistem ini adalah menggunakan Algoritma Greedy sehingga sebuah proses penukaran nominal dari mata uang besar ke kecil dapat diselesaikan dengan cepat sesuai dengan alur pilihan terpendek.
Salah satu penelitian terkait dengan penerapan algoritma Greedy adalah Kompleksitas Algoritma Untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy[1]. Berdasarkan penelitian tersebut diharapkan terdapat pengembangan sistem penukaran nominal mata uang rupiah dari besar ke kecil menggunakan Algoritma Greedy.
2. Tinjauan Pustaka
Terdapat beberapa penelitian terkait dari teknik penggunaan algoritma Greedy pada pemecahan masalah untuk mencari rute terpendek dengan waktu tercepat tanpa memikir konsekuensi kedepannya. Salah satu penelitian terkait adalah “Kompleksitas Algoritma Untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy”[1]. Pada penelitian ini dijelaskan tentang Kompleksitas algoritma untuk penyelesaian persoalan penukaran koin dengan algoritma greedy apabila nilai pecahan koin sudah terurut mengecil adalah O(n) dengan kompleksitas waktu T(n) = 5n. Apabila algoritma untuk penyelesaian persoalan penukaran koin dengan algoritma greedy adalah O(n2) dengan kompleksitas waktu T(n) = 5n +(n2– n)/2[1].
Ko nfe re nsi Na sio na l Ilm u Ko m pute r (KO NIK) 2014 ISSN : 2 338- 2 89 9
dibandingkan Greedy by Profit ataupun Density untuk memperoleh keuntungan yang maksimal[2].
Penelitian terkait lainnya adalah “Analisis Penerapan Algoritma Greedy Pada Permainan Capsa”[3]. Pada penelitian tersebut membahas tentang Algoritma Greedy ternyata memberikan hasil yang cukup baik di Permainan Capsa dengan modus single, namun kurang begitu bagus saat diubah ke modus kombinasi. Hal ini disebabkan oleh semakin banyaknya hal yang harus dipertimbangkan oleh pemain pada modus kombinasi. Sehingga dalam hal ini fungsi seleksi dari Algoritma Greedy harus diperbaiki agar lebih banyak elemen yang diperhatikan, seperti menyimpan kartu tertentu untuk dikeluarkan belakangan agar algoritma greedy dapat bekerja lebih optimal, karena semakin banyak elemen yang dipertimbangkan dalam algoritma greedy maka semakin optimal lah algoritma greedy tersebut[3].
3. Algoritma Greedy
Algoritma Greedy merupakan algoritma yang menghasilkan solusi optimum melalui penyelesaian langkah per langkah (step by step) dengan menerapkan 2 hal berikut pada tiap langkahnya[4]:
a. Pilihan yang diambil merupakan pilihan terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensinya ke depan nanti, hal ini bersesuaian dengan prinsip Algoritma Greedy yaitu “take what you can get now”[4]. b. Berharap dengan memilih pilihan terbaik saat itu
(optimum lokal/local optimum) dapat mencapai solusi terbaik dari permasalahan yang dihadapi (optimum global/global optimum). Dalam algoritma Greedy diasumsikan bahwa optimum lokal merupakan bagian dari optimum global. Sedangkan untuk aplikasinya algoritma Greedy digunakan untuk pemecahan yang memerlukan solusi[4].
3.1. Komponen Algoritma Greedy
Komponen algoritma Greedy terdiri dari : a. Himpunan Kandidat C
Merupakan himpunan yang berisi elemen pembentuk Solusi[4].
b. Himpunan Solusi S
Himpunan yang berisi elemen solusi pemecahan masalah[4].
c. Fungsi Seleksi
Fungsi yang memilih kandidat yang paling memungkinkan dari Himpunan Kandidat untuk dimasukkan ke dalam himpunan solusi agar solusi optimal terbentuk. Kandidat yang sudah terpilih pada suatu langkah tidak akan dipertimbangkan lagi pada langkah selanjutnya[4].
d. Fungsi Kelayakan
Fungsi yang memeriksa apakah suatu kandidat yang terpilih akan menimbulkan solusi yang layak, yaitu kandidat tersebut, bersama dengan himpunan solusi yang terpilih tidak akan melanggar kendala yang berlaku pada masalah[4].
e. Fungsi Obyektif
Fungsi yang memaksimalkan atau meminimalkan nilai solusi[4].
3.2. Skema Umum Algoritma Greedy
Berikut adalah skema secara umum dari penggunaan Algoritma Greedy[1].
Ko nfe re nsi Na sio na l Ilm u Ko m pute r (KO NIK) 2014 ISSN : 2 338- 2 89 9
perhitungan untuk sebuah kemungkinan solusi saja sedangkan pada program dinamis akan dilakukan perhitungan untuk banyak kemungkinan solusi[1].
3.3. Algoritma Greedy Penukaran Nominal Mata Uang Rupiah.
Terdapat beberapa nominal mata uang Rupiah dalam bentuk kertas yaitu Rp.100.000.,- Rp.50.000,.- Rp.20.000,.- Rp.10.000,.- Rp.5.000,.- Rp.2.000,.- dan Rp.1.000,.- Misalnya terdapat R nilai uang yang akan ditukar dengan himpunan uang adalah {u1,u2,u3, … ,un} dan himpunan solusi X={x1,x2,x3, … , xn} dimana xi = 1 jika dipilih dan xi = 0 jika tidak dipilih[1].
Maka objektif persoalan diatas adalah minimisasi F = (fungsi obyektif)
dengan kendala F = ∑ =
Hal yang paling utama dalam menyelesaikan persoalan dengan menggunakan algoritma greedy adalah setiap angkah dari algoritma dilakukan pemilihan nominal uang rupiah dengan nilai terbesar dari himpunan uang yang tersisa. Berikut merupakan algoritma greedy untuk menyelesaikan persoalan tersebut[1].
(input J : himpunan_uang, R: integer)
Deklarasi
S : himpunan_uang x : uang
Algoritma
S ← {}
while (Σ(nilai semua uang di dalam S) ≠ R) and (J ≠ {} ) do
x ← uang yang mempunyai nilai terbesar J ← J - {x}
if (Σ(nilai semua uang di dalam S) + nilai uang x ≤ A then
S ← S ∪ {x} endif
endwhile
if (Σ(nilai semua uang di dalam S) = R then return S
else
write(’Uang Tidak Ada’) endif
Algoritma Greedy diatas hanya dapat digunakan pada nominal mata uang dari besar ke kecil. Untuk menyelesaikan masalah penukaran nominal mata uang ini perlu ditambahkan satu algoritma sorting untuk menangani nominal mata uang yang belum terurut sebagai berikut[1] :
procedure Sort(input/output J : himpunan_uang, n : integer)
Deklarasi
Hold,k,i : integer
Algoritma
for k←0 to n-1 do for k←0 to n-2 do if Jk+1 < Jk+2 then hold←Jk+1 Jk +1← Jk +2 Jk +2←hold endif endfor endfor
Jumlah operasi perbandingan elemen pada algoritma sorting diatas dijelaskan sebagai berikut.
Untuk setiap pass ke-k,
k = R–2 → jumlah perbandingan = n – 1 k = R–1 → jumlah perbandingan = n – 2 k = n– 2 → jumlah perbandingan = n – 3 k = 2 → jumlah perbandingan = 1
Jumlah seluruh operasi perbandingan elemen-elemen larik adalah
T(n) = (n–1)+(n–2)+…+1
= n−k = −1 2
Sedangkan jumlah operasi pertukarannya untuk setiap i dari 1 sampai n – 1, terjadi satu kali pertukaran elemen, sehingga jumlah operasi pertukaran seluruhnya adalah
T(n) = n – 1.
Jadi, algoritma pengurutan seleksi membutuhkan n(n–1 )/2 buah operasi perbandingan elemen dan n–1 buah operasi pertukaran. Menjadikan nilai
T(n) = (n2– n)/2
Karena nilai T(n) = (n2– n)/2, maka didapati nilai O(n2).
Maka untuk penyelesaian persoalan penukaran uang yang belum terurut mengecil kompleksitas waktu
T(n) = 5n +(n2– n)/2
Hal tersebut menjadikan nilai
Ko nfe re nsi Na sio na l Ilm u Ko m pute r (KO NIK) 2014 ISSN : 2 338- 2 89 9
4. Hasil dan Analisis Algoritma
Pada penerapan Algoritma Greedy untuk penukaran nominal mata uang rupiah ini masih dalam tahap penelitian. Dimana proses dari algoritma ini diselesaikan menggunakan bahasa basic dengan tools Bascom AVR. Algoritma Program yang dibuat tersebut kemudian di compiler untuk dapat dimasukkan kedalam mikrokontroler.
Hasil dari analisis algoritma ini kemudian diharapkan dapat memberikan solusi untuk memecahkan masalah penukaran nominal mata uang Rupiah dari besar ke kecil.
Proses pemilihan nominal mata uang yang akan ditukarkan adalah berdasarkan input tombol pilihan yang digunakan oleh user. Setelah pengguna memilih nominal maka mikrokontroler akan menjalankan algoritma greedy ini untuk memilih nominal mata uang yang akan ditukarkan dari nominal besar ke kecil. Berikut gambar interface tools dari Bascom AVR yang digunakan untuk membuat program.
Gambar 1. Tools Interface Bascom AVR
Setelah program tersebut dibuat menggunakan Bascom AVR kemudian dicompiler menjadi bahasa mesin agar dapat diolah oleh mikrokontroler. Proses memasukkan program yang telah compiler ke mikrokontroler adalah menggunakan aplikasi Khazama AVR Programmer.
Gambar 2. Tools Khazama AVR Programmer
5. Kesimpulan
Algoritma Greedy merupakan algoritma yang dapat digunakan untuk menentukan jalur terpendek dengan tanpa melihat kondisi kedepannya. Penerapannya pada sistem penukaran nominal mata uang rupiah ini adalah diproses pengolahan data pada mikrokontroler yang sedang dalam tahap penelitian. Dengan menggunakan Algoritma Greedy yang telah dirancang ini diharapkan dapat memberikan solusi mengenai Sistem Penukaran nominal mata Uang Rupiah dari besar ke kecil.
6. Daftar Pustaka
[1] Dita Anindhika, “Kompleksitas Algoritma Untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy”, Program Studi Teknik Informatika, Institut Teknologi Bandung. [2] Dian Rachmawati, dkk, “Implementasi
Algoritma Greedy Untuk Menyelesaikan Masalah Knapsack Problem” Jurnal Ilmiah Saintikom ISSN.1978-6603
[3] Vandy Putrandika, “Analisis Penerapan Algoritma Greedy Pada Permainan Capsa” Jurusan Teknik Informatika, Institut Teknologi Bandung.