Rabu, 12 November 2014

latihan progam pascal



Latihan Menulis Program



Tulislah program kecil di bawah ini, dan analisalah jalannya program serta output yang di hasilkan. Kecepatan menulis dengan benar (identasi), dan jumlah kesalahan (kesalahan sintak, logika dan kompilasi) yang sedikit menentukan seberapa bagus anda menguasai latihan ini.

PROGRAM SEDERHANA
program hello;
(* File : HELLO.PAS *)
(* menuliskan Hello ke layar *)
begin
     writeln ( 'hello ') ;
end.

program hellodos;
(* File : HELLODOS.PAS *)
(* menuliskan Hello ke layar *)
uses crt;
begin
     clrscr;
     writeln ( 'hello ') ;
end.

INPUT/OUTPUT
program baca;
(* File : BACA.PAS *)
(* contoh membaca integer*)
(* kemudian menuliskan nilai yang dibaca *)
var
     a : integer;
begin
     writeln ('Contoh membaca dan menulis, ketik nilai integer: ') ;
     readln (a) ;
     writeln ('nilai yang dibaca : ', a) ;
end.

ASSIGNMENT
program asign;
(* File : ASIGN.PAS *)
(* Assigntment dan print *)
var
     i : integer;
begin  
     writeln ( 'hello' );
     i := 5;
     writeln ( 'Ini nilai i : ',i);
end.




program asign1;
(* File : ASIGN1.pas *)
(* Assignment dan print *)
var
     i : integer;
     ii : longint;
begin
     writeln ( 'hello');
     i := 1234;
     ii := 123456 ;
     writeln ( 'Ini nilai i=1234 = : ',i);
     writeln ( 'Ini nilai ii=123456 : ',ii);
     writeln ( 'Ini nilai max integer: ',maxint);
     writeln ( 'Ini nilai max longint: ',maxlongint);
end.

TIPE DASAR

program TDasar;
(* File : TDasar.pas *)
(* Deklarasi, assignment dan penulisan type dasar *)

var
     i               : integer ;
     x,y        : real ;
     found      : boolean;
begin
     i:= 5; writeln ('i = ', i);
     x := 0.5; writeln ('x = ', x);
     y := 1.0e + 3; writeln ('y = ', y);
     found:= true; writeln ('Found = ', found);
end.

EKSPRESI DAN OPERATOR

Program oprator;
(* File : oprator.pas *)
(* Contoh pengoperasian variabel bertype dasar *)

VAR
     Bool1, Bool2, TF : Boolean;
     i, j, hsl : Integer;
     x,y,res : real;
Begin
     writeln ('Utk program ini, baca teksnya dan tambahkan output');
     Bool1 := True; Bool2 := False;
     (* contoh-contoh ekspresi: bukan untuk assignment berulang-ulang *)
     TF := Bool1 And Bool2 ;
     TF := Bool1 or Bool2 ;
     TF := Not Bool1 ;
     TF := Bool1 Xor Bool2 ;
    
     (* operasi numerik *)
     i := 5; j := 2 ;
     hsl := i+j; hsl := i - j; hsl := i div j; hsl := i * j;
     hsl := i div j ; (* pembagian bulat *)
     hsl := i Mod j ; (* sisa *)
     (* operasi numerik *)
     x := 5.0 ; y := 2.0 ;
     res := x + y; res := x - y; res := x / y; res := x * y;
     (* operasional relasional numerik *)
     TF := i < j; TF := i > j; TF := i <= j;
     TF := i >= j; TF := i <> y;
     (* operasional relasional numerik *)
     TF := x < y; TF := x > y; TF := x <= y;
     TF := x >= y; TF := x <> y;
end.

STRING
program manipstr;
(* manipulasi string sederhana *)
var
     str1, str2 : string;
     strr : string;
     stri : string;
     i, kode: integer;
begin
     str1 := 'Saya ';
     str2 := ' Belajar di ITB';
     strr := str1 + str2;
     readln (strr);
     (* koneversi string numerik ke nilai integer *)
     stri := '123';
     val (stri, i, kode ) ; (* amatilah nilai kode setelah eksekusi *)
     writeln(stri, '-', i,'-', kode);
end.

program BACASTR;
(* File : BACASTR.pas *)
(* alokasi string, kemudian mengisinya dengan membaca *)

