Lompat ke konten

Desain algoritma dan pemecahan masalah

Ilmu Komputer IGCSE · Topik 7

Pelajaran video untuk topik ini Buka halaman video
9:17

Siklus Hidup Pengembangan Program

Setiap aplikasi di telepon Anda ditulis oleh seseorang seperti ini. Namun mereka tidak mulai dengan mengetik kode. Sebelum baris pertama, masalah dipelajari, solusinya dirumuskan…

Narasi bahasa Inggris · Subtitle bahasa Inggris + 中文 disematkan langsung

Silabus
Kandidat harus mampu: Catatan dan panduan
1 Pahami siklus pengembangan program, terbatas pada: analisis, desain, pemrograman dan pengujian • Termasuk mengidentifikasi setiap tahap dan melakukan tugas-tugas berikut untuk setiap tahap: – analisis: abstraksi, dekomposisi masalah, identifikasi masalah dan kebutuhan – desain: dekomposisi, diagram struktur, flowchart, pseudocode – pemrograman: penulisan kode program dan pengujian iteratif – pengujian: pengujian kode program dengan penggunaan data uji
2 (a) Pahami bahwa setiap sistem komputer terdiri dari sub-sistem, yang terdiri dari sub-sistem lebih lanjut (b) Pahami bagaimana suatu masalah dapat didekomposisi menjadi bagian-bagian penyusunnya • Termasuk: – input – proses – output – penyimpanan
(c) Gunakan berbagai metode untuk merancang dan membangun solusi atas suatu masalah • Termasuk: – diagram struktur – flowchart – pseudocode
3 Jelaskan tujuan dari algoritma tertentu • Termasuk: – menyatakan tujuan algoritma – menjelaskan proses-proses yang terlibat dalam algoritma
4 Pahami metode penyelesaian standar • Terbatas pada: – pencarian linear – sorting gelembung – penjumlahan total – penghitungan – menemukan nilai maksimum, minimum, dan rata-rata
5 (a) Pahami perlunya pemeriksaan validasi pada data masuk dan jenis-jenis pemeriksaan validasi • Termasuk: – pemeriksaan rentang – pemeriksaan panjang – pemeriksaan tipe – pemeriksaan keberadaan – pemeriksaan format – digit pengecek
(b) Pahami perlunya pemeriksaan verifikasi pada data masuk dan jenis-jenis pemeriksaan verifikasi • Termasuk: – pemeriksaan visual – pemeriksaan entri ganda
6 Sarankan dan terapkan data uji yang sesuai • Terbatas pada: – normal – tidak normal – ekstrem – batas • Data ekstrem adalah nilai terbesar/terkecil yang dapat diterima • Data batas adalah nilai terbesar/terkecil yang dapat diterima dan nilai terkecil/terbesar yang ditolak yang bersesuaian
7 Lengkapi tabel pelacakan untuk mendokumentasikan dry-run (jalur kering) dari sebuah algoritma • Termasuk, pada setiap langkah dalam algoritma: – variabel – output – prompt pengguna
8 Identifikasi kesalahan dalam algoritma yang diberikan dan sarankan cara memperbaiki kesalahan tersebut
9 Tulis dan ubah algoritma untuk masalah atau skenario tertentu, menggunakan: pseudocode, kode program, dan flowchart • Presisi diperlukan saat menulis algoritma, mis. x > y dapat diterima tetapi x is greater than y tidak dapat diterima • Lihat bagian 4 untuk simbol flowchart • Lihat bagian 4 untuk pseudocode

Sumber: Silabus Cambridge International

7.1

Siklus hidup pengembangan program

Siklus hidup pengembangan program adalah serangkaian tahap yang digunakan untuk membuat sebuah program. Ada empat tahap.

Seorang pemrogram mengetik kode di komputer *Perangkat lunak ditulis oleh para pemrogram, yang mengikuti siklus pengembangan

Tahap Apa yang Anda lakukan
analisis pelajari masalah dan tentukan apa yang diperlukan
desain rencanakan bagaimana program akan bekerja
pengkodean tulis kode program dan uji seiring jalannya proses
pengujian jalankan program selesai dengan data uji untuk menemukan kesalahan

