Perogeremmer Reps
📖 Panduan Referensi

Sintaks Dasar Pseudocode

Pelajari fondasi penulisan algoritma. Ingat: pseudocode itu flexible, yang penting logikanya jelas!

⚠️

Catatan Penting

Pseudocode tidak memiliki standar baku. Beberapa hal yang perlu diketahui sebelum mulai.

Contoh Kode:
-- Input bawaan adalah STRING, perlu konversi untuk angka
INPUT umur_str          // menerima "20" (string)
umur = PARSE(umur_str)  // jadi 20 (integer)

-- Atau langsung (tergantung gaya yang dipakai)
INPUT umur              // asumsikan sudah angka

-- Mencetak bisa pakai OUTPUT atau PRINT
OUTPUT "Halo"
PRINT "Halo"

-- Mencetak string + variabel
nama = "Budi"
PRINT "Halo " + nama        // Output: Halo Budi
PRINT "Halo, " + nama + "!"  // Output: Halo, Budi!
Hasil Eksekusi:
// Tampilan ke user saat input:
Masukkan umur: _

// User ketik: 20
// umur_str = "20"
// umur = 20 (setelah PARSE)

Halo
Halo
Halo Budi
Halo, Budi!
Poin Penting:
  • Pseudocode = bahasa informal untuk merancang algoritma
  • INPUT bawaan = STRING, perlu konversi ke angka (integer/real)
  • OUTPUT / PRINT = sama saja, pilih yang nyaman
  • String bisa digabung pakai + (concatenation)
📋

Struktur Umum

Kerangka dasar sebuah algoritma

Contoh Kode:
ALGORITMA HitungLuasPersegi
  
  // Input - catatan: bawaan itu string!
  INPUT sisi_str
  sisi = PARSE(sisi_str)    // konversi string ke angka
  
  // Proses
  luas = sisi * sisi
  
  // Output
  OUTPUT "Luas persegi: " + luas

END ALGORITMA
Hasil Eksekusi:
Luas persegi: 100
Poin Penting:
  • ALGORITMA ... END ALGORITMA: Pembatas program
  • INPUT: Bawaan menerima string, perlu PARSE ke angka
  • OUTPUT / PRINT: Tampilkan hasil (bisa pakai + untuk gabung string)
  • // : Komentar (dilewati, gak dieksekusi)
📥

Input & Konversi Tipe

Cara menerima input dan mengubah tipe datanya

Contoh Kode:
// INPUT bawaan menerima STRING
INPUT "Masukkan nama: " nama              // "Budi" (sudah string, aman)
INPUT "Masukkan umur: " umur_str          // "20" (masih string!)

// Konversi ke angka (parsing)
umur = PARSE(umur_str)           // "20" jadi 20 (integer)

// Tampilkan hasil
OUTPUT "Nama: " + nama
OUTPUT "Umur: " + umur

// Alternatif penulisan parsing (tergantung standar)
// umur = TO_INTEGER(umur_str)
// umur = INT(umur_str)
// umur = CONVERT(umur_str, integer)
Hasil Eksekusi:
Masukkan nama: Budi
Masukkan umur: 20

Nama: Budi
Umur: 20
Poin Penting:
  • INPUT bisa pakai prompt: INPUT "Masukkan umur: " umur
  • INPUT secara default menerima STRING
  • Gunakan PARSE() atau TO_INTEGER() untuk ubah ke angka
  • Kalau lupa parsing, operasi matematika bisa error: "20" + 5 = "205"
📤

Output & String Concatenation

Cara menampilkan output dan menggabungkan teks

Contoh Kode:
// OUTPUT dan PRINT itu sama
OUTPUT "Halo dunia"
PRINT "Halo dunia"

// Gabung string dengan +
nama = "Andi"
umur = 20

PRINT "Nama: " + nama              // Output: Nama: Andi
PRINT "Umur: " + umur              // Output: Umur: 20
PRINT nama + " berumur " + umur    // Output: Andi berumur 20

// Gabung dengan teks statis
hasil = 100
PRINT "Nilai akhir: " + hasil + " poin"
// Output: Nilai akhir: 100 poin

