# Looping

GO hanya mengenal `for` untuk melakukan suatu perulangan.&#x20;

Perulangan `for` memiliki 3 komponen yang dipisahkan dengan semicolons:

* the init statement: executed before the first iteration
* the condition expression: evaluated before every iteration
* the post statement: executed at the end of every iteration

Kondisi perulangan akan berhenti jika kondisi bernilai `false` . `for` pada Go juga tidak menggunakan tanda kurung `()` pada nilai kondisinya namun langsung menggunakan `{ }` .

![Penggunaan basic for](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3IzC4Fiyw1OXfaqSW%2FScreen%20Shot%202021-01-27%20at%2021.46.34.png?alt=media\&token=afdc7c18-d40c-4df5-99b0-117b9243421e)

![Output dari perulangan menggunakan for](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3J2lqyZbCOnaCcULl%2FScreen%20Shot%202021-01-27%20at%2021.46.49.png?alt=media\&token=cb9fd413-b377-4509-a445-38eb038a97e2)

### `FOR` Continued

Pada GO, init dan post statemen bersifat optional. Jadi kita bisa hanya menggunakan condition pada scope `for` :

![Tidak menggunakan init dan post statemen pada scope for](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3Jp5E5N06XNA5vuKh%2FScreen%20Shot%202021-01-27%20at%2021.50.14.png?alt=media\&token=05fcafe5-17db-4885-b673-c3c981990f5e)

![Output program dari penggunaan for continued](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3JuYPeGDsNufv19RA%2FScreen%20Shot%202021-01-27%20at%2021.50.29.png?alt=media\&token=c223f75d-1c30-447e-9c28-8b6aa89b2f34)

### While pada GO

Bukan berarti kita tidak bisa menggunakan `while` pada perulangan GO. Kita bisa menggunakan paradigma tersebut dengan masih menggunakan syntax `for` :

![While pada Go](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3L1xg0-0K0gEXuZpP%2FScreen%20Shot%202021-01-27%20at%2021.55.38.png?alt=media\&token=c58e32c3-70ac-48d2-abbc-a6373dc33042)

![Output program penggunaan while pada GO](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3L7OHMtj2d1864OXO%2FScreen%20Shot%202021-01-27%20at%2021.55.53.png?alt=media\&token=ee2fd402-d61d-47e3-849a-905b3f44aae6)

### FOR tanpa kondisi

Suatu `for` jika tidak ada kondisi akan terjadi infinite loop atau biasa juga disebut forever looping. Untuk mengatasi hal tersebut kita bisa menggunakan keyword `break`

![Menggunakan break statement pada forever looping](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3MVLvS4-cv-NEji2_%2FScreen%20Shot%202021-01-27%20at%2022.02.01.png?alt=media\&token=8eab97f4-fd27-49fc-91a5-bdceb0d91bc2)

![Output program penggunaan break statement pada forever looping](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MS3HkKJYn8Kdo6mG6vq%2F-MS3MaJpB6gJwB7ibYHJ%2FScreen%20Shot%202021-01-27%20at%2022.02.16.png?alt=media\&token=12dd1429-23a8-48d3-b0f4-d2f170baa2f0)
