## SIMULASI VENDING MACHINE DENGAN MENGGUNAKAN MOORE MACHINE
Marla Sheilamita Shalin Pieter 1) Ismu Haidir 2)
1) Dosen Program Studi Teknik Informatika
2) Mahasiswa Program Studi Teknik Informatika Fakultas Ilmu Komputer dan Manajemen Universitas Sains dan Teknologi Jayapura

## Abstrak
Vending  Machine atau  mesin  penjaja  adalah  suatu  alat  atau  mesin  yang  menjual  barang secara otomatis. Vending Machine merupakan salah satu alat masukan (input) dan keluaran (device  output)  yang  dapat  dihubungkan  dengan  computer  (device  peripheral).  Selain  itu cara  kerja  Vending  Machine  dapat  digunakan  sebagai  contoh  pembelajaran  dalam  mata kuliah  Teori  Bahasa  Automata  (TBA)  yang  berkaitan  dengan  finite  state  machine  (FSM) dengan keluaran atau sering disebut tranducer. Penelitian ini menggunakan metode machine moore  dalam  pembuatan  simulasi  Vending  Machine  yang  menjual  minuman  kaleng.  Dan menghasilkan suatu simulasi Vending Machine yang dapat menerima masukkan berupa koin 500  dan  1000  serta  hasil  keluaran  berupa  minuman  kaleng  dan  sisa  uang  kembalian. Bahasa pemrograman yang digunakan adalah Visual Basic 6.0
Kata kunci : V ending Machine, Machine Moore, Tori Bahasa Otomata
1. PENDAHULUAN
Vending
Machine menurut sejarah ditemukan  pada  abad  pertama  oleh  seorang pahlawan  dari  Alexandria. Vending  Machine modern  pertama  kali  diperkenalkan  di  London pada  tahun  1880, Vending  Machine tersebut menjual  kartu  pos.  Sedangkan  di  Amerika, Vending  Machine  diperkenalkan  oleh  Thomas Adams Gum Company yang merupakan perusahaan  pembuat  permen  karet  pada  tahun 1888  dengan Vending  Machine untuk  menjual permen  karet.  Dan  dewasa  ini,  mesin  tersebut berkembang  pesat  di  negera  Jepang  dimana hampir  segala  kebutuhan  sehari-hari  dijual dengan menggunakn Vending Machine. Pada  mata  kuliah  Teori  Bahasa  dan
Automata (TBA) terdapat beberapa pembelajaran  yang  diajarkan  seperti finite  state automata, deterministic finite automata,
nondeterministic
finite automata yang merupakan contoh dari finite state machine with no output . Sedangkan Vending Machine merupakan  contoh  penerapat  dari finite  state machine with output .
Dalam  lingkungan  ilmu  komputer,  bahasa bertindak  sebagai  sarana  komunikasi  antara manusia dan permasalahannya dengan komputer yang dipakai untuk membantu memperoleh  pemecahan. Automata merupakan suatu  sistem yang  terdiri dari  sejumlah
berhingga status ,  dimana  setiap status tersebut menyatakan informasi mengenai input yang lalu, dan  dapat  pula  dianggap  sebagai  mesin memori. Input pada  mesin Automata dianggap sebagai bahasa yang harus dikenali oleh mesin. yang  dapat  menerima input secara  sekuensial dan dapat mengeluarkan output . Dalam V ending Machine terdapat  beberapa  aspek  yang  harus dipelajari  seperti  bagaimana  proses  dalam menjalankan vending  machine . Input pada mesin Automata dianggap sebagai bahasa yang harus  dikenali  oleh  mesin. Automata yang  lebih umum  yaitu  yang  mampu  menghasilkan string output,  dikenal  dengan  finite  state  machine  with output / Tranducer .
2. LANDASAN TEORI
a. Teori Bahasa
Bahasa  didefinisikan  di  dalam  kamus adalah suatu
sistem yang meliputi pengekspresian gagasan, fakta,
konsep,termasuk sekumpulan simbol-simbol dan  aturan  untuk  melakukan  manipulasinya. sebuah  bahasa  adalah  himpunan string-string dari  simbol-simbol  untuk  alphabet.  Bahasa adalah  kumpulan  dari string-string .  Dan  suatu bahasa  yang  tidak  terdiri  dari  string-string ,disebut  bahasa  kosong  yang  dinotasikan seperti  menuliskan  himpunan  kosong.  Bahasa kosong berbeda dengan bahasa yang terdiri dari
string  kosong.  Bahasa  juga  disebut  sebagai rangkaian simbol-simbol yang mempunyai makna.
b. Automata
Automata adalah  suatu  bentuk  yang memiliki fungsi-fungsi dari komputer digital, yaitu menerima input ,  menghasilkan output, dapat memiliki  penyimpanan  sementara,  dan  mampu membuat keputusan dalam mentransformasikan input ke output.  Automata merupakan  suatu sistem  yang  terdiri  atas  sejumlah  berhingga state ,  dimana state menyatakan  informasi mengenai input yang  lalu,  dan  dapat  pula dianggap  sebagai  memori  mesin.  I nput pada mesin automata dianggap sebagai bahasa yang harus  dikenali  oleh  mesin.  Mesin automata membuat  keputusan  yang  mengindikasikan apakah input itu  diterima  atau  tidak.sehingga mesin automata dapat dipakai untuk menghasilkan bahasa yang aturannya ditenukan oleh aturan bahasa itu.
Secara umum, Automata
dapat digolongkan  menjadi  dua,  yaitu accepter dan tranducer . Accepter ( recognizer ) adalah automata yang  akan  membuat  keputusan tentang  diterima  atau  tidaknya  suatu  masukan, sedangkan tranducer adalah accepter yang mampu menghasilkan keluaran c.  Diagram Status Transisi Automata  dapat  disajikan  dengan  diagram transisi status, dimana simpul berisi suatu status dan  busur  berisi  masuikan  simbol  yang mentransisikan  suatu  status.  Status  tersebut memiliki notasi seperti pada gambar 1.

