Lompat ke konten

Algoritma dan Pemrograman

AP Prinsip Ilmu Komputer · Topik 3

Pelajaran video untuk topik ini Buka halaman video
9:17

Algoritma dan Pemrograman

Bayangkan buku telepon dengan satu juta nama, dan Anda harus menemukan satu. Periksa satu per satu, dan Anda bisa menghabiskan seluruh hari di sana. Ada cara untuk menemukannya dalam sekitar…

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

Kode di bawah ini menggunakan AP CSP pseudocode – referensi netral bahasa dari ujian. Atribut ditulis a ← expression, dan indeks daftar dimulai dari 1.

3.1

Variabel dan Atribut

Silabus

Pemahaman Berkelanjutan (AAP-1): Untuk menemukan solusi spesifik terhadap masalah yang dapat digeneralisasi, pemrogram merepresentasikan dan mengorganisir data dalam berbagai cara.

Tujuan Pembelajaran AAP-1.A: Representasikan nilai dengan variabel. [Keterampilan 3.A]

  • AAP-1.A.1 Variabel adalah abstraksi di dalam program yang dapat menyimpan nilai. Setiap variabel memiliki penyimpanan data terkait yang mewakili satu nilai pada satu waktu, tetapi nilai tersebut bisa berupa daftar atau kumpulan lain yang pada gilirannya berisi beberapa nilai.
  • AAP-1.A.2 Menggunakan nama variabel yang bermakna membantu keterbacaan kode program dan pemahaman tentang nilai apa yang diwakili oleh variabel tersebut.
  • AAP-1.A.3 Beberapa bahasa pemrograman menyediakan tipe untuk merepresentasikan data, yang dirujuk menggunakan variabel. Tipe-tipe ini mencakup angka, Boolean, daftar, dan string.
  • AAP-1.A.4 Beberapa nilai lebih cocok untuk direpresentasikan menggunakan satu jenis data daripada yang lain.

Tujuan Pembelajaran AAP-1.B: Menentukan nilai variabel sebagai hasil dari sebuah penugasan. [Keterampilan 4.B]

  • AAP-1.B.1 Operator penugasan memungkinkan program mengubah nilai yang diwakili oleh sebuah variabel.

  • AAP-1.B.2 Lembar referensi ujian menyediakan operator "$\leftarrow$" untuk digunakan dalam penugasan. Sebagai contoh,

    Teks:

    a ← expression

    Blok:

    a ← expression

    mengevaluasi expression dan kemudian menugaskan salinan hasilnya ke variabel a.

  • AAP-1.B.3 Nilai yang disimpan dalam variabel akan menjadi nilai penugasan terakhir. Sebagai contoh:

    a ← 1 b ← a a ← 2 display(b)

    masih menampilkan 1.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Variabel adalah tempat bernama yang memegang nilai. Operator atribut menyimpan nilai di sebelah kanan ke variabel di sebelah kiri:

Variabel adalah tempat penyimpanan bernama yang nilainya dapat berubah
Variabel adalah tempat penyimpanan bernama yang nilainya dapat berubah
a ← 5
b ← a + 3      // b is now 8

Sebuah variabel memegang satu nilai pada satu waktu; atribut lagi menggantinya. Variabel memungkinkan program menyimpan input, mengingat hasil, dan menggunakannya kembali.

Jelajahi

Lihat variabel menahan dan mengubah nilainya

Sebuah variabel adalah kotak bernama yang menyimpan satu nilai pada satu waktu. Sebuah penugasan menyalin nilai ke dalam kotak; penugasan ulang menimpa apa pun yang ada di sana.

Kosa kata Latih
English Bahasa Indonesia
variable/ˈveərɪəbl/ pembolehubah
assignment/əˈsaɪnmənt/ penugasan
Data abstraction/ˈdeɪtə əbˈstrækʃn/ Abstraksi data
remainder/rɪˈmeɪndə/ sisa
3.2

Abstraksi Data

Silabus

Pemahaman Berkelanjutan (AAP-1): Untuk menemukan solusi spesifik terhadap masalah yang dapat digeneralisasi, pemrogram merepresentasikan dan mengorganisir data dalam berbagai cara.

Tujuan Pembelajaran AAP-1.C: Representasikan daftar (list) atau string menggunakan variabel. [Keterampilan 3.A]

  • AAP-1.C.1 Sebuah daftar adalah urutan elemen yang tertata. Misalnya,

    [value1, value2, value3, ...]

    menggambarkan daftar di mana value1 adalah elemen pertama, value2 adalah elemen kedua, value3 adalah elemen ketiga, dan seterusnya.

  • AAP-1.C.2 Sebuah elemen adalah nilai individu dalam daftar yang diberi indeks unik.

  • AAP-1.C.3 Sebuah indeks adalah metode umum untuk merujuk pada elemen-elemen dalam daftar atau string menggunakan bilangan asli.

  • AAP-1.C.4 Sebuah string adalah urutan karakter yang tertata.

Tujuan Pembelajaran AAP-1.D: Untuk abstraksi data: a. Kembangkan abstraksi data menggunakan daftar untuk menyimpan banyak elemen. [Keterampilan 3.B] b. Jelaskan bagaimana penggunaan abstraksi data mengelola kompleksitas dalam kode program. [Keterampilan 3.C]

  • AAP-1.D.1 Abstraksi data menyediakan pemisahan antara sifat abstrak dari tipe data dan detail konkret dari representasinya.

  • AAP-1.D.2 Abstraksi data mengelola kompleksitas dalam program dengan memberikan nama kepada sekumpulan data tanpa merujuk pada detail spesifik dari representasinya.

  • AAP-1.D.3 Abstraksi data dapat dibuat menggunakan daftar.

  • AAP-1.D.4 Mengembangkan abstraksi data untuk diimplementasikan dalam program dapat menghasilkan program yang lebih mudah dikembangkan dan dipelihara.

  • AAP-1.D.5 Abstraksi data sering kali mengandung elemen dengan berbagai jenis.

  • AAP-1.D.6 Penggunaan daftar memungkinkan beberapa item terkait diperlakukan sebagai satu nilai. Daftar disebut dengan nama-nama berbeda, seperti array, tergantung pada bahasa pemrograman.

    • Pengecualian (EK AAP-1.D.6): Penggunaan linked list berada di luar cakupan kursus ini dan Ujian AP.
  • AAP-1.D.7 Lembar referensi ujian menyediakan notasi

    [value1, value2, value3, ...]

    untuk membuat daftar dengan nilai-nilai tersebut sebagai item pertama, kedua, ketiga, dan seterusnya. Sebagai contoh,

    • Teks:

      aList ← [value1, value2, value3, ...]

      Blok:

      aList ← value1, value2, value3

      membuat daftar baru yang berisi nilai value1, value2, value3, dan ... pada indeks 1, 2, 3, dan ... secara berturut-turut dan menugaskannya ke aList.

    • Teks:

      aList ← []

      Blok:

      aList ← (kosong)

      membuat daftar kosong baru dan menugaskannya ke aList.

    • Teks:

      aList ← bList

      Blok:

      aList ← bList

      menyalin daftar bList ke daftar aList. Sebagai contoh, jika bList berisi [20, 40, 60], maka aList juga akan berisi [20, 40, 60] setelah penugasan.

  • AAP-1.D.8 Lembar referensi ujian mendeskripsikan struktur daftar di mana nilai indeksnya adalah 1 hingga jumlah elemen dalam daftar, termasuk. Untuk semua operasi daftar, jika indeks daftar kurang dari 1 atau lebih besar dari panjang daftar, pesan kesalahan dihasilkan dan program akan berhenti.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Abstraksi data memungkinkan Anda mengelola kompleksitas dengan memberikan nama tunggal untuk kumpulan data – misalnya, daftar daripada puluhan variabel terpisah. Ini menyembunyikan detail: Anda menggunakan kumpulan yang dinamai tanpa khawatir tentang bagaimana cara penyimpanannya. Daftar (di bawah) adalah abstraksi data utama dalam kursus ini.