// Bisa juga pakai koma (tergantung gaya)
PRINT "Halo", nama
Hasil Eksekusi:
Halo dunia
Halo dunia
Nama: Andi
Umur: 20
Andi berumur 20
Nilai akhir: 100 poin
Halo Andi
Poin Penting:
  • OUTPUT dan PRINT = fungsi sama, beda nama
  • Gabung string dengan operator + (concatenation)
  • Bisa gabung string + angka, otomatis jadi string
  • Beberapa gaya pakai koma , untuk pemisah output
📦

Tipe Data

Jenis nilai yang bisa disimpan

Contoh Kode:
// BILANGAN BULAT (integer)
umur = 20
tahun = 2024

// BILANGAN DESIMAL (real/float)
tinggi = 165.5
berat = 60.25
pi = 3.14159

// TEKS (string)
nama = "Budi"
alamat = 'Jakarta'

// BENAR/SALAH (boolean)
aktif = TRUE
lulus = FALSE
Hasil Eksekusi:
// umur = 20 (integer)
// tahun = 2024 (integer)
// tinggi = 165.5 (real)
// berat = 60.25 (real)
// pi = 3.14159 (real)
// nama = "Budi" (string)
// alamat = "Jakarta" (string)
// aktif = TRUE (boolean)
// lulus = FALSE (boolean)
Poin Penting:
  • integer: Angka bulat (1, 0, -5, 100)
  • real atau float: Angka desimal (3.14, -0.5)
  • string: Teks ("hello", "123") - pakai petik
  • boolean: Cuma TRUE atau FALSE
📝

Variabel & Assignment

Cara menyimpan dan mengubah nilai

Contoh Kode:
// Membuat variabel (memberi nilai langsung)
nama = "Andi"
umur = 20

// Mengubah nilai (overwrite)
umur = 21        // umur sekarang 21

// Menggunakan variabel dalam operasi
saldo = 100000
saldo = saldo - 25000    // saldo sekarang 75000

// Deklarasi dengan tipe (opsional, kalau mau formal)
// umur integer
// umur = 20
Hasil Eksekusi:
// nama = "Andi"
// umur = 20 → 21 (diubah)
// saldo = 100000 → 75000 (setelah dikurangi)
Poin Penting:
  • Variabel = tempat menyimpan data
  • = artinya "simpan nilai di sebelah kanan ke kiri"
  • Nilai bisa diubah-ubah (contoh: saldo di atas)
  • Deklarasi tipe opsional - pakai kalau diminta formal

Operator Aritmatika

Operasi matematika

Contoh Kode:
a = 10
b = 3

hasil = a + b     // Penjumlahan: 13
hasil = a - b     // Pengurangan: 7
hasil = a * b     // Perkalian: 30
hasil = a / b     // Pembagian: 3.33
hasil = a div b   // Pembagian bulat: 3
hasil = a mod b   // Sisa bagi: 1 (10 dibagi 3 sisa 1)
hasil = a ^ 2     // Pangkat: 100 (10 kuadrat)
Hasil Eksekusi:
// hasil = 13 (10 + 3)
// hasil = 7 (10 - 3)
// hasil = 30 (10 * 3)
// hasil = 3.33 (10 / 3)
// hasil = 3 (10 div 3)
// hasil = 1 (10 mod 3 = sisa 1)
// hasil = 100 (10 ^ 2)
Poin Penting:
  • + - * / : Operasi dasar
  • div: Bagi ambil bulatnya saja (10 div 3 = 3)
  • mod: Sisa pembagian (10 mod 3 = 1)
  • ^ : Pangkat (2 ^ 3 = 8)
⚖️

Operator Perbandingan

Bandingkan dua nilai, hasil TRUE/FALSE

Contoh Kode:
x = 5

// Sama dengan
IF x == 5 THEN
    OUTPUT "Benar, x adalah 5"
END IF

// Tidak sama dengan
IF x != 10 THEN
    OUTPUT "x bukan 10"
END IF

// Lebih besar & kecil
IF x > 0 THEN
    OUTPUT "x positif"
