Thursday 1 September 2016

8. Loop/Pengulangan C# (Basic/Dasar)

Ada kalanya kita ingin melakukan pemanggilan sebuah kode secara berulang - ulang. Misalnya kita ingin mencari bilangan prima dalam rentang 0 - 100 maka kita akan melakukan pengecekan satu persatu angka dalam rentang 0 - 100, tiap kali pengecekan akan diulang terus menerus sampai angka terakhir yaitu 100. Oleh karena itu diperlukan adanya blok pengulangan dalam bahasa pemrograman untuk memudahkan operasi pengulangan.

Arsitektur pengulagan dapat diilustrasikan dengan gambar dibawah ini:


Dalam C# mengenal beberapa syntax blok pengulangan sebagai berikut:

1. While Loop



While loop akan melakukan pengulangan terus menerus jika kondisi yang diberikan bernilai benar. Kondisi akan di cek terlebih dahulu sebelum melakukan eksekusi blok kode.

Berikut adalah contoh program untuk while loop:

using System;
namespace Loops 
{
   class Program
   {
      static void Main(string[] args)
      {
         /* local variable definition */
         int a = 10;

         /* while loop execution */
         while (a < 20)
         {
            Console.WriteLine("value of a: {0}", a);
            a++;
         }
         Console.ReadLine();
      }
   }
} 

Hasil setelah program dijalankan dalah sebagai berikut:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

2. For Loop



For loop akan melakukan pengulangan dengan mengeksekusi urutan ekspresi, sampai kondisi valid.

for ( init; condition; increment )
{
   statement(s);
}

init : Adalah bagian inisialisasi, dan hanya akan dieksekusi sekali. init tidak wajib diisi selama ada semicolon (;) untuk penanda bahwa init bernilai kosong.

condition: Adalah bagian yang akan di cek kondisinya, jika kondisi masih bernilai benar maka akan dilakukan pengulangan sampai kondisi bernilai salah dan lanjut ke kode setelah blok loop. Bagian ini sering desebut dengan body of loop.

increment: Increment akan dieksekusi setelah body of loop dieksekusi, kita dapat memanipulasi variabel dalam statement increment untuk mengupdate dan mengkontrol loop. Bagian ini tidak wajib diisi selama ada semocolon (;) untuk menandai bahwa blok increment kosong;

Berikut adalah contoh program untuk for loop:

using System;
namespace Loops
{
   class Program
   {
      static void Main(string[] args)
      {
         /* for loop execution */
         for (int a = 10; a < 20; a = a + 1)
         {
            Console.WriteLine("value of a: {0}", a);
         }
         Console.ReadLine();
      }
   }
} 

Setelah progam dijalankan akan memberikan output sebagai berikut:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

3. Do While Loop



Pada dasarnya sama dengan while loop, yang membedakan adalah letak pengecekan kondisi pada do while loop ada di akhir block setelah body. Sehingga pada do while loop dapat dipastikan blok body akan dieksekusi minimal satu kali sebelum dilakukan pengecekan kondisi.

Berikut adalah contoh program untuk blok do while loop:

using System;
namespace Loops
{
   class Program
   {
      static void Main(string[] args)
      {
         /* local variable definition */
         int a = 10;
         
         /* do loop execution */
         do
         {
            Console.WriteLine("value of a: {0}", a);
            a = a + 1;
         } 
         while (a < 20);
         Console.ReadLine();
      }
   }
} 

Setelah program selesai dijalankan akan mengeluarkan hasil:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

4. Loop di dalam Loop (Nested Loop/Loop Bersarang)

Kita juga bisa membuat pengulangan dalam pengulangan dan bisanya digunakan untuk pengecekan array multidimensi atau matrix. Pengulangan bersarang bisa dikombinasikan antara for, while dan do while.

Berikut adalah contoh program untuk pengulangan bersarang mencari bilangan prima diantara 2 - 100:

using System;
namespace Loops
{
   class Program
   {
      static void Main(string[] args)
      {
         /* local variable definition */
         int i, j;
         for (i = 2; i < 100; i++)
         {
            for (j = 2; j <= (i / j); j++)
            if ((i % j) == 0) break; // if factor found, not prime
            if (j > (i / j))
            Console.WriteLine("{0} is prime", i);
         }
         Console.ReadLine();
      }
   }
} 

Hasil keluaran program adalah sebagai berikut:

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

Mengontrol Pengulangan dengan Break dan Continue

Ada kalanya kita menginginkan untuk melakukan kontrol pada saat melakukan pengulangan, misalnya saja kita ingin mencari sebuah kata dari kumpulan kata dengan pengulangan dan ketika kata itu ditemukan kita langsung keluar dari proses pengulangan untuk menghemat memory dan kinerja CPU.

Mengontrol dengan Break statement:

Break statement digunakan untuk menghentikan loop dan keluar dari body blok loop. Break statement selain dalam loop juga dapat ditemui di switch statement.

Berikut adalah contoh program untuk mensimulasikan break statement:

using System;
namespace Loops 
{
   class Program
   {
      static void Main(string[] args)
      {
         /* local variable definition */
         int a = 10;
         
         /* while loop execution */
         while (a < 20)
         {
            Console.WriteLine("value of a: {0}", a);
            a++;
            if (a > 15)
            {
               /* terminate the loop using break statement */
               break;
            }
         }
         Console.ReadLine();
      }
   }
} 

Hasil keluaran program adalah sebagai berikut:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

Mengontrol dengan Continue Statement:


Continue statement digunakan untuk melakukan skip kode pada body of loop dan langsung kembali mengeksekusi loop berikutnya.

Berikut adalah contoh program untuk mensimulasikan continue statement:

using System;
namespace Loops
{
   class Program
   {
      static void Main(string[] args)
      {
         /* local variable definition */
         int a = 10;
         
         /* do loop execution */
         do
         {
            if (a == 15)
            {
               /* skip the iteration */
               a = a + 1;
               continue;
            }
            Console.WriteLine("value of a: {0}", a);
            a++;
         } 
         while (a < 20);
         Console.ReadLine();
      }
   }
} 

Keluaran program setelah eksekusi adalah sebagai berikut:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19

Ok guys sampai ketemu di tutorial selanjutnya Encapsulation/Implementasi Hak Akses.

No comments:

Post a Comment