Skip to content · ⁨Lompat ke konten⁩

Algorithms and Programming · ⁨Algoritma dan Pemrograman⁩

AP Computer Science Principles · ⁨AP Prinsip Ilmu Komputer⁩ · Topic 3 · ⁨Topik 3⁩

Video lesson for this topic · ⁨Pelajaran video untuk topik ini⁩ Open the video page · ⁨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…

English narration · English + 中文 subtitles burned in · ⁨Narasi bahasa Inggris · Subtitle bahasa Inggris + 中文 disematkan langsung⁩

English

Code below uses the AP CSP pseudocode – the exam's language-neutral reference. Assignment is written a ← expression, and list indices start at 1.

Bahasa Indonesia

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

Variables and Assignments · ⁨Variabel dan Atribut⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-1): To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.

Learning Objective AAP-1.A: Represent a value with a variable. [Skill 3.A]

  • AAP-1.A.1 A variable is an abstraction inside a program that can hold a value. Each variable has associated data storage that represents one value at a time, but that value can be a list or other collection that in turn contains multiple values.
  • AAP-1.A.2 Using meaningful variable names helps with the readability of program code and understanding of what values are represented by the variables.
  • AAP-1.A.3 Some programming languages provide types to represent data, which are referenced using variables. These types include numbers, Booleans, lists, and strings.
  • AAP-1.A.4 Some values are better suited to representation using one type of datum rather than another.

Learning Objective AAP-1.B: Determine the value of a variable as a result of an assignment. [Skill 4.B]

  • AAP-1.B.1 The assignment operator allows a program to change the value represented by a variable.

  • AAP-1.B.2 The exam reference sheet provides the "$\leftarrow$" operator to use for assignment. For example,

    Text:

    a ← expression

    Block:

    a ← expression

    evaluates expression and then assigns a copy of the result to the variable a.

  • AAP-1.B.3 The value stored in a variable will be the most recent value assigned. For example:

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

    still displays 1.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A variable 变量 is a named place that holds a value. The assignment 赋值 operator stores the value on the right into the variable on the left:

A variable holds one value at a time; assigning again replaces it. Variables let a program store input, remember results, and reuse them.

Bahasa Indonesia

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.

Explore · ⁨Jelajahi⁩

Watch a variable hold and change its value · ⁨Lihat variabel menahan dan mengubah nilainya⁩

A variable is a named box that stores one value at a time. An assignment copies a value into the box; assigning again overwrites whatever was there. · ⁨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.⁩

Vocabulary · ⁨Kosa kata⁩ Train · ⁨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

Data Abstraction · ⁨Abstraksi Data⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-1): To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.

Learning Objective AAP-1.C: Represent a list or string using a variable. [Skill 3.A]

  • AAP-1.C.1 A list is an ordered sequence of elements. For example,

    [value1, value2, value3, ...]

    describes a list where value1 is the first element, value2 is the second element, value3 is the third element, and so on.

  • AAP-1.C.2 An element is an individual value in a list that is assigned a unique index.

  • AAP-1.C.3 An index is a common method for referencing the elements in a list or string using natural numbers.

  • AAP-1.C.4 A string is an ordered sequence of characters.

Learning Objective AAP-1.D: For data abstraction: a. Develop data abstraction using lists to store multiple elements. [Skill 3.B] b. Explain how the use of data abstraction manages complexity in program code. [Skill 3.C]

  • AAP-1.D.1 Data abstraction provides a separation between the abstract properties of a data type and the concrete details of its representation.

  • AAP-1.D.2 Data abstractions manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation.

  • AAP-1.D.3 Data abstractions can be created using lists.

  • AAP-1.D.4 Developing a data abstraction to implement in a program can result in a program that is easier to develop and maintain.

  • AAP-1.D.5 Data abstractions often contain different types of elements.

  • AAP-1.D.6 The use of lists allows multiple related items to be treated as a single value. Lists are referred to by different names, such as array, depending on the programming language.

    • Exclusion statement (EK AAP-1.D.6): The use of linked lists is outside the scope of this course and the AP Exam.
  • AAP-1.D.7 The exam reference sheet provides the notation

    [value1, value2, value3, ...]

    to create a list with those values as the first, second, third, and so on items. For example,

    • Text:

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

      Block:

      aList ← value1, value2, value3

      creates a new list that contains the values value1, value2, value3, and ... at indices 1, 2, 3, and ... respectively and assigns it to aList.

    • Text:

      aList ← []

      Block:

      aList ← (empty)

      creates a new empty list and assigns it to aList.

    • Text:

      aList ← bList

      Block:

      aList ← bList

      assigns a copy of the list bList to the list aList. For example, if bList contains [20, 40, 60], then aList will also contain [20, 40, 60] after the assignment.

  • AAP-1.D.8 The exam reference sheet describes a list structure whose index values are 1 through the number of elements in the list, inclusive. For all list operations, if a list index is less than 1 or greater than the length of the list, an error message is produced and the program will terminate.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Data abstraction 数据抽象 lets you manage complexity by giving a single name to a collection of data – for example, a list rather than dozens of separate variables. It hides detail: you use the named collection without worrying about how it is stored. Lists (below) are the course's main data abstraction.