3.3

Ekspresi Matematika

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.A: Nyatakan algoritma yang menggunakan pengurutan tanpa menggunakan bahasa pemrograman. [Keterampilan 2.A]

  • AAP-2.A.1 Algoritma adalah himpunan instruksi terbatas yang menyelesaikan tugas tertentu.
  • AAP-2.A.2 Di luar bahasa pemrograman visual dan tekstual, algoritma dapat dinyatakan dalam berbagai cara, seperti bahasa alami, diagram, dan pseudokode.
  • AAP-2.A.3 Algoritma yang dieksekusi oleh program diimplementasikan menggunakan bahasa pemrograman.
  • AAP-2.A.4 Setiap algoritma dapat dibangun menggunakan kombinasi pengurutan, pemilihan, dan iterasi.

Tujuan Pembelajaran AAP-2.B: Representasikan proses algoritmik langkah demi langkah menggunakan pernyataan kode berurutan. [Keterampilan 2.B]

  • AAP-2.B.1 Pengurutan adalah penerapan setiap langkah algoritma sesuai urutan pernyataan kode yang diberikan.
  • AAP-2.B.2 Pernyataan kode adalah bagian dari kode program yang mengekspresikan tindakan yang akan dilakukan.
  • AAP-2.B.3 Ekspresi dapat terdiri dari nilai, variabel, operator, atau panggilan prosedur yang mengembalikan nilai.
  • AAP-2.B.4 Ekspresi dievaluasi untuk menghasilkan satu nilai.
  • AAP-2.B.5 Evaluasi ekspresi mengikuti serangkaian urutan operasi yang didefinisikan oleh bahasa pemrograman.
  • AAP-2.B.6 Pernyataan berurutan dieksekusi sesuai urutan kemunculannya dalam segmen kode.
  • AAP-2.B.7 Kejelasan dan keterbacaan adalah pertimbangan penting ketika menyatakan algoritma dalam bahasa pemrograman.

Tujuan Pembelajaran AAP-2.C: Evaluasi ekspresi yang menggunakan operator aritmatika. [Keterampilan 4.B]

  • AAP-2.C.1 Operator aritmatika merupakan bagian dari sebagian besar bahasa pemrograman dan mencakup operator penjumlahan, pengurangan, perkalian, pembagian, dan modulus.

  • AAP-2.C.2 Lembar referensi ujian menyediakan a MOD b, yang mengevaluasi sisa ketika a dibagi oleh b. Asumsikan bahwa a adalah bilangan bulat lebih besar atau sama dengan 0 dan b adalah bilangan bulat lebih besar dari 0. Sebagai contoh, 17 MOD 5 mengevaluasi menjadi 2.

  • AAP-2.C.3 Lembar referensi ujian menyediakan operator aritmatika +, -, *, /, dan MOD.

    Teks dan Blok:

    • a + b
    • a - b
    • a * b
    • a / b
    • a MOD b

    Ini digunakan untuk melakukan aritmatika pada a dan b. Sebagai contoh, 17 / 5 mengevaluasi menjadi 3.4.

  • AAP-2.C.4 Urutan operasi yang digunakan dalam matematika berlaku saat mengevaluasi ekspresi. Operator MOD memiliki tingkat prioritas yang sama dengan operator * dan /.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Program menghitung dengan operator +, -, *, /, dan MOD (sisa pembagian, mis. 17 MOD 5 adalah 2). Ekspresi mengikuti urutan operasi biasa. MOD sangat berguna untuk menguji kelipatan (n MOD 2 = 0 berarti n adalah genap) dan untuk membungkus nilai di sekitar rentang.

Jelajahi

Evaluasi ekspresi langkah demi langkah

Ekspresi dievaluasi dengan urutan operasi: perkalian dan pembagian terjadi sebelum penjumlahan dan pengurangan, dari kiri ke kanan.

3.4

String

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.D: Evaluasi ekspresi yang memanipulasi string. [Keterampilan 4.B]

  • AAP-2.D.1 Konkatenasi string menggabungkan dua atau lebih string ujung-ke-ujung untuk membuat string baru.
  • AAP-2.D.2 Substring adalah bagian dari string yang sudah ada.

Sumber: Deskripsi Kursus dan Ujian College Board AP

String adalah urutan karakter yang terurut, seperti "hello". Program menggabungkan string (konkatenasi) dan menemukan panjang mereka. String merepresentasikan teks – nama, pesan, urutan – dan merupakan input serta output program yang umum.

Kosa kata Latih
English Bahasa Indonesia
string/strɪŋ/ string
concatenation/kənˌkætəˈneɪʃn/ konkatenasi
Boolean expression/ˈbuːlɪən ekˈspreʃn/ ekspresi Boolean
conditional (selection)/kənˈdɪʃənl/ kondisional (seleksi)
nested conditional/ˈnestɪd kənˈdɪʃənl/ kondisional bersarang
Iteration (a loop)/ˌɪtəˈreɪʃn/ Iterasi (perulangan)
infinite loop/ˈɪnfɪnət luːp/ perulangan tak hingga
algorithm/ˈælɡərɪθəm/ algoritma
list/lɪst/ daftar
3.5

Ekspresi Boolean

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.E: Untuk hubungan antara dua variabel, ekspresi, atau nilai: a. Tulis ekspresi menggunakan operator relasional. [Keterampilan 2.B] b. Evaluasi ekspresi yang menggunakan operator relasional. [Keterampilan 4.B]

  • AAP-2.E.1 Nilai Boolean adalah benar atau salah.

  • AAP-2.E.2 Lembar referensi ujian menyediakan operator relasional berikut: =, ≠, >, <, ≥, dan ≤.

    Teks dan Blok:

    • a = b
    • a ≠ b
    • a > b
    • a < b
    • a ≥ b
    • a ≤ b

    Ini digunakan untuk menguji hubungan antara dua variabel, ekspresi, atau nilai. Perbandingan menggunakan operator relasional mengevaluasi menjadi nilai Boolean. Sebagai contoh, a = b mengevaluasi menjadi true jika a dan b sama; sebaliknya, mengevaluasi menjadi false.

