Algoritma Mencari Nilai Terbesar, Terkecil, Jumlah, Rata-rata dari Array Dalam Bahasa Pascal


Tugas Membuat Array dalam Bahasa Pascal
----------------------------------------------------------------------

Buatlah sebuah program dengan aturan sebagai berikut :

  1. Buatlah program dengan tema nilai mahasiswa. Adapun yang menjadi inputan adalah nama dan nilai mahasiswa. Buatkan array nama dan array nilai sebagai penampung data (misal maks_array = 5).
  2. Buat prosedur untuk memasukkan nama dan nilai mahasiswa sebanyak maks_array (buatkan dalam satu prosedur yang sama).
  3. Setelah nama dan nilai mahasiswa diinputkan lakukanlah hal berikut : (1) buat prosedur untuk mengoutputkan seluruh data array nilai dan array nama mahasiswa, (2) carilah nilai terbesar, (3) carilah nilai terkecil, (4) hitunglah jumlah nilai seluruh mahasiswa, dan (5) carilah rata-rata dari keseluruhan nilai mahasiwa.
  4. Program hanya berjalan satu kali. Lakukan input dan output secara langsung. Misal : langkah pertama lakukan input 5 data nama dan nilai mahasiswa. Setelah dilakukan input, outputkan data yang diminta pada poin nomor 3 dibawah inputan yang telah dilakukan. Lihat contoh dibawah untuk lebih jelasnya.



Contoh Tampilan :

Input Data Mahasiswa
-----------------------------------
Nama        : Robi
Nilai       : 80
Nama        : Asep
Nilai       : 90
Nama        : Ahmad
Nilai       : 70
Nama        : Kurniawan
Nilai       : 60
Nama        : Bambang
Nilai       : 50

Output Data Mahasiswa
-----------------------------------
Nama        : Robi
Nilai       : 80
Nama        : Asep
Nilai       : 90
Nama        : Ahmad
Nilai       : 70
Nama        : Kurniawan
Nilai       : 60
Nama        : Bambang
Nilai       : 50

Statistik Data Mahasiswa
-----------------------------------
Nilai Terbesar   : Asep
Nilai            : 90
Nilai Terkecil   : Bambang
Nilai            : 50
Jumlah           : 350
Rata-rata        : 70

Jawaban dalam Syntax Pascal (.PAS)



USES CRT;
VAR
   I,N,JUMLAH,MAX,MIN  : INTEGER;
   NAMA_MAX,NAMA_MIN   : STRING;
   NILAI_MAX,NILAI_MIN : INTEGER;
   RATA                : REAL;

   PROCEDURE NILAI_MAHASISWA;
   VAR   
        NAMA     : ARRAY[1..100] OF STRING;
        NILAI    : ARRAY[1..100] OF INTEGER;
    
   BEGIN
        //INPUT
        WRITELN('====================');
        WRITELN('INPUT DATA MAHASISWA');
        WRITELN('====================');
        WRITELN;
        WRITE('Jumlah Data Mahasiswa : ');READLN(N);
        WRITELN('--------------------');
        
        FOR I:= 1 TO N DO
        BEGIN
            WRITE('Nama  Mahasiswa Ke-',I,'  : ');READLN(NAMA[I]);
            WRITE('Nilai Mahasiswa Ke-',I,'  : ');READLN(NILAI[I]);
            WRITELN;
        END;
    
        WRITELN;
        WRITELN('=====================');
        WRITELN('OUTPUT DATA MAHASISWA');
        WRITELN('=====================');
     
        FOR I:= 1 TO N DO
        BEGIN
            WRITELN('Nama  Mahasiswa Ke-',I,' : ',NAMA[I]);
            WRITELN('Nilai Mahasiswa Ke-',I,' : ',NILAI[I]);
            WRITELN;
        END;
    

        //PROSES

        //Mencari Nilai Terbesar dan Terkecil
        NILAI_MAX:=NILAI[1];
        NILAI_MIN:=NILAI[1];

        FOR I:= 1 TO N DO
        BEGIN
            IF(NILAI[I] < NILAI_MIN) THEN
            BEGIN
                NILAI_MIN := NILAI[I];
                NAMA_MIN  := NAMA[I]
            END;

            IF(NILAI[I] > NILAI_MAX) THEN
            BEGIN
                NILAI_MAX := NILAI[I];
                NAMA_MAX  := NAMA[I];
            END;
        END;


        //Mencari Jumlah
        JUMLAH := 0;
        
        FOR I:= 1 TO N DO
        BEGIN
            JUMLAH:=JUMLAH+NILAI[I];    
        END;
    
        //Mencari Nilai Rata-rata
        RATA :=0;
        RATA := JUMLAH/N;
    
        //OUTPUT
        WRITELN;
        WRITELN('========================');
        WRITELN('STATISTIK DATA MAHASISWA');
        WRITELN('========================');

        WRITELN('NILAI TERBESAR : ',NAMA_MAX);
        WRITELN('NILAI          : ',NILAI_MAX);
        WRITELN;
    
        WRITELN('NILAI TERKECIL : ',NAMA_MIN);
        WRITELN('NILAI          : ',NILAI_MIN);
        WRITELN;
    
        WRITELN('JUMLAH         : ',JUMLAH);
        WRITELN('RATA-RATA      : ',RATA:5:2);
   END;


//Program Utama

BEGIN
     CLRSCR;
     //Memanggil Prosedur NILAI_MAHASISWA
     NILAI_MAHASISWA;
     READLN;
END.



Tampilan Program






Post a Comment

5 Comments

  1. kok error 202 stack overflow ya kl di run, tq

    ReplyDelete
  2. boleh minta program .pas nya gak gan....?

    ReplyDelete
    Replies
    1. silahkan download filenya disini https://drive.google.com/file/d/0B7faJmGqgqi7QnpkeXRtalc3Z1E/view?usp=sharing semoga membantu

      Delete
  3. Kalau Dngan lbih dari 2 data berhasil,tpi kalau hanya dua data terkadang ada nama yang gk mncul pdhal nilainya mncul semua ?

    ReplyDelete
  4. Ada codingan dalam bentuk java nya ga?

    ReplyDelete