Empat tahap berurutan — analisis, desain, pengkodean, pengujian — dengan panah umpan balik dari pengujian kembali ke desain *Empat tahap pengembangan program; pengujian memberikan umpan balik untuk memperbaiki dan menyempurnakan desain

Diagram alir program dengan kotak proses dan belah ketupat keputusan *Diagram alir program menggambarkan langkah-langkah dan keputusan program selama tahap desain

Analisis

Dalam analisis, Anda memahami masalah. Dua keterampilan kunci membantu:

  • abstraksi — pertahankan hanya detail penting dan abaikan sisanya;
  • dekomposisi — pecahkan masalah besar menjadi bagian-bagian yang lebih kecil dan mudah.

Desain

Dalam desain, Anda merencanakan solusi, sering menggunakan dekomposisi. Anda dapat menampilkan bagian-bagian sebagai sub-sistem dalam diagram struktur (grafik yang memecah sistem menjadi kotak-kotak yang lebih kecil).

Pengkodean dan pengujian

Dalam pengkodean, Anda menulis kode program. Anda menggunakan pengujian iteratif — menguji bagian-bagian kecil berkali-kali saat Anda membangunnya. Dalam pengujian, Anda menjalankan seluruh program dengan data uji untuk memastikan program berfungsi.

Kosa kata Latih
English Bahasa Indonesia
program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ siklus hidup pengembangan program
analysis/əˈnæləsɪs/ analisis
design/dɪˈzaɪn/ desain
coding/ˈkəʊdɪŋ/ pemrograman
testing/ˈtestɪŋ/ pengujian
abstraction/əbˈstrækʃn/ abstraksi
decomposition/ˌdiːkɒmpəˈzɪʃn/ dekomposisi
sub-systems/sʌb ˈsɪstəmz/ sub-sistem
structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ diagram struktur
iterative testing/ˈɪtərətɪv ˈtestɪŋ/ pengujian iteratif
test data/test ˈdeɪtə/ data uji
flowchart/ˈfləʊtʃɑːt/ flowchart
7.2

Alat desain

Anda dapat merencanakan solusi dengan tiga cara utama.

  • diagram struktur — menunjukkan bagian-bagian sistem dan bagaimana mereka saling terkait;
  • diagram alir — diagram menggunakan kotak dan panah untuk menunjukkan langkah-langkah secara berurutan;
  • pseudokode — langkah-langkah yang ditulis dalam bahasa Inggris sederhana yang menyerupai kode (bukan bahasa nyata).
Diagram alir untuk menjumlahkan angka 1 hingga n, dengan simbol mulai/akhir, input/keluaran, proses dan keputusan, plus legenda yang menamai setiap bentuk
Diagram alir untuk algoritma penjumlahan, menggunakan simbol standar (mulai/akhir, input/keluaran, proses, keputusan)
Kosa kata Latih
English Bahasa Indonesia
input/ˈɪnpʊt/ input
processing/ˈprəʊsesɪŋ/ pemrosesan
7.3

Algoritma

Bubble sort, pass by pass

Sebuah algoritma adalah serangkaian langkah, dalam urutan yang benar, yang memecahkan masalah. Setiap algoritma dapat dibagi menjadi tiga bagian:

  • input — data yang masuk;
  • pemrosesan — pekerjaan yang dilakukan pada data;
  • output — hasil yang keluar.

Ini disebut dekomposisi menjadi input, proses, dan output. Misalnya, untuk "temukan rata-rata dari tiga nilai ujian": inputnya adalah tiga nilai ujian; pemrosesannya adalah menjumlahkannya dan membagi dengan 3; outputnya adalah rata-ratanya.

Tiga kotak — INPUT (3 nilai ujian), PROCESS (jumlahkan, bagi dengan 3), OUTPUT (rata-rata) — dihubungkan oleh panah *Setiap algoritma terurai menjadi input, pemrosesan, dan output — di sini, menemukan rata-rata dari tiga nilai ujian

Kosa kata Latih
English Bahasa Indonesia
output/ˈaʊtpʊt/ output
validation/ˌvælɪˈdeɪʃn/ validasi
bubble sort/ˈbʌbl sɔːt/ bubble sort
totalling/ˈtəʊtəlɪŋ/ penjumlahan total
counting/ˈkaʊntɪŋ/ menghitung
maximum/ˈmæksɪməm/ maksimum
7.4

