Skip to content · ⁨Lompat ke konten⁩

Selection and Iteration · ⁨Seleksi dan Iterasi⁩

AP Computer Science A · ⁨AP Ilmu Komputer A⁩ · Topic 2 · ⁨Topik 2⁩

Video lesson for this topic · ⁨Pelajaran video untuk topik ini⁩ Open the video page · ⁨Buka halaman video⁩
7:59

Seleksi dan Iterasi

Berikut tiga loop. Mereka berbeda oleh satu karakter masing-masing — tanda kurang daripada alih-alih kurang dari atau sama dengan, tanda lebih dari alih-alih kurang dari. Loop pertama berjalan…

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

2.1

Selection and Repetition in Algorithms · ⁨Seleksi dan Pengulangan dalam Algoritma⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.1.A: Represent patterns and algorithms that involve selection and repetition found in everyday life using written language or diagrams.

  • 2.1.A.1 The building blocks of algorithms include sequencing, selection, and repetition.
  • 2.1.A.2 Algorithms can contain selection, through decision making, and repetition, via looping.
  • 2.1.A.3 Selection occurs when a choice of how the execution of an algorithm will proceed is based on a true or false decision.
  • 2.1.A.4 Repetition is when a process repeats itself until a desired outcome is reached.
  • 2.1.A.5 The order in which sequencing, selection, and repetition are used contributes to the outcome of the algorithm.
Bahasa Indonesia

Tujuan Pembelajaran 2.1.A: Merepresentasikan pola dan algoritma yang melibatkan seleksi dan pengulangan yang ditemukan dalam kehidupan sehari-hari menggunakan bahasa tertulis atau diagram.

  • 2.1.A.1 Blok pembangun algoritma mencakup penelusuran, seleksi, dan pengulangan.
  • 2.1.A.2 Algoritma dapat mengandung seleksi, melalui pengambilan keputusan, dan pengulangan, melalui perulangan.
  • 2.1.A.3 Seleksi terjadi ketika pilihan tentang bagaimana eksekusi algoritma akan berlanjut didasarkan pada keputusan true atau false.
  • 2.1.A.4 Pengulangan adalah ketika suatu proses berulang hingga hasil yang diinginkan tercapai.
  • 2.1.A.5 Urutan di mana penelusuran, seleksi, dan pengulangan digunakan berkontribusi terhadap hasil algoritma.

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

English

Algorithms are built from three control structures 控制结构: sequence (steps in order), selection 选择 (choosing a path), and iteration 迭代 (repeating steps). This topic covers selection and iteration – the tools that let a program make decisions and loop.

Bahasa Indonesia
Diagram alir dengan berlian keputusan: seleksi memilih jalur mana yang diambil algoritma
Diagram alir dengan berlian keputusan: seleksi memilih jalur mana yang diambil algoritma

Algoritma dibangun dari tiga struktur kendali: urutan (langkah-langkah berurutan), seleksi (memilih jalur), dan iterasi (mengulang langkah). Topik ini mencakup seleksi dan iterasi – alat yang memungkinkan program membuat keputusan dan melakukan perulangan.

Tiga struktur kendali: urutan, seleksi, dan iterasi
Tiga struktur kendali: urutan, seleksi, dan iterasi
Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
control structures/kənˈtrəʊl ˈstrʌktʃəz/ struktur kontrol
selection/sɪˈlekʃn/ pemilihan
iteration/ˌɪtəˈreɪʃn/ iterasi
boolean expression/ˈbuːlɪən ekˈspreʃn/ ekspresi boolean
relational operators/rɪˈleɪʃənl ˈɒpəreɪtəz/ operator relasional
if statement/ɪf ˈsteɪtmənt/ pernyataan if
Logical operators/ˈlɒdʒɪkl ˈɒpəreɪtəz/ Operator logika
short-circuit evaluation/ʃɔːt ˈsɜːkɪt ɪˌvæljuːˈeɪʃn/ evaluasi pintas
De Morgan's laws/də ˈmɔːɡənz lɔːz/ hukum De Morgan
while loop/waɪl luːp/ perulangan while
infinite loop/ˈɪnfɪnət luːp/ perulangan tak hingga
2.2

Boolean Expressions · ⁨Ekspresi Boolean⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.2.A: Develop code to create Boolean expressions with relational operators and determine the result of these expressions.

  • 2.2.A.1 Values can be compared using the relational operators == and != to determine whether the values are the same. With primitive types, this compares the actual primitive values. With reference types, this compares the object references.
  • 2.2.A.2 Numeric values can be compared using the relational operators <, >, <=, and >= to determine the relationship between the values.
  • 2.2.A.3 An expression involving relational operators evaluates to a Boolean value.
