Membuat Program Diskon Barang Dengan COBOL

LISTING PROGRAM


IDENTIFICATION DIVISION.
       PROGRAM-ID. LA.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 STOK PIC X(10).
       77 PCS PIC 9.
       77 TOTAL PIC 9(6).
       77 HARGA PIC 9(6).
       77 BAYAR PIC 9(10).
       77 DISKON PIC 9(6).
       77 KEMBALI PIC 9(10)
       77 KEMBALIAN PIC 9(6).
       PROCEDURE DIVISION.
       MULAI.
           DISPLAY ( , ) "Ingin Membeli Apa [KAOS/CELANA] : ".
           ACCEPT STOK.
           IF STOK = "KAOS" OR "kaos" GO TO KAOS.
           IF STOK = "CELANA" OR "celana" GO TO CELANA.
           ELSE GO TO KOSONG.
       KOSONG.
           DISPLAY "Pilihan Anda Tidak Ada!".
           GO TO MULAI.
       KAOS.
           DISPLAY ( , ) "Berapa Banyak Kaos : ".
           ACCEPT PCS.
           IF PCS = 3 GO TO D1.
           ELSE GO TO K1.
       CELANA.
           DISPLAY ( , ) "Berapa Banyak Celana : ".
           ACCEPT PCS.
           IF PCS = 2 GO TO D2.
           ELSE GO TO K2.
       D1.
           COMPUTE TOTAL = 50000 * PCS.
           COMPUTE DISKON = TOTAL * 0.1.
           COMPUTE HARGA = TOTAL - DISKON.
           DISPLAY "Total Harganya Adalah Rp " HARGA.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - HARGA.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           DISPLAY "Selamat!!! Anda Mendapatkan Sebuah Tas".
           GO TO SELESAI.
       D2.
           COMPUTE TOTAL = 100000 * PCS.
           COMPUTE DISKON = TOTAL * 0.05.
           COMPUTE HARGA = TOTAL - DISKON.
           DISPLAY "Total Harganya Adalah Rp " HARGA.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - HARGA.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           DISPLAY "Selamat!!! Anda Mendapatkan Sebuah Sepatu".
           GO TO SELESAI.
       K1.
           COMPUTE TOTAL = 50000 * PCS.
           DISPLAY "Total Harganya Adalah Rp " TOTAL.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - TOTAL.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           GO TO SELESAI.
       K2.
           COMPUTE TOTAL = 100000 * PCS.
           DISPLAY "Total Harganya Adalah Rp " TOTAL.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - TOTAL.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           GO TO SELESAI.
       SELESAI.
           STOP RUN.


LOGIKA PROGRAM

       IDENTIFICATION DIVISION.
       PROGRAM-ID. LA.
       ENVIRONMENT DIVISION.

Untuk mengawali pembuatan program harus memulai menulis sintak pada kolom ke-8 ( 8 spasi).Identification Division yang berfungsi untuk memberi identitas program, seperti judul program, nama pembuat, dan lain-lain. Program-ID merupakan penamaan judul program. Dalam hal ini judulnya adalah LA. Dalam program ini kita tidak menggunakan Environment Division namun kita harus tetap menuliskan divisinya.

        DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 STOK PIC X(10).
       77 PCS PIC 9.
       77 TOTAL PIC 9(6).
       77 HARGA PIC 9(6).
       77 BAYAR PIC 9(10).
       77 DISKON PIC 9(6).
       77 KEMBALI PIC 9(10)
       77 KEMBALIAN PIC 9(6).

