Cara Membuat Program Mencari Nilai Rata-Rata

penulis : alazmi



Pada postingan kali ini saya ingin membahas bagaimana Cara Membuat Program Mencari Nilai Rata-rata pada Siswa dan juga grade-nya.

Baik langsung saja ketikan code dibawah pada turbo pascal Anda, berikut :
{by alazmi}
program Nilai_Siswa;
uses crt;
var A                           :array[1..20] of integer;

      nama,ulang,temp :string;
      hasil                     :real;
begin
repeat
clrscr;
write('Nama Siswa = '); readln(nama);
write('Nilai Harian = '); readln(A[1]);
write('Nilai Ujian Praktek = '); readln(A[2]);
write('Nilai Ujian Praktek = '); readln(A[3]);
hasil:=(A[1]+A[2]+A[3])/3;
writeln;
temp:='eror';
if hasil <=50 then temp:='D'
else if hasil<=65 then temp:='C'
else if hasil<=85 then temp:='B'
else temp:='A';
writeln('Grade ',nama,' adalah ',temp);
delay(5000);
writeln;
write('Ulangi Program? Y/N = '); readln(ulang);
if ulang='y' then ulang:='Y'
else if ulang='Y' then ulang:='y'
else exit;
until ulang='n';

end.





NB : Untuk menjalankan programnya bisa dengan menekan CTRL + F9 atau pada menu pilih Compile lalu Compile.
 
Oke saya akan jelaskan bagian-bagian yang terdapat dalam code diatas, pertama
var A                    :array[1..20] of integer;
nama,ulang,temp :string;
hasil                     :real;
Ini adalah deklarasi dari variabel yang akan digunakan. Nah disini ada yang menarik, saya menggunakan array pada variabel, padahal bisa saja saya menggunakan a,b,c,d,..,z. Penggunaan array lebih kearah efektifas penggunaan variabel sehingga tidak membingungkan, walaupun sebenarnya tidak jauh berbeda, namun kita gunakan agar Anda sedikit terbiasa dengan Array ini. Contoh, 'A' dalam var tersebut dapat berupa A[1],A[2],A[3],..,A[100] sesuai dengan code "... array[1..100].." berarti A bernilai A[1] - A[100], tentu akan membantu jika data yang akan dimasukan sangat banyak dibandingan dengan menggunakan variabel alphabet a,b,c,..,y,z yang hanya 26 character.
Pada "nama,ulang,temp" saya menggunakan type data string, karena saya ingin menyimpan data dalam bentuk huruf, lebih lanjut Anda bisa baca postingan saya sebelumnya mengenai type data pada pascal.
clrscr;
Berguna untuk menghapus tampilan sebelumnya, tidak perlu saya jelaskan, silahkan hapus lalu jalankan program Anda dan perhatikan apa yang berbeda pada output yang ditampilkan.
penulis : alazmi
PERHATIAN! Harap Anda membaca sambil mempraktekannya, dikarenakan akan lebih mudah dimengerti apabila Anda melakukannya secara langsung agar dapat mengembangkan dari apa yang telah saya tulis pada post ini!
write('Nama Siswa = '); readln(nama);
write('Nilai Harian = '); readln(A[1]);
write('Nilai Ujian Praktek = '); readln(A[2]);
write('Nilai Ujian Praktek = '); readln(A[3]);
write berfungsi untuk menampilan <exp.list> dilayar output anda, sementara readln digunakan untuk memasukan/menerima data Anda kedalam variabel yang telah ditentukan.
Perhatian!  Jika ada eror, perhatikan apakah ada yang salah dalam pegetikan. salah satu char dapat menyebabkan program Anda eror!
hasil:=(A[1]+A[2]+A[3])/3;
Seperti ketika kita mencari nilai rata-rata tentu kita akan menjumlahkan terlebih dahulu data yang ada lalu dibagi oleh jumlah berapa data yang ada. Rumusnya "(data1+data2+data3)/3" mengapa dibagi 3? lihat data yang kita miliki. Anda dapat merubahnya jika ingin menambahkan data yang baru, dengan ketentuan tambahkan juga

write('isi nama nilai = '); readln(A[4]);

sehingga akan menjadi :
write('Nama Siswa = '); readln(nama);
write('Nilai Harian = '); readln(A[1]);
write('Nilai Ujian Praktek = '); readln(A[2]);
write('Nilai Ujian Praktek = '); readln(A[3]);
write('isi nama nilai = '); readln(A[4]);
lalu ubah rumus hasil menjadi :
hasil:=(A[1]+A[2]+A[3]+A[4])/4;
Baik kita lanjut
temp:='eror';
if hasil <=50 then temp:='D'
else if hasil<=65 then temp:='C'
else if hasil<=85 then temp:='B'
else temp:='A';
Code diatas berfungsi sebagai pemilah/penyortiran Grade berdasarkan nilai rata-rata Siswa. Jika hasil lebih kecil atau sama dengan 50 maka Grade D, atau jika hasil lebih kecil atau sama dengan 65 maka Grade C. Seperti itulah sekiranya cara membacanya. 'temp' hanya variabel yang membantu menyimpan data, Anda dapat merubahnya, namun ubah juga pada bagian deklarasi variabel.
writeln;
Cari tau sendiri ya kalau yang satu ini, hehe.. hampir sama cara penggunaannya dengan "WRITE" namun ada "LN" dibelakannya, silahkan dicoba dan diperhatikan apa yang terjadi.
writeln('Grade ',nama,' adalah ',temp);
delay(5000);
Yang berada dalam tanda petik satu merupakan data yang akan ditampilkan seara utuh sesuai apa yang kita ketik didalamnya. Namun apabila tidak terdapat tanda petik satu, Anda akan menampilkan data dari sebuah variabel yang anda masukan. Contoh, 'Grade' akan tampil dilayar output, namun (nama) tidak akan tampil, namun yang ditampilkan adalah data dari var tersebut. dan koma adalah pemisah antara satu dan yang lainnya, perhatikan code diatas dan coba pada pascal Anda.
Delay berfungsi untuk menunda proses selanjutnya selama waktu yang di tentukan.
writeln;
write('Ulangi Program? Y/N = '); readln(ulang);
if ulang='y' then ulang:='Y'
else if ulang='Y' then ulang:='y'
else exit;
until ulang='n';
Ini berfungsi untuk mengulang program apabila user ingin mencoba kembali program Anda, diawal "repeat<statement>" pada bagian awal (perhatikan pada code sebelumnya) diakhiri dengan "until <kondisi>", akan saya jelaskan pada post berikutnya.
end.
Setiap program diakhiri dengan end. (end titik).
Untuk sekarang hanya itu saja dulu, next saya akan post lagi untuk membantu tugas atau menambah pengetahuan Anda tentunya hehe, Terimakasih.

PERHATIAN!!! Apabila ada yang tidak dimengerti ataupun eror silahkan komentar! Hargai penulis degan menampilkan sumber! by al azmi