Pemrograman Kompetitif
  • Menu utama
    • Selamat Datang
  • Umum
    • Pengenalan Pemrograman
    • Pengenalan Pemrograman Kompetitif
    • Pengenalan Kontes
    • Sumber Belajar
    • Pengenalan C++
  • Pemrograman Dasar
    • Struktur Program
    • Variabel dan Tipe Data
    • Masukan dan Pengeluaran
    • Operator
    • Percabangan
    • Perulangan
      • While Loop
      • For Loop
        • Nested For Loop
        • Ranged-based for loop
      • Break dan Continue
    • Array
    • Pendalaman String
    • Fungsi
    • Rekursi
    • Analisis Kompleksitas
  • Struktur Data
    • Struktur Data Linear
      • Array Dinamis
      • Stack dan Queue
      • Struktur Set
      • Struktur Map
    • Struktur Data Non-Linear
      • Disjoint Set Union
      • Binary Heap
      • Hash Table
      • Segment Tree
  • Pencarian dan Pengurutan
    • Algoritma Pengurutan
      • Bubble Sort
      • Selection Sort
      • Insertion Sort
      • Counting Sort
      • Merge Sort
      • Bogosort
    • Algoritma Pencarian
      • Linear Search
      • Binary Search
  • Paradigma Penyelesaian Masalah
    • Complete Search
      • Complete Search Iteratif
      • Complete Search Rekursif
    • Divide and Conquer
    • Greedy
    • Dynamic Programming
  • Graf
    • Representasi Graf
      • Adjacency list
      • Adjacency matrix
      • Edge list
    • Penjelajahan Graf
      • DFS (Depth-first search)
      • BFS (Breadth-first search)
    • Tree
  • Matematika
  • Geometri
  • Teori Bilangan
  • Kombinatorika
  • Tentang
    • Tentang Website Ini
    • Tim Kami
Powered by GitBook
On this page
  • Kasus Uji
  • Daftar Soal
  1. Pemrograman Dasar
  2. Perulangan

While Loop

Penulis: Sayed, Benedict, Polikarpus

While Loop memiliki satu tujuan yakni ia akan mengeksekusi codenya apabila suatu kondisi belum terpenuhi, dan akan berhenti tepat ketika kondisi terpenuhi. While loop memiliki dua bagian yakni kondisi dan potongan code. Sebagai contoh, apabila kita ingin mengeluarkan bilangan dari 0 hingga 10, kita dapat menuliskan code sebagai berikut:

#include <iostream>
using namespace std;

int main(){
    int x = 0;
    while(x <= 10){
        cout << x;
        x++; 
    }
}

Program ini akan mengeluarkan 012345678910. Seperti nampak pada code, kondisi dituliskan di dalam tanda kurung dan potongan codenya di tulis di dalam dua buah kurung kurawal. Cara kerja program di atas sangat sederhana. Pertama-tama kita ingin melihat bahwa pada awalnya nilai x ≤\le≤ 10, karena nilainya tidak menyalahi kondisi maka perulangan akan dijalankan. Apabila pada awalnya nilai x lebih besar dari 10 maka while loop akan diabaikan. Program akan terus mengulang perulangan hingga nilai x tidak lagi kurang sama dengan 10, nilai x akan terus ditambahkan atau diincrementkan pada potongon code while loop pada baris ke-8 tersebut.

Kasus Uji

Terkadang terdapat juga soal yang meminta Anda untuk menuliskan kasus uji (test case). Berikut adalah salah satu contoh dengan kasus uji:

Deskripsi

Pak Dengklek memberikan anda TTT buah pertanyaan. Setiap pertanyaan berbunyi, “Berapakah hasil dari N2N^2N2?” Jawablah pertanyaan-pertanyaan tersebut.

Format Masukan

Baris pertama berisi sebuah bilangan bulat TTT. TTT baris berikutnya masing-masing berisi sebuah bilangan bulat NNN.

Format Keluaran

TTT buah baris, masing-masing berisi bilangan bulat N2N^2N2

Contoh Masukan

3
2
5
6

Contoh Keluaran

4
25
36

Soal tersebut dapat diselesaikan dengan melakukan perulangan untuk setiap kasus ujinya. Lalu untuk setiap kasus ujinya, kita akan menyelesaikan permasalahannya. Berikut adalah salah satu metode melakukan perulangan untuk tiap kasus uji dengan while loop:

#include <iostream>
using namespace std;

int main(){
    int T; // Banyak kasus uji
    cin >> T;
    while (T--){
        // Selesaikan untuk setiap kasus uji
    }
}

Mengapa kita menggunakan while(T--)? Hal itu dapat dijelaskan dengan proses berikut.

  1. Mula-mula, nilai T adalah 3, while(T--) akan mengevaluasi nilai T (yang dimana T = 3) terlebih dahulu sebelum menurunkan nilai T sebanyak 1. Angka 3 dalam int memiliki arti True dalam boolean. Sehingga, operasi loop di dalamnya pun mulai berjalan. Nilai T = 2

  2. Kemudian, while(T--) akan mengevaluasi nilai 2 yang berarti True dalam boolean. Sehingga program di dalam loop pun berjalan. Nilai T diturunkan 1 menjadi 1.

  3. Pada loop ketiga, while(T--) akan mengevaluasi nilai 1 yang juga berarti True, baru kemudian menurunkan nilainya sebesar 1. Sehingga loop pun berjalan dan T diturunkan 1 menjadi 0.

  4. Terakhir ketika nilai T = 0, maka while(T--) akan menyebut 0 = False dikarenakan angka 0 berarti False dalam boolean. Oleh karena itu, program berhenti dan kita berhasil melakukan loop sebanyak 3 kali

Hal ini berbeda apabila kita menggunakan while(--T) karena while loop akan selalu mengevaluasi angka setelah nilai T diturunkan. Sehingga, alih-alih melakukan perulangan sebanyak T kali, loop akan melakukan perulangan sebanyak T-1 kali

Daftar Soal

Sumber
Nama Soal
Tingkat Kesulitan
Bahasa

mudah

Indonesia

mudah

Inggris

sedang

Indonesia

PreviousPerulanganNextFor Loop

Last updated 2 years ago

★

TLX TOKI
While + Pencacah
Codeforces
Bear and Big Brother
TLX TOKI
Periksa Palindrome