Selanjutnya mendeklarasikan variabel. Data division adalah tempat untuk mendeklarasikan variabel di program cobol. Kemudian ada Working-Storage Section yang merupakan bagian dari Data Division yang berfungsi untuk mengidentifikasi variabel dalam program. Variabel yang dideklarasikan sebagai berikut :
·         STOK dengan picture clause X(10) yang artinya variabel STOK akan diisi dengan dengan data numeric alphapetic sebanyak 20 karakter.
·         PCS dengan picture clause 9 yang artinya variabel PCS akan diisi dengan dengan data numeric  sebanyak 1 karakter.
·         TOTAL dengan picture clause 9(6) yang artinya variabel TOTAL akan diisi dengan dengan data  numeric sebanyak 6 karakter.
·         HARGA dengan picture clause 9  yang artinya variabel tersebut akan diisi dengan data numerik dengan maksimal 1 digit
·         BAYAR dengan picture clause 9(10) yang artinya variabel tersebut akan diisi dengan data numerik dengan maksimal 10 digit
·         DISKON dengan picture clause 9(6)  yang artinya variabel tersebut akan diisi dengan data numerik dengan maksimal 6 digit.
·         KEMBALI dengan picture clause 9(10) yang artinya variabel tersebut akan diisi dengan data numerik dengan maksimal 10 digit
·         KEMBALIAN dengan picture clause 9(6)  yang artinya variabel tersebut akan diisi dengan data numerik dengan maksimal 6 digit.

            MULAI.
           DISPLAY ( , ) "Ingin Membeli Apa [KAOS/CELANA] : ".
           ACCEPT STOK.
           IF STOK = "KAOS" GO TO KAOS.
           IF STOK = "CELANA" GO TO CELANA.
           ELSE GO TO KOSONG.

. PROCEDURE DIVISION merupakan inti dari program yang akan kita buat karena seluruh sintaks dari inputan sampai dengan menghasilkan output terdapat dalam divisi ini. Pada program ini terdapat dua prosedur yaitu prosedur MULAI dan prosedur SELESAI.
Pada  prosedur MULAI  kita disuruh untuk memilih menu yang diinginkan. Misalkan kita pilih kaos maka akan dilempar ke program yang kita yang berisi perhitungan dari penjualan kaos. Hasil inputan akan disimpan ke dalam variabel STOK. Selanjutnya ada percabangan IF jika STOK sama dengan KAOS maka akan menjalankan procedure KAOS. Jika STOK sama dengan CELANA maka akan menjalankan procedure CELANA. Selain itu maka menjalankan procedure KOSONG.
            
           KOSONG.
           DISPLAY "Pilihan Anda Tidak Ada!".
           GO TO MULAI.
            Selanjutnya procedure KOSOSNG, didalam procedure KOSONG hanya mencetak “Pilihan Anda Tidak Ada”, lalu menjalankan procedure MULAI.
         KAOS.
           DISPLAY ( , ) "Berapa Banyak Kaos : ".
           ACCEPT PCS.
           IF PCS = 3 GO TO D1.
           ELSE GO TO K1.   
            Lalu ada procedure KAOS, didalamnya ada perintah DISPLAY “Berapa Banyak Kaos : “ lalu hasil inputan akan disimpan kedalam variabel PCS. Kemudian ada percabangan if dengan kondisi jika PCS sama dengan 3 maka akan menjalankan procedure D1, selain itu akan menjalankan procedure K1.
        
          CELANA.
           DISPLAY ( , ) "Berapa Banyak Celana : ".
           ACCEPT PCS.
           IF PCS = 2 GO TO D2.
           ELSE GO TO K2.

            Selanjutnya ada procedure CELANA, didalam procedure CELANA sama dengan perocedure KAOS, pertama mencetak “Berapa Banyak Celana : “ kemudian hasil inputan akan disimpan ke dalam variabel PCS. Lalu ada percabangan if dengan kondisi jika PCS =2 maka menjalankan procedure D2, jika tidak sama dengan 2 maka akan menjalankan procedure K2.
           
           D1.
           COMPUTE TOTAL = 50000 * PCS.
           COMPUTE DISKON = TOTAL * 0.1.
           COMPUTE HARGA = TOTAL - DISKON.
           DISPLAY "Total Harganya Adalah Rp " HARGA.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - HARGA.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           DISPLAY "Selamat!!! Anda Mendapatkan Sebuah Tas".
           GO TO SELESAI.

            Di dalam procedure D1 terdapat perhitungan menggunkan COMPUTE, pertama mengkalikan 50000 dengan PCS dan disimpan ke dalam variabel TOTAL.lalu mengkalikan variabel TOTAL dengan 0,1 dan disimpan kedalam variabel DISKON. Selanjutnya ada pengurangan antara variabel TOTAL dengan DISKON dan dimasukkan ke dalam variabel HARGA. Kemudian nilai dari variabel HARGA akan dicetak setelah “Total Uang yang dibayarkan Rp “. Lalu ada inputan “Total UangYang Dibayarkan : “ hasil inputan di simpan kedalam variabel BAYAR.  Lalu menggunakan COMPUTE untuk menghitung kembalian, kemudian variabel kembali dipindahkan nilainya kedalam variabel KEMBALIAN. Kemudian ditampilkan ke layar.
           
           D2.
           COMPUTE TOTAL = 100000 * PCS.
           COMPUTE DISKON = TOTAL * 0.05.
           COMPUTE HARGA = TOTAL - DISKON.
           DISPLAY "Total Harganya Adalah Rp " HARGA.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - HARGA.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           DISPLAY "Selamat!!! Anda Mendapatkan Sebuah Sepatu".
           GO TO SELESAI.

