Materi Pascal

49
Materi Pascal

description

Materi Pascal. PERULANGAN ( LOOPING ). Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan menggunakan pernyataan For, While-Do, dan Repeat…Until. 1. Struktur Perulangan For - PowerPoint PPT Presentation

Transcript of Materi Pascal

Page 1: Materi Pascal

Materi Pascal

Page 2: Materi Pascal

PERULANGAN ( LOOPING )

Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan menggunakan pernyataan For, While-Do, dan Repeat…Until.

1. Struktur Perulangan For Perulangan dengan pernyataan For digunakan

untuk mengulang pernyataan atau satu blok pernyataan berulang kali sejumlah yang ditentukan. Perulangan dengan pernyataan For dapat berbentuk perulangan positif, perulangan negatif dan perulangan tersarang.

Page 3: Materi Pascal

LOOPING ( FOR )• Perulangan positif.For variabel-kontrol:=nilai awal To nilai akhir Do pernyataan Contoh Var

I:Integer;BeginFor I:= 1 to 5 Do Writeln(‘Pascal’);End.

Page 4: Materi Pascal

LOOPING ( FOR )• Perulangan negatif For variabel-kontrol:=nilai awal DownTo nilai akhir Do

penyataan Contoh Var

I:integer;BeginFor I:=5 downto 1 doBeginWriteln(I);End;End.

Page 5: Materi Pascal

LOOPING ( FOR )

• Perulangan tersarang Perulangan tersarang adalah perulangan yang

berbeda di dalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan akan bertambah, mengerjakan perulangan yang lebh dalam lagi mulai dari nilai awalnya dan seterusnya.

Page 6: Materi Pascal

Contoh Var

I,J:Integer;BeginFor I:=1 to 5 Do

BeginFor j:=1 to 3 DoBeginWrite(I:8,J:3);End;Writeln;End;

• End.

Bila program dijakankan akan menghasilkan:

• 1 1 1 2 1 3• 2 1 2 2 2 3• 3 1 3 2 3 3• 4 1 4 2 4 3• 5 1 5 2 5 3

Page 7: Materi Pascal

LOOPING ( While ... Do )

• Struktur Perulangan While-DoPerulangan ini menggunakan pernyataan While—Do. Pernyataan While—Do digunakan untuk melakukan proses perulangan suatu pernyataan atau blok pernyataan terus-menerus selama kondisi ungkapan logika pada While masih bernilai logika benar.

BU : While kondisi ungkapan Do Pernyataan

Page 8: Materi Pascal

Contoh

VarI:Integer;BeginI:=0;While I<5 Do

BeginWriteln(I);I:=I+1;End;

End.

Bila program dijalankan akan menghasilkan:01234

Page 9: Materi Pascal

LOOPING ( Repeat ... Until )

• Struktur Repeat...UntilStruktur Repeat…Until digunakan untuk mengulang pernyataan-pernyataan atau blok pernyataan sampai kondisi yang diseleksi di Until terpenuhi.

Bentuk mumnya adalah:Repeat pernyataan Until

Page 10: Materi Pascal

Contoh

VarI:IntegerBeginI:=0;

RepeatI:=I+1;Writeln(I);Until I=5;

End.

Bila program dijalankan akan menghasilkan:12345

Page 11: Materi Pascal

Penyeleksian Kondisi

• Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, bergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam bahasa Pascal dapat dipergunakan pernyataan IF dan CASE.

Page 12: Materi Pascal

Penyeleksian Kondisi ( IF )• Pernyataan IF

Struktur pernyataan IF dapat berupa If—Then atau If—Then—Else dengan bentuk umum:

If ungkapan Then pernyataan• Ungkapan adalah kondisi yang akan diseleksi

oleh pernyataan If. Bila kondisi yang diseleksi terpernuhi, maka pernyataan yang mengikuti Then akan diproses. Sebaliknya, bila kondisi tidak terpenuhi, maka yang akan diproses adalah pernyataan berikutnya

Page 13: Materi Pascal

Contoh

VarNilai:ral;Ket : string[11];BeginKet:’Tidak Lulus’;Write(‘Nilai Ujian = ‘);Readln(Nilai);

{Penyeleksian kondisi}If Nilai>60 Then Ket:=’Lulus’;Writeln(Ket);End.

Page 14: Materi Pascal