## Gambar 1. Notasi dari Diagram Status
Ket Gambar 1:
1)  Lingkaran menyatakan state / kedudukan 2)  Label  pada  lingkaran  adalah  nama state
tersebut
3)  Busur menyatakan transisi yaitu perpindahan state /  kedudukan  (label pada busur merupakan symbol input)
4)  Lingkaran  didahului  sebuah  busur  tanpa label menyatakan state awal 5)  Lingkaran ganda menyatakan state akhir / final
d. Finite State Automata (FSA) FSA  bukanlah  mesin  fisik  tetapi  suatu model  matematika  dari  suatu  sistem  yang menerima  input  dan  output  diskrit.  FSA merupakan  mesin automata dari  bahasa regular.  Suatu  FSA  memiliki state yang
banyaknya  berhingga  dan  dapat  berpindah- pindah dari suatu state ke state lain. Perubahan state ini  dinyatakan  oleh  fungsi  transisi.  Jenis automata ini tidak memiliki tempat penyimpanan sehingga kemampuan mengingatnya terbatas.
Mekanisme  control  pada  suatu  elevator/lift adalah contoh untuk suatu automata. Mekanisme  tersebut  tidak  mengingat  semua permintaan  sebelumnya  tetapi  hanya  posisi lift saat  itu  pada  suatu  lantai,  pergerakan  ke  atas atau  bawah,dan  sekumpulan  permintaan  yang belum terpenuhi.

## e. Finite  State  Automata  With  Output  / Tranduser
Automata biasa disebut sebagai Accepter,dalam hal  ini  finite  state  accepter.mengkonstruksi sebuah  finite  state  automata  yang  memiliki keputusan    beberapa  keluaran/output  dimana automata  tersebut  akan  dikenal  sebagai  Finite State machine with output/tranduser. Finite state machine with output mempunyai 2 metode yaitu Metode  Machine  Moore  dan  Metode  Meanly Machine.  Dan  pada  penelitian  ini  menggunakan metode Machine Moore.
Finite  state  automata yang  memiliki  keputusan beberapa keluaran / output , Pada mesin Moore , output di  tentukan  dengan state.  Mesin  moore didefinisikan dalam 6 (enam) tupel, M = (Q, ∑, δ, S, Δ, λ ).
di mana: Q= Himpunan state ∑= Himpunan symbol input δ =  Fungsi transisi S = State awal Δ = Himpunan output λ = Fungsi output untuk setiap transisi
Finite State Automata with Output
/Tranducer sering  digunakan  dalam  kehidupan nyata  saat  ini.  Salah  satu  bentuk  nyata  adalah Mesin  Anjungan  Tunai  Mandiri(ATM)  yang menerima  masukan  berupa  kartu  ATM  dan keluaranya berupa uang, Contoh lainnya adalah Vending  Machine  /  Mesin  Penjaja yang menerima  masukkan  berupa  koin  (uang)  yang dimasukkan kedalam mesin kemudian keluarannya berupa minuman atau yang lain.

