Algoritma dan Pemrograman IS1313

advertisement
Algoritma dan Pemrograman
Oleh:
Eddy Prasetyo N
Konten







Pengantar
Struktur Pengulangan
Notasi Pengulangan
Repeat..times
While ..do
Iterate…stop
Latihan
Pengantar[1]

Salah satu kemampuan komputer yang dapat
dimanfaatkan adalah mengulang suatu instruksi,
bahkan aksi, secara berulang-ulang dengan
performansi yang sama.

Berbeda dengan manusia yang cenderung
melakukan kesalahan jika melakukan hal yang
sama (karena lelah atau bosan), komputer akan
melakukan pengulangan dengan setia sesuai
dengan perintah yang diberikan.
Pengantar[2]



Pengulangan harus berhenti, ini yang harus dijamin oleh
pemrogram. Pada bab tentang "mengupas kentang" telah
diberikan suatu contoh di mana pengulangan mungkin
dilakukan terus menerus.
salah satu sifat algoritma yang harus dipenuhi adalah terjadi
dalam selang waktu terbatas maka pengulangan yang terus
menerus (looping) adalah algoritma yang salah.
Pengulangan yang terus menerus harus dapat dideteksi
pemrogram bahkan sebelum program dieksekusi oleh mesin,
berdasarkan ketidaksesuaian (invariansi) dari badan
pengulangan tersebut.
Struktur Pengulangan
Pengulangan terdiri dari dua bagian :
 kondisi yang mengakibatkan pengulangan
suatu saat berhenti, yang dinyatakan oleh
sebuah ekspresi logik baik secara eksplisit
maupun implisit
 badan pengulangan, yaitu aksi yang harus
diulang selama kondisi yang ditentukan
untuk pengulangan masih dipenuhi
Struktur Pengulangan
Disamping itu, struktur pengulangan
biasanya disertai dengan bagian :
 inisialisasi, yaitu aksi yang dilakukan
sebelum pengulangan dilakukan pertama
kali.
 terminasi, yaitu aksi yang dilakukan
setelah pengulangan selesai dilakukan
Notasi Pengulangan

Notasi pengulangan adalah salah satu notasi dasar dalam
penulisan algoritma selain analisa kasus. Notasi
pengulangan merupakan sebagian dari skema pengulangan
yang akan dibahas pada bab-bab berikutnya.
Ada lima macam notasi pengulangan:
 berdasarkan jumlah pengulangan (repeat times)
Implementasi Java bentuk looping for (..;..;..)
 berdasarkan kondisi berhenti (repeat until)
Implementasi Java bentuk looping do..while (kondisi)
 berdasarkan kondisi pengulangan (while do)
Implementasi Java bentuk looping while(...)
 berdasarkan dua aksi (iterate stop)
Implementasi Java bentuk looping do ...while(kondisi)
 berdasarkan pencacah (traversal)
Implementasi Java bentuk looping for (..;..;..)
Berdasarkan jumlah pengulangan


Aksi akan diulang sebanyak n kali, dan bukan
urusan pemrogram untuk mengelola
pengulangan tersebut.
Dengan hanya menyebutkan pengulangan
tersebut,pengulangan pasti akan berhenti
suatu saat.
Berdasarkan kondisi berhenti





Aksi akan dihentikan jika kondisi-berhenti dipenuhi (berharga true)
Aksi akan diulang jika kondisi-berhenti belum tercapai.
Badan pengulangan pada notasi ini (Aksi) minimal akan dilakukan satu
kali karena pada waktu eksekusi pengulangan yang pertama tidak ada
dilakukan test terhadap kondisi-berhenti.
Test terhadap kondisi berhenti dilakukan setelah Aksi dilaksanakan.
Pengulangan ini berpotensi untuk menimbulkan "kebocoran" (ada Aksi
yang dileksekusi tanpa pernah diperiksa kondisi pelaksanaannya), jika
ada kemungkinan bahwa seharusnya Aksi tidak pernah boleh dilakukan
untuk kasus yang tertentu.
Berdasarkan kondisi pengulangan