Bahasa Indonesia

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

Mathematical Expressions · ⁨Ekspresi Matematika⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.A: Express an algorithm that uses sequencing without using a programming language. [Skill 2.A]

  • AAP-2.A.1 An algorithm is a finite set of instructions that accomplish a specific task.
  • AAP-2.A.2 Beyond visual and textual programming languages, algorithms can be expressed in a variety of ways, such as natural language, diagrams, and pseudocode.
  • AAP-2.A.3 Algorithms executed by programs are implemented using programming languages.
  • AAP-2.A.4 Every algorithm can be constructed using combinations of sequencing, selection, and iteration.

Learning Objective AAP-2.B: Represent a step-by-step algorithmic process using sequential code statements. [Skill 2.B]

  • AAP-2.B.1 Sequencing is the application of each step of an algorithm in the order in which the code statements are given.
  • AAP-2.B.2 A code statement is a part of program code that expresses an action to be carried out.
  • AAP-2.B.3 An expression can consist of a value, a variable, an operator, or a procedure call that returns a value.
  • AAP-2.B.4 Expressions are evaluated to produce a single value.
  • AAP-2.B.5 The evaluation of expressions follows a set order of operations defined by the programming language.
  • AAP-2.B.6 Sequential statements execute in the order they appear in the code segment.
  • AAP-2.B.7 Clarity and readability are important considerations when expressing an algorithm in a programming language.

Learning Objective AAP-2.C: Evaluate expressions that use arithmetic operators. [Skill 4.B]

  • AAP-2.C.1 Arithmetic operators are part of most programming languages and include addition, subtraction, multiplication, division, and modulus operators.

  • AAP-2.C.2 The exam reference sheet provides a MOD b, which evaluates to the remainder when a is divided by b. Assume that a is an integer greater than or equal to 0 and b is an integer greater than 0. For example, 17 MOD 5 evaluates to 2.

  • AAP-2.C.3 The exam reference sheet provides the arithmetic operators +, -, *, /, and MOD.

    Text and Block:

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

    These are used to perform arithmetic on a and b. For example, 17 / 5 evaluates to 3.4.

  • AAP-2.C.4 The order of operations used in mathematics applies when evaluating expressions. The MOD operator has the same precedence as the * and / operators.

Bahasa Indonesia

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 /.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Programs compute with the operators +, -, *, /, and MOD (the remainder 余数 of a division, e.g. 17 MOD 5 is 2). Expressions follow the usual order of operations. MOD is especially useful for testing divisibility (n MOD 2 = 0 means n is even) and for wrapping values around a range.

Bahasa Indonesia

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.

Explore · ⁨Jelajahi⁩

Evaluate an expression step by step · ⁨Evaluasi ekspresi langkah demi langkah⁩

An expression is evaluated with order of operations: multiplication and division happen before addition and subtraction, left to right. · ⁨Ekspresi dievaluasi dengan urutan operasi: perkalian dan pembagian terjadi sebelum penjumlahan dan pengurangan, dari kiri ke kanan.⁩

3.4

Strings · ⁨String⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.D: Evaluate expressions that manipulate strings. [Skill 4.B]

  • AAP-2.D.1 String concatenation joins together two or more strings end-to-end to make a new string.
  • AAP-2.D.2 A substring is part of an existing string.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A string 字符串 is an ordered sequence of characters, like "hello". Programs join strings (concatenation 拼接) and find their length. Strings represent text – names, messages, sequences – and are a common program input and output.

Bahasa Indonesia

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.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨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

