Nilai dan Urutan

advertisement
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
1
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 (assignment):
Memasukkan sebuah nilai ke dalam nama peubah
langsung di dalam teks algoritma
Syaratnya, nilai yang diisikan harus bertipe sama dengan
tipe peubah
2. 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
S1 Teknik Informatika-Unijoyo
4
2
Pengisian nilai secara langsung (assignment)
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
5
Contoh Pengisian Nilai secara langsung
Nilai yang diberikan ke dalam peubah
dapat berupa konstanta:
Contoh :
A ← 5 { Nilai A sama dengan 5 }
Atau suatu peubah diisi dengan nilai dari
peubah lain:
Contoh :
A ← B { Nilai A sama dengan nilai B }
Atau suatu peubah diisi dengan nilai
evaluasi dari sebuah ekspresi:
Contoh :
A ← B + C { A berisi hasil evaluasi
ekspresi B + C }
peubah ← konstanta { nilai
konstanta diisikan ke
dalam peubah }
peubah1 ← peubah2 { nilai
konstanta diisikan ke
dalam peubah }
peubah ← ekspresi { hasil
perhitungan diisikan ke
dalam peubah }
S1 Teknik Informatika-Unijoyo
6
3
Dibaca dari piranti masukan
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
7
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
8
4
Ekspresi Aritmatika [1]
Ekspresi aritmatika/numerik adalah ekspresi yang operand dan
juga hasilnya bertipe numerik. Misal didefinisikan DEKLARASI
sebagai berikut:
DEKLARASI
a, b, c, d
e, f, g, h
: real
: integer
Contoh:
c ← a * b {benar}
e ← a * b {salah}
Tingkatan operator aritmatika (dari tertinggi ke terendah):
i. /, div, mod
ii. *
iii. +, −
S1 Teknik Informatika-Unijoyo
9
Ekspresi Aritmatika [2]
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 (ekspresi dengan satu buah operand), misal:
-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
10
5
Ekspresi Aritmatika [3]
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
11
Ekspresi Relasional
Ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not, and, or, dan xor
Hasil evaluasi ekspresinya: nilai bertipe boolean (true atau false),
sehingga ekspresi relasional kadang-kadang disebut juga ekspresi
boolean
Misal didefinisikan DEKLARASI nama dan tipenya sebagai berikut:
DEKLARASI
ada, ketemu, besar : boolean
x, y : integer
Contoh: 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
12
6
Menuliskan Nilai ke Piranti Keluaran
Nilai yang disimpan oleh memori
dapat ditampilkan ke piranti
keluaran (misalnya 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
write(nama1, nama2, ..., namaN)
write(tetapan)
write(nama, tetapan, ekspresi)
write(ekspresi)
S1 Teknik Informatika-Unijoyo
13
Urutan (Sequence)
Algoritma merupakan urutan
(sequence) satu atau lebih instruksi
yang berarti:
– 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
14
7
Urutan Instruksi Tidak Berpengaruh
Terhadap Hasil Keluaran
Contoh kasus 1 : Urutan instruksi tidak berpengaruh
terhadap solusi persoalan
Dibaca dua buah nilai integer dari piranti masukan, yaitu
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
Algoritma URUTAN_1
{ Contoh algoritma yang menghasilkan
keluaran yang sama jika urutan
instruksi diubah. }
DEKLARASI
A, B, C, D : integer
DESKRIPSI :
read(A,B)
C←A+B
D←A*B
write(C,D)
15
Algoritma URUTAN_2
{ Contoh algoritma yang
menghasilkan keluaran yang sama
jika urutan instruksi diubah. }
DEKLARASI
A, B, C, D : integer
DESKRIPSI :
read(A,B)
D←A*B
C←A+B
write(C,D)
S1 Teknik Informatika-Unijoyo
16
8
Urutan Instruksi Berpengaruh
Terhadap Hasil Keluaran [1]
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.
Solusi awal {algoritma yang salah}:
B←A
A←B
maka hasilnya A=3 dan B=3.
Solusi perbaikan: 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
17
Urutan Instruksi Berpengaruh
Terhadap Hasil Keluaran [2]
MULAI
Baca A, B
Cetak A,B
(sebelum pertukaran)
C=A
A=B
B=C
Cetak A,B
(setelah pertukaran)
Algoritma TUKAR_1
{ Mempertukarkan nilai A dan B. Nilai A dan B
dibaca dari piranti masukan. Nilai A dan B
dicetak ke piranti keluaran, baik sebelum
pertukaran
maupun
sesudah
pertukaran.
ALGORITMA YANG BENAR! }
DEKLARASI
A : integer { nilai pertama }
B : integer { nilai kedua }
C : integer { peubah bantu }
DESKRIPSI :
read(A,B) { membaca nilai A dan B }
write(A,B) { mencetak nilai A dan B sebelum
pertukaran }
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 }
write(A,B) { mencetak nilai A dan B setelah
pertukaran }
SELESAI
S1 Teknik Informatika-Unijoyo
18
9
Urutan Instruksi Berpengaruh
Terhadap Hasil Keluaran [3]
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 menjadi:
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
19
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
20
10
Daftar Pustaka
Jogiyanto HM [1989]. Turbo Pascal, Yogyakarta: Andi
Offset.
Noor Ifada [2005]. Diktat Matakuliah Algoritma
Pemrograman (Hibah Kompetisi A1), Bangkalan:
Jurusan Teknik Informatika, Universitas Trunojoyo.
Rinaldi Munir [2003]. Algoritma dan Pemrograman
dengan Pascal dan C edisi Kedua, Bandung: Informatika.
S1 Teknik Informatika-Unijoyo
21
11
Download