Senin, 05 Oktober 2015

 1. Algoritma Perulangan
Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma sebanyak tiga kali. Maka algoritmanya dapat ditulis
1. Mulai
2. Tulis ‘Algoritma’
3. Tulis ‘Algoritma’
4. Tulis ‘Algoritma’
5. Selesai
 Sehingga diperoleh keluaran
Algoritma Algoritma Algoritma
 Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka algoritmanya dapat dituliskan
1. Mulai
2. Masukkan bilangan X
3. Set nilai Y=1
4. Kalikan X dengan Y, simpan sebagai Y
5. Kalikan X dengan Y, simpan sebagai Y
6. Kalikan X dengan Y, simpan sebagai Y
7. Tulis (Y)
8. Selesai
Atau dalam algoritma standar ditulis
Deskripsi Read(X) Y1
YX*Y
YX*Y YX*Y Write(Y)
Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data
Perintah X Y Ouput
Read(X)
Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi sangat tidak efisien dalam penulisannya. Bayangkan kalau pengulangannya dilakukan sebanyak
1000 kali, maka kita harus menulisnya sebanyak seribu kali pula. Tentunya akan sangat merepotkan. Untuk itu kita perlu mengenal satu lagi algoritma dasar yaitu algoritma pengulangan. Dengan algoritma ini kita cukup menuliskan perintahnya sekali untuk pengulangan berapapun banyaknya.
Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma untuk pengulangan :
1. for-do
2. while-do
3. repeat-until
 yaitu :
Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama
– Kondisi pengulangan : Setiap aksi atau kumpulan aksi dikerjakan jika memenuhi kondisi tertentu. Selama kondisi terpenuhi aksi akan terus dikerjakan
– Badan pengulangan : bagian aksi yang diulang
– Nilai awal atau inisialisasi : Pemberian nilai satu atau beberapa variabel sebelum pengulangan dilakukan.
2. Pengulangan For-Do
Ada 2 macam pengulangan for-do, yaitu for-do menaik dan for-do menurun. Berikut ini adalah bentuk umumnya.
For-do menaik
For varnilai_awal to nilai_akhir do pernyataan
Flowchart for-do menaik

pernyataan
 For-do menurun
