SELAMAT DATANG DI BLOG ADAM SULUNG PRAYOGA

Rabu, 02 September 2009

Belajar Pascal (Delphi Console) I

Kali ini saya akan menuliskan sebuah program sederhana untuk melakukan kalkulasi perhitungan IPK dengan menggunakan bahasa Pascal.
Compiler berupa Delphi mode Console.
Ini saya tujukan buat mahasiswa yang baru belajar bahasa Pascal.
Di sini akan didapatkan beberapa pengetahuan tentang bagaimana menuliskan identifier, deklarasi variabel ataupun constanta, termasuk deklarasi constanta yang berupa array. Satu hal lagi ada sedikit trik bagaimana mengubah nilai huruf ke angka dengan cara yang mudah dibanding dengan if statement maupun dengan menggunakan case statement.
Bagi yang belum tahu, atau belum pernah bisa mencobanya dengan menggunakan Delphi. Jalankan Delphi versi berapapun (karena mode console sederhana), kemudian buka menu File -> New Other -> Console Application.
Setelah muncul, tumpuk tulisan yang sudah ada dengan script di bawah ini, kemudian jalankan dengan tekan F9.
Selamat mencoba, berikut ini script-nya.
program ProgramSederhana;
{$APPTYPE CONSOLE}
const konversiAngka: array['A'..'E'] of integer = (4,3,2,1,0);
var jumlahMk, totalSKS, totalNilai: integer;
daftarMk: array[1..100] of String;
daftarSKS: array[1..100] of integer;
daftarNilaiHuruf: array[1..100] of char;
daftarNilai: array[1..100] of integer;
ipk: extended;
i, MaxNilai, MaxSKS: integer;
begin
Writeln('PROGRAM MENGHITUNG IPK');
Write('Berapa matakuliah yang sudah diambil:'); readln(jumlahMk);
for i := 1 to jumlahMk do
begin
write('Nama Matakuliah :'); readln(daftarMk[i]);
write('Jumlah SKS :'); readln(daftarSKS[i]);
totalSKS := totalSKS + daftarSKS[i];
write('Nilai :'); readln(daftarNilaiHuruf[i]);
daftarNilai[i] := konversiAngka[daftarNilaiHuruf[i]];
end;
Writeln;
Writeln('Nama Matakuliah':20, 'SKS':4, 'Nilai':6, 'Angka':6);
totalSKS := 0;
totalNilai := 0;
MaxNilai := 0;
MaxSKS := 0;
for i := 1 to jumlahMk do
begin
Writeln(daftarMk[i]:20, daftarSKS[i]:4, daftarNilaiHuruf[i]:4, daftarNilai[i]:6);
totalNilai := totalNilai + daftarSKS[i] * daftarNilai[i];
if (MaxNilai< daftarNilai[i]) then MaxNilai := daftarNilai[i];
if (MaxSKS< daftarSKS[i]) then MaxSKS := daftarSKS[i];
end;
ipk := totalNilai/totalSKS;
writeln('IPK: ',ipk:3:2);
readln;
end.

0 komentar:

Posting Komentar

 
Free Virgo Blue MySpace Cursors at www.totallyfreecursors.com