3. Siswa   saling   memberikan   umpan   balik   hasil evaluasi pembelajaran yang telah dicapai.
Pertemuan 14 – 15
Kegiatan Deskripsi
Alokasi Waktu
A. Pendahuluan 1.
Siswa menjawab sapaan guru, berdoa, dan mengkondisikan diri siap belajar.
2. Guru   dan   siswa   bertanya   jawab   berkaitan
dengan   identitas   diri   yang   dibutuhkan sebagai warga negara yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru   memotivasi   siswa   agar   semakin   giat
belajar 30 Menit
B. Inti Mengamati
1. Siswa   mengamati   dan   mendengarkan penjelasan tentag procedure.
2. Siswa   mengamati   dan   mendengarkan penjelasan tentang fungsi.
3. 4. Menanya
1. Siswa   berdikusi   menganalisa  penjelasan pemangilan prosedure.
2. Siswa   berdikusi   menganalisa  penjelasan tentang pemanggilan fungsi.
Menalar 1.
Siswa mencari contoh lain  dari penanganan penggunaan procedure dan fungsi.
Mengomunikasikan 1. Siswa   secara   berkelompok   mempraktekkan
dalam   penggunaan   prosedure   dan   fungsi dalam sebuah program pascal.
120 Menit
C. Penutup 1. Mereview   kembali   materi   yang   telah
disampaikan. 2. Siswa mengerjakan evaluasi.
3. Siswa   saling   memberikan   umpan   balik   hasil evaluasi pembelajaran yang telah dicapai.
30 Menit
G. Sumber Pembelajaran :
 Komputer
 Buku Algoritma
 Buku Struktur data
 Internet
