Panduan Membuat Program Pascal Kasir Sederhana

Ikon Struk Pembayaran

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.

Struktur Dasar Program Kasir Pascal

Sebuah program kasir minimalis memerlukan beberapa komponen utama dalam kodenya:

  1. Deklarasi Variabel & Konstanta: Mendefinisikan harga barang, diskon, dan variabel untuk menyimpan total.
  2. Input Data: Bagian di mana kasir memasukkan kode atau nama barang.
  3. Proses Perhitungan: Mengalikan harga satuan dengan kuantitas dan menjumlahkannya.
  4. Output (Struk): Menampilkan ringkasan transaksi secara terstruktur.

Contoh Implementasi Sederhana

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.
        

Poin Penting dalam Pengembangan

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:

  1. Penggunaan Array/Record: Mengganti blok `case of` dengan array atau record untuk menyimpan nama barang, harga, dan stok, sehingga program lebih mudah dikelola jika jumlah barang banyak.
  2. Validasi Input Lebih Ketat: Memastikan pengguna hanya memasukkan angka positif untuk kuantitas dan kode yang valid.
  3. Stok Barang: Mengurangi stok barang setelah transaksi selesai (ini memerlukan pembacaan dan penulisan file).

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.