Algoritma dan pseudokode
| English | Bahasa Indonesia |
|---|---|
| algorithm/ˈælɡərɪθəm/ | algoritma |
| sequence/ˈsiːkwəns/ | urutan |
| deterministic/dɪˌtɜːmɪˈnɪstɪk/ | deterministik |
| identifier table/aɪˈdentɪfaɪə ˈteɪbl/ | tabel pengenal |
| variable/ˈveərɪəbl/ | pembolehubah |
| data type/ˈdeɪtə taɪp/ | tipe data |
| pseudocode/ˈsuːdəʊkəʊd/ | pseudocode |
| assignment/əˈsaɪnmənt/ | penugasan |
| loop/luːp/ | gelung |
| count-controlled loop/kaʊnt kənˈtrəʊld luːp/ | loop terkontrol hitung |
| pre-condition loop/priː kənˈdɪʃn luːp/ | loop pra-kondisi |
| post-condition loop/pəʊst kənˈdɪʃn luːp/ | loop pasca-kondisi |
| iteration/ˌɪtəˈreɪʃn/ | iterasi |
| selection/sɪˈlekʃn/ | pemilihan |
| flowchart/ˈfləʊtʃɑːt/ | flowchart |
| stepwise refinement/ˈstepwaɪz rɪˈfaɪnmənt/ | penyempurnaan bertahap |
Tanda hubung termahal dalam sejarah
- Pada 22 Juli 1962 roket Mariner 1, yang dituju ke Venus, meledak 293 detik setelah peluncuran.
- Penyebabnya adalah satu garis yang hilang di atas simbol dalam persamaan panduan. Komputer mengikuti langkah-langkah tertulis persis, dan langkah-langkah tertulis tersebut salah.
- Komputer tidak pernah mengisi apa yang Anda maksudkan. Setiap langkah yang Anda berikan harus memiliki tepat satu makna.
- Itulah sebabnya pelajaran ini tentang menulis langkah-langkah yang dapat diikuti mesin: algoritma.
Apa itu algoritma
- Algoritma adalah solusi terhadap masalah yang dinyatakan sebagai urutan langkah-langkah terdefinisi.
- Setiap langkah tak ambigu (satu makna), deterministik (input sama → output sama), finite (langkah-langkah berakhir) dan efektif (setiap langkah benar-benar dapat dilakukan).
- Ini mengatakan apa yang harus dilakukan, terlepas dari bahasa pemrograman mana pun, dan setiap algoritma mengikuti input → proses → output.

Setiap algoritma memiliki bentuk yang sama: input, proses, output
Sebuah algoritma bersifat "deterministik". Ini berarti:
Deterministik = input sama → output sama setiap kali. (Finite = langkah-langkah berakhir; tak ambigu = satu makna per langkah.)
Contoh kerja: tabel pengenal
- Sebelum menulis kode, daftarkan setiap bagian data dalam tabel pengenal: nama variabel-nya, tipe data dan deskripsi.
- Program stok toko menyimpan
"Fruit",20/02/2025,12.67danTRUE. Soal ujian meminta nama dan tipe untuk masing-masing. Category : STRING(kategori stok),DateSold : DATE(kapan terjual),ItemCost : REAL(biaya),InStock : BOOLEAN(apakah masih tersedia?).- Satu poin per baris untuk nama dan tipe, jadi tulis tipenya persis seperti panduan pseudocode:
INTEGER,REAL,STRING,CHAR,BOOLEAN,DATE.

*Tabel pengenal menamai setiap bagian data sebelum Anda menulis kode
Dalam tabel pengenal, tipe data untuk nilai seperti 12.67 (biaya) adalah ____.
Angka dengan bagian desimal adalah REAL. INTEGER untuk bilangan bulat, STRING untuk teks, BOOLEAN untuk TRUE/FALSE dan DATE untuk tanggal.
Tiga konstruk
IF … THEN … ELSE … ENDIF
- Penugasan menyimpan nilai dengan panah,
Total ← Total + Value;=untuk perbandingan.DIVadalah pembagian bilangan bulat danMODsisa, sehingga17 MOD 5 = 2.
INPUT Age # sequence
IF Age >= 18 THEN
# selection
ENDIF
OUTPUT "Adult"
ELSE
OUTPUT "Minor"
ENDIF
FOR Count <- 1 TO 10 # iteration
OUTPUT Count
NEXT Count