Tujuan Pembelajaran AAP-2.F: Untuk hubungan antara nilai Boolean: a. Tulis ekspresi menggunakan operator logika. [Keterampilan 2.B] b. Evaluasi ekspresi yang menggunakan operator logika. [Keterampilan 4.B]

  • AAP-2.F.1 Lembar referensi ujian menyediakan operator logika NOT, AND, dan OR, yang mengevaluasi menjadi nilai Boolean.

  • AAP-2.F.2 Lembar referensi ujian menyediakan

    Teks:

    NOT condition

    Blok:

    NOT condition

    yang mengevaluasi menjadi true jika condition adalah false; sebaliknya mengevaluasi menjadi false.

  • AAP-2.F.3 Lembar referensi ujian menyediakan

    Teks:

    condition1 AND condition2

    Blok:

    condition1 AND condition2

yang mengevaluasi menjadi true jika kedua condition1 dan condition2 adalah true; sebaliknya mengevaluasi menjadi false.

  • AAP-2.F.4 Lembar referensi ujian menyediakan

    Teks:

    condition1 OR condition2

    Blok:

    condition1 OR condition2

yang mengevaluasi menjadi true jika condition1 adalah true atau jika condition2 adalah true atau jika kedua condition1 dan condition2 adalah true; sebaliknya mengevaluasi menjadi false.

  • AAP-2.F.5 Operand untuk operator logika adalah ekspresi Boolean atau nilai Boolean tunggal.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Ekspresi Boolean dievaluasi menjadi true atau false. Ia menggunakan operator relasional (=, ≠, <, >, ≤, ≥) dan operator logika NOT, AND, OR:

Tiga keluarga operator: aritmatika, relasional, dan logika
Tiga keluarga operator: aritmatika, relasional, dan logika
  • NOT membalikkan nilai,
  • AND benar hanya ketika kedua sisi bernilai benar,
  • OR bernilai benar jika setidaknya satu sisi benar.

Kondisi-kondisi ini menggerakkan setiap keputusan dan perulangan.

Jelajahi

Coba tabel kebenaran OR

Sebuah ekspresi Boolean bernilai benar (1) atau salah (0). OR bernilai benar jika setidaknya satu input benar; balikkan input untuk melihat setiap kasus.

3.6

Kondisional

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.G: Nyatakan algoritma yang menggunakan seleksi tanpa menggunakan bahasa pemrograman. [Keterampilan 2.A]

  • AAP-2.G.1 Seleksi menentukan bagian mana dari algoritma yang dieksekusi berdasarkan kondisi yang true atau false.

Tujuan Pembelajaran AAP-2.H: Untuk seleksi: a. Tulis pernyataan kondisional. [Keterampilan 2.B] b. Tentukan hasil dari pernyataan kondisional. [Keterampilan 4.B]

  • AAP-2.H.1 Pernyataan kondisional, atau "pernyataan if", memengaruhi alur kontrol berurutan dengan mengeksekusi pernyataan berbeda berdasarkan nilai ekspresi Boolean.

  • AAP-2.H.2 Lembar referensi ujian menyediakan

    Teks:

    IF(condition) { <block of statements> }

    Blok:

    IF condition block of statements

di mana kode dalam block of statements dieksekusi jika ekspresi Boolean condition mengevaluasi menjadi true; tidak ada tindakan yang diambil jika condition mengevaluasi menjadi false.

  • AAP-2.H.3 Lembar referensi ujian menyediakan

    Teks:

    IF(condition) { <first block of statements> } ELSE { <second block of statements> }

    Blok:

    IF condition first block of statements ELSE second block of statements

di mana kode dalam first block of statements dieksekusi jika ekspresi Boolean condition mengevaluasi menjadi true; sebaliknya, kode dalam second block of statements dieksekusi.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Kondisional (seleksi) memilih kode mana yang akan dijalankan. IF menjalankan blok hanya ketika kondisinya benar; ELSE memberikan alternatif:

Seleksi memilih antara jalur berdasarkan kondisi
Seleksi memilih antara jalur berdasarkan kondisi
IF (score ≥ 60)
{
    DISPLAY("Pass")
}
ELSE
{
    DISPLAY("Fail")
}
Jelajahi

Ikuti keputusan if / else

Sebuah kondisional menjalankan satu cabang atau cabang lain tergantung apakah kondisinya benar. Geser nilai melintasi ambang batas dan lihat cabang mana yang diambil.

3.7

Kondisional Bersarang

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.I: Untuk seleksi bersarang: a. Tulis pernyataan kondisional bersarang. [Keterampilan 2.B] b. Tentukan hasil dari pernyataan kondisional bersarang. [Keterampilan 4.B]

  • AAP-2.I.1 Pernyataan kondisional bersarang terdiri dari pernyataan kondisional di dalam pernyataan kondisional.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Kondisional bersarang menempatkan satu IF di dalam yang lain (atau rantai ELSE IF) untuk memilih di antara lebih dari dua jalur. Hanya cabang pertama yang cocok yang berjalan:

IF (g ≥ 90)      { grade ← "A" }
ELSE IF (g ≥ 80) { grade ← "B" }
ELSE             { grade ← "C" }
3.8

Iterasi

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.J: Nyatakan algoritma yang menggunakan iterasi tanpa menggunakan bahasa pemrograman. [Keterampilan 2.A]

  • AAP-2.J.1 Iterasi adalah bagian berulang dari algoritma. Iterasi mengulangi sejumlah tertentu kali atau hingga kondisi tertentu terpenuhi.

Tujuan Pembelajaran AAP-2.K: Untuk iterasi: a. Tulis pernyataan iterasi. [Keterampilan 2.B] b. Tentukan hasil atau efek samping dari pernyataan iterasi. [Keterampilan 4.B]

  • AAP-2.K.1 Pernyataan iterasi mengubah alur kontrol berurutan dengan mengulangi serangkaian pernyataan nol atau lebih kali, hingga kondisi berhenti terpenuhi.

  • AAP-2.K.2 Lembar referensi ujian menyediakan

    Teks:

    REPEAT n TIMES { <block of statements> }

    Blok:

    REPEAT n TIMES block of statements

di mana block of statements dieksekusi sebanyak n kali.

  • AAP-2.K.3 Lembar referensi ujian menyediakan

    Teks:

    REPEAT UNTIL(condition) { <block of statements> }

    Blok:

    REPEAT UNTIL condition block of statements

di mana kode dalam block of statements diulang hingga ekspresi Boolean condition mengevaluasi menjadi true.

  • AAP-2.K.4 Dalam iterasi REPEAT UNTIL(condition), loop tak terhingga terjadi ketika kondisi akhir tidak akan pernah mengevaluasi menjadi true.
  • AAP-2.K.5 Dalam iterasi REPEAT UNTIL(condition), jika kondisional mengevaluasi menjadi true pada awalnya, badan loop tidak dieksekusi sama sekali, karena kondisi dicek sebelum loop dimulai.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Iterasi (loop) mengulang instruksi. Pseudocode AP memiliki dua bentuk:

