Sabtu, 09 Desember 2017

Mencari rata-rata pada QBASIC

Postingan kali ini gua akan membuat program/codingan mencari rata-rata nilai pada QBASIC. Program ini bisa juga membantu guru untuk mencari rata-rata nilai siswanya.

Contoh Soal :
1. Dari 4 penilaian, seseorang dikatakan berprestasi baik bila rata-ratanya lebih besar dari 80, berprestasi cukup bila rata-ratanya antara 60 sampa dengan 80 dan buruk bila rata-ratanya 60 atau kurang. Hendak ditentukan kriteria seseorang.

Program/codingannya seperti ini:

REM HASIL UJIAN SMA ADABIAH
DIM X AS STRING
GOTO 10
10 CLS

MENU:
CLS
COLOR 19
PRINT "___________________________________WELCOME__________________________________"
PRINT "                        ===========MENU============"
COLOR 2
PRINT "1. ISI DATA"
PRINT "2. LIHAT DATA"
PRINT "3. CARI NAMA"
PRINT ""
INPUT "MASUKKAN PILIHAN [1-3] : "; P$
COLOR 9
SELECT CASE P$
    CASE "1"
        GOTO 20
        20 CLS
        INPUT "BANYAK DATA : ", N
        FOR I = 1 TO N
            PRINT ""
            INPUT "NAMA : ", NAMA$(I)
            INPUT "KELAS : ", K$(I)
            INPUT "NILAI MTK : ", MTK(I)
            INPUT "NILAI B.ING: ", BING(I)
            INPUT "NILAI B.IND : ", BIND(I)
            PRINT "____________________________________________________________________________"
        NEXT I
        CLOSE
        INPUT "KEMBALI KE MENU AWAL/ ISI DATA LAGI ? [Y/I]", M$
        IF M$ = "Y" THEN GOTO MENU:
        IF M$ = "y" THEN GOTO MENU:
        IF M$ = "i" THEN GOTO 20:
        IF M$ = "I" THEN GOTO 20:

        COLOR 5

    CASE "2"
        GOTO 30
        30 CLS
        PRINT "                           HASIL UJIAN SMA ADABIAH "
        PRINT "________________________________________________________________________________"
        PRINT TAB(1); "NAMA"; TAB(10); "KELAS"; TAB(18); "MTK"; TAB(28); "B.ING"; TAB(38); "B.IND"; TAB(48); "TOTAL"; TAB(58); "RATA-RATA"; TAB(72); "KATEGORI"
        PRINT "________________________________________________________________________________"
        FOR I = 1 TO N
            OP = (MTK(I) + BING(I) + BIND(I) + FIS(I))
            TOTAL = TOTAL + ((MTK(I) + BING(I) + BIND(I) + FIS(I)) / N)
            NA = (MTK(I) + BING(I) + BIND(I)) / 3
            IF NA < 50 THEN X = "D"
            IF NA < 70 AND NA > 50 THEN X = "C"
            IF NA < 90 AND NA > 70 THEN X = "B"
            IF NA > 90 THEN X = "A"
            PRINT TAB(1); NAMA$(I); TAB(10); K$(I); TAB(18); MTK(I); TAB(28); BING(I); TAB(38); BIND(I); TAB(48); OP; TAB(58); NA; TAB(75); X;
        NEXT I
        PRINT "_______________________________________________________________________________"
        PRINT ""
        PRINT "  RATA-RATA SEMUA NILAI : ", TOTAL
        PRINT ""

        PRINT "                                                                 KETERANGAN :"

        PRINT ""

        PRINT "                                                                 A = ISTIMEWA"

        PRINT "                                                                 B = BAIK"
        PRINT "                                                                 C = CUKUP"
        PRINT "                                                                 D = KURANG"

        CLOSE

        INPUT "KEMBALI KE MENU AWAL? [Y/N]", M$
        IF M$ = "Y" THEN GOTO MENU:
        IF M$ = "y" THEN GOTO MENU:
        IF M$ = "n" THEN GOTO 100:
        IF M$ = "N" THEN GOTO 100:
        COLOR 2
    CASE "3"
        GOTO 40
        40 CLS
        INPUT "CARI NAMA : ", Q$
        PRINT "                           HASIL UJIAN SMA ADABIAH "
        PRINT "________________________________________________________________________________"
        PRINT TAB(1); "NAMA"; TAB(10); "KELAS"; TAB(18); "MTK"; TAB(28); "B.ING"; TAB(38); "B.IND"; TAB(48); "TOTAL"; TAB(58); "RATA-RATA"; TAB(68); "KATEGORI"
        PRINT "________________________________________________________________________________"
        FOR I = 1 TO N
            OP = (MTK(I) + BING(I) + BIND(I) + FIS(I))
            TOTAL = TOTAL + ((MTK(I) + BING(I) + BIND(I) + FIS(I)) / N)
            NA = (MTK(I) + BING(I) + BIND(I)) / 3
            IF NA < 50 THEN X = "KURANG"
            IF NA < 70 AND NA > 50 THEN X = "CUKUP"
            IF NA < 90 AND NA > 70 THEN X = "BAIK"
            IF NA > 90 THEN X = "ISTIMEWA"
            IF NAMA$(I) = Q$ THEN PRINT TAB(1); NAMA$(I); TAB(10); K$(I); TAB(18); MTK(I); TAB(28); BING(I); TAB(38); BIND(I); TAB(48); OP; TAB(58); NA; TAB(68); X;
        NEXT I
        PRINT "______________________________________________________________________________"
        PRINT ""
        PRINT " ANDA YANG BERNAMA ", Q$, "BERPRESTASI", X
        PRINT ""

        CLOSE

        INPUT "KEMBALI KE MENU AWAL? [Y/N]", M$
        IF M$ = "Y" THEN GOTO MENU:
        IF M$ = "y" THEN GOTO MENU:
        IF M$ = "n" THEN GOTO 100:
        IF M$ = "N" THEN GOTO 100:
        COLOR 9
    CASE "4"
        GOTO 100