Bahasa Indonesia

Tujuan Pembelajaran 2.2.A: Mengembangkan kode untuk membuat ekspresi Boolean dengan operator relasional dan menentukan hasil dari ekspresi-ekspresi tersebut.

  • 2.2.A.1 Nilai-nilai dapat dibandingkan menggunakan operator relasional == dan != untuk menentukan apakah nilai-nilai tersebut sama. Dengan tipe primitif, ini membandingkan nilai primitif itu sendiri. Dengan tipe referensi, ini membandingkan referensi objeknya.
  • 2.2.A.2 Nilai numerik dapat dibandingkan menggunakan operator relasional <, >, <=, dan >= untuk menentukan hubungan antara nilai-nilai tersebut.
  • 2.2.A.3 Sebuah ekspresi yang melibatkan operator relasional akan mengevaluasi menjadi nilai Boolean.

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

English
Logic gates & the half-adder

A boolean expression 布尔表达式 evaluates to true or false, using relational operators 关系运算符: == (equal), != (not equal), <, >, <=, >=. Note == compares primitive values but object references for objects, so use .equals for Strings.

Bahasa Indonesia
Gerbang logika & half-adder

Ekspresi boolean dievaluasi menjadi true atau false, menggunakan operator relasional: == (sama dengan), != (tidak sama dengan), <, >, <=, >=. Perhatikan bahwa == membandingkan nilai primitif tetapi referensi objek untuk objek, jadi gunakan .equals untuk Strings.

Tiga keluarga operator: aritmatika, relasional, dan logika
Tiga keluarga operator: aritmatika, relasional, dan logika
Explore · ⁨Jelajahi⁩

Explore the AND truth table · ⁨Jelajahi tabel kebenaran AND⁩

A Boolean expression evaluates to true or false. AND is true only when both operands are true; toggle the inputs to see all four cases. · ⁨Ekspresi Boolean mengevaluasi menjadi true atau false. AND benar hanya jika kedua operand benar; aktifkan input untuk melihat keempat kasus.⁩

2.3

The if Statement · ⁨Pernyataan if⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.3.A: Develop code to represent branching logical processes by using selection statements and determine the result of these processes.

  • 2.3.A.1 Selection statements change the sequential execution of statements.
  • 2.3.A.2 An if statement is a type of selection statement that affects the flow of control by executing different segments of code based on the value of a Boolean expression.
  • 2.3.A.3 A one-way selection (if statement) is used when there is a segment of code to execute under a certain condition. In this case, the body is executed only when the Boolean expression is true.
  • 2.3.A.4 A two-way selection (if-else statement) is used when there are two segments of code—one to be executed when the Boolean expression is true and another segment for when the Boolean expression is false. In this case, the body of the if is executed when the Boolean expression is true, and the body of the else is executed when the Boolean expression is false.
Bahasa Indonesia

Tujuan Pembelajaran 2.3.A: Mengembangkan kode untuk merepresentasikan proses logis percabangan menggunakan pernyataan seleksi dan menentukan hasil dari proses-proses tersebut.

  • 2.3.A.1 Pernyataan seleksi mengubah eksekusi berurutan dari pernyataan-pernyataan.
  • 2.3.A.2 Sebuah pernyataan if adalah jenis pernyataan seleksi yang mempengaruhi alur kontrol dengan mengeksekusi segmen kode yang berbeda berdasarkan nilai sebuah ekspresi Boolean.
  • 2.3.A.3 Seleksi satu arah (pernyataan if) digunakan ketika ada segmen kode yang harus dieksekusi di bawah kondisi tertentu. Dalam hal ini, tubuh hanya dieksekusi ketika ekspresi Boolean bernilai true.
  • 2.3.A.4 Seleksi dua arah (pernyataan if-else) digunakan ketika ada dua segmen kode—satu untuk dieksekusi ketika ekspresi Boolean bernilai true dan segmen lain untuk ketika ekspresi Boolean bernilai false. Dalam kasus ini, tubuh dari if dieksekusi ketika ekspresi Boolean bernilai true, dan tubuh dari else dieksekusi ketika ekspresi Boolean bernilai false.

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

English

An if statement 条件语句 runs a block only when its condition is true; an optional else gives an alternative:

Bahasa Indonesia

Pernyataan if menjalankan blok hanya ketika kondisinya true; sebuah else opsional memberikan alternatif:

if (score >= 60) {
    System.out.println("Pass");
} else {
    System.out.println("Fail");
}
Lampu lalu lintas: seleksi memilih cabang mana yang berjalan, sama seperti pernyataan if memilih jalur kode
Lampu lalu lintas: seleksi memilih cabang mana yang berjalan, sama seperti pernyataan if memilih jalur kode
Explore · ⁨Jelajahi⁩

See which branch an if chooses · ⁨Lihat cabang mana yang dipilih if⁩

An if statement runs its body only when the condition is true, otherwise it skips to else. Slide the score across the boundaries and watch the grade change. · ⁨Perintah if menjalankan isinya hanya ketika kondisi benar, jika tidak ia melewatkan ke else. Geser skor melintasi batas dan lihat nilai huruf berubah.⁩

2.4

Nested if Statements · ⁨Pernyataan if Bersarang⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.4.A: Develop code to represent nested branching logical processes and determine the result of these processes.

  • 2.4.A.1 Nested if statements consist of if, if-else, or if-else-if statements within if, if-else, or if-else-if statements.
  • 2.4.A.2 The Boolean expression of the inner nested if statement is evaluated only if the Boolean expression of the outer if statement evaluates to true.
  • 2.4.A.3 A multiway selection (if-else-if) is used when there are a series of expressions with different segments of code for each condition. Multiway selection is performed such that no more than one segment of code is executed based on the first expression that evaluates to true. If no expression evaluates to true and there is a trailing else statement, then the body of the else is executed.
Bahasa Indonesia

Tujuan Pembelajaran 2.4.A: Mengembangkan kode untuk merepresentasikan proses logis percabangan bersarang dan menentukan hasil dari proses-proses tersebut.

  • 2.4.A.1 Pernyataan if yang bersarang terdiri dari pernyataan-pernyataan if, if-else, atau if-else-if di dalam pernyataan-pernyataan if, if-else, atau if-else-if.
  • 2.4.A.2 Ekspresi Boolean dari pernyataan if dalam yang bersarang hanya akan dievaluasi jika ekspresi Boolean dari pernyataan if luar mengevaluasi menjadi true.
  • 2.4.A.3 Seleksi banyak arah (pernyataan if-else-if) digunakan ketika ada serangkaian ekspresi dengan segmen kode yang berbeda untuk setiap kondisinya. Seleksi banyak arah dilakukan sedemikian rupa sehingga tidak lebih dari satu segmen kode yang dieksekusi berdasarkan ekspresi pertama yang mengevaluasi menjadi true. Jika tidak ada ekspresi yang mengevaluasi menjadi true dan terdapat pernyataan else terakhir, maka tubuh dari else akan dieksekusi.

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

English

Placing an if inside another, or chaining with else if, tests several cases in order. Only the first matching branch runs:

Bahasa Indonesia

Menempatkan sebuah if di dalam lainnya, atau merangkai dengan else if, menguji beberapa kasus secara berurutan. Hanya cabang pertama yang cocok yang akan berjalan:

if (g >= 90) grade = 'A';
else if (g >= 80) grade = 'B';
else grade = 'C';
2.5

Compound Boolean Expressions · ⁨Ekspresi Boolean Majemuk⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.5.A: Develop code to represent compound Boolean expressions and determine the result of these expressions.

  • 2.5.A.1 Logical operators ! (not), && (and), and || (or) are used with Boolean expressions. The expression !a evaluates to true if a is false and evaluates to false otherwise. The expression a && b evaluates to true if both a and b are true and evaluates to false otherwise. The expression a || b evaluates to true if a is true, b is true, or both, and evaluates to false otherwise. The order of precedence for evaluating logical operators is ! (not), && (and), then || (or). An expression involving logical operators evaluates to a Boolean value.
  • 2.5.A.2 Short-circuit evaluation occurs when the result of a logical operation using && or || can be determined by evaluating only the first Boolean expression. In this case, the second Boolean expression is not evaluated.
Bahasa Indonesia