Loop pra-kondisi (WHILE) menguji sebelum badan, sehingga mungkin berjalan nol kali
Loop pra-kondisi (WHILE) menguji sebelum badan, sehingga mungkin berjalan nol kali
REPEAT 5 TIMES        // a fixed count
{
    DISPLAY("hi")
}

REPEAT UNTIL (found)  // until a condition becomes true
{
    ...
}

Loop yang tidak pernah memenuhi kondisi penghentinya adalah loop tak terhingga.

Jelajahi

Jejakkan loop satu kali per laluan

Sebuah loop mengulang blok sementara penghitungnya berjalan melalui rentang. Langkahkan untuk melihat penghitung dan total berjalan diperbarui setiap laluan.

3.9

Mengembangkan Algoritma

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.L: Bandingkan beberapa algoritma untuk menentukan apakah mereka menghasilkan efek samping atau hasil yang sama. [Keterampilan 1.D]

  • AAP-2.L.1 Algoritma dapat ditulis dengan cara berbeda namun tetap menyelesaikan tugas yang sama.
  • AAP-2.L.2 Algoritma yang tampak serupa dapat menghasilkan efek samping atau hasil yang berbeda.
  • AAP-2.L.3 Beberapa pernyataan kondisional dapat ditulis sebagai ekspresi Boolean ekuivalen.
  • AAP-2.L.4 Beberapa ekspresi Boolean dapat ditulis sebagai pernyataan kondisional ekuivalen.
  • AAP-2.L.5 Algoritma yang berbeda dapat dikembangkan atau digunakan untuk memecahkan masalah yang sama.

Tujuan Pembelajaran AAP-2.M: Untuk algoritma: a. Buat algoritma. [Keterampilan 2.A] b. Gabungkan dan modifikasi algoritma yang sudah ada. [Keterampilan 2.B]

  • AAP-2.M.1 Algoritma dapat dibuat dari sebuah ide, dengan menggabungkan algoritma yang sudah ada, atau dengan memodifikasi algoritma yang sudah ada.
  • AAP-2.M.2 Pengetahuan tentang algoritma yang sudah ada dapat membantu dalam membangun algoritma baru. Beberapa algoritma yang sudah ada meliputi:
    • menentukan nilai maksimum atau minimum dari dua angka atau lebih
    • menghitung jumlah atau rata-rata dari dua angka atau lebih
    • mengidentifikasi apakah bilangan bulat habis dibagi atau tidak oleh bilangan bulat lainnya
    • menentukan jalur robot melalui labirin
  • AAP-2.M.3 Menggunakan algoritma yang sudah benar sebagai blok bangunan untuk membangun algoritma lain memiliki manfaat seperti mengurangi waktu pengembangan, mengurangi pengujian, dan menyederhanakan identifikasi kesalahan.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Kode sumber Python di layar — algoritma adalah instruksi yang presisi dan terurut
Kode sumber Python di layar — algoritma adalah instruksi yang presisi dan terurut

Algoritma bukan hal yang sama dengan kode. Di luar bahasa pemrograman visual dan teks, algoritma dapat dinyatakan dalam berbagai cara: dalam bahasa alami (kalimat biasa), sebagai diagram seperti flowchart, atau dalam pseudocode. Bentuk-bentuk ini ditujukan untuk manusia — memungkinkan Anda memeriksa logika dan menyepakatinya sebelum bahasa apa pun dipilih, dan algoritma yang sama kemudian dapat ditulis dalam bahasa apa pun.

Ketika Anda menuliskannya dalam bahasa pemrograman, kejelasan dan keterbacaan adalah pertimbangan penting, bukan sekadar hiasan: nama variabel yang bermakna, indentasi yang konsisten, dan komentar yang menjelaskan mengapa alih-alih apa. Program harus dibaca dan dimodifikasi nanti oleh seseorang — sering kali Anda sendiri — dan algoritma yang tidak dapat diikuti orang lain tidak dapat dipelihara atau diperbaiki.

Sebuah algoritma adalah urutan langkah terbatas yang memecahkan masalah, dibangun dari pengurutan, pemilihan, dan iterasi. Algoritma berbeda dapat memecahkan masalah yang sama, dan Anda harus mampu menggabungkan dan memodifikasi algoritma yang ada (misalnya, menghitung nilai dalam daftar yang memenuhi suatu kondisi, atau menemukan nilai terbesar). Telusuri algoritma secara manual untuk memverifikasinya benar.

Flowchart menyusun algoritma menggunakan simbol standar
Flowchart menyusun algoritma menggunakan simbol standar
3.10

Daftar

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.N: Untuk operasi daftar: a. Tulis ekspresi yang menggunakan indeks daftar dan prosedur daftar. [Keterampilan 2.B] b. Evaluasi ekspresi yang menggunakan indeks daftar dan prosedur daftar. [Keterampilan 4.B]

  • AAP-2.N.1 Lembar referensi ujian menyediakan operasi dasar pada daftar, termasuk:
    • mengakses elemen berdasarkan indeks

      Teks:

      aList[i]

      Blok:

      aList i

      mengakses elemen dari aList pada indeks i. Elemen pertama dari aList berada pada indeks 1 dan diakses menggunakan notasi aList[1].

    • menugaskan nilai dari elemen daftar ke variabel

      Teks:

      x ← aList[i]

      Blok:

      x ← aList i

      menugaskan nilai dari aList[i] ke variabel x.

    • menugaskan nilai ke elemen daftar

      Teks:

      aList[i] ← x

      Blok:

      aList i ← x

      menugaskan nilai dari x ke aList[i].

      Teks:

      aList[i] ← aList[j]

      Blok:

      aList i ← aList j

      menugaskan nilai dari aList[j] ke aList[i].

    • menyisipkan elemen pada indeks tertentu

      Teks:

      INSERT(aList, i, value)

      Blok:

      INSERT aList, i, value

      menggeser ke kanan semua nilai dalam aList pada indeks yang lebih besar atau sama dengan i. Panjang daftar bertambah 1, dan value ditempatkan pada indeks i dalam aList.

    • menambahkan elemen ke akhir daftar

      Teks:

      APPEND(aList, value)

      Blok:

      APPEND aList, value

      menambah panjang aList sebesar 1, dan value ditempatkan di akhir aList.

    • menghapus elemen

      Teks:

      REMOVE(aList, i)

      Blok:

      REMOVE aList, i

      menghapus item pada indeks i dalam aList dan menggeser ke kiri semua nilai pada indeks yang lebih besar dari i. Panjang dari aList berkurang 1.

    • menentukan panjang daftar

      Teks:

      LENGTH(aList)

      Blok:

      LENGTH aList

      bernilai jumlah elemen yang saat ini ada dalam aList.

  • AAP-2.N.2 Prosedur daftar diimplementasikan sesuai dengan aturan sintaksis bahasa pemrograman.