H. Media Pembelajaran
a. Laptop b. Infocus
c. Komputer
I. Penilaian
1. Teknik penilaian
: Test 2.
Bentuk instrumen a. Test tertulis
b. Instrumen terlampir 3.  Pedoman penskoran terlampir
Pematangsiantar, 06 Januari 2014 Ka. Prodi Rekayasa Perangkat Lunak,
Guru MataPelajaran
N. Manurung, S.Kom Friskha L. Manurung, S.Kom
Mengetahui ;
Kepala SMK Swasta Teladan Pematangsiantar
SUDARLIAN, S.Pd.,M.Si.
Lampiran 1 BAHAN AJAR
Kompetensi : Bahan Ajar
Satuan Pendidikan : SMK Swasta Teladan
KelasSemster : XII
Mata Pelajaran :  Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke :  11 – 15
Alokasi waktu :
10 x 45
1. Kompetensi Dasar Prosedure dan fungsi
2. Indikator a. Membuat algoritma pemograman dengan prosedure
b. Membuat algoritma pemograman dengan fungsi c. Membuat algoritma dengan prosedure dan fungsi
Pertemuan 11
Procedure dan Function
Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program modul program yang merupakan sebuah program kecil untuk memproses
sebagian dari pekerjaan program utama. 
Procedure
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. 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 sederhana dalam bentuk prosedur-prosedur.
2. Untuk  hal-hal  yang  sering  dilakukan  berulang-ulang,  cukup dituliskan  sekali  saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama formal parameter : jenis;
Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi.
Contoh : Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara tiga bilangan bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum; VAR max : integer;
BEGIN IF a  b THEN max := a ELSE max := b;
IF c  max THEN max := c; WRITELNmax;
END.
Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan sebagai berikut :
PROGRAM contoh_1; HEADER program utama
VAR a,b,c : integer; PROCEDURE maksimum;
VAR max : integer; BEGIN
IF ab THEN max := a ELSE max := b; deklarasi program IF cmax THEN max := c; utama
WRITELNmax; END;
BEGIN READLNa,b,c;
Maksimum statement program utama END.
PROGRAM CONTOH_2; VAR p,l,t,vol,panj : real;
PROCEDURE kotak; VAR v,pl : real;
BEGIN v := p  l  t ;
pl := p + 2.0  t; writelnv,pl;
END; BEGIN
writeln‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10; readlnp,l,t;
kotak; END.
Pertemuan 12
Jangkauan Identifier
Identifier   yang   dideklarasikan   dalam   suatu   blok   program   hanya   berlaku   pada   blok   dimana identifier tersebut didefinisikan.
Contoh : 1. PROGRAM p;
VAR x : real; PROCEDURE pl;
VAR y : integer; begin
………………..; daerah berlakunya y daerah ………………..; berlakunya x
end; begin
………………..; ………………..;
end. y → variabel global
2. Program P ; Var x,y : real; y real berlaku disemua blok …………… program P,
kecuali di P1 …………… x real berlaku disemua
blok P, kecuali di P2 Procedure Pl ;
Var y : integer; hanya berlaku di P1 saja lokal ……………..
Begin ………
……… End;
Procedure P2; Var x : char; hanya berlaku di P2 saja lokal
…………… Begin
……….. ………..
End; Begin
…………. x := ……. x dan y yang dimaksud adalah x dan y real
y := ……. variabel global …………
End.
Procedure dengan Parameter
Nilai   di   dalam   suatu   modul   program   Pascal   sifatnya   adalah   lokal,   artinya   hanya   dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul
atau unit program yang lainnya. Contoh :
Prosedur Tanya_hitung; Var X,Y :real;
Begin Write ‘Nilai X ?’;
ReadlnX; Y:=XX;
Writeln‘Nilai Y = ‘,Y:6:2; End;
Begin Tanya_Hitung;
End. Hasilnya :
Nilai X ? 5 Nilai Y = 25.00
Keterangan : Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat digunakan
pada modul itu saja, Pada modul yang lain tidak dapat digunakan, Prosedur Tanya_hitung;
Var X,Y :real; Begin
Write ‘Nilai X ?’;
ReadlnX; Y:=XX;
End; Begin
Tanya_Hitung; Writeln‘Nilai Y = ‘,Y:6:2;
End. Hasilnya :
Error 31: Unknown identifier Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
1. Dibuat bersifat global
Harus dideklarasikan di atas modul yang menggunakannya. Procedure kesatu;
Begin …….
…….. End; akhir dari procedure kesatu……
Var A,B : word;
Procedure kedua; Begin
…….. ……..
End; akhir dari procedure kedua Procedure ketiga;
Begin ……..
…….. End; akhir dari procedure ketiga
Begin ……..
…….. End. akhir dari modul utama
Pada contoh diatas, variabel A dab B bersifat global untuk prosedur kedua, ketiga dan utama, tetapi tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat menggunakan
variabel-variabel tersebut. Var
A,B : real;
Procedure kesatu; Begin
……. ……..
End; akhir dari procedure kesatu…… Procedure kedua;
Begin ……..
…….. End; akhir dari procedure kedua
Procedure ketiga; Begin
…….. ……..
End; akhir dari procedure ketiga Begin
…….. ……..
End. akhir dari modul utama
Pertemuan 13
Pengiriman ProCedure 1.
Dikirimkan sebagai parameter ke modul yang membutuhkannya. Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter. 2.
Pengiriman parameter secara nilai Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan
berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
Perhatikan procedure berikut : Procedure konversi;
begin f := 59  c + 32; f dan c variabel global, c sebagai input dan
writelnc,f; f sebagai output. end;
Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah dengan menggunakan parameter sbb:
Procedure konversi var f : real; c : real;
Begin F := 59  c + 32; disebut formal parameter
Writelnc,f; End;
Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya : konversi x,y ;
actual parameter x dan y disebut sebagai actual parameter.
Pada eksekusinya x akan menggantikan c dan y akan menggantikan f. x dan y ini dapat berupa :
 konstanta
 variabel
 procedure, atau
 fungsi