Tujuan Pembelajaran 2.5.A: Mengembangkan kode untuk merepresentasikan ekspresi Boolean majemuk dan menentukan hasil dari ekspresi-ekspresi tersebut.

  • 2.5.A.1 Operator logika ! (not), && (and), dan || (or) digunakan bersama ekspresi Boolean. Ekspresi !a mengevaluasi menjadi true jika a bernilai false dan mengevaluasi menjadi false sebaliknya. Ekspresi a && b mengevaluasi menjadi true jika baik a maupun b bernilai true dan mengevaluasi menjadi false sebaliknya. Ekspresi a || b mengevaluasi menjadi true jika a bernilai true, b bernilai true, atau keduanya, dan mengevaluasi menjadi false sebaliknya. Urutan prioritas untuk mengevaluasi operator logika adalah ! (not), && (and), kemudian || (or). Ekspresi yang melibatkan operator logika akan mengevaluasi menjadi nilai Boolean.
  • 2.5.A.2 Evaluasi short-circuit terjadi ketika hasil dari operasi logika menggunakan && atau || dapat ditentukan hanya dengan mengevaluasi ekspresi Boolean pertama. Dalam kasus ini, ekspresi Boolean kedua tidak akan dievaluasi.

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

English
Short-circuit evaluation

Logical operators 逻辑运算符 combine conditions: && (and – both true), || (or – at least one true), ! (not – reverse). Java uses short-circuit evaluation 短路求值: && stops if the left side is false, and || stops if the left side is true – useful to guard against errors, e.g. if (n != 0 && total / n > 5).

Bahasa Indonesia
Evaluasi short-circuit

Operator logika menggabungkan kondisi: && (and – keduanya true), || (or – setidaknya satu true), ! (not – kebalikan). Java menggunakan evaluasi short-circuit: && berhenti jika sisi kiri false, dan || berhenti jika sisi kiri true – berguna untuk mencegah kesalahan, mis. if (n != 0 && total / n > 5).

2.6

Comparing Boolean Expressions · ⁨Membandingkan Ekspresi Boolean⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.6.A: Compare equivalent Boolean expressions.

  • 2.6.A.1 Two Boolean expressions are equivalent if they evaluate to the same value in all cases. Truth tables can be used to prove Boolean expressions are equivalent.
  • 2.6.A.2 De Morgan's law can be applied to Boolean expressions to create equivalent Boolean expressions. Under De Morgan's law, the Boolean expression !(a && b) is equivalent to !a || !b and the Boolean expression !(a || b) is equivalent to !a && !b.

Learning Objective 2.6.B: Develop code to compare object references using Boolean expressions and determine the result of these expressions.

  • 2.6.B.1 Two different variables can hold references to the same object. Object references can be compared using == and !=.
  • 2.6.B.2 An object reference can be compared with null, using == or !=, to determine if the reference actually references an object.
  • 2.6.B.3 Classes often define their own equals method, which can be used to specify the criteria for equivalency for two objects of the class. The equivalency of two objects is most often determined using attributes from the two objects.
    • Exclusion statement: Overriding the equals method is outside the scope of the AP Computer Science A course and exam.
Bahasa Indonesia

Tujuan Pembelajaran 2.6.A: Membandingkan ekspresi Boolean yang ekuivalen.

  • 2.6.A.1 Dua ekspresi Boolean disebut ekuivalen jika mereka mengevaluasi menjadi nilai yang sama dalam semua kasus. Tabel kebenaran dapat digunakan untuk membuktikan bahwa ekspresi Boolean adalah ekuivalen.
  • 2.6.A.2 Hukum De Morgan dapat diterapkan pada ekspresi Boolean untuk menciptakan ekspresi Boolean yang ekuivalen. Di bawah Hukum De Morgan, ekspresi Boolean !(a && b) ekuivalen dengan !a || !b dan ekspresi Boolean !(a || b) ekuivalen dengan !a && !b.

Tujuan Pembelajaran 2.6.B: Mengembangkan kode untuk membandingkan referensi objek menggunakan ekspresi Boolean dan menentukan hasil dari ekspresi-ekspresi tersebut.

  • 2.6.B.1 Dua variabel yang berbeda dapat menyimpan referensi ke objek yang sama. Referensi objek dapat dibandingkan menggunakan == dan !=.
  • 2.6.B.2 Sebuah referensi objek dapat dibandingkan dengan null, menggunakan == atau !=, untuk menentukan apakah referensi tersebut benar-benar merujuk pada sebuah objek.
  • 2.6.B.3 Kelas-kelas sering mendefinisikan metode equals mereka sendiri, yang dapat digunakan untuk menentukan kriteria kesetaraan untuk dua objek dari kelas tersebut. Kesetaraan dua objek paling sering ditentukan menggunakan atribut-atribut dari kedua objek tersebut.
    • Pernyataan pengecualian: Mengimpa metode equals berada di luar ruang lingkup kursus dan ujian AP Computer Science A.

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

English

De Morgan's laws 德摩根定律 rewrite negations: !(a && b) equals !a || !b, and !(a || b) equals !a && !b. Two boolean expressions are equivalent if they give the same result for every input – a truth table proves it. Simplifying conditions this way is a common exam task.

Bahasa Indonesia

Hukum De Morgan menulis ulang negasi: !(a && b) sama dengan !a || !b, dan !(a || b) sama dengan !a && !b. Dua ekspresi boolean ekuivalen jika mereka menghasilkan hasil yang sama untuk setiap input – tabel kebenaran membuktikannya. Menyederhanakan kondisi dengan cara ini adalah tugas ujian yang umum.

2.7

while Loops · ⁨Perulangan while⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.7.A: Identify when an iterative process is required to achieve a desired result.

  • 2.7.A.1 Iteration is a form of repetition. Iteration statements change the flow of control by repeating a segment of code zero or more times as long as the Boolean expression controlling the loop evaluates to true.
  • 2.7.A.2 An infinite loop occurs when the Boolean expression in an iterative statement always evaluates to true.
  • 2.7.A.3 The loop body of an iterative statement will not execute if the Boolean expression initially evaluates to false.
  • 2.7.A.4 Off by one errors occur when the iteration statement loops one time too many or one time too few.

Learning Objective 2.7.B: Develop code to represent iterative processes using while loops and determine the result of these processes.

  • 2.7.B.1 A while loop is a type of iterative statement. In while loops, the Boolean expression is evaluated before each iteration of the loop body, including the first. When the expression evaluates to true, the loop body is executed. This continues until the Boolean expression evaluates to false, whereupon the iteration terminates.
Bahasa Indonesia

Tujuan Pembelajaran 2.7.A: Identifikasi kapan proses iteratif diperlukan untuk mencapai hasil yang diinginkan.

  • 2.7.A.1 Iterasi adalah bentuk pengulangan. Pernyataan iterasi mengubah alur kontrol dengan mengulang segmen kode nol atau lebih kali selama ekspresi Boolean yang mengontrol perulangan mengevaluasi ke true.
  • 2.7.A.2 Perulangan tak hingga terjadi ketika ekspresi Boolean dalam pernyataan iteratif selalu mengevaluasi ke true.
  • 2.7.A.3 Badan perulangan dari pernyataan iteratif tidak akan dieksekusi jika ekspresi Boolean awalnya mengevaluasi ke false.
  • 2.7.A.4 Kesalahan off by one terjadi ketika pernyataan iterasi melakukan perulangan satu kali terlalu banyak atau satu kali terlalu sedikit.

Tujuan Pembelajaran 2.7.B: Kembangkan kode untuk merepresentasikan proses iteratif menggunakan while loops dan tentukan hasil dari proses-proses tersebut.

  • 2.7.B.1 Loop while adalah jenis pernyataan iteratif. Dalam loop while, ekspresi Boolean dievaluasi sebelum setiap iterasi badan perulangan, termasuk pertama. Ketika ekspresi mengevaluasi ke true, badan perulangan dieksekusi. Ini berlanjut hingga ekspresi Boolean mengevaluasi ke false, di mana iterasi berhenti.

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

English

A while loop 循环 repeats while its condition stays true, testing before each pass. You must change something inside so the loop eventually stops, or it becomes an infinite loop 无限循环:

Bahasa Indonesia

Perulangan while mengulang selama kondisinya tetap true, menguji sebelum setiap putaran. Anda harus mengubah sesuatu di dalamnya agar perulangan akhirnya berhenti, atau itu akan menjadi perulangan tak hingga:

Tiga jenis perulangan berbeda dalam hal di mana kondisi diuji
Tiga jenis perulangan berbeda dalam hal di mana kondisi diuji
int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}
Explore · ⁨Jelajahi⁩

Trace a while loop · ⁨Telusuri perulangan while⁩

A while loop repeats as long as its condition stays true, updating its variables each pass. Step through to see the sum of squares build up. · ⁨Perulangan while berulang selama kondisinya tetap benar, memperbarui variabelnya setiap kali melewati. Telusuri untuk melihat penjumlahan kuadrat terbentuk.⁩

2.8