Boolean Expressions · ⁨Ekspresi Boolean⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.E: For relationships between two variables, expressions, or values: a. Write expressions using relational operators. [Skill 2.B] b. Evaluate expressions that use relational operators. [Skill 4.B]

  • AAP-2.E.1 A Boolean value is either true or false.

  • AAP-2.E.2 The exam reference sheet provides the following relational operators: =, ≠, >, <, ≥, and ≤.

    Text and Block:

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

    These are used to test the relationship between two variables, expressions, or values. A comparison using a relational operator evaluates to a Boolean value. For example, a = b evaluates to true if a and b are equal; otherwise, it evaluates to false.

Learning Objective AAP-2.F: For relationships between Boolean values: a. Write expressions using logical operators. [Skill 2.B] b. Evaluate expressions that use logic operators. [Skill 4.B]

  • AAP-2.F.1 The exam reference sheet provides the logical operators NOT, AND, and OR, which evaluate to a Boolean value.

  • AAP-2.F.2 The exam reference sheet provides

    Text:

    NOT condition

    Block:

    NOT condition

    which evaluates to true if condition is false; otherwise it evaluates to false.

  • AAP-2.F.3 The exam reference sheet provides

    Text:

    condition1 AND condition2

    Block:

    condition1 AND condition2

    which evaluates to true if both condition1 and condition2 are true; otherwise it evaluates to false.

  • AAP-2.F.4 The exam reference sheet provides

    Text:

    condition1 OR condition2

    Block:

    condition1 OR condition2

    which evaluates to true if condition1 is true or if condition2 is true or if both condition1 and condition2 are true; otherwise it evaluates to false.

  • AAP-2.F.5 The operand for a logical operator is either a Boolean expression or a single Boolean value.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A Boolean expression 布尔表达式 evaluates to true or false. It uses relational operators (=, ≠, <, >, ≤, ≥) and logical operators NOT, AND, OR:

  • NOT reverses a value,
  • AND is true only when both sides are true,
  • OR is true when at least one side is true.

These conditions drive every decision and loop.

Bahasa Indonesia

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.

Explore · ⁨Jelajahi⁩

Try the OR truth table · ⁨Coba tabel kebenaran OR⁩

A Boolean expression is either true (1) or false (0). OR is true when at least one input is true; flip the inputs to see every case. · ⁨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

Conditionals · ⁨Kondisional⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.G: Express an algorithm that uses selection without using a programming language. [Skill 2.A]

  • AAP-2.G.1 Selection determines which parts of an algorithm are executed based on a condition being true or false.

Learning Objective AAP-2.H: For selection: a. Write conditional statements. [Skill 2.B] b. Determine the result of conditional statements. [Skill 4.B]

  • AAP-2.H.1 Conditional statements, or "if-statements," affect the sequential flow of control by executing different statements based on the value of a Boolean expression.

  • AAP-2.H.2 The exam reference sheet provides

    Text:

    IF(condition) { <block of statements> }

    Block:

    IF condition block of statements

    in which the code in block of statements is executed if the Boolean expression condition evaluates to true; no action is taken if condition evaluates to false.

  • AAP-2.H.3 The exam reference sheet provides

    Text:

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

    Block:

    IF condition first block of statements ELSE second block of statements

    in which the code in first block of statements is executed if the Boolean expression condition evaluates to true; otherwise, the code in second block of statements is executed.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A conditional (selection) 条件语句 chooses which code to run. IF runs a block only when its condition is true; ELSE gives an alternative:

Bahasa Indonesia

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")
}
Explore · ⁨Jelajahi⁩

Follow an if / else decision · ⁨Ikuti keputusan if / else⁩

A conditional runs one branch or another depending on whether its condition is true. Slide the value across the threshold and watch which branch is taken. · ⁨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

Nested Conditionals · ⁨Kondisional Bersarang⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.I: For nested selection: a. Write nested conditional statements. [Skill 2.B] b. Determine the result of nested conditional statements. [Skill 4.B]

  • AAP-2.I.1 Nested conditional statements consist of conditional statements within conditional statements.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A nested conditional 嵌套条件 places one IF inside another (or chains ELSE IF) to choose among more than two paths. Only the first matching branch runs:

Bahasa Indonesia

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

Iteration · ⁨Iterasi⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.J: Express an algorithm that uses iteration without using a programming language. [Skill 2.A]

  • AAP-2.J.1 Iteration is a repeating portion of an algorithm. Iteration repeats a specified number of times or until a given condition is met.

