Labels

Rabu, 05 Oktober 2011

Job Sheet Untuk SMK Jurusan RPL Algoritma Dasar & Pemrograman

1. Output Program
Untuk menampilkan output atau keluaran program pada Pascal menggunakan perintah :
Write : menampilkan output kemudian kursor masih pada baris yang sama.
WriteLn : menampilkan output kemudian kursor pindah baris.

Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan perbedaan fungsi write dan writeln kemudian simpan pada Ms Word dan
dikumpulkan.
Simpan program menggunakan nama contoh1, contoh2, contoh3, dan sterusnya.
Contoh 1 :
begin
Write('hello');
Write(' saya belajar pascal ');
ReadLn();
end.
Contoh 2 :
begin
WriteLn('hello');
Write('saya belajar pascal ');
ReadLn();
end.
Contoh 3 :
begin
WriteLn('PROGRAM PERTAMA SAYA');
Write('Saya anak SMKN 2 Buduran');
Write(' sedang belajar pascal, ');
Write(' ternyata pascal');
Write(' itu mudah');
Write(' dan menyenangkan');
ReadLn();
end.
Contoh 4:
begin
WriteLn('PROGRAM PERTAMA SAYA');
Writeln('Saya anak SMKN 2 Buduran');
Writeln('sedang belajar pascal, ');
WriteLn();
WriteLn();
Writeln('ternyata pascal');
Writeln('itu mudah');
Writeln('dan menyenangkan');
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 3 of 43
2. Operasi Matematika
Dalam operasi matematika pascal menggunakan beberapa operator yang dapat
digunakan untuk proses perhitungannya. Gunakan operator yang ada dalam tabel untuk
operasi perhitungan pada program yang dibuat.
Operator Operasi Tipe Operand Tipe Hasil
* Perkalian real, real
integer, integer
real, integer
real
integer
real
DIV Hasil Pembagian
yang utuh
integer, integer Integer
/ Pembagian real real, real
integer, integer
real, integer
real
real
real
MOD Sisa pembagian integer, integer Integer
+ Penambahan real, real
integer, integer
real, integer
real
integer
real
- Pengurangan real, real
integer, integer
real, integer
real
integer
real
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan fungsi matematika dan tanda koma (,) kemudian simpan pada Ms Word
dan dikumpulkan.
Contoh 1:
begin
WriteLn( 3 * 2);
Writeln( 4 / 3);
Writeln( 4 / 3 :0:2);
Writeln(4 div 3);
Writeln( 4 mod 3);
Writeln( 4 + 3);
Writeln( 4 - 3);
ReadLn();
end.
Contoh 2:
begin
WriteLn( '3 * 2 = ', 3 * 2);
Writeln( '4 / 3 = ', 4 / 3);
Writeln( '4 / 3 = ', 4 / 3 :0:2);
Writeln('4 div 3 = ',4 div 3);
Writeln('4 mod 3 = ', 4 mod 3);
Writeln( '4 + 3 = ',4 + 3);
Writeln('4 - 3 = ', 4 - 3);
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 4 of 43
3. Input, Variabel, dan Type data
Variabel adalah nama tempat yang digunakan untuk menyimpan data pada memori
komputer. Nilai dari suatu variabel dapat berubah sewaktu – waktu ketika program
sedang dijalankan.
Jika kita menggunakan pengenal variabel di dalam program, maka variabel tersebut
harus kita deklarasikan terlebih dahulu. Pada waktu kita mendeklarasikan suatu variabel,
maka kita harus menentukan tipe dari datanya. Type dari data ini menunjukkan suatu
nilai yang dapat digunakan oleh variabel bersangkutan. Pada pokok bahasan ini akan
dijelaskan bentuk type data standar, yaitu dapat berbentuk tipe-tipe data numerik
integer, numerik real, karakter, string dan boolean.
Tipe data integer
Data numerik integer merupakan nilai bilangan bulat baik dalam bentuk desimal
maupun hexadesimal. Nilai integer hexadesimal diawali dengan tanda dollar ($).Pascal
menyediakan 5 macam tipe data integer yang masing-masing mempunyai jangkauan
nilai yang berbeda seperti pada tabel berikut :
Tipe Ukuran Memori Jangkauan Nilai
Byte 1 byte 0..255
ShortInt 1 byte -128..127
Integer 2 byte -32768..32767
Word 2 byte 0..65535
LongInt 4 byte -2147483648..2147483647
Tipe data Real
Nilai konstanta numerik real berkisar dari 1E-38 sampai dengan 1E+38 dengan
signifikansi sampai dengan 11 digit . E menunjukkan nilai 10 pangkat. Nilai konstanta
numerik real menempati memori sebesar 6 byte. Berikut tabel tipe data real.
Type Jangkauan Ketelitian Ukuran
Real 2.9e-39..1.7e38 11-12 digit 6 bit
Single 1.5e-45..3.4e38³ 7-8 digit 4 bit
Double 5.0e-324..1.7e308 15-16 digit 8 bit
Extended 3.4e-4932..1.1e4932 19-20 digit 10 bit
Comp -9.2e18..9.2e18 19-20 digit 8 bit
Tipe data Karakter (Char)
Nilai data karakter berupa sebuah karakter yang ditulis diantara tanda petik tunggal,
seperti misalnya ‘A’, ‘a’, ‘!’, ‘%’, ‘5’ dan sebagainya. Penggunaan variabel untuk
menyimpan data tipe karakter ini harus dideklarasikan dengan tipe char.
Tipe data String
Nilai data string merupakan urut-urutan dari karakter yang terletak di antara tanda petik
tunggal. Bila karakter petik merupakan bagian dari konstanta string, maka dapat ditulis
dengan menggunakan dua buah petik tunggal berurutan. Nilai data string akan
menempati memori sebesar banyaknya karakter string ditambah dengan 1 byte. Bila
panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap
panjangnya adalah 255 karakter.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 5 of 43
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan fungsi variabel dan posisi variabel pada output program kemudian simpan
pada Ms Word dan dikumpulkan
Contoh 1 :
Petunjuk  setelah program dijalankan ketik ’ Saya sedang belajar pascal ’ kemudian
tekan enter.
Input data
Read : Membaca input data dari keyborad dan kursor masih pada baris yang
sama.
ReadLn : Membaca input data dari keyborad dan kursor berpindah baris.
var
tulisan : string [100];
begin
Write('ketik tulisan anda : ');
ReadLn(tulisan);
WriteLn(tulisan);
WriteLn(tulisan);
WriteLn(tulisan);
WriteLn(tulisan);
WriteLn(tulisan);
ReadLn();
end.
Contoh 2 :
var
angka : integer;
begin
Write('ketik angka anda : ');
ReadLn(angka);
WriteLn(angka);
WriteLn('angka yang anda masukan adalah : ', angka);
WriteLn(angka, ' adalah angka yang anda masukan ');
WriteLn('adalah ', angka, ' yang anda masukan ');
WriteLn(angka);
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 6 of 43
4. Algoritma Sekuensial
Algoritma sequensial adalah algoritma yang dijalankan secara berurutan dari baris
pertama hingga baris terakhir tanpa terjadi pengulangan pada baris atau berpindah ke
baris lain yang tidak urut.
Contoh 1:
Program menghitung luas persegi panjang.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan cara pembacaan variabel pada output program kemudian simpan pada Ms
Word dan dikumpulkan
Algoritma
Rumus luas persegi panjang adalah Luas = p * l, pada rumus ini terdapat 3 variabel yang
digunakan untuk menyimpan data yaitu (Luas, p, l) type data bisa menggunakan integer
atau real.
Progam
var
Luas, p, l : integer;
begin
Write('input p : ');
ReadLn(p);
Write('input l : ');
ReadLn(l);
Luas := p * l ;
WriteLn('Luas persegi panjang adalah : ', Luas);
ReadLn();
end.
Contoh 2:
Program menghitung luas Lingkaran.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan cara pembacaan variabel pada output program kemudian simpan pada Ms
Word dan dikumpulkan
Algoritma
Rumus luas lingkaran Luas = phi * r * r, pada rumus ini terdapat 2 variabel dan 1
konstanta yang digunakan untuk menyimpan data yaitu (Luas, r) type data yang
digunakan real.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 7 of 43
Progam
const
phi = 3.14;
var
Luas, r : real;
begin
Write('input r : ');
ReadLn(r);
Luas := phi * r * r ;
WriteLn('Luas lingkaran adalah : ', Luas:0:2);
ReadLn();
end.
Contoh 3:
Program menghitung konversi suhu.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan cara pembacaan variabel pada output program kemudian simpan pada Ms
Word dan dikumpulkan
Algoritma
Rumus konversi dari celcius ke reamur adalah R = 0.8 * C. Type data yang digunakan
adalah real.
Tabel konversi Dari Celsius ke
Skala yang diinginkan Formula
Kelvin K = °C + 273,15
Fahrenheit °F = °C × 1,8 + 32
Reaumur °R = °C × 0,8
Program
var
Reamur, c : real;
begin
Writeln('program konversi suhu ');
Write('input suhu dalam celcius : ');
ReadLn(c);
reamur := 0.8 * c ;
WriteLn('suhu dari celcius ke reamur : ', reamur:0:2);
ReadLn();
end.
Tugas
Buat konversi dari celcius ke kelvin dan fahrenheit
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 8 of 43
5. Algoritma Percabangan (Kondisional)
Algoritma percabangan adalah algoritma dimana terdapat baris yang akan diuji sebelum
menjalankan baris berikutnya. Hasil dari pengujian kondisi adalah BOOLEAN atau kondisi
yang bernilai benar dan salah.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang bertipe BOOLEAN atau TRUE dan FALSE kemudian
simpan pada Ms Word dan dikumpulkan
Contoh 1 :
var
a, b, c : boolean;
begin
a := 4 < 5;
b := 4 = 4;
a := 4 > 5;
Writeln(a);
Writeln(b);
Writeln(c);
ReadLn();
end.
Operator relasi yang mengembalikan hasil Boolean
Operator Fungsi
:= Menyatakan nilai
= Sama dengan
<> Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
IF Satu Kondisi
Bentuk umum dari IF satu kondisi dengan satu kemungkinan jawaban adalah:
IF kondisi pengujian then
Blok program yang dijalankan jika benar
Pada pengujian kondisi. IF akan menguji apakah kondisi pengujian bernilai TRUE atau
FALSE. Jika TRUE maka baris program dibawah IF akan dijalankan.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 9 of 43
Contoh 2:
var
nilai: integer;
begin
Write('Input nilai yang akan diuji : ');
ReadLn(nilai);
if nilai mod 2 = 0 then
Write ('Nilai yang anda masukan adalah GENAP');
ReadLn();
end.
Bentuk umum dari IF satu kondisi dengan dua kemungkinan jawaban adalah:
IF kondisi pengujian then
Blok program yang dijalankan jika pengujian bernilai BENAR
Else
Blok program yang dijalankan jika pengujian bernilai SALAH
Pada pengujian kondisi. IF akan menguji apakah kondisi pengujian bernilai TRUE atau
FALSE. Jika TRUE maka baris program dibawah IF akan dijalankan. Jika FALSE maka
baris program dibawah ELSE akan dijalankan.
Contoh 3:
var
nilai: integer;
begin
Write('Input nilai yang akan diuji : ');
ReadLn(nilai);
if nilai mod 2 = 0 then
Write ('Nilai yang anda masukan adalah GENAP')
else
Write ('Nilai yang anda masukan adalah GANJIL');
ReadLn();
end.
Contoh 4 :
Program Diskon pembelian. Jika pembelian lebih besar sama dengan 1000 maka akan
mendapatkan diskon 20%.
Algoritma
Setiap pembelian akan diuji apakah nilai pembeliannya lebih besar dari 1000 maka
pembeli akan mendapatkan diskon 20%, jika kurang dari 100 maka pembelian tetap
sesuai dengan harga beli. Variabel yang digunakan adalah real
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 10 of 43
Program
var
beli, total : real;
begin
Write('Input pembelian : ');
ReadLn(beli);
if beli >= 1000 then
begin
total := beli * 0.8 ;
Write ('total pembelian setelah diskon ', total:0:2);
end
else
Write ('pembelian tanpa diskon ', beli:0:2);
ReadLn();
end.
IF Dua Kondisi
Bentuk umum dari IF dua kondisi dengan satu kemungkinan jawaban adalah:
IF kondisi pengujian 1 and atau or kondisi pengujian 2 then
Blok program yang dijalankan jika pengujian bernilai BENAR
Else
Blok program yang dijalankan jika pengujian bernilai SALAH
Pada pengujian kondisi. IF akan menguji apakah kondisi pengujian bernilai TRUE atau
FALSE. Jika TRUE maka baris program dibawah IF akan dijalankan.
Dua kondisi yang sering digunakan adalah AND dan OR. Tabel kebenaran AND dan OR
adalah sebagai berikut:
Tabel Kebenaran AND
Kondisi 1 Kondisi 2 Output
True (1) True (1) True (1)
True (1) False (0) False (0)
False (0) True (1) False (0)
False (0) False (0) False (0)
Tabel Kebenaran OR
Kondisi 1 Kondisi 2 Output
True (1) True (1) True (1)
True (1) False (0) True (1)
False (0) True (1) True (1)
False (0) False (0) False (0)
Contoh 5:
Buat sebuah program untuk menyatakan lulus dan tidak lulus siswa. Jika siswa
memperoleh nilai antara 60 – 100 maka siswa dinyatakan lulus.
Algoritma :
Nilai siswa akan diuji pada kondisi 1 terlebih dahulu, kemudian kondisi 2 diuji hasil dari
kondisi 1 dan kondisi 2 akan di kombinasikan sesuai dengan tabel kebenaran. Jika
menggunakan AND maka kedua kondisi tersebut harus bernilai TRUE untuk
menghasilkan nilai TRUE
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 11 of 43
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengujian kondisi kemudian simpan pada Ms
Word dan dikumpulkan
Program
var
nilai : integer;
begin
Write('Input Nilai Siswa : ');
ReadLn(nilai);
if (nilai >= 60) and (nilai <= 100) then
Write ('Anda LULUS')
else
write ('Anda TIDAK LULUS');
ReadLn();
end.
Contoh 6:
Nested IF (IF bersarang)
IF bersarang adalah kondisi IF yang dijalankan jika kondisi bernilai TRUE kemudian
terjadi pengujian lagi. Jika kondisi bernilai FALSE maka IF didalam tidak akan dijalankan
melainkan langsung ke Else.
Algoritma:
Berikut adalah contoh penggunaan IF bersarang. Pertama nilai akan diuji apakan nilai
berada diantara 0 sampai 100 (IF pertama), jika kondisi ini bernilai TRUE maka akan
menjalankan IF didalam (IF kedua) dimana nilai akan diuji apakah nilai yang dimasukan
>= 60 dan <= 100 jika TRUE maka akan menampilkan ’Anda Lulus’ jika FALSE maka
akan menampilkan ’Anda TIDAK LULUS’. Tapi jika nilai tidak berada pada 0 sampai 100
atau tidak memenuhi IF pertama maka akan menampilkan tulisan ’Out of range’.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengujian kondisi kemudian simpan pada Ms
Word dan dikumpulkan
var
nilai : integer;
begin
Write('Input Nilai Siswa : ');
ReadLn(nilai);
if (nilai >= 0) and (nilai <= 100) then
begin
if (nilai >= 60) and (nilai <= 100) then
Write ('Anda LULUS')
else
write ('Anda TIDAK LULUS');
end
else
write ('out of range');
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 12 of 43
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengujian kondisi kemudian simpan pada Ms
Word dan dikumpulkan
Contoh 7:
var
nilai : integer;
begin
Write('input nilai anda : ');
ReadLn(nilai);
if (nilai >= 0) and (nilai <= 40 ) then
Write('Nilai anda adalah D');
if (nilai >= 41) and (nilai <= 55 ) then
Write('Nilai anda adalah C');
if (nilai >= 56) and (nilai <= 65 ) then
Write('Nilai anda adalah B');
if (nilai >= 66) and (nilai <= 100 ) then
Write('Nilai anda adalah A')
else
Write('out of range');
ReadLn();
end.
Contoh 8:
Program pengujian bilangan prima, genapm dam ganjil.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengujian kondisi kemudian simpan pada Ms
Word dan dikumpulkan
var
bil: integer;
begin
Write('input bilangan : ');
ReadLn(bil);
if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then
Write ('bilangan prima dan ')
else if ((bil mod 2 <> 0) and (bil mod 3 <> 0)
and (bil mod 5 <> 0) and (bil mod 7 <> 0)) then
write ('bilangan prima dan ');
if bil mod 2 = 0 then
Write ('bilangan genap')
else
write ('bilangan ganjil');
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 13 of 43
Tugas:
Buat sebuah program untuk menampilkan Zodiak anda. Tanggal dan bulan dimasukkan
menggunakan angka. Misalnya bulan 5 akan dianggap bulan mei.
Case Of
Case adalah percabangan yang mempunyai pengujian kondisi dimana variabel yang diuji
hanya bertipa INTEGER dan CHAR.
Bentuk penulisan case of adalah:
Case {variable of type: integer or character ONLY} of
{input statement- within inverted commas if of type char} : {code..}
{input statement- within inverted commas if of type char} : {code..}
End; {End Case}
Contoh 9:
Berikut adalah sebuah program yang akan mengkonversikan angka menjadi huruf dari 0
sampai 9. saat kita memasukkan angka maka angka yang kita masukan akan diuji di sisi
kiri jika angka yang kita masukan ada maka tampilan di sebelah kanan akan dijalankan.
Program.
var
angka: integer;
begin
Write('input angka : ');
ReadLn(angka);
case angka of
0 : write ('NOL');
1 : write ('SATU');
2 : write ('DUA');
3 : write ('TIGA');
4 : write ('EMPAT');
5 : write ('LIMA');
6 : write ('ENAM');
7 : write ('TUJUH');
8 : write ('DELAPAN');
9 : write ('SEMBILAN');
else ;
write ('OUT OF RANGE');
end;
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 14 of 43
Contoh 10:
Pengujian nilai yang dikonversikan menjadi huruf dimana nilai 0 – 100 akan
dikonversikan menjadi A – D.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengujian kondisi kemudian simpan pada Ms
Word dan dikumpulkan
Program
var
nilai : integer;
begin
Write('input nilai anda : ');
ReadLn(nilai);
case nilai of
0..40 :
begin
Write('Nilai anda adalah D');
end;
41..55 :
begin
Write('Nilai anda adalah C');
end;
56..65 :
begin
Write('Nilai anda adalah B');
end;
66..100 :
begin
Write('Nilai anda adalah A');
end;
else
Write('out of range');
end;
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 15 of 43
Algoritma Pengulangan
Pengulangan adalah algoritma dimana baris program yang ditentukan akan di eksekusi
secara berulang – ulang sampai batas yang telah ditentukan. Jika batas telah tercapai
maka pengulangan akan berhenti.
Contoh:
Jika kita mengupas 15 jeruk. Cara yang pertama kita lakukan adalah mengambil jeruk
yang pertama kemudian mengupasnya. Setelah selesai jeruk yang pertama kemudian ke
jeruk yang kedua dan seterusnya sampai jeruk ke 15 terkupas.
dari cerita diatas terdapat 3 hal yang harus diketahui sebelum menggunakan
pengulangan.
1. Inisialisasi atau pengenalan objek yang akan diulang. Contoh diatas adalah
15 jeruk yang belum terkupas.
2. Iterasi atau pengulangan. Contoh diatas adalah mengupas dari 1 sampai 15
kali untuk 15 jeruk.
3. Kondisi berhenti. adalah kondisi dimana semua proses pengulangan akan
berhenti. dari contoh diatas adalah 15 jeruk yang telah terkupas.
For Do
Perulangan dengan pernyataan For do digunakan untuk mengulang pernyataan atau
satu blok pernyataan berulang kali sejumlah yang ditentukan. Perulangan dengan
pernyataan For dapat berbentuk perulangan positif, perulangan negatif dan perulangan
tersarang.
1. Perulangan positif.
Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar atau
pertambahan positif. Perulangan positif dapat dibentuk dengan menggunakan
pernyataan For-To-Do.
Bentuk umum for do:
For variabel-kontrol:=nilai awal To nilai akhir Do
Statemen atau Pernyataan;
Variabel kontrol, nilai awal, nilai akhir harus betipe integer
Contoh 1 :
Buat tampilan program yang akan menampilkan tulisan ”Saya Belajar” sebanyak 5 baris.
Program
var
i : integer;
begin
for i := 1 to 5 do
Writeln('saya belajar pascal ');
ReadLn();
end.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi pengulangan kemudian simpan pada Ms Word
dan dikumpulkan
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 16 of 43
Contoh 2:
var
i : integer;
begin
for i := 1 to 5 do
Writeln('saya belajar pascal ');
Writeln('di SMKN2 ');
Writeln('buduran sidoarjo ');
ReadLn();
end.
Contoh 3:
Jika baris yang akan dikerjakan oleh for lebih dari satu baris maka baris – baris yang
akan dijalankan harus dimulai dengan begin dan di akhiri dengan end.
var
i : integer;
begin
for i := 1 to 5 do
begin
Writeln('saya belajar pascal ');
Writeln('di SMKN2 ');
Writeln('buduran sidoarjo ');
WriteLn();
end;
ReadLn();
end.
Contoh 3:
Program untuk menampilkan angka pengulangan mulai 1 sampai sepuluh.
var
i: integer;
begin
for i := 1 to 10 do
Write(i);
ReadLn();
end.
Contoh 4:
var
i: integer;
begin
for i := 1 to 10 do
Write(i:4);
ReadLn();
End.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 17 of 43
Contoh 5:
Program yang digunakan untuk menampilkan bilangan prima antara 0 sampai 30.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi bilangan prima, buat contoh pengujian dengan
beberapa angka. kemudian simpan pada Ms Word dan dikumpulkan
var
i : integer;
begin
for i := 2 to 30 do
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
Write (i:3)
else if ((i mod 2 <> 0) and (i mod 3 <> 0)
and (i mod 5 <> 0) and (i mod 7 <> 0)) then
write (i:3);
end;
ReadLn();
end.
Perulangan tersarang
Perulangan tersarang adalah perulangan yang berbeda di dalam perulangan yang
lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis,
kemudian perulangan yang lebih luar baru akan akan bertambah, mengerjakan
perulangan yang lebh dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh 6:
var
i,j: integer;
begin
for i := 1 to 10 do
begin
for j := 1 to 5 do
begin
Write(i:8);
Write(j:3);
end;
WriteLn();
end;
ReadLn();
end.
Perulangan negatif
Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil atau
pertambahan negatif. Perulangan negatif dapat dibentuk dengan menggunakan
pernyataan For-DownTo-Do.
Bentuk umum:
For variabel-kontrol:= nilai awal DownTo nilai akhir Do
Statemen atau penyataan
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 18 of 43
Contoh 7:
Program untuk menampilkan bilangan yang mulai dari 10 turun sampai ke 0
program
var
i : integer;
begin
for i := 10 downto 0 do
write (i:3);
readln;
end.
Contoh 8:
Program untuk menampilkan bintang dalam formasi segitiga.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang menampilkan bintang dalam formasi segitiga.
kemudian simpan pada Ms Word dan dikumpulkan
Program:
var
i,j : integer;
begin
for i := 10 downto 0 do
begin
for j := 1 to i do
begin
write ('*');
end;
WriteLn();
end;
readln;
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 19 of 43
While Do
Perulangan ini menggunakan pernyataan While—Do. Pernyataan While—Do digunakan
untuk melakukan proses perulangan suatu pernyataan atau blok pernyataan terusmenerus
selama kondisi ungkapan logika pada While masih bernilai logika benar.
Bentuk Umum
While kondisi Do Pernyataan
Contoh 1:
Baris i:= 0 adalah baris yang menyatakan awal pengulangan. Dan while i < 10 adalah
baris menyatakan akhr pengulangan. Baris i:= i + 1 adalah baris yang menyatakan
increment atau pengulangan naik satu step.
Program
var
i : integer;
begin
i := 0;
while i < 10 do
begin
Writeln('looping ke : ',i, ' saya belajar pascal');
i:= i + 1 ;
end;
ReadLn();
end.
Program yang digunakan untuk menampilkan bilangan prima antara 0 sampai 100.
menggunakan while do.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi bilangan prima, catat perbedaan
menggunakan for dan while. kemudian simpan pada Ms Word dan dikumpulkan
Contoh 2:
var
i : integer;
begin
i := 2 ;
while i < 100 do
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
Write (i:3)
else if ((i mod 2 <> 0) and (i mod 3 <> 0)
and (i mod 5 <> 0) and (i mod 7 <> 0)) then
write (i:3);
i := i + 1 ;
end;
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 20 of 43
Repeat Until
Struktur Repeat…Until digunakan untuk mengulang pernyataan-pernyataan atau blok
pernyataan sampai kondisi yang diseleksi di Until terpenuhi.
Bentuk mumnya adalah:
Repeat pernyataan Until kondisi akhir
Contoh 1:
Baris i:= 0 adalah baris yang menyatakan awal pengulangan. Dan until = 10 adalah
baris menyatakan akhir pengulangan. Baris i:= i + 1 adalah baris yang menyatakan
increment atau pengulangan naik satu step.
var
i : integer;
begin
i := 0 ;
repeat
WriteLn('looping ke : ',i,' saya belajar pascal');
i := i + 1 ;
until i = 10 ;
ReadLn();
end.
Contoh 2:
Program yang digunakan untuk menampilkan bilangan prima antara 0 sampai 100.
menggunakan repeat until.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Perhatikan output program yang berisi bilangan prima, catat perbedaan
menggunakan for, while, dan repeat. kemudian simpan pada Ms Word dan
dikumpulkan
var
i : integer;
begin
i := 2 ;
repeat
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
Write (i:3)
else if ((i mod 2 <> 0) and (i mod 3 <> 0)
and (i mod 5 <> 0) and (i mod 7 <> 0)) then
write (i:3);
i := i + 1 ;
end;
until i = 100 ;
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 21 of 43
Contoh 3:
Membuat deret fibonacci:
Deret fibonacci diawali dari deret 2 angka
1 1
Angka ini kemudian dijumlahkan menjadi angka yang ke 3
1 1 2
Setiap angka berikutnya adalah penjumlahan dari 2 angka sebelumnya.
1 1 2 3 5 8 13 21…
Demikian sampai jumlah deret yang di inginkan ditampilkan. Contoh diatas adalah 8
deret fibonacci.
var
Fibonacci1, Fibonacci2 : integer;
temp : integer;
count,n : integer;
begin
writeln ('----MEMBUAT DERET FIBONACCI ---');
write ('masukkan jumlah deret : ');
readln (n);
count := 0;
Fibonacci1 := 0;
Fibonacci2 := 1;
repeat
write (Fibonacci2:3);
temp := Fibonacci2;
Fibonacci2 := Fibonacci1 + Fibonacci2;
Fibonacci1 := Temp;
count := count + 1
until count = n;
readln;
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 22 of 43
Procedure
Procedure atau subrutin adalah sub program yang digunakan untuk mengurangi jumlah
code dari program. Jika kita membuat program dalam bentuk yang panjang dimana
terdapat beberapa perintah yang di ulang – ulang namun bukan loop maka kita bisa
menggunakan procedure.
Bentuk umum dari procedure adalah:
procedure Name;
const
(* Constants *)
var
(* Variables *)
begin
(* Statements *)
end;
Untuk memanggil procedure yang dibuat cukup dengan namanya.
Name;
Program yang ada pada procedure tidak akan dijalankan sampai nama procedurenya
dipanggil.
Contoh code program
var
i : integer;
procedure cetak;
begin
WriteLn(' ini adalah tampilan yang berasal dari prosedur');
WriteLn(' ini adalah baris kedua dari prosedur cetak');
end;
begin
for i := 1 to 5 do
cetak;
ReadLn();
end.
Penjelasan
Pada prosedur diatas kita membuat prosedur bernama cetak yang berisi tulisan (ini
adalah…). Sedangkan pada program utama terdapat looping atau pengulangan yang
menggunakan for untuk pengulangan pemanggilan prosedur cetak sebanyak 5
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 23 of 43
Prosedur Dengan Paramaeter
Prosedur dengan parameter adalah prosedur yang menggunakan variabel sebagai tempat
penyimpanan hasil pengolahan dari prosedur yang dijalankan. Nilai yang dihasilkan oleh
prosedur dan disimpan pada variabel disebut dengan parameter.
Contoh Program;
var
i : integer;
procedure cetak (a:integer);
begin
WriteLn(' ini adalah tampilan ke ', a);
end;
begin
for i := 1 to 5 do
cetak (i);
ReadLn();
end.
Penjelasan
Pada program diatas prosedur cetak digunakan untuk menampilkan tulisan (‘ini adalah
tampilan….’) kemudian program utama akan akan memanggil prosedur teresbut dengan
cara looping atau pengulangan dan pada parameter cetak (a) di tukar dengan variabel (i)
yang berisi peringkat pengulangan.
Contoh1
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);
Readln();
End.
Contoh2
var
i : integer;
st : string;
procedure cetak (a:integer; var d:string);
begin
WriteLn(' ini adalah tampilan ke ', a);
d:= 'dalam proses'
end;
begin
for i := 1 to 5 do
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 24 of 43
cetak (i,st);
WriteLn();
//------ pemanggilan parameter saja
WriteLn(i);
WriteLn(st);
ReadLn();
end.
Tugas:
Amati dan catat menggunakan bahasa anda sendiri tampilan program setelah dijalankan.
Amati penggunaan dua variabel pada program utama dan dua variabel sebagai
parameter yang digunakan untuk menukar isi dari variabel. kemudian simpan pada Ms
Word dan dikumpulkan
Contoh 3: prosedur luas persegi dengan parameter
var
hasil:real;
p, l : integer;
procedure cetak (luas :real );
begin
luas:=p*l;
Write('luas : ',luas:0:2);
end;
begin
Write('input p : ');
ReadLn(p);
Write('input l : ');
ReadLn(l);
cetak (hasil);
ReadLn();
end.
Function
Function sama seperti procedure hanya saja pada function ada nilai yang dihasilkan dan
dikembalikan ke program utama.
Bentuk umum dari function adalah:
function Name (parameter_list) : return_type;
Contoh program.
var
a, b : integer;
function hasil : integer ;
begin
hasil:= 10;
end;
begin
b:= 15;
a:= hasil * b;
WriteLn(' fungsi kali adalah ',a);
ReadLn();
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 25 of 43
Penjelasan
Pada fungsi diatas function hasil berisi nilai 10. kemudian pada program utama terdapat
variabel (a) yang berisi perkalian antara hasil kali dengan (b). kemudian menampilkan
(a).
Contoh 2 program.
var
a, b : integer;
function persegi (p:integer;l:real): real ;
begin
persegi:= p*l;
end;
begin
Write(' input p : ');
ReadLn(a);
Write(' input l : ');
ReadLn(b);
WriteLn('hasil persegi adalah ', persegi(a,b):0:2);
ReadLn();
end.
Penjelasan
Fungsi diatas adalah fungsi untuk menghitung luas persegi dimana variabel (l)
Dan variabel (p) digunakan pada function. Program utama menggunakan variabel (a)
dan (b) yang digunakan sebagai penukar variabel (p) dan (l). kemudian hasilnya
diletakan pada variabel (persegi).
Tugas:
Buat function untuk menghitung
1. Luas dan keliling lingkaran
2. Luas dan keliling persegi panjang
3. Luas dan keliling Segitiga
4. Konversi suhu dari C ke R dari R ke C, Dari C ke F dan F ke C, dari F ke R dan R ke
F
Fungsi Terbilang
Fungsi Terbilang ini digunakan untuk menampilkan tulisan konversi dari angka menjadi
huruf. Misalnya 789 akan ditulis tujuh ratus delapan puluh sembilan. Pada proses
pembuatan program ini menggunakan 2 function. Dimana function yang pertama
digunakan untuk menampilkan angka dibawah 12 dan function kedua digunakan untuk
menampilkan angka sama dengan atau diatas 12.
function bilang(x:longint):string;
begin
case x of
0:bilang:='';
1:bilang:='satu';
2:bilang:='dua';
3:bilang:='tiga';
4:bilang:='empat';
5:bilang:='lima';
6:bilang:='enam';
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 26 of 43
7:bilang:='tujuh';
8:bilang:='delapan';
9:bilang:='sembilan';
10:bilang:='sepuluh';
11:bilang:='sebelas';
end;
end;
function terbilang(x:longint):string;
begin
if x<12 then
terbilang := ' ' + bilang(x)
else if x<20 then
terbilang:=terbilang(x-10)+'belas'
else if x<100 then
terbilang:=terbilang(x div 10)+'puluh'+terbilang(x mod 10)
else if x<200 then
terbilang:='seratus'+terbilang(x-100)
else if x<1000 then
terbilang:=terbilang(x div 100)+'ratus'+terbilang(x mod 100)
else if x<2000 then
terbilang:='seribu'+terbilang(x-1000)
else if x<1000000 then
terbilang:=terbilang(x div 1000)+'ribu'+terbilang(x mod 1000)
else if x<1000000000 then
terbilang:=terbilang(x div 1000000)+'juta'+terbilang(x mod
1000000)
else
terbilang:=terbilang(x div 1000000000)+'milyar'+terbilang(x mod
1000000000);
end;
//-------- Program Utama ----------------//
var
i:longint;
lanjut:char;
begin
repeat
write('masukkan angka:');
readln(i);
writeln('terbilang:',terbilang(i));
write('Lagi? (Y/T)');
readln(lanjut);
until (lanjut='t')or(lanjut='T');
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 27 of 43
Operasi String
Pascal menyediakan beberapa prosedur standar yang berguna untuk memanipulasi
string, yaitu prosedur standar Delete, Insert, copy, concat.
Delete String
Delete ini digunakan untuk membuang sejumlah karakter (jumlah yang ditunjukkan
oleh nilai jumlah, mulai dari posisi tertentu (dintujukkan oleh nilai posisi) dari
suatu tulisan (ditunjukkan oleh pengenal variabel string atau tulisan). Jika posisi
lebih besar dari panjang tulisan, maka tidak ada karakter yang akan terhapus.
Bentuk umum dari prosedur ini adalah:
Delete (tulisan yang akan dihapus, posisi mulai menghapus, jumlah yang dihapus)
Contoh:
Code Program
...
var
tulisan: string [25];
Begin
tulisan:='belajar pascal';
delete (tulisan,9,2);
writeln (tulisan);
readln;
End.
Output Program
Contoh 2:
Code Program.
...
Var
Tulisan:string [10];
I,j,posisi:integer;
Begin
Tulisan:='Pascal';
Writeln(tulisan);
J:=length(tulisan);
Posisi:=j;
For I:=1 to j do
Begin
delete(Tulisan,posisi,1);
writeln(tulisan);
posisi:=j-i;
End;
readln;
End.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 28 of 43
Penjelasan code program:
No Code Penjelasan
1 Var
Tulisan:string [10];
I,j,posisi:integer;
Deklarasi Variabel yang akan digunakan oleh program
2 Begin Mulai menjalankan program
3 Tulisan:='Pascal'; Setting variabel tulisan dengan ’pascal’. Jadi variabel tulisan sama dengan
’pascal’
4 Writeln(tulisan); Tampilkan variabel tulisan
5 J:=length(tulisan); Dapatkan panjang dari tulisan. Pada code ini program akan menghitung
panjangnya tulisan atau berapa banyak karakter yang digunakan untuk
menulis pada pascal terdapat 6 karakter. Hasil dari code ini adalah integer.
Jadi J sama dengan 6
6 Posisi:=j; Setting posisi sama dengan J. nilai dari posisi sekarang sama dengan J.
7 For I:=1 to j do Ulang untuk I mulai dari 1 sampai J atau panjang tulisan.
8 Begin Mulai pengulangan statemen atau pernyataan
9 delete(Tulisan,posisi,1); Delete atau hapus. Tulisan yang dihapus adalah ’pascal’ posisi yang dihapus
adalah J karena J sama dengan posisi (lihat no 6). Dan jumlah yang dihapus
adalah 1.
10 writeln(tulisan); Tampilkan tulisan yang telah dihapus (’pasca’). Ulangi sampai j = 1
11 posisi:=j-i; Posisi sama dengan J dikurangi i (posisi:= 5-1)
12 End; Akhir statatemen dan kembli ke (no 8) for do sampai nilai akhir for do
14 readln; Tampilkan kursor di akhir program agar tidak langsung menutup.
15 End. Akhir dari program
Output Program
Insert String
Insert ini digunakan untuk menyisipi suatu string (dintujukkan oleh s2) dengan
string yang lainnya (dintujukkan oleh s1) mulai posisi yang ditentukan oleh nilai posisi.
Bila hasil dari penyisipan string menghasilkan string yang panjangnya lebih dari 255
karakter, maka yang akan ditampilkan hanya sampai dengan 255 karakter saja.
Betuk umumnya:
Insert (asal string,tujuan penambahan,Posisi penambahan)
Contoh:
Code program
var
s1, s2 : string;
begin
s1:='Tidak ';
s2:='Saya Suka Kamu';
insert(s1,s2,6);
writeln(s2);
readln;
End.
Output Program
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 29 of 43
Length String
Length ini digunakan untuk mengetahui panjang string atau tulisan. Hasil dari length
adalah bilangan integer.
Bentuk umum dari Length adalah:
length (tulisan)
Contoh:
Buat program yang digunakan untuk menghitung panjang tulisan ’saya belajar pascal’.
Code program
...
var
panjang : integer;
tulisan : string;
begin
tulisan:= 'saya belajar pascal';
panjang:= length (tulisan);
writeln (panjang);
readln;
end.
Output program
Copy String
Copy string ini kita dapat mengcopy string dari string asal yang dimulai dari posisi yang
sudah ditentukan sebanyak karakter yang ingin dicopy. Hasil dari operasi ini adalah
string.
Bentuk umum copy adalah:
copy (tulisan,Posisi awal yang di copy,banyaknya karakter yang di copy)
Contoh:
Code program
...
var
tulisan, hasil : string;
begin
tulisan:= 'saya belajar pascal';
hasil:= copy (tulisan,6,7);
writeln (hasil);
readln;
end.
Penjelasan
Pada program diatas perintah copy akan mengcopy tulisan ’saya belajar pascal’ mulai
dari karakter ke 6 dan yang dicopy sebanyak 7 karakter.
Output Program
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 30 of 43
Contoh kombinasi copy dan insert
...
var
tulisan, hasil, sisip : string;
begin
tulisan:= 'saya belajar pascal';
hasil:= copy (tulisan,6,7);
sisip := 'saya program';
insert(hasil,sisip,6);
writeln (sisip);
readln;
end.
Output Program
ConCat
Fungsi standar ini mempunyai operasi yang sama dengan operator ’+’ yaitu
merangkai beberapa nilai string yang dintunjukkan oleh nilai S1, S2, … Sn.
Bentuk Umumnya:
ConCat(string1,string2,..String ke N)
Contoh:

const
s1= 'saya';
s2= 'belajar';
s3= 'pascal';
var
tulisan: string;
begin
tulisan:= concat (s1,' ',s2,' ',s3);
writeln (tulisan);
readln;
end.
Output program
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 31 of 43
Array (Larik)
Definsi Larik
Suatu larik (array) adalah tipe terstruktur yang terdiri dari sejumlah komponenkomponen
yang mempunyai tipe sama. Suatu larik mempunyai jumlah komponen
yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukkan oleh suatu
indeks yang disebut tipe indeks. Tipe indeks ini berbentuk ungkapan tipe ordinal
(tipe data yang berurutan). Tiap-tiap komponen pada larik dapat diakses dengan
menunjukkan nilai indeksnya.
Contoh:
Kita mempunyai:
larik bunga yang berisi data {mawar, melati, anggrek}
larik hari yang berisi data {senin, selasa, rabu, kamis, jumat, sabtu, minggu}
Array Satu Dimensi
Larik ini memiliki data yang berurutan dengan satu jenis yang sama dan tidak berbentuk
tabel.
Dari contoh diatas dapat di gambarkan:
Larik bunga
mawar melati Anggrek
Indeks 1 Indeks 2 Indeks 3
Dari gambar diatas jika kita ingin menampilkan bunga melati maka kita cukup
memanggil nomer indeks nya saja.
Bentuk umum array satu dimensi adalah:
Nama larik : array [jumlah indeks] of tipe data
Deklarasi array
Dari contoh bunga diatas dapat di deklarasikan array sebagai berikut:
var
bunga : array[1..3] of string;
begin
bunga [1]:='mawar';
bunga [2]:='melati';
bunga [3]:='anggrek';
write (bunga [1]);
readln;
end.
Contoh 2
var
bunga : array[1..3] of string;
x : integer;
begin
bunga [1]:='mawar';
bunga [2]:='melati';
bunga [3]:='anggrek';
write ('Masukkan Pilihan anda :');
readln (x);
writeln ('bunga yang anda pilih adalah :',bunga [x]);
readln;
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 32 of 43
Contoh 3
var
bunga : array[1..10] of string;
i : integer ;
begin
for i := 1 to 3 do
begin
Write('input nama bunga : ');
ReadLn(bunga[i]);
end;
WriteLn();
writeln ('bunga yang anda masukan adalah : ');
for i := 1 to 3 do
begin
Writeln('bunga ke : ',i,' ', bunga[i]);
end;
readln;
end.
Contoh 4

var
x:array[1..10] of integer;
i,jum,n : integer;
begin
jum:=0;
write('Masukkan data =');
readln(n);
for i:= 1 to n do
begin
write('Data ke-',i ,'=');
readln(x[i]);
jum:=jum+x[i];
end;
writeln('Jumlah = ',jum);
readln;
end.
Konversi Desimal ke Biner
Konversi bilangan desimal ke biner ini menggunakan array yang digunakan untuk
menyimpan hasil konversi bilangan. Logika program adalah sebagai berikut:
Q: bilangan desimal yang dimasukan
B: array [1..00] yang digunakan untuk menyimpan hasil konversi
Misalnya bilangan desimal yang akan dikonversi adalah 95
Looping Pembagian (Q) Hasil bagi Sisa (array biner)
1 95/2 47 1
2 47/2 23 1
3 23/2 11 1
4 11/2 5 1
5 5/2 2 1
6 2/2 1 0
7 ½ 0 1
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 33 of 43
Looping bisa menggunakan Repeat – until atau While do karena kondisi pengulangan
akhirnya tidak diketahui untuk konversi bilangan yang berbeda.
Berikut adalah program konversi desimal ke biner
var
i, q, n : integer;
b : array [1..100] of integer;
begin
Write('input desimal : ');
ReadLn(q);
I := 1;
repeat
B[I] := Q mod 2 ;
Q := Q div 2 ;
I := I + 1 ;
until Q = 0 ;
Write('hasil konversi : ');
for n:= i-1 downto 1 do
write(B[n]);
ReadLn();
end.
Konversi Biner Ke Desimal Tanpa Array
var no,sum,x,rem,n:integer;
begin
writeln('Masukan Bilangan BINER : ');
read(no);
sum:=0;
n:=1;
while no>0 do
begin
rem:=no mod 10;
no:=no div 10;
rem:=rem*n;
sum:=sum+rem;
n:=n*2;
end;
writeln(sum);
read(x);
end.
Konversi Biner Ke Desimal Dengan Array
Var
Binary:string;
Len:integer;
base:integer;
counter:integer;
Result:integer;
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 34 of 43
Begin
writeln('Enter a binary number: ');
Readln(Binary);
Len:= Length(binary);
Base:=1;
Result:=0;
For counter:=1 to Len do
begin;
if (Binary[counter]='1') then
result:= result+ base;
base:=base*2;
end;
writeln(result);
ReadLn();
end.
Array Dua Dimensi
Array dua dimensi terdiri indeks yang menunjukan baris dan kolom, pada tabel dibawah
ini terdapat 3 indeks baris dan 4 indeks kolom. Pada tabel dibawah. Baris ditandai
dengan warna biru dan kolom ditandai dengan merah hati.
Contoh 1.
Untuk mengetahui berapa nilai yang didapat eko pada pelajaran delphi?
Penyelesaian:
Eko terdapat pada baris ke 2 dan delphi terdapat pada kolom ke 3 jadi nilai eko untuk
pelajaran delphi adalah [2,3] baris ke 2 dan kolom ketiga yang berisi nilai 11.
Contoh 2:
Berapa nilai yang didapat rudi pada pelajaran java?
Penyelesaian.
Rudi ada pada baris ke 3 dan java ada pada kolom ke 4 jadi nilai rudi pada pelajaran
java adalah [3,4] yang berisi nilai 16.
1 2 3 4
Algoritma Pascal Delphi Java
1 Adi 5 6 7 8
2 Eko 9 10 11 12
3 Rudi 13 14 15 16
Deklarasi array 2 dimensi
nilai :array[1..3, 1..4] of integer ;
Nilai : nama array
Array : deklarasi array
1..3 : jumlah baris
1..4 : jumlah kolom
Integer : tipe data yang digunakan.
Contoh:
var
nilai :array[1..3, 1..4] of integer ;
x,y : integer;
begin
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 35 of 43
nilai [1,1]:= 5;
nilai [1,2]:= 6;
nilai [1,3]:= 7;
nilai [1,4]:= 8;
nilai [2,1]:= 9;
nilai [2,2]:= 10;
nilai [2,3]:= 11;
nilai [2,4]:= 12;
nilai [3,1]:= 13;
nilai [3,2]:= 14;
nilai [3,3]:= 15;
nilai [3,4]:= 16;
write ('masukan pilihan baris : ');
read (x);
write ('masukan pilihan kolom : ');
read (y);
write ('nilai pada baris ',x, ' dan kolom ',y, ' adalah : ', nilai
[x,y]);
readln;
readln;
end.
Array Multi Dimensi
Array multi dimensi adalah array yang mempunyai lebih dari 2 komponen indeks yang
digunakan sebagai tempat penyimpanan data. Sebagai contoh kita gunakan array 3
dimensi dibawah ini.
x
Y
Z
1 2 3
1
2
3
2
1
Pada array 3 dimensi data array akan disimpan pada baris x, kolom y, dan sumbu z.
untuk mendapatkan isi dari array kita harus menyebutkan indeksnya.
Deklarasi array multi dimensi
nilai :array[1..3, 1..3, 1..2 ] of integer ;
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 36 of 43
Penjumlahan MATRIKS
Pada array 3 dimensi data array akan disimpan pada baris x, kolom y, dan sumbu z.
untuk mendapatkan isi dari array kita harus menyebutkan indeksnya.
Deklarasi array multi dimensi
Contoh 1
var
angka : array [1..3, 1..3] of integer;
jumlahX, jumlahY : array [1..3] of integer;
i, j : integer;
begin
//--------- PENGULANGAN INPUT DATA MATRIKS -------------------
for i := 1 to 3 do
for j := 1 to 3 do
begin
Write('masukan angka pada ', i , j ,' : ');
ReadLn(angka[i,j]);
end;
//--------- PENGULANGAN PENJUMLAHAN MATRIKS -------------------
for i := 1 to 3 do
for j := 1 to 3 do
begin
jumlahX[i] := angka [i,j] + jumlahX[i];
jumlahY[i] := angka [j,i] + jumlahX [i];
end;
//-------- PENGULANGAN MENAMPILKAN HASIL PENJUMLAHAN MATRIKS ---------
for i := 1 to 3 do
begin
WriteLn('jumlah sumbu X ke : ',i,jumlahX[i]);
WriteLn('jumlah sumbu Y ke : ',j,jumlahY[j]);
end;
ReadLn();
end.
Contoh 2
. . . . . . . .
const
kolom = 25;
baris = 25;
type
matrix = array [1..baris, 1..kolom] of integer;
var
matrix_A, matrix_B : matrix;
a, b : integer;
procedure InputMatrix(var x:matrix);
var
i,j:integer;
begin
for i:=1 to a do
begin
for j:=1 to b do
begin
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 37 of 43
Write('Masukan Elemen[',i,', ',j,'] : ');readln(x[i,j]);
end;
end;
end;
{----Cetak Matrix----}
procedure CetakMatrix(var x:matrix);
var
i,j:integer;
begin
for i:=1 to a do
begin
for j:=1 to b do
begin
Write(x[i,j]:4);
end;
writeln;
end;
end;
{----Penjumlahan Matrix----}
procedure JumlahMatrix(var x,y:matrix);
var
z:matrix;
i,j:integer;
begin
for i:=1 to a do
begin
for j:=1 to b do
begin
z[i,j]:=x[i,j] + y[i,j];
Write(z[i,j]:4);
end;
writeln;
end;
end;
{----Program Utama----}
begin
write('Masukan Jumlah Baris : ');readln(a);
write('Masukan Jumlah Kolom : ');readln(b);
if (a>25) or (b>25) then
begin
writeln('Ada kesalahan ! max kolom dan baris adalah 25.');
exit;
end;
clrscr;
writeln('Input Martix A');
InputMatrix(matrix_A);
writeln;
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 38 of 43
writeln('Input Martix B');
InputMatrix(matrix_B);
clrscr;
writeln('Matrix A');
CetakMatrix(matrix_A);
writeln;
writeln('Matrix B');
CetakMatrix(matrix_B);
writeln;
writeln('Pemjumlahan Matrix A dan Matrix B');
JumlahMatrix(matrix_A,matrix_B);
ReadLn();
end.
Pengurutan Data (Sorting)
Pengurutan data digunakan untuk mengurutkan sejumlah data yang dimasukan.Misalnya
rangking siswa, atau peringkat siswa. Pengurutan data menggunakan array dimana
setiap data akan mendapatkan nomor indeks. Isi data dari setiap indeks akan
dibandingkan dari indeks yang pertama sampai indeks data yang terakhir.
Contoh :
var
a: array[1..5] of Integer;
i, j, tmp: Integer;
begin
a[1] := 23;
a[2] := 45;
a[3] := 12;
a[4] := 56;
a[5] := 34;
for i := 1 to 4 do
for j := i + 1 to 5 do
if a[i] > a[j] then
begin
tmp := a[i];
a[i] := a[j];
a[j] := tmp;
end;
for i := 1 to 5 do
writeln(i,': ',a[i]);
readln;
end.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 39 of 43
Terdapat array a. Dengan 5 data
23 45 12 56 34
Index 1 Index 2 Index 3 Index 4 Index 5
Kita akan buat urutan array atau nomor indeks dengan [I]
Dan urutan setelah [I] atau (I + 1) dengan [J]
I J
23 45 12 56 34
Index 1 Index 2 Index 3 Index 4 Index 5
Proses pengurutan data adalah dengan menukar kedua nilai antara I dan J. Agar nilai
dapat berpindah dan bergeser ke nilai berikutnya maka kita perlu tempat untuk
menyimpan nilai yang lebih kecil. Tempat sementara tersebut kita sebut dengan [Temp]
I J
23 45 12 56 34
Index 1 Index 2 Index 3 Index 4 Index 5
Temp
Langkah pengurutan adalah dengan membandingkan nilai pada index 1 atau [I] dan
indeks seudahnya atau [J]. Jika nilai I lebih besar dari nilai J maka nilai J akan disimpan
di [Temp]. Nilai [J] yang kosong akan di isi oleh Nilai [I] dan nilai [I] yang kosong akan
di isi oleh nilai dari [Temp]. Perhatikan siklus pertukaran isi data pada indeks [I] dan [J].
Pengulangan ini akan terus sebanyak indeks data yang dimasukkan.
...
const Nmaks = 100;
var
A: array [1..Nmaks] of integer;
I,j,N,temp : integer;
begin
write ('banyaknya data yang diurutkan :');
readln(N);
for I:=1 to N do
begin
write('A[',i,'] =');readln(A[i]);
end;
for i:=1 to N do
for j:=i to N do
begin
if A[i]>A[j] then
begin
temp:=A[i];
A[i]:=A[j];
A[j]:=temp;
end;
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 40 of 43
end;
for i:=1 to n do
write(A[i]:5,' ');
readln;
end.
Pencarian Data (Searching)
Pencarian data adalah proses membandingkan data antara data yang dimasukan atau
data yang akan dicari dengan sejumlah data yang sudah ada. Data yang ada biasanya
disimpan dalam sebuah array. Pencarian data dengan cara cepat adalah membandingkan
indeks array dari depan dan belakang.
Contoh :

var
L: array[1..10] of integer;
bil,i,j,k: integer;
ketemu: boolean;
begin
write('Angka yang dicari= ');
readln(bil);
L[1]:=1;
L[2]:=3;
L[3]:=5;
L[4]:=7;
L[5]:= 9;
L[6]:=11;
L[7]:=13;
L[8]:=15;
L[9]:=17;
L[10]:=19;
ketemu:=FALSE;
i:=1;
j:=10;
while (i<=j) and (not ketemu) do begin
k:=(i+j) div 2;
if (L[k]=bil) then
ketemu:=TRUE
else if (L[k]>bil) then
j:=k-1
else
i:=k+1;
end;
if ketemu then
writeln('Ditemukan! ')
else
writeln('Tidak ditemukan!');
readln;
end.
Penjelasan.
Pada proses pencarian data diatas dapat dibuat prosesnya sebagai berikut:
Terdapat array L
Indeks
1
Indeks
2
Indeks
3
Indeks
4
Indeks
5
Indeks
6
Indeks 7 Indeks
8
Indeks
9
Indeks
10
1 3 5 7 9 11 13 15 17 19
I J
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 41 of 43
Pada array L terdapat sepuluh data yang masing – masing data diberi indeks oleh array
dari 1 sampai 10.
proses pencarian diawali dengan membagi indeks array menjadi 2. indeks yang ke 1
sampai ke 5 dan indeks ke 6 sampai ke 10. indeks dari 1 sampai 5 akan dicari oleh [I]
dan indeks yang ke 6 sampai 10 akan dicari oleh [J]. jika data sudah ditemukan oleh J
maka pencarian pada I tidak perlu dilakukan lagi. Demikian juga sebaliknya. Dengan cara
ini maka waktu pencarian bisa lebih cepat terutama pada proses pencarian data yang
melibatkan data ribuan.
Latihan
1. Buat algoritma menggunakan flowchart dan program untuk menghitung segi tiga,
lingkaran, bujur sangkar, trapesium, belah ketupat, polygon, dan Hexagon.
Pentunjuk pengerjaan
1. Cari rumus setiap bangun yang akan dihitung
2. Deklarasikan variabel yang digunakan
3. Deklarasikan variabel hasil
4. Tampilkan data yang di proses
5. Tampilkan hasil dari proses
6. selesai
2. Buat program untuk menampilkan
Petunjuk menampilkan dua digit dibelakang koma. [writeln ('Average = ',
Average:0:2);]
3. Buatlah algoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan
Farenheit. Input: suhu dalam Celcius
Proses: R = 4/5 * C dan F = 9/5 * C + 32
Output: suhu dalam Reamur dan Farenheit
4. Buatlah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku, jika
diketahui panjang sisi yang membentuk sudut siku-siku. Input: a dan b, yaitu
panjang sisi pembentuk sudut siku-siku
Proses: c = √(a2 + b2)
Petunjuk :
Untuk menampilkan akar adalah:
Sqrt (nilai yang di akarkan)
5. Buatlah algoritma untuk untuk menghitung akar-akar persamaan kuadrat dengan
rumus D = B2 – 4 * A * C
Jika D < 0 maka didapat akar imajiner
Jika D = 0 maka X1 = X2 yang didapat dari D = -B / (2 * A)
Jika D > 0 maka ada dua akar X1 = -B +√ (D/ 2 * A) dan X2= -B - +√ (D/ 2 * A)
Ouput: sisi miring (c)
6. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan masukan, apakah
sama ataukah lebih besar salah satunya, dan tampilkan hasilnya.
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 42 of 43
7. Buatlah program untuk menghitung volume Tabung (Rumus Volume Tabung : phi x
jari-jari x jari-jari x tinggi) dan Luas Tabung (Rumus Luas tabung : 2 x phi x jari-jari
x tinggi )dimana jari-jari 7 dan tinggi 24.
8. Buat Program untuk menampilkan sejumlah deret bilangan ganjil antara 1 sampai
N, dimana N dimasukkan oleh user.
9. Buatlah program dalam bentuk menu yang mampu menghitung :
a. Luas dan Keliling Bujur sangkar
b. Luas dan Keliling persegi panjang
c. Luas dan keliling lingkaran
10. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1
11. Buatlah program untuk mencetak (gunakan perulangan while atau for)
* * * *
* * *
* *
*
12. Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilanagn ke 5
sampai bilangan ke 1 dengan nilai awal bilangan 8. Tampilan bilangan tersebut
adalah menurun dan contohnya adalah : bilangan ke 5, i=3 (diperoleh dari 8-5) dan
seterusnya sampai bilangan 1, i=7 (diperoleh dari 8-1=7)
Job Sheet
Untuk SMK Jurusan RPL
Oleh : Isa Hamdan
.
Page 43 of 43
Type , Set, Record
Type
Digunakan untuk mendeklarasikan variabel yang datanya diambil dari variabel dasar
(integer, real, char, sting, dan seterusnya).

0 comment:

Posting Komentar

Followers