DASAR PEMROGRAMAN
Oleh :
Devi Febrianty
Heni Sulastri
TEKNIK INFORMATIKA
Jl. Siliwangi No. 24 Tasikmalaya Kotak Pos 164 Tlp. (0265) 323537
E-Mail : informatika@ft.unsil.ac.id ; URL : http://www.unsil.ac.id
Dasar Pemrograman
DAFTAR ISI
DAFTAR ISI
MODUL I KONSEP DASAR PEMROGRAMAN
1.1 Pengertian Program dan Pemrograman
1.2 Bahasa Pemrograman
1.3 Belajar Memprogam dan Belajar Bahasa Pemrograman
1.4 Langkah-Langkah Program Komputer
MODUL 2
2.1
2.2
2.3
MODUL 3
MODUL 4
4.1
4.2
4.3
4.4
MODUL 5
AKSI SEKUENSIAL
MODUL 6
PEMILIHAN
MODUL 7
PENGULANGAN
MODUL 8
8.1.
8.2.
RECORD
Deklarasi Record
Latihan
MODUL 9
9.1.
9.2.
9.3.
ARRAY
Deklarasi Array
Operasi Terhadap Array
Pemrosesan Array
MODUL 10
10.1.
10.2.
10.3.
PROSEDUR
Struktur Prosedur
Pemanggilan Prosedur
Variabel Global dan Variabel Lokal
MODUL 11 FUNGSI
10.1. Procedure Vs Function
10.2. Latihan
Daftar Pustaka
Dasar Pemrograman
Program
Masalah
Kompilasi
Komputer
Solusi /
Hasil
2. Bahasa Assembly
Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa
mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk
penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain.
Kelebihan
Kekurangan
: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil
: Tetap sulit dipelajari, program sangat panjang
Dasar Pemrograman
Mudah dipelajari
Kerugian
Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd Generation Programming
Language).
4.
Interpreter
Compiler
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk
membuat program yang ditulis dalam bahasa itu saja.
Sifat
Titik Berat
: Keterampilan
: Coding Program
Dasar Pemrograman
mencegah
munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna
membutuhkan fasilitas baru yang dulu tidak ada.
Contoh Permasalahan : Menghitung dan menampilkan Luas Persegi Panjang
Tahapan penyelesaian :
1. Mendefinisikan Masalah
Masukan / Input
: panjang, lebar
Keluaran / Output
: Luas
Dasar Pemrograman
Tampilkan Luas
3. Menulis Program
Contoh penulisan program dalam Bahasa Pascal dan Hasilnya
Program
Program Luas_Persegi_Panjang;
Var
panjang, lebar, Luas : integer;
Begin
Write(Panjang
:
);
Readln(panjang);
Write(Lebar
:
);
Readln(lebar);
Luas := panjang * lebar;
Write(Luas persegi Panjang = ,
Luas);
Readln;
End.
Dasar Pemrograman
Algoritma
Translasi
Eksekusi
oleh CPU
(Komputer)
Hasil yang
diinginkan
Contoh 1 : Jika seorang ingin memasak atau membuat kue, baik itu melihat resep
ataupun tidak pasti akan melakukan suatu langkah-langkah tertentu sehingga
masakannya atau kuenya jadi dan rasanya enak.
Dasar Pemrograman
Deskripsi Algoritma 2:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana C.
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A.
Aksi 3 : Tuangkan larutan dari bejana C ke dalam bejana B.
Contoh 3 : Ibu Tati mengupas kentang untuk makan malam
Sub masalah : 1. Apakah kentangnya harus dibeli dulu atau sudah di dapur?
2. Apakah pisau sudah siap?
3. Berapa jumlah kentang yang dikupas?
Maka kita harus membatasi dengan jelas keadaan awal dan keadaan akhirnya.
Keadaan awal dan keadaan akhir algoritma dapat dijadikan acuan bagi pemrogram
dalam merancang sebuah algoritma
Initial State(T0)
Final State(T1)
Deskripsi Algoritma 1
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Ibu Tati mengupas kentang
Aksi 4 : Ibu Tati mengembalikan kantong kentang ke dalam lemari
Deskripsi Algoritma di atas masih belum memenuhi Final State dimana kentang
yang sudah dikupas ada 100 buah dan kantong kentang harus dikembalikan ke
lemari jika masih ada kentangnya. Pada algoritma tersebut kentang yang dikupas
Dasar Pemrograman
hanya 1 dan Aksi 4 akan tetap dilaksanakan walaupun kantong kentang sudah
kosong
Supaya kentang yang sudah terkupas ada 100 maka perlu dilakukan proses
PENGULANGAN pengupasan kentang sebanyak 100 kali. Dan supaya Ibu Tati
hanya mengembalikan kantong kentang ke lemari hanya jika masih ada isinya,
maka perlu ada PEMILIHAN berdasarkan kondisi isi kantong kentang. Maka
algoritma untuk mencapai Final State yang benar adalah sebagai berikut :
Deskripsi Algoritma 2
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari dan
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Selama kentang terkupas < 100 maka
Aksi 4
Kupas 1 kentang
Kantong Kosong
buang
Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan
dalam waktu yang efisien).
2.3
Dasar Pemrograman
Pemilihan (selection)
Adakalanya sebuah instruksi dikerjakan jika sebuah kondisi tertentu terpenuhi
Struktur umum :
If
kondisi
atau
If
then
Aksi
kondisi
Aksi 1
then
Else
Aksi 2
Contoh :
If Amir memperoleh juara kelas then
Ayah akan membelikannya hadiah
If Jalan Dago macet then
Ambil alternative Jalan Dipati Ukur
If Kantong Kentang kosong then
Buang
Else
Kembalikan kantong kentang ke lemari
Endif
c. Pengulangan (repetition)
Komputer tidak pernah bosen dan lelah jika diminta untuk mengerjakan instruksi
secara berulang-ulang.
Contoh :
Menulis kalimat Saya harus lebih giat belajar sebanyak 1000 kali
Ulangi :
- Tulis kalimat Saya harus lebih giat belajar
Sampai jumlah_kalimat = 1000
Kupas 1 kentang
Dasar Pemrograman
Keterangan
Tanda Start(Mulai) atau
Tanda End (Selesai)
Proses
Aliran Data
Pembuatan flowchart akan sulit dilakukan untuk program yang sangat kompleks
Pseudo-code
Penulisan teks algoritma dengan Pseudo-code menggunakan notasi-notasi tertentu
yang mendekati bahasa pemrograman sehingga lebih mudah ditranslasikan ke
dalam bahasa pemrograman.
Aturan Penulisan Teks Algoritma :
Judul Algoritma
{Bagian
yang
terdiri
atas
nama
algoritma
dan
penjelasan
(spesifikasi) tentang algoritma tersebut.Nama sebaiknya singkat
dan menggambarkan apa yang dilakukan oleh algoritma tersebut.}
Dasar Pemrograman
Flowchart
Mulai
Baca R
Phi 3.14
Luas Phi * R * R
Tulis
Luas
Selesai
Pseudo-code
Algoritma Luas_Lingkaran
{Menerima masukan jari-jari lingkaran(R), menghitung
Luasnya dengan rumus 3.14 * R * R, kemudian menuliskan
hasilnya}
Kamus
const Phi : real = 3.14
R, Luas : real
Deskripsi
read(R)
Luas Phi * R * R
write(Luas)
Dasar Pemrograman
o
o
Flow chart
Mulai
Baca
nama, nilai
Nilai >= 60
Tidak
Ya
Keterangan Lulus
Tulis
nama,keterangan
Selesai
Pseudo-code
Algoritma Kelulusan_Mhs
{Menerima masukan nama dan nilai mahasiswa, jika nilai tersebut
lebih besar atau sama dengan 60 maka mahasiswa tersebut
dinyatakan lulus jika tidak maka dinyatakan tidak lulus}
Kamus
Nama : string
Nilai : integer
Keterangan : string
Deskripsi
read (nama, nilai)
if nilai >= 60 then
keterangan lulus
else
keterangan tidak lulus
endif
write(nama, keterangan)
Dasar Pemrograman
Flow chart
Mulai
Baca
angka
i0
i < angka
Tidak
Ya
Tulis
Dasar Pemrograman
i i +1
Selesai
Pseudo-code
Algoritma Cetak_Frase
{Menerima masukan sebuah angka, kemudian tuliskan frase Dasar
Pemrograman sebanyak angka tersebut }
Kamus
angka : integer
i : integer
Deskripsi
read (angka)
i 0
while i < angka do
write(Dasar Pemrograman)
i i + 1
endwhile
Dasar Pemrograman
Tipe dasar
Tipe yang dapat langsung dipakai (angka-angka atau karakter) karena sudah
Integer
Domain Nilai :
Secara teoritis tak terbatas dari - s.d +. Pada algoritma dapat dibatasi
tergantung kebutuhan untuk objek, misalnya untuk jam [0..23]. Dalam
implementasinya pada bahasa pemrograman, tipe integer punya rentang nilai terbatas
untuk menghemat memory.
Contoh nilai
Contoh objek
2. Bilangan Riil
Bilangan yang mengandung pecahan desimal
Nama Tipe
Real
Domain Nilai :
Secara teoritis tak terbatas dari - s.d +. Ditulis dengan titik desimal
3.
Contoh nilai
Contoh objek
: Nilai ujian
Bilangan Logika
Nama Tipe
Boolean
Domain Nilai
Konstanta
4. Karakter
Karakter tunggal yang diapit oleh tanda petik satu.
Nama Tipe
-
char
Domain Nilai :
Huruf alfabet (a..z dan A..Z)
Dasar Pemrograman
Angka 0 , 1 ,..., 9
Contoh nilai
: l , p , + , 6, A
Contoh objek
4.1.2
Tipe bentukan
Tipe yang dibentuk (dan diberi nama) dari tipe dasar atau dari tipe lain yang
sudah dikenal, bahkan dapatt didefinisikan sendiri oleh pemrogram.
Macam tipe bentukan :
1. String(kumpulan karakter)
Deretan karakter dengan panjang tertentu.
Nama Tipe
Domain Nilai
:
Satu atau lebih karakter yang diapit oleh tanda petik
tunggal
Contoh nilai
String
123
Contoh objek
Nama, Alamat
2. Tipe bentukan dari tipe data dasar atau tipe bentukan lain : Kata Kunci type
Deklarasi kamus data
: type
nama_tipe_bentukan : tipe_data
Contoh : membuat sebuah tipe data baru bernama BilBulat yang memiliki domain nilai
yang sama dengan tipe integer
type BilBulat : integer;
3. Record
Record tersusun dari satu atau lebih field. Tiap field menyimpan data dengan tipe
tertentu
field 1 field 2 field 3 field n
Deklarasi kamus data :
type Nama_Record : record < nama_field1: tipe_field1,
nama_field2: tipe_field2,
....
nama_fieldn: tipe_fieldn>
Contoh :
a. Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis
dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y)
sebagai field
x
atau
Dasar Pemrograman
b. Definisi tipe terstruktur yang mewakili tanggal dalam kalender Masehi. dd sebagai
tanggal, mm sebagai bulan, yy sebagai tahun
dd mm yy
type Tanggal : record <dd : integer,
mm : integer,
yy : integer
{1..31}
{1..12}
{>0} >
c. NilMhs adalah tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa
untuk mata kuliah yang diambil(MK)
Nim NamaMhs KodeMK Nilai
type NilMhs : record <
NamaMhs : string,
KodeMK : string,
Nilai : char >
Nim : integer,
d. Tipe terstruktur untuk jadwal kereta api yang terdiri dari nomor kereta(NoKA), kota
asal(KotaAsal), kota tujuan(KotaTujuan), jam berangkat(JamBerangkat), jam
tiba(JamTiba)
NoKA KotaAsal KotaTujuan JamBerangkat JamTiba
type JadwalKA : record <NoKA : string,
KotaAsal : string,
KotaTujuan : string,
JamBerangkat : Jam,
JamTiba : Jam >
4.2 NAMA
Nama digunakan mengidentifikasi objek dan mengacu objek tersebut..
Dalam sebuah teks algoritmik, objek yang diberi nama bisa berupa :
- Modul program, Algoritma
- variabel
- konstanta
- type
- fungsi
- prosedur
Karena adanya bermacam-macam nama tersebut, maka dalam suatu teks
algoritma dikenal nama program, nama variabel, nama konstanta, nama fungsi, nama
prosedur, nama type.
Setiap bahasa pemrograman memiliki aturan masing-masing untuk
mendefinisikan nama(panjang maks nama, perbedaan huruf besar dan kecil) tetapi
dalam algoritma batasan pendefinisian nama tidak seketat pada bahasa pemrograman.
Syarat-syarat penggunaan sebuah nama pada algoritma:
Dasar Pemrograman
1. Nama Algoritma
Digunakan untuk mengidentifikasi sebuah program atau algoritma, dideklarasikan
pada bagian Judul algoritma
Contoh : Algoritma Luas_Lingkaran,
Algoritma Kelulusan_Mhs
2. Nama Peubah(variabel)
Tempat penyimpan data/informasi/nilai yang isinya dapat diubah selama eksekusi
program berlangsung. Setiap variabel mempunyai tiga atribut, yaitu nama, tipe, dan
nilai. Nama variabel dan tipe datanya dideklarasikan pada bagian Kamus. Sedangkan
nilai yang disimpan dalam variabel didefinisikan pada bagian deskripsi algoritma.
Bentuk umum deklarasi variabel adalah :
nama_variabel : tipe data
Contoh :
Kamus
nama : string
{variabel nama bertipe string}
nim: integer
{variabel nim bertipe integer/bilangan bulat}
jns_kelamin : char
{variabel jns_kelamin bertipe karakter}
rata, nilai_uts, nilai_uas, nilai_tugas : real; {variabel dengan nama rata, nilai_uts,
nilai_uas, nilai_tugas bertipe sama yaitu real}
3. Nama Tetapan(konstanta)
Tempat penyimpan data/informasi/nilai yang isinya tidak dapat diubah selama
pelaksanaan program. Nama, tipe, dan nilai Konstanta dideklarasikan pada bagian
Kamus. Untuk mendefinisikan konstanta harus memakai kata kunci const dan
konstanta harus langsung diisi dengan sebuah nilai tertentu.
Bentuk umum deklarasi konstanta adalah :
const nama_konstanta : tipe = nilai
Contoh :
Kamus
const phi : real = 3.14
const Nmaks : integer = 200
const password : string = abcd
Dasar Pemrograman
Nama tipe bentukan tidak dapat langsung digunakan di dalam bagian deskripsi
algoritma, tetapi sebelumnya harus mendeklaraikan variabel yang bertipe bentukan
tersebut
Contoh :
Kamus
type Karakter : char
type Titik : record <
type Jam : record <hh
mm
ss
x
:
:
:
: real; y
integer,
integer,
integer
: real >
{0..23}
{0..59}
{0..59} >
Indeks : karakter
T : Titik
J : Jam
Dari contoh di atas telah didefinisikan tipe data baru bernama karakter dan dua
buah tipe record yang bernama Titik dan Jam. Nama karakter, Titik, dan Jam tidak bisa
langsung digunakan pada bagian Deskripsi algoritma tetapi harus mendeklarasikan
variabel baru. Pada contoh di atas dideklarasikan variabel Indeks yang bertipe karakter,
variabel T bertipe Titik dan variabel J yang bertipe Jam. Indeks, T, dan J inilah yang
bisa digunakan pada bagian deklarasi program.
5. Nama Fungsi
Bagian Judul Fungsi(nama fungsi, parameter) dideklarasikan pada bagian Kamus
Contoh :
Kamus
Function Penjumlahan(a , b : integer) integer
{mengembalikan hasil penjumlahan antara dua bilangan}
6. Prosedur
Bagian Judul Prosedur(nama prosedur , parameter) dideklarasikan pada bagian
Kamus
Contoh :
Kamus
Procedure TUKAR(input/output A , B : integer)
{mempertukarkan nilai A dan B}
Dasar Pemrograman
4.3 NILAI
Nilai/Harga adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa
konstanta yang dipakai langsung, isi yang disimpan oleh variabel atau konstanta, hasil
perhitungan suatu ekspresi, atau hasil yang dikirim suatu fungsi.
Algoritma pada dasarnya adalah proses memanipulasi nilai. Nilai dapat
dimanipulasi dengan cara : mengisi nilai ke dalam variabel, menuliskan nilai ke piranti
keluaran, diacu dari suatu nama untuk perhitungan/ekspresi
1. Pengisian Nilai
Suatu nama konstanta secara otomatis akan mempunyai harga tetap yang
terdefinisi(sudah ditentukan) pada saat nama konstanta dideklarasikan dalam
kamus sehingga nama konstanta dapat langsung digunakan dalam program. Tetapi
tidak demikian halnya dengan nama variabel. Suatu nama variabel dapat digunakan
dalam ekspresi program jika harganya telah terdefinisi. Ada dua cara untuk mengisi
nama variabel dengan harga/nilai :
Assignment :
Assignment adalah instruksi untuk menyimpan harga pada suatu nama variabel.
Dengan pemberian harga ini, harga lama yang disimpan tidak lagi berlaku, yang
berlaku adalah harga paling akhir yang diberikan.
Nilai/Harga yang dimasukkan ke dalam nama variabel bisa berupa nilai tetap,
nilai dari variabel lain, atau ekspresi :
Dasar Pemrograman
Deskripsi Algoritma
nama_var1 nama_var2 {harga dari nama variabel2 disalin ke nama variabel1}
nama_var konstanta
{harga dari nama konstanta disalin ke nama variabel}
nama_var ekspresi
{hasil perhitungan ekspresi diisikan ke nama variabel}
nama_var nama_fungsi {nilai yang dikembalikan fungsi diisikan ke nama variabel}
dengan syarat :
- Bagian kiri dan bagian kanan tanda assignment () bertipe sama
- nama_var1 dan nama_var (bagian kiri tanda ) harus merupakan nama
variabel, tidak boleh nama konstanta, type, fungsi, atau prosedur
- nama yang tertulis di bagian kanan tanda assigment ()boleh berupa nama
variabel, nama fungsi, nama konstanta
- semua nama yang dipakai dalam assignment tidak bleh berupa nama type atau
prosedur
Contoh :
Kamus
k, suhu1, suhu2, Total : integer
ketemu : boolean
J : Jam
Jarak : real
NamaKota : string
Deskripsi Algoritma
k 10
ketemu false
Jarak 34.8
NamaKota Tasikmalaya
Suhu1 40
Suhu2 30
Total Suhu1 + Suhu2
Suhu1 Suhu2
Total k*20+14
Contoh :
Kamus
Nim : integer
Nama : string
Indeks : char
Nilai : real
Deskripsi Algoritma
read(Nim)
read(Nama)
read(Nilai, Indeks)
Dasar Pemrograman
dengan syarat :
-
list-nama adalah satu atau lebih nama : boleh nama variabel, nama konstanta, atau
hasil pemanggilan fungsi
nama-nama dalam list-nama tidak boleh berupa nama type atau nama prosedur
Contoh :
Kamus
const pass : string = abce
A, B : integer
Nilai : real
Deskripsi Algoritma
Nilai 92.7
read(A , B)
write(pass, Nilai)
write(Teknik Informatika)
write(100)
write(A + B)
write((A + B)/2*10)
Dasar Pemrograman
Operasi
Contoh Ekpresi
Hasil
Sama dengan
a := 6 = 9
a = false
a := 7 5
a = true
<
a := 4 < 6
a = true
>
a := 10 > 1
a = true
a := 8 4
a = false
a := 3 1
a = true
2. Operator aritmatika
Operator aritmatika hanya dapat dikenakan pada operand bertipe bilangan bulat
atau bilangan real. Ekspresi yang menggunakan operator ini pun hanya akan
menghasilkan nilai bilangan bulat atau real
Operator
Operasi
Hasil
Contoh Ekpresi
Hasil
Jumlah
Integer/Real x 8 + 13
x 4.3 + 2
x = 21
x = 6.3
Kurang
Integer/Real x 15 2
x 2.1 1.1
x = 13
x = 1.0
Kali
Integer/Real x 5 * 6
x 2.0 * 1.1
x = 30
x = 2.2
Bagi
Real
x 6/4
x = 1.5
Div
integer
z 7 div 2
z=3
Mod
z 7 mod 2
z=1
Pangkat
z 2^3
z=8
integer/real
3. Operator logika
Operator ini dikenakan pada operand bertipe boolean dan ekspresinya akan
menghasilkan nilai boolean(true atau false)
Operator
Arti
Hasil
Not
Negasi
boolean
And
Dan
boolean
Or
Atau
boolean
Xor
exclusive OR
boolean
Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi
A
not A
not B
A and B
A or B
A xor B
true
true
false
false
true
true
false
true
false
false
true
false
true
true
false
true
true
false
false
true
true
false
false
true
true
false
false
false
Dasar Pemrograman
Dasar Pemrograman
5. AKSI SEKUENSIAL
Aksi sekuensial (runtunan) adalah sederetan instruksi atau aksi yang akan
dilaksanakan (dieksekusi) oleh komputer berdasarkan urutan penulisannya. Jadi, jika
dituliskan sebuah aksi sekuensial yang terdiri dari deretan instruksi/aksi ke 1, 2, 3, 4,..n
maka setiap instruksi/aksi akan dilaksanakan secara sekuensial mulai dari yang ke-1,
kemudian ke-2, ke-3, ...s/d ke-n. Program paling sederhana tentunya hanya
mengandung salah satu instruksi saja.
Urutan instruksi dalam algoritma sangat penting, ada aksi sekuensial yang jika
diubah urutan instruksi/aksinya akan mempengaruhi hasil eksekusi program.
Contoh aksi sekuensial yang berpengaruh jika diubah urutannya :
Algorima Runtunan_1
Kamus
p , q : integer
Deskripsi
p 15
p 2* p
q p
write(q)
{nilai q yang dicetak = 30}
Algorima Runtunan_2
Kamus
p, q : integer
Deskripsi
p 15
q p
p 2* p
write(q)
{nilai q yang dicetak = 15}
: HELLO
Proses
: menulis HELLO
Algoritma Cetak_HELLO
{Menulis HELLO ke piranti keluaran}
Kamus
Deskripsi
write(HELLO)
Contoh 2 : HELLO X
Permasalahan : Tuliskan algoritma untuk membaca sebuah nama, dan menulis
HELLO yang diikuti dengan nama yang diketikkan ke piranti keluaran
Dasar Pemrograman
Input
Output
: nama
: HELLO <nama>
Proses
Algoritma Cetak_HELLOX
{Menulis HELLO berikut nama yang dibaca dari piranti masukan ke
piranti keluaran}
Kamus
nama : string
Deskripsi
read(nama)
write(HELLO ,nama)
Contoh 3 : SEGITIGA
Permasalahan : Tuliskan algoritma untuk menghitung Luas Segitiga dengan membaca
harga alas (cm) dan tinggi (cm) kemudian menuliskan hasilnya ke piranti keluaran
Input
Output
Proses
alas x tinggi
2
Algoritma Hitung_Luas_Segitiga
{Membaca alas dan tinggi, menghitung Luas=alasxtinggi/2 dan
menuliskan hasilnya }
Kamus
alas : real
(panjang alas segitiga, satuan cm)
tinggi : real
Luas : real
Deskripsi
read(alas)
read(tinggi)
Luas alas * tinggi / 2
write(Luas)
Contoh 4 : GAJI
Permasalahan : Dibaca nama karyawan dan gaji pokok bulanannya. Buat algoritma
untuk menghitung dan menampilkan gaji bersih karyawan tersebut dengan ketentuan :
-
Tunjangan untuk setiap pegawai sama dan tetap setiap bulannya yaitu 1.000.000
Pajak 10% dari (gaji pokok+tunjangan)
Input
Output
Proses
10
x (Gaji Pokok + Tunjangan)
100
Algoritma_Gaji_Karyawan
{Menghitung Gaji bersih karyawan dengan membaca nama karyawan dan
gaji pokoknya. Gaji bersih = gaji pokok+tunjanganpajak}
Kamus
Dasar Pemrograman
Contoh 5 : TUKAR
Permasalahan : Buatlah algoritma yang membaca dua buah bilangan integer yang
ditampung dalam variabel, menukarkan harga variabel tersebut dan menuliskan hasil
pertukarannya
Input
: dua bilangan integer A dan B
Output
Proses
Algoritma_TUKAR
{mempertukarkan nilai antara A dan B}
Kamus
A, B, temp : integer
Deskripsi
read(A, B)
temp A
A B
B temp
write(A, B)
Dasar Pemrograman
6. PEMILIHAN
Analisis kasus adalah salah satu elemen primitif pembangun algoritma. Analisis kasus
diperlukan dalam sebuah program ketika terdapat suatu instruksi yang hanya dikerjakan jika
memenuhi persyaratan atau kondisi tertentu. Contoh : pada algoritma Ibu Tati mengupas
kentang
Penulisan Algoritma Yang Mengandung Analisa Kasus/Pemilihan
1. Flowchart
Permasalahan : Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau
sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60
maka dinyatakan tidak lulus.
Flow chart
Mulai
Baca
nama, nilai
Nilai >= 60
Tidak
Ya
Keterangan Lulus
Tulis
nama,keterangan
Selesai
2. Pseudocode
Penulisan algoritma yang mengandung analisis kasus menggunakan pseudocode terdiri dari
dua struktur umum : IF-THEN dan DEPEND-ON
Mendefinisikan analisis kasus adalah mendefinisikan :
- kondisi boolean, berupa suatu ekspresi yang menghasilkan nilai true atau false
-
aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan
dipenuhi.
Ungkapan Kondisi dapat dihasilkan dengan operator perbandingan dan operator logika.
contoh kondisi : x > 100, kar = * , (a 0) or (b = 0) , ketemu = true, not ketemu
Dasar Pemrograman
IF-THEN
a. Satu Kasus
if <kondisi> then
aksi
endif
Contoh contoh :
a. if x > 100 then
x x + 1
endif
b. if (a 0) or (b = 0) then
b a * b
write(b)
endif
c. if (ketemu) then
if a 10 then
read(b)
endif
endif
Contoh Kasus 1 :
Algoritma HURUF_VOKAL
{mencetak pesan huruf vokal bila sebuah karakter yang
dibaca merupakan huruf vokal. Asumsi huruf kecil}
Kamus
huruf : char
Deskripsi
read(huruf)
if (huruf=a) or (huruf=i) or (huruf=u) or
(huruf=o) then
(huruf=e) or
write(Huruf Vokal)
endif
Contoh Kasus 2 :
Algoritma Bilangan_Genap
{mencetak pesan bilangan genap kemudian kalikan bilangan
tersebut dengan angka 2 jika bilangan bulat yang
dimasukkan dari piranti masukan merupakan bilangan genap}
Kamus
bil : integer
Deskripsi
read(bil)
if bil mod 2 = 0 then
write(bilangan genap)
write(bil*2)
endif
b. Dua Kasus
if <kondisi> then
aksi1
else
aksi2
endif
Dasar Pemrograman
Contoh contoh :
a. if a > 0 then
write(bilangan positif)
else
write(bilangan negatif)
endif
b. if (k > 4) and (k div 2 = 4) then
read(n)
z n * k
else
read(m)
z n / k
endif
Contoh Kasus 1 :
Algoritma Kelulusan_Mhs
{Menerima masukan nama dan nilai mahasiswa, jika nilai
tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak
lulus}
Kamus
Nama : string
Nilai : integer
Keterangan : string
Deskripsi
read (nama, nilai)
if nilai >= 60 then
keterangan lulus
else
keterangan tidak lulus
endif
write(nama, keterangan)
Contoh Kasus 2 :
Algoritma Bilangan_Genap_dan_Ganjil
{Mencetak bilangan genap jika bilangan bulat yang dibaca
merupakan bilangan genap dan bilangan ganjil jika bukan
bilangan genap}
Kamus
Bil : integer
Deskripsi
read(bil)
if (bil mod 2 = 0) then
write(Bilangan Genap)
else
write(Bilangan Ganjil)
endif
Dasar Pemrograman
c. Banyak Kasus
if <kondisi1> then
aksi1
else
if <kondisi2> then
aksi2
else
if <kondisi3> then
aksi3
endif
endif
endif
Contoh Kasus 1 :
Membaca dua buah nilai integer, jika nilai pertama lebih besar atau sama dengan nilai kedua
kerjakan nilai pertama/nilai kedua, jika nilai kedua lebih besar dari nilai pertama kerjakan
nilai kedua/nilai pertama, tetapi jika nilai kedua = 0 maka tampilkan pesan error
Algoritma WUJUD_AIR
{Menentukan hasil pembagian}
Kamus
n1, n2 : integer
hasil : real
Deskripsi
read(n1,n2)
if n2=0 then
write(Error)
else
if n1n2 then
hasil n1/n2
else
hasil n2/n1
endif
write(hasil)
endif
DEPEND-ON
Untuk menyederhanakan pola IF-THEN-ELSE jika terdapat banyak kasus. Strukturnya :
depend on (nama)
<kondisi1> : aksi1
<kondisi2> : aksi2
<kondisi3> : aksi3
.....
<kondisiN> : aksiN
[otherwise aksiX]
Tiap langkah diperiksa kebenarannya. Jika kondisi ke-k benar maka aksi ke-k dilaksanakan.
Kondisi berikutnya tidak dipertimbangkan lagi. Jika tidak ada satupun aksi yang benar maka
aksi sesudah otherwise yang dikerjakan.
Contoh Kasus 1:
Dibaca nomor dari 1-7 untuk menunjukkan hari. Tuliskan nama hari sesuai nomor harinya
Dasar Pemrograman
Algoritma NAMA_HARI
{Mencetak nama bulan }
Kamus
Nomor_hari : integer
Deskripsi
read(nomor_hari)
depend on (nomor_ hari)
nomor_hari=1 : write(Januari)
nomor_hari =2 : write(Februari)
nomor_hari =3 : write(Maret)
nomor_hari =4 : write(April)
nomor_hari =5 : write(Mei)
nomor_hari =6 : write(Juni)
nomor_hari =7 : write(Juli)
otherwise write(Bukan nomor hari yang benar)
Dasar Pemrograman
7. PENGULANGAN
Komputer memiliki kemampuan untuk mengerjakan suatu instruksi (aksi) secara berulangulang dengan performansi yang sama. Kemampuan tersebut menjadi salah satu keunggulan
komputer dibandingkan manusia karena manusia biasanya tidak menyukai tugas-tugas monoton
yang dikerjakan secara berulang-ulang (karena lelah atau bosan).
Notasi pengulangan adalah salah satu notasi dasar dalam penulisan algoritma selain
pemilihan. Terdapat beberapa macam struktur pengulangan pada algoritma dan beberapa
diantaranya yang paling banyajk digunakan antara lain struktur FOR, WHILE-DO, dan
REPEAT-UNTIL.. Masing-masing struktur digunakan pada jenis permasalahan yang berbeda
meskipun untuk beberapa kasus sebuah struktur pengulangan dapat diganti dengan struktur
pengulangan yang lain.
3. Struktur FOR
Struktur ini digunakan bila sudah diketahui berapa kali akan mengulang satu atau beberapa
aksi dalam badan pengulangan.
Bentuk Umum :
for variabel nilai_awal to nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :
variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi
sebagai pencacah pengulangan
aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara
berulang-ulang
tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
Dasar Pemrograman
Bentuk Umum :
for variabel nilai_awal downto nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :
variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi
sebagai pencacah pengulangan
aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara
berulang-ulang
tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari N sampai 1 dimana N
diinputkan dari user
Algoritma Show_Numeric2
{ menampilkan bilangan integer dari N sampai 1}
Kamus
i, N : integer
Deskripsi
read(N)
for i N downto 1 do
write(i)
endfor
4. Struktur WHILE-DO (Pengulangan berdasarkan kondisi ulang)
Struktur pengulangan ini biasanya digunakan pada kasus yang belum pasti berapa kali
aksi/instruksinya akan diulang. Struktur While mirip struktur IF yang melakukan pemeriksaan
ekspresi boolean sebelum satu atau lebih aksi dikerjakan.
Bentuk Umum :
while (kondisi) do
aksi1
aksi2
...
aksin
endwhile
Catatan :
Kondisi adalah kondisi pengulangan berupa ekspresi boolean yang dapat menghasilkan
nilai True atau False
Aksi pada badan pengulangan dilaksanakan selema (kondisi) menghasilkan nilai True
Dasar Pemrograman
Algoritma Show_Numeric3
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i 1
while i 10 do
write(i)
i i + 1
endwhile
Badan pengulangan (aksi) pada struktur While-Do mungkin tidak akan pernah dilakukan
karena sebelum aksi pertama dieksekusi, dilakukan test terhadap kondisi pengulangan.
Pengulangan ini berpotensi untuk menimbulkan aksi kosong (tidak pernah melakukan apaapa) jika pada test pertama kondisi menghasilkan nilai False
Contoh :
Kamus
f : boolean
Deskripsi
f true
while (not f)
do
f not f
enwhile
5. Struktur REPEAT-UNTIL (Pengulangan berdasarkan kondisi berhenti)
Struktur ini hampir sama dengan struktur Whike dan biasanya digunakan bila jumlah
pengulangan belum dapat ditentukan saat program ditulis
Bentuk Umum :
Repeat
aksi1
aksi2
...
aksin
Until (kondisi berhenti)
Catatan :
Kondisi berhenti berupa ekspresi boolean yang dapat menghasilkan nilai True atau False
Aksi pada badan pengulangan akan dikerjakan sampai kondisi berhenti bernilai True
Badan pengulangan (aksi) pada struktur ini minimal dikerjakan satu kali karena pada
waktu eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi
berhenti. Test terhadap kondisi berhenti dilakukan setelah aksi dikerjakan
Dasar Pemrograman
Dasar Pemrograman
8. RECORD
Untuk merepresentasikan sebuah objek, sering tipe data dasar seperti integer, real,
boolean, char, tidak dapat memenuhinya. Oleh karena itu, dibentuklah tipe bentukan
yang merupakan gabungan dari beberapa tipe data dasar atau dari tipe bentukan
lainnya. Salah satu tipe bentukan tersebut adalah record.
Record adalah salah satu tipe data terstruktur(structured data type) bentukan yang
setiap recordnya terdiri dari beberapa elemen yang disebut field. Setiap field
menggambarkan informasi tertentu dan tipe data pada masing-masing field dapat
berbeda-beda namun sudah dikenal baik itu tipe dasar atau tipe bentukan lainnya.
field 1 field 2 field 3 field n
Ilustrasi sebuah record
Sebagai contoh, di dalam matematika untuk menggambarkan sebuah titik pada
diagram kartesian digunakan dua bilangan integer atau real yaitu untuk menunjukkan
koordinat titik yang ditunjuk pada sumbu x dan sumbu y. Untuk merepresentasikan
tanggal juga digunakan tipe bentukan yang terdiri dari hari, bulan, dan tahun yang
masing-masing bertipe integer. Data pegawai juga terdiri dari beberapa elemen seperti
nama, tanggal lahir, dan alamat. Untuk menjawab semua kebutuhan pada beberapa
contoh tersebut, dibuatlah tipe bentukan yang disebut record.
8.1 DEKLARASI RECORD
Seperti halnya tipe data lain, tipe data record juga harus dideklarasikan terlebih
dahulu di bagian kamus jika kita ingin menggunakan sebuah variabel yang bertipe
record pada bagian deskripsi algoritmanya. Deklarasi record pada algoritma adalah
sebagai berikut :
type nama_record : record < nama_field1 : tipe_field1,
nama_field2 : tipe_field2
.....
nama_fieldn : tipe_fieldn
>
Contoh 1 : Type Titik {menyatakan absis dan ordinat pada diagram kartesian}
Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis
dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y)
sebagai field
x
{absis}
{ordinat}
Dasar Pemrograman
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada T yang telah
terdefinisi adalah :
T.x dan T.y
Contoh :
Kamus
type Titik : record < x : real,
y : real
>
T : Titik
Deskripsi
T.x 4.5
T.y -2.0
read(T.x , T.y)
write(T.x , T.y)
Dasar Pemrograman
Dasar Pemrograman
M.NamaMhs Arjuna
M.KodeMK MKK1107
M.Nilai B
read(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)
write(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)
8.2 LATIHAN
1. Tentukan baris instruksi yang salah pada algoritma di bawah ini!
Algoritma Contoh_Type
Kamus
type MyPoint : record <x : integer, y : integer>
P : integer
R : MyPoint
Deskripsi
{1} read(MyPoint)
{2} read(R)
{3} read(P)
{4} write(H.x , H.y)
{5} R R + 5
{6} R.x R.x + 5
{7} write(MyPoint)
{8} write(R.x, R.y)
Dasar Pemrograman
9. ARRAY
Array merupakan salah satu tipe data terstruktur(structured data type) yang berguna
sebagai sebuah tempat penyimpanan elemen data/nilai yang bertipe sama.
Penggunaannya sama seperti variabel(untuk menyimpan nilai) tetapi variabel hanya
dapat menyimpan sebuah nilai sedangkan pada array data yang diolah bisa beberapa
nilai bertipe sama.
Struktur data array dipakai untuk merepresentasikan sekumpulan informasi yang
bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi indeks secara
kontigu dalam memori komputer. Oleh karena itu indeks harus suatu tipe data yang
mempunyai keterurutan seperti tipe integer atau karakter.
Bentuk array sama seperti tabel sehingga array seringkali juga disebut tabel.
Misalnya tabel untuk menyimpan data nilai 100 buah
TabNilai
index nilai
1
60
2
70
3
100
4
80
5
65
.....
.....
100
89
Sebuah array harus diberi nama, supaya mudah diakses atau diacu. Setiap
elemen/bagian array harus diberi alamat supaya dapat dibedakan dengan elemen
lainnya dan mudah dalam pencarian. Indeks digunakan sebagai alamat elemen pada
array.
9.1 Deklarasi Array
Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau dipesan
tempatnya (berapa banyak data yang akan dimasukkan ke dalam array) dengan cara
dideklarasikan di bagian kamus. Jumlah elemen array tidak dapat diubah selama
pelaksanaan program
Bentuk umum deklarasi array :
nama_array : array [range_index] of tipe_elemen
contoh :
TabNilai : array [1..100] of real
Frekuensi : array [a..z] of integer
NamaKota : array [1..20] of string
Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi elemen tabel
bertipe sama. Range index bisa berupa integer atau character dan harus menaik.
Dasar Pemrograman
ArrHuruf
1
2
3
4
5
A
N
G
S
A
Kamus
const N = 5
ArrHuruf : array [1..N] of char
Deskripsi
ArrHuruf[1] A
ArrHuruf[2] N
ArrHuruf[3] G
ArrHuruf[4] S
ArrHuruf[5] A
write(ArrHuruf[3])
Dasar Pemrograman
read(MyTab[i])
endfor
Contoh 2 : Algoritma yang membaca sebuah array integer yang menyatakan nilai
ujian, TabNilai, mulai indeks 1 sampai n dan menghitung nilai rata-rata
ujian dan menampilkannya pada layar dimana n diinputkan oleh user
Algoritma Nilai_Mahasiswa
Kamus
const NMax = 100
TabNilai : array [1..NMax] of real
n,i : integer
rata : real
Deskripsi
read (n)
for i 1 to n do
read(TabNilai[i])
endfor
jumlah 0
for i 1 to n do
jumlah jumlah + TabNilai[i]
endfor
rata jumlah / n
Dasar Pemrograman
10. PROSEDUR
Seringkali dalam membuat program besar, pemrogram perlu memecah program menjadi
beberapa subprogram yang lebih kecil. Tiap subprogram(modul) dapat dirancang oleh
pemrogram selain orang yang mengembangkan program utama. Modul yang sudah
dirancang dapat dipasang ke dalam program lain yang membutuhkan Teknik
pemrograman modular(prosedur, routine, fungsi)
Keuntungan modularisasi :
1. Untuk aktivitas yang harus dilakukan lebih dari sekali, cukup ditulis sekali sehingga
dapat mengurangi panjang program. Contoh :
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
DESKRIPSI
..
{Pertukarkan nilai A dan B}
temp A
A B
B temp
.....
if C > D then
{pertukarkan nilai C dan D}
temp C
C D
D temp
endif
..
Procedure TUKAR(input/output P, Q : integer)
{mempertukarkan nilai P dan Q}
DEKLARASI
Temp : integer
DESKRIPSI
Temp P
P Q
Q Temp
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
Procedure TUKAR(input/output P, Q : integer)
DESKRIPSI
..
{Pertukarkan nilai A dan B}
TUKAR(A,B)
{panggil prosedur TUKAR}
.....
if C > D then
{pertukarkan nilai C dan D}
TUKAR(C,D)
{panggil prosedur TUKAR}
endif
Dasar Pemrograman
Ilustrasi :
a. Prosedur URUS PASPOR (di kantor imigrasi)
- Isi formulir permintaan paspor dengan lampiran foto copy KTP, Kartu keluarga,
pas foto
- Serahkan formulir yang sudah diisi beserta biaya pembuatan paspor
- Wawancara dengan petugas imigrasi
- Terima paspor
b. Prosedur URUS VISA (di kantor kedutaan besar)
- Isi formulir permintaan visa dengan lampiran foto copy KTP, paspor, pas foto,
tiket pesawat
- Serahkan formulir yang sudah diisi beserta biaya pembuatan visa
- Terima visa
c. Prosedur BERANGKAT DARI BANDARA
- Datang ke bandara satu jam sebelum keberangkatan
- Jika sudah disuruh naik ke pesawat, tunjukkan tiket, paspor, dan visa ke petugas
- Naik ke pesawat
- Selamat jalan...
Algoritma PERGI_KE_LUAR_NEGERI
DESKRIPSI :
a. Urus Paspor
b. URUS VISA
c. BERANGKAT DARI BANDARA
2. Kemudahan menulis dan mencari kesalahan(debug) program
Kemudahan menulis berguna jika sebuah program dilaksanakan oleh satu tim
pemrogram. Masalah dipecah menjadi beberapa submasalah. Setiap submasalah ditulis
Dasar Pemrograman
ke dalam modul individual yang dikerjakan oleh orang yang berbeda. Setelah selesai,
semua modul diintegrasikan kembali menjadi program lengkap.
Program modular mudah dipahami dan mudah dicari kesalahannya karena setiap
modul melakukan aktivitas spesifik
Contoh :
Procedure CETAK_HALLO
{mencetak string Hallo, Dunia}
DEKLARASI
DESKRIPSI
write(Hallo, Dunia)
Procedure HIT_LUAS_SEGITIGA
{menghitung luas segitiga dengan rumus L = (alas x tinggi)}
DEKLARASI
a, t , L: real
DESKRIPSI
read(a , t)
L a * t / 2
write(L)
Procedure HIT_LUAS_ PERSEGI_PANJANG
{menghitung luas empat persegi panjang dengan rumus L =
panjang x lebar}
DEKLARASI
p, l , Luas: real
DESKRIPSI
read(p , l)
Luas p * l
write(Luas = , Luas)
Procedure HIT_LUAS_LINGKARAN
{menghitung luas segitiga dengan rumus L = (a x t)}
DEKLARASI
const phi = 3.14
r , L: real
Dasar Pemrograman
DESKRIPSI
read(r)
L phi * r * r
write(L)
Dasar Pemrograman
1 : HIT_LUAS_SEGITIGA
2 : HIT_LUAS_PERSEGI_PANJANG
3 : HIT_LUAS_LINGKARAN
4 : write(Keluar Program...Sampai Jumpa)
until nomor_menu = 4
Usahakan menggunakan nama global sesedikit mungkin karena dengan nama lokal,
program terlihat lebih elegan dan mempermudah mencari kesalahan program yang
disebabkan oleh nama tersebut
Dasar Pemrograman
Parameter
Kebanyakan program memerlukan pertukaran informasi antara prosedur/fungsi
dengan titik dimana ia dipanggil penggunaan parameter
Parameter adalah :
Nama- nama peubah yang dideklarasikan pada bagian header prosedur.
Parameter actual ( argument ) adalah :
Parameter yang disertakan pada waktu pemanggilan prosedur.
Parameter formal adalah :
Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.
Tiap item data ditransfer antara parameter aktual(yang disertakan pada waktu
pemanggilan) dengan parameter formal(yang dideklarasikan di prosedur). Ketika
pemanggilan, parameter aktual menggantikan parameter formal. Tiap parameter berpasangan
dengan parameter formal yang bersesuaian. Pendeklarasian parameter di dalam prosedur
bukanlah keharusan. Dengan kata lain boleh ada atau tidak ada.
Procedure Nama_Prosedur(daftar parameter formal)
{Spesifikasi prosedur, penjelasan yang berisi uraian singkat mengenai apa yang dilakukan
prosedur}
Kamus
{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal didefinisikan disini}
Algoritma
{Badan prosedur, berisi kumpulan instruksi}
Dasar Pemrograman
Perubahan nilai parameter dalam badan prosedur tidak mengubah nilai parameter aktual.
Nama parameter aktual boleh berbeda dengan nama parameter formal. Contoh :
Procedure SATU (input x : integer , input y : real)
{Contoh prosedur dengan parameter formal jenis parameter
masukan}
Deklarasi
Deskripsi
x x + 1
y y + 1
write(x)
write(y)
Algoritma PQR
{Contoh program utama yang memanggil prosedur SATU}
Deklarasi
a , b : integer
c , d : real
Procedure SATU (input x : integer , input y : real)
Deskripsi
SATU(4,10.5)
read(a,b,c,d)
SATU(a,c)
SATU(b,d)
SATU(a+5,c/d)
SATU(a,b)
SATU(a)
SATU(a,c,b)
Dasar Pemrograman
dengan parameter keluaran dipanggil, nama parameter aktual dalam program pemanggil
akan menggantikan nama parameter formal yang bersesuaian dalam prosedur. Nama
parameter aktual akan digunakan selama pelaksanaan prosedur.
Parameter formal Parameter aktual
Karena nama parameter merupakan suatu lokasi di memori, maka jika parameter
aktual diisi suatu nilai di dalam prosedur, nilai tersebut akan tetap berada dalam
parameter aktual walaupun prosedur selesai dilaksanakan. Contoh :
Procedure DUA(input x : integer , output y : real)
{Contoh prosedur dengan parameter formal jenis parameter
masukan dan jenis parameter keluaran}
Deklarasi
Deskripsi
x x + 1
y x * 10
Algoritma PQR
{Contoh program utama yang memanggil prosedur DUA}
Deklarasi
a , b : integer
Procedure DUA (input x : integer , output y : real)
Deskripsi
DUA (4,b)
write(b)
read(a)
DUA (a,b)
write(b)
DUA (a+5,b)
write(b)
Dasar Pemrograman
DESKRIPSI
Tt.x (T1.x + T2.x) / 2
Tt.y (T1.y + T2.y) / 2
Algoritma TITIKTENGAH
{Program untuk menghitung titik tengah dari dua buah titik T1
dan T2}
DEKLARASI
type Titik : record < x : real,
y : real
>
P1, P2, Pt : Titik
Procedure HITUNG_TITIKTENGAH(input T1, T2 : Titik ,
output Tt : Titik)
DESKRIPSI
read(P1.x, P1.y)
read(P2.x, P2.y)
HITUNG_TITIKTENGAH(P1, P2, Pt)
write(Pt.x, Pt.y)
Dasar Pemrograman
Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu
dijalankan, hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10
Nilai x dan y di akhir Prosedur TIGA :
a = 17
b=8
Nilai a dan b sesudah pemanggilan :
a = 15
b = 10
Procedure TIGA (input/output x,y : integer)
{Menambahkan nilai x dengan 2, mengurangi nilai y dengan 2}
Deklarasi
Deskripsi
x x + 2
y y 2
write(Nilai x dan y di akhir Prosedur TIGA : )
write(x = ,x)
write(y = ,y)
Algoritma FGH
{Contoh program utama yang memanggil prosedur TIGA}
Deklarasi
a , b : integer
Procedure TIGA (input/output x, y : integer)
Deskripsi
a 15
b 10
write(Nilai a dan b sebelum pemanggilan : )
write(a = ,a)
write(b = ,b)
TIGA(a,b)
write(Nilai a dan b sesudah pemanggilan : )
write(a = ,a)
write(b = ,b)
Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu
dijalankan, hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10
Dasar Pemrograman
Dasar Pemrograman
11. F U N G S I
Bentuk Umum :
Function nama_fungsi(daftar parameter) tipe_hasil
Kamus
Algoritma
.....
.....
hasil
{mengembalikan nilai}
11.2 LATIHAN
1. Buat algoritma untuk menukarkan nilai 3 buah character {proses pertukaran
menggunakan prosedur/fungsi}
Dasar Pemrograman
2. Buat algoritma yang menentukan nilai indeks mahasiswa dengan input NIM dan
nilai akhir mahasiswa tersebut. {menggunakan fungsi/prosedur untuk penentuan
indeksnya}
Ketentuan :
nA 80
: A
70 nA < 80 : B
55 nA < 70 : C
40 nA < 55 : D
nA < 40
: E
3.
Procedure One (input a , b : integer , output c : integer)
Kamus
Algoritma
if (a < b) then
c a
else
while (a b) and (a > 5) do
b b * 2
a a b
endwhile
c (a * b) + Two(a , b) * Two(a + 10 , b + a)
endif
Function Two (input p , q : integer) integer
Kamus
Algoritma
if (q = 0) then
0
else
if (p > q) then
p div q
else
q div p
endif
endif
Algoritma Mistery
Kamus
x , y , z : integer
Algoritma
read(x)
read(y)
One(x , y, z)
write(z)
z Two(x * 2 , y - 2) * 10
write(z)
20
15 8
20 2
output
Dasar Pemrograman
DAFTAR PUSTAKA
[1]
[2]
[3]
[4]
[5]
[6]