Validasi dan verifikasi

Ketika data dimasukkan, Anda memeriksanya untuk mengurangi kesalahan.

Validasi memeriksa apakah data masuk akal dan mematuhi aturan. Validasi tidak dapat memastikan data benar, hanya bahwa data tersebut diperbolehkan.

Pengecekan validasi Apa yang dicek
range check nilai berada di antara batas minimum dan maksimum yang diperbolehkan
length check jumlah karakter diperbolehkan (misalnya: kata sandi ≥ 8)
type check data memiliki tipe yang tepat (misalnya: angka, bukan huruf)
presence check sesuatu benar-benar telah dimasukkan (tidak dibiarkan kosong)
format check data berada dalam pola yang tepat (misalnya: tanggal sebagai dd/mm/yyyy)
check digit digit tambahan mengonfirmasi bahwa nomor telah dimasukkan dengan benar

Verifikasi memeriksa apakah data telah disalin atau dimasukkan dengan benar (tanpa kesalahan saat mengetiknya). Dua metode:

  • visual check — seseorang membandingkan data yang diketik dengan data asli;
  • double entry — data dimasukkan dua kali dan kedua salibannya dibandingkan.
Kosa kata Latih
English Bahasa Indonesia
range check/reɪndʒ tʃek/ pemeriksaan rentang
length check/leŋθ tʃek/ pemeriksaan panjang
type check/taɪp tʃek/ pemeriksaan tipe
presence check/ˈprezəns tʃek/ pemeriksaan kehadiran
format check/ˈfɔːmæt tʃek/ pemeriksaan format
check digit/tʃek ˈdɪdʒɪt/ digit pengecek
verification/ˌverɪfɪˈkeɪʃn/ verifikasi
visual check/ˈvɪʒuːəl tʃek/ pemeriksaan visual
double entry/ˈdʌbl ˈentri/ entri ganda
minimum/ˈmɪnɪməm/ minimum
7.5

Tabel pelacakan

Sebuah tabel pelacakan mencatat nilai setiap variabel saat algoritma berjalan, langkah demi langkah. Ini membantu Anda:

Tabel pelacakan dengan kolom count, total, output
Tabel pelacakan mencatat nilai setiap variabel saat program berjalan
  • memeriksa apakah algoritma bekerja dengan benar;
  • menentukan apa yang dilakukan algoritma dengan melacaknya menggunakan data yang diberikan.

Contoh: lacak algoritma ini dengan input 5.

INPUT N
Total ← 0
FOR I ← 1 TO N
    Total ← Total + I
NEXT I
OUTPUT Total
i total OUTPUT
1 1
2 3
3 6
4 10
5 15 15

Pelacakan menunjukkan algoritma menjumlahkan 1 hingga n. Dengan input 5, output adalah 15.

Contoh terpecahkan. Lacak algoritma ini dan berikan output-nya.

X ← 20
Count ← 0
WHILE X > 1
    X ← DIV(X, 2)
    Count ← Count + 1
ENDWHILE
OUTPUT Count

DIV memberikan hanya bagian bilangan bulat dari sebuah pembagian. Ambil satu baris per putaran: x menjadi 10 (count 1), kemudian 5 (count 2), kemudian 2 (count 3), kemudian 1 (count 4). Sekarang x > 1 bernilai salah, sehingga loop berhenti dan outputnya adalah 4. Dua kebiasaan melindungi nilai ini: uji kondisi sebelum setiap putaran daripada setelah, dan tulis baris baru untuk setiap putaran - mencoba menyimpan nilai-nilai dalam ingatan adalah penyebab kesalahan pada pelacakan.

Jelajahi

Tabel jejak

Langkahkan melalui loop dan isi tabel jejak, satu baris per putaran.

Kosa kata Latih
English Bahasa Indonesia
pseudocode/ˈsuːdəʊkəʊd/ pseudocode
algorithm/ˈælɡərɪθəm/ algoritma
trace table/treɪs ˈteɪbl/ tabel jejak
7.6

Data uji

Data uji adalah data yang Anda gunakan untuk menguji sebuah program. Ada empat jenis yang harus Anda ketahui.