Learning Objective AAP-2.K: For iteration: a. Write iteration statements. [Skill 2.B] b. Determine the result or side effect of iteration statements. [Skill 4.B]

  • AAP-2.K.1 Iteration statements change the sequential flow of control by repeating a set of statements zero or more times, until a stopping condition is met.

  • AAP-2.K.2 The exam reference sheet provides

    Text:

    REPEAT n TIMES { <block of statements> }

    Block:

    REPEAT n TIMES block of statements

    in which the block of statements is executed n times.

  • AAP-2.K.3 The exam reference sheet provides

    Text:

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

    Block:

    REPEAT UNTIL condition block of statements

    in which the code in block of statements is repeated until the Boolean expression condition evaluates to true.

  • AAP-2.K.4 In REPEAT UNTIL(condition) iteration, an infinite loop occurs when the ending condition will never evaluate to true.

  • AAP-2.K.5 In REPEAT UNTIL(condition) iteration, if the conditional evaluates to true initially, the loop body is not executed at all, due to the condition being checked before the loop.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Iteration (a loop) 迭代 repeats instructions. AP pseudocode has two forms:

A loop that never meets its stopping condition is an infinite loop 无限循环.

Bahasa Indonesia

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.

Explore · ⁨Jelajahi⁩

Trace a loop one pass at a time · ⁨Jejakkan loop satu kali per laluan⁩

A loop repeats a block while its counter runs through a range. Step through to watch the counter and the running total update each pass. · ⁨Sebuah loop mengulang blok sementara penghitungnya berjalan melalui rentang. Langkahkan untuk melihat penghitung dan total berjalan diperbarui setiap laluan.⁩

3.9

Developing Algorithms · ⁨Mengembangkan Algoritma⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.L: Compare multiple algorithms to determine if they yield the same side effect or result. [Skill 1.D]

  • AAP-2.L.1 Algorithms can be written in different ways and still accomplish the same tasks.
  • AAP-2.L.2 Algorithms that appear similar can yield different side effects or results.
  • AAP-2.L.3 Some conditional statements can be written as equivalent Boolean expressions.
  • AAP-2.L.4 Some Boolean expressions can be written as equivalent conditional statements.
  • AAP-2.L.5 Different algorithms can be developed or used to solve the same problem.

Learning Objective AAP-2.M: For algorithms: a. Create algorithms. [Skill 2.A] b. Combine and modify existing algorithms. [Skill 2.B]

  • AAP-2.M.1 Algorithms can be created from an idea, by combining existing algorithms, or by modifying existing algorithms.
  • AAP-2.M.2 Knowledge of existing algorithms can help in constructing new ones. Some existing algorithms include:
    • determining the maximum or minimum value of two or more numbers
    • computing the sum or average of two or more numbers
    • identifying if an integer is or is not evenly divisible by another integer
    • determining a robot's path through a maze
  • AAP-2.M.3 Using existing correct algorithms as building blocks for constructing another algorithm has benefits such as reducing development time, reducing testing, and simplifying the identification of errors.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

An algorithm is not the same thing as code. Beyond visual and textual programming languages, an algorithm can be expressed in a variety of ways: in natural language (ordinary sentences), as a diagram such as a flowchart, or in pseudocode. Those forms are for people — they let you check the logic and agree on it before any language is chosen, and the same algorithm can then be written in any language.

When you do write it in a programming language, clarity and readability are important considerations, not decoration: meaningful variable names, consistent indentation and comments explaining why rather than what. The program has to be read and modified later by someone — often you — and an algorithm nobody can follow cannot be maintained or debugged.

An algorithm 算法 is a finite sequence of steps that solves a problem, built from sequencing, selection, and iteration. Different algorithms can solve the same problem, and you should be able to combine and modify existing algorithms (for example, count the values in a list that meet a condition, or find the largest). Trace an algorithm by hand to check it is correct.

Bahasa Indonesia
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

