You are on page 1of 79

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 : Algoritma Pemograman tingkat lanjut


Kelas / Semester : X/2
Pertemuan : 1- 5
Alokasi Waktu : 10 x 45 Menit
Standar Kompetensi : Menerapkan Algoritma Pemograman tingkat lanjut
Karakter Bangsa yang diharapkan : Disiplin, Kreatif, Mandiri, Tanggung Jawab, Kerja
sama.

A. Kompetensi Inti
1. Menghayati dan mengamalkan ajaran agama yang dianutnya
2. Mengembangkan perilaku (jujur, disiplin, tanggung jawab, peduli, santun, ramah
lingkungan, gotong royong, kerjasama, cinta damai, responsif dan proaktif) dan
menunjukkan sikap sebagai bagian dari solusi atas berbagai permasalahan bangsa
dalam berinteraksi secara efektif dengan lingkungan sosial dan alam serta dalam
menempatkan diri sebagai cerminan bangsa dalam pergaulan dunia
3. Memahami, menerapkan, menganalisis pengetahuan faktual, konseptual, prosedural
berdasarkan rasa ingin tahunya tentang ilmu pengetahuan, teknologi, seni, budaya, dan
humaniora dengan wawasan kemanusiaan, kebangsaan, kenegaraan, dan peradaban
terkait fenomena dan kejadian, serta menerapkan pengetahuan prosedural pada bidang
kajian yang spesifik sesuai dengan bakat dan minatnya untuk memecahkan masalah.
4. Mengolah, menalar, menyaji, dan mencipta dalam ranah konkret dan ranah abstrak
terkait dengan pengembangan dari yang dipelajarinya di sekolah secara mandiri, dan
mampu menggunakan metoda sesuai kaidah keilmuan.

B. Kompetensi dasar dan Indikator


3.6. Menjelaskan Prinsip Array Multi Dimensi
a. Defenisi Array Multi dimensi, bentuk umum larik multi dimensi dan fungsi larik dalam
program
4.6 Menyajikan informasi mengenai array multi dimensi dalam program, menuliskan bentuk
umum multi dimansi array, dan mempraktekkan fungsi array dalam program
a. Menyajikan informasi mengenai array multi dimensi
b. Menyajikan informasi mengenai bentuk umum array multi dimansi
c. Mempraktekkan fungsi array dalam sebuah program
C. Tujuan Pembelajaran
 Dapat mengetahui dan mengerti larik
 Mengetahui Fungsi Larik atau Array
 Membuat Program Larik atau Array
D. Materi Ajar
1. Pengertian Array
2. Alokasi Penggunaan Array
3. Fungsi Standar Aritmatika
4. Fungsi Standar Transfer
5. Penggunaan Array dalam C++

E. Metode Pembelajaran
 Penyampaian
 Tanya jawab
 Tes Program
 Praktek

F. Media pembelajaran
 Komputer
 Buku Algoritma
 Buku Struktur data
 Internet

G. Langkah – langkah Pembelajaran


Pertemuan 1 - 3
Kegiatan Deskripsi Alokasi Waktu
A. Pendahuluan 1.Siswa menjawab sapaan guru, berdoa, dan
mengondisikan diri siap belajar
2.Guru dan siswa bertanya jawab berkaitan dengan
identitas diri yang dibutuhkan sebagai warga negara 45 Menit
yang baik.
3.Guru menyampaikan tujuan pembelajaran
4.Guru memotivasi siswa agar semakin giat belajar
B. Inti Mengamati 180 Menit
1. Siswa mengamati dan mendengarkan penjelasan
tentang Pengertian Array.
2. Siswa mengamati dan mendengarkan penjelasan
tentang Alokasi penggunaan Array
3. Siswa mengamati penjelaskan tentang Fungsi
Aritmatika.

Menanya
1. Siswa berdikusi menganalisa pengertian Array.
2. Siswa berdikusi menganalisa tentang penjelasan
alokasi penggunaan array.
3. Siswa berdikusi untuk menganalisa tentang fungsi
aritmatika.

Menalar
1. Siswa mencari contoh lain dari penerapan Array.
2. Siswa mencari contoh lain dari fungsi dan penggunan
Array.
3. Siswa mencari contoh lain dari fungsi Aritmatika.

Mengomunikasikan
1. Siswa secara berkelompok membuat sebuah program
aplikasi dengan menggunakan array dalam bahasa
pemrograman C++, dalam bahasa pemrograman
pascal, dalam bahasa pemrograman visual basic.
C. Penutup 1. Mereview kembali materi yang telah disampaikan
2. Siswa mengerjakan evaluasi
45 Menit
3. Siswa saling memberikan umpan balik hasil evaluasi
pembelajaran yang telah dicapai.

Pertemuan 4 – 5
Kegiatan Deskripsi Alokasi Waktu
A. Pendahuluan 1. Siswa menjawab sapaan guru, berdoa, dan
mengondisikan diri siap belajar
2. Guru dan siswa bertanya jawab berkaitan dengan
identitas diri yang dibutuhkan sebagai warga 30 Menit
negara yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
B. Inti Mengamati
1. Siswa mengamati dan mendengarkan penjelasan
tentang Fungsi Standar Transfer
2. Siswa mengamati dan mendengarkan penjelasan
tentang Penggunaan Array dalam C++

Menanya
1. Siswa berdikusi menganalisa tentang Fungsi
Standar Transfer.
2. Siswa berdikusi menganalisa tentang Penggunaan
Array dalam C++
120 Menit
Menalar
1. Siswa mencari contoh lain dari penerapan Array.
2. Siswa mencari contoh lain dari fungsi dan
penggunan Array.
3. Siswa mencari contoh lain dari fungsi Aritmatika.

Mengomunikasikan
1. Siswa secara berkelompok membuat sebuah
program aplikasi dengan menggunakan array
dalam bahasa pemrograman C++, dalam bahasa
pemrograman pascal, dalam bahasa pemrograman
visual basic.
3. Penutup 1. Mereview kembali materi yang telah disampaikan
2. Siswa mengerjakan evaluasi
30 menit
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.

H. Sumber Belajar
1. Internet
2. Buku Algoritma dan pemrograman Pascal
3. System Operasi DOS
I. Alat dan bahan Pembelajaran
a. Laptop
b. LCD
c. White board
d. Spidol
J. Penilaian
1. Teknik penilaian : Test tertulis
2. Bentuk Instrumen dan Instumrn :
a. Bentuk Instrumen : Tes Uraian
b. Instrumen : Terlampir
3. Pedoman Peskroan : 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
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 1–5
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
Menjelaskan Prinsip Array Multi Dimensi
2. Indikator
Defenisi Array Multi dimensi, bentuk umum larik multi dimensi dan fungsi larik dalam
program

Pertemuan ke 1
Pengertian Array
Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen –
komponen yang mempunyai tipe data yang sama. Didalam suatu array jumlah komponen banyaknya
adalah tetap. Didalam suatu larik atau array setiap kompoenen ditunjukkan oleh suatu index yang
unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data
yang adadidalamnya. Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama
yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama
yang lain maka diberikan initial tambahan untuk setiap nama.
Variabel array telah kita singgung di bagian depan, namun masih sangat terbatas. Pada bagian ini
kita akan pelajari lebih detil tentang array.
Deklarasi Array
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih
dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang
dituliskan didalam tanda “[]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan.

Bentuk Umum Penulisan:


Tanda_pengenal : array [..tipe index ..] of tipe data;
Contoh :
Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;
Keterangan: :
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1.4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.

Pertemuan ke 2
Alokasi Penggunaan Array
a. Array Static (Static Array)
Array static adalah model pendeklarasian array dimana tipe data yang digunakan mempunyai
nilai yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada umumnya bernilai
integer. Array Static juga bisa disebut Array dengan deklarasi tipe indeks subrange integer.
Bentuk Umum
array[indexType1, ..., indexTypen] of baseType
Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau elemen
maksimal terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh :
Var arrayku : array[1..5] of char
Atau juga
type
jangkauan = 1..5;
var
nilai : array[jangkauan] of integer;

