MESIN AUTOMATA PENJUALAN
BUKU TULIS
SERBA Rp.5.000,-
OLEH :
§
TRISMAN
HERI ARIFIN (1229542065)
§
ZULKIFLI
(1229542089)
KELAS PTIK 06 2012
PRODI PENDIDIKAN TEKNIK
INFORMATKA DAN KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2014
Buatlah
SOFTWARE MESIN AUTOMATA dengan menggunakan bahasa PASCAL dengan ketentuan
sebagai berikut :
1. Uraikan
dalam pendahuluan, software mesin automata apa yang akan dibuat?
2. Gambarkan
diagram dan tabeltransisi, DFA software mesin automata tersebut?
3. SOFTWARE
MESIN AUTOMATA DFAtersebut minimal memiliki 5 state
4. Selanjutnya
aplikasikan kedalam pemrograman PASCAL software tersebut
Jawaban:
Mesin penjualan buku tulis ini adalah suatu mesin otomatis
untuk mengeluarkan buku tulis dengan harga Rp.5.000,-, dimana dalam hal ini pembeli
hanya memasukan uang ke dalam
mesin dan mesin akan membaca jumlah uang yang masuk dan kemudian memutuskan
bahwa uang yang di masukan oleh pembeli cukup atau tidaknya untuk mengeluarkkan
roti. Dimana mesin ini sendiri telah di berikan aturan bahwa buku
tulis adalah
Rp.5000. Mesin automata ini hanya dapat membaca jenis uang kertas, Rp.1000(A),
Rp.2000(B),Rp.5000(X). $=
tombol untuk mengeluarkan buku tulis. Dan kemungkinan-kemungkinan
yang dapat terjadi dalam proses tersebut digambarkan dalam diagram state
berikut:
State
diagram:
Keterangan:
A=Rp.1000
B=Rp.2000
X=Rp.5000
$= untuk mengeksekusi program
State tabel:
|
Current
state
|
Input
|
Tekan
tombol ($)
|
||
|
Rp.100
|
Rp.200
|
Rp.500
|
||
|
(n)
|
(d)
|
(q)
|
||
|
0
|
1
|
2
|
5
|
0
|
|
1
|
2
|
3
|
6
|
1
|
|
2
|
3
|
4
|
6
|
2
|
|
3
|
4
|
5
|
6
|
3
|
|
4
|
5
|
6
|
6
|
4
|
|
5
|
6
|
6
|
6
|
0*
|
|
6
|
6
|
6
|
6
|
0*
|
|
Current
|
Next
State
|
|||
Penuliasan
program pada software aplikasi pascal:
|
program automata;
uses crt;
var
A,B,X,harga,temp : longint;
input : char;
label jump1, jump2, jump3,
jump4, mulai;
BEGIN
mulai:
A := 1000;
B := 2000;
X := 5000;
harga := 0;
temp := 5000;
writeln('+--------------------------------------------------------------------+');
writeln('| |');
writeln('| MESIN
AUTOMATA PENJUALAN BUKU TULIS |');
writeln('| Serba Rp.5.000,- |');
writeln('|
Oleh : |');
writeln('| |');
writeln('|
TRISMAN HERI ARIFIN |');
writeln('|
(1229542065) |');
writeln('| ZULKIFLI |');
writeln('| (1229542089) |');
writeln('|
PTIK 06 2012 |');
writeln('| |');
writeln('+---------------------------------------------------------------+',
#13#10);
writeln('Uang kertas yang dapat di-input adalah :');
writeln('1. Rp 1.000,-
(A)');
writeln('2. Rp 2.000,-
(B)');
writeln('3. Rp.5.000,-
(X)');
writeln(#13#10, 'Harga roti adalah Rp 5.000,-',
#13#10);
jump1 :
write('Silahkan masukkan kode input : ');
readln(input);
if (input = 'A') then
harga := harga + A
else if (input = 'B') then
harga := harga + B
else if (input = 'X') then
harga := harga + X
else if
(input = 's') then
if (harga < 5000) then
goto jump2
else if (harga > 5000) then
goto jump3
else if
(harga=5000) then
goto jump4;;;
while harga<>0 do
begin
if (input = 'A') then
temp := temp - A
else if (input = 'B') then
temp := temp - B
else if (input = 'X') then
temp := temp - X;
if (temp < 0) then
temp := 0;
writeln(#13#10, 'Uang yang
telah dimasukkan : ', harga);
writeln('Pembayaran tersisa :
', temp, #13#10);
goto jump1;
end;
jump2:
writeln(#13#10,
'-----------------------------------------------');
writeln('Transaksi pembayaran belum cukup.
Mesin akan direset dan uang akan dikeluarkan.');
writeln('Uang yang dikembalikan sebesar :
Rp ', harga, ',-');
writeln('silakan
ambil uang anda!');
writeln('terima kasih');
readln();
clrscr();
goto mulai;
jump3:
writeln(#13#10, '----------------------------------------------------');
writeln('Anda telah melakukan pembelian
dengan pembayaran sebesar : Rp ', harga, ',-');
harga := harga-5000;
writeln('Sisa uang : Rp ', harga, ',-');
writeln(#13#10, 'silakan ambil uang kembalian dan buku tulis Anda');
writeln
(#13#10, 'Terima Kasih telah membeli');
readln();
clrscr();
goto mulai;
jump4:
writeln(#13#10,
'-------------------------------------------------------');
writeln('Anda telah melakukan pembelian
dengan pembayaran sebesar : Rp ', harga, ',-');
harga := harga-5000;
writeln('pembayaran anda tidak memiliki
Sisa uang');
writeln(#13#10, 'silakan ambil buku tulis Anda');
writeln (#13#10, 'Terima Kasih telah
membeli');
readln();
clrscr();
goto mulai;
END.
|
Pengaplikasian
dalam pascal
a) Penulisan program
b) Tampilan awal setelah kita
melakukan runing dimana terdapat pilihan koin yang dapat
dimasukan ke dalam mesin automata roti
c) Beberapa kemungkinan jika memasukkan
jumlah uang yang pas
1) AAAAA
2) BAAA
3) X
4) AABA
5) ABB
6) BAB
7)
BBA
d) Beberapa kemungkinan dengan memasukkan
uang yang lebih
1)
yxz
2)
Xz
3)
yz
4)
xxz
5)
Xyxy
6)
Xxxz
7)
Xxyz
8)
xxxxy
e) Beberapa kemungkinan dengan memasukkan
uang yang kurang (tidak
mencukupi)
1) X
2) Xx
3) Xxx
4) Xxxx
5) Xy
6) Yy
7) Yxx
8) Yx
9) yy

f) Tampilan jika kode yang diinputkan tidak
benar
g) Tampilan jika penginputan berhasil












