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.

Tidak ada komentar:

Posting Komentar

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