Anda di halaman 1dari 93

Algoritma Pemrograman dan Struktur Data I

Atma Luhur 2009


Definisi Algoritma
Algoritma adalah urutan langkah berhingga untuk memecahkan
logika atau matematika.
Definisi Pemrograman
Langkah langkah dalam memberikan instruksi kepada komputer
untuk memecahkan masalah.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Software / perangkat lunak
1. Sistem Operasi
windows 98, XP, NT, de el el
2. Program aplikasi
Microsoft Word, Microsoft Excel, Microsoft Powerpoint de es be.
3. Program Pemrograman
Visual Basic, Visual Foxpro, Clipper de es te.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tingkat program pemrograman / bahasa pemrograman
1. Generasi Pertama
Masih menggunakan bahasa mesin, menggunakan sandi 0
dan 1 ( 1 = on, 0 = off )
2. Generasi kedua
Menggunakan untaian sandi 0 dan 1 dengan singkatan kata
yang lebih dimengerti oleh manusia. Bahasa
pemrogramannya disebut bahasa assembly.
Contoh : CMP AL, OD
3. Generasi ketiga
Menggunakan bahasa yang lebih dipahami oleh manusia,
dengan menggunakan bahasa internasional ( inggris ).
Contoh : Pascal, Bahasa C, C++
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
4. Generasi keempat
Perintah perintah yang digunakan lebih manusiawi, biasa
digunakan untuk pengembangan aplikasi basis data.
Contohnya : SQL ( Structured Query Languange )
SELECT Nama, Alamat FROM Karyawan
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Langkah langkah pemrograman komputer :
1. Mendefiniskan masalah
Tentukan permasalahannya, kemudian apa saja yang harus
dipecahkan dengan komputer, apa masukan dan keluarannya.
2. Menentukan Solusi
Mencari jalan bagaimana masalah tersebut diselesaikan.
Apabila permasalahannya terlalu kompleks / besar, biasanya
akan dibagi bagi kedalam modul kecil agar lebih mudah
diselesaikan.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
3. Memilih Algoritma
Langkah ini merupakan langkah yang penting dalam
pemrograman komputer.
4. Menulis Program
Ada beberapa hal yang harus dipertimbangkan saat memilih
bahasa pemrograman, antara lain kemampuan pemrograman,
masalah yang dihadapi de es be.
5. Menguji program
Mencari kesalahan pada program saat dikompilasi ( error ),
menguji berjalannya program. Langkah ke 4 dan ke 5 bisa
dilakukan berulang ulang sampai program diyakini sudah benar
dan sesuai dengan yang diharapkan.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
6. Menulis dokumentasi
Menambahkan komentar pada program untuk dokumentasi di
hari kemudian.
7. Merawat program
Langkah ini dilakukan setelah program
selesai dibuat dan sudah
digunakan oleh pengguna ( User ).
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma dalam kehidupan sehari - hari
Algoritma Makan di Restoran
Pilih meja dan tempat duduk
Pesan Makanan dan minuman
Mulai makan dan minum
Bayar tagihan
Terkadang kita dihadapkan oleh
beberapa pilihan. Contohnya :
Uang yang kita punya 50.000,-
kita harus menentukan akan
makan lauk apa dan di restoran
mana ( percabangan ).
Terkadang kita mungkin melakukan langkah- langkah tertentu
beberapa kali. Contohnya : Karena lapar sekali, kita lakukan
langkah ke 2 dan ke 3 berulang kali ( pengulangan ).
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma untuk menghitung luas Segi Empat
Masukan nilai Panjang
Masukan nilai Lebar
Hitung luas Panjang x Lebar
Tampilkan Luas
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Latihan :
1. Buatlah Algoritma untuk menjadi mahasiswa
AMIK Atma Luhur
2. Buatlah Algoritma untuk membeli pakaian
di Department Store
3. Buatlah Algoritma untuk menghitung luas segitiga
4. Buatlah Algoritma untuk menghitung isi bangun balok
SELAMAT MENGERJAKAN
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Jawaban
1. Algoritma untuk menjadi mahasiswa AMIK Atma Luhur
Isi Form Pendaftaran
Ikut Ujian Penerimaan Mahasiswa
Terima Hasil Ujian + Kwitansi
Daftar Ulang
Dapat NIM ( Nomer Induk Mahasiswa )
2. Algoritma untuk membeli pakaian pada Department Store
Memilih pakaian
Minta Nota
Bayar Nota ke Kasir
Terima pakaian dan struk pembayaran
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
3. Algoritma untuk menghitung luas segitiga
Masukkan nilai Alas
Masukkan nilai Tinggi
Hitung Luas ( Alas x Tinggi ) / 2
Tampilkan Luas
4. Algoritma untuk menghitung Isi Bangun Balok
Masukkan nilai Panjang
Masukkan nilai Lebar
Masukkan nilai Tinggi
Hitung Isi Panjang x Lebar x Tinggi
Tampilkan Isi
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Macam macam Tipe data
Ada 6 ( enam ) kelompok tipe data pada pascal, yaitu :
1. Tipe sederhana, dibagi jadi 2 tipe :
Tipe Ordinal, dibagi lagi;
Tipe bil. Bulat
Tipe boolean
Tipe karakter
Tipe terbilang
Tipe subjangkauan
Tipe real
2. Tipe string

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
3. Tipe terstruktur. Dibagi menjadi lima ( 5 ) tipe, yaitu ;
Tipe larik
Tipe rekaman / record
Tipe objek
Tipe himpunan
Tipe berkas
4. Tipe pointer
5. Tipe prosedural
6. Tipe objek



Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe Bilangan Bulat
Sesuai dengan namanya, tipe bilangan Bulat digunakan untuk
menyimpan bilangan bulat.








Tabel 1.1 macam-macam tipe bil. Bulat Pascal
TIPE JANGKAUAN UKURAN
Shortint -128127 8 bit
Integer -3276832767 16 bit
Longint -21474836482147484647 32 bit
Byte 0255 8 bit
Word 065535 16 bit
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe boolean
Tipe boolean adalah tipe yang hanya dapat bernilai true ( benar )
atau false ( salah ).







Tabel 1.2 Macam-macam tipe boolean
TIPE DATA UKURAN
Boolean 1 byte
Bytebool 1 byte
Wordbool 2 byte ( 1 word )
Longbool 4 byte ( 2 word )
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe karakter
tipe karakter digunakan untuk menyimpan data alfanumeris / karakter,
seperti : AZ, ab, 09,$,@,..de el el.
Untuk memberi nilai pada variabel bertipe karakter, dapat menggunakan beberapa
cara yaitu :
menuliskan karakter di dalam tanda petik tunggal
contoh : ch := A;
menuliskan tanda # diikuti tanda dengan nomor ASCII dari karakter
yang ingin dituliskan. Contoh : ch :=#65 {sama artinya dgn ch := A;}
mengkonversikan nomor ASCII ke karakter menggunakan fungsi chr.
contoh : ch :=chr(65); { sama artinya dgn ch := A }
Kebalikan dari fungsi chr adalah ord.
contoh : x := ord(A); { x akan bernilai 65 }
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe subjangkauan
tipe subjangkauan memungkinkan untuk mendeklarasikan tipe yang
berada pada jangkauan tertentu.
Pendeklarasian tipe subjangkauan dilakukan dengan menuliskan batas bawah
dan batas atas dari jangkauannya. Contoh :
type
bulan =1..12;
Mendeklarasikan tipe bulan yang memiliki jangkauan dari 1 sampai 12. Dengan
demikian bila jika mempunyai variabel bertipe bulan, seperti contoh berikut :
Var
januari : bulan ;
Anda tidak bisa memberikan nilai kurang dari 1 atau lebih dari 12.
Contoh : januari :=1;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe terbilang
tipe terbilang memungkinkan anda memberi nama pada beberapa nilai
tertentu. Sebagai contoh :
type
tipehari :=( Minggu, Senin, Selasa, Rabu, Kamis, J umat, Sabtu );
Memberi nama Minggu pada 0, senin pada 1, selasa pada 2, de es te.
Dengan pendeklarasian tipehari seperti contoh diatas, anda tidak perlu
menggunakan angka 0, 1, sampai dengan 6 untuk mempresentasikan hari.
Contoh : var
hari : tipehari;
Anda dapat menuliskan contoh pernyataan berikut :
hari := Minggu ;
hari := Senin ;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe real
tipe real digunakan untuk menyimpan bilangan real / pecahan.







Tabel 1.3 Macam macam tipe real

TIPE JANGKAUAN DIGIT UKURAN
Real 2.9 * 10
-39
..1.7 * 10
38
11 12 6 byte
Single 1.5 * 10
-45
..3.4 * 10
38
7 8 4 byte
Double 5.0 * 10
-324
..1.7 * 10
308
15 16 8 byte
Extended 3.4 * 10
-4932
..1.1 * 10
4932
19 20 10 byte
Comp -2
63
+1..2
63
-1 19 20 8 byte
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe string
tipe string digunakan untuk menyimpan data yang berupa untaian
karakter, seperti pascal, algoritma, de es be. Untuk mendeklarasikan string,
digunakan kata kunci string. Contoh :
Var
kalimat : string ;
Pemberian nilai pada string dilakukan dengan meletakkan untaian karakter
diantara tanda petik tunggal. Contoh :
kalimat := pemrograman algoritma;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe Larik
tipe larik memungkinkan untuk mendeklarasikan kumpulan variabel
yang bertipe sama. Bentuk umum pendeklarasian larik :
Var
nama_larik : array [batas_bawah..batas_atas] of tipe larik ;
contoh Anda ingin membuat delapan variabel bertipe longint. Tanpa
menggunakan larik, mungkin mendeklarasikan variabel tersebut dengan cara
berikut :
Var
a1, a2, a3, a4, a5, a6, a7, a8 : longint;
Dengan larik kita bisa menyederhanakan deklarasi kedelapan variabel diatas
menjadi :
Var
a : array [1..8] of longint;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe rekaman
Memungkinkan Anda menggabungkan beberapa variabel yang
tipenya tidak harus sama. Untuk mendeklarasikan rekaman, digunakan kata
kunci record. Contoh :
type
tkaryawan = record
nama : string ;
alamat : string ;
gaji : string ;
end;
Pemberian nilai pada variabel bertipe rekaman dilakukan dengan
menyebutkan nama variabel rekaman diikuti tanda titik dan variabel didalam
rekaman.

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Sebagai contoh, jika terdapat variabel karyawan yang betipe tkaryawan :
var
karyawan : tkaryawan ;
Dapat menuliskan pernyataan berikut ;
karyawan.nama := ronaldo;
karyawan.alamat := Jl. Selindung lama;
karyawan.gaji :=1000000;





Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe himpunan
digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota
himpunan ) yang bertipe sama. Sebagai contoh :
type
himpunankarakter =set of char;
Mendeklarasikan tipe himpuanankarakter sebagai himpunan dari karakter. Contoh
deklarasi variabel bertipe himpunan :
var
vokal : himpunankarakter;
huruf : himpunankarakter;
Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota
himpunan dalam kurung siku ([ dan ]). Contoh :
vokal := [A, I , U, E, O];
huruf :=[A..Z];
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Tipe pointer
pointer adalah variabel yang menunjuk lokasi memori tertentu.
Pendeklarasian pointer dilakukan dengan cara menambahkan tanda ^
didepan tipe pointer. Contoh :
Var
p1 : ^integer ;
p2 : ^double;

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Latihan 2
Tentukan Listing program mana yang akan menghasilkan nilai yang
benar :
Uses wincrt;
Var
x,y,z : byte;
Begin
x := 99;
y := 30;
z := x + y;
write(z);
End.
Uses wincrt;
Var
x,y,z :integer;
Begin
x := 150;
y := 5;
z :=( x + y) / 2;
write(z);
end.
Uses wincrt;
Var
x,y,z : shortint;
Begin
x := 90;
y := -10;
z := x * y;
write(z);
end.
1
2
3
Tipe data
sesuai
Tipe data
sesuai
Tipe data tidak
sesuai
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Lanjutan latihan..

4. Jika diketahui x adalah variabel bertipe integer, dari nilai-nilai
berikut, manakah yang dapat diberikan pada x?
a. 10.1 f. 80.55
b. 200 g. 21474846
c. 32799
d. -35600
e. 0
A,C,D,F,G salah nilai
tidak sesuai dengan
tipe data
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Macam macam operator
Ada tujuh operator pada pascal, yaitu ;
1. Operator pemberian nilai
2. Operator aritmetik
3. Operator pemanipulasi bit
4. Operator boolean
5. Operator pembanding
6. Operator himpunan
7. Operator string

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator Aritmetik
1. Operator Aritmetik Tunggal
1. + (Contoh : x := +y;)
2. - (Contoh : x := -y; )
2. Operator Aritmetik Biner
1. + (Penjumlahan)
X := y + z;
2. - (Pengurangan)
X := a b c d;
3. * (Perkalian)
X := 5 * 9 * 3.14;
4. / (Pembagian)
X := a / b;
5. Div (Pembagian bilangan bulat)
Z := 10 div 2;
6. Mod (Sisa Pembagian / modulus)
Z := y mod k;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator Pemanipulasi Bit
Not, And, Or, Xor
A B Not A Not B A and B A or B A xor B
0 0 1 1 0 0 0
0 1 1 0 0 1 1
1 0 0 1 0 1 1
1 1 0 0 1 1 0
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator Boolean
Not, And, Or, Xor
A B Not A Not B A and B A or B A xor B
false false true true false false false
false true true false false true true
true false false true false true true
true true false false true true false
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator Pembanding
= Sama dengan
<> Tidak sama dengan
< Kurang dari
> Lebih dari
<= Kurang dari atau sama dengan
>= Lebih dari atau sama dengan
Hasil dari operasi ini adalah tipe boolean (True/False)
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator Operasi
+ Union
- Selisih
* Interseksi
in Anggota dari
Operator Himpunan
Tabel Operator himpunan
Sebagai contoh : a:= b + c;
Menggabungkan semua anggota himpunan B dan C ke dalam
himpunan A. Jika A, B dan C bertipe Set Of Char dan isi himpunan B
adalah [P,Q] dan isi himpunan C adalah [R] maka isi himpunan A
adalah [P,Q,R].
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Operator String
Pascal hanya mengenal satu macam operator string, yaitu
penggabungan. Operator ini digunakan untuk menggabungkan dua
atau lebih string. Operator ini menggunakan tanda +.
Contoh
S := AMIK + ATMA + Luhur;
Writeln(S);
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Derajat Operator
Not Tertinggi
* / div mod and
+ - or xor
= <> < > <= >= Terendah
Berapa hasil dari x = 2 + 3 * 4 ?
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Uses wincrt;
Var
a, b, c, d, hasil : integer;
Begin
a := 5;
b := 15;
c := 21;
d := 6;
Hasil := a + b + ( c * d );
write(Hasil);
end.
Latihan 3
Uses wincrt;
Var
a, b, c, d, hasil : real;
Begin
a := 10;
b :=7;
c := 9;
d := 33;
Hasil := (a b) / c * d;
write(Hasil);
end.
1
2
Tentukan nilai dari variabel hasil
Hasil = 146
Hasil = 11.00
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Uses wincrt;
Var
Pasti, Jadi, Yakin, a, b : boolean ;
Begin
a := True;
b := False;
Pasti := a and b ;
writeln(Pasti);
jadi := a or b;
Writeln(jadi);
Yakin :=a and b and pasti or jadi ;
Writeln(Yakin);
end.
3
Uses wincrt;
Var
Pasti, Jadi, Yakin, a, b : boolean ;
Begin
a := True;
b := False;
Pasti := not a ;
writeln(Pasti);
jadi := a xor b;
Writeln(jadi);
Yakin :=a and b xor pasti or jadi ;
Writeln(Yakin);
end.
4
Lanjutan Latihan
Pasti = False
Jadi = True
Yakin = True
Pasti = False
Jadi = True
Yakin = True
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh Derajat Operator

X := 4 + 10 * 2;
X := 6 2 * 4 + 10;
X := 8 * (5 + 2);
X := 4 / 2 + 10 * 4;
X := 3 * 5 6 + 4;
Contoh Operator Pembanding

1. A := 5 = 6;
2. A := 5 <> 6;
3. A := 5 < 6;
4. A := (3 < 4) and (5 >6);
5. A := (4 <= 4) or (5 > 6);
6. A := (4 >= 4) and (5 >= 5);
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Var
a, b, c, d : boolean ;
x, y, z : boolean ;
Begin
a := true ;
b := false ;
c := true ;
d := false ;
X:= a and b or c xor d;
Y:= a and not b or not c;
Z := a xor b xor c xor d;
Write(x, , y, ,z);
End.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
PERCABANGAN ( Seleksi Kondisi )
Pernyataan IF
Pernyataan IF digunakan untuk menguji sebuah kondisi. Bila
kondisi yang di uji benar ( true ) maka akan menjalankan pernyataan
dibawahnya.
Bentuk umum :
If kondisi then
pernyataan ;
Atau
If kondisi then
Begin
pernyataan_1;
pernyataan_2;
pernyataan_n;
End;
jika kondisi benar maka
kerjakan pernyataan ;
Atau
jika kondisi benar maka
Awal blok
kerjakan pernyataan_1;
kerjakan pernyataan_2;
kerjakan pernyataan_n;
Akhir blok
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
IF KONDISI
THEN
PERNYATAAN_TRUE1;
PERNYATAAN_TRUE2;
START
END
TRUE
FALSE
FLOW CHART UNTUK PERNYATAAN IF
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh Penggunaan IF..Then
uses wincrt;
Var nilai : shortint;
begin
write('Masukkan Nilai : '); Readln(nilai);
if (nilai >= 56) then
writeln('LULUS');
end.
IF tanpa Block
Statement
uses wincrt;
Var nilai : shortint;
begin
write('Masukkan Nilai : '); Readln(nilai);
if (nilai >= 56) then
begin
writeln(Nilai Anda : ,nilai);
writeln('LULUS');
end;
end.
IF dengan
Block
Statement
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan if..else
Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila
kondisi yang diuji terpenuhi ( true ), program akan menjalankan pernyataan-
pernyataan tertentu; dan bila kondisi yang diuji salah ( false ), program akan
menjalankan pernyataan-pernyataan lain.

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
If kondisi then
Begin
pernyataan_true1;
pernyataan_true2;
pernyataan_true_n;
End
Else
Begin
pernyataan_false1;
pernyataan_false2;
pernyataan_false3;
End;
If kondisi then
pernyataan_true1
Else
pernyataan_true2;

Jika kondisi benar maka
kerjakan pernyataan_t
Selain itu
kerjakan pernyataan_f ;

Jika kondisi benar maka
Awal blok
kerjakan pernyataan_t1;
kerjakan pernyataan_t2;
kerjakan pernyataan_tn;
Akhir blok
Selain itu
Awal blok
kerjakan pernyataan_f1;
kerjakan pernyataan_f2;
kerjakan pernyataan_fn;
Akhir;
Bentuk umum pernyataan if..else :
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
IF KONDISI
THEN
PERNYATAAN_TRUE1;
PERNYATAAN_TRUE2;
START
END
TRUE
FALSE
PERNYATAAN_FALSE1;
PERNYATAAN_FALSE2;
FLOW CHART UNTUK PERNYATAAN IF..ELSE
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh Penggunaan IF..ELSE
uses wincrt;
var
nilai : shortint;
begin
write('Masukkan Nilai : '); Readln(nilai);
if (nilai >= 56) then
writeln('LULUS')
else
writeln('GAGAL');
end.
IF..ELSE tanpa
block statement
uses wincrt;
var
nilai : shortint;
begin
write('Masukkan Nilai : '); Readln(nilai);
if (nilai >= 56) then
begin
writeln(Selamat Anda LULUS);
writeln('LULUS');
end
else
begin
writeln(Maaf Anda Tidak LULUS);
writeln('GAGAL');
end;
end.
IF..ELSE dengan
block statement
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program penjualan_tiket;
uses wincrt;
var
usia : byte ;
begin
write('Usia Anda ');
readln(usia);
if usia >= 17 then
writeln ('Anda boleh menonton')
else
writeln ('Anda belum boleh menonton');
end.
Program penjualan_tiket;
uses wincrt;
var
usia : byte ;
begin
write('Usia Anda ');
readln(usia);
if usia >= 17 then
begin
writeln ('Anda boleh menonton');
writeln (Selamat menonton !);
end
else
begin
writeln ('Anda belum boleh menonton');
writeln (Maaf yah..!);
end;
end.
Program if..else hanya satu pernyataan
Program if..else dengan memakai
block statement
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan if..else..if
Pernyataan if..else..if digunakan jika mempunyai kondisi yang banyak.
Bentuk umum :
If kondisi_1 then
pernyataan_k1 ;
else if kondisi_2 then
pernyataan_k2;
else if kondisi_n then
pernyataan_kn;
jika kondisi_1 benar maka
kerjakan pernyataan_k1 ;
selain itu jika kondisi_2 benar maka
kerjakan pernyataan_k2;
selain itu jika kondisi_n benar maka
Kerjakan pernyataan_kn;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
If kondisi_1 then
begin
pernyataan_k1_a ;
pernyataan_k1_b;
end
else if kondisi_2 then
begin
pernyataan_k2_a;
pernyataan_k2_b;
end
else if kondisi_n then
pernyataan_kn;
jika kondisi_1 benar maka
Awal blok
kerjakan pernyataan_k1_a ;
kerjakan pernyataan_k1_b ;
Akhir blok
selain itu jika kondisi_2 benar maka
Awal blok
kerjakan pernyataan_k2_a ;
kerjakan pernyataan_k2_b ;
Akhir blok
selain itu jika kondisi_n benar maka
Kerjakan pernyataan_kn;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
FLOW CHART UNTUK PERNYATAAN IF..ELSE..IF
IF KONDISI_1
THEN
PERNYATAAN_K1_a;
PERNYATAAN_K1_b;
START
END
TRUE
IF KONDISI_2
THEN
PERNYATAAN_K2_a;
PERNYATAAN_K2_b;
IF KONDISI_N
THEN
PERNYATAAN_KN_a;
PERNYATAAN_KN_b;
TRUE
TRUE
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program Kondisi_nilai ;
uses wincrt;
var
nilai : byte ;
begin
write ('Masukkan Nilai : ');
readln(nilai);
if ( nilai >= 0 ) and ( nilai <= 40 ) then
begin
writeln('Maaf Anda GAGAL..!');
writeln('GRADE E');
end
else if ( nilai >= 41 ) and ( nilai <= 55 ) then
begin
writeln('Maaf Anda GAGAL..!');
writeln('GRADE D');
end
else if ( nilai >= 56 ) and ( nilai <= 65 ) then
begin
writeln('Selamat Anda LULUS..!');
writeln('GRADE C');
end

else if ( nilai >= 66 ) and ( nilai <= 75 ) then
begin
writeln('Selamat Anda LULUS..!');
writeln('GRADE B');
end
else if ( nilai >= 76 ) and ( nilai <= 100 ) then
begin
writeln('Selamat Anda LULUS memuaskan');
writeln('GRADE A');
end
else
writeln ('Nilai yang dientry ngawur...!!!');
end.
Program if..else..if
dengan blok
statemen
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh Soal
Buatlah program yang menampilkan informasi jenis kelamin
seseorang dengan masukkan sebuah karakter. Dengan
kondisi seperti berikut :
Jika dimasukkan karakter L atau l maka tulis Anda seorang Laki-Laki
Jika dimasukkan karakter P atau p maka tulis Anda seorang
Perempuan
Jika dimasukkan karakter selain diatas maka tulis Jenis Kelamin
diragukan
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma
Tulis Jenis Kelamin
Masukkan JK
Tulis L : untuk Laki - Laki
Tulis P : untuk Perempuan
Jika ( JK=L) atau (JK=l) maka tulis Anda Seorang Laki-Laki
Jika ( JK=P) atau (JK=p) maka tulis Anda Seorang Perempuan
Selain itu maka tulis Jenis Kelamin diragukan
L : untuk Laki-Laki
P : untuk Perempuan
Jenis Kelamin : < input > L
Anda Seorang Laki-Laki
Tampilan Program
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pembuatan Program :
Uses wincrt;
Var JK : char;
Begin
writeln(L : Untuk Laki Laki);
writeln(P :Untuk Perempuan);
write(Masukkan Jenis Kelamin : );
Readln(JK);
If ( JK=L) or ( JK=l ) then
writeln(Anda Seorang Laki-Laki)
Else If ( JK=P) or ( JK=p) then
writeln(Anda Seorang Perempuan)
Else
writeln(Jenis Kelamin diragukan);
End.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan Case
Pernyataan case digunakan untuk menyederhanakan konstruksi
if..else..if yang terlalu banyak.
Bentuk umum :
Case ungkapan of
daftar case-label 1 : pernyataan_1;
daftar case-label 2 : pernyataan_2;
daftar case-label 3 : pernyataan_3;
daftar case-label n : pernyataan_n;
End;
Case ungkapan of
daftar case-label 1 :
awal blok
pernyataan_1_a;
pernyataan_1_b;
akhir blok;
daftar case-label 2 : pernyataan_2;
daftar case-label 3 : pernyataan_3;
daftar case-label n : pernyataan_n;
else
pernyataan_else;
End;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
CASE
UNGKAPAN OF
PERNYATAAN_L_1_a;
PERNYATAAN_L_1_b;
PERNYATAAN_K2_a;
PERNYATAAN_K2_b;
PERNYATAAN_K3_a;
PERNYATAAN_K3_b;
PERNYATAAN_KN_a;
PERNYATAAN_KN_b;
PERNYATAAN_ELSE_1
PERNYATAAN_ELSE_2;
START
END
FLOW CHART UNTUK
PERNYATAAN CASE OF
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
program memakai_case ;
uses wincrt;
var
nilai : byte;
begin
write ('Masukkan Nilai : ');
readln(nilai);
case nilai of
0..40 :
begin
writeln('Maaf Anda GAGAL..!');
writeln('GRADE E');
end;
41..55 :
begin
writeln('Maaf Anda GAGAL..!');
writeln('GRADE D');
end;
56..65 :
begin
writeln('Selamat Anda LULUS..!');
writeln('GRADE C');
end;
66..75:
begin
writeln('Selamat Anda LULUS..!');
writeln('GRADE B');
end;
76..100:
begin
writeln(' Anda LULUS memuaskan');
writeln('GRADE A');
end;
else
writeln ('Nilai yang dientry ngawur...!!!');
end;
end.

Contoh program case
dengan block statement
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Latihan
Buatlah program seperti berikut :
TV Rp < input > 1000000
Jumlah Beli < input > 3
Total Bayar Rp 3000000
Maaf anda belum beruntung !!!
Tampilan Program seperti
berikut
Jika jumlah beli >= 4 dan jumlah beli <= 6 maka Anda dapat Sebuah kaset
Jika jumlah beli >= 7 dan jumlah beli <= 9 maka Anda dapat sebuah Radio
Jika jumlah beli >= 10 dan jumlah beli <= 12 maka Anda dapat sebuah VCD
Jika jumlah beli >= 13 maka Anda dapat VCD + Speaker aktif
Selain itu Maaf Anda belum beruntung !!!
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Jawaban :
Algoritma
Tulis TV = Rp
Masukkan HargaTV
Tulis Jumlah Beli =
Masukkan JumBel
Hitung TotBayar = HargaTv x JumBel
Tulis Total Bayar dan tampilkan TotBayar
Jika (JumBel >= 4) dan (JumBel <= 6) maka Anda dapat Sebuah kaset
Selain itu Maaf Anda belum beruntung !!!
Jika (JumBel >= 7) dan (JumBel <= 9) maka Anda dapat Sebuah Radio
Jika (JumBel >= 10) dan (JumBel <= 12) maka Anda dapat Sebuah VCD
Jika (JumBel >= 13) maka Anda dapat Sebuah VCD + Speaker aktif
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
uses wincrt;
var
HargaTv, TotBayar : longint;
JumBel : byte;
begin
write ('TV = Rp ');
readln(HargaTv);
write ('Jumlah Beli = ');
readln(JumBel);
TotBayar := HargaTv * JumBel;
writeln('Total Bayar = Rp ',TotBayar);
case JumBel of
4..6 : writeln ('Anda dapat sebuah kaset');
7..9 : writeln ('Anda dapat sebuah radio');
10..12 : writeln ('Anda dapat sebuah VCD');
13..15 : writeln ('Anda dapat Speaker aktif');
else
writeln ('Anda Belum beruntung');
end;
end.
Pembuatan Program
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
PENGULANGAN
Pengulangan digunakan untuk menjalankan satu atau beberapa
pernyataan sebanyak beberap kali.
Ada tiga perulangan :
1. Pernyataan For
2. Pernyataan while
3. Pernyataan repeat..until

PERNYATAAN FOR
Pernyataan for digunakan jika sudah diketahui jumlah pengulangan yang
ingin dilakukan.
Bentuk umum :
For nama_variabel := nilai_awal to nilai_akhir do
Pernyataan-pernyataan yang akan diulang ;
Atau
For nama_variabel := nilai_awal to nilai_akhir do
Begin
Pernyataan-pernyataan yang akan diulang ;
Pernyataan-pernyataan yang akan diulang ;
End;
downto
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
ungkapan pernyataan
TRUE
FALSE
START
END
FLOW CHART UNTUK PERNYATAAN FOR
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh Program
Program pengulangan_sebanyak_10_x_dengan_menggunakan_for;
Uses wincrt ;
Var
Ulang : byte;
Begin
For ulang := 1 to 10 do
Writeln(Algoritma);
End.
Perulangan for dengan
menggunakan satu
statemen

Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
Hasil yang tampak
di layar
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program pengulangan_sebanyak_10_x_dengan_menggunakan_for;
Uses wincrt ;
Var
Ulang : byte;
Begin
For ulang := 1 to 10 do
Begin
Writeln(Selamat Belajar);
Writeln(Algoritma);
End;
End.
Perulangan for dengan
menggunakan blok
statemen

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
1 1
1 2
2 1
2 2
3 1
3 2
PERNYATAAN FOR BERSARANG
Anda bisa juga menuliskan pernyataan for didalam for.
Contoh program :
Program menggunakan_for_bersarang ;
Uses wincrt;
Var
Ulang, mau : byte;
Begin
For ulang := 1 to 3 do
For mau := 1 to 2 do
Writeln(ulang, ,mau);
End.
Perulangan dengan
menggunakan for
bersarang

Hasil yang tampak
di layar
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program menggunakan_for_bersarang ;
Uses wincrt;
Var
Ulang, mau : byte;

Begin
For ulang := 1 to 5 do
begin
For mau := 1 to ulang do

Write('*');

writeln;

end;
End.
*
**
***
****
*****
Hasil yang tampak
di layar
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan WHILE
Pernyataan pengulangan ini biasanya digunakan bila Anda belum
tahu pasti berapa banyak Anda akan mengulang pernyataan
pernyataan. Berakhirnya pengulangan ditentukan oleh suatu kondisi.
Bila kondisi terpenuhi ( TRUE ) maka pengulangan akan berlanjut
tetapi bial kondisi ( FALSE ) maka pengulangan akan berakhir.
Bentuk Umum :
While kondisi do
begin
pernyataan_1;
pernyataan_2;
End;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
program bilangan_ganjil ;
uses wincrt;
var
i : byte;
begin
i:= 1;
while i <= 10 do
begin
write (i,' ');
i := i + 2;
end;
end.
1 3 5 7 9
Hasil yang tampak
pada layar
Contoh program dengan while
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
ungkapan pernyataan
TRUE
FALSE
START
END
Flow chart untuk pernyataan while
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan While bersarang
Didalam while masih ada while

Program menggunakan_while_bersarang ;
Uses wincrt;
Var
Ulang, mau : byte;

Begin
ulang := 1 ;
while ( ulang <= 5 ) do
begin
mau := 1;
while ( mau <= ulang ) do
begin
Write('*');
mau := mau +1 ;
end;
ulang := ulang + 1;
writeln;

end;
End.
*
**
***
****
*****
Hasil yang tampak
di layar
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pernyataan Repeat..until
Pernyataan pengulangan ini hampir sama dengan pernyataan
pengulangan while, dan biasanya digunakan bila jumlah
pengulangan belum dapat ditentukan pada saat program ditulis.
Perbedaan terletak pada letak pengecekan kondisi dan jika while
mengulang selama kondisi TRUE sedangkan repeat..until mengulang
selama kondisi FALSE.
Bentuk Umum :
Repeat
pernyataan_1;
pernyataan_2;
Until kondisi;
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program menggunakan_repeat_until;
uses wincrt;
var
i : byte;
begin
i:= 0;
repeat
writeln('algoritma');
i := i + 1;
until ( i >= 5 );
end.
Program repeat_until;
uses wincrt;
var
i : byte;
begin
i:= 0;
repeat
writeln('algoritma');
i := i + 1;
until ( i <= 5 );
end.
Perhatikan perbedaaan dari kedua
program di atas
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
ungkapan
pernyataan
FALSE
TRUE
START
END
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Program menggunakan_repeat_bersarang ;
Uses wincrt;
Var
Ulang, mau : byte;

Begin
ulang := 1 ;
repeat

mau := 0;
repeat
Write('*');
mau := mau + 1 ;
until ( mau >= ulang );
ulang := ulang + 1;
writeln;

until ( ulang >= 6 )
End.
*
**
***
****
*****
Hasil yang tampak
di layar
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
LATIHAN
1. Buatlah program dengan tampilan sbb : < perulangan for bersarang >
11111
1111
111
11
1
2. Buatlah program dengan ketentuan sbb :
Lakukan perulangan sebanyak 3 kali untuk perhitungan luas segitiga
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
3. Buatlah program dengan tampilan sebagai berikut :

Isian yang ke 1
Nama Anda : Lusi < input >
Hobby : renang < input >
Hobby : menari < input >
Hobby : menyanyi < input >

Isian yang ke 2
Nama Anda : Baron < input >
Hobby : Makan < input >
Hobby : Tidur < input >
Hobby : Jalan-jalan < input >
Gunakan perulangan bersarang :
While
For
Repeat..until
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
PROSEDUR
Suatu program terpisah dalam blok sendiri yang berfungsi sebagai
sub program.
Prosedur ditulis dibagian deklarasi prosedur, diawali dengan kata
procedure.
Prosedur dipanggil dan digunakan dalam blok program yang
lainnya dengan menyebutkan judul prosedur.

Prosedur banyak
digunakan pada program
yang terstruktur
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh :
Uses wincrt;
Procedure garis ; { judul / nama procedure }
Begin
writeln ( ------------);
End;
{ program utama }
Begin
Garis; { pemanggilan procedure }
Writeln (AMIK Atma Luhur);
Garis; { pemanggilan procedure }
End.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Parameter yang dikirimkan dari modul utama prosedur disebut dengan
parameter nyata ( actual parameter ).
Parameter yang ada dan dituliskan pada judul prosedur disebut
dengan parameter formal ( formal parameter ).
Proses pengiriman data lewat parameter nyata ke parameter formal
disebut dengan parameter passing
Parameter dapat dikirimkan secara nilai ( by value ) atau secara
acuan ( by reference ).
Pengertian istilah
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
a. Pengiriman parameter secara nilai ( by value )
Parameter formal di prosedur akan berisi nilai yang dikirimkan,
yang kemudian bersifat lokal di prosedur.
Perubahan nilai parameter formal di prosedur tidak akan
mempengaruhi nilai parameter nyata ( nilai parameter nyata tetap
tidak berubah ).
Pengirimanya searah yaitu dari parameter nyata ke parameter
formal dan tidak akan dikirimkan balik dari parameter formal ke
parameter nyata.

Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh program prosedur dengan pengiriman parameter secara nilai
Uses wincrt;
Procedure hitung ( g, h, I : integer ); { parameter formal }
Begin
I := g + h ;
writeln (G = ,g, H = ,h, I = ,i );
End;
Var
x,y,z : integer ;
Begin
X := 1; y := 2; z := 0;
Hitung ( x,y,z );
writeln ( X = ,x, Y = ,y, Z = ,z);
End.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
b. Pengiriman parameter secara acuan ( by reference )
Perubahan nilai parameter formal di prosedur akan mempengaruhi
nilai parameter nyata.
Pengiriman dua arah, bolak balik dari parameter nyata ke
parameter formal dan dikirimkan balik dari parameter formal ke
parameter nyata.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Contoh program prosedur dengan pengiriman parameter secara nilai
Uses wincrt;
Procedure hitung ( var g, h, I : integer ); { parameter formal }
Begin
I := g + h ;
writeln (G = ,g, H = ,h, I = ,i );
End;
Var
x,y,z : integer ;
Begin
X := 1; y := 2; z := 0;
Hitung ( x,y,z );
writeln ( X = ,x, Y = ,y, Z = ,z);
End.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
c. Pengiriman parameter sebagian secara nilai ( by value ) sebagian
secara acuan ( by reference )
Parameter yang hanya dibutuhkan pada prosedur dikirimkan secara
nilai ( pengiriman satu arah ).
Parameter yang akan dikirimkan balik dilakukan secara acuan (
pengiriman 2 arah ).
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Procedure hitung (g, h : integer ; var i: integer ;); { parameter formal }
Begin
I := g + h ;
writeln (G = ,g, H = ,h, I = ,i );
End;
Var
x,y,z : integer ;
Begin
X := 1; y := 2; z := 0;
Hitung ( x,y,z );
writeln ( X = ,x, Y = ,y, Z = ,z);
End.
Contoh program
prosedur dengan
pengiriman secara
nilai
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Prosedur memanggil dirinya sendiri.
Contoh :
uses wincrt;
var
i : integer ;
procedure rekursi;
begin
writeln('Pascal');
i := i + 1;
if i <= 5 then rekursi;
end;

begin
i := 1;
rekursi;
end.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
FUNGSI
Hampir sama dengan prosedur, hanya fungsi harus dideklarasikan
dengan tipenya, yang menunjukkan tipe data hasil dari fungsi.
Tipe hasil dari fungsi harus merupakan tipe yang sederhana.
seperti : integer, byte, char, real dan boolean.
Pengiriman nilai fungsi sama halnya dengan pengiriman nilai di
prosedur secara nilai ( by value ) dan secara acuan ( by reference )
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pengiriman Parameter secara Nilai ( By Value )
Uses wincrt;
Function hitung(a,b : integer ) : integer;
Begin
hitung := a + b ;
End;
Var
x,y : integer;
Begin
x := 1; y:= 2;
writeln(X = ,x, Y = ,y, X + Y = ,hitung(x,y));
end.
Algoritma Pemrograman dan Struktur Data I
Atma Luhur 2009
Pengiriman Parameter secara Acuan ( By Reference )
Uses wincrt;
Function hitung (var a,b,c : integer ) : integer;
Begin
hitung := a + b ;
c := a * b ;
End;
Var
x,y,z : integer;
Begin
x := 1; y:= 2; z:= 0;
writeln(X = ,x, Y = ,y, X + Y = ,hitung(x,y,z));
writeln(X = ,x, Y = ,y, X * Y = ,z);
end.

Anda mungkin juga menyukai