fbpx

Algoritma dan Pemrogaman : Contoh Program Bahasa Pascal Tipe Data Record

๐Ÿ“‹ Daftar Isi

Program Entri Data Mahasiswa

Buatlah  program entri data mahasiswa dengan memanfaatkan record dengan struktur nim, nama, kelas, dan nilai_alpro. Program memiliki fungsi untuk input data, menampilkan data, menampilkan nilai terbesar, nilai terkecil, dan rata-rata. Semua fungsi menggunakan sub program.

Selamat Datang di Program entri mahasiswa
1. Input Data
2. Tampilkan Data
3. Nilai Aplro Terbesar
4. Nilai Alpro Terkecil
5. Rata-rata Nilai Alpro
6. Keluar

Kode Program

Program entridatamhs;
uses crt;
type Daftar=record
        nim:string[9];
        nama:string[20];
        tugas:integer;
        uts:integer;
        uas:integer;
        praktikum:integer;
        na:real;
        grade:char;
    end;
    mhs=array[1..40]of Daftar;

var alpr:mhs;
    i,j,n,k,pilihprogram,pilihmax,pilihmin,tkt,rombel:integer;
    lagiprogram,lagimenu,lagimax,lagimin:char;
    prod:string[2];

    function hitungnilai(tgs,uts,uas,prak:integer):real;
    begin
        hitungNilai:=(tgs*2+uts*3+uas*3+prak*2)/10;
    end;

    function konversigrade(nilai:real):char;
    var grade:char;
    begin
        case trunc(nilai) of
             0..19:grade:='E';
            20..39:grade:='D';
            40..59:grade:='C';
            60..79:grade:='B';
            80..100:grade:='A';
        end;
        konversigrade:=grade;
    end;

    procedure inputnilai(var list:mhs;var a:integer;n:integer);
    begin
        write('Masukkan jumlah mahasiswa = ');readln(n);
        for i:=a+1 to a+n do
            with list[i] do
            begin
                writeln('Data Mahasiswa ke-',i);
                write('NIM       = ');readln(nim);
                write('Nama      = ');readln(nama);
                write('Tugas     = ');readln(tugas);
                write('UTS       = ');readln(uts);
                write('UAS       = ');readln(uas);
                write('Praktikum = ');readln(praktikum);
                na:=hitungnilai(tugas,uts,uas,praktikum);
                grade:=konversigrade(NA);
            end;
        a:=a+n;
    end;

    procedure tampildata(list:mhs;n:integer);
    var i,y:integer;
    begin
        clrscr;
        gotoxy(2,1);   write('Daftar Nilai Mahasiswa Kelas ',tkt,prod,rombel,' Politeknik Statistika STIS 2020/2021');
        gotoxy(1,3);  write('------------------------------------------------------------------------');
        gotoxy(2,4);  write('NO');
        gotoxy(8,4);  write('NIM');
        gotoxy(22,4); write('NAMA');
        gotoxy(40,4); write('TUGAS');
        gotoxy(48,4); write('UTS');
        gotoxy(55,4); write('UAS');
        gotoxy(61,4); write('NA');
        gotoxy(68,4); writeln('GRADE');
        gotoxy(1,5);Write('------------------------------------------------------------------------');
        y:=6;
        for i := 1 to n do
        begin
            with list[i] do
            begin
                gotoxy(2,y);write(i);
                gotoxy(8,y);write(nim);
                gotoxy(22,y);write(nama);
                gotoxy(40,y);write(tugas);
                gotoxy(48,y);write(uts);
                gotoxy(55,y);write(uas);
                gotoxy(61,y);write(na:0:2);
                gotoxy(68,y);writeln(grade);

            end;
            y:=y+1;
        end;
    end;

    function utsmax(var list:mhs;n:integer):integer;
    var i:integer;
    begin
        utsmax:=list[1].uts;
        for i:=2 to n do
            with list[i] do
                if uts > utsmax then utsmax:=uts;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (utsmax=uts) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai UTS tertinggi : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function uasmax(var list:mhs;n:integer):integer;
    var i:integer;
    begin
        uasmax:=list[1].uas;
        for i:=1 to n do
            with list[i] do
                if uas > uasmax then uasmax:=uas;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (uasmax=uas) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai UAS tertinggi : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function namax(var list:mhs;n:integer):real;
    var i:integer;
    begin
        namax:=list[1].na;
        for i:=1 to n do
            with list[i] do
                if na > namax then namax:=na;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (namax=na) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai Akhir tertinggi : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function utsmin(var list:mhs;n:integer):integer;
    var i:integer;
    begin
        utsmin:=list[1].uts;
        for i:=1 to n do
            with list[i] do
                if uts < utsmin then utsmin:=uts;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (utsmin=uts) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai UTS terendah : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function uasmin(var list:mhs;n:integer):integer;
    var i:integer;
    begin
        uasmin:=list[1].uas;
        for i:=1 to n do
            with list[i] do
                if uas < uasmin then uasmin:=uas;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (uasmin=uas) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai UAS terendah : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function namin(var list:mhs;n:integer):real;
    var i:integer;
    begin
        namin:=list[1].na;
        for i:=1 to n do
            with list[i] do
                if na < namin then namin:=na;

        j:=1;
        while (j<=n) do
        begin
            with list[j] do
                begin
                    if (namin=na) then break;
                end;
            j:=j+1;
        end;
        with list[j] do
        begin
            writeln('Mahasiswa dengan Nilai Akhir terendah : ',nama);
            writeln('NIM             = ',nim);
            writeln('Nilai Akhir     = ',NA:0:2);
            writeln('Nilai UTS       = ',uts);
            writeln('Nilai UAS       = ',uas);
            writeln('Nilai Praktikum = ',praktikum);
        end;
    end;

    function utsrata(var list:mhs;n:integer):real;
    var i,utstot:integer;
    begin
        utstot:=0;
        for i:=1 to n do
        with list[i] do
            utstot:=utstot+uts;
            utsrata:=utstot/n;
    end;

    function uasrata(var list:mhs;n:integer):real;
    var i,uastot:integer;
    begin
        uastot:=0;
        for i:=1 to n do
        with list[i] do
            uastot:=uastot+uas;
            uasrata:=uastot/n;
    end;

    function narata(var list:mhs;n:integer):real;
    var i:integer;
        natot:real;
    begin
        natot:=0;
        for i:=1 to n do
        with list[i] do
            natot:=natot+na;
            narata:=natot/n;
    end;

    procedure lagi;
    begin
        write('Ingin memeriksa menu yang lain (Y/T) ? = ');readln(lagimenu);
    end;


    procedure menu;
    begin
        repeat
        clrscr;
        writeln('Pilihlah menu berikut');
        writeln('1. Input Data');
        writeln('2. Tampilkan Data');
        writeln('3. Nilai Alpro Terbesar');
        writeln('4. Nilai Alpro Terkecil');
        Writeln('5. Rata-rata Nilai Alpro');
        writeln('6. Keluar');
        write('Pilihan Anda ? (1/2/3/4/5/6) = ');readln(pilihprogram);

            case pilihprogram of
            1 : begin inputnilai(alpr,n,k); lagi; end;
            2 : begin tampildata(alpr,n); lagi; end;
            3 : begin
                    repeat
                    clrscr;
                    writeln('3. Nilai Alpro Terbesar');
                    writeln('   Silahkan pilih nilai yang ingin diperiksa');
                    writeln('   1. Nilai UTS Terbesar');
                    writeln('   2. Nilai UAS Terbesar');
                    writeln('   3. Nilai Akhir Terbesar');
                    write('Pilihan Anda (1/2/3) ? = ');readln(pilihmax);
                        case pilihmax of
                        1 : utsmax(alpr,n);
                        2 : uasmax(alpr,n);
                        3 : namax(alpr,n);
                        end;
                    write('Ingin memeriksan nilai Alpro Terbesar Lagi ? (Y/T) = ');readln(lagimax);
                    until (lagimax='T') or (lagimax='t');
                    lagi;
                end;
            4 : begin
                    repeat
                    clrscr;
                    writeln('4. Nilai Alpro Terkecil');
                    writeln('   Silahkan pilih nilai yang ingin diperiksa');
                    writeln('   1. Nilai UTS Alpro Terkecil');
                    writeln('   2. Nilai UAS Alpro Terkecil');
                    writeln('   3. Nilai Akhir Alpro Terkecil');
                    write('Pilihan Anda (1/2/3) ? = ');readln(pilihmin);
                        case pilihmin of
                        1 : utsmin(alpr,n);
                        2 : uasmin(alpr,n);
                        3 : namin(alpr,n);
                        end;
                    write('Ingin memeriksan nilai Alpro Terkecil Lagi ? (Y/T) = ');readln(lagimin);
                    until (lagimin='T') or (lagimin='t');
                    lagi;
                end;
            5 : begin
                    clrscr;
                    writeln('Rata-rata Nilai UTS Alpro adalah   ',utsrata(alpr,n):0:2);
                    writeln('Rata-rata Nilai UAS Alpro adalah   ',uasrata(alpr,n):0:2);
                    writeln('Rata-rata Nilai Akhir Alpro adalah ',narata(alpr,n):0:2);
                    lagi;
                end;
            6 : begin
                    clrscr;
                    writeln('Anda berhasil keluar dari program entri data Mahasiswa');
                    writeln('Terimakasih :)');
                    exit;
                end;
            end;

        until (lagimenu='t') or (lagimenu='T');
        writeln('Anda berhasil keluar dari program entri data Mahasiswa');
        writeln('Terima kasih :)');
    end;