Jenis Makna Contoh (usia 0–120 diperbolehkan)
normal data masuk akal yang seharusnya diterima 25
abnormal data yang salah yang seharusnya ditolak -4 atau "cat"
extreme nilai terbesar dan terkecil yang masih diperbolehkan 0 dan 120
boundary nilai di kedua sisi batas (satu diperbolehkan, satu tidak) 120 dan 121
Kosa kata Latih
English Bahasa Indonesia
normal/ˈnɔːml/ normal
abnormal/əbˈnɔːml/ tidak normal
extreme/ekˈstriːm/ ekstrem
boundary/ˈbaʊndəri/ batas
7.7

Metode standar penyelesaian

Anda harus mengetahui algoritma-algoritma umum ini.

Pencarian linear

Pencarian linear (linear search) memeriksa setiap item dalam daftar, satu per satu, hingga menemukan nilai yang diinginkan atau mencapai akhir.

Found ← FALSE
FOR I ← 0 TO 9
    IF List[I] = SearchValue
      THEN
        Found ← TRUE
    ENDIF
NEXT I
OUTPUT Found
Daftar delapan angka yang dipindai dari kiri ke kanan, mencari angka 5; empat pertama tidak cocok dan kelima ditemukan
Pencarian linear memeriksa setiap item secara berurutan dari awal hingga menemukan nilainya

Pengurutan gelembung

Sortir gelembung (bubble sort) menyusun daftar agar tersusun. Algoritma ini membandingkan setiap pasangan item yang berdampingan dan menukarnya jika urutannya salah. Algoritma ini mengulangi proses ini hingga tidak ada lagi penukaran yang diperlukan.

FOR I ← 0 TO 8
    IF List[I] > List[I + 1]
      THEN
        Temp ← List[I]
        List[I] ← List[I + 1]
        List[I + 1] ← Temp
    ENDIF
NEXT I
Daftar di mana pasangan pertama 5 dan 2 tidak sesuai urutan, ditunjukkan bertukar menjadi 2 dan 5, dengan catatan untuk diulang untuk setiap pasangan
Sortir gelembung membandingkan setiap pasangan yang berdampingan dan menukarnya jika tidak sesuai urutan, diulang hingga tersorted

Penjumlahan dan Penghitungan

  • penjumlahan — terus menambahkan nilai ke total kumulatif (Total ← Total + Value).
  • penghitungan — tambahkan 1 ke penghitung setiap kali suatu hal terjadi (Count ← Count + 1).

Maksimum, Minimum, dan Rata-rata

  • untuk menemukan maksimum: simpan nilai terbesar yang terlihat sejauh ini.
  • untuk menemukan minimum: simpan nilai terkecil yang terlihat sejauh ini.
  • untuk menemukan rata-rata: bagi total dengan berapa banyak nilai yang ada.
Total ← 0
FOR I ← 0 TO 9
    Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
Kosa kata Latih
English Bahasa Indonesia
linear search/ˈlɪnɪə sɜːtʃ/ pencarian linear
average/ˈævrɪdʒ/ rata-rata
7.8

Tips ujian

  • Pelajari empat tahap siklus hidup: analisis → desain → penulisan kode → pengujian. Abstraksi hanya mempertahankan detail penting; dekomposisi memecah masalah menjadi bagian-bagian yang lebih kecil.
  • Validasi memeriksa data masuk akal (pemeriksaan range, panjang, tipe, kehadiran, format); verifikasi memeriksa data tersebut disalin dengan benar (pemeriksaan visual atau entri ganda).
  • Pelajari empat jenis data uji: normal (diterima), abnormal (ditolak), ekstrem (nilai terbesar/terkecil yang masih diperbolehkan), batas (nilai di kedua sisi limit).
  • Untuk menentukan apa yang dilakukan algoritma, isi tabel pelacakan — tuliskan nilai setiap variabel pada setiap langkah.
  • Kenali algoritma standar: pencarian linear (periksa setiap item secara berurutan) dan sortir gelembung (tukar pasangan yang berdampingan hingga tidak ada lagi penukaran yang diperlukan).

Pelajaran interaktif untuk topik ini

Kerjakan langkah demi langkah, dengan latihan pengecekan instan.

Soal-Soil Masa Lalu

Topik lain dalam Ilmu Komputer IGCSE

Masuk atau buat akun

IGCSE, A-Level & AP