Skip to content · ⁨Lompat ke konten⁩
Subjects · ⁨Materi⁩

AP Computer Science Principles · ⁨AP Prinsip Ilmu Komputer⁩

Tips

AP Computer Science Principles adalah mata kuliah komputasi yang luas: data dan representasinya, algoritma dan abstraksi, pemrograman, internet, dan dampak komputasi terhadap masyarakat. Kode ditulis dalam bahasa apa pun, dan ujian menggunakan pseudocode netral-bahasa, sehingga ide lebih penting daripada sintaks.

Penilaian memiliki dua bagian. Create Performance Task adalah program yang Anda bangun dan dokumentasikan selama waktu kelas; ujian akhir course berupa pilihan ganda.

Respon tertulis tentang program Anda sendiri adalah tempat hilangnya poin — mereka meminta Anda menjelaskan algoritma yang Anda tulis dan membela abstraksi yang Anda pilih, secara tepat, dengan kata-kata Anda sendiri.

Catatan mencakup ide-ide utama dari data hingga dampak, dengan contoh kode yang dapat dijalankan di sini. Perpustakaan menyimpan soal uji coba, dan terdapat catatan mengenai Create Performance Task, yang dinilai berdasarkan program dan respon tertulis Anda, bukan hanya pada ujian saja.

  • 1

    Creative Development · ⁨Pengembangan Kreatif⁩

    Watch lesson · ⁨Tonton pelajaran⁩
    1.1

    Collaboration

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CRD-1): Incorporating multiple perspectives through collaboration improves computing innovations as they are developed.

    Learning Objective CRD-1.A: Explain how computing innovations are improved through collaboration. [Skill 1.C]

    • CRD-1.A.1 A computing innovation includes a program as an integral part of its function.
    • CRD-1.A.2 A computing innovation can be physical (e.g., self-driving car), nonphysical computing software (e.g., picture editing software), or a nonphysical computing concept (e.g., e-commerce).
    • CRD-1.A.3 Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of those who designed it.
    • CRD-1.A.4 Collaboration that includes diverse perspectives helps avoid bias in the development of computing innovations.
    • CRD-1.A.5 Consultation and communication with users are important aspects of the development of computing innovations.
    • CRD-1.A.6 Information gathered from potential users can be used to understand the purpose of a program from diverse perspectives and to develop a program that fully incorporates these perspectives.

    Learning Objective CRD-1.B: Explain how computing innovations are developed by groups of people. [Skill 1.C]

    • CRD-1.B.1 Online tools support collaboration by allowing programmers to share and provide feedback on ideas and documents.
    • CRD-1.B.2 Common models such as pair programming exist to facilitate collaboration.

    Learning Objective CRD-1.C: Demonstrate effective interpersonal skills during collaboration. [Skill 1.C]

    • CRD-1.C.1 Effective collaborative teams practice interpersonal skills, including but not limited to:
      • communication
      • consensus building
      • conflict resolution
      • negotiation
    Bahasa Indonesia

    Pemahaman Abadi (CRD-1): Memasukkan berbagai perspektif melalui kolaborasi meningkatkan inovasi komputasi saat dikembangkan.

    Tujuan Pembelajaran CRD-1.A: Jelaskan bagaimana inovasi komputasi ditingkatkan melalui kolaborasi. [Skill 1.C]

    • CRD-1.A.1 Inovasi komputasi mencakup program sebagai bagian integral dari fungsinya.
    • CRD-1.A.2 Inovasi komputasi dapat bersifat fisik (misalnya, mobil tanpa pengemudi), perangkat lunak komputasi non-fisik (misalnya, perangkat lunak pengeditan gambar), atau konsep komputasi non-fisik (misalnya, e-commerce).
    • CRD-1.A.3 Kolaborasi yang efektif menghasilkan inovasi komputasi yang mencerminkan keragaman bakat dan perspektif mereka yang merancangnya.
    • CRD-1.A.4 Kolaborasi yang mencakup berbagai perspektif membantu menghindari bias dalam pengembangan inovasi komputasi.
    • CRD-1.A.5 Konsultasi dan komunikasi dengan pengguna adalah aspek penting dari pengembangan inovasi komputasi.
    • CRD-1.A.6 Informasi yang dikumpulkan dari calon pengguna dapat digunakan untuk memahami tujuan program dari berbagai perspektif dan mengembangkan program yang sepenuhnya memasukkan perspektif-perspektif ini.

    Tujuan Pembelajaran CRD-1.B: Jelaskan bagaimana inovasi komputasi dikembangkan oleh kelompok orang. [Skill 1.C]

    • CRD-1.B.1 Alat online mendukung kolaborasi dengan memungkinkan programmer berbagi dan memberikan umpan balik terhadap ide dan dokumen.
    • CRD-1.B.2 Model umum seperti pemrograman berpasangan ada untuk memfasilitasi kolaborasi.

    Tujuan Pembelajaran CRD-1.C: Tunjukkan keterampilan interpersonal yang efektif selama kolaborasi. [Skill 1.C]

    • CRD-1.C.1 Tim kolaboratif yang efektif menerapkan keterampilan interpersonal, termasuk tetapi tidak terbatas pada:
      • komunikasi
      • pembangunan konsensus
      • penyelesaian konflik
      • negosiasi

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

    A jigsaw in progress: collaboration and modular design piece the solution together
    A jigsaw in progress: collaboration and modular design piece the solution together

    Computing is a collaborative 协作 activity. Working in a team brings more perspectives, catches more errors, and produces better programs than working alone. Good collaboration uses consensus building, clear communication, and each member's strengths. Pair programming 结对编程 – two people at one computer, one typing and one reviewing – is a common practice. On the exam, you should be able to explain how collaboration improved a program (more ideas, fewer bugs, wider testing).

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    collaborative/kəˈlæbrətɪv/ kolaboratif
    Pair programming/peə ˈprəʊɡræmɪŋ/ pemrograman berpasangan
    1.2

    Program Function and Purpose

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.A: Describe the purpose of a computing innovation. [Skill 1.A]

    • CRD-2.A.1 The purpose of computing innovations is to solve problems or to pursue interests through creative expression.
    • CRD-2.A.2 An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.

    Learning Objective CRD-2.B: Explain how a program or code segment functions. [Skill 4.A]

    • CRD-2.B.1 A program is a collection of program statements that performs a specific task when run by a computer. A program is often referred to as software.
    • CRD-2.B.2 A code segment is a collection of program statements that is part of a program.
    • CRD-2.B.3 A program needs to work for a variety of inputs and situations.
    • CRD-2.B.4 The behavior of a program is how a program functions during execution and is often described by how a user interacts with it.
    • CRD-2.B.5 A program can be described broadly by what it does, or in more detail by both what the program does and how the program statements accomplish this function.

    Learning Objective CRD-2.C: Identify input(s) to a program. [Skill 3.A]

    • CRD-2.C.1 Program inputs are data sent to a computer for processing by a program. Input can come in a variety of forms, such as tactile, audio, visual, or text.
    • CRD-2.C.2 An event is associated with an action and supplies input data to a program.
    • CRD-2.C.3 Events can be generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs that affects the flow of execution.
    • CRD-2.C.4 Inputs usually affect the output produced by a program.
    • CRD-2.C.5 In event-driven programming, program statements are executed when triggered rather than through the sequential flow of control.
    • CRD-2.C.6 Input can come from a user or other programs.

    Learning Objective CRD-2.D: Identify output(s) produced by a program. [Skill 3.A]

    • CRD-2.D.1 Program outputs are any data sent from a program to a device. Program output can come in a variety of forms, such as tactile, audio, visual, or text.
    • CRD-2.D.2 Program output is usually based on a program's input or prior state (e.g., internal values).
    Bahasa Indonesia

    Pemahaman Abadi (CRD-2): Pengembang menciptakan dan berinovasi menggunakan proses desain iteratif yang berfokus pada pengguna, yang memasukkan siklus implementasi/umpan balik, dan yang meninggalkan ruang yang cukup untuk eksperimen dan pengambilan risiko.

    Tujuan Pembelajaran CRD-2.A: Jelaskan tujuan dari sebuah inovasi komputasi. [Skill 1.A]

    • CRD-2.A.1 Tujuan inovasi komputasi adalah untuk memecahkan masalah atau mengejar minat melalui ekspresi kreatif.
    • CRD-2.A.2 Pemahaman tentang tujuan inovasi komputasi memberikan kemampuan yang lebih baik bagi pengembang untuk mengembangkan inovasi komputasi tersebut.

    Tujuan Pembelajaran CRD-2.B: Jelaskan bagaimana program atau segmen kode berfungsi. [Skill 4.A]

    • CRD-2.B.1 Program adalah kumpulan pernyataan program yang melakukan tugas spesifik saat dijalankan oleh komputer. Program sering disebut sebagai perangkat lunak.
    • CRD-2.B.2 Segmen kode adalah kumpulan pernyataan program yang merupakan bagian dari sebuah program.
    • CRD-2.B.3 Sebuah program perlu berfungsi untuk berbagai input dan situasi.
    • CRD-2.B.4 Perilaku program adalah cara program berfungsi selama eksekusi dan sering digambarkan oleh bagaimana pengguna berinteraksi dengannya.
    • CRD-2.B.5 Sebuah program dapat dijelaskan secara umum berdasarkan apa yang dilakukannya, atau secara lebih rinci dengan menjelaskan baik apa yang dilakukan program tersebut maupun bagaimana pernyataan-pernyataan dalam program mencapai fungsi ini.

    Tujuan Pembelajaran CRD-2.C: Identifikasi input(ke) dari sebuah program. [Keterampilan 3.A]

    • CRD-2.C.1 Input program adalah data yang dikirim ke komputer untuk diproses oleh suatu program. Input dapat datang dalam berbagai bentuk, seperti taktil, audio, visual, atau teks.
    • CRD-2.C.2 Peristiwa (event) berkaitan dengan suatu tindakan dan menyediakan data input bagi sebuah program.
    • CRD-2.C.3 Peristiwa dapat terjadi ketika tombol ditekan, mouse diklik, program dimulai, atau setiap aksi terdefinisi lainnya yang mempengaruhi alur eksekusi.
    • CRD-2.C.4 Input biasanya mempengaruhi output yang dihasilkan oleh sebuah program.
    • CRD-2.C.5 Dalam pemrograman berbasis peristiwa, pernyataan-pernyataan dalam program dieksekusi saat dipicu, bukan melalui alur kontrol sekuensial.
    • CRD-2.C.6 Input dapat berasal dari pengguna atau program lain.

    Tujuan Pembelajaran CRD-2.D: Identifikasi output(ke) yang dihasilkan oleh sebuah program. [Keterampilan 3.A]

    • CRD-2.D.1 Output program adalah semua data yang dikirim dari program ke suatu perangkat. Output program dapat datang dalam berbagai bentuk, seperti taktil, audio, visual, atau teks.
    • CRD-2.D.2 Output program biasanya didasarkan pada input program atau keadaan sebelumnya (misalnya, nilai internal).

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

    Every program is written for a purpose – it solves a problem or pursues an interest. A program takes input 输入, processes it, and produces output 输出. Inputs can come from a user, a device, a file, or another program; outputs can be visual, audible, textual, or a signal to a device. Being able to state a program's purpose, and describe its inputs and outputs clearly, is a core skill (and part of the Create performance task).

    Every program decomposes into input, processing, and output
    Every program decomposes into input, processing, and output
    Every program follows the input-processing-output model
    Every program follows the input-processing-output model
    Explore · ⁨Jelajahi⁩

    Explore the input → processing → output model · ⁨Jelajahi model input → pemrosesan → output⁩

    Step through the IPO model. Every program takes some input, performs processing on it by following its instructions, then produces output — trace one weather-app example along the pipeline. · ⁨Telusuri model IPO. Setiap program menerima input tertentu, melakukan pemrosesan padanya dengan mengikuti instruksinya, lalu menghasilkan output — telusuri contoh aplikasi cuaca sepanjang pipa.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    input/ˈɪnpʊt/ input
    output/ˈaʊtpʊt/ output
    1.3

    Program Design and Development

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.E: Develop a program using a development process. [Skill 1.B]

    • CRD-2.E.1 A development process can be ordered and intentional, or exploratory in nature.
    • CRD-2.E.2 There are multiple development processes. The following phases are commonly used when developing a program:
      • investigating and reflecting
      • designing
      • prototyping
      • testing
    • CRD-2.E.3 A development process that is iterative requires refinement and revision based on feedback, testing, or reflection throughout the process. This may require revisiting earlier phases of the process.
    • CRD-2.E.4 A development process that is incremental is one that breaks the problem into smaller pieces and makes sure each piece works before adding it to the whole.

    Learning Objective CRD-2.F: Design a program and its user interface. [Skill 1.B]

    • CRD-2.F.1 The design of a program incorporates investigation to determine its requirements.
    • CRD-2.F.2 Investigation in a development process is useful for understanding and identifying the program constraints, as well as the concerns and interests of the people who will use the program.
    • CRD-2.F.3 Some ways investigation can be performed are as follows:
      • collecting data through surveys
      • user testing
      • interviews
      • direct observations
    • CRD-2.F.4 Program requirements describe how a program functions and may include a description of user interactions that a program must provide.
    • CRD-2.F.5 A program's specification defines the requirements for the program.
    • CRD-2.F.6 In a development process, the design phase outlines how to accomplish a given program specification.
    • CRD-2.F.7 The design phase of a program may include:
      • brainstorming
      • planning and storyboarding
      • organizing the program into modules and functional components
      • creation of diagrams that represent the layouts of the user interface
      • development of a testing strategy for the program

    Learning Objective CRD-2.G: Describe the purpose of a code segment or program by writing documentation. [Skill 4.A]

    • CRD-2.G.1 Program documentation is a written description of the function of a code segment, event, procedure, or program and how it was developed.
    • CRD-2.G.2 Comments are a form of program documentation written into the program to be read by people and do not affect how a program runs.
    • CRD-2.G.3 Programmers should document a program throughout its development.
    • CRD-2.G.4 Program documentation helps in developing and maintaining correct programs when working individually or in collaborative programming environments.
    • CRD-2.G.5 Not all programming environments support comments, so other methods of documentation may be required.

    Learning Objective CRD-2.H: Acknowledge code segments used from other sources. [Skill 1.C]

    • CRD-2.H.1 It is important to acknowledge any code segments that were developed collaboratively or by another source.
    • CRD-2.H.2 Acknowledgement of a code segment(s) written by someone else and used in a program can be in the program documentation. The acknowledgement should include the origin or original author's name.
    Bahasa Indonesia

    Pemahaman Abadi (CRD-2): Pengembang menciptakan dan berinovasi menggunakan proses desain iteratif yang berfokus pada pengguna, yang memasukkan siklus implementasi/umpan balik, dan yang meninggalkan ruang yang cukup untuk eksperimen dan pengambilan risiko.

    Tujuan Pembelajaran CRD-2.E: Kembangkan sebuah program menggunakan proses pengembangan. [Keterampilan 1.B]

    • CRD-2.E.1 Proses pengembangan dapat bersifat tertib dan terencana, atau bersifat eksploratif.
    • CRD-2.E.2 Terdapat banyak proses pengembangan. Fase-fase berikut umumnya digunakan dalam pengembangan program:
      • menyelidiki dan merefleksikan
      • merancang
      • membuat prototipe
      • pengujian
    • CRD-2.E.3 Proses pengembangan yang iteratif memerlukan penyempurnaan dan revisi berdasarkan umpan balik, pengujian, atau refleksi sepanjang proses. Hal ini mungkin mengharuskan pengulangan fase-fase awal proses.
    • CRD-2.E.4 Proses pengembangan yang inkremental adalah proses yang memecah masalah menjadi bagian-bagian lebih kecil dan memastikan setiap bagian berfungsi sebelum ditambahkan ke keseluruhan.

    Tujuan Pembelajaran CRD-2.F: Rancang sebuah program dan antarmuka penggunanya. [Keterampilan 1.B]

    • CRD-2.F.1 Perancangan program mencakup penyelidikan untuk menentukan kebutuhannya.
    • CRD-2.F.2 Penyelidikan dalam proses pengembangan berguna untuk memahami dan mengidentifikasi batasan program, serta kekhawatiran dan kepentingan orang-orang yang akan menggunakan program tersebut.
    • CRD-2.F.3 Beberapa cara penyelidikan dapat dilakukan adalah sebagai berikut:
      • mengumpulkan data melalui survei
      • pengujian pengguna
      • wawancara
      • observasi langsung
    • CRD-2.F.4 Kebutuhan program mendeskripsikan bagaimana program berfungsi dan dapat mencakup deskripsi interaksi pengguna yang harus disediakan program.
    • CRD-2.F.5 Spesifikasi program mendefinisikan kebutuhan untuk program tersebut.
    • CRD-2.F.6 Dalam proses pengembangan, fase perancangan menggambarkan bagaimana spesifikasi program tertentu dapat dicapai.
    • CRD-2.F.7 Fase perancangan program dapat mencakup:
      • sesi ide (brainstorming)
      • perencanaan dan pembuatan storyboard
      • pengorganisasian program menjadi modul dan komponen fungsional
      • pembuatan diagram yang mewakili tata letak antarmuka pengguna
      • pengembangan strategi pengujian untuk program

    Tujuan Pembelajaran CRD-2.G: Jelaskan tujuan segmen kode atau program dengan menulis dokumentasi. [Keterampilan 4.A]

    • CRD-2.G.1 Dokumentasi program adalah deskripsi tertulis mengenai fungsi segmen kode, peristiwa, prosedur, atau program dan bagaimana hal itu dikembangkan.
    • CRD-2.G.2 Komentar adalah bentuk dokumentasi program yang ditulis ke dalam program untuk dibaca oleh manusia dan tidak mempengaruhi jalannya program.
    • CRD-2.G.3 Pemrogram harus mendokumentasikan program selama seluruh proses pengembangannya.
    • CRD-2.G.4 Dokumentasi program membantu dalam mengembangkan dan memelihara program yang benar ketika bekerja secara individu atau dalam lingkungan pemrograman kolaboratif.
    • CRD-2.G.5 Tidak semua lingkungan pemrograman mendukung komentar, sehingga metode dokumentasi lain mungkin diperlukan.

    Tujuan Pembelajaran CRD-2.H: Akui segmen kode yang digunakan dari sumber lain. [Keterampilan 1.C]

    • CRD-2.H.1 Penting untuk mengakui setiap segmen kode yang dikembangkan secara kolaboratif atau oleh sumber lain.
    • CRD-2.H.2 Pengakuan atas segmen kode yang ditulis oleh orang lain dan digunakan dalam program dapat berada di dalam dokumentasi program. Pengakuan tersebut harus mencantumkan asal atau nama penulis aslinya.

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

    A programmer debugging at a multi-monitor workstation — iterative design and testing
    A programmer debugging at a multi-monitor workstation — iterative design and testing

    Programs are built through an iterative 迭代 process, not in one straight line: investigate the problem and users, design (often with a diagram or written plan), implement in code, and test – then repeat. A large problem is broken into smaller pieces (decomposition 分解). Comments 注释 and clear naming document the design so others (and your future self) can understand it. Development is incremental – build and test a small piece, then add the next.

    The stages of program development, with testing feeding back to fix and refine
    The stages of program development, with testing feeding back to fix and refine
    Software is built by an iterative, incremental development process
    Software is built by an iterative, incremental development process

    Investigating what users actually need

    Before any code is written, the developer investigates the problem and the people who will use the program. Three ways to do that:

    • surveys 调查问卷 sent to potential users, which collect data from many people quickly;
    • interviews and direct observation of users doing the task by hand;
    • studying existing solutions to see what already works and what frustrates people.

    The findings are turned into a design. Two artefacts do that: a program requirements list saying exactly what the program must do, and diagrams representing the layout of the user interface 用户界面 — sketches showing which controls appear where, and what each one does when used. Designing the interface on paper first is cheaper than discovering after coding that the buttons are in the wrong place.

    Events, and programs that wait

    Not every program runs straight through from top to bottom. An event 事件 is generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs — and an event changes the flow of execution: the program pauses what it was doing and runs the code attached to that event, called an event handler 事件处理程序.

    This is why a program with a graphical interface can appear to be doing nothing: it is waiting for the next event. The order in which those events arrive is decided by the user, not by the programmer, so the same program can run its blocks in a different order each time it is used.

    Explore · ⁨Jelajahi⁩

    Loop through the iterative development process · ⁨Berputar melalui proses pengembangan iteratif⁩

    Development is iterative — you repeat the stages, improving the program a little on each pass. Step around the loop and notice it returns to the start rather than ending after one run. · ⁨Pengembangan bersifat iteratif — Anda mengulang tahap-tahapnya, memperbaiki program sedikit demi sedikit setiap kali melewati. Berputar di sekitar loop dan perhatikan bahwa ia kembali ke awal alih-alih berakhir setelah satu kali jalanan.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    iterative/ˈɪtərətɪv/ iteratif
    decomposition/ˌdiːkɒmpəˈzɪʃn/ dekomposisi
    Comments/ˈkɒments/ Komentar
    surveys/ˈsɜːveɪz/ survei
    diagrams representing the layout of the user interface diagram yang mewakili tata letak antarmuka pengguna
    event/ɪˈvent/ peristiwa
    event handler/ɪˈvent ˈhændlə/ penanganan peristiwa
    1.4

    Identifying and Correcting Errors

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.I: For errors in an algorithm or program: a. Identify the error. [Skill 4.C] b. Correct the error. [Skill 4.C]

    • CRD-2.I.1 A logic error is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly.
    • CRD-2.I.2 A syntax error is a mistake in the program where the rules of the programming language are not followed.
    • CRD-2.I.3 A run-time error is a mistake in the program that occurs during the execution of a program. Programming languages define their own run-time errors.
    • CRD-2.I.4 An overflow error is an error that occurs when a computer attempts to handle a number that is outside of the defined range of values.
    • CRD-2.I.5 The following are effective ways to find and correct errors:
      • test cases
      • hand tracing
      • visualizations
      • debuggers
      • adding extra output statement(s)

    Learning Objective CRD-2.J: Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program. [Skill 4.C]

    • CRD-2.J.1 In the development process, testing uses defined inputs to ensure that an algorithm or program is producing the expected outcomes. Programmers use the results from testing to revise their algorithms or programs.
    • CRD-2.J.2 Defined inputs used to test a program should demonstrate the different expected outcomes that are at or just beyond the extremes (minimum and maximum) of input data.
    • CRD-2.J.3 Program requirements are needed to identify appropriate defined inputs for testing.
    Bahasa Indonesia

    Pemahaman Abadi (CRD-2): Pengembang menciptakan dan berinovasi menggunakan proses desain iteratif yang berfokus pada pengguna, yang memasukkan siklus implementasi/umpan balik, dan yang meninggalkan ruang yang cukup untuk eksperimen dan pengambilan risiko.

    Tujuan Pembelajaran CRD-2.I: Untuk kesalahan dalam algoritma atau program: a. Identifikasi kesalahan. [Keterampilan 4.C] b. Perbaiki kesalahan. [Keterampilan 4.C]

    • CRD-2.I.1 Kesalahan logika adalah kesalahan dalam algoritma atau program yang menyebabkan perilaku yang salah atau tidak terduga.
    • CRD-2.I.2 Kesalahan sintaksis adalah kesalahan dalam program di mana aturan bahasa pemrograman tidak diikuti.
    • CRD-2.I.3 Kesalahan waktu berjalan adalah kesalahan dalam program yang terjadi selama eksekusi program. Bahasa pemrograman mendefinisikan kesalahan waktu running mereka sendiri.
    • CRD-2.I.4 Kesalahan overflow adalah kesalahan yang terjadi ketika komputer mencoba menangani angka yang berada di luar rentang nilai yang telah ditentukan.
    • CRD-2.I.5 Berikut adalah cara efektif untuk menemukan dan memperbaiki kesalahan:
      • kasus uji
      • pelacakan manual
      • visualisasi
      • debugger
      • menambahkan pernyataan output tambahan

    Tujuan Pembelajaran CRD-2.J: Identifikasi input dan output atau perilaku yang diharapkan yang dapat digunakan untuk memeriksa kebenaran algoritma atau program. [Keterampilan 4.C]

    • CRD-2.J.1 Dalam proses pengembangan, pengujian menggunakan input yang telah didefinisikan untuk memastikan bahwa algoritma atau program menghasilkan hasil yang diharapkan. Pemrogram menggunakan hasil dari pengujian untuk merevisi algoritma atau program mereka.
    • CRD-2.J.2 Input yang didefinisikan untuk menguji program harus menunjukkan berbagai hasil yang diharapkan yang berada pada atau sedikit melampaui batas ekstrem (minimum dan maksimum) dari data input.
    • CRD-2.J.3 Persyaratan program diperlukan untuk mengidentifikasi input yang didefinisikan yang sesuai untuk pengujian.

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

    A bug is an error in a program; debugging 调试 is finding and fixing it. Three kinds:

    A trace table records each variable's value as the program runs, to find bugs
    A trace table records each variable's value as the program runs, to find bugs
    • a syntax error 语法错误 breaks the language's rules, so the program will not run;
    • a runtime error 运行时错误 crashes the program while it runs (e.g. dividing by zero);
    • a logic error 逻辑错误 lets it run but gives the wrong result.

    Find bugs by testing with different inputs, adding print statements to see values, and hand-tracing the code. Choose the test inputs deliberately: they should demonstrate the different expected outcomes at or just beyond the extremes — the minimum and maximum values the program should accept, and a value just outside each of them. A program that works on ordinary data very often fails on an empty list, a zero, or a value one past the end of a range, so those are the inputs worth trying first. Fixing one bug at a time and re-testing is the reliable method.

    Exam skill: be able to name the type of an error and describe a testing strategy that would catch it – a recurring multiple-choice and Create-task theme.

    Three kinds of programming error: syntax, logic, and runtime
    Three kinds of programming error: syntax, logic, and runtime

    Worked example. A program meant to print the average of two numbers instead runs avg = a + b / 2. Tracing the order of operations, / runs before +, so it computes $a+\tfrac{b}{2}$ rather than the average. Add parentheses to fix it: avg = (a + b) / 2. Testing with $a=4,\ b=6$ confirms the fix — the buggy line gives $4+3=7$, the corrected line gives $\tfrac{10}{2}=5$. Testing with known inputs is exactly how you find and confirm a logic error.

    Explore · ⁨Jelajahi⁩

    Trace the guessing-game logic and spot a logic error · ⁨Telusuri logika permainan menebak dan temukan kesalahan logika⁩

    Drag the guess and watch which branch runs. A logic error would send the same guess down the wrong branch — the program still runs, but gives the wrong message. The secret number here is 50. · ⁨Tarik tebakan dan lihat cabang mana yang dijalankan. Kesalahan logika akan mengarahkan tebakan yang sama ke cabang yang salah — program tetap berjalan, tetapi memberikan pesan yang salah. Angka rahasia di sini adalah 50.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    debugging/ˈdiːbʌɡɪŋ/ debugging
    syntax error/ˈsɪntæks ˈerə/ kesalahan sintaksis
    runtime error/ˈrʌntaɪm ˈerə/ kesalahan runtime
    logic error/ˈlɒdʒɪk ˈerə/ kesalahan logika
    1.4

    Exam tips

    • Much of CSP is assessed through the Create and written performance tasks — explain your reasoning clearly, not just your result.
    • Know the benefits of collaboration and how diverse perspectives reduce bias in a program.
    • Use precise vocabulary (iterative development, program requirements) when you describe a design process.
    • Give and take feedback constructively; credit collaborators and sources.
    • Break a large problem into smaller modules that a team can build in parallel.
  • 2

    Data

    Watch lesson · ⁨Tonton pelajaran⁩
    2.1

    Binary Numbers · ⁨Angka Biner⁩

    Syllabus · ⁨Silabus⁩
    Enduring UnderstandingLearning ObjectiveEssential Knowledge

    DAT-1
    The way a computer represents data internally is different from the way the data are interpreted and displayed for the user. Programs are used to translate data into a representation more easily understood by people.

    DAT-1.A
    Explain how data can be represented using bits. [Skill 3.C]

    • DAT-1.A.1 Data values can be stored in variables, lists of items, or standalone constants and can be passed as input to (or output from) procedures.
    • DAT-1.A.2 Computing devices represent data digitally, meaning that the lowest-level components of any value are bits.
    • DAT-1.A.3 Bit is shorthand for binary digit and is either 0 or 1.
    • DAT-1.A.4 A byte is 8 bits.
    • DAT-1.A.5 Abstraction is the process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the idea.
    • DAT-1.A.6 Bits are grouped to represent abstractions. These abstractions include, but are not limited to, numbers, characters, and color.
    • DAT-1.A.7 The same sequence of bits may represent different types of data in different contexts.
    • DAT-1.A.8 Analog data have values that change smoothly, rather than in discrete intervals, over time. Some examples of analog data include pitch and volume of music, colors of a painting, or position of a sprinter during a race.
    • DAT-1.A.9 The use of digital data to approximate real-world analog data is an example of abstraction.
    • DAT-1.A.10 Analog data can be closely approximated digitally using a sampling technique, which means measuring values of the analog signal at regular intervals called samples. The samples are measured to figure out the exact bits required to store each sample.

    DAT-1.B
    Explain the consequences of using bits to represent data. [Skill 1.D]

    • DAT-1.B.1 In many programming languages, integers are represented by a fixed number of bits, which limits the range of integer values and mathematical operations on those values. This limitation can result in overflow or other errors.
    • DAT-1.B.2 Other programming languages provide an abstraction through which the size of representable integers is limited only by the size of the computer's memory; this is the case for the language defined in the exam reference sheet.
    • DAT-1.B.3 In programming languages, the fixed number of bits used to represent real numbers limits the range and mathematical operations on these values; this limitation can result in round-off and other errors. Some real numbers are represented as approximations in computer storage.
      • Exclusion statement: Specific range limitations for real numbers are outside the scope of this course and the AP Exam.

    DAT-1.C
    For binary numbers:
    a. Calculate the binary (base 2) equivalent of a positive integer (base 10) and vice versa. [Skill 2.B]
    b. Compare and order binary numbers. [Skill 2.B]

    • DAT-1.C.1 Number bases, including binary and decimal, are used to represent data.
    • DAT-1.C.2 Binary (base 2) uses only combinations of the digits zero and one.
    • DAT-1.C.3 Decimal (base 10) uses only combinations of the digits $0 - 9$.
    • DAT-1.C.4 As with decimal, a digit's position in the binary sequence determines its numeric value. The numeric value is equal to the bit's value (0 or 1) multiplied by the place value of its position.
    • DAT-1.C.5 The place value of each position is determined by the base raised to the power of the position. Positions are numbered starting at the rightmost position with 0 and increasing by 1 for each subsequent position to the left.

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

    English

    Computers store everything as bits 位 – each a 0 or 1. A group of 8 bits is a byte 字节. Numbers are stored in binary 二进制 (base 2), where each place is a power of two ($1, 2, 4, 8, 16, \dots$) instead of the powers of ten in decimal 十进制. For example, binary 1011 is $8+2+1=11$.

    Worked example. To convert binary 1101 to decimal, write the place values 8 4 2 1 under the bits 1 1 0 1 and add the ones that have a 1: $8+4+0+1=13$. Going the other way, convert 19 to binary by subtracting the largest power of two that fits: $19-16=3$, then $3-2=1$, then $1-1=0$, so the bits sit at the 16, 2, and 1 places $\rightarrow$ 10011 (check: $16+2+1=19$).

    Because a computer has a finite number of bits, it can represent only a limited range of values. This causes two effects tested on the exam:

    • Overflow error 溢出错误: a number too large for the available bits cannot be stored correctly.
    • Round-off (rounding) error 舍入错误: numbers with decimals (real numbers) can only be approximated, because infinitely many real values must map onto finitely many bit patterns.

    All data – text, images, sound – is ultimately encoded as binary. An image is a grid of pixels 像素, each stored as numbers for its colors; sound is stored as numbers sampled many times per second.

    Bahasa Indonesia
    Digit biner pada tampilan — semua data digital akhirnya disimpan sebagai 0 dan 1
    Digit biner pada tampilan — semua data digital akhirnya disimpan sebagai 0 dan 1

    Komputer menyimpan semuanya sebagai bit – masing-masing adalah 0 atau 1. Sekelompok 8 bit adalah byte. Angka disimpan dalam biner (basis 2), di mana setiap posisi adalah pangkat dari dua ($1, 2, 4, 8, 16, \dots$) alih-alih pangkat dari sepuluh dalam desimal. Sebagai contoh, biner 1011 adalah $8+2+1=11$.

    Tabel nilai tempat 8-bit: angka 1 berada di bawah nilai-nilai yang menjumlahkan bilangan tersebut
    Tabel nilai tempat 8-bit: angka 1 berada di bawah nilai-nilai yang menjumlahkan bilangan tersebut

    Contoh soal. Untuk mengonversi biner 1101 ke desimal, tulis nilai tempat 8 4 2 1 di bawah bit-bit 1 1 0 1 dan jumlahkan mereka yang memiliki 1: $8+4+0+1=13$. Melakukan sebaliknya, konversikan 19 ke biner dengan mengurangi pangkat dua terbesar yang muat: $19-16=3$, lalu $3-2=1$, lalu $1-1=0$, sehingga bit-bit berada di tempat 16, 2, dan 1 $\rightarrow$ 10011 (periksa: $16+2+1=19$).

    Karena komputer memiliki jumlah bit yang terbatas, ia hanya dapat merepresentasikan rentang nilai yang terbatas. Hal ini menyebabkan dua efek yang diuji dalam ujian:

    • Kesalahan overflow: angka yang terlalu besar untuk bit yang tersedia tidak dapat disimpan dengan benar.
    • Kesalahan pembulatan (round-off): angka dengan desimal (bilangan real) hanya dapat diperkirakan, karena banyak nilai real yang tak terhingga harus dipetakan ke pola bit yang terbatas.

    Semua data – teks, gambar, suara – pada akhirnya dikodekan sebagai biner. Gambar adalah grid pixel, masing-masing disimpan sebagai angka untuk warnanya; suara disimpan sebagai angka yang diambil sampelnya berkali-kali per detik.

    Explore · ⁨Jelajahi⁩

    Convert between binary and decimal · ⁨Konversi antara biner dan desimal⁩

    Computers store numbers in binary (base 2). Each bit is a power of two; add the place values of the 1-bits to read the decimal number. · ⁨Komputer menyimpan angka dalam biner (basis 2). Setiap bit adalah pangkat dari dua; jumlahkan nilai tempat dari bit-bit 1 untuk membaca angka desimal.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    bits/bɪts/ bit
    byte/baɪt/ byte
    binary/ˈbaɪnəri/ biner
    decimal/ˈdesɪml/ desimal
    Overflow error/ˌəʊvəˈfləʊ ˈerə/ Kesalahan overflow
    Round-off (rounding) error/raʊnd ɒf ˈerə/ Kesalahan pembulatan (pembulatan)
    pixels/ˈpɪkslz/ pixel
    Data/ˈdeɪtə/ Data
    information/ˌɪnfəˈmeɪʃn/ informasi
    correlation/ˌkɒrɪˈleɪʃn/ korelasi
    Watch lesson · ⁨Tonton pelajaran⁩
    2.2

    Data Compression · ⁨Kompresi Data⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (DAT-1): The way a computer represents data internally is different from the way the data are interpreted and displayed for the user. Programs are used to translate data into a representation more easily understood by people.

    Learning Objective DAT-1.D: Compare data compression algorithms to determine which is best in a particular context. [Skill 1.D]

    • DAT-1.D.1 Data compression can reduce the size (number of bits) of transmitted or stored data.
    • DAT-1.D.2 Fewer bits does not necessarily mean less information.
    • DAT-1.D.3 The amount of size reduction from compression depends on both the amount of redundancy in the original data representation and the compression algorithm applied.
    • DAT-1.D.4 Lossless data compression algorithms can usually reduce the number of bits stored or transmitted while guaranteeing complete reconstruction of the original data.
    • DAT-1.D.5 Lossy data compression algorithms can significantly reduce the number of bits stored or transmitted but only allow reconstruction of an approximation of the original data.
    • DAT-1.D.6 Lossy data compression algorithms can usually reduce the number of bits stored or transmitted more than lossless compression algorithms.
    • DAT-1.D.7 In situations where quality or ability to reconstruct the original is maximally important, lossless compression algorithms are typically chosen.
    • DAT-1.D.8 In situations where minimizing data size or transmission time is maximally important, lossy compression algorithms are typically chosen.
    Bahasa Indonesia

    Pemahaman Menyeluruh (DAT-1): Cara komputer merepresentasikan data secara internal berbeda dengan cara data diinterpretasikan dan ditampilkan untuk pengguna. Program digunakan untuk menerjemahkan data ke dalam representasi yang lebih mudah dipahami oleh manusia.

    Tujuan Pembelajaran DAT-1.D: Bandingkan algoritma kompresi data untuk menentukan mana yang terbaik dalam konteks tertentu. [Keterampilan 1.D]

    • DAT-1.D.1 Kompresi data dapat mengurangi ukuran (jumlah bit) dari data yang ditransmisikan atau disimpan.
    • DAT-1.D.2 Lebih sedikit bit tidak selalu berarti informasi lebih sedikit.
    • DAT-1.D.3 Besaran pengurangan ukuran dari kompresi bergantung pada baik jumlah redundansi dalam representasi data asli maupun algoritma kompresi yang diterapkan.
    • DAT-1.D.4 Algoritma kompresi data tanpa kerugian biasanya dapat mengurangi jumlah bit yang disimpan atau dikirim sambil menjamin rekonstruksi lengkap data asli.
    • DAT-1.D.5 Algoritma kompresi data dengan kerugian dapat secara signifikan mengurangi jumlah bit yang disimpan atau dikirim tetapi hanya memungkinkan rekonstruksi perkiraan dari data asli.
    • DAT-1.D.6 Algoritma kompresi data dengan kerugian biasanya dapat mengurangi jumlah bit yang disimpan atau dikirim lebih banyak daripada algoritma kompresi tanpa kerugian.
    • DAT-1.D.7 Dalam situasi di mana kualitas atau kemampuan untuk merekonstruksi data asli sangat penting, algoritma kompresi tanpa kehilangan (lossless) biasanya dipilih.
    • DAT-1.D.8 Dalam situasi di mana pengurangan ukuran data atau waktu transmisi sangat penting, algoritma kompresi dengan kehilangan (lossy) biasanya dipilih.

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

    English

    Compression 压缩 reduces the number of bits needed to store or send data. Two kinds:

    • Lossless compression 无损压缩 lets you restore the exact original data (used for text and programs, where every bit matters).
    • Lossy compression 有损压缩 throws away some data to shrink the size further (used for photos, music, video, where a small quality loss is acceptable).

    Choosing between them trades size against fidelity: lossless keeps everything but saves less; lossy saves more but loses detail permanently. Prefer lossless when the data must be exact.

    Bahasa Indonesia
    Piringan hard-disk dan kepala pembaca: data dikompresi dan disimpan sebagai pola magnetik
    Piringan hard-disk dan kepala pembaca: data dikompresi dan disimpan sebagai pola magnetik

    Kompresi mengurangi jumlah bit yang diperlukan untuk menyimpan atau mengirim data. Dua jenis:

    Metode kompresi: lossless versus lossy, dengan contoh umum
    Metode kompresi: tanpa kehilangan versus dengan kehilangan, dengan contoh umum
    • Kompresi tanpa rugi (lossless) memungkinkan Anda memulihkan data persis seperti aslinya (digunakan untuk teks dan program, di mana setiap bit penting).
    • Kompresi dengan rugi (lossy) membuang sebagian data untuk mengecilkan ukuran lebih jauh (digunakan untuk foto, musik, video, di mana penurunan kualitas kecil dapat diterima).

    Memilih di antara keduanya menukar ukuran terhadap fidelitas: tanpa rugi menyimpan segalanya tetapi menghemat lebih sedikit; dengan rugi menghemat lebih banyak tetapi kehilangan detail secara permanen. Pilih tanpa rugi ketika data harus tepat.

    Explore · ⁨Jelajahi⁩

    Compress a run of repeats · ⁨Kompres serangkaian pengulangan⁩

    Run-length encoding is a lossless compression: a long run of the same symbol is replaced by the symbol and a count, shrinking the data with no information lost. · ⁨Pengkodean panjang larian adalah kompresi tanpa rugi: serangkaian panjang simbol yang sama digantikan oleh simbol dan jumlah, mengecilkan data tanpa informasi hilang.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Compression/kəmˈpreʃn/ Kompresi
    Lossless compression/ˈlɒsləs kəmˈpreʃn/ kompresi tanpa kehilangan
    Lossy compression/ˈlɒsi kəmˈpreʃn/ Pemampatan dengan kehilangan
    Watch lesson · ⁨Tonton pelajaran⁩
    2.3

    Extracting Information from Data · ⁨Mengekstrak Informasi dari Data⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (DAT-2): Programs can be used to process data, which allows users to discover information and create new knowledge.

    Learning Objective DAT-2.A: Describe what information can be extracted from data. [Skill 5.B]

    • DAT-2.A.1 Information is the collection of facts and patterns extracted from data.
    • DAT-2.A.2 Data provide opportunities for identifying trends, making connections, and addressing problems.
    • DAT-2.A.3 Digitally processed data may show correlation between variables. A correlation found in data does not necessarily indicate that a causal relationship exists. Additional research is needed to understand the exact nature of the relationship.
    • DAT-2.A.4 Often, a single source does not contain the data needed to draw a conclusion. It may be necessary to combine data from a variety of sources to formulate a conclusion.

    Learning Objective DAT-2.B: Describe what information can be extracted from metadata. [Skill 5.B]

    • DAT-2.B.1 Metadata are data about data. For example, the piece of data may be an image, while the metadata may include the date of creation or the file size of the image.
    • DAT-2.B.2 Changes and deletions made to metadata do not change the primary data.
    • DAT-2.B.3 Metadata are used for finding, organizing, and managing information.
    • DAT-2.B.4 Metadata can increase the effective use of data or data sets by providing additional information.
    • DAT-2.B.5 Metadata allow data to be structured and organized.

    Learning Objective DAT-2.C: Identify the challenges associated with processing data. [Skill 5.D]

    • DAT-2.C.1 The ability to process data depends on the capabilities of the users and their tools.
    • DAT-2.C.2 Data sets pose challenges regardless of size, such as:
      • the need to clean data
      • incomplete data
      • invalid data
      • the need to combine data sources
    • DAT-2.C.3 Depending on how data were collected, they may not be uniform. For example, if users enter data into an open field, the way they choose to abbreviate, spell, or capitalize something may vary from user to user.
    • DAT-2.C.4 Cleaning data is a process that makes the data uniform without changing their meaning (e.g., replacing all equivalent abbreviations, spellings, and capitalizations with the same word).
    • DAT-2.C.5 Problems of bias are often created by the type or source of data being collected. Bias is not eliminated by simply collecting more data.
    • DAT-2.C.6 The size of a data set affects the amount of information that can be extracted from it.
    • DAT-2.C.7 Large data sets are difficult to process using a single computer and may require parallel systems.
    • DAT-2.C.8 Scalability of systems is an important consideration when working with data sets, as the computational capacity of a system affects how data sets can be processed and stored.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (DAT-2): Program dapat digunakan untuk memproses data, yang memungkinkan pengguna menemukan informasi dan menciptakan pengetahuan baru.

    Tujuan Pembelajaran DAT-2.A: Jelaskan apa informasi yang dapat diekstrak dari data. [Keterampilan 5.B]

    • DAT-2.A.1 Informasi adalah kumpulan fakta dan pola yang diekstrak dari data.
    • DAT-2.A.2 Data memberikan kesempatan untuk mengidentifikasi tren, membuat hubungan, dan menyelesaikan masalah.
    • DAT-2.A.3 Data yang diproses secara digital mungkin menunjukkan korelasi antar variabel. Korelasi yang ditemukan dalam data tidak selalu menandakan adanya hubungan sebab-akibat. Penelitian tambahan diperlukan untuk memahami sifat pasti dari hubungan tersebut.
    • DAT-2.A.4 Seringkali, satu sumber tidak berisi data yang dibutuhkan untuk menarik kesimpulan. Mungkin perlu menggabungkan data dari berbagai sumber untuk merumuskan sebuah kesimpulan.

    Tujuan Pembelajaran DAT-2.B: Jelaskan apa informasi yang dapat diekstrak dari metadata. [Keterampilan 5.B]

    • DAT-2.B.1 Metadata adalah data tentang data. Misalnya, sepotong data mungkin berupa gambar, sedangkan metadata-nya mungkin mencakup tanggal pembuatan atau ukuran file gambar tersebut.
    • DAT-2.B.2 Perubahan dan penghapusan yang dilakukan pada metadata tidak mengubah data utama.
    • DAT-2.B.3 Metadata digunakan untuk menemukan, mengatur, dan mengelola informasi.
    • DAT-2.B.4 Metadata dapat meningkatkan penggunaan efektif data atau set data dengan menyediakan informasi tambahan.
    • DAT-2.B.5 Metadata memungkinkan data disusun dan terorganisir.

    Tujuan Pembelajaran DAT-2.C: Identifikasi tantangan yang terkait dengan pemrosesan data. [Keterampilan 5.D]

    • DAT-2.C.1 Kemampuan untuk memproses data bergantung pada kemampuan pengguna dan alat mereka.
    • DAT-2.C.2 Set data menghadirkan tantangan terlepas dari ukurannya, seperti:
      • kebutuhan untuk membersihkan data
      • data yang tidak lengkap
      • data yang tidak valid
      • kebutuhan untuk menggabungkan sumber data
    • DAT-2.C.3 Bergantung pada bagaimana data dikumpulkan, data mungkin tidak seragam. Misalnya, jika pengguna memasukkan data ke dalam bidang terbuka, cara mereka memilih untuk menyingkat, mengeja, atau menggunakan huruf kapital sesuatu mungkin bervariasi dari pengguna ke pengguna.
    • DAT-2.C.4 Membersihkan data adalah proses yang membuat data menjadi seragam tanpa mengubah maknanya (misalnya, mengganti semua singkatan, ejaan, dan penggunaan huruf kapital yang setara dengan kata yang sama).
    • DAT-2.C.5 Masalah bias sering kali tercipta oleh jenis atau sumber data yang dikumpulkan. Bias tidak hilang hanya dengan mengumpulkan lebih banyak data.
    • DAT-2.C.6 Ukuran set data mempengaruhi jumlah informasi yang dapat diekstrak darinya.
    • DAT-2.C.7 Set data besar sulit diproses menggunakan satu komputer dan mungkin memerlukan sistem paralel.
    • DAT-2.C.8 Skalabilitas sistem merupakan pertimbangan penting saat bekerja dengan set data, karena kapasitas komputasi sistem mempengaruhi bagaimana set data dapat diproses dan disimpan.

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

    English

    Data 数据 becomes useful when we extract information 信息 from it – patterns, trends, and answers to questions. Large data sets can reveal correlations a small one cannot, but data must be cleaned (fixing errors and inconsistencies) and often transformed or filtered first. A correlation 相关性 between two things does not prove that one causes the other – a key caution. Metadata 元数据 (data about data, like a photo's date and location) helps organize and search large collections.

    Bahasa Indonesia

    Data menjadi berguna ketika kita mengekstrak informasi darinya – pola, tren, dan jawaban atas pertanyaan. Himpunan data besar dapat mengungkapkan korelasi yang tidak dapat dilakukan oleh himpunan data kecil, tetapi data harus bersih (memperbaiki kesalahan dan inkonsistensi) dan sering kali ditransformasi atau disaring terlebih dahulu. Korelasi antara dua hal tidak membuktikan bahwa satu hal menyebabkan yang lain – sebuah peringatan utama. Metadata (data tentang data, seperti tanggal dan lokasi foto) membantu mengatur dan mencari koleksi besar.

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Metadata/ˌmetəˈdeɪtə/ Metadata
    filtering/ˈfɪltərɪŋ/ penyaringan
    visualizing/ˈvɪʒuːəlaɪzɪŋ/ visualisasi
    privacy/ˈprɪvəsi/ privasi
    2.4

    Using Programs with Data · ⁨Menggunakan Program dengan Data⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (DAT-2): Programs can be used to process data, which allows users to discover information and create new knowledge.

    Learning Objective DAT-2.D: Extract information from data using a program. [Skill 2.B]

    • DAT-2.D.1 Programs can be used to process data to acquire information.
    • DAT-2.D.2 Tables, diagrams, text, and other visual tools can be used to communicate insight and knowledge gained from data.
    • DAT-2.D.3 Search tools are useful for efficiently finding information.
    • DAT-2.D.4 Data filtering systems are important tools for finding information and recognizing patterns in data.
    • DAT-2.D.5 Programs such as spreadsheets help efficiently organize and find trends in information.
    • DAT-2.D.6 Some processes that can be used to extract or modify information from data include the following:
      • transforming every element of a data set, such as doubling every element in a list, or adding a parent's email to every student record
      • filtering a data set, such as keeping only the positive numbers from a list, or keeping only students who signed up for band from a record of all the students
      • combining or comparing data in some way, such as adding up a list of numbers, or finding the student who has the highest GPA
      • visualizing a data set through a chart, graph, or other visual representation

    Learning Objective DAT-2.E: Explain how programs can be used to gain insight and knowledge from data. [Skill 5.B]

    • DAT-2.E.1 Programs are used in an iterative and interactive way when processing information to allow users to gain insight and knowledge about data.
    • DAT-2.E.2 Programmers can use programs to filter and clean digital data, thereby gaining insight and knowledge.
    • DAT-2.E.3 Combining data sources, clustering data, and classifying data are parts of the process of using programs to gain insight and knowledge from data.
    • DAT-2.E.4 Insight and knowledge can be obtained from translating and transforming digitally represented information.
    • DAT-2.E.5 Patterns can emerge when data are transformed using programs.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (DAT-2): Program dapat digunakan untuk memproses data, yang memungkinkan pengguna menemukan informasi dan menciptakan pengetahuan baru.

    Tujuan Pembelajaran DAT-2.D: Ekstrak informasi dari data menggunakan program. [Keterampilan 2.B]

    • DAT-2.D.1 Program dapat digunakan untuk memproses data guna mendapatkan informasi.
    • DAT-2.D.2 Tabel, diagram, teks, dan alat visual lainnya dapat digunakan untuk mengomunikasikan wawasan dan pengetahuan yang diperoleh dari data.
    • DAT-2.D.3 Alat pencarian berguna untuk menemukan informasi secara efisien.
    • DAT-2.D.4 Sistem penyaring data adalah alat penting untuk menemukan informasi dan mengenali pola dalam data.
    • DAT-2.D.5 Program seperti spreadsheet membantu mengatur dan menemukan tren dalam informasi secara efisien.
    • DAT-2.D.6 Beberapa proses yang dapat digunakan untuk mengekstrak atau memodifikasi informasi dari data meliputi hal-hal berikut:
      • mentransformasikan setiap elemen dari set data, seperti menggandakan setiap elemen dalam daftar, atau menambahkan email orang tua ke setiap catatan siswa
      • menyaring set data, seperti hanya menyimpan angka positif dari sebuah daftar, atau hanya menyimpan siswa yang mendaftar untuk band dari catatan semua siswa
      • menggabungkan atau membandingkan data dengan cara tertentu, seperti menjumlahkan daftar angka, atau menemukan siswa yang memiliki IPK tertinggi
      • memvisualisasikan set data melalui grafik, bagan, atau representasi visual lainnya

    Tujuan Pembelajaran DAT-2.E: Jelaskan bagaimana program dapat digunakan untuk mendapatkan wawasan dan pengetahuan dari data. [Keterampilan 5.B]

    • DAT-2.E.1 Program digunakan secara iteratif dan interaktif saat memproses informasi agar pengguna dapat mendapatkan wawasan dan pengetahuan tentang data.
    • DAT-2.E.2 Pemrogram dapat menggunakan program untuk menyaring dan membersihkan data digital, sehingga mendapatkan wawasan dan pengetahuan.
    • DAT-2.E.3 Menggabungkan sumber data, mengelompokkan data, dan mengklasifikasikan data merupakan bagian dari proses menggunakan program untuk mendapatkan wawasan dan pengetahuan dari data.
    • DAT-2.E.4 Wawasan dan pengetahuan dapat diperoleh dari menerjemahkan dan mentransformasikan informasi yang direpresentasikan secara digital.
    • DAT-2.E.5 Pola dapat muncul ketika data ditransformasikan menggunakan program.

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

    English

    Programs process data at scales humans cannot. Common operations are filtering 过滤 (keeping only rows that meet a condition), cleaning (removing errors), and visualizing 可视化 (charts and graphs that make patterns visible). Combining data from multiple sources can reveal more, but raises privacy 隐私 concerns. Interactive tools and visualizations let people explore data and draw their own conclusions.

    Exam skill: be able to explain how a program helps find information in a large data set, and why correlation shown in the data does not establish causation.

    Bahasa Indonesia

    Program memproses data dalam skala yang tidak dapat dilakukan manusia. Operasi umum adalah penyaringan (menyimpan hanya baris yang memenuhi suatu kondisi), pembersihan (menghapus kesalahan), dan visualisasi (grafik dan bagan yang membuat pola terlihat). Menggabungkan data dari beberapa sumber dapat mengungkap lebih banyak, tetapi menimbulkan masalah privasi. Alat interaktif dan visualisasi memungkinkan orang menjelajahi data dan menarik kesimpulan sendiri.

    Keterampilan ujian: mampu menjelaskan bagaimana program membantu menemukan informasi dalam himpunan data besar, dan mengapa korelasi yang ditunjukkan dalam data tidak menetapkan sebab-akibat.

    2.4

    Exam tips · ⁨Tips ujian⁩

    English
    • Convert confidently between binary, decimal, and (where asked) hexadecimal — practise until it is quick.
    • Remember a bit is one binary digit and a byte is 8 bits; $n$ bits represent $2^n$ values.
    • Explain that all data — numbers, text, images, sound — is stored as binary, and that finite bits cause overflow and round-off.
    • Distinguish lossless from lossy compression and when each is appropriate.
    • Show the analog-to-digital idea: sampling turns a continuous signal into discrete values.
    Bahasa Indonesia
    • Konversi dengan percaya diri antara biner, desimal, dan (jika diminta) heksadesimal – berlatih hingga cepat.
    • Ingatlah bahwa bit adalah satu digit biner dan byte adalah 8 bit; $n$ bit merepresentasikan $2^n$ nilai.
    • Jelaskan bahwa semua data – angka, teks, gambar, suara – disimpan sebagai biner, dan bahwa bit terbatas menyebabkan overflow dan round-off.
    • Bedakan tanpa rugi dari dengan rugi kompresi dan kapan masing-masing sesuai digunakan.
    • Tunjukkan ide analog-ke-digital: pengambilan sampel mengubah sinyal kontinu menjadi nilai diskrit.
  • 3

    Algorithms and Programming · ⁨Algoritma dan Pemrograman⁩

    Watch lesson · ⁨Tonton pelajaran⁩
    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.
  • 4

    Computer Systems and Networks · ⁨Sistem Komputer dan Jaringan⁩

    Watch lesson · ⁨Tonton pelajaran⁩
    4.1

    The Internet

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CSN-1): Computer systems and networks facilitate the transfer of data.

    Learning Objective CSN-1.A: Explain how computing devices work together in a network. [Skill 5.A]

    • CSN-1.A.1 A computing device is a physical artifact that can run a program. Some examples include computers, tablets, servers, routers, and smart sensors.
    • CSN-1.A.2 A computing system is a group of computing devices and programs working together for a common purpose.
    • CSN-1.A.3 A computer network is a group of interconnected computing devices capable of sending or receiving data.
    • CSN-1.A.4 A computer network is a type of computing system.
    • CSN-1.A.5 A path between two computing devices on a computer network (a sender and a receiver) is a sequence of directly connected computing devices that begins at the sender and ends at the receiver.
    • CSN-1.A.6 Routing is the process of finding a path from sender to receiver.
    • CSN-1.A.7 The bandwidth of a computer network is the maximum amount of data that can be sent in a fixed amount of time.
    • CSN-1.A.8 Bandwidth is usually measured in bits per second.

    Learning Objective CSN-1.B: Explain how the Internet works. [Skill 5.A]

    • CSN-1.B.1 The Internet is a computer network consisting of interconnected networks that use standardized, open (nonproprietary) communication protocols.
    • CSN-1.B.2 Access to the Internet depends on the ability to connect a computing device to an Internet-connected device.
    • CSN-1.B.3 A protocol is an agreed-upon set of rules that specify the behavior of a system.
    • CSN-1.B.4 The protocols used in the Internet are open, which allows users to easily connect additional computing devices to the Internet.
    • CSN-1.B.5 Routing on the Internet is usually dynamic; it is not specified in advance.
    • CSN-1.B.6 The scalability of a system is the capacity for the system to change in size and scale to meet new demands.
    • CSN-1.B.7 The Internet was designed to be scalable.

    Learning Objective CSN-1.C: Explain how data are sent through the Internet via packets. [Skill 5.A]

    • CSN-1.C.1 Information is passed through the Internet as a data stream. Data streams contain chunks of data, which are encapsulated in packets.
    • CSN-1.C.2 Packets contain a chunk of data and metadata used for routing the packet between the origin and the destination on the Internet, as well as for data reassembly.
    • CSN-1.C.3 Packets may arrive at the destination in order, out of order, or not at all.
    • CSN-1.C.4 IP, TCP, and UDP are common protocols used on the Internet.

    Learning Objective CSN-1.D: Describe the differences between the Internet and the World Wide Web. [Skill 5.A]

    • CSN-1.D.1 The World Wide Web is a system of linked pages, programs, and files.
    • CSN-1.D.2 HTTP is a protocol used by the World Wide Web.
    • CSN-1.D.3 The World Wide Web uses the Internet.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (CSN-1): Sistem komputer dan jaringan memfasilitasi transfer data.

    Tujuan Pembelajaran CSN-1.A: Jelaskan bagaimana perangkat komputasi bekerja bersama dalam jaringan. [Keterampilan 5.A]

    • CSN-1.A.1 Perangkat komputasi adalah artefak fisik yang dapat menjalankan program. Beberapa contoh termasuk komputer, tablet, server, router, dan sensor pintar.
    • CSN-1.A.2 Sistem komputasi adalah kelompok perangkat komputasi dan program yang bekerja sama untuk tujuan bersama.
    • CSN-1.A.3 Jaringan komputer adalah kelompok perangkat komputasi yang saling terhubung yang mampu mengirim atau menerima data.
    • CSN-1.A.4 Jaringan komputer adalah jenis sistem komputasi.
    • CSN-1.A.5 Jalur antara dua perangkat komputasi pada jaringan komputer (pengirim dan penerima) adalah urutan perangkat komputasi yang terhubung langsung yang dimulai dari pengirim dan berakhir di penerima.
    • CSN-1.A.6 Rute adalah proses menemukan jalur dari pengirim ke penerima.
    • CSN-1.A.7 Bandwidth (lebar pita) dari jaringan komputer adalah jumlah maksimum data yang dapat dikirim dalam waktu tetap.
    • CSN-1.A.8 Bandwidth biasanya diukur dalam bit per detik.

    Tujuan Pembelajaran CSN-1.B: Jelaskan bagaimana Internet bekerja. [Keterampilan 5.A]

    • CSN-1.B.1 Internet adalah jaringan komputer yang terdiri dari jaringan-jaringan yang saling terhubung dan menggunakan protokol komunikasi standar, terbuka (non-proprietari).
    • CSN-1.B.2 Akses ke Internet bergantung pada kemampuan untuk menghubungkan perangkat komputasi ke perangkat yang terhubung ke Internet.
    • CSN-1.B.3 Sebuah protokol adalah serangkaian aturan yang disepakati yang menentukan perilaku suatu sistem.
    • CSN-1.B.4 Protokol yang digunakan di Internet bersifat terbuka, yang memungkinkan pengguna dengan mudah menambahkan perangkat komputasi tambahan ke Internet.
    • CSN-1.B.5 Perutean di Internet biasanya dinamis; tidak ditentukan sebelumnya.
    • CSN-1.B.6 Skalabilitas sebuah sistem adalah kapasitas sistem untuk berubah ukuran dan skala guna memenuhi permintaan baru.
    • CSN-1.B.7 Internet dirancang agar dapat diskalakan.

    Tujuan Pembelajaran CSN-1.C: Jelaskan bagaimana data dikirim melalui Internet menggunakan paket. [Keterampilan 5.A]

    • CSN-1.C.1 Informasi dilewatkan melalui Internet sebagai arus data. Arus data berisi potongan-potongan data, yang dikemas dalam paket.
    • CSN-1.C.2 Paket berisi potongan data dan metadata yang digunakan untuk merutekan paket antara asal dan tujuan di Internet, serta untuk penyusunan ulang data.
    • CSN-1.C.3 Paket dapat tiba di tujuan secara berurutan, tidak berurutan, atau bahkan tidak tiba sama sekali.
    • CSN-1.C.4 IP, TCP, dan UDP adalah protokol umum yang digunakan di Internet.

    Tujuan Pembelajaran CSN-1.D: Jelaskan perbedaan antara Internet dan World Wide Web. [Keterampilan 5.A]

    • CSN-1.D.1 World Wide Web adalah sistem halaman-halaman yang saling terkait, program, dan file.
    • CSN-1.D.2 HTTP adalah protokol yang digunakan oleh World Wide Web.
    • CSN-1.D.3 World Wide Web menggunakan Internet.

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

    An RJ45 Ethernet connector — physical links carry packets across the Internet
    An RJ45 Ethernet connector — physical links carry packets across the Internet

    The Internet 互联网 is a global network of networks. Data travels as packets 数据包 – small chunks that are sent separately and reassembled at the destination. Two ideas make it work at scale:

    The internet is the worldwide network; the web is one service running on it
    The internet is the worldwide network; the web is one service running on it
    • Protocols 协议 are agreed rules for communication. IP (Internet Protocol) addresses and routes packets; TCP reassembles them in order and re-requests lost ones; HTTP carries web pages; DNS translates a name like example.com into an IP address.
    • Redundancy 冗余 and routing: there are many possible paths between two points, so if one path fails, packets take another. This makes the Internet fault-tolerant 容错.

    The Internet is designed to be open and scalable – built on standards anyone can use, so it keeps working as billions of devices join. Bandwidth 带宽 is the amount of data a connection can carry per second.

    Explore · ⁨Jelajahi⁩

    How data crosses the Internet in packets · ⁨Bagaimana data melintasi Internet dalam paket⁩

    The Internet breaks a message into numbered packets, each addressed and routed independently (often by different paths), then reassembled at the destination. That design makes it fault-tolerant — if one route fails, packets take another. · ⁨Internet memecah pesan menjadi paket bernomor, masing-masing dialamatkan dan dialirkan secara independen (sering melalui jalur berbeda), lalu dirakit kembali di tujuan. Desain itu membuatnya toleran kesalahan — jika satu jalur gagal, paket mengambil jalur lain.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Internet/ˈɪntənet/ Internet
    packets/ˈpækɪts/ paket
    Protocols/ˈprəʊtəkɒlz/ Protokol
    Redundancy/rɪˈdʌndənsi/ Redundansi
    fault-tolerant/fɒlt ˈtɒlərənt/ toleransi kesalahan
    Bandwidth/ˈbændwɪdθ/ Lebar pita
    Watch lesson · ⁨Tonton pelajaran⁩
    4.2

    Fault Tolerance

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CSN-1): Computer systems and networks facilitate the transfer of data.

    Learning Objective CSN-1.E: For fault-tolerant systems, like the Internet: a. Describe the benefits of fault tolerance. [Skill 1.D] b. Explain how a given system is fault-tolerant. [Skill 5.A] c. Identify vulnerabilities to failure in a system. [Skill 1.D]

    • CSN-1.E.1 The Internet has been engineered to be fault-tolerant, with abstractions for routing and transmitting data.
    • CSN-1.E.2 Redundancy is the inclusion of extra components that can be used to mitigate failure of a system if other components fail.
    • CSN-1.E.3 One way to accomplish network redundancy is by having more than one path between any two connected devices.
    • CSN-1.E.4 If a particular device or connection on the Internet fails, subsequent data will be sent via a different route, if possible.
    • CSN-1.E.5 When a system can support failures and still continue to function, it is called fault-tolerant. This is important because elements of complex systems fail at unexpected times, often in groups, and fault tolerance allows users to continue to use the network.
    • CSN-1.E.6 Redundancy within a system often requires additional resources but can provide the benefit of fault tolerance.
    • CSN-1.E.7 The redundancy of routing options between two points increases the reliability of the Internet and helps it scale to more devices and more people.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (CSN-1): Sistem komputer dan jaringan memfasilitasi transfer data.

    Tujuan Pembelajaran CSN-1.E: Untuk sistem toleran kesalahan, seperti Internet: a. Jelaskan manfaat toleransi kesalahan. [Keterampilan 1.D] b. Jelaskan bagaimana suatu sistem tertentu bersifat toleran kesalahan. [Keterampilan 5.A] c. Identifikasi kerentanan terhadap kegagalan dalam suatu sistem. [Keterampilan 1.D]

    • CSN-1.E.1 Internet telah direkayasa agar toleran kesalahan, dengan abstraksi untuk perutean dan transmisi data.
    • CSN-1.E.2 Redundansi adalah penambahan komponen ekstra yang dapat digunakan untuk mengurangi dampak kegagalan sistem jika komponen lain gagal.
    • CSN-1.E.3 Salah satu cara mencapai redundansi jaringan adalah dengan memiliki lebih dari satu jalur antara dua perangkat yang terhubung apa pun.
    • CSN-1.E.4 Jika perangkat atau koneksi tertentu di Internet mengalami kegagalan, data selanjutnya akan dikirim melalui rute berbeda, jika memungkinkan.
    • CSN-1.E.5 Ketika suatu sistem dapat mendukung kegagalan dan tetap berfungsi, disebut toleran kesalahan. Hal ini penting karena elemen-elemen sistem kompleks sering kali gagal pada waktu yang tidak terduga, seringkali secara berkelompok, dan toleransi kesalahan memungkinkan pengguna untuk terus menggunakan jaringan.
    • CSN-1.E.6 Redundansi dalam suatu sistem sering kali memerlukan sumber daya tambahan tetapi dapat memberikan manfaat toleransi kesalahan.
    • CSN-1.E.7 Redundansi opsi perutean antara dua titik meningkatkan keandalan Internet dan membantunya berskala untuk menampung lebih banyak perangkat dan lebih banyak orang.

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

    A Wi-Fi router: the local gateway that forwards packets toward the wider Internet
    A Wi-Fi router: the local gateway that forwards packets toward the wider Internet

    A system is fault-tolerant if it keeps working even when part of it fails. The Internet achieves this through redundant connections: because packets can be routed along multiple paths, the failure of one router or cable does not stop communication – traffic simply reroutes. Fault tolerance costs extra resources (the redundant paths) but greatly improves reliability 可靠性. A single path with no backup is not fault-tolerant.

    Packet switching sends packets by independent routes, so the network tolerates a failed link
    Packet switching sends packets by independent routes, so the network tolerates a failed link
    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    reliability/rɪˌlaɪəˈbɪlɪti/ keandalan
    4.3

    Parallel and Distributed Computing

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (CSN-2): Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.

    Learning Objective CSN-2.A: For sequential, parallel, and distributed computing: a. Compare problem solutions. [Skill 1.D] b. Determine the efficiency of solutions. [Skill 1.D]

    • CSN-2.A.1 Sequential computing is a computational model in which operations are performed in order one at a time.
    • CSN-2.A.2 Parallel computing is a computational model where the program is broken into multiple smaller sequential computing operations, some of which are performed simultaneously.
    • CSN-2.A.3 Distributed computing is a computational model in which multiple devices are used to run a program.
    • CSN-2.A.4 Comparing efficiency of solutions can be done by comparing the time it takes them to perform the same task.
    • CSN-2.A.5 A sequential solution takes as long as the sum of all of its steps.
    • CSN-2.A.6 A parallel computing solution takes as long as its sequential tasks plus the longest of its parallel tasks.
    • CSN-2.A.7 The "speedup" of a parallel solution is measured in the time it took to complete the task sequentially divided by the time it took to complete the task when done in parallel.

    Learning Objective CSN-2.B: Describe benefits and challenges of parallel and distributed computing. [Skill 1.D]

    • CSN-2.B.1 Parallel computing consists of a parallel portion and a sequential portion.
    • CSN-2.B.2 Solutions that use parallel computing can scale more effectively than solutions that use sequential computing.
    • CSN-2.B.3 Distributed computing allows problems to be solved that could not be solved on a single computer because of either the processing time or storage needs involved.
    • CSN-2.B.4 Distributed computing allows much larger problems to be solved quicker than they could be solved using a single computer.
    • CSN-2.B.5 When increasing the use of parallel computing in a solution, the efficiency of the solution is still limited by the sequential portion. This means that at some point, adding parallel portions will no longer meaningfully increase efficiency.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (CSN-2): Komputasi paralel dan terdistribusi memanfaatkan beberapa komputer untuk menyelesaikan masalah kompleks atau memproses kumpulan data besar dengan lebih cepat.

    Tujuan Pembelajaran CSN-2.A: Untuk komputasi sekuensial, paralel, dan terdistribusi: a. Bandingkan solusi masalah. [Keterampilan 1.D] b. Tentukan efisiensi solusi. [Keterampilan 1.D]

    • CSN-2.A.1 Komputasi sekuensial adalah model komputasi di mana operasi dilakukan secara berurutan satu per satu.
    • CSN-2.A.2 Komputasi paralel adalah model komputasi di mana program dipecah menjadi banyak operasi komputasi sekuensial yang lebih kecil, di mana beberapa di antaranya dilakukan secara bersamaan.
    • CSN-2.A.3 Komputasi terdistribusi adalah model komputasi di mana beberapa perangkat digunakan untuk menjalankan sebuah program.
    • CSN-2.A.4 Membandingkan efisiensi solusi dapat dilakukan dengan membandingkan waktu yang dibutuhkan mereka untuk melakukan tugas yang sama.
    • CSN-2.A.5 Solusi sekuensial memakan waktu sama dengan jumlah dari semua langkah-langkahnya.
    • CSN-2.A.6 Solusi komputasi paralel memakan waktu sama dengan tugas-tugas sekuensialnya ditambah tugas paralel terlama di antaranya.
    • CSN-2.A.7 "Percepatan" dari solusi paralel diukur dari waktu yang diperlukan untuk menyelesaikan tugas secara sekuensial dibagi dengan waktu yang diperlukan untuk menyelesaikan tugas tersebut secara paralel.

    Tujuan Pembelajaran CSN-2.B: Jelaskan manfaat dan tantangan komputasi paralel dan terdistribusi. [Keterampilan 1.D]

    • CSN-2.B.1 Komputasi paralel terdiri dari bagian paralel dan bagian sekuensial.
    • CSN-2.B.2 Solusi yang menggunakan komputasi paralel dapat berskala lebih efektif daripada solusi yang menggunakan komputasi sekuensial.
    • CSN-2.B.3 Komputasi terdistribusi memungkinkan masalah diselesaikan yang tidak dapat diselesaikan pada satu komputer karena waktu pemrosesan atau kebutuhan penyimpanan yang terlibat.
    • CSN-2.B.4 Komputasi terdistribusi memungkinkan masalah yang jauh lebih besar diselesaikan lebih cepat dibandingkan jika diselesaikan menggunakan satu komputer.
    • CSN-2.B.5 Saat meningkatkan penggunaan komputasi paralel dalam suatu solusi, efisiensi solusi tetap terbatas oleh bagian sekuensialnya. Ini berarti pada titik tertentu, penambahan bagian paralel tidak akan lagi secara bermakna meningkatkan efisiensi.

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

    Data-centre server racks: distributed computing spreads work across many machines
    Data-centre server racks: distributed computing spreads work across many machines
    • Sequential computing 顺序计算 runs one operation at a time.
    • Parallel computing 并行计算 splits a task into parts that run at the same time on multiple processors, finishing faster.
    • Distributed computing 分布式计算 uses many computers connected by a network to work on one problem – essential for problems too big for a single machine.
    Parallel computing: many processors work at the same time
    Parallel computing: many processors work at the same time

    A parallel solution's speedup 加速比 is the sequential time divided by the parallel time. Speedup is limited: parts that must run in sequence cannot be sped up by adding processors, so doubling the processors rarely doubles the speed.

    Worked example. A task has a part that must run sequentially, taking $40$ seconds, plus a parallelizable part that takes $60$ seconds on one processor – so on a single processor the whole task takes $40+60=100$ seconds. Spread the parallel part across $3$ processors and it takes $\tfrac{60}{3}=20$ seconds, so the total parallel time is $40+20=60$ seconds and the speedup is $\tfrac{100}{60}\approx1.67$. The $40$-second sequential part is a floor: even with infinitely many processors the task can never finish in under $40$ seconds.

    Exam skill: given the times for the sequential and parallel portions of a task, be able to calculate the total parallel time and the speedup.

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Sequential computing/siːˈkwenʃl kəmˈpjuːtɪŋ/ Komputasi berurutan
    Parallel computing/ˈpærəlel kəmˈpjuːtɪŋ/ Komputasi paralel
    Distributed computing/ˈdɪstrɪbjuːtɪd kəmˈpjuːtɪŋ/ Komputasi terdistribusi
    speedup/ˈspiːdʌp/ percepatan
    4.3

    Exam tips

    • Describe how data travels in packets over a redundant, fault-tolerant network of independent routers.
    • Know that protocols (IP, TCP, HTTP) are agreed rules, and that open standards let different systems interoperate.
    • Explain scalability and how the Internet grows without central control.
    • Contrast bandwidth (rate) with latency (delay), and describe the DNS name-to-address lookup.
    • Discuss the digital divide and security basics (encryption, authentication) in plain terms.
  • 5

    Impact of Computing · ⁨Dampak Komputasi⁩

    Watch lesson · ⁨Tonton pelajaran⁩
    5.1

    Beneficial and Harmful Effects · ⁨Efek yang Menguntungkan dan Merugikan⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.A: Explain how an effect of a computing innovation can be both beneficial and harmful. [Skill 5.C]

    • IOC-1.A.1 People create computing innovations.
    • IOC-1.A.2 The way people complete tasks often changes to incorporate new computing innovations.
    • IOC-1.A.3 Not every effect of a computing innovation is anticipated in advance.
    • IOC-1.A.4 A single effect can be viewed as both beneficial and harmful by different people, or even by the same person.
    • IOC-1.A.5 Advances in computing have generated and increased creativity in other fields, such as medicine, engineering, communications, and the arts.

    Learning Objective IOC-1.B: Explain how a computing innovation can have an impact beyond its intended purpose. [Skill 5.C]

    • IOC-1.B.1 Computing innovations can be used in ways that their creators had not originally intended:
      • The World Wide Web was originally intended only for rapid and easy exchange of information within the scientific community.
      • Targeted advertising is used to help businesses, but it can be misused at both individual and aggregate levels.
      • Machine learning and data mining have enabled innovation in medicine, business, and science, but information discovered in this way has also been used to discriminate against groups of individuals.
    • IOC-1.B.2 Some of the ways computing innovations can be used may have a harmful impact on society, the economy, or culture.
    • IOC-1.B.3 Responsible programmers try to consider the unintended ways their computing innovations can be used and the potential beneficial and harmful effects of these new uses.
    • IOC-1.B.4 It is not possible for a programmer to consider all the ways a computing innovation can be used.
    • IOC-1.B.5 Computing innovations have often had unintended beneficial effects by leading to advances in other fields.
    • IOC-1.B.6 Rapid sharing of a program or running a program with a large number of users can result in significant impacts beyond the intended purpose or control of the programmer.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-1): Meskipun inovasi komputasi biasanya dirancang untuk mencapai tujuan tertentu, inovasi tersebut dapat memiliki konsekuensi yang tidak disengaja.

    Tujuan Pembelajaran IOC-1.A: Jelaskan bagaimana dampak dari sebuah inovasi komputasi dapat bersifat menguntungkan sekaligus merugikan. [Keterampilan 5.C]

    • IOC-1.A.1 Manusia menciptakan inovasi komputasi.
    • IOC-1.A.2 Cara manusia menyelesaikan tugas sering kali berubah untuk mengintegrasikan inovasi komputasi baru.
    • IOC-1.A.3 Tidak setiap dampak dari inovasi komputasi diprediksi sebelumnya.
    • IOC-1.A.4 Satu dampak dapat dilihat sebagai menguntungkan dan merugikan oleh orang yang berbeda, atau bahkan oleh orang yang sama.
    • IOC-1.A.5 Kemajuan dalam komputasi telah menghasilkan dan meningkatkan kreativitas di bidang lain, seperti kedokteran, teknik, komunikasi, dan seni.

    Tujuan Pembelajaran IOC-1.B: Jelaskan bagaimana inovasi komputasi dapat memiliki dampak di luar tujuan yang direncanakannya. [Keterampilan 5.C]

    • IOC-1.B.1 Inovasi komputasi dapat digunakan dengan cara yang tidak dimaksudkan oleh penciptanya:
      • World Wide Web awalnya hanya dimaksudkan untuk pertukaran informasi yang cepat dan mudah di kalangan komunitas ilmiah.
      • Perikanan tertarget digunakan untuk membantu bisnis, namun dapat disalahgunakan baik pada tingkat individu maupun agregat.
      • Pembelajaran mesin dan penambangan data telah memungkinkan inovasi dalam kedokteran, bisnis, dan sains, namun informasi yang ditemukan melalui cara ini juga telah digunakan untuk memdiskriminasi kelompok individu.
    • IOC-1.B.2 Beberapa cara penggunaan inovasi komputasi dapat berdampak buruk bagi masyarakat, ekonomi, atau budaya.
    • IOC-1.B.3 Pemrogram yang bertanggung jawab berusaha mempertimbangkan cara-cara tak disengaja inovasi komputasi mereka dapat digunakan serta potensi dampak menguntungkan dan merugikan dari penggunaan baru ini.
    • IOC-1.B.4 Tidak mungkin bagi seorang pemrogram untuk mempertimbangkan semua cara inovasi komputasi dapat digunakan.
    • IOC-1.B.5 Inovasi komputasi sering kali memiliki dampak menguntungkan yang tidak disengaja dengan cara mendorong kemajuan di bidang lain.
    • IOC-1.B.6 Penyerahan program secara cepat atau menjalankan program dengan jumlah pengguna yang besar dapat menghasilkan dampak signifikan di luar tujuan atau kendali pemrogram.

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

    English

    Every computing innovation can be used in ways that help and ways that harm – often the same technology does both. A social network connects people and can spread misinformation; automation raises productivity and can remove jobs. Effects are frequently unintended: creators cannot foresee every use. When you evaluate a computing innovation, weigh its benefits and harms on people and society, and remember that harms are not always deliberate.

    Computing also generates creativity in other fields, which the CED asks for as a benefit in its own right, not merely as convenience: modelling and imaging in medicine, simulation in engineering, new forms in the arts and music, and new kinds of communication entirely. An innovation's beneficial effects are often in a field far from computing.

    Bahasa Indonesia
    Tumpukan limbah elektronik — komputasi memiliki biaya lingkungan serta manfaat
    Tumpukan limbah elektronik — komputasi memiliki biaya lingkungan serta manfaat

    Setiap inovasi komputasi dapat digunakan dengan cara yang membantu dan cara yang merugikan – seringkali teknologi yang sama melakukan keduanya. Jejaring sosial menghubungkan orang-orang dan dapat menyebarkan informasi menyesatkan; otomasi meningkatkan produktivitas dan dapat menghilangkan pekerjaan. Dampaknya sering kali tidak disengaja: pencipta tidak dapat memprediksi setiap penggunaannya. Saat Anda mengevaluasi inovasi komputasi, timbanglah manfaat dan kerugiannya bagi manusia dan masyarakat, dan ingatlah bahwa kerugian tidak selalu disengaja.

    Komputasi memengaruhi kesejahteraan publik dalam beberapa cara
    Komputasi memengaruhi kesejahteraan publik dalam beberapa cara

    Komputasi juga menciptakan kreativitas di bidang lain, yang CED minta sebagai manfaat itu sendiri, bukan sekadar kemudahan: pemodelan dan pencitraan dalam kedokteran, simulasi dalam teknik, bentuk baru dalam seni dan musik, serta jenis komunikasi yang sama sekali baru. Dampak menguntungkan dari suatu inovasi sering kali berada di bidang yang jauh dari komputasi.

    5.2

    The Digital Divide · ⁨Kesenjangan Digital⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.C: Describe issues that contribute to the digital divide. [Skill 5.C]

    • IOC-1.C.1 Internet access varies between socioeconomic, geographic, and demographic characteristics, as well as between countries.
    • IOC-1.C.2 The "digital divide" refers to differing access to computing devices and the Internet, based on socioeconomic, geographic, or demographic characteristics.
    • IOC-1.C.3 The digital divide can affect both groups and individuals.
    • IOC-1.C.4 The digital divide raises issues of equity, access, and influence, both globally and locally.
    • IOC-1.C.5 The digital divide is affected by the actions of individuals, organizations, and governments.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-1): Meskipun inovasi komputasi biasanya dirancang untuk mencapai tujuan tertentu, inovasi tersebut dapat memiliki konsekuensi yang tidak disengaja.

    Tujuan Pembelajaran IOC-1.C: Jelaskan isu-isu yang berkontribusi terhadap kesenjangan digital. [Keterampilan 5.C]

    • IOC-1.C.1 Akses internet bervariasi berdasarkan karakteristik sosioekonomi, geografis, dan demografis, serta antar negara.
    • IOC-1.C.2 "Kesenjangan digital" merujuk pada perbedaan akses terhadap perangkat komputasi dan Internet, berdasarkan karakteristik sosioekonomi, geografis, atau demografis.
    • IOC-1.C.3 Kesenjangan digital dapat memengaruhi baik kelompok maupun individu.
    • IOC-1.C.4 Kesenjangan digital memunculkan isu-isu tentang keadilan, akses, dan pengaruh, baik secara global maupun lokal.
    • IOC-1.C.5 Kesenjangan digital dipengaruhi oleh tindakan individu, organisasi, dan pemerintah.

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

    English

    The digital divide 数字鸿沟 is the unequal access to computing and the Internet across groups – by income, geography, age, or country. Those with access gain education, jobs, and services; those without fall further behind. The divide is shaped by economic, social, and geographic factors, and efforts to close it (affordable devices, public access, infrastructure) aim to make computing's benefits fairer.

    Bahasa Indonesia

    Kesenjangan digital adalah akses yang tidak merata terhadap komputasi dan Internet antar kelompok – berdasarkan pendapatan, geografis, usia, atau negara. Mereka yang memiliki akses mendapat pendidikan, pekerjaan, dan layanan; mereka yang tidak tertinggal semakin jauh. Kesenjangan ini dibentuk oleh faktor ekonomi, sosial, dan geografis, dan upaya untuk menutupnya (perangkat terjangkau, akses publik, infrastruktur) bertujuan agar manfaat komputasi lebih adil.

    Komputer perpustakaan umum: kesenjangan digital berkaitan dengan akses yang tidak merata ke perangkat, koneksi, dan keterampilan
    Komputer perpustakaan umum: kesenjangan digital berkaitan dengan akses yang tidak merata ke perangkat, koneksi, dan keterampilan
    Piringan satelit pedesaan: geografis masih membentuk siapa yang mendapatkan internet cepat dan siapa yang menunggu
    Piringan satelit pedesaan: geografis masih membentuk siapa yang mendapatkan internet cepat dan siapa yang menunggu
    5.3

    Computing Bias · ⁨Bias Komputasi⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.D: Explain how bias exists in computing innovations. [Skill 5.E]

    • IOC-1.D.1 Computing innovations can reflect existing human biases because of biases written into the algorithms or biases in the data used by the innovation.
    • IOC-1.D.2 Programmers should take action to reduce bias in algorithms used for computing innovations as a way of combating existing human biases.
    • IOC-1.D.3 Biases can be embedded at all levels of software development.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-1): Meskipun inovasi komputasi biasanya dirancang untuk mencapai tujuan tertentu, inovasi tersebut dapat memiliki konsekuensi yang tidak disengaja.

    Tujuan Pembelajaran IOC-1.D: Jelaskan bagaimana bias terdapat dalam inovasi komputasi. [Keterampilan 5.E]

    • IOC-1.D.1 Inovasi komputasi dapat mencerminkan bias manusia yang ada karena bias yang tertanam dalam algoritma atau bias dalam data yang digunakan oleh inovasi tersebut.
    • IOC-1.D.2 Pemrogram harus mengambil tindakan untuk mengurangi bias dalam algoritma yang digunakan untuk inovasi komputasi sebagai cara melawan bias manusia yang sudah ada.
    • IOC-1.D.3 Bias dapat tertanam di semua tingkatan pengembangan perangkat lunak.

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

    English

    Bias 偏见 can be built into computing systems – often unintentionally. If the data used to build a system reflects existing prejudice, or if the designers' assumptions are one-sided, the system can produce unfair results (for example, a hiring tool that favors one group). Bias can enter at every stage – data collection, design, and use – so systems should be tested for fairness across different groups. Recognizing that "the computer said so" is not the same as "fair" is an important habit.

    Bahasa Indonesia
    Mobil tanpa pengemudi di jalan kota – sistem otonom menimbulkan pertanyaan mengenai keselamatan dan bias
    Mobil tanpa pengemudi di jalan kota – sistem otonom menimbulkan pertanyaan mengenai keselamatan dan bias

    Bias dapat terintegrasi ke dalam sistem komputasi – sering kali tidak sengaja. Jika data yang digunakan untuk membangun sistem mencerminkan prasangka yang sudah ada, atau asumsi perancangnya satu sisi, sistem dapat menghasilkan hasil yang tidak adil (misalnya, alat perekrutan yang memihak satu kelompok). Bias dapat masuk pada setiap tahap – pengumpulan data, desain, dan penggunaan – sehingga sistem harus diuji kewajarannya lintas berbagai kelompok. Mengakui bahwa "komputer bilang begitu" sama dengan "adil" adalah kebiasaan penting.

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    digital divide/ˈdɪdʒɪtl dɪˈvaɪd/ kesenjangan digital
    Bias/ˈbaɪəs/ Bias
    5.4

    Crowdsourcing

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.E: Explain how people participate in problem-solving processes at scale. [Skill 1.C]

    • IOC-1.E.1 Widespread access to information and public data facilitates the identification of problems, development of solutions, and dissemination of results.
    • IOC-1.E.2 Science has been affected by using distributed and "citizen science" to solve scientific problems.
    • IOC-1.E.3 Citizen science is scientific research conducted in whole or part by distributed individuals, many of whom may not be scientists, who contribute relevant data to research using their own computing devices.
    • IOC-1.E.4 Crowdsourcing is the practice of obtaining input or information from a large number of people via the Internet.
    • IOC-1.E.5 Human capabilities can be enhanced by collaboration via computing.
    • IOC-1.E.6 Crowdsourcing offers new models for collaboration, such as connecting businesses or social causes with funding.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-1): Meskipun inovasi komputasi biasanya dirancang untuk mencapai tujuan tertentu, inovasi tersebut dapat memiliki konsekuensi yang tidak disengaja.

    Tujuan Pembelajaran IOC-1.E: Jelaskan bagaimana partisipasi manusia dalam proses pemecahan masalah berskala besar. [Keterampilan 1.C]

    • IOC-1.E.1 Akses luas terhadap informasi dan data publik memfasilitasi identifikasi masalah, pengembangan solusi, dan penyebaran hasil.
    • IOC-1.E.2 Sains telah terpengaruh oleh penggunaan pendekatan terdistribusi dan "sains warga" untuk memecahkan masalah ilmiah.
    • IOC-1.E.3 Sains warga adalah penelitian ilmiah yang dilakukan seluruh atau sebagian oleh individu yang terdistribusi, banyak di antaranya mungkin bukan ilmuwan, yang menyumbangkan data relevan untuk penelitian menggunakan perangkat komputasi mereka sendiri.
    • IOC-1.E.4 Crowdsourcing adalah praktik mendapatkan masukan atau informasi dari sejumlah besar orang melalui Internet.
    • IOC-1.E.5 Kemampuan manusia dapat ditingkatkan melalui kolaborasi借助 komputasi.
    • IOC-1.E.6 Crowdsourcing menawarkan model kolaborasi baru, seperti menghubungkan bisnis atau causes sosial dengan pendanaan.

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

    English

    Crowdsourcing 众包 obtains input, ideas, or funding from a large group of people, usually online. It harnesses the knowledge and effort of many – mapping projects, product reviews, citizen science, and crowdfunding all rely on it. The Internet makes crowdsourcing possible at a scale and speed never before achievable, letting a project draw on contributors worldwide.

    Bahasa Indonesia

    Crowdsourcing memperoleh masukan, ide, atau pendanaan dari sekelompok besar orang, biasanya secara daring. Ini memanfaatkan pengetahuan dan usaha banyak orang – proyek pemetaan, ulasan produk, sains warga, dan crowdfunding semuanya bergantung padanya. Internet memungkinkan crowdsourcing dilakukan dalam skala dan kecepatan yang belum pernah tercapai sebelumnya, memungkinkan sebuah proyek menarik kontributor dari seluruh dunia.

    Sesi edit Wikipedia: crowdsourcing menggabungkan kerja banyak orang menjadi sumber daya bersama
    Sesi edit Wikipedia: crowdsourcing menggabungkan kerja banyak orang menjadi sumber daya bersama
    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Crowdsourcing/ˈkraʊdsɔːsɪŋ/ Crowdsourcing
    Intellectual property/ˌɪntəˈlektʃuːəl ˈprɒpəti/ keilikan intelektual
    copyright/ˈkɒpɪraɪt/ hak cipta
    5.5

    Legal and Ethical Concerns · ⁨Kekhawatiran Hukum dan Etika⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.F: Explain how the use of computing can raise legal and ethical concerns. [Skill 5.E]

    • IOC-1.F.1 Material created on a computer is the intellectual property of the creator or an organization.
    • IOC-1.F.2 Ease of access and distribution of digitized information raises intellectual property concerns regarding ownership, value, and use.
    • IOC-1.F.3 Measures should be taken to safeguard intellectual property.
    • IOC-1.F.4 The use of material created by someone else without permission and presented as one's own is plagiarism and may have legal consequences.
    • IOC-1.F.5 Some examples of legal ways to use materials created by someone else include:
      • Creative Commons—a public copyright license that enables the free distribution of an otherwise copyrighted work. This is used when the content creator wants to give others the right to share, use, and build upon the work they have created.
      • open source—programs that are made freely available and may be redistributed and modified
      • open access—online research output free of any and all restrictions on access and free of many restrictions on use, such as copyright or license restrictions
    • IOC-1.F.6 The use of material created by someone other than you should always be cited.
    • IOC-1.F.7 Creative Commons, open source, and open access have enabled broad access to digital information.
    • IOC-1.F.8 As with any technology or medium, using computing to harm individuals or groups of people raises legal and ethical concerns.
    • IOC-1.F.9 Computing can play a role in social and political issues, which in turn often raises legal and ethical concerns.
    • IOC-1.F.10 The digital divide raises ethical concerns around computing.
    • IOC-1.F.11 Computing innovations can raise legal and ethical concerns. Some examples of these include:
      • the development of software that allows access to digital media downloads and streaming
      • the development of algorithms that include bias
      • the existence of computing devices that collect and analyze data by continuously monitoring activities
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-1): Meskipun inovasi komputasi biasanya dirancang untuk mencapai tujuan tertentu, inovasi tersebut dapat memiliki konsekuensi yang tidak disengaja.

    Tujuan Pembelajaran IOC-1.F: Jelaskan bagaimana penggunaan komputasi dapat memunculkan kekhawatiran hukum dan etika. [Keterampilan 5.E]

    • IOC-1.F.1 Materi yang dibuat di komputer adalah properti intelektual dari pembuatnya atau organisasi.
    • IOC-1.F.2 Kemudahan akses dan distribusi informasi yang didigitalkan memunculkan kekhawatiran mengenai properti intelektual terkait kepemilikan, nilai, dan penggunaan.
    • IOC-1.F.3 Langkah-langkah harus diambil untuk melindungi properti intelektual.
    • IOC-1.F.4 Penggunaan materi karya orang lain tanpa izin dan dikemas seolah-olah milik sendiri adalah plagiasi dan dapat memiliki konsekuensi hukum.
    • IOC-1.F.5 Beberapa contoh penggunaan materi karya orang lain secara legal meliputi:
      • Creative Commons—lisensi hak cipta publik yang memungkinkan distribusi bebas karya yang pada umumnya dilindungi hak cipta. Hal ini digunakan ketika pencipta konten ingin memberikan orang lain hak untuk membagikan, menggunakan, dan mengembangkan kembali karya yang telah mereka buat.
      • open source—program yang dibuat tersedia secara bebas dan dapat didistribusikan ulang serta dimodifikasi
      • open access—hasil penelitian daring yang bebas dari segala batasan akses dan bebas dari banyak batasan penggunaan, seperti batasan hak cipta atau lisensi
    • IOC-1.F.6 Penggunaan materi yang dibuat oleh orang lain selain Anda harus selalu dicantumkan sumbernya.
    • IOC-1.F.7 Creative Commons, open source, dan open access telah memungkinkan akses luas terhadap informasi digital.
    • IOC-1.F.8 Seperti halnya teknologi atau media lainnya, penggunaan komputasi untuk membahayakan individu atau kelompok orang menimbulkan pertanyaan hukum dan etika.
    • IOC-1.F.9 Komputasi dapat berperan dalam isu sosial dan politik, yang pada gilirannya sering kali menimbulkan pertanyaan hukum dan etika.
    • IOC-1.F.10 Kesenjangan digital menimbulkan pertanyaan etika seputar komputasi.
    • IOC-1.F.11 Inovasi komputasi dapat menimbulkan pertanyaan hukum dan etika. Beberapa contoh dari hal tersebut meliputi:
      • pengembangan perangkat lunak yang memungkinkan akses ke unduhan media digital dan streaming
      • pengembangan algoritma yang mencakup bias
      • keberadaan perangkat komputasi yang mengumpulkan dan menganalisis data dengan memantau aktivitas secara terus-menerus

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

    English

    Computing raises questions of law and ethics:

    • Intellectual property 知识产权 and copyright 版权 protect creators' work; using it may require permission or a license. Open-source 开源 and Creative Commons licenses let creators share work under stated terms.
    • Plagiarism 抄袭 – using others' work as your own – is unethical and often illegal.
    • Collecting and using personal data raises privacy questions about consent and misuse.

    The three "open" terms, which are not the same thing

    Term What it means
    open source programs that are made freely available and may be redistributed and modified by anyone. The licence grants those rights explicitly — free of charge is not the same as open source, and a free program you may not modify is not open source.
    open access 开放获取 research and other content made available online without charge, so a reader does not need a subscription. It says nothing about the right to modify.
    Creative Commons 知识共享 a family of licences a creator applies to their own work to grant specific permissions in advance — for example "you may reuse this if you credit me" or "you may reuse this but not commercially".

    All three are ways of granting rights the creator holds by default under copyright. That is why they matter for the exam: copyright is automatic, so anything not explicitly licensed is restricted, and using it needs permission.

    Just because something is technically possible does not make it legal or ethical.

    What is recorded while you browse

    Two collection routes the CED names, and neither needs you to type anything:

    • Websites can record and maintain a history of the individuals who have viewed their pages — which pages, when, how long, and from which device.
    • Search engines can use your search history to suggest websites, and to sell targeted marketing: the advertisement follows the search, which is why a product looked up once then appears for weeks.

    Neither is inherently malicious, and both are the mechanism behind services people find useful. The point the exam wants is that data collected for one purpose can be combined and used for another, often without the person realising they agreed to it.

    Bahasa Indonesia
    Ruang kontrol CCTV: sistem pengawasan menukar keuntungan keselamatan dengan kekhawatiran privasi
    Ruang kontrol CCTV: sistem pengawasan menukar keuntungan keselamatan dengan kekhawatiran privasi

    Komputasi menimbulkan pertanyaan hukum dan etika:

    • Hak kekayaan intelektual dan hak cipta melindungi karya pencipta; menggunakannya mungkin memerlukan izin atau lisensi. Lisensi open-source dan Creative Commons memungkinkan pencipta membagikan karyanya sesuai ketentuan yang ditetapkan.
    • Plagiarisme – menggunakan karya orang lain seolah-olah milik sendiri – adalah tindakan tidak etis dan sering kali ilegal.
    • Pengumpulan dan penggunaan data pribadi menimbulkan pertanyaan privasi mengenai persetujuan dan penyalahgunaan.

    Tiga istilah "terbuka", yang tidak sama artinya

    Istilah Apa artinya
    open source program yang dibuat tersedia secara bebas dan dapat didistribusikan ulang serta dimodifikasi oleh siapa pun. Lisensi memberikan hak-hak tersebut secara eksplisit – gratis secara finansial bukanlah hal yang sama dengan open source, dan program gratis yang tidak dapat Anda modifikasi bukanlah open source.
    open access penelitian dan konten lainnya yang dibuat tersedia secara daring tanpa biaya, sehingga pembaca tidak perlu berlangganan. Hal ini tidak berbicara tentang hak untuk memodifikasi.
    Creative Commons keluarga lisensi yang diterapkan pencipta pada karyanya sendiri untuk memberikan izin spesifik secaraล่วงหน้า – misalnya "Anda boleh menggunakan kembali ini jika Anda atribusikan kepada saya" atau "Anda boleh menggunakan kembali ini tetapi tidak untuk tujuan komersial".

    Ketiganya adalah cara memberikan hak yang dimiliki pencipta secara default di bawah hak cipta. Itulah mengapa hal ini penting untuk ujian: hak cipta bersifat otomatis, jadi apa pun yang tidak dilisensikan secara eksplisit dibatasi, dan menggunakannya memerlukan izin.

    Hanya karena sesuatu secara teknis mungkin tidak berarti hal itu legal atau etis.

    Apa yang dicatat saat Anda menjelajah

    Dua jalur pengumpulan yang disebutkan CED, dan keduanya tidak memerlukan Anda mengetik apa pun:

    • Situs web dapat mencatat dan menyimpan riwayat individu yang telah melihat halaman mereka – halaman mana, kapan, berapa lama, dan dari perangkat apa.
    • Mesin pencari dapat menggunakan riwayat pencarian Anda untuk menyarankan situs web, dan untuk menjual pemasaran tertarget: iklan mengikuti jejak pencarian, itulah sebabnya produk yang pernah dicari sekali kemudian muncul selama berminggu-minggu.

    Keduanya tidak secara inheren jahat, dan keduanya merupakan mekanisme di balik layanan yang dianggap berguna oleh orang-orang. Poin yang ingin diuji adalah bahwa data yang dikumpulkan untuk satu tujuan dapat digabungkan dan digunakan untuk tujuan lain, sering kali tanpa disadari oleh orang tersebut bahwa mereka telah menyetujuinya.

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    Open-source/ˈəʊpən sɔːs/ Open-source
    Plagiarism/ˈpleɪdʒərɪzəm/ Plagiarisme
    open access/ˈəʊpən ˈækses/ akses terbuka
    Creative Commons/kriːˈeɪtɪv ˈkɒmənz/ Creative Commons
    Personally identifiable information (PII)/ˈpɜːsənəli aɪˈdentɪfaɪəbl ˌɪnfəˈmeɪʃn/ Informasi yang dapat diidentifikasi secara pribadi (PII)
    identity theft/aɪˈdentɪti θeft/ pencurian identitas
    open source/ˈəʊpən sɔːs/ open source
    5.6

    Safe Computing · ⁨Komputasi Aman⁩

    Syllabus · ⁨Silabus⁩
    English

    Enduring Understanding (IOC-2): The use of computing innovations may involve risks to personal safety and identity.

    Learning Objective IOC-2.A: Describe the risks to privacy from collecting and storing personal data on a computer system. [Skill 5.D]

    • IOC-2.A.1 Personally identifiable information (PII) is information about an individual that identifies, links, relates, or describes them. Examples of PII include:
      • Social Security number
      • age
      • race
      • phone number(s)
      • medical information
      • financial information
      • biometric data
    • IOC-2.A.2 Search engines can record and maintain a history of searches made by users.
    • IOC-2.A.3 Websites can record and maintain a history of individuals who have viewed their pages.
    • IOC-2.A.4 Devices, websites, and networks can collect information about a user's location.
    • IOC-2.A.5 Technology enables the collection, use, and exploitation of information about, by, and for individuals, groups, and institutions.
    • IOC-2.A.6 Search engines can use search history to suggest websites or for targeted marketing.
    • IOC-2.A.7 Disparate personal data, such as geolocation, cookies, and browsing history, can be aggregated to create knowledge about an individual.
    • IOC-2.A.8 PII and other information placed online can be used to enhance a user's online experiences.
    • IOC-2.A.9 PII stored online can be used to simplify making online purchases.
    • IOC-2.A.10 Commercial and governmental curation of information may be exploited if privacy and other protections are ignored.
    • IOC-2.A.11 Information placed online can be used in ways that were not intended and that may have a harmful impact. For example, an email message may be forwarded, tweets can be retweeted, and social media posts can be viewed by potential employers.
    • IOC-2.A.12 PII can be used to stalk or steal the identity of a person or to aid in the planning of other criminal acts.
    • IOC-2.A.13 Once information is placed online, it is difficult to delete.
    • IOC-2.A.14 Programs can collect your location and record where you have been, how you got there, and how long you were at a given location.
    • IOC-2.A.15 Information posted to social media services can be used by others. Combining information posted on social media and other sources can be used to deduce private information about you.

    Learning Objective IOC-2.B: Explain how computing resources can be protected and can be misused. [Skill 5.E]

    • IOC-2.B.1 Authentication measures protect devices and information from unauthorized access. Examples of authentication measures include strong passwords and multifactor authentication.
    • IOC-2.B.2 A strong password is something that is easy for a user to remember but would be difficult for someone else to guess based on knowledge of that user.
    • IOC-2.B.3 Multifactor authentication is a method of computer access control in which a user is only granted access after successfully presenting several separate pieces of evidence to an authentication mechanism, typically in at least two of the following categories: knowledge (something they know), possession (something they have), and inherence (something they are).
    • IOC-2.B.4 Multifactor authentication requires at least two steps to unlock protected information; each step adds a new layer of security that must be broken to gain unauthorized access.
    • IOC-2.B.5 Encryption is the process of encoding data to prevent unauthorized access. Decryption is the process of decoding the data. Two common encryption approaches are:
      • Symmetric key encryption involves one key for both encryption and decryption.
      • Public key encryption pairs a public key for encryption and a private key for decryption. The sender does not need the receiver's private key to encrypt a message, but the receiver's private key is required to decrypt the message.
      • Exclusion statement (EK IOC-2.B.5): Specific mathematical procedures for encryption and decryption are beyond the scope of this course and the AP Exam.
    • IOC-2.B.6 Certificate authorities issue digital certificates that validate the ownership of encryption keys used in secure communications and are based on a trust model.
    • IOC-2.B.7 Computer virus and malware scanning software can help protect a computing system against infection.
    • IOC-2.B.8 A computer virus is a malicious program that can copy itself and gain access to a computer in an unauthorized way. Computer viruses often attach themselves to legitimate programs and start running independently on a computer.
    • IOC-2.B.9 Malware is software intended to damage a computing system or to take partial control over its operation.
    • IOC-2.B.10 All real-world systems have errors or design flaws that can be exploited to compromise them. Regular software updates help fix errors that could compromise a computing system.
    • IOC-2.B.11 Users can control the permissions programs have for collecting user information. Users should review the permission settings of programs to protect their privacy.

    Learning Objective IOC-2.C: Explain how unauthorized access to computing resources is gained. [Skill 5.E]

    • IOC-2.C.1 Phishing is a technique that attempts to trick a user into providing personal information. That personal information can then be used to access sensitive online resources, such as bank accounts and emails.
    • IOC-2.C.2 Keylogging is the use of a program to record every keystroke made by a computer user in order to gain fraudulent access to passwords and other confidential information.
    • IOC-2.C.3 Data sent over public networks can be intercepted, analyzed, and modified. One way that this can happen is through a rogue access point.
    • IOC-2.C.4 A rogue access point is a wireless access point that gives unauthorized access to secure networks.
    • IOC-2.C.5 A malicious link can be disguised on a web page or in an email message.
    • IOC-2.C.6 Unsolicited emails, attachments, links, and forms in emails can be used to compromise the security of a computing system. These can come from unknown senders or from known senders whose security has been compromised.
    • IOC-2.C.7 Untrustworthy (often free) downloads from freeware or shareware sites can contain malware.
    Bahasa Indonesia

    Pemahaman Berkelanjutan (IOC-2): Penggunaan inovasi komputasi mungkin melibatkan risiko terhadap keselamatan pribadi dan identitas.

    Tujuan Pembelajaran IOC-2.A: Jelaskan risiko terhadap privasi dari pengumpulan dan penyimpanan data pribadi pada sistem komputer. [Keterampilan 5.D]

    • IOC-2.A.1 Informasi yang dapat mengidentifikasi pribadi (PII) adalah informasi tentang seseorang yang mengidentifikasi, menghubungkan, berkaitan, atau menggambarkan mereka. Contoh PII meliputi:
      • Nomor Jaminan Sosial
      • usia
      • ras
      • nomor telepon
      • informasi medis
      • informasi keuangan
      • data biometrik
    • IOC-2.A.2 Mesin pencari dapat mencatat dan menyimpan riwayat pencarian yang dilakukan pengguna.
    • IOC-2.A.3 Situs web dapat mencatat dan menyimpan riwayat individu yang telah melihat halaman mereka.
    • IOC-2.A.4 Perangkat, situs web, dan jaringan dapat mengumpulkan informasi tentang lokasi pengguna.
    • IOC-2.A.5 Teknologi memungkinkan pengumpulan, penggunaan, dan eksploitasi informasi tentang, oleh, dan untuk individu, kelompok, dan institusi.
    • IOC-2.A.6 Mesin pencari dapat menggunakan riwayat pencarian untuk menyarankan situs web atau untuk pemasaran tertarget.
    • IOC-2.A.7 Data pribadi yang berbeda, seperti geolokasi, cookie, dan riwayat penelusuran, dapat digabungkan untuk menciptakan pengetahuan tentang seorang individu.
    • IOC-2.A.8 PII dan informasi lainnya yang diletakkan di online dapat digunakan untuk meningkatkan pengalaman daring pengguna.
    • IOC-2.A.9 PII yang disimpan secara daring dapat digunakan untuk menyederhanakan pembelian daring.
    • IOC-2.A.10 Kurasi informasi oleh pihak komersial dan pemerintah dapat dieksploitasi jika privasi dan perlindungan lainnya diabaikan.
    • IOC-2.A.11 Informasi yang diletakkan di online dapat digunakan dengan cara yang tidak diinginkan dan yang mungkin berdampak merugikan. Sebagai contoh, pesan email dapat diteruskan, tweet dapat ditweet ulang, dan postingan media sosial dapat dilihat oleh calon pemberi kerja.
    • IOC-2.A.12 PII dapat digunakan untuk memusuhi atau mencuri identitas seseorang atau untuk membantu dalam perencanaan tindak pidana lainnya.
    • IOC-2.A.13 Setelah informasi diletakkan di online, sulit untuk menghapusnya.
    • IOC-2.A.14 Program dapat mengumpulkan lokasi Anda dan mencatat tempat Anda pernah berada, bagaimana Anda sampai di sana, dan berapa lama Anda berada di suatu lokasi tertentu.
    • IOC-2.A.15 Informasi yang diposting ke layanan media sosial dapat digunakan oleh orang lain. Menggabungkan informasi yang diposting di media sosial dan sumber lain dapat digunakan untuk menyimpulkan informasi pribadi tentang Anda.

    Tujuan Pembelajaran IOC-2.B: Jelaskan bagaimana sumber daya komputasi dapat dilindungi dan dapat disalahgunakan. [Keterampilan 5.E]

    • IOC-2.B.1 Tindakan autentikasi melindungi perangkat dan informasi dari akses yang tidak sah. Contoh tindakan autentikasi termasuk kata sandi yang kuat dan autentikasi multifaktor.
    • IOC-2.B.2 Kata sandi yang kuat adalah sesuatu yang mudah diingat oleh pengguna tetapi akan sulit ditebak oleh orang lain berdasarkan pengetahuan tentang pengguna tersebut.
    • IOC-2.B.3 Autentikasi multifaktor adalah metode kontrol akses komputer di mana pengguna hanya diberikan akses setelah berhasil menunjukkan beberapa bukti terpisah kepada mekanisme autentikasi, biasanya dalam setidaknya dua kategori berikut: pengetahuan (sesuatu yang mereka ketahui), kepemilikan (sesuatu yang mereka miliki), dan inheren (sesuatu yang melekat pada diri mereka).
    • IOC-2.B.4 Autentikasi multifaktor memerlukan setidaknya dua langkah untuk membuka kunci informasi yang dilindungi; setiap langkah menambahkan lapisan keamanan baru yang harus ditembus untuk mendapatkan akses yang tidak sah.
    • IOC-2.B.5 Enkripsi adalah proses pengkodean data untuk mencegah akses yang tidak sah. Dekripsi adalah proses dekoding data. Dua pendekatan enkripsi yang umum adalah:
      • Enkripsi kunci simetris melibatkan satu kunci untuk kedua enkripsi dan dekripsi.
      • Enkripsi kunci publik memasangkan kunci publik untuk enkripsi dan kunci privat untuk dekripsi. Pengirim tidak perlu memiliki kunci privat penerima untuk mengenkripsi pesan, tetapi kunci privat penerima diperlukan untuk mendekripsi pesan.
      • Pengecualian pernyataan (EK IOC-2.B.5): Prosedur matematika spesifik untuk enkripsi dan dekripsi berada di luar cakupan kursus ini dan Ujian AP.
    • IOC-2.B.6 Otoritas sertifikat menerbitkan sertifikat digital yang memvalidasi kepemilikan kunci enkripsi yang digunakan dalam komunikasi aman dan didasarkan pada model kepercayaan.
    • IOC-2.B.7 Perangkat lunak pemindaian virus komputer dan malware dapat membantu melindungi sistem komputasi dari infeksi.
    • IOC-2.B.8 Virus komputer adalah program jahat yang dapat menyalin dirinya sendiri dan mendapatkan akses ke komputer secara tidak sah. Virus komputer sering kali menempel pada program yang sah dan mulai berjalan secara independen di komputer.
    • IOC-2.B.9 Malware adalah perangkat lunak yang dimaksudkan untuk merusak sistem komputasi atau mengambil kendali parsial atas operasinya.
    • IOC-2.B.10 Semua sistem dunia nyata memiliki kesalahan atau cacat desain yang dapat dieksploitasi untuk membahayakan mereka. Pembaruan perangkat lunak berkala membantu memperbaiki kesalahan yang dapat membahayakan sistem komputasi.
    • IOC-2.B.11 Pengguna dapat mengontrol izin yang dimiliki program untuk mengumpulkan informasi pengguna. Pengguna harus meninjau pengaturan izin program untuk melindungi privasi mereka.

    Tujuan Pembelajaran IOC-2.C: Jelaskan bagaimana akses tidak sah ke sumber daya komputasi diperoleh. [Keterampilan 5.E]

    • IOC-2.C.1 Phishing adalah teknik yang mencoba menipu pengguna agar memberikan informasi pribadi. Informasi pribadi tersebut kemudian dapat digunakan untuk mengakses sumber daya online sensitif, seperti rekening bank dan email.
    • IOC-2.C.2 Keylogging adalah penggunaan program untuk merekam setiap ketikan yang dilakukan oleh pengguna komputer guna mendapatkan akses curang terhadap kata sandi dan informasi rahasia lainnya.
    • IOC-2.C.3 Data yang dikirim melalui jaringan publik dapat disadap, dianalisis, dan dimodifikasi. Salah satu cara hal ini terjadi adalah melalui titik akses nakal.
    • IOC-2.C.4 Titik akses nakal adalah titik akses nirkabel yang memberikan akses tidak sah ke jaringan yang aman.
    • IOC-2.C.5 Tautan jahat dapat disembunyikan di halaman web atau dalam pesan email.
    • IOC-2.C.6 Email tak diundang, lampiran, tautan, dan formulir dalam email dapat digunakan untuk membahayakan keamanan sistem komputasi. Hal ini dapat berasal dari pengirim yang tidak dikenal atau dari pengirim yang dikenal namun keamanannya telah diretas.
    • IOC-2.C.7 Unduhan yang tidak dapat dipercaya (sering kali gratis) dari situs freeware atau shareware dapat mengandung malware.

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

    English

    Protecting personal data is a shared responsibility. Key ideas:

    • Personally identifiable information (PII) 个人身份信息 (name, address, ID numbers) should be shared carefully, because it can be misused for identity theft 身份盗窃.
    • Threats include phishing 网络钓鱼 (tricking you into revealing information), malware 恶意软件, and weak passwords.
    • A malicious link can be disguised on a web page or in an email message: the text you see and the address it actually goes to are separate, so a link reading www.yourbank.com can point anywhere. Hover to see the real destination before clicking, and be most suspicious of a link that arrives unexpectedly and creates urgency.
    • Defenses include strong, unique passwords, multi-factor authentication 多因素认证, encryption 加密 (scrambling data so only authorized people can read it), and keeping software updated.

    Encryption is the central tool for keeping data private in transit and storage. Being a responsible computer user means protecting your own and others' information.

    Exam skill: be able to identify the beneficial and harmful effects of a given innovation, explain a privacy or security risk, and name a safe-computing practice that addresses it.

    Worked example. A hiring algorithm is trained on a company's past hires, who were mostly one group, and it then rejects qualified applicants from other groups. Name the problem and its cause: this is computing bias, caused by biased training data — the model learned the historical pattern instead of a fair rule. A full-mark exam answer states the harm (qualified people are unfairly rejected) and its cause (the bias came from the data, not the code).

    Bahasa Indonesia

    Melindungi data pribadi adalah tanggung jawab bersama. Ide-ide kunci:

    Enkripsi mengacak teks biasa dengan kunci; hanya kunci yang bisa mendekripsinya
    Enkripsi mengacak teks biasa dengan kunci; hanya kunci yang bisa mendekripsinya
    • Informasi yang dapat mengidentifikasi diri (PII) (nama, alamat, nomor identifikasi) harus dibagikan dengan hati-hati, karena dapat disalahgunakan untuk penyalahgunaan identitas.
    • Ancaman termasuk phishing (menipu Anda agar mengungkapkan informasi), malware, dan kata sandi yang lemah.
    • Tautan berbahaya dapat disembunyikan di halaman web atau dalam pesan email: teks yang Anda lihat dan alamat yang sebenarnya dituju adalah terpisah, sehingga tautan bertuliskan www.yourbank.com dapat mengarah ke mana saja. Arahkan kursor untuk melihat tujuan asli sebelum mengklik, dan paling curigalah terhadap tautan yang tiba-tiba datang dan menciptakan urgensi.
    • Pertahanan meliputi kata sandi yang kuat dan unik, otentikasi multi-faktor, enkripsi (mengacak data agar hanya orang berwenang yang dapat membacanya), dan pembaruan perangkat lunak.

    Enkripsi adalah alat utama untuk menjaga kerahasiaan data saat transit dan penyimpanan. Menjadi pengguna komputer yang bertanggung jawab berarti melindungi informasi sendiri maupun orang lain.

    Keterampilan ujian: mampu mengidentifikasi efek menguntungkan dan merugikan dari sebuah inovasi tertentu, menjelaskan risiko privasi atau keamanan, dan menyebutkan praktik komputasi aman yang mengatasinya.

    Contoh terpecahkan. Algoritma perekrutan dilatih pada rekrutan masa lalu perusahaan, yang sebagian besar berasal dari satu kelompok, lalu menolak pelamar yang memenuhi kualifikasi dari kelompok lain. Sebutkan masalah dan penyebabnya: ini adalah bias komputasi, disebabkan oleh data pelatihan yang bias — model mempelajari pola historis alih-alih aturan yang adil. Jawaban ujian skor penuh menyatakan kerugian (orang yang memenuhi kualifikasi ditolak secara tidak adil) dan penyebabnya (bias berasal dari data, bukan kode).

    Explore · ⁨Jelajahi⁩

    Scramble a message with encryption · ⁨Kacaukan pesan dengan enkripsi⁩

    Encryption protects data by scrambling it with a key; only someone with the key can read it back. This simple Caesar cipher shifts each letter — real encryption uses the same idea with far stronger keys to keep passwords and messages safe. · ⁨Enkripsi melindungi data dengan mengacaknya dengan kunci; hanya seseorang dengan kunci tersebut dapat membacanya kembali. Caesar cipher sederhana ini menggeser setiap huruf — enkripsi nyata menggunakan ide yang sama dengan kunci jauh lebih kuat untuk menjaga kata sandi dan pesan tetap aman.⁩

    Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
    English Bahasa Indonesia
    phishing/ˈfɪʃɪŋ/ phishing
    malware/ˈmælweə/ malware
    multi-factor authentication/ˈmʌlti ˈfæktə ɔːˌθentɪˈkeɪʃn/ autentikasi multi-faktor
    encryption/enˈkrɪpʃn/ enkripsi
    5.6

    Exam tips · ⁨Tips ujian⁩

    English
    • Argue both the beneficial and harmful effects of a computing innovation — a balanced answer scores best.
    • Use correct terms for data concerns: PII, privacy, security, and algorithmic bias.
    • Explain how crowdsourcing and large data sets create value and raise new risks.
    • Distinguish the digital divide (access) from bias (fairness) and give a concrete example of each.
    • Tie every claim to a specific innovation and effect, as the written response demands.
    Bahasa Indonesia
    • Argumen keduanya efek menguntungkan dan merugikan dari sebuah inovasi komputasi — jawaban seimbang mendapat nilai terbaik.
    • Gunakan istilah yang benar untuk isu data: PII, privasi, keamanan, dan bias algoritma.
    • Jelaskan bagaimana crowdsourcing dan kumpulan data besar menciptakan nilai dan memunculkan risiko baru.
    • Bedakan kesenjangan digital (akses) dari bias (keadilan) dan berikan contoh konkret masing-masing.
    • Hubungkan setiap klaim dengan inovasi dan efek spesifik, seperti yang diminta dalam respons tertulis.

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

IGCSE, A-Level & AP