Aksi akan dilakukan selama kondisi-pengulangan masih dipenuhi
(berharga true).
Badan pengulangan (Aksi) pada notasi ini mungkin tidak akan pernah
dilakukan, karena sebelum aksi yang pertama dieksekusi dilakukan test
terhadap kondisi berhenti.
Test terhadap kondisi-pengulangan dilakukan setiap kali sebelum Aksi
dilaksanakan.
Pengulangan ini berpotensi untuk menimbulkan aksi "kosong" (tidak
pernah melakukan apa-apa karena pada test yang pertama, kondisipengulangan tidak dipenuhi (berharga false).
Berdasarkan dua aksi(iterate stop)
iterate
Aksi-1
stop (kondisi-berhenti)
Aksi-2
{ Kondisi berhenti dicapai di titik program ini}
Berdasarkan dua aksi(iterate stop)



Pengulangan ini seolah-olah adalah "gabungan“
pengulangan kedua dan ketiga
Mekanisme :
1. Secara otomatis Aksi-1 dieksekusi
2. Kemudian test terhadap kondisi berhenti
3. Tergantung kondisi berhenti :
 Aksi-2 akan diaktifkan dan kemudian Aksi-1 yang
berikutnya diulang, atau
 pengulangan dihentikan karena efek neto dari Aksi-1
menghasilkan kondisi berhenti
Pengulangan ini berguna untuk kasus-kasus dimana Aksi-2
merupakan hal yang harus dilakukan tergantung dari hasil
Aksi-1
Berdasarkan pencacah (traversal)
nama-pencacah traversal [range harga]
Aksi
{ Catatan : nama--pencacah harus suatu type yang
terdefinisi suksesor dan predesesornya, setelah
pelaksanaan pengulangan selesai, harga yang
tersimpan pada nama-pencacah tidak terdefinisi :
jika hendak dipakai, harus didefinisikan kembali }
Berdasarkan pencacah (traversal)



Pemrogram tidak perlu melakukan operasi terhadap
suksesor/predesesor karena setiap kali selesai melakukan
Aksi, otomatis mesin akan melakukan operasi mendapatkan
suksesor dari harga yang sedang berlaku saat itu
Pengulangan otomatis berhenti setelah penjelahan terhadap
nama-pencacah sudah mencakup semua harga yang
terdefinisi dalam range harga
Pengulangan ini biasanya dipakai jika harga yang tersimpan
dalam nama-pencacah ingin dimanfaatkan dalam Aksi,
namun tidak boleh DIUBAH karena akan mengacaukan
urutan eksekusi yang dilakukan.
Bagian Yang Perlu dipenuhi
dalam Looping
1.
2.
3.
4.
Inisialisasi (Tahap persiapan membuat
konsisi awal seblum melakukan perulangan,
misalnya isi variabel dgn nilai awal)
Proses (Tahap Proses terjadi di dalam
bagian perulangan yaitu berisi semua
proses yang perlu dilakukan scr berulang)
Iterasi ( Iterasi terjadi di dalam looping yakni
kondisi pertambahan agar looping terus
berjalan)
Terminasi ( konsisi berhenti dari looping)
Looping For..dalam JAVA
Format:
for(inisialisasi;kondisi_terminasi;var_itera
si) {
//aksi
}
Contoh:
for(i=1;i<=10;i++){
//Proses
}
Looping While dalam JAVA
Format:
//inisialisasi
While(kondisi_terminasi) {
//aksi
//kondisiIterasi
Terminasi}
Contoh:
i=1;
while(i<=10){
//Proses
i++;
}
Looping Do..While dalam
JAVA
Format:
//inisialisasi
do{
//aksi
//kondisiIterasi
} While(kondisi_terminasi)
Contoh:
i=1;
do{
//Proses
i++;
} while(i>10)
Penutup




Suatu bentuk pengulangan dapat
"diterjemahkan" menjadi bentuk yang lain
dengan notasi algoritmik yang tersedia
Instruksi pengulangan tidak dapat berdiri sendiri,
dan harus disertai dengan instruksi-instruksi lain
sebelum dan sesudah pengulangan
Persoalannya adalah memilih bentuk
pengulangan yang benar dan tepat
Tidak semua bahasa pemrograman yang ada
menyediakan semua bentuk pengulangan di atas
Contoh algoritma[1]
Program TULISBIL1
{Dibaca N >= 0, Menuliskan 1,2,3,… N berderet ke bawah, dengan
bentuk repeat..N times}
Kamus :
i : integer {bilangan yang akan ditulis}
Algoritma :
input (N)
i  1
repeat N times
output (i)
i  i + 1
Contoh algoritma[2]
Program TULISBIL2
{Dibaca N >= 0, Menuliskan 1,2,3,… N berderet ke bawah, dengan
bentuk repeat..until…}
Kamus :
i : integer {bilangan yang akan ditulis}
Algoritma :
input (N)
i  1
repeat
output (i)
i  i + 1
until (i>N)
Contoh algoritma[3]
Program TULISBIL3
{Dibaca N >= 0, Menuliskan 1,2,3,… N berderet ke bawah, dengan
bentuk while…do}
Kamus :
i : integer {bilangan yang akan ditulis}
Algoritma :
input (N)
i  1
while i <= N do
output (i)
i  i + 1
{ i > N}
Contoh algoritma[4]
Program TULISBIL4
{Dibaca N >= 0, Menuliskan 1,2,3,… N berderet ke bawah, dengan
bentuk traversal}
Kamus :
i : integer {bilangan yang akan ditulis}
Algoritma :
input (N)
i traversal [1..N]
output (i)
Contoh algoritma[5]
Program TULISBIL1
{Dibaca N >= 0, Menuliskan 1,2,3,… N berderet ke bawah, dengan
bentuk repeat..N times}
Kamus :
i : integer {bilangan yang akan ditulis}
Algoritma :
input (N)
i  1
repeat N times
output (i)
i  i + 1
Exercise :

In 2020, Mary Smith, a student of STT Telkom, has borrowed
$3,000 to help pay her college expenses. After setting up a
budget, $85 was the maximum monthly payment she could
afford to make on the loan. Develop a solution to calculate
and print the interest, the principal, and the balance on the
loan per month. Other information she would like to know is
the number of years and months it will take to pay the loan
back and the total interest she will pay during hat period. The
interest rate is 1% per month on the unpaid balance. Keep in
mind these formulas :
interest = balance * interest rate
payment = balance – interest
new balance = balance - payment
Terima kasih, selamat mengerjakan latihan 
Download