Lists · ⁨Daftar⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.N: For list operations: a. Write expressions that use list indexing and list procedures. [Skill 2.B] b. Evaluate expressions that use list indexing and list procedures. [Skill 4.B]

  • AAP-2.N.1 The exam reference sheet provides basic operations on lists, including:
    • accessing an element by index

      Text:

      aList[i]

      Block:

      aList i

      accesses the element of aList at index i. The first element of aList is at index 1 and is accessed using the notation aList[1].

    • assigning a value of an element of a list to a variable

      Text:

      x ← aList[i]

      Block:

      x ← aList i

      assigns the value of aList[i] to the variable x.

    • assigning a value to an element of a list

      Text:

      aList[i] ← x

      Block:

      aList i ← x

      assigns the value of x to aList[i].

      Text:

      aList[i] ← aList[j]

      Block:

      aList i ← aList j

      assigns the value of aList[j] to aList[i].

    • inserting elements at a given index

      Text:

      INSERT(aList, i, value)

      Block:

      INSERT aList, i, value

      shifts to the right any values in aList at indices greater than or equal to i. The length of the list is increased by 1, and value is placed at index i in aList.

    • adding elements to the end of the list

      Text:

      APPEND(aList, value)

      Block:

      APPEND aList, value

      increases the length of aList by 1, and value is placed at the end of aList.

    • removing elements

      Text:

      REMOVE(aList, i)

      Block:

      REMOVE aList, i

      removes the item at index i in aList and shifts to the left any values at indices greater than i. The length of aList is decreased by 1.

    • determining the length of a list

      Text:

      LENGTH(aList)

      Block:

      LENGTH aList

      evaluates to the number of elements currently in aList.

  • AAP-2.N.2 List procedures are implemented in accordance with the syntax rules of the programming language.

Learning Objective AAP-2.O: For algorithms involving elements of a list: a. Write iteration statements to traverse a list. [Skill 2.B] b. Determine the result of an algorithm that includes list traversals. [Skill 4.B]

  • AAP-2.O.1 Traversing a list can be a complete traversal, where all elements in the list are accessed, or a partial traversal, where only a portion of elements are accessed.

    • Exclusion statement (EK AAP-2.O.1): Traversing multiple lists at the same time using the same index for both (parallel traversals) is outside the scope of this course and the AP Exam.
  • AAP-2.O.2 Iteration statements can be used to traverse a list.

  • AAP-2.O.3 The exam reference sheet provides

    Text:

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

    Block:

    FOR EACH item IN aList block of statements

    The variable item is assigned the value of each element of aList sequentially, in order, from the first element to the last element. The code in block of statements is executed once for each assignment of item.

  • AAP-2.O.4 Knowledge of existing algorithms that use iteration can help in constructing new algorithms. Some examples of existing algorithms that are often used with lists include:

    • determining a minimum or maximum value in a list
    • computing a sum or average of a list of numbers
  • AAP-2.O.5 Linear search or sequential search algorithms check each element of a list, in order, until the desired value is found or all elements in the list have been checked.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A list 列表 is an ordered collection of values under one name, the course's key data abstraction. AP pseudocode indexes from 1:

Traverse a list with a loop to sum, count, search, or find a maximum:

Bahasa Indonesia

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

Binary Search · ⁨Pencarian Biner⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

Learning Objective AAP-2.P: For binary search algorithms: a. Determine the number of iterations required to find a value in a data set. [Skill 1.D] b. Explain the requirements necessary to complete a binary search. [Skill 1.A]

  • AAP-2.P.1 The binary search algorithm starts at the middle of a sorted data set of numbers and eliminates half of the data; this process repeats until the desired value is found or all elements have been eliminated.
    • Exclusion statement (EK AAP-2.P.1): Specific implementations of the binary search are outside the scope of the course and the AP Exam.
  • AAP-2.P.2 Data must be in sorted order to use the binary search algorithm.
  • AAP-2.P.3 Binary search is often more efficient than sequential/linear search when applied to sorted data.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Binary search 二分搜索 finds a value in a sorted list far faster than checking each element. It looks at the middle element, then discards the half that cannot contain the target, repeating until found. Each step halves the search space, so a list of $n$ items takes about $\log_2 n$ steps. It requires the data to be sorted first.

Worked example. Searching a sorted list of $8$ items, binary search halves the range each step: $8\rightarrow4\rightarrow2\rightarrow1$, at most $3$ comparisons ($\log_2 8=3$), whereas a linear search could take up to $8$. The advantage grows explosively: about $1{,}000$ items need only $\approx10$ binary-search steps (but up to $1{,}000$ linear ones), and $1{,}000{,}000$ items need just $\approx20$. Halving is what makes it a reasonable-time algorithm.

