Pascal : Program Toko

Hasil tampilan program



   

 disini saya akan berbagi tentang membuat contoh sebuah program sederhana menggunakan bahasa pemrograman pascal. Dimana saya disini menggunakan beberapa system algoritma, seperti sistem urut, perulangan dan keputusan. Dibawah ini merupakan source code nya. Terus masala tampilan table harap di perbaiki, karena seharusnya menggunakan kode ascii. langsung aja !

program toko;      
    uses crt;      
    label      
         mulai;      
    const      
         stok=4;      
         nama_barang : array [1..stok] of string =('TV 21"', 'DVD PLAYER', 'SOUND SYSTEM', 'AMPLIFIER');      
          harga_barang: array [1..stok] of real  =(990000, 500000, 890000, 750000);      
    (* deklarasi varibel *)      
    var      
       j : real;      
       k : string;      
       nama, alamat, coba: String;      
       tanya : char;      
       barang, banyak, no, baris, kapital,i : byte;      
       total,totald, diskon, tunai, kembalian : real;      
    begin      
         clrscr;      
         textcolor(3+blink);      
         writeln('+------------------------+);      
         writeln('| Selamat datang di toko kami  |’);      
         writeln('+-----------------------------+);      
         textcolor(yellow);      
         write('Silahkan masukkan nama anda   : ');readln(nama);      
         write('Silahkan masukkan alamat anda : ');readln(alamat);      
         textcolor(white);      
         (* mengakpitalkan inputan *)      
         for kapital:= 1 to Length(nama) do      
             nama[kapital] := UpCase(nama[kapital]);      
         for kapital:= 1 to Length(alamat) do      
             alamat[kapital] := UpCase(alamat[kapital]);      
         (*prose pengkapitalan selesai *)      
         baris:=9;      
         writeln('+---+----------+-----------+’);      
         writeln('|NO |  BARANG     |    HARGA       |’);      
         writeln('+-----+-----------------+-----------------+’);      
         for no:=1 to stok do      
         begin      
         writeln('|     |                         |                        |);      
         gotoxy(3,baris); writeln(no);      
         gotoxy(8,baris); writeln(nama_barang[no]);      
         gotoxy(24,baris); writeln('Rp. ',harga_barang[no]:0:2);      
         baris:=baris+1;      
          
         end;      
         writeln('+---+--------------+-----------+‘);      
          
         mulai:      
         textcolor(yellow);      
         writeln('Silahkan pilih barang yang akan dibeli');      
         write('Dengan cara menuliskan nomor barang  : '); readln(barang);      
         (* pengujian nomor barang jika salah *)      
         if barang > stok then      
            begin      
                    delay(1000);      
                    textcolor(red);      
            writeln(' ===================================================');      
            writeln('|| Nomor barang belum tersdia silahkan di perbaiki ||');      
            writeln(' ===================================================');      
                    writeln('1. Ulangi pembelian');      
                    writeln('x. Keluar');      
            textcolor(yellow);      
                    write('Silahkan masukkan pilihan anda ? [1/X] : ');      
                    readln(coba);      
                    if coba='1' then      
                       begin      
                            Goto mulai;      
                    end;      
                    if coba='x' then      
                         begin      
                              textcolor(red);      
                              k:='Program akan menutup otomastis ...... ';      
                              for i:=1 to length(k) do      
                              begin      
                                   write(k[i]);      
                                   delay(100);      
                                   end;      
                                   delay(1000);      
                                   exit      
                         end      
         else      
             begin  textcolor(red);      
                    writeln('Anda memasukkan karakter yang salah.');      
                    k:='Program akan menutup otomastis ...... ';      
                    for i:=1 to length(k) do      
                         begin      
                         write(k[i]);      
                         delay(100);      
                         end;      
                         delay(1000);      
                    exit      
             end;      
          
          
         end      
         (* proses jika memasukkan angka barang yang benar *)      
         else       delay(1000);      
                    textcolor(yellow);      
                    write  ('Berapa unit yang akan anda beli ?    : ');readln(banyak);      
            delay(1000);      
                    writeln('--------------------------------------------------------------------');      
          
          
                    k:='Anda membeli ';      
                    for i:=1 to length(k) do      
                        begin      
                             textcolor(white);      
                             write(k[i]);      
                             delay(70);      
                        end;      
                    write(nama_barang[barang]);      
                    k:=' banyak ';      
                    for i:=1  to length(k) do      
                        begin      
                             write(k[i]);      
                             delay(70);      
                        end;      
                    writeln(banyak ,' Unit');      
                    textcolor(yellow);      
                    delay(1000);      
                    write('Apakah data diatas benar ? [Y/T] : ');readln(tanya);      
          
                    (* proses jika data sudah benar *)      
          
                    if tanya='y' then      
                       begin      
                    total := harga_barang[barang]*banyak;      
          
                            k:='Total harga barang adalah : Rp. ';      
                            for i:=1 to length(k) do      
                                begin      
                                     textcolor(white);      
                                     write(k[i]);      
                                     delay(70);      
                                end;      
                            delay(1500);      
                            writeln(total:0:0);      
          
                            textcolor(yellow);      
                    k:='Tunai / Cash              : Rp. ';      
                            for i:=1 to length(k) do      
                                begin      
                                     write(k[i]);      
                                     delay(70);      
                                end;      
                            readln(tunai);      
                            writeln('--------------------------------------------------------------------');      
                (* proses penghitungan bayaran *)      
                if total >=4000000 then      
                                     begin      
                                     textcolor(white);      
                                     diskon:=total*10/100;      
                                     totald:=total-diskon;      
                                     kembalian:=tunai-totald;      
                                     k:='Pembelian lebih dari Rp. 3.999.999, anda mendapat diskon 10%';      
                                     for i:=1 to length(k) do      
                                         begin      
                                              write(k[i]);      
                                              delay(70);      
                                         end;      
                                     writeln;      
          
          
                                     k:='Jadi total pembayaran adalah : Rp. ';      
                                     for i:=1 to length(k) do      
                                         begin      
                                              write(k[i]);      
                                              delay(70);      
                                         end;      
                                     writeln(totald:0:0);      
          
                                     k:='Kembaliannya : Rp. ';      
                                     for i:=1 to length(k) do      
                                         begin      
                                              write(k[i]);      
                                              delay(70);      
                                         end;      
                                     writeln(kembalian:0:2);      
                                     end;      
                           if total <4000000 then      
                               begin      
                               kembalian:=tunai-total;      
                               delay(1000);      
                               k:='Total pembayaran adalah : Rp. ';      
                               for i:=1 to length(k) do      
                                   begin      
                                        write(k[i]);      
                                        delay(70);      
                                   end;      
                               writeln(total:0:0);      
                               delay(1000);      
                               writeln('Kembaliannya : Rp. ',kembalian:0:0);      
                               end;      
                    end      
          
                    else if tanya = 't' then      
                    begin      
                    goto mulai;      
                    end      
                    else begin      
                    k:='Anda memasukkan karakter yang salah system akan menutup ..... ';      
                    for i:=1 to length(k) do      
                        begin      
                             write(k[i]);      
                             delay(70);      
                        end;      
                    delay(2000);      
                    exit      
                    end;      
                    delay(2000);      
                    k:='Barang akan segera dikirim ke alamat : ';      
                    for i:=1 to length(k) do      
                        begin      
                             write(k[i]);      
                             delay(70);      
                        end;      
          
                    write(alamat);      
                    k:=' Atas nama ';      
                    for i:=1 to length(k) do      
                        begin      
                             write(k[i]);      
                             delay(70);      
                        end;      
                    writeln(nama);      
                    writeln('----------------------------------------------------------');      
          
                    readln;      
    end.   

Diatas adalah source code aplikasi toko sederhana. Dimana dalam proses kerjanya, saya menggunakan beberapa fungsi atau apalah namanya. Yang pertama sayang menggunakan ARRAY yang berfungsi sabagai tempat menampung data barang.
Saya juga menggunakan fungsi label, yang mana berfungsi sebagai penamaan dalam sebuah proses ( menurut saya hehehe ).
Ada juga perintah for, dalam program ini saya gunakan untuk mengulang banyak baris pada tabel sesuai denga banyak data yang ada. Saya gunakan juga untuk menampilkan tulisan satu persatu.
Kemudian saya menggunakan percabangan, yaitu if then else, yang berfungsi sebagai pengambil keputusan. Contoh saya ambil dari program diatas, pada barsi ke-149. Disana terlihat statement nya, penjabarannya kurang lebih seperti in. Jika varibel total bernilai lebih besar dari 4000000 maka ketentuannya terpenuhi, dan langsung proses dilanjutkan, jika tidak maka proses lain yang akan melanjutkannya.
Kemudian saya menggunakan kode goto yang brfungsi untuk berpindah ke label yang ditentukan. contoh pada baris 67. Goto mulai; yang hasilnya akan berpindah ke label mulai.
Saya juga menggunakan delay([interval]); yang berfungsi untuk memberikan jeda sesuai yang ditentukan.
Selain itu saya juga meggunakan fungsi upcase, yang berfungsi untuk mengubah huruf kecil menjadi huruf kapital.

0 komentar: