Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

STRUKTUR PERULANGAN

        Struktur perulangan atau biasa disebut dengan looping digunakan untuk mengatur proses yang dijalankan secara berulang-ulang. Sehingga programmer tidak perlu menuliskan script nya secara berulang kali. Struktur kontrol perulangan mengijinkan kita untuk mengeksekusi sebuah statement atau sekelompok statement dalam jumlah yang banyak.   Pada bab ini kita akan mengimplementasikan algoritma perulangan tersebut dalam kode bahasa Pascal.

    coba perhatikan contoh program berikut:

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

   Ketiga kode program di atas adalah contoh dari perulangan dengan kondisi diawal.

           Jika kita lihat sekilas, maka kita bisa menyimpulkan bahwa kode program pertama dan kedua memiliki struktur yang hampir sama, yang membedakan hanya yang pertama menggunakan pernyataan WHILE-DO, sedangkan yang kedua menggunakan pernyataan FOR-DO. Bagaimana dengan yang ketiga? Yang ketiga menunjukkan sebuah contoh penggunaan dari sebuah nested loops (perulangan bersarang/ perulangan di dalam perulangan).  

     struktur perulangan merupakan struktur yang tidak terpisahkan dengan algoritma dan pemrograman. Struktur perulangan memungkinkan program untuk melakukan serangkaian perintah secara berulang-ulang. Dan untuk memenuhi syarat bahwa algoritma harus finite (terbatas) maka dalam perulangan pasti ada titik pemberhentian. Jika ternyata dalam sebuah kasus perulangan tidak mencapai titik berhenti maka dapat dikatakan algoritma tersebut salah. 

    Titik pemberhentian dapat diberikan dengan beberapa cara, sebagai berikut. 

1. Pemberhentian dengan syarat Pemberhentian dengan syarat artinya ada sebuah kondisi yang akan menyebabkan perulangan berhenti. Pemberian syarat ini juga dapat dilakukan dengan dua cara, yaitu 

  a. Syarat diberikan di awal, di mana selama persayaratan dipenuhi maka dilakuakn serangkain                  perintah 

  b. Syarat diberikan di akhir, di mana proses akan diulang-ulang sampai syarat dipenuhi. Perbedaan          antara a dan b adalah ketika syarat diberikan di awal, maka selama persayaratan itu dipenuhi ,               maka perulangan dilakukan. 

      Jika kondisi sudah tidak dipenuhi maka berhenti. Sedangakan pada kasus syarat di akhir, dikerjakan serangkaian langkah. Setiap selesai rangkaian langkah diperiksa apakah kondisi sudah dicapai, jika belum maka proses diulangi lagi. Struktur yang sesuai dengan perulangan dengan kondisi di awal adalah struktur WHILE DO sedangkan untuk kondisi di akhir adalah dengan REPEAT UNTIL. 

2. Pemberhentian dengan pencacah Pemberhentian dengan pencacah, artinya dari awal sudah                 ditentukan bahwa perulangan akan dilakukan berapa kali. 

   Pencacah ini juga ada dua macam cara,yaitu:

a. Pencacah naik Pemberhentian dengan pencacah naik artinya untuk suatu pencacah,              misalkan i dari 1 sampai 100 lakukan rangkain langkah x. Artinya langkah tersebut akan diulangi    sebanyak seratus kali. Dalam pascal untuk kasus pencacah naik digunakan struktur FOR TO DO

b. Pencacah turun Pemberhentian dengan pencacah turun , artinya sebaliknya untuk suatu pencacah i dari 100 sampai 1 lakukan rangkaian langkah x, artinya langkah x akan diulangi sebanyak seratus kali. 

     Dalam pascal untuk kasus pencacah naik digunakan struktur FOR DOWNTO DO 128 . Perulangan dengan struktur WHILE DO dalam berbagai bahasa Pascal dikenal struktur WHILE DO, yang berarti selama memenuhi kriteri/kondisi tertentu, maka dilakukan serangkaian proses. Struktur ini dapat diterapkan pada

Perulangan dengan struktur WHILE DO Dalam berbagai bahasa Pascal dikenal struktur WHILE DO, yang berarti selama memenuhi kriteri/kondisi tertentu, maka dilakukan serangkaian proses. Struktur ini dapat diterapkan pada contoh di atas sebagai berikut :

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

perhatikan diagram flow berikut:

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta dengan hasilnya

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Perulangan dengan struktur FOR DO Perulangan dengan pencacah, yaitu menggunakan struktur FOR DO dimasukkan dalam pembahasan pada kegaiatan Belajar ini. Struktur ini digunakan untuk mengulang statement atau satu blok statement berulang kali sejumlah yang ditentukan. 

  Bentuk umum :

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

   Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta hasilnya.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Penulisan pernyataan yang akan diproses berulang kali tersebut dapat juga ditulis dalam bentuk blok pernyataan (diawali dengan BEGIN dan diakhiri dengan END), walaupun hanya berisi sebuah statement saja, sebagai berikut :

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Dalam menyelesaiakan suatu permasalahan kita bisa menggunakan salah satu bentuk perulangan, apakah While Do ataupun For Do. Manakah yang lebih baik? Keduanya mempunyakelebihan dan kekurangan sendiri-sendiri.
 Ada permasalahan yang dapat diubah dalam dua bentuk eprulangan tapi ada yang lebih mudah menggunakan bentuk For Do, tapi ada juga yang hanya bisa digunakan bentuk While Do.  Perhatikan dua contoh pertama pada bagian mengamati.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

 Kedua program di atas mempunyai keluaran yang sama yaitu mencetak ‘Pascal’ sebanyak 5 kali, yaitu untuk i=1 sampai 5. Dalam While Do,
- pertama i diberi nilai 1,
- Periksa apakah i <= 5? Iya maka tuliskan ‘Pascal’ kemudian nilai i ditambah 1 menjadi
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=3 
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=4 
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=5
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=6 
- Periksa apakah i<=5?Tidak, maka STOP
Di sini i berfungsi sebagai iterator dan 5 sebagai nilai sentinel Contoh berikut kode program dengan dua struktur berbeda untuk masalah yang sama. Contoh 3.

Buatlah program untuk mementukan suku ke-n dari barisan berikut.


                                     2,7,12,17,22, ....  Jawab:

Barisan di atas adalah barisan aritmatika di mana selisih tiap suku berturutan adalah 5. 


Dengan struktur For Do.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


Berikut ini programnya dengan struktur WHILE DO.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


 Nested Loops (perulangan bersarang) Dalam beberapa permasalahan sering dijumpai perulangan di dalam perulangan. Bisa menggunakan berbagai struktur WHILE DO atau FOR DO atau kombinasi dari struktur perulangan yang berbeda-beda.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Sedangkan bentuk umum untuk perulangan bersarang WHILE DO adalah sebagai berikut :

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta dengan hasilnya.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Dalam program di atas diulangai dari i=1 sampai 5. i=1, 

ulangi dari j=1 sampai 1 tuliskan ‘*’, kemudian ganti baris (writeln) 

i=2, ulangi dari j=1 sampai 2 tuliskan ‘*’ sehingga ada dua ‘*’ , kemudian ganti baris (writeln) 

i=3, ulangi dari j=1 sampai 3 tuliskan ‘*’ sehingga ada tiga ‘*’ , kemudian ganti baris (writeln) 

i=4, ulangi dari j=1 sampai 4 tuliskan ‘*’ sehingga ada empat ‘*’ , kemudian ganti baris (writeln) 

i=5, ulangi dari j=1 sampai 5 tuliskan ‘*’ sehingga ada lima ‘*’ , kemudian ganti baris (writeln) 

2 PERULANGAN DENGAN KONDISI DI AKHIR 

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Kedua contoh di atas adalah contoh kode program dari struktur kontrol yang akan dibahas selanjutnya.

   Perulangan dapat dilakukan dengan menyatakan kondisi di akhir. Berbeda dengan kondisi di awal, di mana selama syarat (kondisi) dipenuhi maka perintah dijalankan, pada kondisi di akhir, perintah dijalankan sampai memenuhi kondisi yang diinginkan. Struktur yang digunakan adalah struktur Repeat Until.

REPEAT UNTIL 

.Digunakan untuk mengulang (repeat) statement atau blok statement sampai (until) kondisi yang diseleksi di Until tidak terpenuhi. Bentuk Umum : 

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Coba perhatikan flow diagram berikut ini :


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta dengan hasilnya. 