Bahasa Indonesia
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.

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

Calling Procedures · ⁨Memanggil Prosedur⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Learning Objective AAP-3.A: For procedure calls: a. Write statements to call procedures. [Skill 3.B] b. Determine the result or effect of a procedure call. [Skill 4.B]

  • AAP-3.A.1 A procedure is a named group of programming instructions that may have parameters and return values.

  • AAP-3.A.2 Procedures are referred to by different names, such as method or function, depending on the programming language.

  • AAP-3.A.3 Parameters are input variables of a procedure. Arguments specify the values of the parameters when a procedure is called.

  • AAP-3.A.4 A procedure call interrupts the sequential execution of statements, causing the program to execute the statements within the procedure before continuing. Once the last statement in the procedure (or a return statement) has executed, flow of control is returned to the point immediately following where the procedure was called.

  • AAP-3.A.5 The exam reference sheet provides

    procName(arg1, arg2, ...)

    as a way to call

    Text:

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

    Block:

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

    which takes zero or more arguments; arg1 is assigned to parameter1, arg2 is assigned to parameter2, and so on.

  • AAP-3.A.6 The exam reference sheet provides the procedure

    Text:

    DISPLAY(expression)

    Block:

    DISPLAY expression

    to display the value of expression, followed by a space.

  • AAP-3.A.7 The exam reference sheet provides the

    Text:

    RETURN(expression)

    Block:

    RETURN expression

    statement, which is used to return the flow of control to the point where the procedure was called and to return the value of expression.

  • AAP-3.A.8 The exam reference sheet provides

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

    to assign to result the "value of the procedure" being returned by calling

    Text:

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

    Block:

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

  • AAP-3.A.9 The exam reference sheet provides procedure

    Text:

    INPUT()

    Block:

    INPUT

    which accepts a value from the user and returns the input value.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A procedure (function) 过程 is a named, reusable block of code. Calling it runs its code with the arguments you supply, and it may return a value:

Procedures let you use code without knowing its inner workings – procedural abstraction 过程抽象.

Bahasa Indonesia

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

Developing Procedures · ⁨Mengembangkan Prosedur⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Learning Objective AAP-3.B: Explain how the use of procedural abstraction manages complexity in a program. [Skill 3.C]

  • AAP-3.B.1 One common type of abstraction is procedural abstraction, which provides a name for a process and allows a procedure to be used only knowing what it does, not how it does it.
  • AAP-3.B.2 Procedural abstraction allows a solution to a large problem to be based on the solutions of smaller subproblems. This is accomplished by creating procedures to solve each of the subproblems.
  • AAP-3.B.3 The subdivision of a computer program into separate subprograms is called modularity.
  • AAP-3.B.4 A procedural abstraction may extract shared features to generalize functionality instead of duplicating code. This allows for program code reuse, which helps manage complexity.
  • AAP-3.B.5 Using parameters allows procedures to be generalized, enabling the procedures to be reused with a range of input values or arguments.
  • AAP-3.B.6 Using procedural abstraction helps improve code readability.
  • AAP-3.B.7 Using procedural abstraction in a program allows programmers to change the internals of the procedure (to make it faster, more efficient, use less storage, etc.) without needing to notify users of the change as long as what the procedure does is preserved.

Learning Objective AAP-3.C: Develop procedural abstractions to manage complexity in a program by writing procedures. [Skill 3.B]

  • AAP-3.C.1 The exam reference sheet provides

    Text:

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

    Block:

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

    which is used to define a procedure that takes zero or more arguments. The procedure contains block of statements.

  • AAP-3.C.2 The exam reference sheet provides

    Text:

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

    Block:

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

    which is used to define a procedure that takes zero or more arguments. The procedure contains block of statements and returns the value of expression. The RETURN statement may appear at any point inside the procedure and causes an immediate return from the procedure back to the calling statement.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

You define a procedure with a name, parameters (inputs), and a body, and optionally RETURN a result:

Writing your own procedures reduces repetition, breaks a big problem into named pieces, and makes programs readable and easier to test – the essence of abstraction 抽象.

Bahasa Indonesia

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.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨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

