## DESAIN KONTROL VENDING MESIN BERBASIS FPGA DENGAN FINITE STATE MACHINE

## Alfie Syahri
Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat alfie_syahri89@yahoo.com

## Abstrak
Vending  machine  merupakan  sebuah  alat  yang  digunakan  untuk  menjual  sesuatu secara  otomatis,  Seperti  yang  banyak  ditemukan  sekarang  ini  adalah  vemding mesin yang menjual makanan ringan minuman ringan, minuman ringan dan tiket kereta api. Desain sistem kontrol vending mesin berbasis FPGA merupakan sebuah alternatif cara pembuatan vending mesin yang sebelumnya banyak dibuat dengan menggunakan  mikrokontroler  sebagai  pengendali  nya  ,akan  tetapi  terkesan  tidak fleksibel  jika  ada  penambahan  atau  pengubahan  struktur  modul,  oleh  karena  itu dengan  menggunakan  pendekatan  Finite  State  Machine  (FSM)  yang menggambarkan perilaku suatu sistem  kedalam state atau keadaan, akan desain dibuat  sistem  kontrol  vending  mesin  dengan  menggunakan  model  FSM  ini.  State atau  keadaan  pada  model  ini  akan  berpindah  ke  state  lain    jika  ada  suatu  input yang berasal dari dalam ataupun dari luar sistem. State – state yang digambarkan pada  finite  state  mesin  tersebut  dapat  membantu  dalam  perancangan  sistem kontrol vending mesin dan mempermudah proses pembuatan modulnya.
Kata Kunci : Vending mesin, FPGA, Finite State Machine

## DESIGNING AN FPGA-BASED VENDING CONTROL SYSTEM USING FINITE STATE MACHINE

## Abstract
Vending  machine  is  a  tool  used  to  sell  things  automatically.  As  found  nowadays, there  are  vending  machines  that  sell  snacks,  soft  drinks,  and  train  tickets.  The design  of  FPGA  based  vending  control  system  is  an  alternative  way  of  making machine vending which previously made by using microcontroller as its controller. However,  it  seems  that  it  needs  inovations,  in  which  there  is  addition  or modification  of  module  structure  using  Finite  State  Machine  approach  (FSM) which describes the behavior of a system into a state. The design that will be made using this FSM model. The state of this model will move to another state if there is an  input  coming  from  inside  or  outside  the  system.  The  states  represented  in  the finite state of the machine will be able to assist the design of the machine's vending control system and facilitate the module-making process.
Keywords : Vending machine, FPGA, Finite State Machine

## PENDAHULUAN
Vending machine merupakan mesin penjual  otomatis  yang  digunakan  untuk menjual  barang,  semua  proses  yang  di- lakukan vending mesin merupakan timbal balik  dari  pengguna  vending  mesin  ter- sebut,  banyak  di  negara-negara  maju sudah banyak berkembang berbagai jenis vending  mesin,  di  Indonesia  pun  ter- dapatvending  mesin  tetapi  terbatas  men- jual  beberapa  jenis  barang  diantaranya makanan  ringan,  minuman  ringan,  tetapi vending  mesin  tersebut  tidak  dlengkapi dengan Money  Changer .  Maka  dari  itu untuk  memberikan  inovasi  pengem- bangan pada vending mesin dengan tam- bahan  fasilitas  uang  kembali  sehingga jenis  uang  yang  digunakan  dapat  ber- variasi. Untuk mendesain atau merancang vending mesin ini diperlukan pembangu- nan  logika  yang  digunakan  untuk  me- nentukan kerja proses vending mesin ter- sebut,  maka  digunakanlah  suatu  pende- katan  yang  digunakan  yaitu  Finite  state machine atau Finite automata.

## METODE PENELITIAN