Penyeleksian Kondisi ( IF )

If kondisi Then pernyataan1;Else pernyataan2;

• Pernyataan1 akan diproses apabila kondisi benarn(terpenuhi) sedang pernyataan2 akan diproses apabila kondisi tidak terpenuhi.

Page 15: Materi Pascal

Contoh

VarNilai:Real;BeginWriteln(‘Nilai Ujian = ‘);Readln(Nilai);If Nilai>60 Then Writeln(‘Lulus’);Else Writeln(‘Tidak Lulus’);End.

Page 16: Materi Pascal

Penyeleksian Kondisi ( Case )• Pernyataan Case

Pernyataan Case dapat berbentuk struktur Case—Of atau Case—Of…. Else. Struktur Case—Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah pernyataan yang diawali dengan suatu label permasalahan yang mempunyai tipe sama dengan selector. Pernyataan yang mempunyai label permasalahan yang bernilai sama dengan nilai selector akan diproses sedang pernyataan yang lainnya tidak.

Page 17: Materi Pascal

Penyeleksian Kondisi ( Case )• Bentuk dari struktor Case—Of adalah:

Case ungkapan Ofdaftar case-label1:pernyataan1;daftar case-label2:pernyataan2;daftar case-label3:pernyataan3;.daftar case-labeln:pernyataann;End;

• Daftar case label (label permasalahan) dapat berupa konstanta, atau range (himpunan) dari konstanta yang bukan bertipe real.

Page 18: Materi Pascal

ContohVarNilai:Char;BeginWriteln(‘Nilai huruf yang didapat = ‘);Readln(Nilai);

Case Nilai of‘A’:Writeln(‘Sangat Baik’);‘B’:writeln(‘Baik’);‘C’:Writeln(‘Cukup’);‘D’:Writeln(‘Kurang’);‘E’:Writeln(‘Gagal’);

End; End.

Page 19: Materi Pascal

Penyeleksian Kondisi ( Case )

• Struktur Case—Of…Else merupakan pengembangan dari struktur Case—Of dan juga merupakan pengembangan dari standar Pascal. Pada struktur Case—Of bila tidak ada kondisi yang terpenuhi berarti tidak ada pernyataan di lingkungan Case—Of yang diproses. Dengan struktur Case—Of…Else, bilaTidak ada kondisi yang terpenuhi, maka pernyataan yang akan diproses di dalam lingkungan Case—Of adalah pernyataan yang ada di Else.

Page 20: Materi Pascal

ContohVarBersih,Beli,potong:Integer;BeginWriteln(‘Total Pembelian = ‘); Readln(beli);

Case Beli of0..1000:potong:=100;1001..5000:potong:=200;Else potong:=500;

End;Bersih:=beli-ptong;Writeln(‘Potongan = ‘, potongan);Writeln(‘Jumlah Bersih = ‘, Bersih);End.

Page 21: Materi Pascal

Procedure

• Prosecure adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). 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.

Page 22: Materi Pascal

Procedure• 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 sederhanadalam bentuk prosedur-prosedur.

2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waltu bila diperlukan.

Page 23: Materi Pascal

Contoh prosedur tanpa acuan

Procedure Hitung;Varx,y:real;BeginWriteln(‘Nilai x: ‘);Readln(x);Y:=x*x;

Writeln(‘Nilai Y= ‘, y:6;2);End;

BeginHitung;End.

Page 24: Materi Pascal

Contoh prosedur secara acuan

Procedure Hitung(var a,b,c);

BeginC:=a+b;Writeln(c);End;

VarX,y,z:integer;BeginX:=2;Y;=3;Hitung(x,y,z);End.

Page 25: Materi Pascal

Function

• Fungsi hampir sama dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahului dengn titik koma, sebagai berikut.

Function namafungsi(daftar_parameter):type;

Page 26: Materi Pascal

Contoh

Function Hitung(Var A,B : integer): integer;

Begin Hitung := A + B; End;

Var X,Y : integer; Begin Write(‘Nilai X ? ‘);

Readln(X); Write(‘Nilai Y ? ‘); Readln(Y); Writeln; Writeln(X,’ + ‘,Y,’

=‘,Hitung(X,Y)); End.

Page 27: Materi Pascal

Perbedaan fungsi dengan prosedur

1. Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada prosedur pada parameter yang dikirimkan secara acuan).

2. Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya

Page 28: Materi Pascal

Rekursif

• Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau prosedur tersebut dapat memanggil dirinya sendiri.

• Berikut ini sebuah contoh fungsi dan prosedur yang rekursif.

Page 29: Materi Pascal

function faktorial (nilai : integer) : integer; begin if nilai <= 0 then faktorial := 1; else faktorial := nilai * faktorial (nilai-1) end;

Var N : integer; Begin Write(‘Berapa faktorial ? ‘); Readln(N); Writeln(N,’ faktorial = ‘,faktorial(N):9:0); End.

Page 30: Materi Pascal

Function fibonacci ( n : integer ) : integer; Begin If n = 0 then fibonacci := 0 Else If n := 1 then fibonacci := 1 Else fibonacci := fibonacci (n-1) + fibonacci (n-2); End;

Var N : integer; Begin Write(‘Berapa banyak ? ‘); Readln(N); fibonacci(n);End.

Page 31: Materi Pascal

Procedure reverse ( num : integer ); Begin If num < 10 then write(num) Else begin Write(num mod 10); Reverse(num div 10); End; End; Var

N : integer; Begin Write(‘Berapa nilai ? ‘); Readln(N); reverse(n);End.

Page 32: Materi Pascal

Array ( Larik )Array ( Larik )

Array Satu DimensiArray Dua Dimensi

Page 33: Materi Pascal

Array Satu DimensiArray Satu Dimensi

Array adalah sekumpulan data yang bertipe sama, yang anggota-anggotanya dapat diakses berdasarkan nomor indeks.

Misalnya ada 26 huruf, kita sebut saja array Abjad, adalah sekumpulan 26 buah karakter yang berisi nama-nama abjad latin. Anggota pertama adalah ‘A’, anggota kedua adalah ‘B’ dan seterusnya hingga anggota ke 26 adalah ‘Z’.

Page 34: Materi Pascal

• Dalam notasi algoritma kita tuliskan : Abjad : array [1..26] of character

Pemberian nilainya bisa dilakukan dengan cara, pertama pengisian satu-satu berdasarkan nomor indeks :Abjad [1] ‘A’Abjad [2] ‘B’ dst sampai Abjad [26] ‘Z’

• Dalam notasi algoritma , indeks array dimulai dari 1, artinya jika kita punya array dengan 26 anggota, indeksnya mulai dari 1,2,3…sampai 26.

Page 35: Materi Pascal

• Berikut penulisan array dengan menggunakan turbo Pascal:

Abjad : array [1..26] of char;

Contoh pemberian nilai untuk array diatas dengan menggunakan bahasa Pascal adalah :Abjad [1] := ‘A’;Abjad [2] := ‘B’ dst sampai Abjad [26] := ‘Z’

Page 36: Materi Pascal

Program Nama_array;Uses winrt;Type nameType = String[50]; ageType = 0..150; { age range: from 0 to 150 }Var name : nameType; age : ageType;Begin Write('Enter your name: '); Readln(name); Write('Enter your age: '); Readln(age);

Writeln; Writeln('Your name:', name); Writeln('Your age :', age); Readln;End.

Contoh 1.1

Page 37: Materi Pascal

Program P002;uses wincrt;var abjad : array [1..50] of char; i,maks : integer;begin clrscr; write ('Masukan jumlah data karakter : '); readln(maks); for i:=1 to maks do begin write ('Masukan karakter ke ',i,' : '); readln(abjad[i]); end; write ('Karakter yang dinput : '); for i:=1 to maks do begin write (abjad[i],’ ‘); end; readln;end.

Contoh 1.2

Page 38: Materi Pascal

Program P003;uses wincrt;var angka:array [1..50] of integer; i,maks:integer;begin clrscr; write ('Masukan jumlah data : ');

readln(maks); for i:=1 to maks do

begin write ('Masukan angka ke ',i,' : '); readln(angka[i]); end;

write ('Angka yang dinput : '); for i:=1 to maks do begin write(angka[i]); end;

readln;end.

Contoh 1.3

Page 39: Materi Pascal

Program Contoh_Deklarasi_Array_Beragam; Uses winCrt;Var

NPM :array[1..20] of string[10];Nama :array[1..20] of string[25];Nilai : array[ 1. .20] of real;Umur : array[1 . .20] of byte;banyak,i : integer;