b. Array Dinamis (Dynamic arrays)


Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau
ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis
direalokasikan ketika kita menugaskan suatu nilai kepada array. Dynamic-Array jenis ditandai oleh
konstruksi (menyangkut) format.
Bentuk Umum
array of baseType
Contoh
var nilai: array of Real;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang
tetap, tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan array tersebut
kita harus menempatkan array didalam suatu memori, caranya adalah dengan memanfaatkan fungsi
dari perintah sellength.
Misalnya : Selllength(nilai,20)
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau
cakupan 20 untuk tipe data real, dengan indeex dimulai dari 0 sampai dengan 20.
Pertemuan Ke 3
Fungsi Standar Aritmatika
Ada Abs, ArcTan, Cos, Exp, Franc, Int, Ln, Pi, Sin, Sqr dan Sqrt
Penjelasan :
- Abs (x) ;
Memutlakkan suatu nilai yang ditunjukkan oleh argument x. dapat berupa tipe real atau
integer.
- Exp (x : real ) : real ;
Untuk menghitung nilai pangkat dari bilangan e. dapat berupa real atau integer dan hasil dari
fungsinya adalah real.
- Ln (x : real ) : real ;
Untuk menghitung nilai logaritma alam dari nilai x. tipe datanya real atau integer dan hasil
fungsinya adalah real.
- Int (x : real) : real ;
Untuk menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang
berupa pembulatan ke bawah dari nilai x.
- Franc (x : real ) : real ;
Untuk mendapatkan nilai pecahan dari argument x. Argumen x dapat berbentuk real atau
integer dan hasilnya adalah real.
- Sqr (x) ;
Untuk menghitung nilai pangkat kuadrat dari argument x.
- Sqrt (x : real ) : real ;
Untuk menghitung nilai akar dari argument x. dapat real dan integer dan hasil dari fungsinya
adalah real.
- Pi :Akan menghasilkan nilai PI sebesar 3, 14.

Fungsi Standar Transfer


Digunakan untuk merubah suatu nilai ke bentuk nilai yang lain. Yang tersedia adalah fungsi
standar Chr, Ord, Round dan trunc.
Penjelasan :
- Chr (x : byte) : char ;
Untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
- Ord (x) : longint ;
Untuk merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII. Fungsi ini kebalikan
dari fungsi standar Chr.
- Round (x : real) : longint ;
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, sedangkan bilai nilai pecahan lebih kecil dari 0,5
akan dibulatkan ke bawah.
- Trunc (x : real) : longint ;
Untuk membulatkan nilai dari real x ke nilai longint terkecil, atau dengan kata lain membulatkan ke
bawah.

Pertemuan Ke 4
Fungsi Standar Lainnya
Terdiri dari : Hi, Lo, Random, SizeOf, Swap, UpCase, ParamCount dan ParamStr.
Penjelasan :
 Hi (x) : byte ;
Untuk mengisi low order byte dari hasil fungsi dengan high order byte dari ungkapan integer x.
high order byte dari hasil fungsi akan bernilai nol. Tipe hasil dari fungsi ini adalah byte.
 Lo (x) : byte ;
Untuk mengisi low order byte dari hasil fungsi dengan low order byte dari ungkapan integer x.
high order byte dari hasil fungsi akan bernilai nol. Tipe hasil dari fungsi ini adalah byte.
- Swap (x) ;
Untuk membalik bit-bit di low order byte menjadi high order byte dan sebaliknya dari
ungkapan x. ungkapan x dapat berupa tipe integer atau word.
- Random [ (range : word ) ] ;
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.
- SizeOf (x) : word ;
Untuk menunjukkan besarnya byte yang digunakan oleh suatu variable x. hasilnya adalah
word.
UpCase (Ch : char ) : char ; Untuk merubah argument suatu karakter yang ditunjukkan oleh
Ch menjadi bentuk karakter huruf besar ( upper case ).
- ParamCount: word ; Untuk mengetahui jumlah parameter yang dikirimkan lewat promt
DOS
- ParamStr (index) : string ; Untuk menerima parameter yang dikirmkan lewat promt DOS,
index adalah ungkapan dengan tipe word, dan akan menghasilkan parameter ke index yang
dikirmkan tersebut.
Gambar Lemari dengan banyak kotak laci di dalamnya
Pada variabel array, kita tidak hanya menentukan tipe datanya saja, tetapi juga jumlah elemen dari
array tersebut atau dalam hal ini adalah batas atas indeksnya. Pada banyak bahasa pemrograman
seperti C++, Visual Basic, dan beberapa yang lainnya, nilai indeks awal adalah 0 bukan 1. Cara
menuliskan variabel array berbeda-beda tergantung bahasa pemrograman apa yang dipakai. Tetapi
yang pasti tipe data harus disebutkan dan batas atas indeks harus ditentukan. Untuk mengisi data
pada array kita dapat langsung menentukan pada indeks berapa kita akan isikan demikian juga untuk
memanggil atau menampilkan data dari array. Contoh deklarasi, pengisian dan pemanggilan array
adalah sebagai berikut.+

Pertemuan Ke 5

Penulisan array pada C++


#include <iostream> "<<A[1];
using namespace std; cout<<"Nilai elemen ke-3 =
int main() { "<<A[2];
// Mendeklarasikan array A return 0;
dengan 3 buah elemen bertipe }
int ‘Mendeklarasikan array A
int A[3]; dengan 3 buah elemen bertipe
// Mengisikan nilai elemen integer
array Dim A (2) as Integer
A[0] = 5; ‘Mengisikan nilai elemen
A[1] = 10; array
A[2] = 20; A(0) = 5;
// Menampilkan nilai elemen A(1) = 10;
array A(2) = 20;
cout<<"Nilai elemen ke-1 = ‘Menampilkan nilai elemen
"<<A[0]; array
cout<<"Nilai elemen ke-2 = Print A(0); Print A(1);

Perhatikan pada kedua kode di atas. Pada pendeklarasian variabel array nilai maksimal
indeks adalah 2 tetapi jumlah elemennya ada 3 karena indeks dimulai dari 0 bukan dari 1.

Penggunaan Larik / Array

1. Defenisi Larik ( Array )


Larik atau array ialah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari
sejumlah elemen yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa
variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap.
2. Deklarasi Larik
Array adalah struktur data yang statik, yaitu jumlah elemen array harus sudah diketaui sebelum
program dieksekusi.
Macam-macam array terdiri atas :
a. Array 1 dimensi dituliskan :
Variabel [ indeks ]
b. Array 2 dimensi dituliskan :
Variabel [ indeks1, indeks2 ]
c. Array 3 dimensi dituliskan :
Variabel [ indeks1, indeks2, indeks3 ]

Syntax :
Variabel [ indeks ]
Variabel [ indeks1, indeks2 ]
Variabel [ indeks1, indeks2, indeks3 ]

Deklarasi
Var
< Nama Array = array [indeks] of tipe data;
< Nama Array = array [indeks1, indeks2] of tipe data;
tipe data;
< Nama Array = array [indeks1, indeks2, indeks3] of tipe data;
of tipe data;

Contoh :
1. Bentuk Pertama sebagai variabel
Deklarasi
Nilai : Array [ 1..15] of integer
Nama : Array [ ‘A’..’Z’] of string
2. Bentuk Kedua sebagai tipe baru
Deklarasi
Type
Nilai : Array [ 1..100 ] of real
Var
X : Nilai
Atau
X : Array [ 1.. 100 ] of real
3. Bentuk Ketiga dengan ukuran maksimum elemen larik sebagai sebuah konstanta
Deklarasi
Const max : 100
Type
Nilai : Array [ 1..max ] of real
Var
X : Nilai
Atau
X : Array [1..100 ] of real
Lampiran 2
INSTUMEN TES URAIAN

Kompetensi : Tes Uraian


Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 1–5
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
Menjelaskan Prinsip Array Multi Dimensi
2. Indikator
Defenisi Array Multi dimensi, bentuk umum larik multi dimensi dan fungsi larik dalam
program

a. Soal
1. Tuliskanlah Pengertian Dari Array.
2. Tuliskanlah Bentuk Penulisan Array satu dimensi .
3. Buatlah Program Array satu dimensi
4. Tuliskan pengertian Larik/Array !
5. Tuliskan macam-macam array !

b. Jawaban
Kunci Jawaban:
1. Pengertian : Suatu array adalah sebuah struktur data yang terdiri atas banyak variabel dengan
tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Setiap elemen
array mampu untuk menyimpan satu jenis data (yaitu: variabel). Pendefinisian array secara
umum adalah sebagai berikut: jika kita ingin membuat beberapa array dengan tipe/jenis yang
sama, kita lebih baik jika mendeklarasikan dengan type selanjutnya dengan deklarasi var.

2. Type nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data;


var variabel_array : nama_array; atau • SYNTAX var variabel_array :
ARRAY[bawah..atas, bawah..atas] of tipe_data;

3. Array 1 dimensi
program INT_ARRAY;
uses wincrt;
const N=10;
type int_array = ARRAY [1..N] of integer;
var bil : int_array;
indeks : integer;
BEGIN
writeln('masukkan sepuluh bilangan integer.');
for indeks := 1 to 10 do
begin
readln(bil[indeks]); { loop untuk memasukkan elemen
array }
end;
writeln('Isi dari array ini adalah'); { tampilkan setiap
elemen }
for indeks := 1 to 10 do
begin
writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
end
END.

4. Larik atau array ialah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari
sejumlah elemen yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa
variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap.

5. Macam-macam array terdiri atas :


d. Array 1 dimensi dituliskan :
Variabel [ indeks ]
e. Array 2 dimensi dituliskan :
Variabel [ indeks1, indeks2 ]
f. Array 3 dimensi dituliskan :
Variabel [ indeks1, indeks2, indeks3 ]