END IF

IF x < 100 THEN
    OUTPUT "x kurang dari 100"
END IF

// Lebih besar sama dengan / lebih kecil sama dengan
IF x >= 5 THEN
    OUTPUT "x minimal 5"
END IF
Hasil Eksekusi:
Benar, x adalah 5
x bukan 10
x positif
x kurang dari 100
x minimal 5
Poin Penting:
  • == : Sama dengan (bandingkan)
  • != atau <> : Tidak sama dengan
  • > : Lebih besar, < : Lebih kecil
  • >= : Lebih besar sama dengan, <= : Lebih kecil sama dengan
🔀

Operator Logika

Gabungkan beberapa kondisi

Contoh Kode:
umur = 20
status = "pelajar"

// AND - Dua-duanya harus benar
IF umur >= 17 AND umur <= 25 THEN
    OUTPUT "Usia produktif"
END IF

// OR - Salah satu benar sudah cukup
IF status == "pelajar" OR status == "mahasiswa" THEN
    OUTPUT "Masih sekolah"
END IF

// NOT - Kebalikan
IF NOT (umur < 17) THEN
    OUTPUT "Sudah dewasa"
END IF
Hasil Eksekusi:
Usia produktif
Masih sekolah
Sudah dewasa
Poin Penting:
  • AND: Dua kondisi harus TRUE
  • OR: Salah satu TRUE sudah cukup
  • NOT: Balikkan nilai (TRUE jadi FALSE)
  • Biasanya dipakai di IF
🍴

Kondisional (IF)

Ambil keputusan berdasarkan kondisi

Contoh Kode:
nilai = 85

// IF sederhana
IF nilai >= 60 THEN
    OUTPUT "Lulus"
END IF

// IF - ELSE (dua pilihan)
IF nilai >= 60 THEN
    OUTPUT "Lulus"
ELSE
    OUTPUT "Tidak lulus"
END IF

// IF - ELSE IF - ELSE (banyak pilihan)
IF nilai >= 90 THEN
    OUTPUT "Nilai A"
ELSE IF nilai >= 80 THEN
    OUTPUT "Nilai B"
ELSE IF nilai >= 70 THEN
    OUTPUT "Nilai C"
ELSE
    OUTPUT "Nilai D"
END IF
Hasil Eksekusi:
Lulus
Lulus
Nilai B
Poin Penting:
  • IF-THEN: Paling sederhana, satu kondisi
  • IF-ELSE: Dua kemungkinan (iya/tidak)
  • ELSE IF: Banyak pilihan bertingkat
  • Selalu diakhiri END IF
🪆

IF Bersarang (Nested IF)

IF di dalam IF, untuk keputusan yang lebih kompleks

Contoh Kode:
umur = 20
status = "pelajar"

// Cek umur dulu, baru cek status
IF umur >= 18 THEN
    OUTPUT "Dewasa"
    
    IF status == "pelajar" THEN
        OUTPUT "Mahasiswa"
    ELSE IF status == "kerja" THEN
        OUTPUT "Pekerja"
    ELSE
        OUTPUT "Status lain"
    END IF
    
ELSE
    OUTPUT "Belum dewasa"
END IF

// Contoh lain: Cek login
username = "admin"
password = "12345"

IF username == "admin" THEN
    IF password == "12345" THEN
        OUTPUT "Login berhasil"
    ELSE
        OUTPUT "Password salah"
    END IF
ELSE
    OUTPUT "Username tidak ditemukan"
END IF
Hasil Eksekusi:
Dewasa
Mahasiswa

Login berhasil
Poin Penting:
  • IF di dalam IF = cek kondisi bertingkat
  • Selesaikan IF dalam dulu, baru IF luar
  • Berguna untuk validasi bertahap (contoh: login)
  • Indentasi (spasi) penting supaya tidak bingung
🔄

Perulangan (LOOP)

Ulang proses beberapa kali

Contoh Kode:
// FOR - Perulangan dengan counter
FOR i = 1 TO 5 DO
    OUTPUT i        // 1, 2, 3, 4, 5