## Finite State Machine (FSM)
Finite  State  Machine  (FSM)  meru- pakan  sebuah  metodologi  perancangan sistem  kontrol  yang  menggambarkan tingkah  laku  atau  prinsip  kerja  sistem dengan  menggunakan  tiga  hal  berikut: State  (Keadaan),  Event  (kejadian)  dan
action  (aksi).  Sistem  dapat  beralih  atau bertransisi  menuju  state  lain  jika  men- dapatkan  masukan  atau  event  tertentu, baik yang berasal dari perangkat luar atau komponen  dalam  sistemnya  itu  sendiri (misal  interupsi  timer).  Aksi  yang  di- lakukan  tersebut  dapat  berupa  aksi  yang sederhana  atau  melibatkan  rangkaian proses yang relative kompleks. Berdasar- kan  sifatnya,  metode  FSM  ini  sangat cocok  digunakan  sebagai  basis  peran- cangan  perangkat  lunak  pengendalian yang bersifat reaktif dan real time.

## State Diagram
Diagram  keadaan  pada  dasarnya merupakan salah satu bentuk representasi dari  FSM.  Diagram  ini  secara  visual menggambarkan  tingkah  laku  yang  di- miliki oleh sistem kontrol yang kompleks kedalam bentuk yang lebih sederhana dan relative  mudah  dipahami.  State  diagram pada dasarnya dibentuk dengan beberapa komponen, yaitu : Initial state, state, final state,  dan  transisi.  Dalam  diagram  ini, state-state  yang  terdapat  pada  sebuah sistem  digambarkan  sebagai  lingkaran yang diberi label unik, sedangkan transisi state yang diakibatkan oleh event tertentu direpresentasikan  sebagai  anak  panah yang berasal dari state yang ditinggalkan menuju  state  yang  aktif.  Untuk  lebih jelasnya dapat dilihat pada gambar 1.
Gambar 1: State Diagram
Diagram  tersebut  memperlihatkan FSM dengan dua buah state dan dua buah input  serta  empat  buah  aksi  output  yang berbeda  :  seperti  terlihat  pada  gambar, ketika  sistem  mulai  dihidupkan,  sistem akan  bertransisi  menuju  state0,  pada keadaan  ini  sistem  akan  menghasilkan Action1 jika terjadi masukan Event0, se- dangkan  jika  terjadi  Event1  maka Action2  akan  dieksekusi  kemudian  sis- tem  selanjutnya  bertransisi  ke  keadaan State1  dan  seterusnya.  Untuk  lebih jelasnya dapat dilihat pada gambar 2.
Gambar  3  memperlihatkan  bahwa rangkaian  terdiri  dari  komponen    kom- binasional  dan  komponen  sequensial,
komponen  terdiri  dari  memori  yang  di- picu oleh flip-flop, yang berfungsi mere- kam keadaan dan memperbaharui memo- ri  secara  serempak  ketika  pemicu  clock dalam keadaan tinggi.

## Output Forming Logic
Output  forming  logic hampir  sama dengan translasi pada counter akan tetapi Output  forming  logic mempunyai  fungsi lebih untuk perancangan yang glitch-free dan digunakan untuk masukan yang lebih kompleks  ke  suatu  dekoder  yang  meru- pakan basis rangkaian digital berdasarkan output.
Gambar 2: Bentuk Umum dari Finite  state Mesin
Gambar  3: Rangkaian pembangkit pulsa OFL

## FPGA
Field-Programmable  Gate  Array (FPGA) komponen elektronika dan semi- konduktor  yang  mempunyai  komponen gerbang  terprogram  (programmable  lo- gic) dan sambungan terprogram. Kompo- nen  gerbang  terprogram  yang  dimiliki meliputi  jenis  gerbang  logika  biasa (AND,  OR,  XOR,  NOT)  maupun  jenis fungsi matematis dan kombinatorik yang lebih kompleks (decoder, adder, subtract- tor, multiplier, dll). Blok-blok komponen di  dalam  FPGA  bisa  juga  mengandung
elemen memori (register) mulai dari flip- flop sampai pada RAM (Random Access Memory).

## Perancangan dan Implementasi