Tujuan Pembelajaran AAP-2.O: Untuk algoritma yang melibatkan elemen daftar: a. Tulis pernyataan iterasi untuk melintasi daftar. [Keterampilan 2.B] b. Tentukan hasil algoritma yang mencakup pelacakan daftar. [Keterampilan 4.B]

  • AAP-2.O.1 Melintasi daftar dapat merupakan pelintasan lengkap, di mana semua elemen dalam daftar diakses, atau pelintasan parsial, di mana hanya sebagian elemen yang diakses.

    • Pernyataan Pengecualian (EK AAP-2.O.1): Melintasi beberapa daftar secara bersamaan menggunakan indeks yang sama untuk keduanya (pelintasan paralel) berada di luar cakupan kursus ini dan Ujian AP.
  • AAP-2.O.2 Pernyataan iterasi dapat digunakan untuk melintasi daftar.

  • AAP-2.O.3 Lembar referensi ujian menyediakan

    Teks:

    FOR EACH item IN aList { <block of statements> }

    Blok:

    FOR EACH item IN aList block of statements

    Variabel item ditugaskan nilai dari setiap elemen dari aList secara berurutan, berurutan, dari elemen pertama hingga elemen terakhir. Kode dalam block of statements dieksekusi sekali untuk setiap penugasan item.

  • AAP-2.O.4 Pengetahuan tentang algoritma yang sudah ada yang menggunakan iterasi dapat membantu dalam membangun algoritma baru. Beberapa contoh algoritma yang sudah ada yang sering digunakan dengan daftar meliputi:

    • menentukan nilai minimum atau maksimum dalam daftar
    • menghitung jumlah atau rata-rata dari daftar angka
  • AAP-2.O.5 Algoritma pencarian linear atau pencarian berurutan memeriksa setiap elemen dari daftar, berurutan, hingga nilai yang diinginkan ditemukan atau semua elemen dalam daftar telah diperiksa.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Sebuah daftar adalah kumpulan nilai yang terurut di bawah satu nama, abstraksi data utama kursus. Pseudocode AP mengindeks dari 1:

Daftar menyimpan banyak nilai dalam satu variabel, masing-masing ditemukan melalui indeksnya
Daftar menyimpan banyak nilai dalam satu variabel, masing-masing ditemukan melalui indeksnya
scores ← [88, 74, 95]
DISPLAY(scores[1])          // 88
scores[2] ← 80              // replace the 2nd value
APPEND(scores, 60)          // add to the end
INSERT(scores, 1, 100)      // insert at index 1
REMOVE(scores, 3)           // delete the 3rd element
LENGTH(scores)              // how many elements

Jelajahi daftar dengan perulangan untuk menjumlahkan, menghitung, mencari, atau menemukan nilai maksimum:

FOR EACH x IN scores
{
    total ← total + x
}
3.11

Pencarian Biner

Silabus

Pemahaman Berkelanjutan (AAP-2): Cara pernyataan disequensikan dan digabungkan dalam program menentukan hasil komputasi. Program memasukkan konstruk iterasi dan seleksi untuk merepresentasikan pengulangan dan membuat keputusan untuk menangani nilai input yang beragam.

Tujuan Pembelajaran AAP-2.P: Untuk algoritma pencarian binari: a. Tentukan jumlah iterasi yang diperlukan untuk menemukan nilai dalam himpunan data. [Keterampilan 1.D] b. Jelaskan persyaratan yang diperlukan untuk menyelesaikan pencarian binari. [Keterampilan 1.A]

  • AAP-2.P.1 Algoritma pencarian binari dimulai dari tengah himpunan data terurut angka dan menghilangkan separuh dari data; proses ini berulang hingga nilai yang diinginkan ditemukan atau semua elemen telah dihilangkan.
    • Pernyataan Pengecualian (EK AAP-2.P.1): Implementasi spesifik dari pencarian binari berada di luar cakupan kursus dan Ujian AP.
  • AAP-2.P.2 Data harus berada dalam urutan terurut untuk menggunakan algoritma pencarian binari.
  • AAP-2.P.3 Pencarian binari seringkali lebih efisien daripada pencarian berurutan/linear ketika diterapkan pada data yang terurut.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Buku telepon: pencarian biner membagi dua halaman yang tersisa setiap langkah
Buku telepon: pencarian biner membagi dua halaman yang tersisa setiap langkah

Pencarian biner menemukan nilai dalam daftar yang terurut jauh lebih cepat daripada memeriksa setiap elemen. Ia memeriksa elemen tengah, lalu membuang setengah yang tidak mungkin berisi target, mengulang hingga ditemukan. Setiap langkah membagi dua ruang pencarian, sehingga daftar $n$ item membutuhkan sekitar $\log_2 n$ langkah. Ini membutuhkan data yang sudah diurutkan terlebih dahulu.

Pencarian biner membagi dua rentang pada setiap langkah (daftar harus terurut)
Pencarian biner membagi dua rentang pada setiap langkah (daftar harus terurut)

Contoh terpecahkan. Mencari dalam daftar terurut $8$ item, pencarian biner membagi dua rentang setiap langkah: $8\rightarrow4\rightarrow2\rightarrow1$, maksimal $3$ perbandingan ($\log_2 8=3$), sementara pencarian linear bisa memakan waktu hingga $8$. Keuntungannya tumbuh eksponensial: sekitar $1{,}000$ item hanya memerlukan $\approx10$ langkah pencarian biner (tetapi hingga $1{,}000$ langkah linear), dan $1{,}000{,}000$ item hanya butuh $\approx20$. Membagi dua inilah yang menjadikannya algoritma waktu-wajar.

Kosa kata Latih
English Bahasa Indonesia
Binary search/ˈbaɪnəri sɜːtʃ/ Pencarian biner
3.12

Memanggil Prosedur

Silabus

Pemahaman Berkelanjutan (AAP-3): Pemrogram memecah masalah menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan membuat prosedur dan memanfaatkan parameter, pemrogram mengeneralisasi proses yang dapat digunakan kembali. Prosedur memungkinkan pemrogram untuk mengandalkan kode yang sudah diuji sebelumnya, sehingga mereka dapat menulis program lebih cepat dan dengan lebih percaya diri.