*Tiga blok penyusun setiap algoritma
Seleksi: ikuti cabang IF / ELSE
Seret skor dan lihat cabang mana yang berjalan. Seleksi menguji setiap kondisi secara bergantian dan mengambil YANG PERTAMA yang benar — itulah cara kerja IF … ELSE IF … ELSE.
Pasangkan setiap konstruk pemrograman dengan fungsinya.
Setiap algoritma dibangun dari hanya tiga konstruk — urutan, seleksi dan iterasi.
Dalam pseudocode ini, simbol mana yang berarti penugasan (menyimpan nilai)?
Penugasan menggunakan ← (mis. x ← 5); = dicadangkan untuk perbandingan.
Berapa nilai dari 17 MOD 5?
MOD memberikan sisa bagi: $17 = 3 \times 5 + 2$, jadi 17 MOD 5 = 2. (17 DIV 5 = 3.)
Loop mana?
FOR … NEXTketika Anda tahu berapa kali: loop terkontrol hitungan.WHILE … ENDWHILEmenguji kondisi sebelum setiap putaran, sehingga badan loop mungkin berjalan nol kali: loop pra-kondisi.REPEAT … UNTILmenguji setelah setiap putaran, sehingga badan loop selalu berjalan minimal sekali: loop pasca-kondisi. Validasi input adalah kasus klasik.- Jawaban "deskripsikan konstruk iterasi" menyebutkan nama loop, menyatakan di mana kondisi diuji, dan memberikan konsekuensinya.

*Loop WHILE menguji sebelum badan loop berjalan; loop REPEAT … UNTIL menguji setelahnya
Bagaimana perbedaan WHILE loop dengan REPEAT...UNTIL loop?
WHILE memeriksa terlebih dahulu (bisa berjalan 0 kali); REPEAT...UNTIL memeriksa setelahnya, sehingga selalu berjalan setidaknya sekali.
FOR loop dikontrol oleh penghitung (mengulang sejumlah kali yang tetap), sementara WHILE loop dikontrol oleh kondisi (mengulang hingga kondisi berubah).
Gunakan FOR ketika Anda tahu berapa banyak putaran; gunakan WHILE/REPEAT ketika Anda mengulang hingga sesuatu menjadi benar.
Contoh kerja: dari kata ke pseudocode
- Tugas: masukkan 100 nilai integer, jumlahkan hanya yang positif, dan tampilkan totalnya.
- Rencanakan datanya terlebih dahulu:
Count,TotaldanNextNumber, semuanyaINTEGER. Kemudian tiga konstruk melakukan sisanya.
DECLARE Count, Total, NextNumber : INTEGER
Total <- 0
FOR Count <- 1 TO 100
INPUT NextNumber
IF NextNumber > 0 THEN
Total <- Total + NextNumber
ENDIF
NEXT Count
OUTPUT Total
- Pertanyaan lanjutan meminta Anda untuk mengidentifikasi konstruk: iterasi (loop
FORmengulang input 100 kali), seleksi (IFmemutuskan apakah nilai ditambahkan) dan sekuensial (perintah berjalan berurutan).
Mengidentifikasi konstruk dalam kutipan
- Soal favorit menampilkan lima kutipan pseudocode dan meminta Anda mencentang mana yang menggunakan penugasan, seleksi, atau iterasi.
Result ← CalculateTotal()adalah penugasan.WHILE IsClosedadalah iterasi.REPEAT … INPUT Value … UNTIL Sales[4] > Valueadalah iterasi dan penugasan (INPUTmenyimpan nilai). IF Sales[Current] <= 150 THEN Discount ← TRUE ENDIF- Perhatikan setiap baris dalam kutipan, bukan hanya baris pertama. Sebuah baris mungkin memerlukan dua centang.
Konstruk apa yang diekstrak oleh kode ini? REPEAT … INPUT Value … UNTIL Total > 100. Pilih semua yang berlaku.
REPEAT … UNTIL adalah iterasi, dan INPUT Value menyimpan nilai, yang dihitung sebagai penugasan. Tidak ada IF atau CASE, jadi tidak ada seleksi — kondisi UNTIL mengontrol perulangan, bukan memilih antara cabang.
Flowchart
- Flowchart mendokumentasikan algoritma yang sama seperti gambar. Oval adalah
STARTdanEND, persegi panjang adalah proses, jajar genjang adalahINPUT/OUTPUT, dan belah ketupat adalah keputusan. - Belah ketupat adalah tempat seleksi terjadi, dan garis alur yang kembali ke atas pada diagram adalah perulangan.
- Soal ujian menanyakan kedua cara: pseudocode dari flowchart, dan flowchart dari pseudocode atau bahasa Inggris terstruktur. Setiap simbol yang Anda gambar harus berpasangan dengan satu baris pseudocode.

