Anda di halaman 1dari 20

Algoritma Pemrograman

Pertemuan Ke-4
Nilai dan Urutan (sequence)

:: Noor Ifada ::

S1 Teknik Informatika-Unijoyo 1
Sub Pokok Bahasan
Nilai
Pengisian nilai ke dalam nama peubah
Ekspresi
Menuliskan Nilai ke Piranti Keluaran
Urutan (sequence)
Urutan Instruksi Tidak Berpengaruh Terhadap
Hasil Keluaran
Urutan Instruksi Berpengaruh Terhadap Hasil
Keluaran

S1 Teknik Informatika-Unijoyo 2
Nilai
• Nilai adalah besaran dari tipe data yang
sudah didefinisikan (tipe dasar atau tipe
bentukan). Nilai dapat berupa isi yang
disimpan oleh nama peubah atau nama
konstanta, nilai dari hasil perhitungan, atau
nilai yang dikirim oleh fungsi. Algoritma pada
hakekatnya adalah memanipulasi nilai yang
disimpan di dalam elemen memori.
• Cara memanipulasi nilai yang dikandung oleh
peubah:
– Mengisikannya ke peubah lain yang bertipe sama
– Dipakai untuk perhitungan (ekspresi)
– Dituliskan/dicetak ke piranti keluaran

S1 Teknik Informatika-Unijoyo 3
Pengisian nilai
ke dalam nama peubah
1. Pengisian nilai secara langsung
(assigment)
– Pengisian nilai secara langsung adalah memasukkan
sebuah nilai ke dalam nama peubah langsung di dalam
teks algoritma. Syaratnya, nilai yang diisikan harus
bertipe sama dengan tipe peubah
– Notasi pengisian nilai secara langsung : ←
– Arti notasi : nilai di sebelah kanan tanda panah
diisikan ke dalam peubah di sebelah kiri tanda panah
– Akibat pengisian nilai ke dalam suatu nama peubah,
nilai lama yang disimpan di dalam peubah “hilang”
ditimpa dengan nama baru. Prinsip yang dipakai
adalah: nilai yang dikandung oleh nama peubah
adalah nilai yang terakhir kali diisikan ke dalamnya.

S1 Teknik Informatika-Unijoyo 4
– Nilai yang diberikan ke
dalam peubah dapat berupa
konstanta: peubah ← konstanta { nilai
konstanta diisikan ke
Contoh : dalam peubah }
A ← 5 { Nilai A sama
dengan 5 }

– Atau suatu peubah diisi peubah1 ← peubah2 { nilai


dengan nilai dari peubah lain: konstanta diisikan ke
dalam peubah }
Contoh :
A ← B { Nilai A sama
dengan nilai B }

– Atau suatu peubah diisi peubah ← ekspresi { hasil


dengan nilai evaluasi dari perhitungan diisikan ke
sebuah ekspresi: dalam peubah }
Contoh :
A ← B + C { A berisi hasil
evaluasi ekspresi B + C }

S1 Teknik Informatika-Unijoyo 5
1. Dibaca dari piranti masukan
– Nilai untuk nama peubah dapat diisi dari piranti
masukan, misalnya dari keyboard. Mengisi nilai
dari piranti masukan dinamakan operasi
pembacaan data. Di dalam algoritma, instruksi
pembacaan nilai untuk nama peubah dilakukan
dengan notasi read.
– Notasi algoritma untuk pembacaan nilai dari
piranti masukan:
read(nama1, nama2, ..., namaN)

– Dengan syarat bahwa nama1, nama2, ..., namaN


adalah nama peubah yang sudah didefinisikan
tipenya di dalam DEKLARASI.

S1 Teknik Informatika-Unijoyo 6
Ekspresi
• Suatu nilai dipakai untuk proses transformasi
menjadi keluaran yang diinginkan. Transformasi
nilai menjadi keluaran dilakukan melalui suatu
perhitungan (komputasi). Cara perhitungan itu
dinyatakan dalam suatu ekspresi.
• Ekspresi terdiri atas operand dan operator.
Operand adalah nilai yang dioperasikan dengan
operator tertentu. Operand dapat berupa
konstanta, nama peubah, nama konstanta, atau
hasil dari suatu fungsi. Hasil evaluasi dari
sebuah ekspresi adalah nilai di dalam domain
yang sesuai dengan tipe operand yang dipakai.
• Terdapat dua macam ekspresi:
– Ekspresi Aritmatika
– Ekspresi Relasional

S1 Teknik Informatika-Unijoyo 7
Ekspresi Aritmatika
• Ekspresi aritmatika/numerik adalah ekspresi yang
operand dan juga hasilnya bertipe numerik. Misalkan
didefinisikan DEKLARASI sebagai berikut:
DEKLARASI
a, b, c, d : real
e, f, g, h : integer

Contoh ekspresi numerik misalnya:


c←a*b
adalah benar, tetapi pengisian nilai
e←f*h