for Loops · ⁨Perulangan for⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.8.A: Develop code to represent iterative processes using for loops and determine the result of these processes.

  • 2.8.A.1 A for loop is a type of iterative statement. There are three parts in a for loop header: the initialization, the Boolean expression, and the update.
  • 2.8.A.2 In a for loop, the initialization statement is only executed once before the first Boolean expression evaluation. The variable being initialized is referred to as a loop control variable. The Boolean expression is evaluated immediately after the loop control variable is initialized and then following each execution of the increment statement until it is false. In each iteration, the update is executed after the entire loop body is executed and before the Boolean expression is evaluated again.
  • 2.8.A.3 A for loop can be rewritten into an equivalent while loop (and vice versa).
Bahasa Indonesia

Tujuan Pembelajaran 2.8.A: Mengembangkan kode untuk merepresentasikan proses iteratif menggunakan loop for dan menentukan hasil dari proses-proses ini.

  • 2.8.A.1 Loop for adalah jenis pernyataan iteratif. Ada tiga bagian dalam header loop for: inisialisasi, ekspresi Boolean, dan pembaruan.
  • 2.8.A.2 Dalam loop for, pernyataan inisialisasi hanya dieksekusi sekali sebelum evaluasi ekspresi Boolean pertama. Variabel yang diinisialisasi disebut sebagai variabel kontrol loop. Ekspresi Boolean dievaluasi segera setelah variabel kontrol loop diinisialisasi dan kemudian mengikuti setiap eksekusi pernyataan inkrement hingga menjadi false. Pada setiap iterasi, pembaruan dieksekusi setelah seluruh badan perulangan dieksekusi dan sebelum ekspresi Boolean dievaluasi lagi.
  • 2.8.A.3 Loop for dapat ditulis ulang menjadi loop while yang ekuivalen (dan sebaliknya).

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

English

A for loop packs initialization, condition, and update into one line – best when you know the count:

A for and an equivalent while do the same work; be able to convert between them.

Bahasa Indonesia

Perulangan for menggabungkan inisialisasi, kondisi, dan pembaruan dalam satu baris – terbaik ketika Anda mengetahui jumlah pengulangannya:

for (int i = 0; i < n; i++) {
    // runs n times, i = 0..n-1
}

Sebuah for dan sebuah while ekuivalen melakukan pekerjaan yang sama; mampu mengonversi di antara keduanya.

Garis perakitan: perulangan mengulang proses untuk setiap item, seperti for dan while
Garis perakitan: perulangan mengulang proses untuk setiap item, seperti for dan while
Explore · ⁨Jelajahi⁩

Trace a for loop · ⁨Telusuri perulangan for⁩

A for loop runs a fixed number of times, its counter stepping through a range. Watch the counter and running total advance one pass at a time. · ⁨Perulangan for berjalan sejumlah kali tetap, pengentornya melintasi suatu rentang. Perhatikan pengantar dan total berjalan maju satu kali melewati pada satu waktu.⁩

2.9

Building Complete Selection and Iteration Algorithms · ⁨Membangun Algoritma Seleksi dan Iterasi Lengkap⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.9.A: Develop code for standard and original algorithms (without data structures) and determine the result of these algorithms.

  • 2.9.A.1 There are standard algorithms to:
    • identify if an integer is or is not evenly divisible by another integer
    • identify the individual digits in an integer
    • determine the frequency with which a specific criterion is met
    • determine a minimum or maximum value
    • compute a sum or average
Bahasa Indonesia

Tujuan Pembelajaran 2.9.A: Kembangkan kode untuk algoritma standar dan asli (tanpa struktur data) dan tentukan hasil dari algoritma-algoritma tersebut.

  • 2.9.A.1 Terdapat algoritma standar untuk:
    • mengidentifikasi apakah sebuah bilangan bulat habis dibagi oleh bilangan bulat lain atau tidak
    • mengidentifikasi digit-digit individu dalam sebuah bilangan bulat
    • menentukan frekuensi terpenuhinya kriteria tertentu
    • menentukan nilai minimum atau maksimum
    • menghitung jumlah atau rata-rata

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

English

Combine loops and conditions to solve real problems – count, sum, find a maximum, or test a property:

Two integer patterns the exam tests directly use % and /. To read the digits of an integer one at a time, repeatedly take n % 10 (the last digit) and then n = n / 10 (drop it). To test divisibility, n % d == 0 means n is evenly divisible by d. Combine them with a counter to find the frequency with which some criterion is met.

Standard patterns like a running total, a counter, or a flag 标志 (a boolean that records whether something happened) recur throughout the course.