VAR
     str : string;
     str1 : string;
begin
     writeln ( 'Baca string, maks 256 karakter: ');
     readln ( str);
     writeln ( 'String yang dibaca : ' ,str);
     str1 := str;
     writeln ( 'String yang disalin : ',str1);
end.



KONSTANTA
program KONSTANTA;
(* File : konstant.pas *)
(* Membaca jari-jari, menghitung luas lingkaran *)
(* Latihan pemakaian konstanta *)

CONST
     pi=3.1415;
VAR
     r : real;
begin
     write ('Jari-jari lingkaran =');
     readln (r) ;
     writeln ('Luas lingkaran = ', pi*r*r);
     writeln (' Akhir program ');
(* Kompilasi, amatilah apa yang terjadi jika komentar sbb. dibuang *)
(* perhatikan option pada kompilator anda *)
(* pi := 10.0; *)
end.

program KONSTAN2;
(* File : KONSTAN2.PAS *)
(* Menghitung luas lingkaran, dari jari-jari yang dibaca *)
(* Latihan pemakaian konstanta *)
CONST
     pi = 3.1415;
     dua = 2.0;
VAR
     r          : real;
     luas : real;
     kel : real;
begin
     writeln ( 'Jari-jari lingkaran =');
     readln (r) ;
     luas := pi * r * r;
     writeln ( 'Luas lingkaran = ', luas:6:2);
     kel := dua* pi * r ;
     writeln ('keliling lingkaran= ',luas:6:2);
     writeln ('akhir program ');
end.

HIMPUNAN (SET)
program Himpunan;
(* File : Himpunan.pas *)
(* Pendefisinian dan pemanfaatan himpunan : SET *)
type
     Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
     weekday = SET of Hari;
var
     H                          : Hari;
     H0, H1, H2 : Hari;
     W                          : weekday;
begin
(* Instruksi berikut salah :type set tidak dapat ditulis/baca*)
(* writeln (' Hari = ', H); *)
(* Assignment : boleh *)
     H1 := selasa;
(* prosedur terdefenisi *)
     H2 := succ (H1);
     H0 := pred (H1);
(* pemanfaatan untk mengontrol pengulangan *)
(* Akan dibahas pada pengulangan *)
     for H := senin to minggu do
     begin
           writeln ( 'Selamat Pagi ...');
           writeln ( 'Ordinal : ', ord (H) );
     end;
(* intruksi CASE : akan dibahas pada analisa kasus*)
     case H1 of
           senin :
                writeln ( 'senin' );
           selasa :
                writeln ( 'selasa' );
           rabu :
                writeln ( 'rabu' );
           kamis :
                writeln ( 'kamis' );
           jumat :
                writeln ( 'jumat' );
           sabtu :
                writeln ( 'sabtu' );
           minggu :
                writeln ( 'minggu' );
           else
                writeln ( 'tidak terdefinisi ');
     end;(*endcase*)
end.


ANALISA KASUS, KONDISIONAL
(* File : IF1.PAS *)
(* contoh pemakaian IF satu kasus *)
(* membaca nilai integer, menuliskan nilainya jika positif *)
Program IF1;
Var a : integer;
begin
     writeln ( 'Contoh IF satu kasus ');
     write ( 'Ketikkan satu nilai integer : ');
     readln (a);
     if (a >= 0) then
     begin
           writeln ( 'Nilai a positif... ', a);
     end;
end.
(* File :IF2.PAS *)
(* contoh pemakaian IF dua kasus komplementer *)
(* Membaca sebuah nilai, *)
(* menuliskan 'Nilai a positif , nilai a', jika a >=0 *)
(* 'Nilai a negatif , nilai a', jika a <0 *)
program IF2;
var
     a : integer;
begin
     writeln ('Contoh IF dua kasus ');
     write ( 'Ketikan suatu nilai integer :');
     readln (a);
     if (a >= 0) then
     begin
           writeln ( 'Nilai a positif ', a);
     end else (* a<0 *)
     begin
           writeln ( 'Nilai a negatif ', a);
     end;
end.

(* File : IF3.PAS *)
(* contoh pemakaian IF dua kasus komplementer *)
(* Membaca sebuah nilai, *)
(* menuliskan 'Nilai a positif , nilai a', jika a>0 *)
(* 'Nilai a sama dengan nol , nilai a', jika a =0 *)
(* 'Nilai a negatif , nilai a', jika a <0 *)
program IF3;
var
     a : integer;