c. Pedoman Penskoran
Konversi Nilai = Jumalh skor x 5
Jumlah skor nilai maksimal 20 x 5 = 100
Lampiran 3
LEMBAR PENGAMATAN SIKAP

Kompetensi : Sikap
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 1–5
Alokasi waktu : 10 x 45

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.

Nomor peserta didik : .......................................................


Nama Absen Peserta didik : .........................................................

No. Sikap Kriteria Hasil


Ya Tidak
1. Jujur 1. Melaporkan data/informasi sesuai
dengan apa yang dibaca.
2. Menyampaikan pendapat disertai
dengan informasi dari buku sumber
yang diterima
2. Tanggung 1. Melaksanakan tugas sesuai dengan
jawab 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 KERAMPILAN/PSIKOMOTOR

Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 1–5
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
Menjelaskan Prinsip Array Multi Dimensi
2. Indikator
Defenisi Array Multi dimensi, bentuk umum larik multi dimensi dan fungsi larik dalam
program

Isilah dengan tanda centang (√) apabila seorang siswa melakukan aktivitas !
Aspek keterampilan *)
No. Nama 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 : Algoritma tingkat lanjut


Kelas / Semester : X/2
Pertemuan : 6 - 10
Alokasi Waktu : 10 x 45 Menit
Standar Kompetensi : Menerapkan Algoritma Pemograman tingkat lanjut
Karakter bangsa yang diharapkan : Disiplin, Kreatif, Rasa ingin tahu, Mandiri,
Bertanggung jawab, Kerja sama.
A. Kompetensi Inti
1. Memahami nilai-nilai keimanan dengan menyadari hubungan keteraturan dan kompleksitas
alam dan jagad raya.
2. Mengamalkan nilai-nilai keimanan sesuai dengan ajaran agama dalam kehidupan sehari-hari.
3. Menunjukkan perilaku ilmiah (memiliki rasa ingin tahu, objektif, jujur, teliti, cermat, tekun,
hati-hati, bertanggung jawab, terbuka,kritis, kreatif, inovatif, dan peduli lingkungan) dalam
aktivitas sehari-hari sebagai wujud implementasi sikap dalam mlakukan percobaan dan
diskusi.
4. Menghargai kerja individu dan kelompok dalam aktivitas sehari-hari sebagai wujud
implementasi melaksanakan percobaan dan melaporkan hasil.

B. Kompetensi Dasar dan Indikator


3.7 Menggunakan array multi dimensi
a. Membuat operasi array (larik)
4.7 Menyajikan informasi mengenai penggunaan operasi larik, fungsi array (larik),
pengunaannya dalam sebah program array (larik)
a. Menyajikan informasi mengenai penggunaan operasi larik
b. Menyajikan informasi mengenai fungsi array (larik)
c. Menganalisa penggunaan array dalam sebuah program

C. Tujuan Pembelajaran
 Dapat membuat operasi larik
 Mengetahui Fungsi Larik atau Array
 Membuat Program Larik atau Array
D. Materi Ajar
1. Operasi Array(larik)
2. Fungsi Array (larik)
3. Penggunaan Array dalam sebuah program

E. Metode Pembelajaran
 Penyampaian
 Tanya jawab
 Tes Program
 Praktek

F. Sumber pembelajaran :
 Buku Algoritma
 Buku Struktur data
 Internet

G. Langkah – langkah Pembelajaran


Pertemuan 6 – 8
Kegiatan Deskripsi Alokasi
Waktu
A. Pendahuluan 1.Siswa menjawab sapaan guru, berdoa, dan
mengondisikan diri siap belajar
2. Guru dan siswa bertanya jawab berkaitan dengan
identitas diri yang dibutuhkan sebagai warga negara 45 Menit
yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
B. Inti Mengamati
1. Siswa mengamati dan mendengarkan penjelasan
tentang Operasi Array (larik).
2. Siswa mengamati dan mendengarkan penjelasan
tentang fungsi Array (larik).
3.
4. Menanya
1. Siswa berdikusi menganalisa tentang operasi larik.
2. Siswa berdiskusi menganalisa penjelasan tentang
fungsi-fungsi array (larik)
180 Menit

Menalar
1. Siswa mencari contoh lain dari penggunaan array.

Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan
penggunaan array dalam sebuah program

C. Penutup 1. Mereview kembali materi yang telah disampaikan 15


2. Siswa mengerjakan evaluasi 45 Menit
3. Siswa saling memberikan umpan balik hasil evaluasi
pembelajaran yang telah dicapai.
Pertemuan 9 – 10
Kegiatan Deskripsi Alokasi Waktu
A. Pendahuluan 1. Siswa menjawab sapaan guru, berdoa, dan mengondisikan
diri siap belajar
2. Guru dan siswa bertanya jawab berkaitan dengan identitas
30 Menit
diri yang dibutuhkan sebagai warga negara yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
B. Inti Mengamati
1. Siswa mengamati dan mendengarkan penjelasan tentang
penggunaan Array (larik) dalam sebuah pemrograman.
2.
3. Menanya
1. Siswa berdikusi menganalisa tentang penggunaan array.
2. Siswa berdiskusi menganalisa penjelasan tentang fungsi-
fungsi array (larik)
120 Menit
Menalar
1. Siswa mencari contoh lain dari penggunaan array.

Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan penggunaan
array dalam sebuah program

C. Penutup 1. Mereview kembali materi yang telah disampaikan 16


2. Siswa mengerjakan evaluasi 30 Menit
3. Siswa saling memberikan umpan balik hasil evaluasi
pembelajaran yang telah dicapai.

H. Alat Pembelajaran :
1. Laptop
2. Infocus
3. Komputer

I. Penilaian
1. Teknik penilaian : Test tertulis
2. Bentuk Instrumen dan Instumrn
a. Bentuk Instrumen : Tes Uraian
b. Instrumen : Terlampir
3. Pedoman Peskroan : 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
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 6 – 10
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
a. Menggunakan array multi dimensi
2. Indikator
a. Membuat operasi array (larik)

Pertemuan 6 :
Pendeklarasian Array Multi Dimensi (Berdimensi Banyak)
Cara pendeklarasian array multi dimensi mirip dengan cara array 1 dimensi. Hanya terdapat
penambahan tanda kurung siku (“[“ dan “]”) untuk menunjukan jumlah maksimum data yang dapat
ditampung oleh variabel array tersebut. Pada C/C++, untuk mendeklarasikan variable array multi
dimensi kita dapat
menuliskannya sebagai berikut :
Tipe_Data Nama_Array[Jumlah_Elemen1] ]...[Jumlah_Elemen n];
Contoh :
int Array[10][5]; //deklarasi array 2 dimensi
double Jumlah[7][1][3]; //deklarasi array 3 dimensi
float Total[5][6][1][2]; //deklarasi array 4 dimensi, dst…
Materi Kuliah Pemrograman Terstruktur I
IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-3
Array dua dimensi dapat kita gambarkan sebagai berikut :
0 1 … n Index kolom
1

n
Index baris
Elemen Array
Gambar 8.1. Array Dua Dimensi
Array berdimensi banyak pada kenyataannya jarang dipergunakan dalam aplikasi. Array
berdimensi banyak yang sering digunakan adalah array dengan 2 dimensi atau lebih dikenal
dengan nama Matriks.

Cara Pendeklarasian Array Tak Berukuran


Kita bisa menentukan ukuran atau jumlah elemen dalam array dengan suatu nilai tertentu
(seperti contoh deklarasi array pada sub bab 8.2) dan ukuran ini sifatnya konstan atau tidak akan
berubah. Namun ada kalanya kita tidak mengetahui jumlah elemen maksimum (atau dengan kata
lain jumlah elemen dalam array sifatnya tidak konstan atau dinamis), untuk keperluan inilah
adlam bahasa C/C++ kita bisa mendefinisikan suatu array tanpa mencantumkan berapa ukuran
atau jumlah elemen maksimal ya g bisa disimpan dalam array tersebut.
Pada C/C++, untuk mendeklarasikan variable array tak berukuran kita dapat
menuliskannya sebagai berikut :
Tipe_Data Nama_Array[ ][ ]...[ ];