For variabelnilai_awal downto nilai_akhir doPernyataan
Flowchart for-do menurun
Var = ni…nf
 pernyataan
 Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal) dan nf (nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan nilai_awal, kemudian bertambah (berkurang) sebanyak satu, kemudian berhenti setelah var lebih besar (lebih kecil) nilai_akhir.
 Karakteristik pengulangan for-do
– Aksi mula-mula dilakukan saat var=nilai_awal dan terakhir saat var=nilai_akhir.
– Var, nilai_awal dan nilai_akhir bertipe bilangan bulat (integer)
– Setiap selesai satu kali pengulangan var berubah +1 (for-do menaik) atau –1 (for-do menurun).
– Pengulangan paling sedikit dilakukan sekali, banyaknya pengulangan adalah selisih nilai_awal
dan nilai_akhir ditambah 1
Contoh
for i1 to 3 do
Write(‘Halo’)
var  3…1
 Write (‘Halo’)
 Pada perintah di atas, mula-mula i diberi nilai 1. Kemudian perintah write(‘Halo’) dikerjakan. Setelah itu i bertambah satu sehingga menjadi 2, dilanjutkan dengan perintah write(‘Halo’). Proses yang sama diulang lagi hingga i bernilai tiga, perintah write(’Halo’) dikerjakan. Setelah itu proses pengulangan berhenti di situ.
Dengan demikian outputnya dapat kita nyatakan seperti berikut :
Halo Halo Halo
Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.
for i3 downto 1 do
Write(‘Halo’)
var  3…1
Write (‘Halo’)
 Perbedaannya, pada for-do menaik i berubah dari 1 sebanyak +1 dan berhenti setelah lebih dari 3, sedangkan pada for-do menurun, i berubah dari 3 sebanyak –1 hingga akhirnya berhenti saat i kurang dari 1. Coba tentukan bentuk dari algoritma di atas.
3. Perulangan While-Do
Secara umum algoritma while adalah :
while <kondisi> do begin
 end
pernyataan
 sedangkan bentuk flowchartnya
t <kondisi>?
y
loop
Aksi
Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan kondisi dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan jika kondisinya atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi bernilai salah maka proses akan ‘melompat’ atau mengerjakan aksi yang berada di luar loop.
Contoh soal.
Buat algoritma menampilkan deret 2, 4, 6, …, N. N adalah masukan berupa bilangan genap.
Algoritma deret
Deklarasi
N,x : integer
Deskripsi read(N)
x2
while x<=N do
Write(x)
xx+2
begin
 read
(N)
x<–2
 t
x<=N
y
write (x)
 x<–x+2
 End
 Mula-mula inputkan nilai N, kemudian x diberi nilai 2 (proses inisialisasi). Setelah itu x dibandingkan dengan N, jika pernyataan (x<=N) bernilai benar maka x ditampilkan, lalu x ditambah 2 dan menghasilkan x baru. Setelah itu arus data kembali ke atas untuk menguji apakah pernyataan x<=N bernilai benar. Jika iya, maka proses yang sama dengan sebelumnya dilakukan kembali. Demikian seterusnya hingga pernyataan x<=N bernilai salah.
Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut.
 erintah Kondisi x N Output
Read(N) 8
x2 2
Blok pengulangan
 x<=N Write(x) /
output xx+2
true 2 4
true 4 6
true 6 8
true 8 10
false
Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8
4. Perulangan Repeat-Until
Secara umum algoritma repeat-until adalah
repeat aksi
until <kondisi>
sedangkan bentuk flowchartnya
 Aksi
loop
t
<kondisi>
y
 Secara umum teks dan flowchart di atas berarti bahwa aksi tidak dikerjakan lagi jika kondisi bernilai benar.
Algoritma while-do dengan repeat-until sebenarnya hampir sama, perbedaannya hanya terletak pada penempatan kondisinya. Pada while-do pengecekan kondisi diletakkan di awal loop, sedangkan pada repeat-until pengecekan kondisi dilakukan di akhir loop. Itu sebabnya pada algoritma while-do aksi bisa jadi tidak dilakukan sama sekali jika sejak awal kondisinya sudah bernilai salah. Sedangkan pada pada repeat-until aksi sekurang- kurangnya dilakukan sebanyak satu kali. (Perhatikan flowchar

Pengertian Algoritma Percabangan
Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selaludilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataanatau perintah hanya bisa dilakukan bilamemenuhi suatu kondisi atau persyaratantertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi atau jugapercabangan.Contoh. Misalnya kita ingin menentukan apakah suatu bilangan merupakanbilangan genap atau ganjil. Algoritmanya dapat kita jabarkan.
1.Mulai
2.Masukkan satu bilangan (X)
3.jika X habis dibagi dua maka lanjut ke
4.Jika tidaklanjut ke 54.tulis ‘X bilangan genap’. Lanjut ke 6.
5.tulis ‘X bilangan ganjil’
6.Selesai
Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelahperintah ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4 yang dikerjakan, kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya jika Xtidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak dikerjakan) dan kemudian berakhir pada perintah ke-6.
2.Ekspresi Boolean
Ada dua komponen utama dalam ekspresi percabangan yaitu kondisi dan pernyataan. Kondisi adalah syarat dilakukannya sebuah (atau sekelompok) pernyataan, sedangkan pernyataan dalam konteks iniadalah perintah yang berkaitan dengan suatu kondisi. Contoh umum pernyataan kondisi-pernyataan :
Algoritma dan Pemrograman
Algoritma dan Pemrograman
Sebagaimana contoh sebelumnya dapat dilihat bahwa adakalanya suatuperintah dilakukan jika kondisi yang mempersyaratkannya telah jelas nilai benarsalahnya. Dalam hal pemrograman kondisi tersebut harus bisa dinyatakan dalam suatuekspresi boolean. Ekspresi boolean adalah ekspresi yang hasil ekspresinya bernilaiboolean (true atau false).EkspresiBoolean dapat diperoleh dengan menggunakan dua jenis operasi :
1.Operasi Boolean.
Operasi boolean adalah operasi yang menggunakan operator booleanseperti
and, or, not, xor.
Contoh operasi relasional
1. z1 ß x and y
2. z2 ß a=2 or b=10
3. z3 ß not(x)
4. z4 ß p+2=4 xor q=0
2.Operasi Relasional (Operasi Perbandingan)
Operasi relasional adalah operasi yang membandingkan dua buahoperan dengan menggunakan operator perbandingan (ingat, operatorperbandingan : =, <>, <,≤, >, ≥).
Contoh operasi relasional
1. z1 ß x > y
2. z2 ß a <> 10
3. z3 ß x + y = 17
4. z4 ß p div q < r
5. z5 ß p mod 2 = 0
Hasil dari operasi perbandingan memiliki dua kemungkinan, yaitu true (benar) atau false (salah). Oleh karena itu tipe hasil (z1, z2,z3, z4, z5) dari setiap operasi di atas adalah boolean.
3.Algoritma Teks dan Flowchart Percabangan
Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu:
Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat untuk melakukan satu atau satu blok (sekelompok) pernyataan. Bentuk umum algoritma teks standar percabangan dengan satu kondisi :
if <kondisi> then
pernyataan
Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar daripercabangan (begin).
if A>B then
write (A)

Ekspresi di atas menunjukkan bahwa perintah menulis/menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar. Jika yang terjadi adalah sebaliknya, tidak ada pernyataan yang dilakukan atau proses langsung keluar dari percabangan (endif ).Secara flowchart ekspresi itudapat ditulis seperti berikut.
Perhatikan bahwa pada kotak belah ketupat memiliki dua cabangarus data, yang satu untuk kondisi bernilai benar (y, artinya ya), sedang yanglain untuk kondisi bernilai salah (t, artinya tidak).Jika kondisi bernilai benar(y) maka perintah yang dikerjakan adalah
write(A)
. Jika kondisi salah (t)maka arus data langsung menuju ke bawah tanpa mengerjakan pernyataan apapun.
Dua kondisi (if-then-else)
: artinya ada dua kondisi yang menjadi syaratuntuk dikerjakannya dua jenis pernyataan. Bentuk umum percabangandengan dua kondisi :
if <kondisi> then
pernyataan1
else
pernyataan2
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan.Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yangdikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi,pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah.Contoh algoritma percabangan dua kondisi :
if A>B then
write (A)
else
write (B)
Ekspresi di atas sedikit berbeda dengan sebelumnya. Perintah menulis/menampilkan A dikerjakan hanya jika kondisi A>B bernilai benar,sedangkan jika yang terjadi adalah sebaliknya maka pernyataan yangdilakukan adalah menulis B.Secara flowchart pernyataan di atas dapatditulis sebagai berikut.
Berikut ini adalah beberapa contoh lainnya.
a.If x > 0 then
ket ß bilangan positif’
b.if m = n
I ß m*n
write(i)
c.if bil>=0 then
ket ß (‘bilangan positif’)
else
ket ß (‘bilangan negatif’)
d.if m = n then
I ß m*n
J ß m-n
Else
I ß m/n
J ß m+n
write(i,j)
4.Percabangan Tersarang
Percabangan tersarang adalah percabangan di dalam percabangan. Banyak sekalibentuknya, namun salah satu contohnya adalah sebagai berikut.
If <kondisi1> then
if <kondisi2> then
Pernyataan1
Else
Pernyataan2
Else
If <kondisi3>
Pernyataan3
Else
Pernyataan4
Misalnya, buatlah algoritma untuk menentukan apakah suatu bilangan merupakan bilangan kelipatan 2 saja, atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau bukan kelipatan 2 dan 5. Bilangan yang dimaksud merupakan input algoritma.
Algoritma Kelipatan2 Kelipatan5
Deklarasi
Bil: integer
Ket: string
Deskripsi
read (bil)
if bil mod 2 = 0 then
if bil mod 5= 0then
Ket ß ‘ Kelipatan 2 dan Kelipatan 5’
Else
Ket ß ‘ Kelipatan 2 tapi Bukan Kelipatan 5’
Else
if bil mod 5 = 0 then
Ket ß ‘Bukan Kelipatan 2 tapi Kelipatan 5’
Else
Ket ß‘Bukan Kelipatan 2 atau 5’)
Write (Ket)
Di sini terlihat algoritmanya menjadi sedikit rumit. Kerumitan bertambahkarena kita harus membuat percabangan dalam percabangan (percabangantersarang). Selain itu penulisan
Ket ß ’Tidak cumlaude’ harus ditulis dua kali agartujuan algoritma dapat dicapai. Dengan demikian penggunaan operator logika dalamhal ini jelas menyederhanakan algoritma di atas.
6.Percabangan Tiga Kondisi Atau Lebih
Percabangan dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua bentuk percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita tuliskan sebagai berikut.
if. <kondisi1>
then
Pernyataan1
else if <kondisi2> then
Pernyataan2
else if <kondisi(n-1)> then
Pernyataan(n)
Else
Pernyataan(n)
Mula-mula <
kondisi1
> dicek nilai kebenarannya. Jika benar, maka dikerjakan
pernyataan1
. Jika salah, maka dicek nilai kebenaran <
kondisi2
>. Jika <
kondisi2
>benar,maka dikerjakan
pernyataan2
Jika tidak algoritma akan mengecek ke kondisi berikutnyadengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua kondisi bernilaisalah, maka pernyataan yang dikerjakan adalah Pernyataan (n+1). Bentuk flowchartnya dapat dilihat di bawah ini.
Pada algoritma di atas pernyataan1 akan dikerjakan jika <kondisi1> bernilai benar, jika tidak pemeriksan dilanjutkan ke <kondisi2>. Jika <kondisi2> bernilai benar maka
pernyataan2 dikerjakan. Jika tidak, pemeriksaan dilanjutkan pada kondisi-kondisi berikutnya. Pemeriksaan ini terus terhadap semua kondisi yang ada. Jika tidak ada kondisiyang benar maka pernyataan yang dikerjakan adalah pernyataan(n+1)
Nama : Deby Nawaf
Kelas :10 Multimedia 2
No : 08

Tidak ada komentar:

Posting Komentar