## 3. PENERAPAN  MOORE  MACHINE  PADA VENDING MACHINE
Dalam  perancangan Automata diagram status yang akan dipakai dalam aplikasi simulasi vending machine , dimana pada perancangan ini ditentukan state yang  akan  dipakai  untuk state awal sehingga dapat menentukan diagram yang akan digunakan dalam aplikasi vending machine serta  menentukan input dan output yang  akan dihasilkan  dan  objek  (minuman  Kaleng)  yang akan digunakan.
Contoh  :  Seorang  Konsumen  mempunyai uang  sebesar  Rp  12,000,-  dan  konsumen tersebut ingin membeli Fanta seharga 5000 dan Nescafe  seharga  6500  di Vending  Machine dengan  koin  Rp  1000,-  sebanyak  12  buah kemudian  Konsumen    menginput  koin  seribu kedalam  mesin  sebanyak  12  (dua  belas)  kali sehingga  di  dalam  mesin  terdapat  koin sebanyak Rp 12,000.
Dari  contoh  diatas  dijelaskan  kedalam bentuk  status  sehingga  dari  masukkan  awal ditentukan  status  awal  adalah  S0  dan  ketika dimasukkan  koin  lima  ratus  (Rp.  500,-)  status akan  bergeser  satu  kali  sehingga  menjadi  S1. Apabila  dimasukkan  koin  seribu  (Rp.  1000,-) maka  status  awal  akan  bergeser  dua  kali sehingga  menjadi  S2.  Jumlah  status  yang diberikan  adalah  27  status,dari  S0  sampai  S26, selanjutnya  konsumen    menginput  koin  1000 (seribu)    1  (pertama)  dari  status  awal  yaitu  S0 bergeser  ke  S2,selanjutnya  koin  2  (kedua)  dari S2  bergeser  ke  S4,selanjutnya  koin  3  (ketiga) dari  S4  bergeser  ke  S6,selanjutnya  koin  4 (keempat)  dari  S6  bergeser  ke  S8,selanjutnya koin 5 (kelima) dari S8 bergeser ke S10,selanjutnya  koin  6  (keenam)  dari  S10 bergeser  ke  S12,selanjutnya  koin  7  (ketujuh)
dari  S12  bergeser  ke  S14,selanjutnya  koin  8 (kedelapan)
dari
S14 bergeser ke S16,selanjutnya  koin  9  (kesembilan)  dari  S16 bergeser ke S18,selanjutnya koin 10 (kesepuluh) dari S18 bergeser ke
S20,selanjutnya  koin  11  (kesebelas)  dari  S20 bergeser ke S22, selanjutnya koin 12 (keduabelas) dari S22 bergeser ke S24,  apabila konsumen  memilih  minuman  fanta  dari  S24 akan  bergeser  kembali  ke  S14,  dan  apabila konsumen  memilih  pilihan  2  (kedua)  minuman Nescafe  dari  S14  akan  bergeser  kembali  ke S1,maka  sisa  koin  dalam  mesin  adalah  500 (lima) ratus sebagai kembalian belanjaan.
Apabila  dibuat  dalam  6  tupel  maka  akan dihasilkan : M = ( S, Σ, δ, S0, Δ, λ) Dimana :
S      =  {S0,  S1,  S2,  S3,  S4,  S5,  S6,  S7,  S8,  S9, S10,  S11,  S12,  S13,  S14,  S15,  S16,  S17,  S18, S19, S20, S21, S22, S23, S24, S25, S26 } Σ   ={A,B} ( A = 500 ) (B = 1000) δ   = Fungsi Transisi S0  = State Awal Δ   = {C,H} λ    = Fungsi Output Untuk Setiap State
Tabel 1. Tabel Transisi Awal
Gambar 2. Diagram Status Awal
Ket : Status awal berada pada S0                  Ket : S0 adalah status awal proses

## Tabel 2. Tabel Transisi Input koin Pertama

## Keterangan :
Inputan    koin  1000  (seribu)  yang  pertama  dari  S0  bergeser  ke  S2, output dari inputan koin 1000 (seribu) adalah 0
Gambar 3. Diagram Status inputan koin  pertama

## Keterangan  :
Menginput  koin  1000  pertama  (ke-1)  dari  status  awal  yaitu  S0 bergeser ke S2.
Setelah penginputan koin 1000 yang ke- 12,  maka akan  berada  pada  State S24. Dan apabila konsumen memilih minuman  Fanta  seharga  Rp.  5000,- maka dari  state  S24  akan  berpindah  ke state  S14  dan  apabila  dilanjutkan  pada
minuman  ke-2  yaitu  Nescafe  seharga Rp.  6500,-  maka  dari  state  S14  akan berpindah  ke  state  S1  dan  mesin  akan mengeluarkan  kedua  minuman  tersebut beserta  kembalian  Rp.  500,-    (dapat dilihat pada Tabel 3-5  dan Gambar 4).
Tabel 3. Tabel Transisi Input koin ke-12

## Keterangan:
Input  koin  1000  (seribu)  12  (keduabelas)  akan berakhir di State S24. Output dari inputan koin 1000 (seribu) 12 (kedua belas) adalah minuman fanta
Tabel 4. Tabel Transisi Input Pemilihan Minuman Pertama