Contoh :
int Array[ ]; //deklarasi array 1 dimensi tak berukuran
char Angka[ ][ ]; //deklarasi array 2 dimensi tak berukuran
float Total[ ][ ]...[ ]; //deklarasi array dimensi tertentu dan tak berukurant
//program untuk menghasilkan matriks identitas
Materi Kuliah Pemrograman Terstruktur I
IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-6
#include<stdio.h>
#include<conio.h>
int main()
{
int MaxBaris,MaxKolom;
int idxBaris;//indeks baris, sebagai penunjuk nomor baris dalam array
int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array
//proses input jumlah maksimum elemen pada Matriks_Identitas
printf("Masukan Ukuran Baris & Kolom Matriks_Identitas : ");scanf("%d",&MaxBaris);
MaxKolom=MaxBaris;
int Matriks_Identitas[MaxBaris][MaxKolom]; //deklarasi array Matriks_identitas
for (idxBaris=0; idxBaris<=MaxBaris;idxBaris++)
{
for(idxKolom=0;idxKolom<=MaxKolom;idxKolom++)
{
(idxBaris == idxKolom) ? Matriks_Identitas[idxBaris][idxKolom] = 1:
Matriks_Identitas[idxBaris][idxKolom] = 0;
}
}
printf("\nMatriks_Identitasnya adalah \n");
for (idxBaris=1; idxBaris<=MaxBaris;idxBaris++)
{
for(idxKolom=1;idxKolom<=MaxKolom;idxKolom++)
{
printf("%d ",Matriks_Identitas[idxBaris][idxKolom]);//output nilai dalam
Matriks_Identitas baris ke-idxBaris dan kolom ke-idxKolom
}
printf("\n");
}
getch();
return 0;
}
Outputnya adalah :
8.6 Referen

Pertemuan 7
Cara Pengaksesan Array Array Multi Dimensi
Untuk dapat memasukan suatu nilai atau melihat isi dari suatu array kita harus
menentukan posisi dimana nilai tersebut disimpan. Untuk mengakses elemen array dapat
kita lakukan dengan perintah
Pada C/C++, untuk mengakses elemen array dapat kita lakukan dengan perintah
sebagai berikut :
Nama_Array[indeks_Elemen1] ]...[indeks_Elemen n];
Contoh :
Ary[10]; //akses elemen array Ary pada indeks ke-10
Jumlah[7][1]; // akses elemen array Jumlah pada indeks baris ke-7 dan indeks
kolom ke-1
Total[5][6][1]; // akses elemen array Total pada indeks x ke-5 dan indeks y ke-6
dan indeks z ke-1, dst…
Setelah posisi ini kita ketahui, kemudian kita bisa melakukan operasi pada array atau nilai
dalam array tersebut. Operasi yang dapat dilakukan pada sebuah array sangat beragam
tergantung kebutuhan pengguna program tersebut.
Contoh Program ontoh Menggunakan Array
Array Multi Dimensi Agar bisa mendapatkan gambaran lebih jauh seperti apa sih program yang
menggunakan array multi dimensi? Anda bisa melihat contoh-contoh sebagai berikut :
Contoh 01 : Program untuk menjumlahkan 2 buah array 2 dimensi pada C/C++
//Contoh program array multi dimensi - kuliah Pemrograman Terstruktur I
//IF-Universitas Widyatama
//dibuat oleh : Danang Junaedi
//Tanggal : 17 November 2008 jam : 15:09 di B.417
//program untuk menjumlahkan array/Matriks A dan B yang berukuran 2x23
#include<stdio.h>
#include<conio.h>
int main()
{
int Matriks_A[2][2], Matriks_B[2][2]; // array Matriks_A dan Matriks_B
int Matriks_Hasil[2][2];// array untuk hasil penjumlahan Matriks_A dan Matriks_B
int idxBaris;//indeks baris, sebagai penunjuk nomor baris dalam array
int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array
//proses input nilai ke dalam array Matriks_A dan Matriks_B
printf("Masukan Nilai ke dalama Matriks_A\n");
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
{
printf("Masukan nilai ke dalam Matriks_A[%d,%d] : ",idxBaris,idxKolom);
scanf("%d",&Matriks_A[idxBaris][idxKolom]);//input nilai ke dalam
Matriks_A pada baris ke-idxBaris dan kolom ke-idxKolom
}
}
printf("\nMasukan Nilai ke dalama Matriks_B\n");
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
{
printf("Masukan nilai ke dalam Matriks_B[%d,%d] : ",idxBaris,idxKolom);
scanf("%d",&Matriks_B[idxBaris][idxKolom]);//input nilai ke dalam
Matriks_B pada baris ke-idxBaris dan kolom ke-idxKolom
}
}
//proses penjumlahan Matriks_A dan Matriks_B
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
{
Matriks_Hasil[idxBaris][idxKolom] = Matriks_A[idxBaris][idxKolom] +
Matriks_B[idxBaris][idxKolom];
}
}
//proses output nilai pada array Matriks_A, Matriks_B dan Matriks_Hasil
printf("\nisi Matriks_A\n");
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
Materi Kuliah Pemrograman Terstruktur I
IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-5
{
printf("\t%d ",Matriks_A[idxBaris][idxKolom]);//output nilai dalam
Matriks_A baris ke-idxBaris dan kolom ke-idxKolom
}
printf("\n");
}
printf("\nisi Matriks_B\n");
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
{
printf("\t%d ",Matriks_B[idxBaris][idxKolom]);//output nilai dalam
Matriks_B baris ke-idxBaris dan kolom ke-idxKolom
}
printf("\n");
}
printf("\nisi Matriks_Hasil\n");
for (idxBaris=1; idxBaris<=2;idxBaris++)
{
for(idxKolom=1;idxKolom<=2;idxKolom++)
{
printf("\t%d ",Matriks_Hasil[idxBaris][idxKolom]);//output nilai dalam
Matriks_B baris ke-idxBaris dan kolom ke-idxKolom
}
printf("\n");
}
getch();
return 0;
}

Outputnya adalah :
Contoh 02 : Program untuk menghasilkan matriks identitas pada C/C++
//Contoh program array multi dimensi - kuliah Pemrograman Terstruktur I IF-Universitas
Widyatama
//dibuat oleh : Danang Junaedi
//Tanggal : 17 November 2008 jam : 16:30 di B.417

Pertemuan 8
Pemrosesan Larik
Elemen Larik diproses secara beruntun melalui indeks terurut, asalkan indeks tersebut sudah
terdefenisi. Contoh algoritma pemrosesan larik :
Deklarasi
Const max : 25
Type Larik : Array [ 1.. max] of integer
X : Larik
M : Integer
N : Integer
Contoh
Program Utama
Kepala
Algoritma Pemrosesan_Larik;
Deklarasi
Type Larik : Array [ 1.. 100 ] of integer
X : Larik
N : Integer
Procedure Input_Array ( Output x : larik; input N: integer);
Deklarasi
J := Integer
Deskripsi
For J := 1 to N do
Read ( x [ J ] )
Endfor
Procedure Output_Array ( Input x : larik; input N: integer);
Deklarasi
I := Integer
Deskripsi
For I := 1 to N do
write ( x [ I ] )
Endfor
Read ( N );
Implementasi dalam Bahasa Pemrograman Pascal :
Uses Crt;
Const max = 100;
Type
Latih = array [ 1..max ] of real;
Var
X : latih;
I,n : integer;
Procedure Inputan (masuk : latih; n : integer);
Begin
For i := 1 to n do
Begin
Write (’Masukkan suku ke-’,i, ’= ’);
Readln(x [ i ]);
End;
End;
Procedure Keluaran (cetak : latih; n : integer);
Begin
For i := 1 to n do
Write (’x [‘,I,’ ] = x [ i ] :6:1);
End;
Begin
Clrscr;
Write (‘Masukkan N (mak 100) : ‘);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Readln; End.
Pertemuan 9
Penggunaan Larik
Array dibutuhkan apabila suatu proses memerlukan penyimpanan sementara data yang bertipe
sama dalam memori, untuk selanjutnyauntuk selanjutnya data tersebut dimanipulasi, dihitung, atau
diterapkan proses lainnya. Dengan array dapat menghemat penggunaan nama-nama variabel yang
banyak.
Variabel dapat dibagi menjadi 2 yaitu :
a. Variabel tunggal
Keseluruhan data yang di input akan disimpan pada satu tempat saja sehingga nantinya yang
tersimpan data yang paling akhir.
Contoh dalam bahas Pemrograman Pascal :
Uses Crt;
Var
I,n,x : integer;
Procedure Inputan ( var x,n : integer);
Begin
For i := 1 to n do
Begin
Write (’masukkan suku ke-’,i,’=’);
Readln(x);
End;
End;
Procedure Keluaran ( var x,n : integer);
Begin
For i := 1 to n do
Write (‘x[’,i,’]=’,x);
End;
Begin
Clrscr;
Write(’Masukkan N (mak 100) :’);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n);
Readln;
End.
Jika Program ini dijalankan maka hasilnya Sebagai berikut :
Masukkan N (mak 100) : ketikkan 5
Masukkan suku ke-1 = 10
Masukkan suku ke-2 = 15
Masukkan suku ke-3 = 20
Masukkan suku ke-4 = 25
Masukkan suku ke-5 = 30
Hasilnya :
X[1] = 30
X[2] = 30
X[3] = 30
X[4] = 30
X[5] = 30