Setiap simbol flowchart berpasangan dengan satu jenis pernyataan pseudocode
Dalam flowchart, apa yang diwakili oleh berlian?
Berlian adalah tempat seleksi terjadi, dan berlian yang garis alurnya kembali ke atas adalah uji perulangan. Persegi panjang adalah proses, jajar genjang input/output, oval START dan END.
Contoh terpecahkan: permainan menebak angka
- Program memilih bilangan bulang acak dari 1 hingga 100, lalu meminta tebakan sampai pengguna mendapatkannya. Pengguna harus menebak setidaknya sekali, jadi perulangan ini adalah
REPEAT … UNTIL.
DECLARE Target, Guess : INTEGER
Target <- INT(RAND(100)) + 1
REPEAT
INPUT Guess
IF Guess < Target THEN
OUTPUT "Too low"
ELSE
IF Guess > Target THEN
OUTPUT "Too high"
ENDIF
ENDIF
UNTIL Guess = Target
OUTPUT "Correct"
- Ikuti flowchart: satu belah ketupat keputusan untuk uji perulangan, dua lagi untuk petunjuk, dan setiap garis alur berakhir kembali di
INPUT Guessatau diEND.

Permainan menebak angka sebagai flowchart: perulangan kembali ke input sampai tebakan cocok
Mengapa REPEAT … UNTIL adalah perulangan yang tepat untuk permainan menebak?
Perulangan pasca-kondisi selalu menjalankan tubuhnya sekali sebelum menguji, yang sesuai dengan permainan yang membutuhkan setidaknya satu tebakan. WHILE loop akan memerlukan tebakan sebelum perulangan hanya untuk memiliki sesuatu yang diuji.
Penyempurnaan bertahap
- Penyempurnaan bertahap berarti memulai dari kerangka dan memperluas setiap langkah menjadi langkah-langkah yang lebih rinci, berulang kali, sampai setiap langkah dapat ditulis langsung sebagai pseudocode.
- "Proses pesanan" → "dapatkan barang", "hitung total", "terima pembayaran" → "hitung total" menjadi "untuk setiap barang, tambahkan harga × kuantitas; terapkan diskon apa pun".
- Setiap tingkat adalah penyempurnaan dari tingkat di atasnya, dan tingkat yang selesai bersama-sama membentuk desain. "Jelaskan penyempurnaan bertahap" meminta kerangka, perluasan, dan aturan berhenti.

Sempurnakan setiap langkah sampai dapat dikodekan langsung
Susun tahap-tahap penyempurnaan bertahap secara berurutan.
Buat kerangka terlebih dahulu, lalu sempurnakan level demi level; Anda berhenti ketika sebuah langkah menjadi satu baris pseudocode.
Pernyataan logika
- Bagian solusi didefinisikan oleh pernyataan logika: kondisi yang dibangun dari perbandingan (
=,<>,<,>,<=,>=) yang digabungkan olehAND,ORdanNOT. - Tanda valid:
Mark >= 0 AND Mark <= 100. Diskon berlaku jika pelanggan adalah anggota atau menghabiskan lebih dari 50:IsMember OR Total > 50. NOT (Mark < 40)mengatakan hal yang sama denganMark >= 40. Tulis pernyataannya, lalu ujikan dengan nilai di setiap sisi batas.

Perbandingan yang digabungkan oleh AND, OR dan NOT membangun kondisi yang dibutuhkan algoritma
NOT (Mark < 40) bernilai benar untuk nilai Mark yang persis sama dengan Mark >= 40.
Negasi "kurang dari 40" menghasilkan "40 atau lebih". Uji batasnya: Mark = 40 membuat Mark < 40 false, jadi NOT darinya true, dan 40 >= 40 juga true.
⟦⟧ Nilai yang sering terlewat
←mengindeksasi dan=membandingkan.IF Total = 0adalah uji;Total = 0pada barisnya sendiri tidak mendapatkan poin.- Setiap konstruk penutup:
ENDIF,ENDWHILE,UNTIL,NEXT,ENDCASE. Kurangnya penutup merusak struktur nilai tanda. - Deklarasikan sebelum digunakan, dan inisialisasikan total berjalan ke
0. WHILEmungkin tidak pernah berjalan,REPEATselalu berjalan sekali. Pilih perulangan yang sesuai dengan tugas, dan jelaskan mengapa jika ditanya.
Anda telah memahaminya
- Langkah algoritma adalah tak ambigu, deterministik, terbatas, efektif; rencanakan data dalam tabel pengenal
- tiga konstruk: sekuens, seleksi (
IF/CASE), iterasi (FOR/WHILE/REPEAT);WHILEmenguji sebelum,REPEATsetelah - flowchart dan pseudocode menggambarkan algoritma yang sama; penyempurnaan bertahap memperluas kerangka sampai dapat dikodekan
- kondisi adalah pernyataan logika: perbandingan yang digabungkan dengan
AND,OR,NOT