## Identifikasi Spesifikasi
Identifikasi  spesifikasi  dibuat  untuk menentukan kegiatan yang ada pada vending mesin  penjual  barang,  dan  merubah  nya menjadi  symbol  yang  lebih  pendek,  dalam hal  ini  barang  yang  dijual  adalah  rokok, dapat kita lihat pada tebel  berikut:
Tabel 1: Tabel Spesifikasi (input dan output)
Input Symbol Output Symbol Tidak ada Kegiatan TA Tampil Main Menu MU Tombol Menu Menu Tampil Menu Merek Rokok MB Tombol Start Menu MA Uang Keluar V Tombol Cancel X Uang Kembalian O Tombol Enter En Mengeluarkan Rokok ke Keranjang SC Uang Pas Pas Tampil Menu pilihan merek Sampoerna Mild Br_SM Uang Lebih Lbh Tampil Menu pilihan merek Gudang Garam Filter Br_GGF Uang Kurang Krg Tampil Menu pilihan merek Jarum Super Br_JS Masukan  uang kertas Rp 5.000,- pay_5 Tampil Menu pilihan merek Class Mild Br_CM Masukan  uang kertas  Rp 10.000,- pay_10 Tampil Menu pilihan merek Ji Sam Soe Br_JSS Masukan  uang kertas  Rp 20.000,- pay_20 Masukan  uang kertas Rp 50.000,- pay_50 Masukan  uang kertas Rp 100.000,- pay_100 Pilih Merek Rokok Sampoerna Mild SM Pilih Merek Rokok Gudang Garam Filter GGF
Input Symbol Output Symbol Pilih Merek Rokok Jarum Super JS Pilih Merek Rokok Class Mild CM Pilih Merek Rokok Ji Sam Soe JSS

## IDENTIFIKASI KEADAAN
Berikut  ini  adalah  semua  keadaan yang  mungkin  terjadi  pada  proses  kerja vending  mesin  ini  dan  dibuat  menjadi bagan state:
State a (00000) :
1. Tidak  ada  aktifitas,  kembali  ke  state a
2. Tampil initial menu (Pilihan merek), lanjut ke state b State b (00001) :
1. Tidak  ada  aktifitas,  kembali  ke  state b
2. Pilih  merek  rokok  Sampoerna  Mild, lanjut ke state c
3. Pilih  merek  rokok  Gudang  Garam Filter, lanjut ke state d
4. Pilih  merek  rokok  Jarum  super, lanjut ke state e
5. Pilih merek rokok Class Mild, lanjut ke state f
6. Pilih merek rokok Ji Sam Soe, lanjut ke state g State c (00010) :
1. Tidak  ada  aktifitas,  kembali  ke  state c
2. Tekan  tombol  Menu,  kembali  ke state a
3. Pilih  1,  tampil  isi  menu  Sampoerna Mild, lanjut ke state h
State d (00011) :
1. Tidak  ada  aktifitas,  kembali  ke  state d
2. Tekan  tombol  Menu,  kembali  ke state a
3. Pilih  1,  tampil  isi  menu  Gudang Garam Filter, lanjut ke state h State e (00100) :
1. Tidak  ada  aktifitas,  kembali  ke  state e
2. Tekan  tombol  Menu,  kembali  ke state a
3. Pilih 1, tampil isi menu Jarum Super, lanjut ke state h
State f (00101) :
1. Tidak  ada  aktifitas,  kembali  ke  state f
2. Tekan  tombol  Menu,  kembali  ke state a
3. Pilih  1,  tampil  isi  menu  Class  Mild, lanjut ke state h State g (00110) :
1. Tidak  ada  aktifitas,  kembali  ke  state g
2. Tekan  tombol  Menu,  kembali  ke state a
3. Pilih 1, tampil isi menu Ji Sam Soe, lanjut ke state h
State h (00111) :
1. Tidak  ada  aktifitas,  kembali  ke  state h
2. Tekan  tombol  Menu,  kembali  ke state a
3. Masukan  uang  Rp.  5000,  kemudian lanjut ke state i
4. Masukan uang Rp. 10000, kemudian lanjut ke state i
5. Masukan uang Rp. 20000, kemudian lanjut ke state i
6. Masukan uang Rp. 50000, kemudian lanjut ke state i 7. Masukan uang Rp. 100000, kemudian lanjut ke state i State i (01000) :
1. Tidak ada aktifitas, kembali ke state i
2. Tampil  menu  “Transaksi  Anda”  jika menekan enter, lanjut ke state j
3. Tampil  menu  “Transaksi  Anda”  jika menekan cancel, lanjut ke state k
State j (01001) :
1. Tidak ada aktifitas, kembali ke state j
2. Menekan cancel, kemudian lanjut ke state k
3. Jika  uang  lebih,  kemudian  lanjut  ke state l
4. Jika  uang  pas,  kemudian  lanjut  ke state m
5. Jika uang kurang, kemudian lanjut ke state h
State k (01010) :
1. Uang  keluar  (transaksi  dibatalakan), kembali ke state a
State l (01011) :
2. Uang kembali keluar, kemudian lanjut ke state m State m (01011) :
3. Rokok  keluar  ke  keranjang  output, kembali ke state a

