\
|
=
l k j i
h g f e
d c b a
A dan
|
|
|
.
|
\
|
=
x w v u
t s r q
p o n m
B
|
|
|
.
|
\
|
+ + + +
+ + + +
+ + + +
=
x l w k v j u i
t h s g r f q e
p d o c n b m a
C
Maka algoritma 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
Endfor
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.
Pengurutan Data pada Array
Permasalahan lain dalam array yang juga banyak digunakan adalah bagaimana
mengurutkan elemen-elemen dari variabel array tersebut. Perhatikankembali Contoh 5.24. Pada
contoh tersebut terlihat bahwa isi elemen-elemen dari array tidak dalam posisi berurutan.
Bagaimanakah caranya agar isi elemenelemen tersebut terurut dari besar ke kecil atau
sebaliknya? Ada beberapa algoritma yang dapat digunakan untuk mengurutkan sekumpulan
bilangan, antara lain bubble sort, selection sort, shell sort, quick sort, dan lain-lain. Pada buku ini
kita akan membahas satu algoritma yaitu bubble sort. Meskipun kinerjanya tidak sebaik
algoritma yang lain, algoritma ini mudah dimengerti dan banyak digunakan.
Operasi File
File seringkali digunakan untuk menyimpan data agar data tidak hilang. Data atau yang
ada dan dihasilkan pada program akan hilang ketika program diakhiri, sehingga file digunakan
untuk menyimpan data tersebut. Ada dua jenis file yaitu file program dan file data. File program
berisi kode-kode program sedangkan file data hanya berisi data. File data terdiri dari dua jenis
yaitu file data berurutan (sequential data file) dan file data acak (random-access data file).
PERTEMUAN 8
Algoritma Penulisan Data pada File
Algoritma yang digunakan untuk penulisan data untuk file data berurutan maupun acak
secara rinsip sama, hanya modusnya yang berbeda.
Berikut ini adalah algoritma penulisan data.
Open modus, <buffer number>, nama file data Write <record number>,
field 1, field 2, .. field n
Close buffer number Modus O menunjukkan file ini dibuka untuk ditulisi.
Contoh 5.25.
Contoh Penerapan algoritma penulisan data.Misalkan kita punya file data dengan nama
siswa.dat yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk menuliskan
data adalah sebagai berikut :
Open O, #1, siswa.dat
Write #1, <nama>, <alamat>, <no.telepon>
Close #1
Notasi #1 menunjukkan siswa.dat akan ditempatkan dalam buffer no 1.
Notasi ini harus sama digunakan di seluruh progam di atas.
Artinya kalau kita menempatkan suatu file dengan nomor buffer #1 maka ketika
membuka, menulis, membaca dan menutup harus menggunakan notasi tersebut. Demikian juga
bila kita menempatkan pada buffer no #2.
Algoritma Pembacaan Data pada File
Algoritma membaca data algoritmanya hampir sama dengan menuliskan data, tetapi
modus yang digunakan tidak O tetapi I. I adalah input yang berarti file data dibuka untuk dibaca
datanya sebagai input.
Berikut ini algoritmanya dalam SE.
Open modus, <buffer number>, nama file data
While not EOF:
Input <record number>, field 1, field 2, ..
field n
Print field 1, field 2, .. field n
End while
Close buffer number
Pernyataan While Not EOF digunakan untuk memeriksa apakah sudah ada pada baris
terakhir dari data. Jika belum maka baris-baris data akan dibaca dan dicetak sampai baris
terakhir. Pernyataan input digunakan untuk mengambil data dari file untuk dimuat ke dalam
program. Sedangkan Pernyataan print digunakan untuk mencetak data ke layar komputer.
Contoh 5.26.
Contoh penerapan algoritma penulisan data. File data dengan nama siswa.dat seperti
pada contoh 5.25 yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk
membaca data adalahsebagai berikut.
Open I, #2, siswa.dat
While not EOF:
Input #2, <nama>, <alamat>, <no.telepon>
Print <nama>, <alamat>, <no.telepon>
End while
Close buffer number
Contoh dalam bahasa pemrograman dasar :
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.
PERTEMUAN 9
Percabangan dengan 2 kondisi
Struktur satu kondisi (perintah if)
Struktur ini merupakan struktur yang paling sederhana karena hanya melibatkan
satu buah ekspresi akan diperiksa. Pada konstruksi perintah if, C++ tidak memiliki kata
kunci (keyword) then.
Bentuk umum:
if (kondisi)
pernyataan;
atau
if (kondisi)
{
statemen1;
statemen2;
}
Contoh:
if (detik == 60)
menit = menit + 1;
if (Angka %2 == 0)
cout<<Bilangan genap;
if (sisi > 0)
{
Luas = panjang * lebar;
Isi = Luas*tinggi;
}
Keterangan :
Kondisi digunakan untuk menentukan pengambilan keputusan, operator yang
digunakan adalah relational dan logical operators.
Contoh program:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<Masukkan sebuah bilangan bulat: ;
cin>>nilai;
//menampilkan teks jika nilai yang tersimpan lebih besar dari 0
if (nilai > 0)
cout<<Nilai yang Anda masukkan adalah bilangan positif;
return 0; }
Hasil eksekusi program di atas bersifat dinamis artinya tidak setiap proses eksekusi
program akan menghasilkan hasil yang sama. Jika user memasukkan angka lebih besar
dari 0 maka program ini akan menampilkan teks Nilai yang Anda masukkan adalah
bilangan positif.
Selain itu kita juga 32omp nenggunakan operator || dan && dalam menentukan sebuah
ekspresi. Contoh program:
#include <iostream.h>
int main()
{
int bilangan;
char huruf;
//memasukkan bilangan bulat
cout<<Masukkan sebuah bilangan bulat: ;
cin>>bilangan;
if ((bilangan > 0) && (bilangan < 10))
cout<<bilangan<< lebih besar dari nol dan lebih kecil dari sepuluh;
//memasukkan huruf
cout<<\n;
cout<<Masukkan sebuah huruf: ;
cin>>huruf;
if ((huruf == A) || (huruf == a) || (huruf == I) ||
(huruf == i) || (huruf == U) || (huruf == u) ||
(huruf == E) || (huruf == e) || (huruf == O) ||
(huruf == o))
{
cout<<huruf<< adalah huruf 32ompu;
}
return 0;
}
PERTEMUAN 10
Penggunaan If Majemuk
Struktur dua kondisi (perintah if else)
Struktur percabangan jenis ini sedikit lebih kompleks bila dibandingkan dengan
struktur yang hanya memiliki satu kondisi. Konsep ini sangat sederhana yaitu pada struktur
jenis ini terdapat sebuah statemen khusus yang berguna untuk mengatasi kejadian apabila
kondisi yang didefinisikan tersebut tidak terpenuhi (bernilai salah). Perintah ini memberikan
satu 32omputer3232e dari dua kemungkinan.
Bentuk umum:
if (kondisi)
{
statement_jika_kondisi_terpenuhi;
}
else
{
statement_jika_kondisi_tidak_terpenuhi;
}
Contoh:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<Masukkan sebuah bilangan bulat: ;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai %2 == 0)
{
cout<<nilai<<adalah bilangan genap;
}
else
{
cout<<nilai<<adalah bilangan ganjil;
}
return 0;
}
Contoh program:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<Masukkan sebuah bilangan yang akan diperiksa: ;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai > 0)
{
cout<<nilai<< adalah bilangan positif;
}
else if (nilai < 0)
{
cout<<nilai<< adalah bilangan 34omputer;
}
else
{
cout<<Anda memasukkan bilangan NOL;
}
return 0;
}
Contoh Program :
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.
Lampiran 2
INSTRUMEN TES URAIAN
Kompetensi : Pengetahuan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semester : X/II
Mata Pelajaran : Pemrograman Dasar
Pertemuan ke : 5 10
Alokasi waktu : 12 x 45
C. Kompetensi Dasar
a. Menerapkan Struktur kontrol percabangan dalam bahasa pemrograman
D. Indikator
1. Membuat Struktur kontrol percabangan,
2. Membuat Percabangan 1 kondisi
3. Membuat Percabangan 2 kondisi
4. Membuat Percabangan lebih dari 2 kondisi
a. Soal
1. Buatlah sebuah program sederhana !
2. Tuliskan macam-macam array !
3. Tuliskan struktur percabangan !
4. Perhatikan gambar berikut : Tuliskan eksekusi dari skema tersebut.
b. Kunci jawaban
1. Contoh Program sederhana:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<Masukkan sebuah bilangan yang akan diperiksa: ;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai > 0)
{
cout<<nilai<< adalah bilangan positif;
}
else if (nilai < 0)
{
cout<<nilai<< adalah bilangan 37omputer;
}
else
{
cout<<Anda memasukkan bilangan NOL;
}
return 0;
}
2. Macam macam array :
a. Array 1 dimensi dituliskan :
Variabel [ indeks ]
b. Array 2 dimensi dituliskan :
Variabel [ indeks1, indeks2 ]
c. Array 3 dimensi dituliskan :
Variabel [ indeks1, indeks2, indeks3 ]
3. Struktur Percabangan :
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu
kondisi yang disyaratkan dipenuhi. Pada proses seperti ini 37omput flowchart Decision
harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji
kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan
ditempuh.
4. Maka eksekusi program akan berlangsung berurutan sebagai berikut :
1. Tetapkan bilangan yang ingin kita cari (yaitu 12)
2. Ambil elemen paling awal (yaitu A[0]), bandingkan isi elemen tersebut (yaitu 23)
dengan bilangan yang kita cari. Jika sama maka stop.
3. Jika tidak maka lanjutkan dengan elemen berikutnya (yaitu A[1]), bandingkan isi
elemen tersebut dengan bilangan yang kita cari. Jika sama maka stop.
4. Jika tidak maka lanjutkan dengan elemen berikutnya. Dan seterusnya sampai
dijumpai elemen yang berisi sama dengan bilangan yang kita cari.
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/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 5 10
Alokasi waktu : 12 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
jawab
1. Melaksanakan tugas sesuai dengan
perintah guru
2. Menyelesaikan tugas sampai selesai.
3. Disiplin Melaksanakan dan menyelesaikan tugas
sesuai dengan waktu yang ditetapkan.
4. Bekerja sama Menghargai pekerjaan teman dan
berperan aktif dalam menyelesaikan
tugas kelompok.
5. Santun 1. Menyampaikan pendapat dengan
bahasa dan nada yang baik.
2. Menghargai adanya perbedaan
pendapat.
Lampiran 4
LEMBAR PENGAMATAN KETERAMPILAN/PSIKOMOTOR
Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 5 10
Alokasi waktu : 12 x 45
A. Kompetensi Dasar
1. Menerapkan Struktur kontrol percabangan dalam bahasa
pemrograman
B. Indikator
1. Membuat Struktur kontrol percabangan,
2. Membuat Percabangan 1 kondisi
3. Membuat Percabangan 2 kondisi
4. Membuat Percabangan lebih dari 2 kondisi
Isilah dengan tanda centang () apabila seorang siswa melakukan aktivitas !
No. Nama
Aspek keterampilan *)
Nilai **)
1 2 3 4 5
*) Keterangan: **) Keterangan
1. Aktifitas bertanya 1. Sangat Terampil, jika 5 keaktifan
2. Aktifitas menjawab 2. Terampil, jika 4 keaktifan
3. Aktifitas mencatat 3. Cukup Terampil, jika 3 keaktifan
4. Akurasi jawaban 4. Kurang Terampil, jika 2 keaktifan
5. Akurasi pertanyaan 5. Tidak Terampil, jika 1 keaktifan
YAYASAN PENDIDIKAN TELADAN
SEKOLAH MENENGAH KEJURUAN ( SMK ) TELADAN
JALAN SINGOSARI NO. 3 TELP. (0622) 22210 23811, Fax. 22210
PEMATANG SIANTAR 21111
RENCANA PELAKSANAAN PEMBELAJARAN ( RPP )
Mata Pelajaran : Pemrograman Dasar
Kelas / Semester : X / 2
Pertemuan : 11 14
Alokasi Waktu : 8 x 45 Menit
Standar Kompetensi : Menerapkan Pemrograman Dasar
Karakter Bangsa yang diharapkan : Disiplin, Kreatif, Mandiri, Tanggung 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 Menerapkan struktur kontrol perulangan dalam bahasa pemrograman
a. Mengetahui Struktur kontrol perulangan
b. Mengetahui Perulangan dengan kondisi awal
c. Perulangan dengan kondisi akhir
4.8 Memecahkan masalah menggunakan struktur kontrol perulangan
a. Menyajikan informasi tentang struktur perulangan
b. Menyajikan informasi tentang perulangan dengan kondisi awal
c. Menyajikan informasi tentang perulangan dengan kondisi aikhir
C. Tujuan Pembelajaran
Setelah mempelajari perulangan siswa diharapkan :
a. Mengerti tentang struktur perulangan
b. Mengetahui informasi tentang perulangan dengan kondisi awal
c. Mengetahui informasi tentang perulangan dengan kondisi akhir
D. Materi Ajar
1. Struktur kontrol perulangan
2. Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
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 12
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 yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat
belajar
30 Menit
B. Inti Mengamati :
1. Siswa mengamati dan mendengarkan
penjelasan tentang struktur kontrol
perulangan.
2. Siswa mengamati dan mendengarkan
penjelasan mengenai perulangan dengan
kondisi awal.
3. Siswa mengamati dan mendengarkan
penjelasan mengenai perulangan dengan
kondisi akhir.
Menanya :
1. Siswa berdikusi menganalisa tentang
perulangan.
2. Siswa berdikusi menganalisa tentang
perulangan dengan kondisi awal.
3. Siswa berdikusi menganalisa tentang
perulangan dengan kondisi akhir.
Mengeksplorasi:
1. Siswa membuat kode program
menggunakan perulangan dengan kondisi
awal, dan perulangan kondisi akhir.
2. Siswa melakukan kompilasi, eksekusi dan
perbaikan pada kesalahan-kesalahan yang
terdapat dalam program.
Mengasosiasi:
1. Siswa membuat sebuah kesimpulan
tentang penggunaan perulangan dengan
kondisi awal, dan perulangan dengan
120 Menit
kondisi akhir.
Mengkomunikasikan:
1. Siswa membuat sebuah laporan dan
mempresentasikan hasil dari sebuah
program sederhana.
C. Penutup 1. Mereview kembali materi yang telah
disampaikan
2. Siswa mengerjakan evaluasi
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.
30
menit
Pertemuan 13 14
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 yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat
belajar
15 Menit
B. Inti Mengamati :
1. Siswa mengamati dan mendengarkan
penjelasan tentang struktur kontrol
perulangan.
2. Siswa mengamati dan mendengarkan
penjelasan mengenai perulangan dengan
kondisi awal.
3. Siswa mengamati dan mendengarkan
penjelasan mengenai perulangan dengan
kondisi akhir.
Menanya :
1. Siswa berdikusi menganalisa tentang
perulangan.
2. Siswa berdikusi menganalisa tentang
perulangan dengan kondisi awal.
3. Siswa berdikusi menganalisa tentang
perulangan dengan kondisi akhir.
Mengeksplorasi:
1. Siswa membuat kode program
menggunakan perulangan dengan kondisi
awal, dan perulangan kondisi akhir.
2. Siswa melakukan kompilasi, eksekusi dan
perbaikan pada kesalahan-kesalahan yang
terdapat dalam program.
Mengasosiasi:
1. Siswa membuat sebuah kesimpulan
tentang penggunaan perulangan dengan
kondisi awal, dan perulangan dengan
kondisi akhir.
Mengkomunikasikan:
1. Siswa membuat sebuah laporan dan
mempresentasikan hasil dari sebuah
60 Menit
program sederhana.
C. Penutup 1. Mereview kembali materi yang telah
disampaikan
2. Siswa mengerjakan evaluasi
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.
30 menit
G. Media Pembelajaran
1. Komputer
2. Proyektor
3. UPS
H. Sumber Belajar
1. Buku Algoritma dan Pemrograman Pascal.
2. Internet.
3. Modul produktif, Buku Algoritma dan pemograman tingkat Dasar.
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 Reagan S Saragih, 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/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 14
Alokasi waktu : 8 x 45
A. Kompetensi Dasar
2. Menerapkan struktur kontrol perulangan dalam bahasa
pemrograman
B. Indikator
1. Mengetahui Struktur kontrol perulangan
2. Mengetahui Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
Pertemuan 11
Struktur kontrol perulangan
Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaanyang
harus diulang berkali. Salah satu contoh yang gampang kita jumpai adalah balapan
mobil seperti tampak pada Mobil-mobil peserta harus mengelilingi lintasan sirkuit
berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang mencapai garis
akhir paling cepat, dialah yang menang. Pada pembuatan program 44omputer, kita juga
kadang-kadang harus mengulang satu atau sekelompok perintah berkali-kali agar
memperoleh hasil yang diinginkan.
Dengan menggunakan 44omputer, eksekusi pengulangan mudah dilakukan. Hal
ini karena salah satu kelebihan 44omputer dibandingkan dengan manusia adalah
kemampuannya untuk mengerjakan tugas atau suatu instruksi berulangkali tanpa
merasa lelah, bosan, atau malas. Bandingkan dengan pengendara mobil balap, suatu
ketika pasti dia merasa lelah dan bosan untuk berputar-putar mengendarai mobil
balapnya. Struktur pengulangan terdiri dari dua bagian yaitu :
1. Kondisi pengulangan,
Yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini
biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar
(true) atau salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang
Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian
terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan
dilakukan pertama kali. Bagian insialisasi umumnya digunakan untuk memberi nilai
awal sebuah variable. Sedangkan terminasi adalah instruksi yang dilakukan setelah
pengulangan selesai dilaksanakan.
Ada beberapa bentuk pengulangan yang dapat digunakan, masing-masing dengan
syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang
sama, namun ada bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk
pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma.
Pemilihan bentuk pengulangan yang tepat bergantung pada masalah yang akan
45omputer45.
Ada beberapa perulangan di dalam pemrograman dasar :
a. Pengulangan dengan For
Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang
paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman
menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For
kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur
ini menggunakan sebuah variable yang biasa disebut sebagai loops counter, yang
nilainya akan naik atau turun selama proses pengulangan.
Flowchart umum untuk struktur For tampak pada Gambar 5.14.
Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkah-langkah
adalah sebagai berikut :
a. Menetapkan nilai counter sama dengan awal.
b. Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika benar
maka keluar dari proses pengulangan. Apabila kenaikan bernilai 45omputer,
maka proses akan memeriksa apakah nilai counter lebih kecil daripada nilai
akhir. Jika benar maka keluar dari proses pengulangan.
c. Mengeksekusi pernyataan yang ada di badan loop
d. Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang ditentukan
pada argument increment. Apabila argument increment tidak ditetapkan maka
secara default nilai counter akan dinaikkan 1.
e. Ulang kembali mulai langkah no 2.
b. Satu hal yang penting yang harus kita perhatikan adalah nilai counter selalu
ditetapkan diawal dari pengulangan. Apabila kita mencoba merubah nilai akhir
pada badan loop, maka tidak akan berdampak pada berapa banyak pengulangan
akan dilakukan.
b. Pengulangan dengan While
Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti
karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan.
Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan
While merupakan jawaban dari permasalahan ini. Seperti halnya For, struktur
pengulangan dengan While juga merupakan struktur yang didukung oleh 46omput
semua bahasa pemrograman namun dengan sintaks yang berbeda.
Flowchart umum untuk struktur For tampak pada Gambar 5.15
Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi
pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang.
Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop
akan diulang. Flowchart umum untuk struktur While dapat dilihat pada Gambar Pada
Gambar tampak bahwa simbol preparasi untuk pengulangan seperti pada For tidak
digunakan lagi. Namun kita menggunakan simbol decision untuk mengendalikan
pengulangan. Selain kondisi, biasanya pada pengulangan While harus dilakukan
inisialisasi variabel terlebih dahulu.
Pertemuan 12
Diagram Alir dan Struktur Data
Algoritma Squential Search
Metode pencaharian berurutan merupakan metode pencaharian data yang paling
mudah, secara garis besar metode ini bisa ditampilkan sebagian dari kumpulan data
yang diketahui data yang akan kita cari, kita bandingkan satu persatu sampai data yang
kita inginkan bertemu atau tidak ketemu dengan kumpulan data tersebut pada saat data
yang kita cari. Juga sudah ketemu maka proses pencaharian langsung kita hentikan,
tetapi data yang kita cari belum ketemu maka 47omputer47 kita teruskan sampai
seluruh data dibandingkan. Dalam kasus yang paling burung dengan vakton n elemen
harus dilakukan pencaharian sebanyak n kali pencarian.
Contoh :
5 7 9 10 50 70 6 12 8
Data yang dicari adalah : 70
Terdapat pada element : 6
Algoritma program searah :
Langkah :
a. Baca kumpulan data yang diketahui sebagai vektor A dengan n elemen
b. Baca data yang akan dicari, mis : 2
c. Tentukan i = 1
d. [proses mencari bandingan x dengan a (i)] jika x : a (i) data ketemu pergi ke
langkah s
e. [ test 1]
f. jika i > n [data tidak ketemu] ke langkah s jika tidak, tentukan: i = E + i kembali
kelangkah 3
g. Tampilkan pesan yang sesuai dan selesai
Algoritma Gelembung (Buble Short)
Untuk menampilkan untuk menampilkan nilai paling kecil diletakkan diawal
data. Algoritma diaplikasikan untuk mencari data yang paling kecil. Dalam suatu
individu dan tidak mencari nilai data pengolahan dilakukan untuk n-1, x suatu exservasi
untuk mencapatkan nilai terkecil.
Misalnya datanya : 23, 45, 12, 24, 56, 34, 27, 23, 16;
Langkah-Langkah :
a. a (1) dengan a (2) 23 dengan 45 Tetap
b. a (1) dengan a (3) 12 dengan 12 Tukar
c. a (1) dengan a (4) 12 dengan 24 Tetap
d. a (1) dengan a (5) 12 dengan 56 Tetap
e. a (1) dengan a (6) 12 dengan 34 Tetap
f. a (1) dengan a (7) 12 dengan 27 Tetap
g. a (1) dengan a (8) 12 dengan 23 Tetap
h. a (1) dengan a (9) 12 dengan 16 Tetap
i. Hasil : 12, 23, 45, 24, 56, 34, 27, 23, 16
Shorting
Pertimbangan akan melakukan shorting.
Hal-hal yang akan dipertimbangkan adalah :
1. Perlu tidaknya data disorting
2. Besarnya atau banyaknya data yang akan dishorting
3. Kemampuan atau kapasitas komputer atau penyimpanan datanya
4. Metode shorting
Tehnik-tehnik shorting.
Pada garis besarnya ada 3 tehnik sorting :
1. Insortion Sort (Sorting penyisipan)
Tehnik ini adalah dengan membandingkan elemen n ( n mulai dari 2 hingga
elemen terakhir) dengan elemen-elemen sebelumnya.
Contoh : 8, 3, 7, 4
8, 7, 8, 4 (awal) 4 banding 8 Tukar
Hasil : 3, 4, 7, 8 4 banding 7 Tukar
Hasil : 3, 4, 7, 8 4 banding 3 Tetap
Hasil : 3, 4, 7, 8 (akhir)
2. Selection Sort (Sorting Pemilihan)
Tehnik ini adalah mencari elemen terkecil kemudian letakkan dan tukar
dengan posisi ke n (n mulai dari 1 hingga elemen terakhir n)
Contoh : 8, 3, 7, 4
Pada langkah pertama hasil sortirnya : 3, 8, 7, 4 (mulai dari elemen
pertama, elemen terkecil = 3, letakkan dan tukar dengan elemen pertama)
Pada langkah kedua hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 2
elemen terkecil = 4, letakkan dan tukar dengan elemen ke 2
Pada langkah ke 3 hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 3
elemen terkecil = 7, letakkan dan tukar dengan elemen ke 3)
3. Exchange Sort (Shorting Penukaran)
Contoh sotir umumnya yang menggambarkan exchange sort adalah Bubble
short. Algoritma dari tehnik ini adalah dengan melakukan proses
perbandingan sebanyak n elemen dari n = 1 (selanjutnya dimulai = 1)
bandingkan seluruh elemen dimulai dari elemen sebelah kanan ke n. Bila
elemen tersebut lebih kecil dari, maka lakukan dari, maka lakukan penukaran
tempat. Lakukan elemen mulai +1 seperti proses sebelumnya hingga nilai
mulai +1 = n
Contoh : 8, 7, 6, 5, 4
Proses 1 :
- Bandingkan 8 (elemen pertama) dengan 7 (elemen kedua) hasilnya : 7, 8, 6, 5,
4
- Bandingkan 7 (elemen pertama) dengan 6 (elemen ketiga) hasilnay : 6, 8, 7, 5,
4
- Bandingkan 6 (elemen pertama) dengan 5 (elemen ketiga) hasilnay : 5, 8, 7, 6,
4
- Bandingkan 5 ( elemen pertama) dengan 4 (elemen keempat) hasilnya : 4, 8,
7, 6, 5 (urutan 1 telah diperoleh)
Pertemuan 13
a. MERGE SHORT
Shorter ini biasanya digunakan untuk jumlah data yang besar dengan membagi-
bagi menjadi sub-sub bagian dimulai dari sedikit elemen hingga keseluruhan elemen
tersebut menjadi data yang sudah diurut. Shorter ini digunakan bila kapasitas memory
tidak sanggup untuk menampung seluruh data yang diakan disortir.
Soal :
78, 63, 50, 70, 60, 35, 12, 14, 18, 23, 50, 40, 51, 34, 30, 25, 45, 20
Penyelesaian :
- 63, 78, 50, 70, 35, 60, 12, 14, 18, 227, 40, 50, 34, 51, 25, 30, 20, 45
- 50, 63, 70, 78, 12, 14, 35, 60, 18, 23, 40, 90, 25, 30, 34, 40, 51, 90, 20, 45
- 12, 14, 35, 50, 60, 63, 70, 78, 18, 23, 25, 30, 34, 40, 51, 90, 20, 45
- 12, 14, 18, 23, 25, 30, 34, 35, 40, 50, 51, 60, 63, 70, 78, 90, 20, 45
- 12, 14, 18, 20, 23, 25, 30, 34, 35, 40, 45, 50, 51, 60, 63, 70, 78, 90 (hasil akhir)
3. Loop Dengan Decision
Tiap loop memiliki pengontrol loop yaitu suatu keadaan dimana suatu loop harus
selesai. Decision digunakan sebagai pengontrol loop untuk menyelesaikan perulangan
prosesnya.
Bentuk umum :
Parameter := awal;
10 if (parameter <= akhir) then
blok loop
parameter := parameter + step;
goto 10
endif
c. Loop For
Loop ini agak 50ompute, dimana antara nilai awal, nilai akhir dan step tertulis
didalam satu statement.
Bentuk umum :
For indeks := awal to akhir do
Blok loop
Endfor
d. Loop While
Pada loop ini sebelum masuk kedalam blok loop, nilai awal harus didefenisikan diluar
blok loop, yang kemudian akan dikomparasi dengan batas loop, jika proses komparasi
bernilai true maka proses akan masuk kedalam blok loop.
Bentuk umum :
Parameter := awal
While (parameter <= akhir) do
Blok loop
Parameter := parameter + step
Endwhile.
e. Loop Repeat
Pada loop repeat pengontrol loop ada pada akhir blok loop sehingga loop ini minimal
sekali pasti dikerjakan dalam prosesnya. Pada loop repeat proses akan terus diulang
selama komparasi bernilai false.
Bentuk umum :
Parameter := awal
Repeat
Blok loop
Parameter := parameter + step
Until parameter > akhir
f. Nested Loop For
Yang dimaksud dengan loop tersarang adalah suatu loop yang berada di dalam loop, artinya
proses suatu loop bergantung dengan proses loop lainnya. Bentuk standart dari loop ini tidak
ada karena sangat fleksibelnya.
Bentuk umum :
For indeks1 := awal1 to akhir1 do
Statement1
For indeks2 := awal2 to akhir 2 do
Statement2
Endfor
Endfor
Pertemuan 14
Perulangan dengan kondisi akhir
1. Nested Loop While
Penggunaan loop while yang saling tersarang sebagaimana pada kasus loop for.
Bentuk umum :
Parameter := awal1
While (parameter <= akhir 1) do
Statemen1
Parameter2 := awal2
While (parameter <= akhir2) do
Statemen2
Parameter2 := parameter2 + step2
Endwhile
Parameter1 := parameter1 + step1
Endwhile
2. Nested Loop Repeat
Penggunaan loop repeat yang saling tersarang, sebagaimana pada kasus loop for dan
loop while maka tidak ada bentuk khusus dari loop tersarang repeat.
Bentuk umum :
Parameter := awal1
Repeat
Statemen1
Parameter2 := awal2
Repeat
Statemen2
Parameter2 := parameter2 + step2
Until parameter > akhir2
Parameter1 := parameter1 + step1
Until parameter > akhir1
3. Nested Loop Compound
Merupakan gabungan dari macam macam loop yang ada.
Bentuk umum :
For indeks1 := awal1 to akhir1 do
Statement1
Indeks2 := awal2
While (indeks2 <=akhir2) do
Statement2
Indeks2 := indeks2 + step2
Endwhile
Endfor
Lampiran 2
INSTRUMEN TES URAIAN
Kompetensi : Pengetahuan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 14
Alokasi waktu : 8 x 45
A. Kompetensi Dasar
4. Menerapkan struktur kontrol perulangan dalam bahasa
pemrograman
B. Indikator
1. Mengetahui Struktur kontrol perulangan
2. Mengetahui Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
a. Soal
1. Tuliskan Keuntungan dari pembuatan algoritma !
2. Tuliskan Beberapa hal yang perlu diperhatikan dalam membuat algoritma!
3. Buatlah flowchart untuk menghitung volume balok !
4. Buatlah flowchart untuk menghitung Luas Lingkaran !
b. Kunci Jawaban
1. Keuntungan algoritma adalah:
a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun, artinya penulisan algoritma independen dari
bahasa pemrograman dan 53omputer yang melaksanakannya.
b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
c. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
2. Hal yang perlu diperhatikan :
a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah
dimengerti dan dipahami.
b. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi
bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma
disebut notasi algoritmik.
c. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik
sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks
program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam
notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik
tersebut berkorespondensi dengan notasi bahasa pemrograman secara
umum.
d. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu
pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh
54omputer. Agar dapat dijalankan oleh 54omputer, pseudocode dalam
notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi
bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang
menulis program sangat terikat dalam aturan tata bahasanya dan
spesifikasi mesin yang menjalannya.
e. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa pemrograman
3. Flowchart volume balok
4. Flowchart Luas Lingkaran :
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/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 14
Alokasi waktu : 8 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 Pemrograman dasar
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
jawab
1. Melaksanakan tugas sesuai dengan
perintah guru
2. Menyelesaikan tugas sampai selesai.
3. Disiplin Melaksanakan dan menyelesaikan tugas
sesuai dengan waktu yang ditetapkan.
4. Bekerja sama Menghargai pekerjaan teman dan
berperan aktif dalam menyelesaikan
tugas kelompok.
5. Santun 1. Menyampaikan pendapat dengan
bahasa dan nada yang baik.
2. Menghargai adanya perbedaan
pendapat.
Lampiran 4
LEMBAR PENGAMATAN KETERAMPILAN/PSIKOMOTOR
Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 14
Alokasi waktu : 8 x 45
A. Kompetensi Dasar
5. Menerapkan struktur kontrol perulangan dalam bahasa
pemrograman
B. Indikator
1. Mengetahui Struktur kontrol perulangan
2. Mengetahui Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
Isilah dengan tanda centang () apabila seorang siswa melakukan aktivitas !
No. Nama
Aspek keterampilan *)
Nilai **)
1 2 3 4 5
*) Keterangan: **) Keterangan
1. Aktifitas bertanya 1. Sangat Terampil, jika 5 keaktifan
2. Aktifitas menjawab 2. Terampil, jika 4 keaktifan
3. Aktifitas mencatat 3. Cukup Terampil, jika 3 keaktifan
4. Akurasi jawaban 4. Kurang Terampil, jika 2 keaktifan
5. Akurasi pertanyaan 5. Tidak Terampil, jika 1 keaktifan
YAYASAN PENDIDIKAN TELADAN
SEKOLAH MENENGAH KEJURUAN ( SMK ) TELADAN
JALAN SINGOSARI NO. 3 TELP. (0622) 22210 23811, Fax. 22210
PEMATANG SIANTAR 21111
RENCANA PELAKSANAAN PEMBELAJARAN ( RPP )
Mata Pelajaran : Pemrograman Dasar
Kelas / Semester : X / 2
Pertemuan : 15 17
Alokasi Waktu : 6 x 45 Menit
Standar Kompetensi : Menerapkan Pemrograman Dasar
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.8 Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah
kompleks
a. Analisa pemecahan masalah
b. Debugging dan error dalam program
4.8 Menganalisa kesalahan dalam program
a. Mencari pemecahan masalah dengan menggunakan algoritma
b. Melakukan pengujian debugging dan mencari error dalam sebuah program
C. Tujuan Pembelajaran
Setelah pembelajaran selesai, peserta didik diharapakan mampu :
+ Menyajikan Algoritma
+ Menyajikan Flowchart
+ Mencari kesalahan-kesalahan dalam sebuah program.
D. Materi Ajar
1. Penyajian Algoritma
2. Kesalahan kesalahan yang terdapat dalam sebuah program
3. Flowchart
E. Metode Pembelajaran
1. Pendekatan
2. Ceramah
3. Tanya Jawab
4. Berkelompok
F. Media Pembelajaran
a. Power Point
b. Sal-soal
c. Infocus
d. Contoh Program
G. Langkah Langkah Pembelajaran
Pertemuan 15 16
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
yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
30 Menit
B. Inti Mengamati :
1. Siswa mengamati dan mendengarkan penjelasan
tentang debugging dalam sebuah program
2. Siswa mengamati dan mendengarkan penjelasan
mengenai error yang terjadi dalam sebuah
program.
Menanya :
1. Siswa berdikusi menganalisa tentang debugging
sebuah program.
2. Siswa berdikusi menganalisa tentang error salam
sebuah program.
Mengeksplorasi:
1. Siswa melakukan kompilasi, eksekusi dan
perbaikan pada kesalahan-kesalahan yang terdapat
dalam program.
Mengasosiasi:
1. Siswa membuat sebuah kesimpulan tentang
debugging dan error dalam sebuah program.
120 Menit
Mengkomunikasikan:
Siswa membuat sebuah laporan dan
mempresentasikan hasil dari sebuah program
sederhana.
C. Penutup 1. Mereview kembali materi yang telah disampaikan
2. Siswa mengerjakan evaluasi
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.
30 Menit
Pertemuan 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
yang baik.
3. Guru menyampaikan tujuan pembelajaran
4. Guru memotivasi siswa agar semakin giat belajar
15 Menit
B. Inti Mengamati :
1. Siswa mengamati dan mendengarkan penjelasan
tentang debugging dalam sebuah program
2. Siswa mengamati dan mendengarkan penjelasan
mengenai error yang terjadi dalam sebuah
program.
Menanya :
3. Siswa berdikusi menganalisa tentang debugging
sebuah program.
4. Siswa berdikusi menganalisa tentang error salam
sebuah program.
Mengeksplorasi:
2. Siswa melakukan kompilasi, eksekusi dan
perbaikan pada kesalahan-kesalahan yang terdapat
dalam program.
Mengasosiasi:
2. Siswa membuat sebuah kesimpulan tentang
debugging dan error dalam sebuah program.
Mengkomunikasikan:
Siswa membuat sebuah laporan dan
mempresentasikan hasil dari sebuah program
sederhana.
60 Menit
C. Penutup 1. Mereview kembali materi yang telah disampaikan
2. Siswa mengerjakan evaluasi
3. Siswa saling memberikan umpan balik hasil
evaluasi pembelajaran yang telah dicapai.
15 Menit
H. Sumber Belajar
1. Buku Algoritma dan Pemrograman Pascal.
2. Internet.
3. Modul produktif, Buku Algoritma dan pemograman tingkat Dasar.
I. Penilaian
6. Teknik penilaian : Test
7. 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. Reagan S Saragih, 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/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 15 17
Alokasi waktu : 6 x 45
A. Kompetensi Dasar
1. Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah
kompleks
B. Indikator
1. Analisa pemecahan masalah
2. Debugging dan error dalam program
Pertemuan 15
Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan
gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu
(misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode
yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih
tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada
pemrogram.
Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara
umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan
algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan
aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan.
Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah
diketahui sejak awal.
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara
menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk
menuliskan algoritma.
Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Solusi Algoritma :
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b
Contoh Lain Algortima dan Pseudo-code :
Pertemuan 16
Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan
antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan
demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses
digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan
kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah.
Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara
pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain,
dalam suatu sistem pengolahan data.
Beberapa contoh Flowchart sistem:
2. Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
Kaidah-Kaidah Umum Pembuatan Flowchart Program
Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah
dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu
pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri
atas 3 bagian utama, yaitu :
1. Input,
2. Proses pengolahan dan
3. Output
Pertemuan 17
Pemecahan masalah dalam sebuah Program
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani
pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data
yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada
beberapa anjuran :
1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk
memperjelas.
3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia
pemrograman :
Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus
sederhana.
Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas
persegi panjang.
Solusi : Perumusan untuk mencari luas persegi panjang adalah : L = p . l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.
Keterangan gambar :
1. Simbol pertama menunjukkan dimulainya sebuah program.
2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L =
p. l.
4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
Lampiran 2
INSTRUMEN TES URAIAN
Kompetensi : Tes Uraian
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semester : X/II
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 15 17
Alokasi waktu : 6 x 45
A. Kompetensi Dasar
1. Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah
kompleks
B. Indikator
1. Analisa pemecahan masalah
2. Debugging dan error dalam program
a. Soal
1. Tuliska pengertian pseudocode !
2. Tuliskan solusi pseudocode !
3. Tuliskan 3 bagian utama dalam sebuah proses flowchart !
4. Gambarkan flowchart untuk mencari sebauh Luas persegi panjang !
b. Kunci Jawaban
1. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya
seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan
algoritma yang akan dikomunikasikan kepada pemrogram.
2. Solusi Pseudo-code :
a. Masukkan bilangan pertama
b. Masukkan bilangan kedua
c. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan langkah 5.
d. Tampilkan bilangan pertama
e. Tampilkan bilangan kedua
3. 3 bagian utama flowchart
Input,
Proses pengolahan
danOutput
4. Flowchart mencari Luas persegi panjang :
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 : Pemrograman Dasar
Pertemuan ke : 15 17
Alokasi waktu : 6 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 3. Melaporkan data/informasi sesuai
dengan apa yang dibaca.
4. Menyampaikan pendapat disertai
dengan informasi dari buku sumber
yang diterima
2. Tanggung
jawab
3. Melaksanakan tugas sesuai dengan
perintah guru
4. 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 3. Menyampaikan pendapat dengan
bahasa dan nada yang baik.
4. Menghargai adanya perbedaan
pendapat.
Lampiran 4
LEMBAR PENGAMATAN KETERAMPILAN/PSIKOMOTOR
Kompetensi : Keterampilan
Satuan Pendidikan : SMK Swasta Teladan
Kelas/Semster : X/II
Mata Pelajaran : Pemrograman Dasar
Pertemuan ke : 15 17
Alokasi waktu : 6 x 45
A. Kompetensi Dasar
1. Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah
kompleks
B. Indikator
1. Analisa pemecahan masalah
2. Debugging dan error dalam program
Isilah dengan tanda centang () apabila seorang siswa melakukan aktivitas !
No. Nama
Aspek keterampilan *)
Nilai **)
1 2 3 4 5
*) Keterangan: **) Keterangan
1. Aktifitas bertanya 1. Sangat Terampil, jika 5 keaktifan
2. Aktifitas menjawab 2. Terampil, jika 4 keaktifan
3. Aktifitas mencatat 3. Cukup Terampil, jika 3 keaktifan
4. Akurasi jawaban 4. Kurang Terampil, jika 2 keaktifan
5. Akurasi pertanyaan 5. Tidak Terampil, jika 1 keaktifan