Bahasa Indonesia

Gabungkan perulangan dan kondisi untuk memecahkan masalah nyata – hitung, jumlahkan, temukan maksimum, atau uji sifat tertentu:

int max = arr[0];
for (int k = 1; k < arr.length; k++) {
    if (arr[k] > max) max = arr[k];
}

Dua pola bilangan bulat yang ujian uji langsung menggunakan % dan /. Untuk membaca digit bilangan bulat satu per satu, berulang kali ambil n % 10 (digit terakhir) lalu n = n / 10 (buang digit tersebut). Untuk menguji keterbagian, n % d == 0 berarti n habis dibagi oleh d. Gabungkan dengan counter untuk menemukan frekuensi kriteria tertentu terpenuhi.

Pola standar seperti total berjalan, counter, atau flag (boolean yang mencatat apakah sesuatu terjadi) muncul berulang kali sepanjang kursus.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
flag/flæɡ/ flag
nested loop/ˈnestɪd luːp/ loop bersarang
Run-time analysis/rʌn taɪm əˈnæləsɪs/ Analisis waktu berjalan
2.10

String Algorithms · ⁨Algoritma String⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.10.A: Develop code for standard and original algorithms that involve strings and determine the result of these algorithms.

  • 2.10.A.1 There are standard string algorithms to:
    • find if one or more substrings have a particular property
    • determine the number of substrings that meet specific criteria
    • create a new string with the characters reversed
Bahasa Indonesia

Tujuan Pembelajaran 2.10.A: Mengembangkan kode untuk algoritma standar dan asli yang melibatkan string dan menentukan hasil dari algoritma-algoritma ini.

  • 2.10.A.1 Terdapat algoritma string standar untuk:
    • mencari apakah satu atau lebih substring memiliki properti tertentu
    • menentukan jumlah substring yang memenuhi kriteria tertentu
    • membuat string baru dengan karakter yang dibalik

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

English

Loop through a string by index to process each character:

Typical tasks: count occurrences, build a reversed or filtered copy, or test whether one string contains another.

Bahasa Indonesia

Perulangan melalui string berdasarkan indeks untuk memproses setiap karakter:

for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    // count vowels, reverse, check for a substring, ...
}

Tugas典型: hitung kemunculan, bangun salinan terbalik atau difilter, atau uji apakah satu string mengandung string lain.

2.11

Nested Iteration · ⁨Iterasi Bersarang⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.11.A: Develop code to represent nested iterative processes and determine the result of these processes.

  • 2.11.A.1 Nested iteration statements are iteration statements that appear in the body of another iteration statement. When a loop is nested inside another loop, the inner loop must complete all its iterations before the outer loop can continue to its next iteration.
Bahasa Indonesia

Tujuan Pembelajaran 2.11.A: Mengembangkan kode untuk merepresentasikan proses iteratif bersarang dan menentukan hasil dari proses-proses tersebut.

  • 2.11.A.1 Pernyataan iterasi bersarang adalah pernyataan iterasi yang muncul di dalam tubuh pernyataan iterasi lainnya. Ketika sebuah perulangan disarungkan di dalam perulangan lain, perulangan dalam harus menyelesaikan seluruh iterasinya sebelum perulangan luar dapat melanjutkan ke iterasi berikutnya.

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

English

A nested loop 嵌套循环 puts one loop inside another; the inner loop completes fully for each pass of the outer. If the outer runs $n$ times and the inner $m$ times, the body runs $n\times m$ times – the basis for processing grids and comparing all pairs.

Bahasa Indonesia

Perulangan bersarang menempatkan satu perulangan di dalam yang lain; perulangan dalam selesai sepenuhnya untuk setiap putaran luar. Jika perulangan luar berjalan $n$ kali dan dalam $m$ kali, badannya berjalan $n\times m$ kali – dasar untuk memproses grid dan membandingkan semua pasangan.

2.12

Informal Run-Time Analysis · ⁨Analisis Run-Time Informal⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 2.12.A: Calculate statement execution counts and informal run-time comparison of iterative statements.

  • 2.12.A.1 A statement execution count indicates the number of times a statement is executed by the program. Statement execution counts are often calculated informally through tracing and analysis of the iterative statements.
Bahasa Indonesia

