Notasi, penyempurnaan bertahap dan logika
| English | Bahasa Indonesia |
|---|---|
| notation/nəʊˈteɪʃn/ | notasi |
| structured English/ˈstrʌktʃəd ˈɪŋɡlɪʃ/ | bahasa Inggris terstruktur |
| pseudocode/ˈsuːdəʊkəʊd/ | pseudocode |
| flowchart/ˈfləʊtʃɑːt/ | flowchart |
| stepwise refinement/ˈstepwaɪz rɪˈfaɪnmənt/ | penyempurnaan bertahap |
| logic statement/ˈlɒdʒɪk ˈsteɪtmənt/ | pernyataan logika |
| Boolean/ˈbuːlɪən/ | Boolean |
| precedence/ˈpresɪdəns/ | precedence |
| De Morgan's law/də ˈmɔːɡənz lɔː/ | hukum De Morgan |
Algoritma pertama tidak memiliki bahasa untuk ditulis
- Pada tahun 1843 Ada Lovelace menerbitkan langkah-langkah untuk menghitung bilangan Bernoulli pada Mesin Analitik Babbage, sebuah mesin yang tidak pernah dibangun.
- Tidak ada bahasa pemrograman, jadi dia menulis algoritma sebagai tabel operasi bernomor: sebuah notasi miliknya sendiri.
- Setiap algoritma masih dimulai dengan cara itu. Anda menuliskannya dalam notasi tertentu, memeriksanya, dan baru kemudian mengubahnya menjadi kode.
- Pelajaran ini tentang tiga notasi yang digunakan ujian, bagaimana berpindah di antara mereka, dan bagaimana menulis kondisi di dalamnya.
Tiga notasi
- Bahasa Inggris terstruktur: kalimat biasa, disindikasi, dengan beberapa kata tetap seperti
IF,FOR EACH,REPEAT. Baik untuk kerangka pertama. - Pseudocode: notasi kata kunci (
IF … ENDIF,WHILE … ENDWHILE,FOR … NEXT), paling dekat dengan kode nyata dan dinilai berdasarkan panduan Cambridge. - Flowchart: diagram bentuk standar. Persegi panjang membulat untuk
START/STOP, jajar genjang untuk input dan output, persegi panjang untuk proses, belah ketupat untuk keputusan, panah untuk aliran.

Diagram alur untuk menghitung rata-rata daftar angka, digambar dengan bentuk-bentuk standar
Dalam flowchart, bentuk mana yang mewakili keputusan?
Berlian adalah keputusan; persegi panjang membulat = mulai/berhenti, jajar genjang = input/output, persegi panjang = proses.
Pasangkan setiap bentuk flowchart dengan maknanya.
Jajar genjang = I/O, persegi panjang = proses, persegi panjang membulat = mulai/berhenti, berlian = keputusan.
Pasangkan setiap notasi dengan deskripsinya.
Ketiganya menggambarkan algoritma yang sama pada jarak berbeda dari kode.
Contoh terpecahkan: bahasa Inggris terstruktur ke pseudocode
- Bahasa Inggris terstruktur: Atur total ke nol. Untuk setiap dari N bilangan, tambahkan ke total. Bagi total dengan N dan hasil output.
- Setiap kalimat menjadi satu konstruk: sebuah indeksasi, sebuah
FORperulangan dengan indeksasi di dalamnya, kemudian sebuah indeksasi dan sebuah output.
Total <- 0
FOR Index <- 1 TO N
Total <- Total + Number[Index]
NEXT Index
Average <- Total / N
OUTPUT Average
- Urutan kalimat adalah urutan pernyataan. Tidak ada yang ditambahkan dan tidak ada yang dibiarkan keluar.
Dalam algoritma rata-rata, FOR loop yang menambahkan setiap angka ke total adalah contoh dari konstruk ____.
Mengulang blok untuk setiap angka adalah iterasi. Penugasan di dalamnya menyimpan total berjalan.
Contoh terpecahkan: pseudocode ke flowchart
- Ambil algoritma yang sama.
STARTmasuk ke persegi panjang membulat,Total ← 0danIndex ← 1di persegi panjang. - Perulangan
FORmenjadi belah ketupat yang bertanyaIndex <= N?. Keluaran Ya menuju persegi panjangTotal ← Total + Number[Index], kemudianIndex ← Index + 1, dan panah kembali ke atas menuju belah ketupat. - Keluaran Tidak berlanjut ke
Average ← Total / N, jajar genjang output, danSTOP. - Berilah label pada kedua keluaran setiap berlian. Berlian dengan satu keluaran yang tidak diberi label bukanlah sebuah keputusan.
Penyempurnaan bertahap
- Penyempurnaan bertahap berarti menulis algoritma sebagai kerangka singkat, lalu memperluas setiap langkah menjadi sub-langkah yang lebih rinci, dan mengulanginya hingga setiap langkah dapat langsung dikodekan.
- Setiap tingkat mempertahankan struktur tingkat di atasnya dan menambahkan detail. Kerangka tidak dibuang: ia menjadi struktur program.
- Desain berhenti ketika suatu langkah berupa satu baris kode semu atau satu modul yang sudah Anda miliki.