Contoh :
Procedure HitungA,B : integer; Var C : integer;
Begin C := A + B;
Writeln‘Nilai C = ‘,C End;
Var X,Y : integer; Begin
Write‘Nilai X ? ‘; ReadlnX;
Write‘Nilai Y ?’; ReadlnY;
HitungX,Y; End.
Hasilnya : Nilai X ? 2
Nilai Y ? 3 Nilai C = 5
3. Pengiriman parameter secara acuan
Bila pengiriman parameter secara acuan by reference, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .
Procedure hitungVar A,B,C : integer;
Menunjukkan pengiriman parameter secara acuan. Contoh :
Procedure HitungVar A,B,C : integer; Begin
C := A + B; End;
Var X,Y,Z : integer; Begin
X := 2; Y:= 3; HitungX,Y,Z;
Writeln‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z; End.
Hasilnya : X = 2 Y = 3 Z = 5
4. Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya. Contoh :
Procedure pro1var I : integer; Forward; Procedure pro2var I : integer;
Begin Writeln‘prosedur pro’, I;
End; Procedure pro1;
Begin Writeln‘prosedur pro’,I;
End; Var I : integer;
Begin I := 1; pro1I;
I := 2; pro2I; End.
Hasilnya : prosedur pro1
prosedur pro2
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal :
1. Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.
3. Prosedur standar MOVE Bentuk umum : MOVE Var source,dest; count : word;
Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut
FillCharx;count :word;ch;
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak count byte.
Pertemuan 14
Function
Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan
bicarakan disini adalah fungsi yang kita buat sendiri. Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu
kuantitas. Hal   ini   dapat   dilihat   dari   bentuk   header-nya   yang   menyebutkan   jenis   data   dari   kuantitas   yang
dihasilkan. Secara umum bentuk header suatu function adalah :
FUNCTION nama : jenis hasil; Atau FUNCTION nama formal parameter : jenis  : jenis_hasil;
Contoh :
1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di antara dua integer.
Function MAX x,y : integer : integer; Begin
If x  y then MAX := y ; Else MAX := x;
End;
Selanjutnya   kita   dapat   menggunakan   fungsi   di   atas   dalam   suatu   program,   misalnya   dengan menyatakan sebagai berikut :
P := MAXa,b; Z := MAXa+b,ab;
Q := MAXMAXa,b,c; …………………………
dsb.
2. Function LOG x : real : real; Begin
LOG := ln x  ln 10.0; End;
3. Function POWER x,y : real : real; Begin
POWER := exp y  ln X End;
ab = POWER a,b ba = POWER b,a
p + qrs = POWER p + q, rs ………………………………..
dll
Contoh : Function HitungVar A,B : integer: integer;
Begin Hitung := A + B;
End; Var X,Y : integer;
Begin Write‘Nilai X ? ‘;
ReadlnX; Write‘Nilai Y ? ‘;
ReadlnY; Writeln;
WritelnX,’ + ‘,Y,’ = ‘,HitungX,Y; End.
Hasilnya :
Nilai X ? 2 Nilai Y ? 3
1 + 3 = 5
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. 1. 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 ? ‘;
ReadlnN; WritelnN,’ faktorial = ‘,faktorialN:9:0;
End. faktorial 4 = 4  faktorial 3
3  faktorial 2 2  faktorial 1
1  faktorial 0 1
= 4  3  2  1  1 = 24
2. Bilangan Fibonanci:
F 0 = 0 F 1 = 1
F n = F  n-1  + F n-2; untuk n 1 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;
3. Procedure reverse  num : integer ; Begin
If num  10 then writenum Else begin
Writenum mod 10; Reversenum div 10;
End; End.
Pertemuan 15
Fungsi Standar
1. Fungsi standar arutmatika 
Fungsi standar ABS Bentuk umum : ABSx;
Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen x. Contoh :
Begin X:=-2.3;
Write‘Nilai X = ‘,X,’ Nilai mutlaknya = ‘,AbsX:3:1; End.
Fungsi standar EXP Bentuk Umum : EXPx::real;
Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar e x
. Hasilnya berupa nilai real.
Fungsi standar LN Bentuk umum : LNx:real;
Digunakan untuk menghitung nilai logaritma alam natural logarithm dari nilai x. Hasilnya berupa nilai real.
Fungsi standar INT Bentuk umum : INTx:real:real;
Digunakan untuk menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah nilai pecahan dibuang dari nilai x.
Contoh : Begin
X:=9.99; Write‘Nilai yang akan dibulatkan = ‘,X;
Writeln‘Nilai pembulatannya = ‘,IntX:3:2; End.
Hasil : Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00
Fungsi standar FRAC Bentuk umum : FRACx::real;
Digunakan untuk mendapatkan nilai pecahan dari argumen x. Argumen x dapat bernilai real maupun integer dan hasil dari fungsi adalah real.
Contoh : Begin
X:=9.99; Write‘Nilai X = ‘,X,’ Nilai pecahannya = ‘,FracX:4:3;
End. Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990
 Fungsi standar SQR