Tujuan Pembelajaran AAP-3.A: Untuk panggilan prosedur: a. Tulis pernyataan untuk memanggil prosedur. [Keterampilan 3.B] b. Tentukan hasil atau efek dari sebuah panggilan prosedur. [Keterampilan 4.B]

  • AAP-3.A.1 Prosedur adalah kelompok instruksi pemrograman yang bernama yang mungkin memiliki parameter dan nilai pengembalian.

  • AAP-3.A.2 Prosedur disebut dengan nama berbeda, seperti metode atau fungsi, tergantung pada bahasa pemrograman.

  • AAP-3.A.3 Parameter adalah variabel input dari sebuah prosedur. Argumen menentukan nilai-nilai parameter ketika prosedur dipanggil.

  • AAP-3.A.4 Panggilan prosedur menginterupsi eksekusi berurutan dari pernyataan, menyebabkan program mengeksekusi pernyataan-pernyataan di dalam prosedur sebelum melanjutkan. Setelah pernyataan terakhir dalam prosedur (atau pernyataan pengembalian) telah dieksekusi, alur kendali dikembalikan ke titik tepat setelah tempat prosedur tersebut dipanggil.

  • AAP-3.A.5 Lembar referensi ujian menyediakan

    procName(arg1, arg2, ...)

    sebagai cara untuk memanggil

    Teks:

    PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

    Blok:

    PROCEDURE procName parameter1, parameter2,... block of statements

    yang menerima nol atau lebih argumen; arg1 ditugaskan ke parameter1, arg2 ditugaskan ke parameter2, dan seterusnya.

  • AAP-3.A.6 Lembar referensi ujian menyediakan prosedur

    Teks:

    DISPLAY(expression)

    Blok:

    DISPLAY expression

    untuk menampilkan nilai expression, diikuti oleh spasi.

  • AAP-3.A.7 Lembar referensi ujian menyediakan

    Teks:

    RETURN(expression)

    Blok:

    RETURN expression

    pernyataan, yang digunakan untuk mengembalikan alur kendali ke titik di mana prosedur dipanggil dan untuk mengembalikan nilai expression.

  • AAP-3.A.8 Lembar referensi ujian menyediakan

    result ← procName(arg1, arg2, ...)

    untuk menugaskan ke result "nilai prosedur" yang dikembalikan dengan memanggil

    Teks:

    PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

    Blok:

    PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

  • AAP-3.A.9 Lembar referensi ujian menyediakan prosedur

    Teks:

    INPUT()

    Blok:

    INPUT

    yang menerima nilai dari pengguna dan mengembalikan nilai input.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Sebuah prosedur (fungsi) adalah blok kode yang memiliki nama dan dapat digunakan kembali. Memanggilnya menjalankan kodenya dengan argumen yang Anda berikan, dan ia mungkin mengembalikan nilai:

sum ← Add(3, 4)      // call, passing 3 and 4

Prosedur memungkinkan Anda menggunakan kode tanpa mengetahui mekanisme dalamnya — abstraksi prosedural.

3.13

Mengembangkan Prosedur

Silabus

Pemahaman Berkelanjutan (AAP-3): Pemrogram memecah masalah menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan membuat prosedur dan memanfaatkan parameter, pemrogram mengeneralisasi proses yang dapat digunakan kembali. Prosedur memungkinkan pemrogram untuk mengandalkan kode yang sudah diuji sebelumnya, sehingga mereka dapat menulis program lebih cepat dan dengan lebih percaya diri.

Tujuan Pembelajaran AAP-3.B: Jelaskan bagaimana penggunaan abstraksi prosedural mengelola kompleksitas dalam sebuah program. [Keterampilan 3.C]

  • AAP-3.B.1 Salah satu jenis abstraksi yang umum adalah abstraksi prosedural, yang memberikan nama untuk suatu proses dan memungkinkan prosedur digunakan hanya dengan mengetahui apa yang dilakukannya, bukan bagaimana melaksanakannya.
  • AAP-3.B.2 Abstraksi prosedural memungkinkan solusi untuk masalah besar didasarkan pada solusi-solusi submasalah yang lebih kecil. Hal ini dicapai dengan membuat prosedur untuk menyelesaikan setiap submasalah.
  • AAP-3.B.3 Subdivisi program komputer menjadi subprogram terpisah disebut modularitas.
  • AAP-3.B.4 Abstraksi prosedural dapat mengekstrak fitur bersama untuk mengeneralisasi fungsionalitas alih-alih menduplikasi kode. Ini memungkinkan penggunaan kembali kode program, yang membantu mengelola kompleksitas.
  • AAP-3.B.5 Menggunakan parameter memungkinkan prosedur digeneralisasi, memungkinkan prosedur digunakan kembali dengan berbagai nilai input atau argumen.
  • AAP-3.B.6 Menggunakan abstraksi prosedural membantu meningkatkan keterbacaan kode.
  • AAP-3.B.7 Menggunakan abstraksi prosedural dalam sebuah program memungkinkan pemrogram mengubah internal prosedur (untuk membuatnya lebih cepat, lebih efisien, menggunakan lebih sedikit penyimpanan, dll.) tanpa perlu memberi tahu pengguna tentang perubahan tersebut selama apa yang dilakukan prosedur tetap terjaga.

Tujuan Pembelajaran AAP-3.C: Kembangkan abstraksi prosedural untuk mengelola kompleksitas dalam sebuah program dengan menulis prosedur. [Keterampilan 3.B]

  • AAP-3.C.1 Lembar referensi ujian menyediakan

    Teks:

    PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

    Blok:

    PROCEDURE procName parameter1, parameter2,... block of statements

    yang digunakan untuk mendefinisikan prosedur yang menerima nol atau lebih argumen. Prosedur berisi block of statements.

  • AAP-3.C.2 Lembar referensi ujian menyediakan

    Teks:

    PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

    Blok:

    PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

    yang digunakan untuk mendefinisikan prosedur yang menerima nol atau lebih argumen. Prosedur tersebut berisi block of statements dan mengembalikan nilai dari expression. Pernyataan RETURN dapat muncul di mana saja di dalam prosedur dan menyebabkan pengembalian segera dari prosedur kembali ke pernyataan pemanggil.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Anda mendefinisikan prosedur dengan nama, parameter (input), dan tubuh, serta opsional RETURN hasil:

Mendekomposisi program menjadi prosedur dan sub-prosedur
Mendekomposisi program menjadi prosedur dan sub-prosedur
PROCEDURE Add(a, b)
{
    RETURN(a + b)
}

Menulis prosedur Anda sendiri mengurangi pengulangan, memecah masalah besar menjadi bagian-bagian bernama, dan membuat program mudah dibaca serta lebih mudah diuji — esensi dari abstraksi.

Kosa kata Latih
English Bahasa Indonesia
procedure (function)/prəˈsiːdʒə/ prosedur (fungsi)
procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ abstraksi prosedural
abstraction/əbˈstrækʃn/ abstraksi
library/ˈlaɪbrəri/ perpustakaan
simulation/ˌsɪmjʊˈleɪʃn/ simulasi
Efficiency/ɪˈfɪʃənsi/ Efisiensi
heuristic/hjuːˈrɪstɪk/ heuristik
undecidable/ˌʌndɪˈsaɪdəbl/ tidak terputus
3.14

Perpustakaan

Silabus

Pemahaman Berkelanjutan (AAP-3): Pemrogram memecah masalah menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan membuat prosedur dan memanfaatkan parameter, pemrogram mengeneralisasi proses yang dapat digunakan kembali. Prosedur memungkinkan pemrogram untuk mengandalkan kode yang sudah diuji sebelumnya, sehingga mereka dapat menulis program lebih cepat dan dengan lebih percaya diri.