## DIAGRAM KEADAAN
Dari  keadaan-keadaan  yang  di  tu- liskan  pada  identifikasi  keadaan,  maka dapat  digambarkan  diagram  keadaan seperti pada gambar 4.
Gambar 4: Diagram Keadaan
Gambar 5: Diagram Keadaan(lanjutan)
D A D B D C D D D E MB↑DSB↓SE MU↑DSB↓SE SAM↑DSB↓SE MU↑DSB↓SE GGFIL↑DSB↓SE MU↑DSB↓SE JARSUP↑DSB↓SE
MU↑DSB↓SE
CLML↑DSB↓SE
MU↑DSB↓SE
JiSSoe↑DSB↓SE Br_JSS Br_JSS
MU↑DSB↓SE
X En 0 0 0 0 0
V↑DSB↓SE
0 1
1 0 0 O↑DSB↓SE 0 0 0 0 0 SC↑DSB↓SE 0 X'+Pas'+Lbh'+k rg' +X+Pas+Lbh Pas+Krg X+Lbh+Krg X'+Pas'+Lbh'+Krg'+ Lb h+Krg Pay_5'+Pay_10'+Pay_2 0'+Pay_50'+Pay_100'+ Menu' Pay_5'+Pay_10'+Pay_
20'+Pay_50'+Pay_10 0'+Menu'+ Pay_5+Pay _10+Pay_20+Pay_50+
Pay_100
0 X'+En' +X 0 Pay_5'+Pay_10'+Pay_2 0'+Pay_50'+Pay_100'+ Menu' 0 Pay_5+Pay_10+ Pay_20+Pay_50 +Pay_100 0 0 0 0 Br_SM'+Br_GGF'+Br_JS' +Br_CM'+Br_JSS'+Men u'+Br_JSS Br_SM'+Br_GGF'+Br_JS' +Br_CM'+Br_JSS'+Men u'+Br_JS 0 0 Br_JS Br_JS Br_SM'+Br_GGF'+Br_JS' +Br_CM'+Br_JSS'+Men u'+Br_CM Br_CM Br_CM Br_SM'+Br_GGF'+Br_JS '+Br_CM'+Br_JSS'+Men u'+ Br_SM Br_SM 0 0 Br_SM'+Br_GGF'+Br_JS
'+Br_CM'+Br_JSS'+Men u'+ Br_GGF
Br_SM Br_SM'+Br_GGF'+Br_J S'+Br_CM'+Br_JSS'+M enu'+ Br_GGF 0 Br_GGF 0 OFL IFL 0 0 SM '+ GGF '+ JS '+ CM '+ JSS '+GGF+CM SM+GGF+JSS JS+CM+JSS 0 MA 0 0 0 Tabel 2: Hasil tabel kebenaran IFL dan OFL Tabel 3: Tabel kebenaran DA Flip-Flop ABCD
E 000 001 011 010 110 111 101 100 00 0 0 0 0 X X X X 01 0 0 X 0 X X X X 11 0 0 X 0 X X X X 10 0 0 X 0 X X X X Tabel 4 : Tabel Kebenaran DB Flip-flop AB CDE 000 001 011 010 110 111 101 100 00 0 0 0 X ̅ + E ̅ n + X X X X X 01 0 0 X 0 X X X X 11 0 Pay_5 + Pay_10 + Pay_20 + Pay_50 + Pay_100 X 1 X X X X 10 0 0 X X ̅ + P ͞ as + L ͞ bh + K ͞ rg + X + Pas + Lbh X ̅ + E ̅ n + X X X X X
Gambar 6. Penyederhanaan Tabel