Tujuan Pembelajaran 2.12.A: Menghitung jumlah eksekusi pernyataan dan melakukan perbandingan waktu eksekusi informal terhadap pernyataan-pernyataan iteratif.

  • 2.12.A.1 Jumlah eksekusi pernyataan menunjukkan berapa kali sebuah pernyataan dieksekusi oleh program. Jumlah eksekusi pernyataan sering dihitung secara informal melalui pelacakan dan analisis terhadap pernyataan-pernyataan iteratif.

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

English
Big-O growth rates

Run-time analysis 运行时间分析 counts how many basic steps an algorithm takes as the input size $n$ grows. Count the executions of the innermost statement: a single loop over $n$ items is linear ($n$ steps); two nested loops over $n$ are quadratic ($n^2$). This informal counting lets you compare two algorithms' efficiency.

Exam skill: for a nested loop, be able to state how many times the inner statement runs in terms of the loop bounds – a frequent multiple-choice question.

Worked example. How many stars does this print?

The inner loop runs i times for each outer i: 0 + 1 + 2 + 3 = 6 stars. When the inner bound is the outer variable, the total is the triangular sum $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$ – here $\dfrac{4\times3}{2}=6$ – not the full $n^2=16$ of a rectangular nested loop.

Bahasa Indonesia
Tingkat pertumbuhan Big-O

Analisis run-time menghitung berapa banyak langkah dasar yang diambil algoritma saat ukuran input $n$ bertambah. Hitung eksekusi pernyataan terdalam: satu loop atas $n$ item bersifat linear ($n$ langkah); dua loop bersarang atas $n$ bersifat kuadratik ($n^2$). Penghitungan informal ini memungkinkan Anda membandingkan efisiensi dua algoritma.

Bagaimana waktu berjalan tumbuh seiring jumlah elemen n
Bagaimana waktu berjalan tumbuh seiring jumlah elemen n

Keterampilan ujian: untuk perulangan bersarang, mampu menyatakan berapa kali pernyataan dalam berjalan berdasarkan batas perulangan – pertanyaan pilihan ganda yang sering muncul.

Contoh dikerjakan. Berapa banyak bintang yang dicetak ini?

for (int i = 0; i < 4; i++)
    for (int j = 0; j < i; j++)
        System.out.print("*");

Loop dalam menjalankan i kali untuk setiap loop luar i: 0 + 1 + 2 + 3 = 6 bintang. Ketika batas dalam adalah variabel luar, totalnya adalah jumlah segitiga $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$ – di sini $\dfrac{4\times3}{2}=6$ – bukan total penuh $n^2=16$ dari loop bersarang persegi panjang.

Explore · ⁨Jelajahi⁩

Compare how algorithms scale · ⁨Bandingkan bagaimana algoritma berskala⁩

Run-time describes how the number of steps grows with the input size $n$. Increase $n$ and watch a linear $O(n)$ pull far ahead of a quadratic $O(n^2)$. · ⁨Waktu eksekusi menggambarkan bagaimana jumlah langkah tumbuh seiring ukuran input $n$. Tingkatkan $n$ dan lihat linear $O(n)$ menjauh jauh dari kuadratik $O(n^2)$.⁩

2.12

Exam tips · ⁨Tips ujian⁩

English
  • Get boundary conditions right: use < vs <= deliberately, and watch the first and last iteration of every loop (off-by-one is the classic bug).
  • Build compound conditions with &&, ||, ! and remember short-circuit evaluation (put the null check first).
  • Trace nested loops by counting how many times the inner body runs in total.
  • Choose the right structure — if/else if for ranges, a loop for repetition — and avoid an infinite loop by updating the loop variable.
  • Apply De Morgan's laws when you simplify or negate a boolean condition.
Bahasa Indonesia
  • Tentukan kondisi batas dengan benar: gunakan < vs <= secara sengaja, dan perhatikan iterasi pertama dan terakhir dari setiap loop (off-by-one adalah bug klasik).
  • Bangun kondisi majemuk dengan &&, ||, ! dan ingat evaluasi short-circuit (tempatkan pengecekan null terlebih dahulu).
  • Jejak loop bersarang dengan menghitung berapa kali badan dalam berjalan secara total.
  • Pilih struktur yang tepat — if/else if untuk rentang, loop untuk pengulangan — dan hindari loop tak hingga dengan memperbarui variabel loop.
  • Terapkan hukum De Morgan saat Anda menyederhanakan atau menegatifkan kondisi boolean.

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 A · ⁨AP Ilmu Komputer A⁩ · ⁨Topik lain dalam AP Computer Science A · ⁨AP Ilmu Komputer A⁩⁩

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

IGCSE, A-Level & AP