Penyempurnaan bertahap memperluas setiap langkah hingga dapat dikodekan
Penyempurnaan bertahap adalah teknik untuk:
Anda menyempurnakan kerangka tingkat tinggi secara bertahap, menambahkan detail sambil mempertahankan struktur.
Contoh terpecahkan: tiga tingkat
- Tingkat 1: Proses nilai ujian.
- Tingkat 2: Masukkan setiap nilai. Hitung rata-rata. Hitung berapa banyak yang lulus. Keluarkan laporan.
- Tingkat 3, menyempurnakan "hitung berapa banyak yang lulus":
Passes ← 0, kemudianFORsetiap nilai,IF Mark >= 40 THEN Passes ← Passes + 1. - Ditanya untuk "mendeskripsikan penyempurnaan bertahap", berikan tiga ide: mulai dari kerangka, perluas setiap langkah menjadi langkah yang lebih kecil, hentikan ketika setiap langkah dapat diprogram.
Penyempurnaan bertahap: outline hingga kode
Turunkan level-levelnya. Anda memulai dengan seluruh tugas dalam satu baris dan terus menguraikan setiap langkah menjadi yang lebih kecil — hingga setiap langkah cukup sederhana untuk diprogram langsung.
Dalam penyempurnaan bertahap, setiap level baru menggantikan level di atasnya, sehingga kerangka asli dibuang.
Setiap level mempertahankan struktur dari level di atasnya dan menambahkan detail. Kerangka menjadi bentuk program yang selesai.
Pernyataan logika
- Pernyataan logika adalah kondisi Boolean: ia bernilai
TRUEatauFALSE, dan ia mengendalikan sebuahIF, sebuahWHILEatau sebuahUNTIL. - Ia dibangun dari perbandingan (
=,<>,<,>,<=,>=) yang digabungkan olehAND,ORdanNOT. Mark >= 0 AND Mark <= 100benar hanya untuk nilai dalam rentang tertentu.Age < 12 OR Age >= 65benar untuk anak-anak dan pensiunan.

