Sabtu, 04 Desember 2010

LISTING PEMROGRAMAN ARRAY & RECORT


program list;  {untuk menampilkan list data karyawan}
uses wincrt;
type karyawan=record
  nama: string;
  kelamin: string;
  alamat : string;
end;
var kry: karyawan;
begin
  clrscr;
  write('Masukkan Nama: '); readln(kry.nama);
  write('Masukkan Jenis Kelamin: '); readln(kry.kelamin);
  write('Masukkan Alamat: '); readln(kry.alamat);
  {untuk memasukkan data karyawan}
  writeln(kry.nama);
  writeln(kry.kelamin);
  writeln(kry.alamat);
  {untuk menampilkan data karyawan}
end.

RECORT
uses wincrt;
type
  mahasiswa = record
  nrp: string;
  nama: string;
  alamat:string;
end
var
  mhs : mahasiswa;
begin
  write(’Inputkan nama’);readln(mhs.nama);
  write(’Inputkan nrp’);readln(mhs.nrp);
  write(’Inputkan alamat’);readln(mhs.alamat);
  {dengan begitu kita sudah mempunyai sebuah entitas mahasiswa lengkap dengan nilai atributnya
  untuk menampilkan datanya}
  writeln(mhs.nama,mhs.nrp,mhs.alamat);
end.

ARRAY DAN RECORT
program aljan;
Uses winCrt;
Var
  nil1 : Array[1..100] of Integer;
  n,i,j,dum : Integer;
Begin
  ClrScr;
  Write('mau isi berapa data acak (integer) ='); readln(n);
  For i := 1 to n Do
  Begin
    Write('Data Ke ',i,':');Readln(nil1[i]);
  End;
 
  {* penyapuan proses}
  for i:= 1 to n-1 do
  begin
    for j:= i to n do
      begin
        if nil1[j]
          begin
            dum:=nil1[j];
            nil1[j]:=nil1[i];
            nil1[i]:=dum;
          end;
      end;
  end;
  writeln;
  writeln('Hasil Sortir');
  for i := 1 to n do
    write(nil1[i]:3);
  readln;
end.

uses wincrt;
type
  Mahasiswa = Record
  Nama :string[30];
  NIM :string[10];
  Alamat :string[50];
end;
var
  mhs:Mahasiswa;
Begin
  clrscr;
  write('Nama : ');readln(Mhs.Nama);
  write('NIM : ');readln(Mhs.NIM);
  write('Alamat : ');readln(Mhs.Alamat);
  writeln;
  writeln('Nama Anda : ',Mhs.Nama);
  writeln('NIM Anda : ',Mhs.NIM);
  writeln('Alamat Anda : ',Mhs.Alamat);
end.

Seorang dosen memberi tugas mahasiswanya untuk membuat listing program pascal dalam rangka praktik materi array.
Inti tugasnya adalah membuat program database sederhana konversi nilai mahasiswa, dimana pada pertama kali BAK menginput :
  1. Jumlah data mahasiswa
  2. Nim mahasiswa
  3. Nama mahasiswa
  4. Nilai pertama
  5. Nilai kedua
Hasil yang didapat adalah data mahasiswa, rata2 nilai dan konversi ke nilai hurufnya.
Ya sekurang dan selebihnya listingnya kaya gini, klo ada yang kurang mohon maaf.
Program Input_nilai_mhs;
Uses WinCrt;
Const
garis='-------------------------------------------------------------------------------';
Var
nil1,nil2 : Array [1..10] Of 0..100; {Array dgn Type subjangkauan}
nim : Array [1..10] Of String [8];
nama : Array [1..10] Of String [50];
n,i,bar : Integer;
jum : Real;
tl : Char;
Begin
  ClrScr;
  { pemasukan data dalam array }
  Writeln ('Maximize dulu windows anda,');
  Writeln ('untuk mendapat hasil yang maksimal!!!');
  Write ('Berapa Data Mahasiswa yang aka diinput :');
  Readln (n);
  For i:= 1 To n Do
  Begin
    ClrScr;
    GotoXY(30,4+1); Write('Data Ke-:',i:2);
    GotoXY(10,5+i); Write('NIM :'); Readln(nim[i]);
    GotoXY(10,6+i); Write('Nama :'); Readln(nama[i]);
    GotoXY(10,7+i); Write('Nilai 1 :'); Readln(nil1[i]);
    GotoXY(10,8+i); Write('Nilai 2 :'); Readln(nil2[i]);
  End;
  { proses data dalam array }
  ClrScr;
  GotoXY(5,4); Write(Garis);
  GotoXY(5,5); Write ('No');
  GotoXY(9,5); Write ('NIM');
  GotoXY(18,5); Write ('Nama');
  GotoXY(38,5); Write ('Nilai 1');
  GotoXY(45,5); Write ('Nilai 2');
  GotoXY(52,5); Write ('Rata');
  GotoXY(59,5); Write ('Abjad');
  GotoXY(5,6); Write (Garis);
  { proses Cetak isi array dan seleksi kondisi }
  bar := 7;
  For i:= 1 To n Do
  Begin
    jum:=(nil1[i]+nil2[i])/2;
    If jum>= 90 Then tl:='A'
    Else
      If jum>80 Then tl:='B'
    Else
      If jum>60 then tl:='C'
    Else
      If jum >50 Then tl:='D'
    Else
      tl:='E';
    { cetak hasil yang disimpan di array dan hasil }
    { penyeleksian kondisi }
    GotoXY(5,bar); Writeln(i:2);
    GotoXY(9,bar); Writeln (NIM[i]);
    GotoXY(18,bar); Writeln (NAMA[i]);
    GotoXY(38,bar); Writeln (NIL1[i]:4);
    GotoXY(45,bar); Writeln (NIL2[i]:4);
    GotoXY(52,bar); Writeln (jum:5:1);
    GotoXY(59,bar); Writeln (tl);
    bar:=bar+1;
  End;
  GotoXY(5,bar+1);Writeln(garis);
  Readln;
