Rabu, 01 Oktober 2014
MATERI PASCAL KELAS 1 DAN 2
MEMBUAT PROGRAM 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 data-blogger-escaped-:="" data-blogger-escaped-a="" data-blogger-escaped-begin="" data-blogger-escaped-dua="" data-blogger-escaped-etikan="" data-blogger-escaped-if2="" data-blogger-escaped-if="" data-blogger-escaped-integer="" data-blogger-escaped-kasus="" data-blogger-escaped-nilai="" data-blogger-escaped-ontoh="" data-blogger-escaped-program="" data-blogger-escaped-readln="" data-blogger-escaped-suatu="" data-blogger-escaped-var="" data-blogger-escaped-write="" data-blogger-escaped-writeln="">= 0) then
begin
writeln ( 'Nilai a positif ', a);
end else (* a<0 data-blogger-escaped-:="" data-blogger-escaped-a="" data-blogger-escaped-begin="" data-blogger-escaped-contoh="" data-blogger-escaped-dua="" data-blogger-escaped-end.="" data-blogger-escaped-end="" data-blogger-escaped-file="" data-blogger-escaped-if3.pas="" data-blogger-escaped-if="" data-blogger-escaped-ilai="" data-blogger-escaped-jika="" data-blogger-escaped-kasus="" data-blogger-escaped-komplementer="" data-blogger-escaped-membaca="" data-blogger-escaped-menuliskan="" data-blogger-escaped-negatif="" data-blogger-escaped-nilai="" data-blogger-escaped-pemakaian="" data-blogger-escaped-positif="" data-blogger-escaped-sebuah="" data-blogger-escaped-writeln="">0 *)
(* 'Nilai a sama dengan nol , nilai a', jika a =0 *)
(* 'Nilai a negatif , nilai a', jika a <0 data-blogger-escaped-:="" data-blogger-escaped-a="" data-blogger-escaped-begin="" data-blogger-escaped-etikkan="" data-blogger-escaped-if3="" data-blogger-escaped-if="" data-blogger-escaped-integer="" data-blogger-escaped-kasus="" data-blogger-escaped-nilai="" data-blogger-escaped-ontoh="" data-blogger-escaped-program="" data-blogger-escaped-readln="" data-blogger-escaped-suatu="" data-blogger-escaped-tiga="" data-blogger-escaped-var="" data-blogger-escaped-write="" data-blogger-escaped-writeln=""> 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 data-blogger-escaped-0="" data-blogger-escaped-:="" data-blogger-escaped-a="" data-blogger-escaped-adalah="" data-blogger-escaped-air="" data-blogger-escaped-akhiri="" data-blogger-escaped-and="" data-blogger-escaped-anda="" data-blogger-escaped-angka="" data-blogger-escaped-atau="" data-blogger-escaped-begin="" data-blogger-escaped-beku="" data-blogger-escaped-c="" data-blogger-escaped-cair="" data-blogger-escaped-case="" data-blogger-escaped-cc="" data-blogger-escaped-char="" data-blogger-escaped-contoh="" data-blogger-escaped-dengan="" data-blogger-escaped-der.="" data-blogger-escaped-e="" data-blogger-escaped-else="" data-blogger-escaped-emperatur="" data-blogger-escaped-end.="" data-blogger-escaped-end="" data-blogger-escaped-endcase="" data-blogger-escaped-etikkan="" data-blogger-escaped-file="" data-blogger-escaped-huruf="" data-blogger-escaped-i="" data-blogger-escaped-if="" data-blogger-escaped-ilai="" data-blogger-escaped-integer="" data-blogger-escaped-intruksi="" data-blogger-escaped-kasus.pas="" data-blogger-escaped-kasus="" data-blogger-escaped-ketik="" data-blogger-escaped-mati="" data-blogger-escaped-negatif="" data-blogger-escaped-o="" data-blogger-escaped-of="" data-blogger-escaped-ontoh="" data-blogger-escaped-pemakaian="" data-blogger-escaped-program="" data-blogger-escaped-readln="" data-blogger-escaped-return="" data-blogger-escaped-sebuah="" data-blogger-escaped-t:="" data-blogger-escaped-then="" data-blogger-escaped-tiga="" data-blogger-escaped-u="" data-blogger-escaped-ujud="" data-blogger-escaped-var="" data-blogger-escaped-write="" data-blogger-escaped-writeln="" data-blogger-escaped-wujud="" data-blogger-escaped-wujudair.pas="" data-blogger-escaped-wujudair="" data-blogger-escaped-yang="">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.
Langganan:
Posting Komentar (Atom)
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
-
1.Menginstal software jaringan Pengertian LAN dan internet : LAN : Jaringan wilayah lokal (bahasa Inggris: local area network biasa...
-
http://teknodaily.com/tag/perangkat-keras-komputer/
-
YAYASAN TOHA AL MAQI SMK ISLAM AL-MADATSIR TERAKRDITASI B KARANGASEM SAYUNG DEMAK JATENG Jl. Genuk-Pamongan Km 5, Karangasem, RT 03/04 ...
-
menu menu 1. data prakerin 2025 https://drive.google.com/drive/folders/1GsR1unDSehj1oCgHXOGYAJKhy120SwkV?usp=sharing 2. data sert...
-
contoh RPP Simdig Semester Gasal : RPP tentang Mind Mapping RPP tentang Daring Asinkron-sinkron RPP tentang Daring Online RPP ...
-
Download Silabus SMK Kurikulum 2013 Revisi 2017 Lengkap Silabus Pendidikan Agama Islam dan Budi Pekerti SMK Silabus Bahasa Prancis Pe...
-
Modul Kewirausahaan Kelas X dan XI SMK Download Modul Kewirausahaan kelas X dan XI SMK dapat anda download di sini ! Materi yang t...
Tidak ada komentar:
Posting Komentar