Professional Documents
Culture Documents
RPP Algoritma Genap
RPP Algoritma Genap
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.
E. Metode Pembelajaran
Penyampaian
Tanya jawab
Tes Program
Praktek
F. Media pembelajaran
Komputer
Buku Algoritma
Buku Struktur data
Internet
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
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.
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;
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
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.
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
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.
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.
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.
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
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
Menalar
1. Siswa mencari contoh lain dari penggunaan array.
Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan
penggunaan array dalam sebuah program
Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan penggunaan
array dalam sebuah program
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
SUDARLIAN, S.Pd.,M.Si.
Lampiran 1
BAHAN AJAR
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.
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;
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.
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");
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
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.
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
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
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.
Pertemuan 14 – 15
Mengomunikasikan
1. Siswa secara berkelompok mempraktekkan
dalam penggunaan prosedure dan fungsi
dalam sebuah program pascal.
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)
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.
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.
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 :
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.
ab = POWER (a,b)
ba = POWER (b,a)
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
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.
Hasil :
Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00
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).
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.
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
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
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.
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
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.
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
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..
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)
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 (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
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 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
Perbedaan antara pengurutan internal dengan eksternal adalah, pengurutan internal dapat
diibaratkan seperti mengurutkan sekumpulan kartu-kartu yang di sebar didepan orang yang
Pengurutan eksternal dapat digambarkan seperti mengurutkan kartu angka yang masih dapat dilihat
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.
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.
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
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
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
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.
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