begin
     writeln ( 'Contoh IF tiga kasus');
     write ( 'Ketikkan suatu nilai integer :');
     readln (a);
     if (a > 0) then
     begin
           writeln ( 'Nilai a positif ', a);
     end else
           if (a=0) then
           begin
                writeln ( 'Nilai a sama dengan nol ', a);
           end else if (a<0) then
                begin
                     writeln ( 'Nilai a negatif ', a);
                end;
end.






program KASUS;
(* File : KASUS.PAS *)
(* Contoh kasus dengan intruksi CASE *)
VAR
     cc : char;
begin
     writeln ( 'Ketikkan sebuah huruf, akhiri dengan RETURN ');
     readln (cc);
     case cc of
           'a' : begin
                                writeln ( ' Yang anda ketik adalah a ' );
                           end;
           'u' : begin
                                writeln ( ' Yang anda ketik adalah u ' );
                           end;
           'e' : begin
                                writeln ( ' Yang anda ketik adalah e ' );
                           end;
           'o' : begin
                                writeln ( ' Yang anda ketik adalah o ' );
                           end;
           'i' : begin
                                writeln ( ' Yang anda ketik adalah i ' );
                           end
           else writeln ( ' Yang anda ketik adalah huruf mati atau angka' );
     end;(*endcase*)
end.

(* File : wujudair.PAS *)
(* contoh pemakaian IF tiga kasus : wujud air *)
program wujudair;
var T: integer;
begin
     writeln ( 'Contoh IF tiga kasus ' );
     write ( 'Temperatur (der. C) = ' );readln (T);
     if (T < 0) then
     begin
           writeln ( 'Wujud air beku ');
     end else
           begin
                if ( (0<=T) and (T<=100) ) then
                begin
                     writeln ( 'Wujud air cair ');
                end else
                     begin
                           if (T>100) then
                           begin
                                writeln ( 'Wuju air uap/gas ');
                           end;
                     end;
           end;
end.
program MAX2;
(* File :MAX2.PAS *)
(* Maksimum dua bilangan yang dibaca *)
VAR
     a,b : integer;
begin
     writeln ( 'Maksimum dua bilangan : ' );
     write ( 'Ketikan bilangan pertama : ' );
     readln (a) ;
     write ( 'Ketikan bilangan kedua : ' );
     readln (a) ;
     if (a >= b) then
     begin
           writeln ( 'Nilai a yang maksimum ', a);
     end
     else
     begin
           writeln ( 'Nilai b yang maksimum ', b) ;
     end ;
end.

SUBPROGRAM
program subprg;
(* File : subprg.PAS *)
(* contoh pendefinisian dan pemanggilan FUNGSI dan PROSEDUR *)
(* deklarasi dan badan procedure/fungsi LOKAL *)
(* Konsep yang harus dijelaskan :*)
(* - perbedaan fungsi dan prosedur *)
(* - parameter formal dan aktual *)
(* - passing parameter by value dan by ref *)
var
     a, b : integer;
function maxab (a,b : integer) : integer;
begin (* mencari maksimum dua bilangan bulat *)
           if a>=b then
           begin
                maxab := a;
           end else
           begin
                maxab := b;
           end;
end;

procedure tukar (var a, b : integer);
(* menukar nilai dua buah variabel a dan b *)
(* parameter input/output *)
Var temp : integer;
begin (* menukar dua bilangan bulat *)
     temp := a;
     a := b;
     b := temp;
end;
begin (* program utama *)
(* Membaca dua bilangan integer *)
(* Menuliskan maksimum dua bilangan yang dibaca dg memanggil fungsi*)
(* Menukar kedua bilangan dengan 'prosedur' *)
writeln ( 'Maksimum dua bilangan : ');
     writeln ( 'Ketikkan bilangan pertama : ');
     readln (a) ;
     writeln ( 'Ketikkan bilangan kedua : ');
     readln (b) ;
     writeln ( 'Ke dua bilangan : a = ',a) ;
     writeln ( ' b = ',b) ;
     writeln ( 'Maksimum = ', maxab (a,b) ) ;
     writeln ( 'Tukar kedua bilangan... ') ;
     tukar ( a, b ) ;
     writeln ( 'Ke dua bilangan setelah tukar: a = ',a) ;
     writeln ( ' b = ',b) ;