## KONFIGURASI  INPUT  FORMING LOGIC (IFL)
Dengan  melakukan  penyederhana- an  yang  dilakukan  dengan  menggunakan Karnough Map(K-Map) maka akan dipe- roleh  persamaan  Input  Forming  Lo-gic (IFL),  yaitu  input  pada  D  Flip-flop.  Se- lain D Flip-flop dapat juga dipergunakan JK  Flip-Flop.  Untuk  membuat  sistem vending  machine  ini  dipergunakan  D Flip-flop  karena  lebih  mudah  dimple- mentasikan dalam merancang sistem. Ta- bel  3  merupakan  hasil  persamaan  yang diperoleh  berdasarkan  truth  table  untuk DA  dan  DB  flip-flop.  Penyederhanaan
Tabel dengan menggunakan Keymap  pa- da gambar 6.

## OUTPUT FORMING LOGIC
Dalam membentuk Output Forming Logic (OFL) ini dipilih sinyal ↑ DSB ↓ SE karena  rangkaian  yang  dihasilkan  oleh Output  Forming  Logic  ini  sederhana, yaitu  hanya  mempergunakan  gerbang AND,  Selanjutnya  menentukan  persa- maan  rangkaian  Output  Forming  Logic berdasarkan hasil dari truth table. Berikut ini merupakan rangkaian Output Forming Logic  yang  dibuat  dari  persamaan  rang- kaian  Output  Forming  Logic  yang  telah diketahui sebelumnya pada tabel 6.
Gambar 6: OFL Menu Utama
Gambar 7:  OFL Menu Brand

## Gambar 8: OFL Uang Keluar

## SKEMATIK EDITOR
Persamaan  yang  diperoleh  dari Input  Forming  Logic(IFL)  dan  Output Forming Logic digambar pada schematic editor  Xilinx  ISE  9.2i.  setelah  itu  ha- silnya disimulasikan dan di analisa.

## HASIL & PEMBAHASAN

## SYNTHESIS REPORT
Desain  sistem  kontrol  mesin penjual  ini  dibuat  dengan  pendekatan modular  untuk  memperoleh  fleksibilitas dalam  desain  konfigurasi  dan  deteksi sumber  kesalahan.  modul  ini    yang  ke- mudian  akan  diintegrasikan,  terdiri  dari sub  modul.  Itulah  Alasan  dasar  untuk pendekatan  modular  yaitu  untuk  men- capai  kesederhanaan  desain,  dan  untuk
menghindari  kompleksitas  sistem  yang akan  menyebabkan  menghabiskan  waktu desain.  Dari  sudut  pandang  pengguna, desain  pendekatan  modular  memung- kinkan  pengguna  untuk  dengan  mudah mengubah  atau  mengkonfigurasi  data, karena  jika  pengguna  ingin  melakukan beberapa konfigurasi, mereka hanya per- lu mengacu pada modul terkait dan tidak perlu mengubah seluruh desain sistem.
Modul-modul  yang  dibuat  pada desain  ini  ialah  modul  “Menu  Utama”, modul “Menu Brand”, modul “IFL”, mo- dul  “Uang  Kembali”,  modul  “Uang Keluar”,  modul  “Brand  Menu”  dan  mo- dul  “Barang  Keluar  yang  kemudian  di gabung kan menjadi satu modul besar se- perti pada gambar 9.
Gambar 9: Modul Gabungan