## Keterangan:
Konsumen  memilih  minuman  1  (kesatu)  Fanta  maka dari  S24  akan  bergeser  kembali  ke  S14.  Output  dari memilih  minuman  pertama  Fanta  maka  dari  S24  akan bergeser ke S14.
Tabel 5. Tabel Transisi Pemilihan Minuman ke-2

## Keterangan :
Konsumen  memilih  minuman  2  (kedua)  Nescafe  maka  dari  S14 akan  bergeser  kembali  ke  S1.  Output  dari  memilih  minuman kedua Nescafe dari S14 akan bergeser kembali ke S1,maka sisa koin  dalam  mesin  adalah  500  (lima)  ratus  sebagai  kembalian belanjaan.
4. RANCANGAN APLIKASI Dalam pembuatan Simulasi Vending Machine ini,  menggunakan  flowchart  sebagai gambar  atau  bagan  yang  memperlihatkan
urutan  dan  hubungan  antar  proses  beserta instruksinya.
Gambar 6. Flowchart Simulasi Vending Machine
a.  Rancangan Antarmuka
Untuk  rancangan  antar  muka  untuk
Simulasi Vending  Machine dapat  dilihat sebagai berikut : 1)  Form Menu Utama Form ini merupakan form pertama kali  yang akan  muncul  ketika  aplikasi  dijalankan. Form  menu  utama  dapat  dilihat  pada gambar 7.
Gambar 7. Menu Utama

## 2)  Form Menu Peraturan
Form  Menu  peraturan  ini  merupakan  form tampilan  yang  berisi  peraturan –  peraturan mengenai penggunaan aplikasi simulasi vending machine .  Tombol  kembali  untuk  menampilkan kembali  form  menu  utama.  Tombol  lanjut  untuk menampilkan
form simulasi vending
machine. Form  Menu  Peraturan  dapat  dilihat pada gambar 8 .
Gambar  8. Form Menu Peraturan
. Form Menu Vending Machine Form simulasi vending machine merupakan  tampilan proses  input yang akan  menerima  masukkan  dalam  hal  ini koin. Program  input dan  tampilan program input setelah  dijalankan  dapat  dilihat  pada Gambar 9.
Mulai Input Minuman dan Peraturan Input Koin Pilih Minuman Stok Minuman Harga / Koin Keluarkan Minuman Keluarkan Minuman Kaleng / Koin Sisa Belanjaan Selesai Habis Ada Koin Lebih Koin Lebih Koin Kurang Koin Pas Koin Sisa
Gambar 9. Form Simulasi Vending Machine
Form ini terdiri dari :
a)  Tombol Input Koin

## Gambar 10. Tombol Input Koin
b)  Diagram Status

## Gambar 11. Diagram Status
c) Diagram Transisi
Gambar 12. Diagram Transisi
d)  Tombol Pilihan Minuman Merupakan tampilan untuk pengguna memilih  minuman  yang  diinginkan  sesuai dengan inputan koin.
Gambar 13. Tombol Pilih Minuman
e)  Tombol  Ambil  Kaleng  Minuman  dan  Sisa Uang

## Gambar 14. Tombol Ambil Kaleng minuman dan
sisa uang

## f) Masege Box hasil Transaksi
Tampilan  ini  merupakan  informasi  bagi pengguna untuk mengetahui hasil dari transaksi yang telah dilakukan .

## Gambar 15. Message Box Hasil Transaksi

## 3)  Form Menu Akses Administrator
Form  Akses  Administrator  merupakan  form yang  berisi  nama  admin  dan  kata  kunci  untuk dapat  meng-update  data  yang  ada  dalam aplikasi Vending Machine .
.

## Gambar 16. Form Akses Administrator

## 4)  Form Menu Admin
Form Admin merupakan form untuk mengubah ( update )data minuman, seperti harga dan stock minuman dalam Vending Machine.

## Gambar 17. Form Admin

## 6) Form Transaksi
Form  ini  merupakan  form  untuk  melihat transaksi yang terjadi pada Vending Machine.

## 5. PENUTUP
Setelah  melakukan  pengujian,  aplikasi simulasi vending  machine menggunakan moore machine, mesin  tersebut    dapat  menerima inputan  koin  500  dan  1000  dan  menghasikan output berupa  keterangan  minuman  yang  dipilih dan sisa koin yang dimasukan.

## 6.  DAFTAR PUSTAKA
Firrar  U,  2005,  Teori  Bahasa  Dan Automata , Yogyakarta.
http://fajarlusy.wordpress.com/2010/11/17/apa- itu-vending-machine/
www.wikipedia.com