Tingkatan operator aritmatika adalah (dari tertinggi ke


terendah):
i. /, div, mod
ii. *
iii. +, −

S1 Teknik Informatika-Unijoyo 8
• Contoh-contoh ekspresi yang sudah
dikemukakan merupakan ekspresi biner, yaitu
ekspresi yang operatornya membutuhkan dua
buah operand (sehingga operatornya disebut
juga operator biner). Di samping ekspresi
biner, terdapat juga ekspresi uner, yaitu
ekspresi dengan satu buah operand, misalnya
-a
-a*(b+c)
(−a adalah ekspresi uner). Operator “−”, selain
merupakan operator biner, juga adalah satu-satunya
operator uner dari seluruh operator aritmatika.

S1 Teknik Informatika-Unijoyo 9
Macam-macam notasi:
• Notasi infix  notasi dengan susunan:
operand1 operator operand2
Contoh:
7 * 4
a+b/c*d-e*f

• Notasi prefix  notasi dengan susunan:


operator operand1 operand2
Contoh:
*74
*+a/bc-d*ef

• Notasi postfix (suffix atau polish)  notasi


dengan susunan
operand1 operand2 operator
Contoh:
68*
abc/+def*-*

S1 Teknik Informatika-Unijoyo 10
Ekspresi Relasional
• Ekspresi relasional adalah ekspresi dengan operator <, ≤, >,
≥, =, dan ≠, not, and, or, dan xor. Hasil evaluasi ekspresinya
adalah nilai bertipe boolean (true atau false), sehingga
ekspresi relasional kadang-kadang disebut juga ekspresi
boolean.
• Misalkan didefinisikan DEKLARASI nama dan tipenya
sebagai berikut: DEKLARASI
ada, ketemu, besar : boolean
x, y : integer

Misalkan pula ketemu telah bernilai false, ada


bernilai true, x bernilai 8 dan y bernilai a. Maka:
not ada ( hasil : false )
ada or ketemu ( hasil : true )
ada and true ( hasil : true )
x<5 ( hasil : false )
ada or (x = y) ( hasil : true )

S1 Teknik Informatika-Unijoyo 11
Menuliskan Nilai
ke Piranti Keluaran
• Nilai yang disimpan oleh write(nama1, nama2, ..., namaN)
memori dapat ditampilkan ke write(tetapan)
piranti keluaran (misalnya write(nama, tetapan, ekspresi)
write(ekspresi)
monitor). Instruksi penulisan
nilai dilakukan dengan notasi
write
• Dengan catatan bahwa
nama1, nama2, ..., namaN
dapat berupa nama peubah
atau nama tetapan. Dengan
instruksi penulisan ini, nilai
yang disimpan di dalam
memori
dituliskan/dicetakkan ke
piranti keluaran.
S1 Teknik Informatika-Unijoyo 12
Urutan
Algoritma merupakan urutan
(sequence) satu atau lebih
instruksi yang berarti bahwa:
– Tiap instruksi dikerjakan satu per satu
– Tiap instruksi dilaksanakan tepat
sekali, tidak ada instruksi yang diulang
– Urutan instruksi yang dilaksanakan
pemroses sama dengan urutan
instruksi sebagaimana yang tertulis di
dalam teks algoritmanya
– Akhir dari instruksi terakhir
merupakan akhir algoritma

S1 Teknik Informatika-Unijoyo 13
Urutan Instruksi Tidak Berpengaruh
Terhadap Hasil Keluaran
• Urutan instruksi di dalam algoritma adalah penting.
Urutan instruksi menunjukkan urutan logika
penyelesaian masalah. Bergantung pada
masalahnya, urutan instruksi yang berbeda
mungkin tidak ada pengaruhnya terhadap
penyelesaian persoalan, tetapi mungkin juga
menghasilkan keluaran yang berbeda pula. Artinya
dalam suatu permasalahan boleh jadi jika urutan
instruksi diubah, maka tidak akan menghasilkan
keluaran yang berbeda.
• Contoh kasus 1 : Urutan instruksi tidak
berpengaruh terhadap solusi persoalan
Dibaca dua buah nilai integer dari piranti masukan, A dan B.
Hitung jumlah keduanya dan hasil kali keduanya, kemudian
cetak jumlah dan cetak hasil kali itu ke piranti keluaran.

S1 Teknik Informatika-Unijoyo 14
Algoritma URUTAN_1 Algoritma URUTAN_2
{ Contoh algoritma yang menghasilkan { Contoh algoritma yang menghasilkan
keluaran yang sama jika urutan keluaran yang sama jika urutan
instruksi diubah. } instruksi diubah. }
DEKLARASI DEKLARASI
A, B, C, D : integer A, B, C, D : integer
DESKRIPSI : DESKRIPSI :
read(A,B) read(A,B)
C←A+B D←A*B
D←A*B C←A+B
write(C,D) write(C,D)

MULAI MULAI

Baca A, B Baca A, B