begin
    clrscr;
    writeln('Selamat Datang Di Program Entri Mahasiswa');
    writeln('Inputkan Identitas Kelas Terlebih Dahulu');
    write('Tingkat           (1/2/3/4)                       = ');readln(tkt);
    write('Prodi             (KS/ST/D3/SD/SI/SE/SK)          = ');readln(prod);
    write('Rombongan Belajar (ST =1-10, KS=1-5, D3=1-2, dst) = ');readln(rombel);
    menu;
end.

Contoh Output

1. Tampilan Awal (Input Data Tingkat, Kelas, dan Rombel)

2. Masuk Ke Menu

3. Input Nilai 5 Mahasiswa Pertama (Jumlah Mahasiswa Saat Ini = 5) Melalui Menu 1. Input Data

4. Menampilkan Data 5 Mahasiswa Pertama Melalui Menu 2. Tampilkan Data

5. Input Nilai 5 Mahasiswa Kedua (Jumlah Mahasiswa Saat Ini = 10) Melalui Menu 1. Input Data

6. Menampilkan Data 10 Mahasiswa Secara Keseluruhan Setelah Ditambah Dengan 5

7. Memeriksa Nilai UTS Alpro Terbesar Melalui Menu Nilai Alpro Terbesar

8. Memeriksa Nilai UAS Alpro Terbesar Melalui Sub Menu Nilai Alpro Terbesar

9. Memeriksa Nilai Akhir Alpro Terbesar Melalui Sub Menu Nilai Alpro Terbesar

10. Memeriksa Nilai UTS Alpro Terkecil Melalui Menu Nilai Alpro Terkecil

11. Memeriksa Nilai UAS Alpro Terkecil Melalui Sub Menu Nilai Alpro Terkecil

12. Memeriksa Nilai Akhir Alpro Terkecil Melalui Sub Menu Nilai Alpro Terkecil

13. Memeriksa Rata-rata Nilai Alpro

14. Keluar Program


Materi Lengkap

Silakan baca juga beberapa artikel menarik kami tentang Array dan Record, daftar lengkapnya adalah sebagai berikut.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!