Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaanyang harus diulang berkali. Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang menang. Pada pembuatan program _omputer, kita juga kadang- kadang harus mengulang satu atau sekelompok perintah berkali-kali agar memperoleh hasil yang diinginkan.
Dengan menggunakan _omputer, eksekusi pengulangan mudah dilakukan. Hal ini karena salah satu kelebihan _omputer dibandingkan dengan manusia adalah kemampuannya untuk mengerjakan tugas atau suatu instruksi berulangkali tanpa merasa lelah, bosan, atau malas. Bandingkan dengan pengendara mobil balap, suatu ketika pasti dia merasa lelah dan bosan untuk berputar-putar mengendarai mobil balapnya. Struktur pengulangan terdiri dari dua bagian yaitu :
1. Kondisi pengulangan,
Yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang Pada struktur pengulangan, biasanya juga disertai
bagian inisialisasi dan bagian terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan.
Ada beberapa bentuk pengulangan yang dapat digunakan, masing- masing dengan syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat bergantung pada masalah yang akan _omputer_. Ada beberapa perulangan di dalam pemrograman dasar :
a.Pengulangan dengan For
Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan.
Flowchart umum untuk struktur For tampak pada Gambar 5.14.
Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkah-langkah adalah sebagai berikut :
a. Menetapkan nilai counter sama dengan awal.
b. Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika benar maka keluar dari proses pengulangan. Apabila kenaikan
bernilai _omputer, maka proses akan memeriksa apakah nilai counter lebih kecil daripada nilai akhir. Jika benar maka keluar dari proses pengulangan.
c. Mengeksekusi pernyataan yang ada di badan loop
d. Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang ditentukan pada argument increment. Apabila argument increment tidak ditetapkan maka secara default nilai counter akan dinaikkan 1.
e. Ulang kembali mulai langkah no 2.
b. Satu hal yang penting yang harus kita perhatikan adalah nilai counter selalu ditetapkan diawal dari pengulangan. Apabila kita mencoba merubah nilai akhir pada badan loop, maka tidak akan berdampak pada berapa banyak pengulangan akan dilakukan.
b.Pengulangan dengan While
Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan struktur yang didukung oleh _omput semua bahasa pemrograman namun dengan sintaks yang berbeda.
Flowchart umum untuk struktur For tampak pada Gambar 5.15
Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang. Flowchart umum untuk struktur While dapat dilihat pada Gambar Pada Gambar
tampak bahwa simbol preparasi untuk pengulangan seperti pada For tidak digunakan lagi. Namun kita menggunakan simbol decision untuk mengendalikan pengulangan. Selain kondisi, biasanya pada pengulangan While harus dilakukan inisialisasi variabel terlebih dahulu.
Pertemuan 12
Diagram Alir dan Struktur Data Algoritma Squential Search
Metode pencaharian berurutan merupakan metode pencaharian data yang paling mudah, secara garis besar metode ini bisa ditampilkan sebagian dari kumpulan data yang diketahui data yang akan kita cari, kita bandingkan satu persatu sampai data yang kita inginkan bertemu atau tidak ketemu dengan kumpulan data tersebut pada saat data yang kita cari. Juga sudah ketemu maka proses pencaharian langsung kita hentikan, tetapi data yang kita cari belum ketemu maka _omputer_ kita teruskan sampai seluruh data dibandingkan. Dalam kasus yang paling burung dengan vakton n elemen harus dilakukan pencaharian sebanyak n kali pencarian.
Contoh :
5 7 9 10 50 70 6 12 8 Data yang dicari adalah : 70 Terdapat pada element : 6 Algoritma program searah : Langkah :
a. Baca kumpulan data yang diketahui sebagai vektor A dengan n elemen
b. Baca data yang akan dicari, mis : 2 c. Tentukan i = 1
d. [proses mencari bandingan x dengan a (i)] jika x : a (i) data ketemu pergi ke langkah s
e. [ test 1]
f. jika i > n [data tidak ketemu] ke langkah s jika tidak, tentukan: i = E + i kembali kelangkah 3
g. Tampilkan pesan yang sesuai dan selesai Algoritma Gelembung (Buble Short)
Untuk menampilkan untuk menampilkan nilai paling kecil diletakkan diawal data. Algoritma diaplikasikan untuk mencari data yang paling kecil. Dalam suatu individu dan tidak mencari nilai data pengolahan dilakukan untuk n-1, x suatu exservasi untuk mencapatkan nilai terkecil.
Misalnya datanya : 23, 45, 12, 24, 56, 34, 27, 23, 16; Langkah-Langkah :
a. a (1) dengan a (2) 23 dengan 45 → Tetap b. a (1) dengan a (3) 12 dengan 12 → Tukar c. a (1) dengan a (4) 12 dengan 24 → Tetap d. a (1) dengan a (5) 12 dengan 56 → Tetap e. a (1) dengan a (6) 12 dengan 34 → Tetap f. a (1) dengan a (7) 12 dengan 27 → Tetap g. a (1) dengan a (8) 12 dengan 23 → Tetap h. a (1) dengan a (9) 12 dengan 16 → Tetap i. Hasil : 12, 23, 45, 24, 56, 34, 27, 23, 16 Shorting
Pertimbangan akan melakukan shorting. Hal-hal yang akan dipertimbangkan adalah : 1. Perlu tidaknya data disorting
2. Besarnya atau banyaknya data yang akan dishorting
3. Kemampuan atau kapasitas komputer atau penyimpanan datanya 4. Metode shorting
Tehnik-tehnik shorting.
Pada garis besarnya ada 3 tehnik sorting : 1. Insortion Sort (Sorting penyisipan)
Tehnik ini adalah dengan membandingkan elemen n ( n mulai dari 2 hingga elemen terakhir) dengan elemen-elemen sebelumnya. Contoh : 8, 3, 7, 4
8, 7, 8, 4 (awal) → 4 banding 8 → Tukar Hasil : 3, 4, 7, 8 → 4 banding 7 → Tukar Hasil : 3, 4, 7, 8 → 4 banding 3 → Tetap Hasil : 3, 4, 7, 8 (akhir)
2. Selection Sort (Sorting Pemilihan)
Tehnik ini adalah mencari elemen terkecil kemudian letakkan dan tukar dengan posisi ke n (n mulai dari 1 hingga elemen terakhir – n)
Contoh : 8, 3, 7, 4
Pada langkah pertama hasil sortirnya : 3, 8, 7, 4 (mulai dari elemen pertama, elemen terkecil = 3, letakkan dan tukar dengan elemen pertama)
Pada langkah kedua hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 2 elemen terkecil = 4, letakkan dan tukar dengan elemen ke 2
Pada langkah ke 3 hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 3 elemen terkecil = 7, letakkan dan tukar dengan elemen ke 3)
3. Exchange Sort (Shorting Penukaran)
Contoh sotir umumnya yang menggambarkan exchange sort adalah Bubble short. Algoritma dari tehnik ini adalah dengan melakukan proses perbandingan sebanyak n elemen dari n = 1 (selanjutnya dimulai = 1) bandingkan seluruh elemen dimulai dari elemen sebelah kanan ke n. Bila elemen tersebut lebih kecil dari, maka lakukan dari, maka lakukan penukaran tempat. Lakukan elemen mulai +1 seperti proses sebelumnya hingga nilai mulai +1 = n
Contoh : 8, 7, 6, 5, 4 Proses 1 :
- Bandingkan 8 (elemen pertama) dengan 7 (elemen kedua) hasilnya : 7, 8, 6, 5, 4
- Bandingkan 7 (elemen pertama) dengan 6 (elemen ketiga) hasilnay : 6, 8, 7, 5, 4
- Bandingkan 6 (elemen pertama) dengan 5 (elemen ketiga) hasilnay : 5, 8, 7, 6, 4
- Bandingkan 5 ( elemen pertama) dengan 4 (elemen keempat) hasilnya : 4, 8, 7, 6, 5 (urutan 1 telah diperoleh)
Pertemuan 13
a. MERGE SHORT
Shorter ini biasanya digunakan untuk jumlah data yang besar dengan membagi-bagi menjadi sub-sub bagian dimulai dari sedikit elemen hingga keseluruhan elemen tersebut menjadi data yang sudah diurut. Shorter ini digunakan bila kapasitas memory tidak sanggup untuk menampung seluruh data yang diakan disortir.
Soal : 78, 63, 50, 70, 60, 35, 12, 14, 18, 23, 50, 40, 51, 34, 30, 25, 45, 20 Penyelesaian : - 63, 78, 50, 70, 35, 60, 12, 14, 18, 227, 40, 50, 34, 51, 25, 30, 20, 45 - 50, 63, 70, 78, 12, 14, 35, 60, 18, 23, 40, 90, 25, 30, 34, 40, 51, 90, 20, 45 - 12, 14, 35, 50, 60, 63, 70, 78, 18, 23, 25, 30, 34, 40, 51, 90, 20, 45
- 12, 14, 18, 23, 25, 30, 34, 35, 40, 50, 51, 60, 63, 70, 78, 90, 20, 45
- 12, 14, 18, 20, 23, 25, 30, 34, 35, 40, 45, 50, 51, 60, 63, 70, 78, 90 (hasil akhir)
3. Loop Dengan Decision
Tiap loop memiliki pengontrol loop yaitu suatu keadaan dimana suatu loop harus selesai. Decision digunakan sebagai pengontrol loop untuk menyelesaikan perulangan prosesnya.
Bentuk umum : Parameter := awal;
10 if (parameter <= akhir) then blok loop
parameter := parameter + step; goto 10
endif c. Loop For
Loop ini agak _ompute, dimana antara nilai awal, nilai akhir dan step tertulis didalam satu statement.
Bentuk umum :
For indeks := awal to akhir do Blok loop
Endfor d.Loop While
Pada loop ini sebelum masuk kedalam blok loop, nilai awal harus didefenisikan diluar blok loop, yang kemudian akan dikomparasi dengan batas loop, jika proses komparasi bernilai true maka proses akan masuk kedalam blok loop.
Bentuk umum : Parameter := awal
While (parameter <= akhir) do Blok loop
Parameter := parameter + step Endwhile.
e. Loop Repeat
Pada loop repeat pengontrol loop ada pada akhir blok loop sehingga loop ini minimal sekali pasti dikerjakan dalam prosesnya. Pada loop repeat proses akan terus diulang selama komparasi bernilai false.
Bentuk umum : Parameter := awal Repeat
Blok loop
Parameter := parameter + step Until parameter > akhir
f. Nested Loop For
Yang dimaksud dengan loop tersarang adalah suatu loop yang berada di dalam loop, artinya proses suatu loop bergantung dengan proses loop lainnya. Bentuk standart dari loop ini tidak ada karena sangat fleksibelnya.
Bentuk umum :
For indeks1 := awal1 to akhir1 do Statement1
For indeks2 := awal2 to akhir 2 do Statement2
Endfor Endfor