Tujuan Pembelajaran AAP-3.D: Pilih pustaka atau segmen kode yang ada yang sesuai untuk digunakan dalam membuat program baru. [Keterampilan 2.B]

  • AAP-3.D.1 Pustaka perangkat lunak berisi prosedur yang dapat digunakan dalam membuat program baru.
  • AAP-3.D.2 Segmen kode yang ada dapat berasal dari sumber internal atau eksternal, seperti pustaka atau kode yang ditulis sebelumnya.
  • AAP-3.D.3 Penggunaan pustaka menyederhanakan tugas pembuatan program kompleks.
  • AAP-3.D.4 Antarmuka program aplikasi (API) adalah spesifikasi tentang bagaimana prosedur dalam pustaka berperilaku dan dapat digunakan.
  • AAP-3.D.5 Dokumentasi untuk API/pustaka diperlukan dalam memahami perilaku yang disediakan oleh API/pustaka dan cara menggunakannya.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Sebuah perpustakaan adalah kumpulan prosedur siap pakai yang dapat digunakan ulang oleh orang lain. API (Application Program Interface) mendokumentasikan apa yang dilakukan setiap prosedur, parameternya, dan hasilnya — sehingga Anda dapat menggunakannya tanpa melihat kodenya. Perpustakaan menghemat waktu dan memungkinkan Anda membangun di atas pekerjaan yang sudah ada dan teruji.

Dokumentasi adalah bagian dari perpustakaan. Dokumentasi untuk API atau perpustakaan diperlukan agar memahami perilaku yang disediakannya dan cara menggunakannya — apa yang diharapkan setiap prosedur sebagai parameter, apa yang dikembalikannya, dan apa yang dilakukannya pada batas-batasnya. Tanpa itu, Anda harus membaca sumbernya, yang bertentangan dengan tujuan abstraksi; dengan itu, Anda dapat menggunakan prosedur dengan benar tanpa mengetahui cara kerjanya di dalam.

Kosa kata Latih
English Bahasa Indonesia
Interface/ˈɪntəfeɪs/ Antarmuka
3.15

Nilai Acak

Silabus

Pemahaman Berkelanjutan (AAP-3): Pemrogram memecah masalah menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan membuat prosedur dan memanfaatkan parameter, pemrogram mengeneralisasi proses yang dapat digunakan kembali. Prosedur memungkinkan pemrogram untuk mengandalkan kode yang sudah diuji sebelumnya, sehingga mereka dapat menulis program lebih cepat dan dengan lebih percaya diri.

Tujuan Pembelajaran AAP-3.E: Untuk menghasilkan nilai acak: a. Tulis ekspresi untuk menghasilkan nilai yang mungkin. [Keterampilan 2.B] b. Evaluasi ekspresi untuk menentukan hasil yang mungkin. [Keterampilan 4.B]

  • AAP-3.E.1 Lembar referensi ujian menyediakan

    Teks:

    RANDOM(a, b)

    Blok:

    RANDOM a, b

    yang menghasilkan dan mengembalikan bilangan bulat acak dari a hingga b, termasuk. Setiap hasil sama-sama mungkin terjadi. Sebagai contoh, RANDOM(1, 3) dapat mengembalikan 1, 2, atau 3.

  • AAP-3.E.2 Menggunakan pembangkitan angka acak dalam sebuah program berarti setiap eksekusi dapat menghasilkan hasil yang berbeda.

Sumber: Deskripsi Kursus dan Ujian College Board AP

RANDOM(a, b) mengembalikan bilangan bulat acak dari a hingga b (termasuk), memungkinkan program menghasilkan hasil yang tidak terprediksi — untuk permainan, sampling, atau simulasi. Setiap panggilan mungkin memberikan nilai yang berbeda, sehingga program yang menggunakan keacakan berperilaku berbeda setiap kali dijalankan.

3.16

Simulasi

Silabus

Pemahaman Berkelanjutan (AAP-3): Pemrogram memecah masalah menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan membuat prosedur dan memanfaatkan parameter, pemrogram mengeneralisasi proses yang dapat digunakan kembali. Prosedur memungkinkan pemrogram untuk mengandalkan kode yang sudah diuji sebelumnya, sehingga mereka dapat menulis program lebih cepat dan dengan lebih percaya diri.

Tujuan Pembelajaran AAP-3.F: Untuk simulasi: a. Jelaskan bagaimana komputer dapat digunakan untuk merepresentasikan fenomena dunia nyata atau hasil. [Keterampilan 1.A] b. Bandingkan simulasi dengan konteks dunia nyata. [Keterampilan 1.D]

  • AAP-3.F.1 Simulasi adalah abstraksi dari objek atau fenomena yang lebih kompleks untuk tujuan tertentu.
  • AAP-3.F.2 Sebuah simulasi adalah representasi yang menggunakan berbagai set nilai untuk mencerminkan perubahan keadaan suatu fenomena.
  • AAP-3.F.3 Simulasi sering meniru peristiwa dunia nyata dengan tujuan menarik kesimpulan, memungkinkan penyelidikan terhadap suatu fenomena tanpa batasan dunia nyata.
  • AAP-3.F.4 Proses pengembangan simulasi abstrak melibatkan penghapusan detail spesifik atau penyederhanaan fungsionalitas.
  • AAP-3.F.5 Simulasi dapat mengandung bias yang berasal dari pilihan elemen dunia nyata yang dimasukkan atau dikecualikan.
  • AAP-3.F.6 Simulasi paling berguna ketika peristiwa dunia nyata tidak praktis untuk eksperimen (misalnya, terlalu besar, terlalu kecil, terlalu cepat, terlalu lambat, terlalu mahal, atau terlalu berbahaya).
  • AAP-3.F.7 Simulasi memfasilitasi perumusan dan penyempurnaan hipotesis terkait objek atau fenomena yang sedang dipertimbangkan.
  • AAP-3.F.8 Pembangkit bilangan acak dapat digunakan untuk mensimulasikan variabilitas yang ada di dunia nyata.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Sebuah simulasi adalah program yang memodelkan proses dunia nyata untuk mempelajarinya secara aman dan murah. Simulasi menyederhanakan realitas (mereka meninggalkan detail) dan sering menggunakan keacakan untuk meniru peristiwa kebetulan. Mereka memungkinkan Anda menguji skenario yang akan terlalu mahal, lambat, atau berbahaya di kehidupan nyata — tetapi hasilnya hanya sebaik asumsi-asumsinya.

Simulasi adalah cara melakukan sains, bukan sekadar gambar. Karena dapat dijalankan berkali-kali, murah, dan dengan satu variabel diubah setiap saat, simulasi memfasilitasi perumusan dan penyempurnaan hipotesis tentang objek atau fenomena yang dipertimbangkan: Anda mengusulkan penjelasan, menjalankan model, membandingkan hasilnya dengan realitas, dan menyesuaikan baik hipotesis maupun model. Itulah mengapa penyederhanaan simulasi itu penting — hasil hanya mendukung hipotesis tentang dunia nyata sejauh apa yang ditinggalkan tidak berpengaruh.

3.17

Efisiensi Algoritmik

Silabus

Pemahaman Abadi (AAP-4): Terdapat masalah yang tidak dapat diselesaikan oleh komputer, dan bahkan ketika komputer dapat menyelesaikan suatu masalah, mungkin tidak dapat melakukannya dalam waktu yang wajar.