Libraries · ⁨Perpustakaan⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Learning Objective AAP-3.D: Select appropriate libraries or existing code segments to use in creating new programs. [Skill 2.B]

  • AAP-3.D.1 A software library contains procedures that may be used in creating new programs.
  • AAP-3.D.2 Existing code segments can come from internal or external sources, such as libraries or previously written code.
  • AAP-3.D.3 The use of libraries simplifies the task of creating complex programs.
  • AAP-3.D.4 Application program interfaces (APIs) are specifications for how the procedures in a library behave and can be used.
  • AAP-3.D.5 Documentation for an API/library is necessary in understanding the behaviors provided by the API/library and how to use them.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A library 库 is a collection of ready-made procedures that others can reuse. An API (Application Program Interface) 应用程序接口 documents what each procedure does, its parameters, and its result – so you can use it without seeing its code. Libraries save time and let you build on existing, tested work.

The documentation is part of the library. Documentation for an API or library is necessary in order to understand the behaviours it provides and how to use them — what each procedure expects as parameters, what it returns, and what it does at the edges. Without it you would have to read the source, which defeats the point of abstraction; with it you can use a procedure correctly without knowing how it works inside.

Bahasa Indonesia

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.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
Interface/ˈɪntəfeɪs/ Antarmuka
3.15

Random Values · ⁨Nilai Acak⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Learning Objective AAP-3.E: For generating random values: a. Write expressions to generate possible values. [Skill 2.B] b. Evaluate expressions to determine the possible results. [Skill 4.B]

  • AAP-3.E.1 The exam reference sheet provides

    Text:

    RANDOM(a, b)

    Block:

    RANDOM a, b

    which generates and returns a random integer from a to b, inclusive. Each result is equally likely to occur. For example, RANDOM(1, 3) could return 1, 2, or 3.

  • AAP-3.E.2 Using random number generation in a program means each execution may produce a different result.

Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

RANDOM(a, b) returns a random integer from a to b (inclusive), letting a program produce unpredictable results – for games, sampling, or simulations. Each call may give a different value, so a program using randomness behaves differently each run.

Bahasa Indonesia

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

Simulations · ⁨Simulasi⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

Learning Objective AAP-3.F: For simulations: a. Explain how computers can be used to represent real-world phenomena or outcomes. [Skill 1.A] b. Compare simulations with real-world contexts. [Skill 1.D]

  • AAP-3.F.1 Simulations are abstractions of more complex objects or phenomena for a specific purpose.
  • AAP-3.F.2 A simulation is a representation that uses varying sets of values to reflect the changing state of a phenomenon.
  • AAP-3.F.3 Simulations often mimic real-world events with the purpose of drawing inferences, allowing investigation of a phenomenon without the constraints of the real world.
  • AAP-3.F.4 The process of developing an abstract simulation involves removing specific details or simplifying functionality.
  • AAP-3.F.5 Simulations can contain bias derived from the choices of real-world elements that were included or excluded.
  • AAP-3.F.6 Simulations are most useful when real-world events are impractical for experiments (e.g., too big, too small, too fast, too slow, too expensive, or too dangerous).
  • AAP-3.F.7 Simulations facilitate the formulation and refinement of hypotheses related to the objects or phenomena under consideration.
  • AAP-3.F.8 Random number generators can be used to simulate the variability that exists in the real world.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

A simulation 模拟 is a program that models a real-world process to study it safely and cheaply. Simulations simplify reality (they leave out detail) and often use randomness to imitate chance events. They let you test scenarios that would be too costly, slow, or dangerous in real life – but their results are only as good as their assumptions.

A simulation is a way of doing science, not just a picture. Because it can be run many times, cheaply and with one variable changed at a time, a simulation facilitates the formulation and refinement of hypotheses about the object or phenomenon under consideration: you propose an explanation, run the model, compare the result with reality, and adjust either the hypothesis or the model. That is why a simulation's simplifications matter — a result only supports a hypothesis about the real world to the extent that what was left out does not matter.

Bahasa Indonesia

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

Algorithmic Efficiency · ⁨Efisiensi Algoritmik⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-4): There exist problems that computers cannot solve, and even when a computer can solve a problem, it may not be able to do so in a reasonable amount of time.