END FOR

// FOR turun
FOR i = 10 DOWNTO 1 DO
    OUTPUT i        // 10, 9, 8, ..., 1
END FOR

// WHILE - Selama kondisi TRUE
x = 1
WHILE x <= 5 DO
    OUTPUT x
    x = x + 1       // Jangan lupa increment!
END WHILE

// REPEAT - Sampai kondisi TRUE
y = 1
REPEAT
    OUTPUT y
    y = y + 1
UNTIL y > 5
Hasil Eksekusi:
1
2
3
4
5

10
9
8
7
6
5
4
3
2
1

1
2
3
4
5

1
2
3
4
5
Poin Penting:
  • FOR: Perulangan pasti (tahu berapa kali)
  • WHILE: Cek dulu, jalankan kalau TRUE
  • REPEAT: Jalankan dulu, cek di akhir
  • Hati-hati infinite loop (lupa increment)!
📚

Array (Larik)

Simpan banyak data dalam satu nama. Array di sini mulai dari indeks 0 (standar modern)

Contoh Kode:
// Deklarasi array kosong: nama = []
nilai = []

// Isi data array (mulai dari indeks 0!)
nilai[0] = 80
nilai[1] = 90
nilai[2] = 75
nilai[3] = 85

// Akses satu elemen
OUTPUT nilai[0]     // Output: 80
OUTPUT nilai[2]     // Output: 75

// Array + perulangan FOR (perhatikan indeks mulai 0!)
FOR i = 0 TO 3 DO
    OUTPUT "Nilai " + i + ": " + nilai[i]
END FOR

// Hitung total
total = nilai[0] + nilai[1] + nilai[2] + nilai[3]
OUTPUT "Total: " + total
Hasil Eksekusi:
80
75

Nilai 0: 80
Nilai 1: 90
Nilai 2: 75
Nilai 3: 85

Total: 330
Poin Penting:
  • Deklarasi array: nama = [] (array kosong)
  • Array mulai dari indeks 0 (standar modern)
  • Akses pakai [indeks], contoh: nilai[0], nilai[1]
  • FOR loop dengan array: dari 0 sampai (jumlah-1)
🔁

Loop + Kondisi (Kombinasi)

Gabungan perulangan dan kondisional

Contoh Kode:
// Contoh 1: Cetak angka genap saja (1-10)
FOR i = 1 TO 10 DO
    IF i MOD 2 == 0 THEN
        OUTPUT i    // Hanya cetak 2, 4, 6, 8, 10
    END IF
END FOR

// Contoh 2: FizzBuzz - klasik!
// Kelipatan 3 = Fizz, 5 = Buzz, keduanya = FizzBuzz
FOR i = 1 TO 15 DO
    IF i MOD 3 == 0 AND i MOD 5 == 0 THEN
        OUTPUT "FizzBuzz"
    ELSE IF i MOD 3 == 0 THEN
        OUTPUT "Fizz"
    ELSE IF i MOD 5 == 0 THEN
        OUTPUT "Buzz"
    ELSE
        OUTPUT i
    END IF
END FOR

// Contoh 3: Login dengan batas percobaan (3x)
username = "admin"
password = "12345"
coba = 0
login = FALSE

WHILE coba < 3 AND login == FALSE DO
    coba = coba + 1
    OUTPUT "Percobaan ke-" + coba
    
    IF username == "admin" AND password == "12345" THEN
        OUTPUT "Berhasil login!"
        login = TRUE
    ELSE
        OUTPUT "Gagal, coba lagi"
    END IF
END WHILE
Hasil Eksekusi:
2
4
6
8
10

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Percobaan ke-1
Berhasil login!
Poin Penting:
  • Loop bisa diisi kondisi IF di dalamnya
  • Berguna untuk filter data (contoh: hanya cetak genap)
  • FizzBuzz = latihan klasik kombinasi loop + kondisi
  • Kombinasi ini paling sering dipakai di dunia nyata!

Siap untuk latihan?

Uji pemahamanmu dengan mengerjakan latihan-latihan yang tersedia

Lihat Daftar Latihan