Tujuan Pembelajaran AAP-4.A: Untuk menentukan efisiensi sebuah algoritma: a. Jelaskan perbedaan antara algoritma yang berjalan dalam waktu wajar dan yang tidak. [Keterampilan 1.D] b. Identifikasi situasi di mana solusi heuristik mungkin lebih tepat. [Keterampilan 1.D]

  • AAP-4.A.1 Sebuah masalah adalah deskripsi umum tentang tugas yang dapat (atau tidak dapat) diselesaikan secara algoritmik. Sebuah instansi dari masalah juga mencakup input spesifik. Sebagai contoh, pengurutan adalah sebuah masalah; mengurutkan daftar (2,3,1,7) adalah sebuah instansi dari masalah tersebut.
  • AAP-4.A.2 Sebuah masalah keputusan adalah masalah dengan jawaban ya/tidak (misalnya, apakah ada jalur dari A ke B?). Sebuah masalah optimasi adalah masalah dengan tujuan menemukan solusi "terbaik" di antara banyak opsi (misalnya, apa jalur terpendek dari A ke B?).
  • AAP-4.A.3 Efisiensi adalah estimasi jumlah sumber daya komputasi yang digunakan oleh sebuah algoritma. Efisiensi biasanya dinyatakan sebagai fungsi dari ukuran input.
    • Pernyataan Pengecualian (EK AAP-4.A.3): Analisis formal algoritma (Big-O) dan penalaran formal menggunakan rumus matematika berada di luar cakupan kursus ini dan Ujian AP.
  • AAP-4.A.4 Efisiensi sebuah algoritma ditentukan melalui penalaran formal atau matematis.
  • AAP-4.A.5 Efisiensi sebuah algoritma dapat diukur secara informal dengan menentukan berapa kali sebuah pernyataan atau kelompok pernyataan dieksekusi.
  • AAP-4.A.6 Algoritma yang benar berbeda untuk masalah yang sama dapat memiliki efisiensi yang berbeda.
  • AAP-4.A.7 Algoritma dengan efisiensi polinomial atau lebih lambat (konstan, linear, kuadratik, kubik, dll.) dikatakan berjalan dalam waktu yang wajar. Algoritma dengan efisiensi eksponensial atau faktorial merupakan contoh algoritma yang berjalan dalam waktu yang tidak wajar.
  • AAP-4.A.8 Beberapa masalah tidak dapat diselesaikan dalam waktu yang wajar karena tidak ada algoritma efisien untuk menyelesaikannya. Dalam kasus ini, solusi pendekatan (approximate solutions) dicari.
  • AAP-4.A.9 Sebuah heuristik adalah pendekatan terhadap masalah yang menghasilkan solusi yang tidak dijamin optimal tetapi dapat digunakan ketika teknik yang dijamin selalu menemukan solusi optimal tidak praktis.
    • Pernyataan Pengecualian (AAP-4.A.9): Solusi heuristik spesifik berada di luar cakupan kursus ini dan Ujian AP.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Efisiensi adalah seberapa banyak waktu (atau memori) yang dibutuhkan sebuah algoritma seiring dengan bertambahnya inputnya. Algoritma waktu-wajar memiliki beban kerja yang tumbuh seperti polinomial dari ukuran input (misalnya linear atau kuadratik); algoritma waktu-tidak-wajar tumbuh jauh lebih cepat (misalnya berlipat ganda dengan setiap item yang ditambahkan), sehingga menjadi tidak praktis untuk input besar. Algoritma yang lebih cepat dapat membuat masalah yang sebelumnya tidak mungkin diselesaikan menjadi bisa diselesaikan. Terkadang jawaban eksak memakan waktu terlalu lama, jadi heuristik – pendekatan yang menemukan jawaban cukup baik dengan cepat – digunakan sebagai gantinya.

Bagaimana waktu eksekusi algoritma tumbuh seiring dengan ukuran input n
Bagaimana waktu eksekusi algoritma tumbuh seiring dengan ukuran input n
3.18

Masalah Tak Terputuskan

Silabus

Pemahaman Abadi (AAP-4): Terdapat masalah yang tidak dapat diselesaikan oleh komputer, dan bahkan ketika komputer dapat menyelesaikan suatu masalah, mungkin tidak dapat melakukannya dalam waktu yang wajar.

Tujuan Pembelajaran AAP-4.B: Jelaskan keberadaan masalah yang tidak terputuskan dalam ilmu komputer. [Keterampilan 1.A]

  • AAP-4.B.1 Sebuah masalah terputuskan adalah masalah keputusan untuk mana algoritma dapat ditulis untuk menghasilkan output yang benar untuk semua input (misalnya, "Apakah angka tersebut genap?").
  • AAP-4.B.2 Sebuah masalah tidak terputuskan adalah masalah yang tidak dapat dibangunnya algoritma yang selalu mampu memberikan jawaban ya-tidak yang benar.
    • Pernyataan Pengecualian (EK AAP-4.B.2): Menentukan apakah suatu masalah tertentu tidak terputuskan berada di luar cakupan kursus ini dan Ujian AP.
  • AAP-4.B.3 Masalah tidak terputuskan mungkin memiliki beberapa instansi yang memiliki solusi algoritmik, tetapi tidak ada solusi algoritmik yang dapat menyelesaikan semua instansi dari masalah tersebut.

Sumber: Deskripsi Kursus dan Ujian College Board AP

Beberapa masalah bersifat tak terputuskan: tidak ada algoritma yang dapat menyelesaikan setiap kasus darinya dengan jawaban benar ya/tidak. Ini adalah batasan fundamental komputasi – bukan sekadar masalah membutuhkan komputer yang lebih cepat, melainkan pembuktian bahwa tidak ada algoritma semacam itu yang bisa ada.

Keterampilan ujian: mampu menentukan hasil segmen kode dengan menelusurinya, membandingkan efisiensi dua algoritma (waktu wajar vs tak wajar), dan mengenali abstraksi prosedural serta data dalam sebuah program.

3.18

Tips ujian

  • Pahami bahwa variabel adalah tempat penyimpanan bernama untuk suatu nilai dan telusuri bagaimana penugasan memperbaruinya langkah demi langkah.
  • Baca pseudocode AP dengan cermat — a <- expression melakukan penugasan, dan daftar diurutkan mulai dari indeks-1 pada lembar referensi ujian.
  • Bedakan variabel dari daftar (kumpulan yang diakses melalui indeks) dan gunakan operasi daftar dengan benar.
  • Evaluasi ekspresi dengan prioritas yang tepat dan logika boolean (AND, OR, NOT).
  • Pilih nama variabel yang jelas dan bermakna – tugas tertulis memberikan nilai lebih pada kode yang mudah dibaca.

Pelajaran interaktif untuk topik ini

Kerjakan langkah demi langkah, dengan latihan pengecekan instan.

Soal-Soil Masa Lalu

Topik lain dalam AP Prinsip Ilmu Komputer

Masuk atau buat akun

IGCSE, A-Level & AP