Perbandingan yang digabungkan oleh AND, OR, dan NOT membentuk satu kondisi
Precedence dan kurung
- Operator diterapkan dalam urutan precedence tetap:
NOTpertama, kemudianAND, kemudianOR. - Jadi
A OR B AND CberartiA OR (B AND C), bukan(A OR B) AND C. DenganA = TRUE,B = FALSE,C = FALSEyang pertama adalahTRUEdan yang kedua adalahFALSE. - Gunakan kurung kapan pun suatu kondisi menggabungkan
ANDdanOR. Itu tidak memakan biaya dan menghilangkan ambiguitas.
Susun operator logika berdasarkan urutan prioritas, tertinggi (dievaluasi pertama) hingga terendah.
NOT mengikat paling ketat, kemudian AND, lalu OR — gunakan tanda kurung jika ragu.
Tanpa tanda kurung, apa arti A OR B AND C?
AND memiliki prioritas lebih tinggi daripada OR, sehingga dievaluasi lebih dulu. Tetap beri tanda kurung pada kondisi tersebut agar tidak perlu diingat siapa pun.
Hukum De Morgan
- Hukum De Morgan:
NOT (A AND B)sama dengan(NOT A) OR (NOT B), danNOT (A OR B)sama dengan(NOT A) AND (NOT B). - Secara lisan: "tidak (terdaftar dan bayar)" berarti "tidak terdaftar, atau tidak bayar".
- Gunakan untuk menyederhanakan suatu kondisi, atau untuk memeriksa satu: pilih nilai untuk
AdanB, hitung kedua sisinya, dan mereka harus sesuai dalam setiap kasus.
Menurut hukum De Morgan, NOT (A AND B) sama dengan (NOT A) OR (NOT B).
NOT mendistribusikan ke dalam tanda kurung dan membalik AND↔OR;fanu NOT (A OR B) = (NOT A) AND (NOT B).
Contoh terpecahkan: kondisi dari kata-kata
- Aturan: seorang siswa boleh mengikuti ujian jika mereka terdaftar dan telah membayar atau memiliki beasiswa, tetapi tidak jika mereka sedang dicabut haknya.
- Beri nama variabel Boolean:
Registered,Paid,Bursary,Suspended. - Pernyataan:
Registered AND (Paid OR Bursary) AND NOT Suspended. - Kurung di sekitar
Paid OR Bursarysangat penting. Tanpa itu,ANDakan terikat terlebih dahulu dan siswa dengan beasiswa tetapi tanpa pendaftaran akan masuk.
Kondisi mana yang setara dengan NOT (Registered AND Paid)? Pilih semua yang berlaku.
De Morgan mengubah NOT dari AND menjadi OR dari NOT-nya. Versi AND terlalu ketat: seorang siswa yang terdaftar tetapi belum membayar seharusnya membuat kondisi awal TRUE, namun versi AND membuatnya FALSE.
⟦⟧ Nilai yang sering terlewat
a = 1 OR 2bukanlah suatu kondisi. Tulisa = 1 OR a = 2: setiap sisi dariORharus merupakan perbandingan lengkap.NOThanya berlaku untuk apa yang mengikutinya.NOT A AND Bberarti(NOT A) AND B.- Sebuah berlian membutuhkan dua keluaran yang diberi label, dan sebuah perulangan membutuhkan panah yang kembali ke atas. Flowchart tanpa panah kembali bukanlah sebuah perulangan.
- Bahasa Inggris Terstruktur masih presisi. "Menangani nilai-nilai" bukanlah sebuah langkah; "tambahkan nilai ke total" adalah.
Untuk menguji apakah a bernilai 1 atau 2, kondisi yang benar adalah:
Setiap sisi dari OR harus berupa perbandingan penuh: a = 1 OR a = 2. Menulis a = 1 OR 2 adalah kesalahan umum.
Anda telah memahaminya
- Tiga notasi untuk satu algoritma: Bahasa Inggris Terstruktur, kode semu, flowchart (berlian = keputusan, panah balik = perulangan)
- penyempurnaan bertahap: kerangka → perluas setiap langkah → hentikan ketika langkah dapat dikodekan
- pernyataan logika adalah kondisi Boolean; precedence NOT → AND → OR, jadi gunakan kurung untuk apa pun yang menggabungkannya
- De Morgan:
NOT (A AND B)=NOT A OR NOT B;NOT (A OR B)=NOT A AND NOT B