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.
-- 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! // Tampilan ke user saat input:
Masukkan umur: _
// User ketik: 20
// umur_str = "20"
// umur = 20 (setelah PARSE)
Halo
Halo
Halo Budi
Halo, Budi! - • 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
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 Luas persegi: 100 - • 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
// 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) Masukkan nama: Budi
Masukkan umur: 20
Nama: Budi
Umur: 20 - • 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
// 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 Halo dunia
Halo dunia
Nama: Andi
Umur: 20
Andi berumur 20
Nilai akhir: 100 poin
Halo Andi - • 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
// 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 // 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) - • 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
// 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 // nama = "Andi"
// umur = 20 → 21 (diubah)
// saldo = 100000 → 75000 (setelah dikurangi) - • 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
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 = 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) - • + - * / : 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
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 Benar, x adalah 5
x bukan 10
x positif
x kurang dari 100
x minimal 5 - • == : Sama dengan (bandingkan)
- • != atau <> : Tidak sama dengan
- • > : Lebih besar, < : Lebih kecil
- • >= : Lebih besar sama dengan, <= : Lebih kecil sama dengan
Operator Logika
Gabungkan beberapa kondisi
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 Usia produktif
Masih sekolah
Sudah dewasa - • 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
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 Lulus
Lulus
Nilai B - • 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
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 Dewasa
Mahasiswa
Login berhasil - • 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
// 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 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 - • 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)
// 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 80
75
Nilai 0: 80
Nilai 1: 90
Nilai 2: 75
Nilai 3: 85
Total: 330 - • 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 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 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! - • 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