BeginClrScr;Write('Isi berapa data array yang diperlukan :');Readln(banyak); For i := 1 to banyak DoBegin

Write('NPM =');Readln(NPM[i]);Write('Nama =');readln(Nama[i]);Write('Nilai=');readln(Nilai[i]);Write('Umur =');readln(Umur[i]);

End;{cetak varibel array}Writeln('NPM NAMA NILAI UMUR ');For i:= 1 to banyak DoBegin

Writeln(Npm[i]:1 0,Nama[i] :25,Nilai[i] :3:2,' ',Umur[i] :3); End;Readln;

End.

Contoh 1.4

Page 40: Materi Pascal

Studi Kasus :

Buat sebuah program perhitungan nilai akhir 5 orang mahasiswa ?

Input : nama, tugas, quiz, uts, dan uas Proses : nilai = 10%*tugas + 20%*quiz + 30%*uts+ 40%*uas.

Output : nama, dan nilai ditampilan menurut index

Page 41: Materi Pascal

Program Studi_Kasus;Uses wincrt;Var Nama:array[1..5]of string; I,Tugas,Quiz,UTS,UAS:integer; Nilai:array[1..5]of real;Begin for I:=1 to 5 do begin Clrscr; write('Masukan Nama : ');readln(Nama[I]); write('Masukan Tugas : ');readln(Tugas); write('Masukan Quis : ');readln(Quiz); write('Masukan UTS : ');readln(UTS); write('Masukan UAS : ');readln(UAS); Nilai[I]:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS; end; Clrscr; for I:=1 to 5 do writeln('Nama : ',Nama[I],' mendapat nilai :',nilai[i] :5:2); readln;End.

Jawaban.

Page 42: Materi Pascal

Array Dua Dimensi

Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array).

Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.

Page 43: Materi Pascal

Let us have the 2 dimensional array defined first. Think of a grid where each box is located by using horizontal and vertical coordinates just in the example below:

1 2 3 4 5

2

3 3,4

4

5 5,3

An example of a 5 by 5 2D array illustrated on a grid

Contoh Bentuk Tampilan

Page 44: Materi Pascal

Varmy2DArray : Array[1..3][1..5] of Byte;Begin my2DArray[2][4] := 10;End.

1 2 3 4 5

2 10

3

Having the vertical axis as the 1st dimension and the horizontal one as the 2nd dimension, the above example is illustrated as follows:

Page 45: Materi Pascal

Program Deklarasi_Array_Dua_Dimensi;Uses Wincrt;Var

Tabel : Array [1..3, 1..2] of Integer;i,j : Integer;

BeginClrScr;Tabel [1,1] :=1;Tabel [1,2] :=2;Tabel [2,1] :=3; Tabel [2,2] :=4; Tabel [3,1] :=5; Tabel [3,2] :=6;

For I := 1 to 3 Do BeginFor J:= 1 to 2 Do

BeginWriteln ('Elemen ',i,',',j ,'= ',tabel [i,j] );

End;End;

End.

Contoh 2.1

Page 46: Materi Pascal

Program penjumlahan_matrik;Uses Wincrt;Var

Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;i,j : Integer;

BeginClrScr;{ input matrik ke satu }Writeln(' Elemen matrik satu');For i := 1 to 3 DoBegin

For j := 1 to 2 DoBegin

Write('Elemen baris -',i,' Kolom -',j,'= ');Readln(matrik1 [i,j]);

End;End;

Contoh 2.2

Page 47: Materi Pascal

{input matrik ke dua}Writeln('input elemen matrik dua');For i:= 1 to 3 DoBegin

For j:= 1 to 2 DoBegin

Write('Elemen baris -',i,' kolom -',j,'= ');Readln(matrik2 [i,j]);

End;End;

Contoh 2.2 cont…

Page 48: Materi Pascal

{proses penjumlahan tiap elemen}For i := 1 to 3 DoBegin

For j:= 1 to 2 DoBegin

Hasil[i,j] :=Matrik1 [i,j]+Matrik2[i,j];End;

End;

Contoh 2.2 cont…

Page 49: Materi Pascal

{proses cetak hasil}For i:= 1 to 3 DoBegin

For j:= 1 to 2 DoBegin

Write(Hasil[i,j] :6);End;Writeln;

End;Readln;

End.

Contoh 2.2 cont…