SELAMAT DATANG DI BLOGku

Translate

Selasa, 09 Desember 2014

Mesin Automata Penjualan Buku Tulis Serba Rp.5.000,-

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