Bentuk umum : SQRx;
Digunakan untuk menghitung nilai pangkat kuadrat dari argumen x. Contoh :
Begin X :=2;
Write‘Nilai X = ‘,X,’ Nilai kuadratnya = ‘,sqrx; End.
Hasilnya : Nilai X = 2 Nilai kuadratnya = 4
Fungsi standar SQRT Bentuk umum : SQRTx : real;
Digunakan untuk menghitung nilai akar dari argumen x, hasilnya berupa real.
Fungsi standar PI, SIN, COS, ARCTAN a. Fungsi Standar Transfer Digunakan untuk merubah suatu nilai ke bentuk nilai lain.
Fungsi standar CHR Bentuk umum : CHRx:byte:char;
Digunakan untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
Contoh : X := 66;
Write‘Nilai X = ‘,x,’ Nilai karakternya = ‘,CHRX; Hasilnya : Nilai X = 66 Nilai karakternya = B
Fungsi standar ORD Bentuk umum : ORDx:longint;
Digunakan untuk merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII, merupakan kebalikan dari fungsi CHR.
Fungsi standar ROUND Bentuk umum : ROUNDx:real:longint;
Digunakan untuk membulatkan nilai dari real x ke nilai longint yang terdekat. Bila nilai pecahan sama dengan atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang
kalau lebih kecil dari 0.5 akan dibulatkan ke bawah. Contoh :
Write’10 dibagi 3 hasil pembulatan terdekat ‘,Round103; Writeln’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round203;
Hasilnya : 10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 7
Fungsi standar TRUNC Bentuk umum : TRUNCx:real:longint;
Digunakan untuk membulatkan nilai dari real x ke nilai longint terkecil. Atau dengan kata lain membulatkan ke bawah.
Contoh : Write’10 dibagi 3 hasil pembulatan terdekat ‘,Trunc103;
Writeln’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Trunc203; Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3 20 ibagi 3 hasil pembulatan terdekat adalah 6
1. Fungsi Standar Lainnya  Fungsi standar yang tidak termasuk dalam kelompok pembagian di
atas : a. Fungsi standar Hi, Lo, Swap
Fungsi standar Random Bentuk umum : Random [range :word];
Digunakan untuk menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol dan lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah real, bila
range disebutkan, hasilnya adalah word. 
Fungsi standar SizeOf Bentuk umum : SizeOfx:word;
Digunakan   untuk   menunjukkan   besarnya   byte   yang   digunakan   oleh   suatu   variabel   x, hasilnya berupa nilai word.
Fungsi standar UPCASE Bentuk umum : UpCaseCh:char:char;
Digunakan untuk merubah argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk karakter huruf besar upper case.
2. Fungsi Tanpa Parameter
Fungsi yang tanpa parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang sudah pasti. Karena tidak menggunakan parameter, maka hasil fungsi tersebut tidak dapat diatur dari
modul yang menggunakannya, karena tidak ada parameter yang dikirimkan. Fungsi tanpa parameter jarang dipergunakan.
Contoh program : Type Huruf = string [6] ;
Function Garis : Huruf ; Begin
Garis : = ‘======’ ; End ;
Begin Writeln Garis ; Writeln ‘Pascal’ ; Writeln Garis ;
End. Output program :
====== Pascal
====== Keterangan program :
Fungsi “Garis” hanya menghasilkan nilai yang sudah pasti yaitu : “======”.
Parameter Dalam Fungsi
Parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan. Contoh penulisan parameter dengan pengiriman secara nilai :
Function Hitung A, B : integer  : integer ; Contoh program :
Function TerbesarX, Y : real  : real ; Begin
If X  Y Then Terbesar : = X
Else Terbesar : = Y ;
End ; Var
Nilai1 , Nilai2 : real ; Begin
Write ‘Nilai pertama =’  ; readln Nilai1 ; Write ‘Nilai kedua = ‘  ; readln Nilai2 ;
Writeln ‘Nilai terbesar adalah =’, Terbesar Nilai1, Nilai2 : 9 : 3  ; End.
Output program :
Nilai pertama = 12.356 Nilai kedua = 55.182
Nilai terbesar adalah = 55.182
Penulisan   judul   fungsi   yang   menggunakan   parameter   dengan   pengiriman   secara   acuan adalah dengan menambahkan kata cadangan var.
Contoh penulisan : Function Hitung  Var A, B : integer  : integer ;
Pengiriman parameter secara acuan akan mengakibatkan perubahan nilai parameter di fungsi juga merubah nilai parameter di modul yang mengirimkannya. Fungsi yang menggunakan pengiriman
parameter secara acuan ini mirip dengan prosedur, yaitu parameter yang dikirmkan secara acuan tersebut dapat di manfaatkan sebagai hasil balik.
 Fungsi Pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada hanya fungsi standar Sqr, yaitu pemngkatan kuadrat saja. Bila akan melakukan perpangkatan lebih dari pangkat dua,