end.

LINGKUP (SCOPE)
program Lingkup;
(* File : Lingkup.pas *)
(* arti nama : Lingkup dan masa hidup variabel; parameter by value,
   by ref *)
Var a, b : integer;
procedure Plusl (var x:integer);
(* x adalah parameter input/output *)
(* Menambah nilai thd Prosedur Plusl *)
(* Fungsi lokal thd Prosedur Plus1 *)
     function Incr (i:integer) : integer;
     (* mengirimkan nilai i ditambah 1 *)
     begin
           Incr := i+1;
     end;
begin
     x := Incr(x) ; (* nilai parameter input x ditambah 1 *)
end;

Procedure Swap (var a,b : integer );
(* perhatikan bada a dan b disini dengan deklarasi a dan b global *)
Var temp : integer; (*variabel lokal *)
begin
     temp := a;
     a:= b;
     b:= temp;
end;

function Plus2 (i:integer) : integer;
(* Mengirimkan nilai i ditambah 2 *)
begin
     Plus2 := i+2;
end;

begin
     (* berikut tidak dikenal *)
     (* writeln ("Nilai i= ',i); *)
     a := 2;
     (* Berikut ini salah *)
     (* b := Incr (a) ; *)
     b := a;
     Plus2 (a);
     swap (a,b);
     (* Berapa hasilnya ?? *)
     writeln ('1. a= ',a, 'b= ', b );
     b := Plus2 (b);
     (* Berapa hasilnya ?? *)
     writeln ('2. a= ',a, 'b= ', b );
end.


program FuncRec;
(* File : FuncRec.pas *)
(* Fungsi yang harus mengembalikan type bentukan : tidak mungkin *)
type
     Point = record
           x : integer; (* absis*)
           y : integer; (* ordinat*)
     end;
var  T, T1, T2 : Point;

procedure Tulis (T:Point); (* menuliskan sebuah titik T *)
begin
     writeln ( 'Titik T ( ',T.x, ', ',T.y, ') ');
end;

(* function MidPoint (T1,T2: Point) : Point; *)
(* Menghasilkan Titik tengah T1,T2 berupa titik *)
(* karena fungsi dalam bahasa Pascal tidak bisa mengembalikan *)
(* type record *)
(* berikut ini transformasi untuk mendapatkan efek yang dimaksud *)
procedure TTkTengah (T1,T2 : Point; var MidPoint : Point) ;
(* titik hasil *)
(* Menerima T1 dan T2 dua buah Point *)
(* Menghasilakan Midpoint : sebuah VARIABEL bertype Point *)
begin
     MidPoint.x := ((T1.x + T2.x) div 2 );
     MidPoint.y := ((T1.y + T2.y) div 2 );
end;

begin
     T1.x := 0; T1.y := 0;
     T2.x := 10; T2.y := 10;
     Tulis (T1);Tulis (T2);
     TtkTengah (T1,T2,T); Tulis (T);
end.

PENGULANGAN
program PRIFOR;
(* File : PRIFOR.PAS *)
(* Baca N, Print 1 s/d N dengan FOR *)
var
     i : integer;
     N: integer;
begin
     writeln ( 'Baca N, print 1 s/d N ');
     write ( 'N = ');
     re   adln (N) ;
     for i:=1 to N do
     begin
           writeln (i);
     end; (* FOR *)
     writeln ( 'Akhir program ');
end.


program PRIW;
(* File : PRIW.PAS *)
(* Baca N, *)
(* Print i = 1 s/d N dengan WHILE *)
VAR
     n : integer;
     i : integer;
begin
     write ( 'Nilai N = ');
     readln (N);
     i := 1 ;
     writeln ( 'Print i dengan WHILE: ');
     while (i<=N) do
     begin
           writeln (i);
           i := i + 1;
     end ; (* i>N *)
end.

program PRIREP;
(* File : PRIREP.PAS *)
(* contoh baca N, print 1 s/d n dengan REPEAT *)
Var N : integer;    i : integer;
begin (* Program *)
     write ( 'Nilai N= '); readln (N);
     i := 1 ;
     writeln ( 'Print i dengan REPEAT: ');
     repeat
           writeln (i);
           i := 1;
     until (i > N);
end.
program PRITER;
(* File : PRITER. Pas *)
(* Baca N, *)
(* Print i = 1 s/d N dengan ITERATE *)
VAR
     N : integer;
     i : integer;
     stop : boolean;
begin
     write ( 'Nilai N = ');
     readln (N);
     i := 1;
     writeln ( 'Print i dengan ITERATE : ');
     stop := false;
     repeat
           writeln (i);
           if (i=N) then stop := true else
           begin i := i + 1; end;
     until stop; (* i= N *)
end.

program KASUSREP;
(* File : KASUSREP.PAS *)
(* Contoh kasus dengan switch dan pengulangan *)
(* membaca karakter sampai user mengetikkan q *)
VAR
     cc : char;
     quit : boolean;
begin
     repeat
           quit := false;
           write (' Ketikkan sebuah huruf, akhiri dengan q :');
           readln (cc);
           case cc of
                'a' : begin
                                writeln (' Yang anda ketik adalah a ');
                                end;
                'u' : begin
                                writeln (' Yang anda ketik adalah u ');
                                end;
                'e' : begin
                                writeln (' Yang anda ketik adalah e ');
                                end;
                'i' : begin
                                writeln (' Yang anda ketik adalah i ');
                           end;
                'q' : begin
                                quit := true;
                           end;
                else writeln (' Yang anda ketik adalah huruf mati ');
           end; (* case *)
     until (quit);
     writeln (' Akhir program... sebab anda mengetik q ');
end.

TABEL (ARRAY)

program TABEL;
(* File : TABEL.PAS *)
(* latihan array : mengisi dg assignment, menulis *)
VAR
     i : integer;
     tab : array [1..10] of integer;
     N : integer;
begin
     N := 5;
     writeln ( 'Isi dan print tabel: ');
     (* isi dengan assignment *)
     for i := 1 to N do
     begin
           tab [i] := i;
           tab [i] := i;
     end;
(* traversal : print *)
     for i := 1 to N do
     begin
           writeln ( 'i= ',i, ' tab[i]= ', tab[i] );
     end;
end.


TABEL MULTI DIMENSI
program Tab2dim;
(* File : Tab2dim.pas *)
(* Tabel integer dua dimensi (matriks) *)
type
     (* Cara I : sebagai array dua dimensi *)
     MatInt = array [1..3, 1..3] of integer;
     (* Cara 2 : sebagai array of array *)
     MatArr = array [1..3] of array [1..3] of integer;
var
     M1 : MatInt;
     MA1 : MatArr;
     i , j : Integer ;
begin
     writeln (' Array dua dimensi : ');
     (* Mengisi Matrik dua dimensi *)
     for i := 1 to 3 do
     begin
           for j := 1 to 3 do
           begin
                M1 [i,j] := i * j;
           end; (* for j *)
     end;
     (* Menulis hasil isian di atas *)
     for i := 1 to 3 do
     begin
           for j:= 1 to 3 do
           begin
                write (' (i, j) = ', i, ',', j, ' => M1 [i, j] = ', M1 [i, j]);
           end;
           writeln;
     end;
     writeln ( ' Array of array : ');
     (* Mengisi array of array : perhatikan cara mengacu elemen *)
     for i := 1 to 3 do
     begin
           for j := 1 to 3 do
           begin
                MA1 [i] [j] := i*j;
           end;
     end;
     (* Menulis hasil isian di atas *)
     for i := 1 to 3 do
     begin
           for j := 1 to 3 do
           begin
           (* Cobalah dua instruksi write sbb : *)
           (* write(' (i,j) = ', i, ', ', j, ' => MA1[i,j] = ',MA1[i,j] ); *)
                write ('(i,j) = ', i, ', ', j, ', => MA1 [i,j] = ',MA1 [i][j] );
           end;
           writeln;
     end;
end.

Tidak ada komentar:

Posting Komentar

CEK CEK DAN CEK

data prakerin 2025

    menu  menu 1.  data  prakerin  2025 https://drive.google.com/drive/folders/1GsR1unDSehj1oCgHXOGYAJKhy120SwkV?usp=sharing  2.  data  sert...

UPDATE