C =A +B C =A * B

D =A * B D =A + B

Cetak C Cetak C

Cetak D Cetak D

SELESAI S1 Teknik Informatika-Unijoyo SELESAI 15


Urutan Instruksi Berpengaruh
Terhadap Hasil Keluaran
• Dalam contoh kasus sebelumnya, urutan instruksi tidak
berpengaruh terhadap hasil keluaran. Akan tetapi dalam
bentuk permasalahan yang lain, jika urutan instrusi diubah,
maka akan menghasilkan keluaran yang berbeda dari hasil
keluaran yang menggunakan urutan instruksi yang pertama.

• Contoh kasus 2 : Urutan instruksi berpengaruh terhadap


solusi persoalan.
Diketahui dua buah nilai integer, masing-masing disimpan di dalam
dua buah peubah, A dan B. Bagaimana cara mempertukarkan nilai A
dan B? Misalnya, sebelum pertukaran nilai A=3 nilai B=5, maka
setelah pertukaran, nilai A=5 dan nilai B=3.
Kalau algoritmanya dituliskan, maka bentuknya adalah seperti ini :
B←A
A←B
maka hasilnya A=3 dan B=3.
Jadi algoritma pertukarannya salah. Dalam mempertukarkan nilai
dua buah peubah, perlu digunakan peubah bantu, misalnya C.
C←A { simpan nilai A di tempat sementara, C}
A←B{ sekarang A dapat diisi dengan nilai B }
B←C { isi B dengan nilai A semula yang tadi disimpan di C }

S1 Teknik Informatika-Unijoyo 16
Pada pertukaran nilai A dan B, diandaikan nilai A dan B dibaca
terlebih dahulu dari piranti masukan (atau diisi dengan cara
pengisian langsung, atau hasil dari suatu ekspresi lain):
MULAI
Algoritma TUKAR_1
{ Mempertukarkan nilai A dan B. Nilai A dan B
dibaca dari piranti masukan. Nilai A dan B Baca A, B
dicetak ke piranti keluaran, baik sebelum
pertukaran maupun sesudah pertukaran.
ALGORITMA YANG BENAR! } Cetak A,B
DEKLARASI (sebelum pertukaran)
A : integer { nilai pertama }
B : integer { nilai kedua } C =A
C : integer { peubah bantu }
DESKRIPSI :
read(A,B) { membaca nilai A dan B } A =B
write(A,B) { mencetak nilai A dan B sebelum
pertukaran }
C←A { simpan nilai A di tempat sementara, C } B =C
A←B { sekarang A dapat diisi dengan nilai B }
B←C { isi B dengan nilai A semula yang tadi Cetak A,B
disimpan di C } (setelah pertukaran)
write(A,B) { mencetak nilai A dan B setelah
pertukaran }
SELESAI

S1 Teknik Informatika-Unijoyo 17
Proses pertukaran nilai akan salah jika tidak benar dalam
menuliskan urutan instruksi, misalnya urutan
C←A { simpan nilai A di tempat sementara, C }
A←B { sekarang A dapat diisi dengan nilai B }
B←C { isi B dengan nilai A semula yang tadi disimpan di C }

diubah urutannya sebagai berikut :


C←A { simpan nilai A di tempat sementara, C }
B←C { isi B dengan nilai A semula yang tadi disimpan di C}
A←B { sekarang A dapat diisi dengan nilai B }

maka urutan yang terakhir ini sama saja dengan urutan:


B←A
A←B

S1 Teknik Informatika-Unijoyo 18
Summary
• Nilai dapat dimanipulasi dengan cara mengisikannya ke
peubah lain yang bertipe sama, dipakai untuk perhitungan
(ekspresi) atau dituliskan/dicetak ke piranti keluaran
• Bila hasil perhitungan disimpan dalam nama peubah, maka
nama peubah tersebut haruslah bertipe sama dengan tipe
hasil
• Umumnya bahasa pemrograman mengevaluasi ekspresi
dalam notasi infix, namun ada beberapa bahasa
pemrograman tertentu yang dapat menghitung ekspresi
dalam notasi postfix dan prefix.
• Urutan instruksi dapat tidak berpengaruh terhadap hasil
keluaran, akan tetapi dalam bentuk permasalahan yang
lain, urutan dapat berpengaruh terhadap hasil keluaran

S1 Teknik Informatika-Unijoyo 19
Daftar Pustaka
• Jogiyanto HM [1989]. Turbo Pascal, Andi
Offset, Yogyakarta.
• Noor Ifada [2005]. Diktat Matakuliah
Algoritma Pemrograman, Hibah Kompetisi
A1, Jurusan Teknik Informatika, Universitas
Trunojoyo.
• Rinaldi Munir [2003]. Algoritma dan
Pemrograman dengan Pascal dan C edisi
Kedua, Penerbit Informatika, Bandung.

S1 Teknik Informatika-Unijoyo 20

Anda mungkin juga menyukai