## Testing Skenario
Testing  skenario  pada  sistem  kon- trol  vending  mesin  ini  akan  dibuat  3. skenario.  Testing  skenario  ini  berisi  ke- jadian  yang  mungkin  terjadi  pada  sistem kontrol  vending  mesin  ini.  (1)  Skenario pertama seperti pada gambar 10. Gambar 10  menjelaskan  alur  dari  sistem  kontrol vending  mesin  yang  sedang  melakukan
transaksi  dari  awal  hingga  barang  yang dibeli keluar.
Skenario  berikut  diasumsikan  de- ngan  keadaan  vending  mesin  ketika  di- berikan  inputan  uang  kurang.  Dapat  di- lihat  pada  gambar  11.  Skenario  ke  di- asumsikan  dengan  keadaan  vending  me- sin  ketika  diberikan  inputan  uang  lebih.
Gambar 10: Skenario Pertama
Gambar 11: Skenario Kedua
Gambar 12: Skenario ketiga

## ANALISA SISTEM
Berdasarkan  skenario  yang  dibuat maka  dapat  dilihat  hasil  dari  simulasi
tersebut  dan  digambarkan  dengan  input dan  output  dibawah  ini.  Hasil  simulasi masing  –  masing  skenario  dapat  dilihat pada gambar 13, 14 dan 15.
Gambar 13: Simulasi Skenario Pertama
Gambar 14: Simulasi Skenario Kedua
Gambar 15: Simulasi Skenario Ketiga

## KESIMPULAN DAN SARAN
Desain  kontrol  vending  mesin  ini dibuat untuk meningkatkan kualitas pela- yanan  yang  diberikan  kepada  pembeli dan  menambah  nilai  guna  dari  vending mesin yang telah ada sebelumnya dengan menambahkan  sistem  money  changer, dan  mengatasi  ketidak  fleksibelan  dari penggunaan mikrokontroler sebagai kom- ponen utama dari vending mesin. Sistem kontrol  hanya  dibuat  berdasarkan  simu- lasi  pada  software,  tidak  sampai  dimple- mentasikan  kepada  level  hardware.  Oleh karena  itu  untuk  kedepannya  dapat  di- kembangkan  hingga  level  hardware  dan dapat dijalankan pada board FPGA, agar dapat  diaplikasikan  kedalam  model  yang nyata.

## DAFTAR PUSTAKA
[1]  Anonim,  “Output  Forming  Logic”, Universitas Gunadarma.
[2]  Anonim,  “Tutorial  on  FPGA  Design Flow  based  on  Xilinx  ISEWebpack and ModelSim”.
[3] Anonim, “Gates and flip-flops,” 2007.
ECE 2B Winter Lab 6.
[5]  Anonim,  “State  diagram.” http:// visualcase.com/base/statediagr am.htm , access on November 2011.
[6] E. R. F., “Designing and constructing a  vending  machine  for  offices  using microcontroller,”  Master’s  thesis, Swiss  German  University,  Bumi Serpong  Damai,  Island  of  Java, Indonesia, July 2006.
[7]  I.  H.  S.  .MT,  “Perancangan  sistem digital  menggunakan  simulator  xi- linx.” 2005.
[8]  L.L.U.  Gunadarma  “Modul  Panduan FPGA.” 2010
[9]  P.  Jenkins  and  P.  Mazumder,  “Finite state  machine  design  a  vending machine,”tech.  rep.,  University  of Michigan,  2000.  EECS  270:  Intro- duction to Logic Design.
[10]  R.  H.  Katz,  “Finite  State  Machine Design”.
[11]  R.U.  Priska  “Designing  Of  Elec- tronic  Voucher  Vending  Machine Control  System  Based  On  FPGA”, 2012.
[12]  S.  Lailis  dan  P.  M.  Yance,  “Disain Dan  Implementasi  Rangkaian  Elek- tronika”.
[13]  V.  A.  Pedroni,  Circuit  Design  with VHDL.  London,  England:  MIT Press, 2004.