b. Variabel berindeks
Data akan disimpan berdasarkan alamat dari suatu indeksnya.
Contoh dalam Program Pascal :
Uses Crt;
Type
Latih = array [ 1..max ] of real;
Var
X : latih;
I,n : integer;

Procedure Inputan (masuk : latih; n : integer);


Begin
For i := 1 to n do
Begin
Write (’Masukkan suku ke-’,i, ’= ’);
Readln(x [ i ]);
End;
End;
Procedure Keluaran (cetak : latih; n : integer);
Begin
For i := 1 to n do
Write (’x [‘,I,’ ] = x [ i ] :6:1);
End;
Begin
Clrscr;
Write (‘Masukkan N (mak 100) : ‘);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n)
Readln;
End.
Jika Dijalankan maka hasilnya :
Masukkan N (mak 100) : ketikkan 5
Masukkan suku ke-1 = 10
Masukkan suku ke-2 = 15
Masukkan suku ke-3 = 20
Masukkan suku ke-4 = 25
Masukkan suku ke-5 = 30
Hasilnya :
X[1] =10
X[2] = 15
X[3] = 20
X[4] = 25
X[5] = 30

Pertemuan 10
Larik 2 Dimensi
Misalkkan Matrik C ukuran 3x4 yang merupakan hasil penjumlahan dari Matrik A ukuran 3x4 dan
Matrik B ukuran 3x4.

( ) ( )
a b c d m n o p
A= e f g h B= q r s t
i j k l dan u v w x

( )
a+m b+n c+o d + p
C= e+q f +r g+s h+t
i+u j+v k +w l+x
Makaalgoritma dari permasalahan tersebut dapat dituliskan :