End.

Program Mencari Rata-rata, Nilai Tertinggi dan Terendah
uses wincrt;
 
var a, siswa : integer;
nilai, total, tinggi, rendah, rata : real;
 
begin
  total := 0;
  write ('jumlah siswa : '); readln (siswa);
  writeln;
  for a := 1 to siswa do
  begin
    write ('nilai siswa ke ',a,' : '); readln (nilai);
    total := total + nilai;
    if a = 1 then begin
      tinggi := nilai;
      rendah := nilai;
    end
    else begin
      if nilai > tinggi then tinggi := nilai
      else begin
      if nilai < rendah then rendah := nilai;
      end;
    end;
  end;
  rata := total / siswa;
  writeln;
  writeln ('nilai terendah    : ', rendah :1:2);
  writeln ('nilai tertinggi   : ', tinggi :1:2);
  writeln ('rata-rata         : ',rata :1:2);
end.



Tampilan :
jumlah siswa : 6
nilai siswa ke 1 : 89
nilai siswa ke 2 : 90
nilai siswa ke 3 : 78
nilai siswa ke 4 : 69
nilai siswa ke 5 : 75
nilai siswa ke 6 : 80
nilai terendah : 69.00
nilai tertinggi : 90.00
rata-rata : 80.17
Logika.
Awalnya total diberi nilai 0.
Pertama masukkan jumlah siswa { jumlah siswa : 6 }
Maka akan terjadi 6 perulangan untuk menghitung total
Perulangan ke 1 ; a=1 ==:> nilai = 89
total = 0 + 89 = 89
a=1? Ya, berarti 89 adalah nilai tertinggi dan nilai terendah dalam perulangan pertama
perulangan ke 2 ; a=2 ==:> nilai = 90
total = 89 + 90 = 179
a=1? Tidak, apakah nilai 90 > 89 ? ya, maka 90 adalah nilai tertinggi dalam perulangan ke 2.
Perulangan ke 3 ; a=3 ==:> nilai = 78
Total = 179 + 78 = 257
a=1? Tidak, apakah nilai 78 > 90 ? tidak, maka 90 tetap jadi nilai tertinggi dalam perulangan ke 3.
Apakah nilai 78 < 89 ? ya, maka 78 adalah nilai terendah dalam perulangan ke 3. Perulangan ke 4 ; a=4 ==:> nilai = 69
Total = 257 + 69 = 326
a=1? Tidak, apakah nilai 69 > 90? Tidak, maka 90 tetap jadi nilai tertinggi dalam perulangan ke 4.
Apakah nilai 69 < 78 ? ya, maka 69 adalah nilai terendah dalam perulangan ke 4. Perulangan ke 5 ; a=5 ==:> nilai = 75
Total = 326 + 75 = 401
a=1? Tidak, apakah nilai 75 > 90? Tidak, maka 90 tetap jadi nilai tertinggi dalam perulangan ke 5.
Apakah nilai 75 < 69 ? tidak, maka 69 adalah nilai terendah dalam perulangan ke 5. Perulangan ke 6 ; a=6 ==:> nilai = 80
Total = 401 + 80 = 481
a=1? Tidak, apakah nilai 80 > 90 ? tidak, maka 90 tetap jadi nilai tertinggi dalam perulangan ke 6.
Apakah nilai 90 < 69 ? tidak, maka 69 tetap jadi nilai terendah dalam perulangan ke 6.
Menghitung rata-rata = total / siswa
= 481 / 6
= 80.17
Ditampilkan hasil :
Nilai terendah : 69.00
Nilai tertinggi : 90.00
Rata-rata : 80.17

Program Nilai

Program nilai ;
Uses crt ;
Var huruf : char ;
Begin
Write ( ‘ nilai yang didapat: ‘);readln (huruf) ;
Case huruf of
‘A’ : writeln (’sangat baik’) ;
‘B’ : writeln ( ‘baik ‘) ;
‘C’ : writeln ( ‘cukup’) ;
‘D’ : writeln ( ‘kurang’ ) ;
‘E’ : writeln ( ‘gagal’ ) ;
End ;
Readln ;
End.

Tidak ada komentar: