Program Wartel Record Pascal

Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield.
Sebagai Contoh, data Lama Bicara pada Wartel di suatu perusahaan Swasta di Indonesia, merupakan sebuah record yang dapat terdiri dari berbagai field, dan subfield
seperti berikut ini :

    1 Nama Bilik
    2 Lama Bicara terdiri atas :
      Menit
      Detik
   3 Sambungan
      Lokal
      Interlokal
      Internasional

dan sebagainya..

Contoh Program :

  • program wartel;
  • uses wincrt;
  • type data=record
  • bilik:integer;
  • menit:integer;
  • detik:integer;
  • jenis_pgl:char;
  • end;
  • var
  • tarif:real;
  • rincian:data;
  • lama,conv:real;
  • jenis:string;
  • urt:integer;
  • procedure kop;
  • begin
  • urt:=6;
  • gotoxy(21,urt-5);writeln('-------------------------------------');
  • gotoxy(21,urt-4);writeln('>> Program Wartel Mahasiswa Unisla <<');
  • gotoxy(21,urt-3);writeln('-                                   -');
  • gotoxy(21,urt-2);writeln('-------------------------------------');
  • writeln;
  • end;
  • procedure input;
  • begin
  • urt:=urt+1;
  • write('Masukkan Nomor Bilik               = ');readln(rincian.bilik);
  • write('Masukkan Lama Bicara (menit:detik) = ');readln(rincian.menit);
  • gotoxy(40,urt);write(':');readln(rincian.detik);
  • writeln;
  • writeln('Masukkan Jenis Panggilan  = ');
  • writeln(' a. Lokal');
  • writeln(' b. InterLokal');
  • writeln(' c. Internasional');
  • writeln;
  • write('Pilih : ');readln(rincian.jenis_pgl);
  • writeln;
  • end;
  • procedure proses;
  • begin
  • conv:=(rincian.menit)*60;
  • lama:=conv+(rincian.detik);
  • case(rincian.jenis_pgl) of
  • 'a': tarif:=lama*10;
  • 'b': tarif:=lama*30;
  • 'c': tarif:=lama*60;
  • end;
  • end;
  • procedure output;
  • begin
  • urt:=urt+8;
  • writeln('Bilik Yang Anda Pakai : ',(rincian.bilik));
  • writeln('Lama Bicara Anda      : ',(rincian.menit),' : ',(rincian.detik));
  • write('Jenis Panggilan       : ');
  • if (rincian.jenis_pgl)='a' then writeln('lokal')
  • else if (rincian.jenis_pgl)='b' then writeln('InterLokal')
  • else if (rincian.jenis_pgl)='c' then writeln('Internasional');
  • writeln;
  • writeln('Tarif yang harus di bayar : ',tarif:4:0);
  • writeln;
  • writeln;
  • gotoxy(21,urt);writeln('TERIMA KASIH ATAS KUNJUNGAN ANDA');
  • gotoxy(21,urt+1);writeln('---------------------------------');
  • end;
  • begin
  • kop;
  • input;
  • proses;
  • clrscr;
  • kop;
  • output;
  • end.
Read More!

Array 2 Dimensi Pascal

Sebuah array dimensi banyak atau multi-dimensional array didefinisikan sebagai sebuah array yang elemennya berupa array pula. Misal array B mempunyai M elemen berupa array pula, yang terdiri dari N elemen. Kalau hal tersebut kita gambarkan, akan terbentuk baris dan kolom.
Untuk itu diperlukan dua buah subscript. Yang pertama digunakan untuk menyatakan posisi baris, sedangkan yang kedua untuk posisi kolom. Secara umum array dimensi dua B, dengan elemen bertipe data T, subscript baris dari l sampai M, subscript kolom dari l sampai N, ditulis sebagai B(1:M, 1:N) = (B(I,J)), I = 1, 2, ...,M dan J = 1, 2,...,N dengan setiap elemen B(I,J) bertipe data T. Array B tersebut dikatakan berukuran atau berorder M x N. Di sini banyak elemen array adalah M*N.
Seperti halnya pada array dimensi satu, pada array dimensi dua batas bawah untuk subscript I maupun J dapat diambil secara umum. Misalnya, batas bawah subscript baris adalah L1 subscript kolom adalah L2 sedangkan batas atas subscript baris adalah U1 dan untuk kolom adalah U2, maka array dimensi dua tersebut dapat dinotasikan sebagai :
B(L1:U1, L2:U2) = (B(I,J)), L1 <= 1 <= U1, L2 <=J <= U2

Contoh Program :

  • Program Input_nilai_mhs;
  • Uses WinCrt;
  • Const
  • garis='------------------------------------------------------------------------';
  • batas='|';
  • Var
  • nil1,nil2,nil3 : Array [1..10] Of 0..100;
  • nim: Array [1..10] Of String [8];
  • nama: Array [1..10] Of String [50];
  • n,i,bar: Integer;
  • rata,jml: Real;
  • tl: Char;
  • procedure logo;
  • begin
  • gotoxy(21,1);writeln('-------------------------------------------');
  • gotoxy(21,2);writeln('>> Program Jumlah Nilai Mahasiswa Unisla <<');
  • gotoxy(21,3);writeln('-                                         -');
  • gotoxy(21,4);writeln('-------------------------------------------');
  • writeln;
  • end;
  • Begin
  •   ClrScr;
  •   logo;
  •   Write ('Berapa Data Mahasiswa yang aka diinput : ');Readln (n);
  •   For i:= 1 To n Do
  •   Begin
  •     ClrScr;
  •     GotoXY(30,4+i); Write('Input Data Mahasiswa Ke-: ',i:2);
  •     writeln;
  •     GotoXY(10,5+i); Write('NIM       : '); Readln(nim[i]);
  •     GotoXY(10,6+i); Write('Nama      : '); Readln(nama[i]);
  •     GotoXY(10,7+i); Write('Nilai TGS : '); Readln(nil1[i]);
  •     GotoXY(10,8+i); Write('Nilai UTS : '); Readln(nil2[i]);
  •     GotoXY(10,9+i); Write('Nilai UAS : '); Readln(nil3[i]);
  •   End;
  •   ClrScr;
  •   logo;
  •   bar:=12;
  •   GotoXY(4,6); Write(Garis);
  •   GotoXY(6,7); Write ('No');
  •   GotoXY(10,7); Write ('NIM');
  •   GotoXY(20,7); Write ('Nama');
  •   GotoXY(37,7); Write ('TGS');
  •   GotoXY(43,7); Write ('UTS');
  •   GotoXY(49,7); Write ('UAS');
  •   GotoXY(56,7); Write ('Rata');
  •   GotoXY(63,7); Write ('Jml%');
  •   GotoXY(70,7); Write ('Abjad');
  •   GotoXY(4,8); Write (Garis);
  •     GotoXY(4,7);Writeln(batas);
  •     GotoXY(8,7);Writeln(batas);
  •     GotoXY(19,7);Writeln(batas);
  •     GotoXY(35,7);Writeln(batas);
  •     GotoXY(41,7);Writeln(batas);
  •     GotoXY(47,7);Writeln(batas);
  •     GotoXY(54,7);Writeln(batas);
  •     GotoXY(61,7);Writeln(batas);
  •     GotoXY(69,7);Writeln(batas);
  •     GotoXY(75,7);Writeln(batas);
  •   bar := 9;
  •   For i:= 1 To n Do
  •   Begin
  •     rata:=(nil1[i]+nil2[i]+nil3[i])/3;
  •     jml:=(nil1[i]*20/100+nil2[i]*30/100+nil3[i]*50/100);
  •     If rata>= 90 Then tl:='A'
  •     Else
  •       If rata>80 Then tl:='B'
  •     Else
  •       If rata>60 then tl:='C'
  •     Else
  •       If rata>50 Then tl:='D'
  •     Else
  •       tl:='E';
  •     GotoXY(5,bar); Writeln(i:2);
  •     GotoXY(10,bar); Writeln (NIM[i]:6);
  •     GotoXY(20,bar); Writeln (NAMA[i]);
  •     GotoXY(36,bar); Writeln (NIL1[i]:4);
  •     GotoXY(42,bar); Writeln (NIL2[i]:4);
  •     GotoXY(48,bar); Writeln (NIL3[i]:4);
  •     GotoXY(55,bar); Writeln (rata:2:2);
  •     GotoXY(63,bar); Writeln (jml:2:2);
  •     GotoXY(72,bar); Writeln (tl);
  •     GotoXY(4,bar);Writeln(batas);
  •     GotoXY(8,bar);Writeln(batas);
  •     GotoXY(19,bar);Writeln(batas);
  •     GotoXY(35,bar);Writeln(batas);
  •     GotoXY(41,bar);Writeln(batas);
  •     GotoXY(47,bar);Writeln(batas);
  •     GotoXY(54,bar);Writeln(batas);
  •     GotoXY(61,bar);Writeln(batas);
  •     GotoXY(69,bar);Writeln(batas);
  •     GotoXY(75,bar);Writeln(batas);
  •     bar:=bar+1;
  •   End;
  •   GotoXY(4,bar+1);Writeln(garis);
  •   Readln;
  • End.


Read More!

Array 1 Dimensi

Salah satu struktur data yang teramat penting adalah array atau larik. Array merupakan bagian dasar, yang disebut blok, guna keperluan pembentukan suatu struktur data lain yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik oleh array.
Kita dapat mendefinisikan array sebagai suatu himpunan hingga elemen, terurut dan homogen. Terurut, kita artikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua, dan seterusnya sampai elemen ke-n. Sedangkan pengertian elemen yang homogen adalah bahwa setiap elemen dari sebuah array tertentu haruslah mempunyai tipe data yang sama.

Sebagai Contoh berikut ini :

  • program urutkan_data;
  • uses wincrt;
  • type
  •     urtdata=string;
  • var
  •    i,j:byte;
  •    temp:urtdata;
  •    lagi:char;
  •    data:array[1..10] of urtdata;
  •    k:integer;
  • procedure kop;
  • begin
  • gotoxy(21,1);writeln('------------------------------------');
  • gotoxy(21,2);writeln('>> Program Pengurutan Data Unisla <<');
  • gotoxy(21,3);writeln('-                                  -');
  • gotoxy(21,4);writeln('------------------------------------');
  • writeln;
  • end;
  • begin
  • lagi:='y';
  • while (lagi='y') or (lagi='Y') do
  • begin
  • clrscr;
  • kop;
  • write('Masukkan Jumlah Data : ');readln(k);
  • writeln;
  • for i:=1 to k do
  • begin
  •      write('Masukkan Data ke - ',i,' : ');readln(data[i]);
  • end;
  • for i:= 1 to k-1 do
  • for j:= i to k do
  • if data[i]>data[j]  then
  • begin
  •      temp:=data[i];
  •      data[i]:=data[j];
  •      data[j]:=temp;
  • end;
  • clrscr;
  • kop;
  • writeln(' Data Setelah di urutkan');
  • writeln('-------------------------');
  • writeln;
  • writeln;
  • for i:=1 to k do
  •     writeln(i:2,'. ',data[i]);
  • writeln;
  • write('Ulangi ? (Y/T) : ');readln(lagi);
  • end;
  • end.


Read More!

Function Pascal

Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya.
Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri. Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu kuantitas.

Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan. Secara umum bentuk header suatu function adalah :

                   FUNCTION nama : jenis hasil;

Atau

                   FUNCTION nama (formal parameter : jenis ) : jenis_hasil;


Sebagaimana contoh Program Factorial berikut :

    • program faktorial;
    • uses wincrt;
    •  
    • var
    • n,cacah:integer;
    • function fakt(m:integer):longint;
    • begin
    • if m=0 then
    • fakt:=1
    • else
    • fakt:=m*fakt(m-1);
    • end;
    •  
    • begin
    • clrscr;
    • gotoxy(21,1);writeln('---------------------------------------------');
    • gotoxy(21,2);writeln('>> Program Factorial & Perpangkatan Unisla <<');
    • gotoxy(21,3);writeln('-     -----     -----     -----     -----   -');
    • gotoxy(21,4);writeln('---------------------------------------------');
    • writeln;
    • write('Masukkan Jumlah Bilangan : ');readln(n);
    • writeln;
    • for cacah:=1 to n do
    • writeln('     ',cacah,' = ',fakt(cacah));
    • readln;
    • end.

    Read More!

    Procedure Pascal

    Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.
    Prosedur banyak digunakan pada program yang terstruktur, karena :
    1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
    2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
    Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
    Bentuk Umum header suatu procedure adalah :

                PROCEDURE nama;
    Atau
                PROCEDUREnama (formal parameter : jenis);



    Contoh Program 

    1. program prak1unisla;
    2. uses wincrt;
    3. var
    4. kol,bar,has1,has2:integer;
    5. procedure tabel;
    6. begin
    7. has1:=kol+bar;
    8. has2:=kol*bar;
    9. writeln(' Kolom + Baris = ',has1);
    10. writeln(' Kolom * Baris = ',has2);
    11. end;
    12. begin
    13. gotoxy(21,1);writeln('------------------------------------');
    14. gotoxy(21,2);writeln('>> Program Pertama Praktek Unisla <<');
    15. gotoxy(21,3);writeln('-  ------------------------------  -');
    16. gotoxy(21,4);writeln('------------------------------------');
    17. writeln;
    18. write('Masukkan Jumlah Kolom : ');readln(kol);
    19. write('Masukkan Jumlah Baris : ');readln(bar);
    20. writeln;
    21. tabel;
    22. end.
    Read More!

    My Blog List