Contoh Pseudocode
15 contoh lengkap dalam pseudocode Cambridge IGCSE dan A-Level, dari OUTPUT pertama sampai bubble sort. Setiap contoh menampilkan output-nya, dan kamu bisa menjalankannya di editor di bawah.
Cara membaca contoh-contoh ini
Pseudocode menjelaskan langkah-langkah sebuah program dalam bahasa Inggris yang terstruktur, tanpa aturan ketat bahasa pemrograman sungguhan. Setiap contoh di bawah memakai gaya Cambridge yang dipakai di ujian IGCSE dan A-Level: DECLARE untuk variabel, ← untuk memberi nilai, OUTPUT untuk mencetak, dan blok yang ditutup dengan ENDIF, NEXT, atau ENDWHILE.
Setiap contoh menyebutkan sebuah masalah, memberikan pseudocode-nya, menunjukkan output yang dihasilkannya, dan menjelaskan cara kerjanya. Tekan Jalankan di editor untuk memuat contoh mana pun ke editor di bagian atas halaman, tempat kamu bisa menjalankannya baris demi baris dan melihat variabelnya berubah. Baru mengenal sintaksnya? Editor pseudocode punya pustaka yang bisa diklik untuk setiap konstruksi.
1. Hello, World
Tampilkan pesan di layar.
OUTPUT "Hello, World!"Hello, World!OUTPUT mencetak apa pun yang mengikutinya, dan teks ditulis di dalam tanda kutip ganda. Satu baris ini sudah merupakan program lengkap: pseudocode tidak butuh fungsi main dan tidak butuh import.
2. Menjumlahkan dua angka
Simpan dua bilangan bulat, jumlahkan, lalu cetak totalnya.
DECLARE a : INTEGER
DECLARE b : INTEGER
DECLARE total : INTEGER
a ← 12
b ← 30
total ← a + b
OUTPUT "The total is ", totalThe total is 42Setiap variabel dideklarasikan dengan nama dan tipe sebelum dipakai. Panah ← menyimpan sebuah nilai, jadi baca total ← a + b sebagai "total menjadi a ditambah b". Koma di dalam OUTPUT menggabungkan teks dan nilai dalam satu baris.
3. Genap atau ganjil
Tentukan apakah sebuah angka genap atau ganjil.
DECLARE n : INTEGER
n ← 17
IF n MOD 2 = 0 THEN
OUTPUT n, " is even"
ELSE
OUTPUT n, " is odd"
ENDIF17 is oddMOD memberikan sisa hasil bagi. Bilangan genap tidak menyisakan apa pun saat dibagi 2, jadi n MOD 2 = 0 adalah pengujiannya. IF memilih salah satu dari dua cabang dan ENDIF menutup bloknya. Di pseudocode, satu = membandingkan dua nilai; tanda itu tidak pernah dipakai untuk memberi nilai.
4. Menilai skor ujian
Ubah skor dari 100 menjadi nilai huruf: A untuk 80 ke atas, B untuk 60 sampai 79, C di bawah 60.
DECLARE score : INTEGER
DECLARE grade : CHAR
score ← 74
IF score >= 80 THEN
grade ← 'A'
ELSE
IF score >= 60 THEN
grade ← 'B'
ELSE
grade ← 'C'
ENDIF
ENDIF
OUTPUT "Score ", score, " gets grade ", gradeScore 74 gets grade BPengecekan berjalan dari batas tertinggi ke bawah, jadi skor 74 gagal di pengujian pertama dan lolos di pengujian kedua. Menaruh satu IF di dalam ELSE milik percabangan lain adalah cara pseudocode Cambridge menulis rangkaian else-if. Sebuah CHAR menyimpan satu karakter di dalam tanda kutip tunggal.
5. Menjumlahkan angka 1 sampai 10
Jumlahkan setiap bilangan bulat dari 1 sampai 10.
DECLARE total : INTEGER
DECLARE i : INTEGER
total ← 0
FOR i ← 1 TO 10
total ← total + i
NEXT i
OUTPUT "Sum of 1 to 10 is ", totalSum of 1 to 10 is 55Perulangan FOR berjalan sebanyak jumlah yang tetap: i bernilai 1, 2, 3, dan seterusnya sampai 10, dan NEXT i menandai akhir badan perulangan. Total berjalan dimulai dari 0 dan bertambah di setiap putaran. Jawabannya, 55, sesuai dengan rumus n(n + 1) / 2.
6. Mencetak tabel perkalian
Cetak lima baris pertama tabel perkalian 7.
DECLARE i : INTEGER
FOR i ← 1 TO 5
OUTPUT "7 x ", i, " = ", 7 * i
NEXT i7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35Penghitung perulangan i dipakai di dalam perhitungan, jadi setiap putaran mencetak baris yang berbeda. OUTPUT bisa menggabungkan beberapa potongan teks dan beberapa nilai dengan koma.
7. Hitung mundur dengan perulangan WHILE
Hitung mundur dari 5 sampai 1, lalu cetak pesan penutup.
DECLARE count : INTEGER
count ← 5
WHILE count > 0 DO
OUTPUT count
count ← count - 1
ENDWHILE
OUTPUT "Liftoff!"5
4
3
2
1
Liftoff!Perulangan WHILE memeriksa kondisinya sebelum setiap putaran dan berhenti begitu kondisinya bernilai salah. Di sini kondisinya adalah count > 0, dan badan perulangan mengurangi count satu per satu setiap kali. Hilangkan baris yang menguranginya dan perulangan tidak akan pernah berakhir. Pakai WHILE saat kamu tidak tahu sebelumnya berapa putaran yang dibutuhkan.
8. Mencari angka terbesar di sebuah array
Cari nilai terbesar di daftar berisi enam angka.
DECLARE nums : ARRAY[1:6] OF INTEGER
DECLARE i : INTEGER
DECLARE largest : INTEGER
nums[1] ← 14
nums[2] ← 3
nums[3] ← 27
nums[4] ← 9
nums[5] ← 21
nums[6] ← 6
largest ← nums[1]
FOR i ← 2 TO 6
IF nums[i] > largest THEN
largest ← nums[i]
ENDIF
NEXT i
OUTPUT "The largest number is ", largestThe largest number is 27ARRAY[1:6] mendeklarasikan enam slot bernomor 1 sampai 6, karena array Cambridge biasanya dimulai dari 1. Program menganggap elemen pertama adalah yang terbesar, lalu membandingkan setiap elemen lainnya dengannya dan menyimpan mana yang lebih besar. Setelah satu kali melewati array, largest berisi jawabannya.
9. Menghitung rata-rata
Cari rata-rata dari empat nilai ujian.
DECLARE marks : ARRAY[1:4] OF INTEGER
DECLARE i : INTEGER
DECLARE total : INTEGER
marks[1] ← 70
marks[2] ← 85
marks[3] ← 64
marks[4] ← 91
total ← 0
FOR i ← 1 TO 4
total ← total + marks[i]
NEXT i
OUTPUT "Average mark: ", total / 4Average mark: 77.5Perulangan menambahkan setiap elemen array ke total, lalu program membaginya dengan jumlah nilai. Operator / memberikan hasil desimal, itulah sebabnya output-nya 77.5. Pakai DIV jika kamu ingin pembagian bilangan bulat.
10. Linear search
Cari posisi nama Dara di daftar nama.
DECLARE names : ARRAY[1:5] OF STRING
DECLARE i : INTEGER
DECLARE found : BOOLEAN
names[1] ← "Ana"
names[2] ← "Ben"
names[3] ← "Chen"
names[4] ← "Dara"
names[5] ← "Eli"
found ← FALSE
i ← 1
WHILE i <= 5 AND found = FALSE DO
IF names[i] = "Dara" THEN
found ← TRUE
ELSE
i ← i + 1
ENDIF
ENDWHILE
IF found = TRUE THEN
OUTPUT "Dara is at position ", i
ELSE
OUTPUT "Not found"
ENDIFDara is at position 4Linear search memeriksa elemen satu per satu dari awal. Kondisi WHILE menghentikan perulangan saat nama ditemukan atau saat semua elemen sudah diperiksa, dan flag found mencatat mana dari keduanya yang terjadi. Cara ini bekerja pada data yang belum diurutkan, tapi pada daftar yang panjang bisa butuh satu perbandingan untuk setiap elemen.
11. Bubble sort
Urutkan lima angka dari yang terkecil ke yang terbesar.
DECLARE nums : ARRAY[1:5] OF INTEGER
DECLARE i : INTEGER
DECLARE j : INTEGER
DECLARE temp : INTEGER
nums[1] ← 5
nums[2] ← 1
nums[3] ← 4
nums[4] ← 2
nums[5] ← 8
FOR i ← 1 TO 4
FOR j ← 1 TO 5 - i
IF nums[j] > nums[j + 1] THEN
temp ← nums[j]
nums[j] ← nums[j + 1]
nums[j + 1] ← temp
ENDIF
NEXT j
NEXT i
FOR i ← 1 TO 5
OUTPUT nums[i]
NEXT i1
2
4
5
8Bubble sort membandingkan setiap pasangan elemen yang bersebelahan dan menukarnya kalau urutannya salah. Setelah setiap putaran perulangan luar, nilai terbesar yang tersisa sudah berpindah ke ujung, jadi perulangan dalam bisa berhenti satu elemen lebih awal setiap kali. Penukarannya butuh variabel ketiga, temp, untuk menyimpan satu nilai sementara nilai lainnya disalin.
12. Faktorial dengan fungsi
Tulis fungsi yang mengembalikan n faktorial (n!), lalu pakai untuk menghitung 5!.
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER
DECLARE result : INTEGER
DECLARE i : INTEGER
result ← 1
FOR i ← 2 TO n
result ← result * i
NEXT i
RETURN result
ENDFUNCTION
OUTPUT "5! = ", Factorial(5)5! = 120Sebuah FUNCTION menerima parameter, mengerjakan tugasnya, dan mengembalikan nilai dengan RETURN; header-nya menyebutkan tipe nilai yang dikembalikan. Variabel yang dideklarasikan di dalamnya hanya ada selama fungsi itu berjalan. 5! adalah 5 × 4 × 3 × 2 × 1, yaitu 120.
13. Menghitung huruf vokal dalam sebuah kata
Hitung berapa huruf vokal yang ada di kata PSEUDOCODE.
DECLARE word : STRING
DECLARE letter : CHAR
DECLARE vowels : INTEGER
DECLARE i : INTEGER
word ← "PSEUDOCODE"
vowels ← 0
FOR i ← 1 TO LENGTH(word)
letter ← SUBSTRING(word, i, 1)
IF letter = 'A' OR letter = 'E' OR letter = 'I' OR letter = 'O' OR letter = 'U' THEN
vowels ← vowels + 1
ENDIF
NEXT i
OUTPUT word, " has ", vowels, " vowels"PSEUDOCODE has 5 vowelsLENGTH memberikan jumlah karakter dalam sebuah string, dan SUBSTRING(word, i, 1) mengambil satu karakter mulai dari posisi i. Perulangan mengunjungi setiap karakter dan menambah penghitung satu setiap kali karakter itu A, E, I, O, atau U.
14. FizzBuzz
Cetak angka 1 sampai 15, tapi cetak Fizz untuk kelipatan 3, Buzz untuk kelipatan 5, dan FizzBuzz untuk kelipatan keduanya.
DECLARE i : INTEGER
FOR i ← 1 TO 15
IF i MOD 15 = 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
ENDIF
ENDIF
ENDIF
NEXT i1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzUrutan pengecekan itu penting. 15 adalah kelipatan 3 dan juga kelipatan 5, jadi pengujian untuk 15 harus didahulukan; kalau tidak, program akan mencetak Fizz dan tidak pernah sampai ke FizzBuzz. Ini pemanasan klasik di wawancara kerja karena menguji cara berpikir seperti ini.
15. Percobaan password dengan REPEAT UNTIL
Coba sampai tiga password secara bergantian dan berikan akses kalau salah satunya benar.
DECLARE attempts : ARRAY[1:3] OF STRING
DECLARE tries : INTEGER
DECLARE guess : STRING
attempts[1] ← "hunter1"
attempts[2] ← "letmein"
attempts[3] ← "open sesame"
tries ← 0
REPEAT
tries ← tries + 1
guess ← attempts[tries]
OUTPUT "Try ", tries, ": ", guess
UNTIL guess = "open sesame" OR tries = 3
IF guess = "open sesame" THEN
OUTPUT "Access granted"
ELSE
OUTPUT "Locked out"
ENDIFTry 1: hunter1
Try 2: letmein
Try 3: open sesame
Access grantedPerulangan REPEAT ... UNTIL memeriksa kondisinya di akhir, jadi badan perulangan selalu berjalan minimal sekali. Perulangan berhenti saat password cocok atau setelah percobaan ketiga. Tebakan-tebakannya diambil dari array supaya contohnya berjalan tanpa perlu mengetik; dalam jawaban ujian, biasanya kamu membaca masing-masing tebakan dengan INPUT.
FAQ contoh pseudocode
Apa contoh pseudocode?
IF score >= 50 THEN OUTPUT "Pass" ELSE OUTPUT "Fail" ENDIF. Bacaannya hampir seperti bahasa Inggris, tapi mengikuti aturan yang tetap, jadi bisa diubah ke Python, Java, atau bahasa lain baris demi baris. 15 program di halaman ini bergerak dari satu baris sampai pencarian dan pengurutan.Bagaimana cara menulis pseudocode?
DECLARE untuk variabel, ← untuk memberi nilai, IF untuk keputusan, FOR atau WHILE untuk pengulangan, dan OUTPUT untuk hasil. Beri indentasi pada badan setiap blok, tutup dengan kata kunci penutupnya, dan tulis satu aksi per baris.Apakah pseudocode sama di setiap ujian?
DECLARE dan panah ←, AQA memakai ← tanpa deklarasi, Exam Reference Language milik OCR mirip Python, dan Edexcel menulis SET ... TO. Contoh di sini memakai gaya Cambridge; editor pseudocode bisa berpindah di antara keempat gaya tersebut.Bisakah aku menjalankan pseudocode?
Bisa, di halaman ini. Pseudocode bukan bahasa pemrograman sungguhan, jadi tidak ada compiler resminya, tapi editor di sini menjalankan pseudocode Cambridge di browsermu, menampilkan output-nya, dan menjalankannya baris demi baris. Tekan Jalankan di editor di bawah contoh mana pun.
Apa bedanya pseudocode dengan flowchart?
Keduanya menjelaskan algoritma sebelum ditulis menjadi kode. Flowchart menggambar langkah-langkahnya sebagai kotak dan panah, cocok untuk proses singkat dengan sedikit keputusan. Pseudocode menuliskannya sebagai teks terstruktur, yang tetap rapi untuk program yang lebih panjang dan lebih mudah diubah menjadi kode sungguhan.
Apakah aku harus mendeklarasikan variabel di pseudocode?
DECLARE name : TYPE sebelum sebuah variabel dipakai. Gaya lain, seperti milik AQA, melewatkan deklarasi. Mendeklarasikan variabel juga memberi tahu pembaca tipe nilai yang disimpannya.