{*NIM/Nama : 16510043/Hendra Dwi Kusuma *}
{*Nama File : PraP08-16510043-101020-02 *}
{*Topik : Array dalam Pascal *}
{*Tanggal : 20 Oktober 2010 *}
{*Deskripsi : program isi tabel berisi array
output berupa tampilan seluruh isi array,
yaitu data mahasiswa berupa NIM, Nama, Nilai Kuis,
Nilai UTS, Nilai UAS, dan Indeks nilai*}
program tabelmahasiswa;
uses crt;
const tmmin=1; {*indeks minimum tblmhs*}
const tmmax=100; {*indeks maksimum tblmhs*}
type tymhs=record
NIM:string;
nama:string;
kuis:integer; {*[0..100]*}
uts:integer; {*[0..100]*}
uas:integer; {*[0..100]*}
indeks:char; {*['A'..'E']*}
end;
tblmhs= array[tmmin..tmmax]of tymhs; {*array*}
{*Kamus Global*}
var
tabm:tblmhs; {*menampung seluruh data mahasiswa*}
nmhs:integer; {*indeks, tabm terisi mulai dari indeks tmmin..nef. Jika nef=0, berarti tab kosong*}
menu:integer; {*kode menu*}
function hitungindeks(n1,n2,n3:integer):char; {*['A'..'E']*}
{*fungsi untuk menghitung indeks berdasarkan rata-rata n1, n2, dan n3,
dengan aturan:
Rata-rata ³ 85, indeks = ‘A’
70 <= Rata-rata < 85, indeks = ‘B’
55 <= Rata-rata < 70, indeks = ‘C’
40 <= Rata-rata < 55, indeks = ‘D’
Rata-rata < 40, indeks = ‘E’*}
{*Kamus lokal*}
var
rata:real;
{*Algoritma*}
begin
rata:=(n1+n2+n3)/3;
if ((rata>=0)and(rata<40)) then
hitungindeks:='E'
else
if ((rata>=40)and(rata<55)) then
hitungindeks:='D'
else
if ((rata>=55)and(rata<70)) then
hitungindeks:='C'
else
if ((rata>=70)and(rata<85)) then
hitungindeks:='B'
else
if ((rata>=85)and(rata<=100)) then
hitungindeks:='A'
else
writeln('rata-rata tidak bisa dihitung');
end;
procedure isitabm(var tab:tblmhs;n:integer);
{*Prosedur meminta masukan data mahasiswa (NIM, Nama, Nilai Kuis,
UTS, dan UAS) dari pengguna dan disimpan di dalam tabel Tab.
Masukan dari pengguna diasumsikan selalu benar. Indeks diisi
berdasarkan hasil perhitungan dengan menggunakan fungsi
HitungIndeks. Pengisian data berakhir jika pengguna memasukkan NIM
= ‘99999999’*}
{*I.S.: tab bisa kosong atau bisa sudah terisi*}
{*F.S.: elemen tab bertambah*}
{*Kamus lokal*}
var
i:integer;
{*Algoritma*}
begin
if nmhs=0 then
i:=0
else
i:=nmhs;
repeat
begin
i:=i+1;
writeln;
writeln('Data mahasiswa ke-',i);
write('NIM : ');
readln(tab[i].NIM);
if (not(tab[i].NIM='99999999')) then
begin
write('Nama : ');
readln(tab[i].nama);
repeat
begin
write('Nilai Kuis = ');
readln(tab[i].kuis);
if ((tab[i].kuis<0)or(tab[i].kuis>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].kuis>=0)and(tab[i].kuis<=100));
repeat
begin
write('Nilai UTS = ');
readln(tab[i].uts);
if ((tab[i].uts<0)or(tab[i].uts>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].uts>=0)and(tab[i].uts<=100));
repeat
begin
write('Nilai UAS = ');
readln(tab[i].uas);
if ((tab[i].uas<0)or(tab[i].uas>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].uas>=0)and(tab[i].uas<=100));
tab[i].indeks:=hitungindeks(tab[i].kuis,tab[i].uts,tab[i].uas);
writeln;
end;
if i>tmmax then
writeln('tabel sudah penuh!');
end;
until ((tab[i].NIM='99999999')or(i>tmmax));
nmhs:=i-1;
end;
procedure tampildatamhs(mhs:tymhs);
{*Prosedur untuk menuliskan sebuah data mahasiswa ke layar*}
{*I.S. : mhs terdefinisi*}
{*F.S. : Data mhs tampil di layar*}
{*Kamus lokal*}
{*Algoritma*}
begin
writeln('NIM : ',mhs.NIM);
writeln('Nama : ',mhs.nama);
writeln('Nilai kuis : ',mhs.kuis);
writeln('Nilai UTS : ',mhs.uts);
writeln('Nilai UAS : ',mhs.uas);
writeln('Indeks Nilai : ',mhs.indeks);
end;
procedure tampildata(tab:tblmhs; n:integer);
{*Prosedur untuk menampilkan data pada tab*}
{*I.S.: tab bisa kosong, atau isi*}
{*F.S.: Isi tab tampil di layar. Jika
tab kosong, pesan “Tabel kosong” muncul di layar*}
{*Kamus lokal*}
var
i:integer;
{*Algoritma*}
begin
if nmhs=0 then
writeln('tabel kosong')
else
begin
for i:=tmmin to nmhs do
begin
writeln;
writeln('Data mahasiswa ke-',i);
tampildatamhs(tab[i]);
end;
end;
end;
{*Program Utama*}
begin
clrscr;
nmhs:=0; {*inisialisasi nmhs*}
isitabm(tabm,nmhs); {*memanggil prosedur isitabm*}
{*menu program utama*}
repeat
begin
writeln;
writeln('MENU');
writeln('[1]: tampilkan seluruh isi tabel');
writeln('[2]: tambahkan data baru ke dalam tabel');
writeln('[0]: SELESAI');
repeat
begin
write('pilihan menu: ');
readln(menu);
if ((menu<0)or(menu>2)) then
writeln('pilihan menu tidak ada');
end;
until ((menu>=0)and(menu<=2));
case menu of
1: begin
tampildata(tabm,nmhs);
end;
2: begin
isitabm(tabm,nmhs);
end;
0: begin
writeln;
writeln('SELESAI');
end;
end;
end;
until menu=0; {*EOP*}
end.
Asslm wr wb,
Script itu adalah tugas Pra Praktikum PTI 08 yang harus dikumpulkan sebelum jam 11 siang hari kamis tanggal 21 Oktober 2010. Alhamdulillah akhirnya selesai juga. Huft..
Inilah kalo seorang mahasiswa yang berkutat di dunia programming itu pasti otak nya jadi mumet. Sampe2 otaknya gak bisa di "compile". Membuat program itu ternyata sangat menguras otak. Dari program yang nggak mw ter"compile" sampe ada syntax2 yg error dan gak tau sebabnya apa. AARRGH..! Sampe error juga nih otak..ckck..
Ada sebuah kisah tentang seorang anak yang gantengnan jelita (lho?) sedang ingin mengerjakan tugasnya di malam hari. Tugasnya yang tiap minggu selalu berhubungan dengan dunia pemrograman membuat anak yang sedikit ganteng itu membuka dan menghidupkan laptopnya dengan sebuah ritual. Bau kemenyan dimana-mana, sesajen-sesajen berupa roti selai susu kental manis juga berceceran dimana-mana (udah aneh nih). Program yang dipakai untuk mengerjakan tugas itu adalah bahasa pemrograman PASCAL, salah satu bahasa yang hanya dipelajari oleh satu Sekolah di ITB, yaitu STEI (sombong mode on)..hehe :p
Namun, apakah itu STEI? Banyak yang mengatakan STEI itu kepanjangan dari (STress EuI / Siksaan Terlalu Edan Ini /Sekolah Teknik Elektro dan Informatika / Sangat Tidak Elok Intinya / etc.).
Nah, setelah menghidupkan laptopnya, anak itutetep ganteng lalu mendownload soalnya di internet, lalu menjalankan program Free Pascal (maklum gratisan untuk kantong mahasiswa), lalu memulai pengerjaan tugas tersebut.
Saat mata terus berpandangan dengan layar laptop (ciieeee), semua rasanya terdiam. Hatinya bergejolak, detak jantung semakin cepat, kemudian hasratnya tidak tertangguhkan lagi. Dia lalu pergi ke kamar kecil dan segera "kencing" (kebelet soalnya). Setelah ritual selingan tersebut selesai, dipandangnya lagi layar laptop itu yang manis (unyuuuu). Semua syntax berupa prosedur, fungsi, if then, array, dsb. dikeluarkan untuk menyelesaikan tugas tersebut, namun belum bisa ter"compile". Anak itu terus berusaha untuktetep ganteng membuat program yang dibuatnya itu ganteng, maksudnya bisa di "compile". Dengan usaha yang tidak henti2nya akhirnya program itu bisa ter"compile". Sorak seraya dilakukan anak itu. Tapi, eits..jangan senang dulu anak muda, setelah di run, ternyata programnya ada yang error, ada syntax yang gak nyambung, dll..ARRGH..! Tidaaak..! Diulangnya lagi penulisan syntax2nya itu.
Tak terasa waktu sudah menunjukkan pukul 3.25 am saat itu. Betapa kagetnya anak itu, dia sama sekali belum memejamkan matanya dan mengistirahatkan raganya sejenak walaupun jiwanya juga terganggu oleh tugas PTI A tersebut. Segeralah dia berbaring di pulau kapuk yang empuk. Dia ingin di tidurnya yangsangat tidak nyenyak itu, bisa mendapatkan hikmah bagaimana menyelesaikan tugas tersebut. Alhamdulillah semuanya terjawab di hari2nya saat di kampus bersama teman2nya. Thanks guys..!
When my brain cannot be compiled,
oh, please make all my work can be compiled.
Wassalam.
{*Nama File : PraP08-16510043-101020-02 *}
{*Topik : Array dalam Pascal *}
{*Tanggal : 20 Oktober 2010 *}
{*Deskripsi : program isi tabel berisi array
output berupa tampilan seluruh isi array,
yaitu data mahasiswa berupa NIM, Nama, Nilai Kuis,
Nilai UTS, Nilai UAS, dan Indeks nilai*}
program tabelmahasiswa;
uses crt;
const tmmin=1; {*indeks minimum tblmhs*}
const tmmax=100; {*indeks maksimum tblmhs*}
type tymhs=record
NIM:string;
nama:string;
kuis:integer; {*[0..100]*}
uts:integer; {*[0..100]*}
uas:integer; {*[0..100]*}
indeks:char; {*['A'..'E']*}
end;
tblmhs= array[tmmin..tmmax]of tymhs; {*array*}
{*Kamus Global*}
var
tabm:tblmhs; {*menampung seluruh data mahasiswa*}
nmhs:integer; {*indeks, tabm terisi mulai dari indeks tmmin..nef. Jika nef=0, berarti tab kosong*}
menu:integer; {*kode menu*}
function hitungindeks(n1,n2,n3:integer):char; {*['A'..'E']*}
{*fungsi untuk menghitung indeks berdasarkan rata-rata n1, n2, dan n3,
dengan aturan:
Rata-rata ³ 85, indeks = ‘A’
70 <= Rata-rata < 85, indeks = ‘B’
55 <= Rata-rata < 70, indeks = ‘C’
40 <= Rata-rata < 55, indeks = ‘D’
Rata-rata < 40, indeks = ‘E’*}
{*Kamus lokal*}
var
rata:real;
{*Algoritma*}
begin
rata:=(n1+n2+n3)/3;
if ((rata>=0)and(rata<40)) then
hitungindeks:='E'
else
if ((rata>=40)and(rata<55)) then
hitungindeks:='D'
else
if ((rata>=55)and(rata<70)) then
hitungindeks:='C'
else
if ((rata>=70)and(rata<85)) then
hitungindeks:='B'
else
if ((rata>=85)and(rata<=100)) then
hitungindeks:='A'
else
writeln('rata-rata tidak bisa dihitung');
end;
procedure isitabm(var tab:tblmhs;n:integer);
{*Prosedur meminta masukan data mahasiswa (NIM, Nama, Nilai Kuis,
UTS, dan UAS) dari pengguna dan disimpan di dalam tabel Tab.
Masukan dari pengguna diasumsikan selalu benar. Indeks diisi
berdasarkan hasil perhitungan dengan menggunakan fungsi
HitungIndeks. Pengisian data berakhir jika pengguna memasukkan NIM
= ‘99999999’*}
{*I.S.: tab bisa kosong atau bisa sudah terisi*}
{*F.S.: elemen tab bertambah*}
{*Kamus lokal*}
var
i:integer;
{*Algoritma*}
begin
if nmhs=0 then
i:=0
else
i:=nmhs;
repeat
begin
i:=i+1;
writeln;
writeln('Data mahasiswa ke-',i);
write('NIM : ');
readln(tab[i].NIM);
if (not(tab[i].NIM='99999999')) then
begin
write('Nama : ');
readln(tab[i].nama);
repeat
begin
write('Nilai Kuis = ');
readln(tab[i].kuis);
if ((tab[i].kuis<0)or(tab[i].kuis>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].kuis>=0)and(tab[i].kuis<=100));
repeat
begin
write('Nilai UTS = ');
readln(tab[i].uts);
if ((tab[i].uts<0)or(tab[i].uts>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].uts>=0)and(tab[i].uts<=100));
repeat
begin
write('Nilai UAS = ');
readln(tab[i].uas);
if ((tab[i].uas<0)or(tab[i].uas>100)) then
writeln('masukkan salah! nilai: 0 s.d. 100');
end;
until ((tab[i].uas>=0)and(tab[i].uas<=100));
tab[i].indeks:=hitungindeks(tab[i].kuis,tab[i].uts,tab[i].uas);
writeln;
end;
if i>tmmax then
writeln('tabel sudah penuh!');
end;
until ((tab[i].NIM='99999999')or(i>tmmax));
nmhs:=i-1;
end;
procedure tampildatamhs(mhs:tymhs);
{*Prosedur untuk menuliskan sebuah data mahasiswa ke layar*}
{*I.S. : mhs terdefinisi*}
{*F.S. : Data mhs tampil di layar*}
{*Kamus lokal*}
{*Algoritma*}
begin
writeln('NIM : ',mhs.NIM);
writeln('Nama : ',mhs.nama);
writeln('Nilai kuis : ',mhs.kuis);
writeln('Nilai UTS : ',mhs.uts);
writeln('Nilai UAS : ',mhs.uas);
writeln('Indeks Nilai : ',mhs.indeks);
end;
procedure tampildata(tab:tblmhs; n:integer);
{*Prosedur untuk menampilkan data pada tab*}
{*I.S.: tab bisa kosong, atau isi*}
{*F.S.: Isi tab tampil di layar. Jika
tab kosong, pesan “Tabel kosong” muncul di layar*}
{*Kamus lokal*}
var
i:integer;
{*Algoritma*}
begin
if nmhs=0 then
writeln('tabel kosong')
else
begin
for i:=tmmin to nmhs do
begin
writeln;
writeln('Data mahasiswa ke-',i);
tampildatamhs(tab[i]);
end;
end;
end;
{*Program Utama*}
begin
clrscr;
nmhs:=0; {*inisialisasi nmhs*}
isitabm(tabm,nmhs); {*memanggil prosedur isitabm*}
{*menu program utama*}
repeat
begin
writeln;
writeln('MENU');
writeln('[1]: tampilkan seluruh isi tabel');
writeln('[2]: tambahkan data baru ke dalam tabel');
writeln('[0]: SELESAI');
repeat
begin
write('pilihan menu: ');
readln(menu);
if ((menu<0)or(menu>2)) then
writeln('pilihan menu tidak ada');
end;
until ((menu>=0)and(menu<=2));
case menu of
1: begin
tampildata(tabm,nmhs);
end;
2: begin
isitabm(tabm,nmhs);
end;
0: begin
writeln;
writeln('SELESAI');
end;
end;
end;
until menu=0; {*EOP*}
end.
Asslm wr wb,
Script itu adalah tugas Pra Praktikum PTI 08 yang harus dikumpulkan sebelum jam 11 siang hari kamis tanggal 21 Oktober 2010. Alhamdulillah akhirnya selesai juga. Huft..
Inilah kalo seorang mahasiswa yang berkutat di dunia programming itu pasti otak nya jadi mumet. Sampe2 otaknya gak bisa di "compile". Membuat program itu ternyata sangat menguras otak. Dari program yang nggak mw ter"compile" sampe ada syntax2 yg error dan gak tau sebabnya apa. AARRGH..! Sampe error juga nih otak..ckck..
Ada sebuah kisah tentang seorang anak yang ganteng
Namun, apakah itu STEI? Banyak yang mengatakan STEI itu kepanjangan dari (
Nah, setelah menghidupkan laptopnya, anak itu
Saat mata terus berpandangan dengan layar laptop (ciieeee), semua rasanya terdiam. Hatinya bergejolak, detak jantung semakin cepat, kemudian hasratnya tidak tertangguhkan lagi. Dia lalu pergi ke kamar kecil dan segera "kencing" (kebelet soalnya). Setelah ritual selingan tersebut selesai, dipandangnya lagi layar laptop itu yang manis (unyuuuu). Semua syntax berupa prosedur, fungsi, if then, array, dsb. dikeluarkan untuk menyelesaikan tugas tersebut, namun belum bisa ter"compile". Anak itu terus berusaha untuk
Tak terasa waktu sudah menunjukkan pukul 3.25 am saat itu. Betapa kagetnya anak itu, dia sama sekali belum memejamkan matanya dan mengistirahatkan raganya sejenak walaupun jiwanya juga terganggu oleh tugas PTI A tersebut. Segeralah dia berbaring di pulau kapuk yang empuk. Dia ingin di tidurnya yang
When my brain cannot be compiled,
oh, please make all my work can be compiled.
Wassalam.
Labels:
story
1 comment(s):
tetep ganteng??
wkwkwk
Posting Komentar