Contoh 1.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

  Program di atas diawali dengan nilai awal digit=1, kemudian dilakukan perintah 

    writeln (digit); 

    digit := digit + 1 

    hingga nilai digit>5.

Contoh 2.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

 Bagaimana jika kondisi diganti dengan a=21? Smaapi kapanpun syarat ini tidak akan dipenuhi karena nilai dari a pasti genap, sedangkan 21 ganjil. Dengan demikian terjadi perulangan terus menerus.

  Lalu,kapan kita akan menggunakan Perulangan dengan kondisi di awal, dalam hal ini adalah WHILE DO dengan Perulangan dengan kondisi di akhir yaitu REPEAT UNTIL, adalah Perbedaan antara struktur REPEAT-UNTIL dengan WHILE-DO adalah sebagai berikut : 

   1) Paling sedikit statement-statement di dalam perulangan REPEAT-UNTIL diproses sekali, karena seleksi kondisi ada pada statement Until yang terletak dibawah. Sedang pada struktur WHILE-DO paling sedikit dikerjakan nol kali, karena seleksi kondisi ada pada statement While

yang terletak diatas, sehingga kalau kondisi sudah tidak terpenuhi, maka tidak akan masuk ke dalam lingkungan perulangan. 

   2) Pada REPEAT-UNTIL dapat tidak dipergunakan blok statement (tidak diperlukan Begin dan End untuk menunjukkan batas perulangannya), karena batas perulangannya sudah ditunjukkan oleh Repeat sampai dengan Until (Repeat dan Until sebagai pengganti Begin dan End).

PERULANGAN DENGAN KONDISI DIINPUTKAN USER  

Perhatikan Program berikut.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Program ini diambil dari semester yang lalu mengenai algoritma perulangan dengan kondisi dari user.   Aplikasi pemroograman dalam kehidupan nyata, khususnya yang terkait dengan struktur perulangan, memerlukan syarat yang diinputkan oleh pengguna. Kondisi yang diinputkan dari user bisa diperoleh sebelum perulangan atau di dalam perulangan itu sendiri. Contoh di atas adalah kondisi dimasukkan oleh user di dalam perulangan itu sendiri.




PERULANGAN DENGAN PERNYATAAN BREAK & CONTINUE



Coba perhatikan contoh kode program berikut:

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Kedua Kode program diatas adalah contoh penggunaan struktur kontrol yang akan kita behas berikut ini.

Perbedaan dari kedua kode program di atas adalah pada penggunaan pernyataan BREAK dan CONTINUE.

Walaupun pada dasarnya hasil/output nya sama, tetapi pada penggunaan time execution (waktu yang dibutuhkan untuk eksekusi) lebih cepat dibandingkan dengan yang tidak menggunakan kedua pernyataan tersebut. Di dalam pascal sendiri kedua pernyataan tersebut di sampaikan dalam bentuk sebagai berikut

1) BREAK Pernyataan BREAK di dalam Pascal memiliki 2 buah kegunaan, yaitu



  A. Pernyataan break yang ditemukan di dalam sebuah perulangan, otomatis akan menghentikan kontrol perulangan tersebut dan kontrol program selanjutnya akan dilanjutkan pada pernyataan setelah perulangan

B. Pernyataan break juga dapat digunakan untuk menghentikan pernyataan case of yang sudah dibahas pada bab sebelumnya                                   Bentuk umum:                                  If (kondisi)                                   Break;

 Coba perhatikan flow diagram berikut, yaitu penggunaan break pada struktur WHILE DO.


Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta hasilnya berikut.

CONTOH 1.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Perulangan di atas akan dihentikan ketika a>15 sehingga yang ditampilkan

2) CONTINUE


   Pernyataan continue di dalam Pascal bekerja seperti halnya pernyataan break. Break digunakan untuk menghentikan secara paksa sebuah proses, tetapi continue secara paksa akan melanjutkan perulangan selanjutnya, dan mengabaikan kode-kode diantara keduanya.

Bentuk umum:
                           Continue;

Coba perhatikan flow diagram berikut, yaitu penggunaan continue pada struktur repeat until.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Untuk lebih jelasnya, perhatikan contoh kode program berikut, beserta hasilnya

CONTOH 2.

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan

Guna memenuhi syarat bahwa algoritma harus finite terbatas maka dalam perulangan memerlukan