Di dalam procedure D2 sama seperti D1, terdapat perhitungan menggunkan COMPUTE, pertama mengkalikan 100000 dengan PCS dan disimpan ke dalam variabel TOTAL.lalu mengkalikan variabel TOTAL dengan 0,05 dan disimpan kedalam variabel DISKON. Selanjutnya ada pengurangan antara variabel TOTAL dengan DISKON dan dimasukkan ke dalam variabel HARGA. Kemudian nilai dari variabel HARGA akan dicetak setelah “Total Uang yang dibayarkan Rp “. Lalu ada inputan “Total UangYang Dibayarkan : “ hasil inputan di simpan kedalam variabel BAYAR.  Lalu menggunakan COMPUTE untuk menghitung kembalian, kemudian variabel kembali dipindahkan nilainya kedalam variabel KEMBALIAN. Kemudian ditampilkan ke layar.
           
           K1.
           COMPUTE TOTAL = 50000 * PCS.
           DISPLAY "Total Harganya Adalah Rp " TOTAL.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - TOTAL.
           MOVE KEMBALI TO KEMBALIAN.
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           GO TO SELESAI.

            Di dalam procedure K1 ada perintah COMPUTE 50000 dikalikan dengan variabel PCS lalu disimpan kedalam variabel TOTAL. Kemudian nilai dari variabel TOTAL ditampilkan ke layar, lalu mencetak “"Total Uang Yang Dibayarkan :” hasil inputan akan disimpan kedalam variabel BAYAR. Kemudian ada COMPUTE variabel BAYAR dikurangi variabel TOTAL hasilnya akan disimpan kedalam variabel KEMBALI. Selanjutnya nilai dari variabel KEMBALI akan di masukkan kedalam variabel KEMBALIAN lalu nilainya akan ditampilkan ke layar.
      
            K2.
           COMPUTE TOTAL = 100000 * PCS.
           DISPLAY "Total Harganya Adalah Rp " TOTAL.
           DISPLAY ( , ) "Total Uang Yang Dibayarkan : ".
           ACCEPT BAYAR.
           COMPUTE KEMBALI = BAYAR - TOTAL.
           MOVE KEMBALI TO KEMBALIAN.  
           DISPLAY "Kembalian Anda Rp " KEMBALIAN.
           GO TO SELESAI.
       SELESAI.
           STOP RUN.

                Di dalam procedure K2 sama seperti K1, ada perintah COMPUTE 100000 dikalikan dengan variabel PCS lalu disimpan kedalam variabel TOTAL. Kemudian nilai dari variabel TOTAL ditampilkan ke layar, lalu mencetak “"Total Uang Yang Dibayarkan :” hasil inputan akan disimpan kedalam variabel BAYAR. Kemudian ada COMPUTE variabel BAYAR dikurangi variabel TOTAL hasilnya akan disimpan kedalam variabel KEMBALI. Selanjutnya nilai dari variabel KEMBALI akan di masukkan kedalam variabel KEMBALIAN lalu nilainya akan ditampilkan ke layar.
Kemudian ada procedure SELESAI. Dan didalamnya ada printah STOP RUN untuk keluar dari program.

OUTPUT


EmoticonEmoticon