Selasa, 15 Juli 2014

UAS PRAKTEK STRUKTUR DATA

Membuat Program Stuktur Data Input dan Output Nilai


Soal !

Buat program yang meminta input satu demi satu user berupa nilai - nilai ujian (integer dalam interval 0 s/d 100). Banyaknya nilai tidak di ketahui dari awal, tetapi user akan memasukkan nilai (-1) sebagai akhir data masukkan. Program harus melakukan validasi terhadap bilangan yang di berikan user. Setiap kali user memasukkan satu nilai, program menyatakan LULUS jika nilai itu lebih dari atau sama dengan 60 dan GAGAL jika nilai itu kurang dari 60. Setelah semua nilai selesai dibaca, program menampilkan di layar monitor : banyaknya nilai yang lulus, banyaknya nilai yang gagal, nilai tertinggi, nilai rata - rata dan nilai terendah.

Jawab :


-Codingannya sebagai berikut :

#include <stdio.h>
#include <conio.h>

void main(){

int n, jmlLulus, jmlGagal, nTertinggi, nTerendah, count;            //deklarasi variabel
float nRata, hslRata;

jmlLulus = 0;                                                        //menentukan nilai awal
jmlGagal = 0;
nTertinggi = 0;
nTerendah = 100;                                                    //nilai terendah dibuat 100 agar bisa dibandingkan dengan nilai input selanjutnya
count = 0;                                                          //count untuk menghitung banyak data yang masuk

printf("  >>>PENGOLAHAN NILAI<<<   ");

do{                                                                 //do / lakukan sampai user meng input -1

printf("\n ");
printf("\nMasukkan nilai (-1 untuk berhenti): ");
scanf("%d",&n);


if(n < -1 || n > 100){                                              //untuk verifikasi, jika yang di input kurang dari -1 atau lebih dari 100 maka program akan memberikan respon
printf("\n===Maaf, nilai harus dalam rentang 0 s/d 100. ");
}

if(n != -1 && n >= 0 && n <= 100 ){                                //jika input memenuhi kriteria maka proses akan dilanjutkan

if(n < 60){
                                                                 //gagal jika nilai kurang dari 60
printf("\nNilai %d : GAGAL", n);
jmlGagal = jmlGagal + 1;

}else if(n >= 60){                                              //lulus jika nilai sama dengan atau lebih dari 60

printf("\nNilai %d : LULUS", n);
jmlLulus = jmlLulus + 1;

}

if(n > nTertinggi){                                              //membandingkan nilai input dengan nilai tertinggi saat ini
                                                                 //jika nilai input lebih tinggi maka nilai sekarang diganti
nTertinggi = n;                                                  //dengan nilai input

}

if(n < nTerendah){                                              //kebalikan dari nilai tertinggi, untuk membandingkan nilai terendah

nTerendah = n;

}

nRata = nRata + n;                                              //nilai saat ini akan ditambahkan dengan nilai input setiap kali ada data yang masuk

count++;                                                        //menghitung jumlah data yang masuk

}



}while(n != -1);                                                //keluar looping jika user meng input -1


if(count == 0){                                                 //jika tidak ada yang diinput, nilai terendah yang sebelumnya dideklarasi dengan nilai 100 akan dirubah menjadi 0
nTerendah = 0;
}else{
hslRata = nRata / count;                                        //nilai input yang tadi sudah dijumlah, akan dibagi dengan banyak data yang masuk untuk mendapatkan rata-rata nilai
}

printf("\n ");                                                  //menampilkan report dari proses yang sudah dijalankan
printf("\nBanyak nilai yang lulus  = %d ", jmlLulus);
printf("\nBanyak nilai yang gagal  = %d ", jmlGagal);
printf("\nNilai tertinggi          = %d ", nTertinggi);
printf("\nNilai terendah           = %d ", nTerendah);
printf("\nNilai rata-rata          = %.2f ", hslRata);

printf("\n ");
printf("\n\t ===Selesai=== ");

getch();



}


-Tampilannya :



Tidak ada komentar:

Posting Komentar