END SELECT

100 END
END

Fungsi Statement yang digunakan pada program ini antara lain :

1. LET
Statement LET biasanya digunakan untuk memasukan sebuah nilai/harga kedalam suatu variabel yang mana harga/nilai dari sebuah variabel tersebut boleh berubah.
Misal  LET A = 3
2.  PRINT
Statement PRINT digunakan untuk mencetak atau menampilkan data hasil pengolahan pada layar tampilan.
3. REM
Statement REM digunakan untuk memberikan komentar, judul, penjelasan program, keterangan mengenai variabel program tanpa merubah program tersebut.
4. CLS
Statement CLS digunakan agar tidak terjadi pengulangan program pada hasil input.
5. COLOR 
Statement COLOR digunakan untuk mewarnai tulisan pada hasil codingan. Contoh COLOR 13, angka awal pada COLOR tersebut menandakan warna tulisannya sedangkan angka 3 menandakan warna Backgroundnya. Jadi kalau ingin mengubah warna background atau tulisan kalian hanya perlu mengubah angka pertama untuk tulisan atau angka kedua untuk background.
6. SELECT CASE
Statement SELECT CASE digunakan untuk menyatakan suatu kondisi tertentu. SELECT CASE ini juga sama dengan IF...THEN
7. GOTO
Statement GOTO berguna untuk melompatkan proses eksekusi ke suatu baris yang diberi nomor baris tanpa harus mentest suatu kondisi, sehingga sering disebut dengan statement alih tanpa syarat. Baris yang dituju untuk dieksekusi kemudian ditandai dengan nomor baris tertentu.
8. FOR NEXT 
Digunakan untuk mengontrol jalannya perulangan pada program, dimana statement tersebut akan mengalami perulangan selama kondisi atau pernyataan masih memenuhi syarat.
9. IF .... THEN .... ELSE
Perintah ini menandakan bahwa dalam IF terdapat IF lagi di dalamnya. Dalam mengakhiri perintah ini harus menggunakan END IF.
10. TAB(Jarak Spasi)
Perintah ini digunakan untuk membuat tabel yang dikondisikan dengan jarak yang kita inginkan.
11. $ (String)
Fungsi STRING ($) pada QBasic adalah untuk tipe data untuk teks atau alphabetic. 
12. CLOSE
Fungsi ini berguna untuk mengakhiri atau kembali ke menu awal.


Jadi Program/Codingan diatas adalah :




Hasil program/codingannya adalah :













0 komentar:

Posting Komentar