Learning Objective AAP-4.A: For determining the efficiency of an algorithm: a. Explain the difference between algorithms that run in reasonable time and those that do not. [Skill 1.D] b. Identify situations where a heuristic solution may be more appropriate. [Skill 1.D]

  • AAP-4.A.1 A problem is a general description of a task that can (or cannot) be solved algorithmically. An instance of a problem also includes specific input. For example, sorting is a problem; sorting the list (2,3,1,7) is an instance of the problem.
  • AAP-4.A.2 A decision problem is a problem with a yes/no answer (e.g., is there a path from A to B?). An optimization problem is a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?).
  • AAP-4.A.3 Efficiency is an estimation of the amount of computational resources used by an algorithm. Efficiency is typically expressed as a function of the size of the input.
    • Exclusion statement (EK AAP-4.A.3): Formal analysis of algorithms (Big-O) and formal reasoning using mathematical formulas are outside the scope of this course and the AP Exam.
  • AAP-4.A.4 An algorithm's efficiency is determined through formal or mathematical reasoning.
  • AAP-4.A.5 An algorithm's efficiency can be informally measured by determining the number of times a statement or group of statements executes.
  • AAP-4.A.6 Different correct algorithms for the same problem can have different efficiencies.
  • AAP-4.A.7 Algorithms with a polynomial efficiency or slower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time. Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
  • AAP-4.A.8 Some problems cannot be solved in a reasonable amount of time because there is no efficient algorithm for solving them. In these cases, approximate solutions are sought.
  • AAP-4.A.9 A heuristic is an approach to a problem that produces a solution that is not guaranteed to be optimal but may be used when techniques that are guaranteed to always find an optimal solution are impractical.
    • Exclusion statement (AAP-4.A.9): Specific heuristic solutions are outside the scope of this course and the AP Exam.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Efficiency 效率 is how much time (or memory) an algorithm needs as its input grows. A reasonable-time algorithm's work grows like a polynomial of the input size (e.g. linear or quadratic); an unreasonable-time algorithm grows far faster (e.g. doubling with each added item), becoming impractical for large inputs. A faster algorithm can make a previously impossible problem solvable. Sometimes an exact answer takes too long, so a heuristic 启发式 – an approach that finds a good-enough answer quickly – is used instead.

Bahasa Indonesia

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

Undecidable Problems · ⁨Masalah Tak Terputuskan⁩

Syllabus · ⁨Silabus⁩
English

Enduring Understanding (AAP-4): There exist problems that computers cannot solve, and even when a computer can solve a problem, it may not be able to do so in a reasonable amount of time.

Learning Objective AAP-4.B: Explain the existence of undecidable problems in computer science. [Skill 1.A]

  • AAP-4.B.1 A decidable problem is a decision problem for which an algorithm can be written to produce a correct output for all inputs (e.g., "Is the number even?").
  • AAP-4.B.2 An undecidable problem is one for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer.
    • Exclusion statement (EK AAP-4.B.2): Determining whether a given problem is undecidable is outside the scope of this course and the AP Exam.
  • AAP-4.B.3 An undecidable problem may have some instances that have an algorithmic solution, but there is no algorithmic solution that could solve all instances of the problem.
Bahasa Indonesia

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.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Some problems are undecidable 不可判定: no algorithm can solve every case of them with a correct yes/no answer. This is a fundamental limit of computing – not a matter of needing a faster computer, but a proof that no such algorithm can exist.

Exam skill: be able to determine a code segment's result by tracing it, compare two algorithms' efficiency (reasonable vs unreasonable time), and recognize procedural and data abstraction in a program.

Bahasa Indonesia

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

Exam tips · ⁨Tips ujian⁩

English
  • Know a variable is a named store for a value and trace how assignment updates it step by step.
  • Read the AP pseudocode carefully — a <- expression assigns, and lists are 1-indexed on the exam reference sheet.
  • Distinguish a variable from a list (a collection accessed by index) and use list operations correctly.
  • Evaluate expressions with the right precedence and boolean logic (AND, OR, NOT).
  • Pick clear, meaningful variable names — the written tasks reward readable code.
Bahasa Indonesia
  • 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.

Interactive lessons on this topic · ⁨Pelajaran interaktif untuk topik ini⁩

Work through it step by step, with instant-check exercises. · ⁨Kerjakan langkah demi langkah, dengan latihan pengecekan instan.⁩

Past Papers · ⁨Soal-Soil Masa Lalu⁩

More topics in AP Computer Science Principles · ⁨AP Prinsip Ilmu Komputer⁩ · ⁨Topik lain dalam AP Computer Science Principles · ⁨AP Prinsip Ilmu Komputer⁩⁩

Log in or create account · ⁨Masuk atau buat akun⁩

IGCSE, A-Level & AP