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
LINK SOAL SMK AL FURQON
PILIH MENU DIBAWAH LALU COLEK DAN COPAS DAN PASTE DIBROWSER https://docs.google.com/document/d/1rb0LF_1GaQZopEUQRm9iAWBVAO4...
UPDATE
-
Menerapkan logika dan operasi perhitungan data 3.4.1 Menjelaskan urutan kerja operator matematika. Operator Matematika dan Rumus Excel 14...
-
SEKOLAH MENENGAH KEJURUAN (SMK) SMK AL FURQON MRANGGEN DEMAK UJIAN SEMESTER GANJIL TAHUN 2014/2015 ==================...
-
KI-KD dan Silabus Tata Busana STRUKTUR KURIKULUM TATA BUSANA C2-KI-KD TEKSTIL C2-SILABUS TEKSTIL C2 KI-KD. DASAR TEKNOLOGI M...
-
1. Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, berikut yang bukan merupa...
-
Menerapkan teknik presentasi yang efektif Presentasi adalah penyajian atau penyampaian karya tulis atau karya ilmiah seseorang di depa...
-
Administrasi Pembelajaran untuk Persiapan Tahun Pelajaran 2019/2020 MAU SOAL SOAL TKJ DAN KKPI/SIMDEG http://bit.ly/2ILMUBARU KI ...
-
SOAL DAN JAWABAN MENANGANI PENGGANDAAN DOKUMEN (ADMINISTRASI PERKANTORAN) 1. Melaminasi dokumen dengan menggunakan laminating...
-
Buku Mapel Wajib A dan B – SMK/SMA – Kur 13 – Kelas XI K11 BG SenBud K11 S1 BS Senbud K11 BG Prakarya 11 K11 BS Prakarya 11 se...
-
YAYASAN PATI UNUS KARANGAWEN DEMAK SMK PATI UNUS KARANGAWEN TERAKREDITASI Bida...
-
1.struktur pertama dalam pascal adalah . . a. Char; b. String c. End. d. Writeln e. Uses crt; jawaban E Alasanya: Itu sudah ...
Tidak ada komentar:
Posting Komentar