Bahasa pemrograman Pascal, meskipun tergolong lama, masih menjadi alat fundamental yang sangat baik untuk mempelajari struktur dasar pemrograman, terutama bagi pemula. Salah satu aplikasi klasik yang sering dijadikan proyek awal adalah membuat program kasir sederhana. Program ini melatih kemampuan Anda dalam menangani input/output, perhitungan aritmatika dasar, serta penggunaan struktur data sederhana seperti array atau record.
Tujuan dari program kasir sederhana ini adalah mensimulasikan proses transaksi jual beli di toko kecil. Pengguna (kasir) akan memasukkan item barang yang dibeli beserta kuantitasnya. Sistem kemudian harus menghitung total harga sebelum diskon (jika ada), menerapkan diskon, dan menghitung jumlah uang yang harus dibayar. Pada tahap akhir, program harus menampilkan struk transaksi yang rapi.
Sebuah program kasir minimalis memerlukan beberapa komponen utama dalam kodenya:
Untuk mempermudah, kita akan menggunakan beberapa barang yang harganya sudah ditentukan di awal program (hardcoded). Ini menghindari kerumitan pengelolaan database atau file I/O yang lebih kompleks, sehingga fokus tetap pada logika kasir.
<span class="code-block-title">Contoh Struktur Program Kasir (Menggunakan Turbo Pascal/Free Pascal Syntax)</span>
program KasirSederhana;
uses Crt;
var
kodeBarang : String;
kuantitas : Integer;
hargaSatuan, totalHarga, diskon, bayar, kembali : Real;
lanjut : Char;
begin
ClrScr;
Writeln('====================================');
Writeln(' PROGRAM KASIR SEDERHANA ');
Writeln('====================================');
totalHarga := 0;
lanjut := 'Y';
while (UpCase(lanjut) = 'Y') do
begin
Writeln;
Write('Masukkan Kode Barang (A/B/C): ');
Readln(kodeBarang);
Writeln('Masukkan Kuantitas: ');
Readln(kuantitas);
case UpCase(kodeBarang) of
'A': hargaSatuan := 10000.00;
'B': hargaSatuan := 15000.00;
'C': hargaSatuan := 5000.00;
else
begin
Writeln('Kode barang tidak valid!');
hargaSatuan := 0;
end;
end;
if hargaSatuan > 0 then
begin
totalHarga := totalHarga + (hargaSatuan * kuantitas);
Writeln('Item berhasil ditambahkan.');
end;
Write('Tambah item lagi? (Y/T): ');
Readln(lanjut);
ClrScr;
end;
(* Proses Perhitungan Akhir *)
diskon := 0;
if totalHarga > 50000 then
diskon := totalHarga * 0.05; (* Diskon 5% untuk pembelanjaan di atas 50000 *)
Writeln('====================================');
Writeln(' STRUK BELANJA ');
Writeln('====================================');
Writeln('Total Belanja : ', FormatFloat('#,##0.00', totalHarga));
Writeln('Diskon (5%): ', FormatFloat('#,##0.00', diskon));
bayar := totalHarga - diskon;
Writeln('------------------------------------');
Writeln('TOTAL BAYAR : ', FormatFloat('#,##0.00', bayar));
Writeln('------------------------------------');
Write('Uang Tunai Diterima: ');
Readln(kembali);
kembali := kembali - bayar;
Writeln('Kembalian : ', FormatFloat('#,##0.00', kembali));
Writeln('====================================');
Readkey;
end.
Kode di atas menggunakan loop `while` untuk mengizinkan penambahan item secara berulang hingga kasir memutuskan selesai. Penggunaan `case of` sangat efisien untuk menentukan harga berdasarkan kode input. Fungsi `FormatFloat` (biasanya memerlukan unit tambahan seperti `SysUtils` di Free Pascal) penting untuk memastikan output uang ditampilkan dengan format mata uang yang benar dan rapi.
Untuk meningkatkan program kasir sederhana ini, langkah selanjutnya bisa meliputi:
Membangun program kasir sederhana menggunakan Pascal adalah cara fantastis untuk mempraktikkan logika pemrograman prosedural. Fokuslah pada kejelasan struktur kode dan penanganan alur transaksi dari awal hingga struk tercetak.