Deklarasi
Type larik : Array [1..Indeks, 1..indeks2] of integer
X : Larik
N : Integer
Procedure Input_ArrayA(output x : Larik; Input M,N : integer);
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
Read ( A[I,j])
End for
Ebdfor
Procedure Input_ArrayB(output x : Larik; Input M,N : integer);
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
Read ( B[I,j])
End for
Endfor
Procedure Jumlah_Array(Input x : Larik; Input M,N : integer);
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
C[I,j] := A[I,j] + B[I,j]
Write ( C[I,j] )
End for
Endfor
Deskripsi
Read (N)
Input_ArrayA(x,M,N)
Input_ArrayB(x,M,N)
Jumlah_Array(x,M,N)
Implementasinya dalam bahasa Pemrograman Pascal :
Uses Crt;
Type
Latih = array [ 1..10, 1..10] of integer;
Var
I,j,n,m : Integer;
A,B,C : latih;
Procedure InputA(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku A[‘,I,’] = ‘);
Raedln(A[I,j](;
End;
End;
End;
Procedure InputB(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku B[‘,I,’] = ‘);
Raedln(B[I,j](;
End;
End;
End;
Procedure Keluaran(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
C[I,j]:=A[I,j]+ B[I,j]
Writeln(‘C[‘,I,’]=’, C[I,j]);
End;
End;
End;
Begin
Write(‘Masukkan m (mak 10) :’);
Readln(m);
Write(‘Masukkan n (mak 10) :’);
Readln(n);
InputA(a,m,n);
InputB(a,m,n);
Writeln; Writeln;
Keluaran(c,m,n);
Readln;
End.

2.1. Pengaksesan data array


Pengaksesan data array dapat dilakukan dengan cara memberikan nama variabel array tersebut
serta indexnya.
Contoh :
Data[0]=5;
Data[1]=7;
Printf(“Data pertama adalah %d \n”,Data[0]);
Cara lain untuk pengaksesan data array dalam bahasa C adalah dengan menggunakan pointer.
Contoh :
1 int data[5]={1,4,5,6,7};
2 int *p,i; //p adalah pointer ke data
3 int, i adalah sebuah int
4 p=data;
5 i=data[2];
6 *p=50; // identik dengan data[0]=50
7 *(p+1)=15; // identik dengan
8 data[1]=15
9 *(p+2)=*p+data[1]; // identik
10 dengan data[2]=data[2]+data[1];
11 p++; // alamat p ditambah 1 (p berisi
alamat int berikutnya)
printf(“Isi P adalah : “,*p);// akan
muncul data[1] yaitu 50
p=p+2; // alamat p ditambah 2(p
berisi alamat 2 int berikutnya
printf(“Isi P sekarang : “,*p);// akan
muncul data[3] yaitu 6
#include <stdio.h>
#include <conio.h>
#define maks 5
main()
{
int i,*p;
int data[5];
p=data;
clrscr();
printf("Pemasukan data :\n");
for(i=0;i<maks;i++)
{
printf("Masukan data[%d]: ",i);
scanf("%d",p+i);
}
printf("\nData yang telah di masukan adalah :\n");
for(i=0;i<maks;i++)
{
printf("Data[%d] ada di alamat %u dengan isi : %i\n",
i,p+i,*(p+i));
}
getch();
return 0;
}

2.2. Menampilkan data array


Operasi ini berguna untuk menampilkan data yang ada dalam array sebanyak banyaknya
data. Oleh karena itu berarti akan ada perulangan dari data pertama sampai data terakhir. Program
untuk menampilkan data array dapat dilihat dalam potongan program di bawah ini.
int i;
int data[5]={1,5,8,9,8};
int banyakdata=5;
for(i=0;i<banyakdata;i++)
{
printf("data[%d]: %i\n",i,data[i]);
}
Jika ingin menggunakan pointer, maka programnya adalah :
int i,*p;
int data[5]={1,5,8,9,8};
int banyakdata=5;
p=data;
for(i=0;i<banyakdata;i++)
{
printf("data[%d]: %i\n",i,*(p+i));
}
Kedua perintah di atas sama-sama menampilkan data dalam array. Jika dijalankan akan
menghasilkan tampilan seperti dibawah ini.
data[1]=5;
data[2]=8;
data[3]=9;
data[4]=8;
Karena proses menampilkan data array ini akan sangat banyak dipakai, maka sebaiknya proses ini
dibuat dalam bentuk sebuah fungsi yang memiliki parameter/argumen berupa array dan banyaknya
data. Fungsi tersebut adalah :
void view_array(int data[],int banyakdata)
{
int i;
for(i=0;i<banyakdata;i++)
{
printf("%4d ",data[i]);
}
}
atau jika parameternya ingin berupa pointer
void view_array(int *data,int banyakdata)
{
int i;
for(i=0;i<banyakdata;i++)
{
printf("%4d ",*(data+i));
}
}
Setelah fungsi tersebut dibuat, maka jika ingin menampilkan data array, akan lebih mudah.
Perhatikan contoh di bawah ini.
int a[5]={2,5,6,7,8};
int banyakdata=5;
printf("3 buah Isi A adalah : ");
view_array(a,3); printf("\n");
printf("Seluruh Isi A adalah : ");
view_array(a,banyakdata);
Lampiran 2
INSTRUMEN TES URAIAN

Kompetensi : Tes Uraian


Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 6 – 10
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
a. Menggunakan array multi dimensi
2. Indikator
a. Membuat operasi array (larik)

a. Soal
1. Buatlah Program Array Multi dimensi
2. Buatlah program dengan menggunakan C++
3. Buatlah contoh sebuah program Larik 2 dimensi

b. Kunci jawaban
1. Program Array Multi Dimensi
algoriProses penyisipan membutuhkan 3 parameter yaitu array yang akan memuat data,
banyakdata sekarang yang akan berubah setelah proses, data baru, dan posisi
penyisipannya.
void sisip_array(int data[], int *banyakdata, int baru,
int posisi)
{
int i;
if (*banyakdata < maks)
{
if((posisi>0)&&(posisi<=*banyakdata))
{
posisi--; // dalam C array dimulai dari 0,
// sehingga posisi harus dikurang 1
for(i=*banyakdata;i >= posisi;i--)
{
data[i+1]=data[i];
}
data[posisi]=baru;
*banyakdata+=1;
}
else
printf("Posisi di luar jangkauan. Penyisipan gagal\n");
}
else
{
printf("Array Penuh. Penyisipan gagal\n");

2. Program dengan menggunakan C++


#include <stdio.h>
#include <conio.h>
#define maks 5
main()
{
int i,*p;
int data[5];
p=data;
clrscr();
printf("Pemasukan data :\n");
for(i=0;i<maks;i++)
{
printf("Masukan data[%d]: ",i);
scanf("%d",p+i);
}
printf("\nData yang telah di masukan adalah :\n");
for(i=0;i<maks;i++)
{
printf("Data[%d] ada di alamat %u dengan isi : %i\n",
i,p+i,*(p+i));
}
getch();
return 0;
}
3. Penggunaan Program dalam larik 2 dimensi
Uses Crt;
Type
Latih = array [ 1..10, 1..10] of integer;
Var
I,j,n,m : Integer;
A,B,C : latih;
Procedure InputA(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku A[‘,I,’] = ‘);
Raedln(A[I,j](;
End;
End;
End;
Procedure InputB(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku B[‘,I,’] = ‘);
Raedln(B[I,j](;
End;
End;
End;

3. Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 30,
Jumlah Skor maksimal 30, maka 5 x 30 = 90
Lampiran 3
LEMBAR PENGAMATAN SIKAP

Kompetensi : Sikap
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 6 – 10
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 data/informasi sesuai
dengan apa yang dibaca.
2. Menyampaikan pendapat disertai
dengan informasi dari buku sumber
yang diterima
2. Tanggung 1. Melaksanakan tugas sesuai dengan
jawab 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 KETERAMPILAN/PSIKOMOTOR
Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 6 – 10
Alokasi waktu : 10 x 45

1. Kompetensi Dasar
a. Menggunakan array multi dimensi
2. Indikator
a. Membuat operasi array (larik)

Isilah dengan tanda centang (√) apabila seorang siswa melakukan aktivitas !
Aspek keterampilan *)
No. Nama 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 : Algoritma


Kelas / Semester :X/2
Pertemuan : 11 - 15
Alokasi Waktu : 10 x 45 Menit
Standar Kompetensi : Menerapkan Algoritma Pemograman tingkat lanjut
Karakter bangsa yang diharapkan : Disiplin, Kreatif, rasa Ingin tahu, Tanggung Jawab,
Bekerja sama.
A. Kompetensi Inti
1. Memahami nilai-nilai keimanan dengan menyadari hubungan keteraturan dan kompleksitas
alam dan jagad raya.
2. Mengamalkan nilai-nilai keimanan sesuai dengan ajaran agama dalam kehidupan sehari-hari.
3. Menunjukkan perilaku ilmiah (memiliki rasa ingin tahu, objektif, jujur, teliti, cermat, tekun,
hati-hati, bertanggung jawab, terbuka, kritis, kreatif, inovatif, dan peduli lingkungan) dalam
aktivitas sehari-hari sebagai wujud implementasi sikap dalam mlakukan percobaan dan
diskusi.
4. Menghargai kerja individu dan kelompok dalam aktivitas sehari-hari sebagai wujud
implementasi melaksanakan percobaan dan melaporkan hasil.

B. Kompetensi dasar dan Indikator


3.8 Prosedure dan fungsi
a. Membuat algoritma pemograman dengan prosedure
b. Membuat algoritma pemograman dengan fungsi
c. Membuat algoritma dengan prosedure dan fungsi

4.8 Menyajikan informasi mengenai pemrograman dengan menggunakan prosedure, dengan


menggunakan fungsi, dan dengan menggunakan prosedure dan fungsi
a. Menyajikan informasi mengenai penggunaan prosedure
b. Menyajikan informasi mengenai penggunaan fungsi
c. Menyajikan informasi mengenai penggunaan prosedure dan fungsi
C. Tujuan Pembelajaran
Setelah mengikuti pembelajaran diharapkan siswa dapat :
 Menjelaskan pendeklarasian fungsi
 Membuat contoh program untuk memanggil fungsi
 Menjelaskan pendeklarasian prosedure
 Membuat contoh program untuk memanggil prosedure

D. Materi Ajar
a. Membuat algoritma pemograman dengan prosedure
b. Membuat algoritma pemograman dengan fungsi
c. Membuat algoritma dengan prosedure dan fungsi

E. Metode Pembelajaran
a. Pendekatan : Scientifict Learning
b. Straegi : Cooperative Learning
c. Model : Problem Based Learning
d. Metode : Diskusi, Ceramah, tanya Jawab

F. Langkah – langkah Pembelajaran


Pertemuan 11 – 13

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
45 Menit
warga negara yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat
belajar
B. Inti Mengamati 180 Menit
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.

C. Penutup 1. Mereview kembali materi yang telah


disampaikan
2. Siswa mengerjakan evaluasi 45 Menit
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
30 Menit
sebagai warga negara yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat
belajar
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.
120 Menit
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.

C. Penutup 1. Mereview kembali materi yang telah


disampaikan.
2. Siswa mengerjakan evaluasi. 30 Menit
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.

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
Kelas/Semster : X/II
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;
WRITELN(max);
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 a>b THEN max := a ELSE max := b; deklarasi program
IF c>max THEN max := c; utama
WRITELN(max);
END;
BEGIN
READLN(a,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;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,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 ?’);
Readln(X);
Y:=X*X;
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 ?’);
Readln(X);
Y:=X*X;
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 := (5/9) * c + 32; f dan c variabel global, c sebagai input dan
writeln(c,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 := (5/9) * c + 32; disebut formal parameter
Writeln(c,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 Hitung(A,B : integer);
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,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 hitung(Var A,B,C : integer);
Menunjukkan pengiriman parameter secara acuan.
Contoh :
Procedure Hitung(Var A,B,C : integer);
Begin
C := A + B;
End;
Var X,Y,Z : integer;
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X=2Y=3Z=5

4. Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya.
Contoh :
Procedure pro1(var I : integer); Forward;
Procedure pro2(var I : integer);
Begin
Writeln(‘prosedur pro’, I);
End;
Procedure pro1;
Begin
Writeln(‘prosedur pro’,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
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
FillChar(x;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 := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,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 + q)r/s = POWER (p + q, r/s)


………………………………..
dll

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.

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 ? ‘);
Readln(N);
Writeln(N,’ faktorial = ‘,faktorial(N):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 write(num)
Else begin
Write(num mod 10);
Reverse(num div 10);
End;
End.

Pertemuan 15
Fungsi Standar
1. Fungsi standar arutmatika
 Fungsi standar ABS
Bentuk umum : ABS(x);
Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen x.
Contoh :
Begin
X:=-2.3;
Write(‘Nilai X = ‘,X,’ Nilai mutlaknya = ‘,Abs(X):3:1);
End.
 Fungsi standar EXP
Bentuk Umum : EXP(x:):real;

Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar e x. Hasilnya berupa
nilai real.

 Fungsi standar LN
Bentuk umum : LN(x):real;
Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x. Hasilnya
berupa nilai real.

 Fungsi standar INT


Bentuk umum : INT(x: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 = ‘,Int(X):3:2);
End.

Hasil :
Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00

 Fungsi standar FRAC


Bentuk umum : FRAC(x:):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 = ‘,Frac(X):4:3);
End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990

 Fungsi standar SQR


Bentuk umum : SQR(x);
Digunakan untuk menghitung nilai pangkat kuadrat dari argumen x.
Contoh :
Begin
X :=2;
Write(‘Nilai X = ‘,X,’ Nilai kuadratnya = ‘,sqr(x));
End.
Hasilnya : Nilai X = 2 Nilai kuadratnya = 4

 Fungsi standar SQRT


Bentuk umum : SQRT(x) : 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 : CHR(x: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 = ‘,CHR(X));
Hasilnya : Nilai X = 66 Nilai karakternya = B
 Fungsi standar ORD
Bentuk umum : ORD(x):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 : ROUND(x: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 ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 7
 Fungsi standar TRUNC
Bentuk umum : TRUNC(x: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 ‘,Trunc(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Trunc(20/3);
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 : SizeOf(x):word;
Digunakan untuk menunjukkan besarnya byte yang digunakan oleh suatu variabel x,
hasilnya berupa nilai word.
 Fungsi standar UPCASE
Bentuk umum : UpCase(Ch: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 Terbesar(X, 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 =’, Faktorial(N) : 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 (Fungsi1(3)) ;
End.
Lampiran 2
INSTRUMEN TES URAIAN
Kompetensi : Test Uraian
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
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 (Fungsi1(3)) ;
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 :
Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,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 := Hitung(X,Y);
Writeln(X,’ + ‘,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 Terbesar(X, 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
Kelas/Semster : X/II
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 data/informasi sesuai
dengan apa yang dibaca.
2. Menyampaikan pendapat disertai
dengan informasi dari buku sumber
yang diterima
2. Tanggung 1. Melaksanakan tugas sesuai dengan
jawab 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 KETERAMPILAN/PSIKOMOTOR
Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
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 !
Aspek keterampilan *)
No. Nama 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
1. Menghayati dan mengamalkan ajaran agama yang dianutnya
2. Mengembangkan perilaku (jujur, disiplin, tanggung jawab, peduli, santun, ramah
lingkungan, gotong royong, kerjasama, cinta damai, responsif dan proaktif) dan
menunjukkan sikap sebagai bagian dari solusi atas berbagai permasalahan bangsa
dalam berinteraksi secara efektif dengan lingkungan sosial dan alam serta dalam
menempatkan diri sebagai cerminan bangsa dalam pergaulan dunia
3. Memahami, menerapkan, menganalisis pengetahuan faktual, konseptual, prosedural
berdasarkan rasa ingin tahunya tentang ilmu pengetahuan, teknologi, seni, budaya,
dan humaniora dengan wawasan kemanusiaan, kebangsaan, kenegaraan, dan
peradaban terkait fenomena dan kejadian, serta menerapkan pengetahuan
prosedural pada bidang kajian yang spesifik sesuai dengan bakat dan minatnya untuk
memecahkan masalah.
4. Mengolah, menalar, menyaji, dan mencipta dalam ranah konkret dan ranah abstrak
terkait dengan pengembangan dari yang dipelajarinya di sekolah secara mandiri, dan
mampu menggunakan metoda sesuai kaidah keilmuan.

B. Kompetensi Dasar dan Indikator


3.9 Menggunakan Library Pemograman
a. Pengurutan Data
b. Pemrosesan File

4.9 Menyajikan Informasi mengenai pengurutan data dan pemrosesan file


a. Menyajikan Informasi mengenai pengurutan data
b. Menyajikan Informasi mengenai pemrosesan file
C. Tujuan Pembelajaran

1. Siswa dapat mengenali macam-macam pengurutan data.


2. Siswa dapat mengenali macam-macam pemrosesan file.
3. Memanfaatkan fasilitas siap pakai seperti wizard, libraries, atau template pada software
multimedia untuk pembuatan multimedia sederhana.
4. Melakukan proses penyimpanan file software multimedia menggunakan berbagai format
yang dikenal, seperti: *.fla

D. Materi Ajar

1. Pengurutan Data
2. Pemrosesan File

E. Metode Pembelajaran
1. Pendekatan
2. Ceramah
3. Tanya Jawab
4. Berkelompok

F. Media Pembelajaran
a. Power Point
b. Sal-soal

G. Langkah – Langkah Pembelajaran


Pertemuan 16 - 17

Kegiatan Deskripsi Alokasi Waktu


A. Pendahuluan 1. Siswa menjawab sapaan guru, berdoa, dan
mengondisikan diri siap belajar
2. Guru dan siswa bertanya jawab berkaitan dengan
identitas diri yang dibutuhkan sebagai warga negara 30 Menit
yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
B. Inti Mengamati 120 Menit
1. Siswa mengamati dan mendengarkan penjelasan
tentang penjelasan pengurutan data.
2. Siswa mengamati dan mendengarkan penjelasan
mengenai pengurutan data dengan pencacahan.
3. Siswa mengamati dan mendengarkan penjelasan
mengenai pengurutan data dengan pemilihan.
4. Siswa mengamati dan mendengarkan penjelasan
mengenai pengurutan data dengan penukaran dan
penyisipan
Menanya
1. Siswa berdikusi menganalisa mengenai pengurutan
data dengan pencacahan dan pemilihan.
2. Siswa berdikusi menganalisa tentang pengurutan data
secara penukaran dan penyisipan.

Menalar
1. Siswa mencari contoh lain dari penerapan pengurutan
data.

Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan
penggunaan toolbox dan mencoba dengan
menggunakan bahasa pemrograman pascal..

C. Penutup 1. Mereview kembali materi yang telah disampaikan


2. Siswa mengerjakan evaluasi
30 Menit
3. Siswa saling memberikan umpan balik hasil evaluasi
pembelajaran yang telah dicapai.

H. Sumber Belajar
a. Komputer Pentium 4 Standar Multimedia
b. LCD Projektor
c. Modul Mengoperasikan Software Multimedia
d. Buku-buku referensi
e. CD Software Flash MX

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
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 16 – 17
Alokasi waktu : 4 x 45

1. Kompetensi Dasar
Menggunakan Library Pemograman
2. Indikator
1. Pengurutan data
2. Pemrosesan File.

Pertemuan 16

Pengurutan dengan objek multimedia

Pengurutan (sorting) adalah proses pengurutan kembali serangkaian objek dalam urutan

tertentu. Tujuan proses pengurutan ini adalah untuk memudahkan proses pencarian seperti yang

telah dipelajari pada bab sebelumnya. Pengurutan objek dalam dunia nyata dapat ditemukan dalam

majalah, atau daftar isi, buku telepon, kamus, daftar isi.

Karenanya pengurutan merupakan bagian yang relevan dan penting, khususnya dalam

pemrosesan data. Pada bab ini akandiuraikan beberapa ide dasar pokok yang digunakan dalam

penggunaan algoritma. Semua algoritma yang dijelaskan mempunyai tujuan yang sama, namun

setiapnya mempunyai maisng-masing tergantung urutan awal data yang akan diurutkan.

Secara garis besar, berdasarkan data yang akan diurutkan. Pengurutan dibedakan menjadi

dua yaitu :

1. Pengurutan terhadap Array

2. Pengurutan terhadap file sekuensial

1. Pengurutan Array

Jenis pengutan ini disebut juga pengurutan internal (internal sorting). Karena array disimpan

di dalam ruang penyimpanan akses secara acak dengan memanfaatkan indeks array.
2. Pengurutan Terhadap File Sekuensial

Jenis pengurutan ini disebut juga pengurutan eksternal (external sorting), karena array

disimpan dalam ruang penyimpanan eksternal yang di dasarkan pada pergerakan piranti

mekanik seperti flashdisk, harddisk, floppy disk.

Perbedaan antara pengurutan internal dengan eksternal adalah, pengurutan internal dapat

diibaratkan seperti mengurutkan sekumpulan kartu-kartu yang di sebar didepan orang yang

mengurutkan sehingga dapat di akses satu per satu.

Pengurutan eksternal dapat digambarkan seperti mengurutkan kartu angka yang masih dapat dilihat

hanya kartu teratas.

Secara umum, berdasarkan ide dasar, terdapat 4 teknik pengurutan yaitu:

1. Pengurutan dengan pencacahan (sorting by counting)

2. Pengurutan dengan pemilihan (sorting by selection)

3. Pengurutan dengan penukaran (sorting by exchange)

4. Pengurutan dengan penyisipan (sorting by insertion)

Pengurutan Internal
1. Pengurutan dengan Pencacahan
Ide dasar pengurutan dengan pencacahan adalah menghitung frekuensi kemunculan setiap
elemen array. Frekuensi kemunculan tersebut digunakan untuk mengisikan kembali elemen –
elemen array mulai dari yang terkecil sampai dengan yan terbesar. Setiap elemen diisikan
sebanyak frekuensi kemunculannya.
Untuk melakukan proses pengurutan, pertama di butuhkan sebuah array untuk mencatat
frekuensi kemunculan setiap elemen array.
TabFrek [Min..Max]
Ket :
Min adalah nilai terkecil
Max adalah nilai terbesar
Kemudian TabFrek [Min..Max] diisi dengan frekuensi kemunculan setiap elemen pada TabInt
[1..n]. Kemudian TabInt [1..n] diisi ulang dengan menuliskan indeks TabFrek Min ampai
dengan Max masing-masing sebanyak TabFrek [i], i = min..max.

Contoh program dengan prosedur pengurutan dengan pencacahan :


Type
Arrint : array [1..100] of integer;
Var
TabInt : arrint;
N : integer;
...
Procedure countsort1;
{pengurutan dengan pencacahan}
Var
Max, min : integer;
I, j, k : integer;
TabFrek : arrint;
Begin
{asumsi : min dan max diketahui, TabInt [ 1..n] terisi, n diketahui}
{inisialisasi}
For i := min to max do
TabFrek [i] := 0;

{menghitung kemunculan setiap nilai}


For i := 1 to n do
TabFrek [TabInt][i]] := TabFrek ]TabInt][i]] +1;
{Tulis ulang}
J := 0;
For i := min to max do
Begin
If TabFrek [i] <> 0 then
Begn
For k := 1 to TabFrek [i] do
Begin
Inc (j);
tabInt [j] := i;
end; end;
end; end.
2. Pengurutan dengan Pemilihan
Ide dasar pengurutan dengan pemilihan adalah mencari nilai ekstrim dalam array dan
menukarkannya dengan elemen terujung. Elemeyang diinginkan array terurut mengecil n
terujung tidak diikutkan dalam proses selanjutnya.
Pemilihan nilai eksrtim tersebut tergantung pada hasil akhir pengurutan yang diinginkan. Jika
hasil akhir pengurutan yang diinginkan arrat terurut mengecil maka nilai ekstrim yang dipilih
adalah nilai terbesar, dan sebaliknya.
Contoh program :
Procedure selectionsort
{pemilihan dengan pemilihan}
Var
I, j, temp : integer; {temp : tempat sementara}
Imax : integer; {indeks nilai maksimum}
Begin
For i := 1 to n-1 do
Begin
Imax := i;
For j := i+1 to n do
If TabInt [j] <TabInt [imax] then
Imax := j;
Temp := TabInt [imax];
Tabint := [imax] := TabInt[i];
TabInt [i] := temp;
End;
End.

3. Pengurutan dengan Penukaran


Ide dasar pengurutan dengan penukaran adalah dengan “mengapungkan” elemen yang nilainya
kecil dengan pertukaran, sehingga array akan terurut membesar. Pemeriksaan dilakukan
membandingkan dua elemen yang berdekatan, mulai dari indeks terbesar n, sampai indeks
terkecil 1. Tahap ini akan menghasilkan nilai terkecil pada indeks terkecil. Selanjutnya proses
yang sama dilakukan tanpa melibatkan elemen pada indeks yang telah terurut. Algoritma
pengurutan dengan ide seperti ini disebut dengan bubblesort (bubble = gelembung).

Contoh program dnegan pengurutan penukaran


Procedure bubblesort;
{pengurutan dengan penukaran, aray akan terurut membesar}

Var
I, j, temp : integer;
Begin
For i := 2 to n do
Begin
For j : n downto i do
If tabInt [j] < TabInt [j-1) then
Begin
Temp := TabInt [ j-1];
TabInt [j-1] := temp;
TabInt [j] := temp;
End;
End;
End.

4. Pengurutan dengan Penyisipan


Ide dasar pengurutan dengan penyisipan adalah dengan melakukan proses sekuensial terhadap
array dan untuk menemukan tempat yang sesuai untuk setiap elemen sehingga semua elemen
array terurut. Untuk n elemen, elemen pertama [indeks = 1] di anggap sudah terurut. Kemudian
elemen pada indeks selanjutnya [indeks = i] dicarikan tempat sesuai di antara indeks 1 sampai
dnegan i. Proses ini dilakukan sampai dengan semua elemen sudah menempati tempat yang
tepat [indeks =n].
Contoh program pengurutan dengan penyisipan
Procedure straightinsertion;
Var
I, j, temp : integer;
Begin
For i:=2 to n do
Begin
Temp := TabInt [i];
J := i – 1;
While (temp < TabInt [j] and (j>1) do
Begin
TabInt [j + 1] := TabInt [j];
J := j -1
End;
If temp > TabInt [j] then
TabInt [ j + 1] := temp
Else begin
TabInt [ j + 1] := tabInt [j];
TabInt [ j ] := temp;
End;
End;
End.
Pertemuan 17
Pemrosesan File
Data yang disimpan pada tipe – tipe data yang telah dipelajari bersifat sementara. Artinya
sewaktu program selesai dijalankan, data tersebut akan hilang. Pada banyak aplikasi, data yang
dimasukkan, meskipun program telah selesai, harus disimpan. Aplikasi pemesanan tiket kereta api
penumpang dan data transaksi perbankan adalah beberapa contoh.
Untuk memecahkan masalah penyimpanan data yang seperti itu digunakan file. Data masukan
yang dibaca dari keyboard dapat disimpan dalam sebuah file (file output), sebagai ganti ditampilkan
data pada layar. Data pada file juga dapat dibaca lagi (file input).
Pada bab ini akan dibahas dua macam file beserta keunggulan dan kelemahannya yaitu:
1. File teks (text file)
2. File non – teks (nontext file)

1. File teks (text file)


Adalah file yang terdiri dari karakter – karakter. Karakter ini dapat dianggap sebagai data
yang bertipe karakter, integer, real, atau string tergantung kepada tipe data yang digunakan
untuk menyimpan hasil pembacaan file.
Contoh program :
Program tulisalamat;
Var
Falamat : text;
Begin
Assign (falamat, ‘alamat.txt’);
Rewrite (falamat);
Writeln (falamat, ‘Jurusan teknik Informatika’);
Writeln (falamat, ‘Fakultas teknologi Industri’);
Writeln (falamat, ‘Universita negeri Medan’);
Writeln (falamat, ‘Jl. Pancing No. 30 Medan’);
Close (alamat);
End.

Keluaran
Jurusan Teknik Informatika
Fakultas Teknologi Industri
Universitas negeri Medan
Jl. Pancing No. 30 medan
2. Fiel Non – teks
Disamping file teks yang telah dibahas, terdapat jenis file lain, yaitu Non teks. Kedua ini
jenis mempunyai masing kelebihan dan kelemahan.
Kelebihan file teks adalah :
a. File teks dapat dibuat dengan editor teks (text editor)
b. Isi file teks dapat dilihat dengan editor teks atau dengan perintah tertentu yang disediakan
oleh sistem komputer.
c. File teks dapat dimodifikasi dengan editor teks.
Kelebihan fil teks diatas merupakan kelemahan bagi file non teks. Meskipun demikian file
non teks mempunyai kelebihan juga, yaitu :
a. Jika jumlah data besar, terutama data numerik, penyimpanan data menggunakan file non
teks akan memerlukan ruang penyimpanan lebih kecil dibandingkan jika menggunakan
file teks.
b. Pembacaan dan penulisan antara file dan program lebih cepat dibandingkan dengan file
teks.
5. Contoh program ;
Program isi_tampil_file;
Var
F : file of integer;
X : integer;
Begin
Assign (f, ‘int.dat’);
Rewrite (f);
Write (‘ketikkan integer (999 = keluar) : ‘);
Readln (x);
While x <> 999 do
Begin
Write (f, x);
Write (‘ketikkan integer (999 = keluar) : ‘);
Read(x);
End;
Reset (f);
Writeln;
Writeln (‘Isi file : ‘);
While not eof (f) do
Begin
Read (f,x);
Write ( x : 3);End;Close;End.
Lampiran 2
INSTRUMEN TES URAIAN

Kompetensi : Tes Uraian


Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 16 – 17
Alokasi waktu : 4 x 45

1. Kompetensi Dasar
Menggunakan Library Pemograman
2. Indikator
1. Pengurutan data
2. Pemrosesan File.

a. Soal
1. Tuliskan pengertian pengurutan data !
2. Tuliskan 4 macam pengurutan data !
3. Tuliskan 2 pemrosesan file !
4. Tuliskan kelebihan antara file teks dengan file non teks !
5. Tuliskan contoh program dengan menggunakan pengurutan dengan pemilihan !

b. Kunci jawaban
1. Pengurutan data
Pengurutan (sorting) adalah proses pengurutan kembali serangkaian objek dalam
urutan tertentu. Tujuan proses pengurutan ini adalah untuk memudahkan proses pencarian
seperti yang telah dipelajari pada bab sebelumnya. Pengurutan objek dalam dunia nyata
dapat ditemukan dalam majalah, atau daftar isi, buku telepon, kamus, daftar isi.
2. Macam – macam pengurutan data :
1. Pengurutan dengan pencacahan (sorting by counting)
2. Pengurutan dengan pemilihan (sorting by selection)
3. Pengurutan dengan penukaran (sorting by exchange)
4. Pengurutan dengan penyisipan (sorting by insertion)

3. Pemrosesan file

a. Pemrosesan file teks

b. Pemrosesan file non teks


4. Kelebihan file teks dan kelebihan file non teks
Kelebihan file teks adalah :
a. File teks dapat dibuat dengan editor teks (text editor)
b. Isi file teks dapat dilihat dengan editor teks atau dengan perintah tertentu yang
disediakan oleh sistem komputer.
c. File teks dapat dimodifikasi dengan editor teks.
Kelebihan fil teks diatas merupakan kelemahan bagi file non teks. Meskipun demikian file
non teks mempunyai kelebihan juga, yaitu :
a. Jika jumlah data besar, terutama data numerik, penyimpanan data menggunakan file non
teks akan memerlukan ruang penyimpanan lebih kecil dibandingkan jika menggunakan
file teks.
b. Pembacaan dan penulisan antara file dan program lebih cepat dibandingkan dengan file
teks.

5. Contoh program dengan menggunakan pengurutan dengan pemilihan

Contoh program :
Procedure selectionsort
{pemilihan dengan pemilihan}
Var
I, j, temp : integer; {temp : tempat sementara}
Imax : integer; {indeks nilai maksimum}
Begin
For i := 1 to n-1 do
Begin
Imax := i;
For j := i+1 to n do
If TabInt [j] <TabInt [imax] then
Imax := j;
Temp := TabInt [imax];
Tabint := [imax] := TabInt[i];
TabInt [i] := temp;
End;
End.

d. Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 20,
Jumlah Skor maksimal 20, maka 5 x 20 = 100
Lampiran 3
LEMBAR PENGAMATAN SIKAP

Kompetensi : Sikap
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 16 – 17
Alokasi waktu : 4 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 data/informasi sesuai
dengan apa yang dibaca.
2. Menyampaikan pendapat disertai
dengan informasi dari buku sumber
yang diterima
2. Tanggung 1. Melaksanakan tugas sesuai dengan
jawab 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 KETERAMPILAN/PSIKOMOTOR

Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Algoritma dan Bahasa Pemrograman Pascal
Pertemuan ke : 16 – 17
Alokasi waktu : 4 x 45

1. Kompetensi Dasar
Menggunakan Library Pemograman
2. Indikator
a. Pengurutan data
b. Pemrosesan File.

Isilah dengan tanda centang (√) apabila seorang siswa melakukan aktivitas !
Aspek keterampilan *)
No. Nama 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

You might also like