• Tidak ada hasil yang ditemukan

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N"

Copied!
26
0
0

Teks penuh

(1)

Algoritma dan Pemrograman

Oleh:

Eddy Prasetyo N

(2)

Konten

Pengantar

Struktur Pengulangan

Notasi Pengulangan

Repeat..times

While ..do

Iterate…stop

Latihan

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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)

(8)

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.

(9)

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.

(10)

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, kondisi-pengulangan tidak dipenuhi (berharga false).

(11)

Berdasarkan dua aksi(iterate stop)

iterate

Aksi-1

stop (kondisi-berhenti)

Aksi-2

(12)

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

(13)

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 }

(14)

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.

(15)

Bagian Yang Perlu dipenuhi

dalam Looping

1.

Inisialisasi (Tahap persiapan membuat

konsisi awal seblum melakukan perulangan,

misalnya isi variabel dgn nilai awal)

2.

Proses (Tahap Proses terjadi di dalam

bagian perulangan yaitu berisi semua

proses yang perlu dilakukan scr berulang)

3.

Iterasi ( Iterasi terjadi di dalam looping yakni

kondisi pertambahan agar looping terus

berjalan)

(16)

Looping For..dalam JAVA

Format:

for(inisialisasi;kondisi_terminasi;var_itera

si) {

//aksi

}

Contoh:

for(i=1;i<=10;i++){

//Proses

}

(17)

Looping While dalam JAVA

Format:

//inisialisasi While(kondisi_terminasi) { //aksi //kondisiIterasi Terminasi} Contoh: i=1; while(i<=10){ //Proses i++; }

(18)

Looping Do..While dalam

JAVA

Format:

//inisialisasi do{ //aksi //kondisiIterasi } While(kondisi_terminasi) Contoh: i=1; do{ //Proses i++; } while(i>10)

(19)

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

(20)

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

(21)

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)

(22)

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}

(23)

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)

(24)

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

(25)

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

(26)

Referensi

Dokumen terkait

Struktur pemilihan majemuk, yaitu terdapat sejumlah aksi yang berbeda yang akan dikerjakan tergantung pada nilai test kondisi. Biasanya test kondisi berupa nilai suatu

Praktikum ini memuat beberapa bab yang berisi tentang Struktur Program Pascal : Tipe Data, Variabel dan Konstanta; Penyeleksian Kondisi; Pengulangan ( Looping ); Prosedur dan

Dimana :  Inisialisasi : untuk memberikan nilai awal untuk variabel pencacah.  Perubahan : pengubahan nilai variabel pencacah untuk mencapai kondisi berhenti, dapat berupa

Praktikum ini memuat beberapa modul yang berisi tentang Struktur Program Pascal : Tipe Data, Variabel dan Konstanta; Penyeleksian Kondisi; Pengulangan ( Looping );

F.S.: Arsip sekuensial yang bernama NamaArsip siap untuk direkam pada posisi pertamanya

akan dilakukan satu kali karena pada waktu eksekusi pengulangan yang pertama tidak dilakukan test

Menganalisis kasus dari suatu masalah adalah menentukan kondisi boolean (bernilai true atau false) untuk setiap kasus dan menentukan aksi yang dilakukan jika kondisi tersebut berlaku

Late binding memungkinkan aksi yang dilakukan sebuah fungsi ditentukan pada saat.. program dieksekusi sesuai dengan kebutuhan