maka harus dibuat program tersendiri.
Fungsi Memanggil Dirinya Sendiri
Proses fungsi memanggil dirinya sendiri juga merupakan proses recursion. Contoh program :
Function Faktorial Nilai : integer  : real ; Begin
If Nilai = 0 Then Faktorial : = 1
Else Faktorial : = Nilai  Faktorial Nilai – 1  ;
End ; Var
N : integer ; Begin
Write ‘Berapa factorial ?’ ; Readln N ;
Writeln N, ‘faktorial =’, FaktorialN : 9 : 0  ; End.
Output program : Berapa factorial ? 5
5 faktorial = bbbbbb120 ket : b = blank
Fungsi Memanggil Fungsi Yang Lain
Fungsi yang di panggil letaknya harus berada di atas fungsi yang memanggilnya. Contoh program :
Function Fungsi2 Y : integer : integer ; Begin
Fungsi2 : = Y  2 ;
End ; Function Fungsi1  X : integer  : integer ;
Begin Fungsi1 : = Fungsi2 X + 5 ;
End ; Begin
Writeln Fungsi13 ; End.
Lampiran 2 INSTRUMEN TES URAIAN
Kompetensi : Test Uraian
Satuan Pendidikan : SMK Swasta Teladan
KelasSemster : XII
Mata Pelajaran :  Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke :  11 – 15
Alokasi waktu : 10 x 45
1. Kompetensi Dasar Prosedure dan fungsi
2. Indikator a. Membuat algoritma pemograman dengan prosedure
b. Membuat algoritma pemograman dengan fungsi c. Membuat algoritma dengan prosedure dan fungsi
a. Soal 1. Tuliskan contoh program fungsi dengan memanggil fungsi yang lain
2. Tuliskan Perbedaan fungsi dengan prosedur adalah :
3. Tuliskan contoh program parameter dalam fungsi 4. Pengertian Procedure
b. Kuni Jawaban 1. Contoh:
Function Fungsi2 Y : integer : integer ; Begin
Fungsi2 : = Y  2 ; End ;
Function Fungsi1  X : integer  : integer ; Begin
Fungsi1 : = Fungsi2 X + 5 ; End ;
Begin Writeln Fungsi13 ;
End.
2. Perbedaan procedure dengan fungsi:
Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya kalau pada prosedur pada parameter yang dikirimkan secara acuan. Pada contoh, nama fungsi tersebut adalah
Hitung  dan  nilai  yang  dikirim balik  berada  pada  nama  fungsi  tersebut.  Sehingga  nama
fungsi   ini   harus   digunakan   untuk   menampung   hasil   yang   akan   dikirimkan   dari   fungsi, sebagai berikut :
Hitung := A + B; Nama fungsi yang berisi nilai yang akan dikirimkan
Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya, sebagai berikut :
WritelnX,’ + ‘,Y,’ = ‘,HitungX,Y; Nama fungsi yang langsung digunakan untuk ditampilkan hasilnya.
Atau   nilai   fungsi   tersebut   dapat   juga   langsung   dipindahkan   ke   pengenal   variabel   yang lainnya, sebagai berikut :
Hasil := HitungX,Y; WritelnX,’ + ‘,Y, ‘ + ‘,Hasil;
Sedang pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.
3. 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 4. Contoh program parameter dalam fungsi
Function TerbesarX, Y : real  : real ; Begin
If X  Y Then Terbesar : = X
Else Terbesar : = Y ;
End ; Var
Nilai1 , Nilai2 : real ; Begin
Write ‘Nilai pertama =’  ; readln Nilai1 ; Write ‘Nilai kedua = ‘  ; readln Nilai2 ;
Writeln ‘Nilai terbesar adalah =’, Terbesar Nilai1, Nilai2 : 9 : 3  ; End.
Output program :
Nilai pertama = 12.356 Nilai kedua = 55.182
Nilai terbesar adalah = 55.182
c. Pedoman Penilaian : Konversi Nilai = Jumlah Skor x 25,
Jumlah Skor maksimal 25, maka 4 x 25 = 100
Lampiran 3
LEMBAR PENGAMATAN SIKAP
Kompetensi : Sikap
Satuan Pendidikan : SMK Swasta Teladan
KelasSemster : XII
Mata Pelajaran :  Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke :  11 – 15
Alokasi waktu : 10 x 45
Nomor peserta didik : .......................................................
Nama Absen Peserta didik : .........................................................
1. Kompetensi dasar : Berlaku   jujur   dan   bertanggung   jawab   dalam   mengerjakan   tugas-tugas   dari   dalam
pembelajar Algoritma dan Pemrograman Pascal
2. Indikator 1. Peserta didik dapat berperilaku jujur dalam menyalin informasi dari buku sumber
2. Peserta didik dapat bertanggung jawab dalam mengerjakan tugas. 3. Peserta didik dapat berperilaku disiplin dalam mengumpulkan tugas
4. Peserta   didik   dapat   menunjukkan   kerja   sama   dalam   belajar   Algoritma   dan
Pemrograman Pascal 5. Peserta didik dapt berperilaku santun dalam belajar.
No. Sikap
Kriteria Hasil
Ya Tidak
1. Jujur
1. Melaporkan   datainformasi   sesuai dengan apa yang dibaca.
2. Menyampaikan   pendapat   disertai dengan informasi dari buku sumber
yang diterima 2.
Tanggung jawab
1. Melaksanakan   tugas   sesuai   dengan perintah guru
2. Menyelesaikan tugas sampai selesai. 3.
Disiplin Melaksanakan dan menyelesaikan tugas
sesuai dengan waktu yang ditetapkan. 4.
Bekerja sama Menghargai   pekerjaan   teman   dan
berperan   aktif   dalam   menyelesaikan tugas kelompok.
5. Santun
1. Menyampaikan   pendapat   dengan bahasa dan nada yang baik.
2. Menghargai   adanya   perbedaan pendapat.
Lampiran 4
LEMBAR PENGAMATAN KETERAMPILANPSIKOMOTOR Kompetensi
: Keterampilan Satuan Pendidikan
: SMK Swasta Teladan KelasSemster
: XII Mata Pelajaran
:  Algoritma dan Bahasa Pemrograman Pascal Pertemuan ke
:  11 – 15 Alokasi waktu
: 10 x 45
1. Kompetensi Dasar Prosedure dan fungsi
2. Indikator a. Membuat algoritma pemograman dengan prosedure
b. Membuat algoritma pemograman dengan fungsi c. Membuat algoritma dengan prosedure dan fungsi
Isilah dengan tanda centang √ apabila seorang siswa melakukan aktivitas No
. Nama
Aspek  keterampilan Nilai
1 2
3 4
5
Keterangan: Keterangan
1. Aktifitas bertanya 1.  Sangat Terampil, jika 5 keaktifan
2. Aktifitas menjawab 2.   Terampil, jika 4 keaktifan
3. Aktifitas mencatat 3.  Cukup Terampil, jika 3 keaktifan
4. Akurasi  jawaban 4.  Kurang Terampil, jika 2 keaktifan
5. Akurasi pertanyaan 5. Tidak Terampil, jika 1 keaktifan
YAYASAN PENDIDIKAN TELADAN SEKOLAH MENENGAH KEJURUAN  SMK  TELADAN
JALAN SINGOSARI NO. 3 TELP. 0622 22210 – 23811, Fax. 22210 PEMATANG SIANTAR 21111
RENCANA  PELAKSANAAN  PEMBELAJARAN   RPP Mata Pelajaran
: Produktif RPL Kelas  Semester
: X  2 Pertemuan Ke
: 16 - 17 Alokasi Waktu
: 4 x 45 menit Standar Kompetensi
: Menerapkan Algoritma Pemograman Karakter Bangsa yang diharapkan : Disiplin, Kreatif, Rasa Ingin Tahu, Tanggung Jawab.
A. Kompetensi Inti