Lompat ke konten
Materi

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

    Pengembangan Kreatif

    Tonton pelajaran
    1.1

    Kolaborasi

    Silabus

    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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Teka-teki yang sedang disusun: kolaborasi dan desain modular merangkai solusi bersama
    Sebuah puzzle jigsaw sedang berlangsung: kolaborasi dan desain modular menyusun solusi bersama

    Komputasi adalah aktivitas kolaboratif. Bekerja dalam tim membawa lebih banyak perspektif, menangkap lebih banyak kesalahan, dan menghasilkan program yang lebih baik daripada bekerja sendirian. Kolaborasi yang baik menggunakan pembangunan konsensus, komunikasi jelas, dan kekuatan masing-masing anggota. Pemrograman berpasangan – dua orang di satu komputer, satu mengetik dan satu meninjau – adalah praktik umum. Pada ujian, Anda harus dapat menjelaskan bagaimana kolaborasi meningkatkan program (lebih banyak ide, lebih sedikit bug, pengujian lebih luas).

    1.2

    Fungsi dan Tujuan Program

    Silabus

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Setiap program ditulis untuk tujuan – ia memecahkan masalah atau mengejar minat. Program mengambil input, memprosesnya, dan menghasilkan output. Input bisa berasal dari pengguna, perangkat, file, atau program lain; output bisa berupa visual, audio, teks, atau sinyal ke perangkat. Mampu menyatakan tujuan program, dan mendeskripsikan input serta outputnya dengan jelas, adalah keterampilan inti (dan bagian dari tugas kinerja Create).

    Setiap program terurai menjadi input, pemrosesan, dan output
    Setiap program terurai menjadi input, pemrosesan, dan output
    Setiap program mengikuti model input-pemrosesan-output
    Setiap program mengikuti model input-pemrosesan-output
    Jelajahi

    Jelajahi model input → pemrosesan → output

    Telusuri model IPO. Setiap program menerima input tertentu, melakukan pemrosesan padanya dengan mengikuti instruksinya, lalu menghasilkan output — telusuri contoh aplikasi cuaca sepanjang pipa.

    Kosa kata Latih
    English Bahasa Indonesia
    collaborative/kəˈlæbrətɪv/ kolaboratif
    Pair programming/peə ˈprəʊɡræmɪŋ/ pemrograman berpasangan
    input/ˈɪnpʊt/ input
    output/ˈaʊtpʊt/ output
    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.3

    Perancangan dan Pengembangan Program

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Seorang programmer melakukan debugging di stasiun kerja multi-monitor — desain dan pengujian iteratif
    Seorang programmer melakukan debugging di stasiun kerja multi-monitor — desain dan pengujian iteratif

    Program dibangun melalui proses iteratif, bukan dalam satu garis lurus: selidiki masalah dan pengguna, rancang (sering dengan diagram atau rencana tertulis), implementasikan dalam kode, dan uji – lalu ulangi. Masalah besar dipecah menjadi bagian-bagian yang lebih kecil (dekomposisi). Komentar dan penamaan yang jelas mendokumentasikan desain agar orang lain (dan diri Anda di masa depan) dapat memahaminya. Pengembangan bersifat inkremental – bangun dan uji sebagian kecil, lalu tambahkan bagian berikutnya.

    Tahapan pengembangan program, dengan pengujian memberikan umpan balik untuk memperbaiki dan menyempurnakan
    Tahapan pengembangan program, dengan pengujian memberikan umpan balik untuk memperbaiki dan menyempurnakan
    Perangkat lunak dibangun melalui proses pengembangan yang iteratif dan inkremental
    Perangkat lunak dibangun melalui proses pengembangan yang iteratif dan inkremental

    Menyelidiki apa yang sebenarnya dibutuhkan pengguna

    Sebelum kode apa pun ditulis, pengembang menyelidiki masalah dan orang-orang yang akan menggunakan program tersebut. Tiga cara melakukannya:

    • survei dikirimkan kepada calon pengguna, yang mengumpulkan data dari banyak orang dengan cepat;
    • wawancara dan observasi langsung terhadap pengguna saat melakukan tugas secara manual;
    • mempelajari solusi yang ada untuk melihat apa yang sudah berfungsi dan apa yang membuat frustrasi masyarakat.

    Temuan diubah menjadi sebuah desain. Dua artefak melakukan hal itu: daftar persyaratan program yang menyatakan secara eksak apa yang harus dilakukan program, dan diagram yang mewakili tata letak antarmuka pengguna — sketsa yang menunjukkan kontrol mana yang muncul di mana, dan apa yang dilakukan setiap kontrolnya saat digunakan. Merancang antarmuka di atas kertas terlebih dahulu lebih murah daripada menemukan setelah pengkodean bahwa tombol-tombol berada di tempat yang salah.

    Peristiwa, dan program yang menunggu

    Tidak semua program berjalan lurus dari atas ke bawah. Sebuah peristiwa dihasilkan ketika sebuah tombol ditekan, mouse diklik, program dimulai, atau tindakan terdefinisi lainnya terjadi – dan peristiwa mengubah alur eksekusi: program menghentikan apa yang sedang dilakukannya dan menjalankan kode yang melekat pada peristiwa tersebut, yang disebut penangan peristiwa.

    Itulah sebabnya program dengan antarmuka grafis dapat terlihat tidak melakukan apa-apa: ia sedang menunggu peristiwa berikutnya. Urutan kedatangan peristiwa-peristiwa tersebut ditentukan oleh pengguna, bukan oleh pemrogram, sehingga program yang sama dapat menjalankan blok-bloknya dalam urutan berbeda setiap kali digunakan.

    Jelajahi

    Berputar melalui proses pengembangan iteratif

    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.

    Kosa kata 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

    Mengidentifikasi dan Memperbaiki Kesalahan

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Bug adalah kesalahan dalam program; debugging adalah menemukan dan memperbaikinya. Tiga jenis:

    Tabel jejak mencatat nilai setiap variabel saat program berjalan, untuk menemukan bug
    Tabel jejak mencatat nilai setiap variabel saat program berjalan, untuk menemukan bug
    • kesalahan sintaks melanggar aturan bahasa, sehingga program tidak akan berjalan;
    • kesalahan waktu berjalan membuat program crash saat berjalan (misalnya membagi dengan nol);
    • kesalahan logika membiarkannya berjalan tetapi menghasilkan hasil yang salah.

    Temukan bug dengan menguji dengan input yang berbeda, menambahkan pernyataan print untuk melihat nilai, dan menelusuri kode secara manual. Pilih input pengujian secara sengaja: mereka harus menunjukkan hasil yang diharapkan berbeda pada atau tepat di luar batas ekstrem – nilai minimum dan maksimum yang harus diterima program, serta nilai tepat di luar masing-masing dari keduanya. Program yang bekerja pada data biasa sering gagal pada daftar kosong, nol, atau nilai satu lewat akhir rentang, jadi itu adalah input yang layak dicoba pertama kali. Memperbaiki satu bug sekaligus dan menguji ulang adalah metode yang andal.

    Keahlian ujian: mampu menyebutkan jenis kesalahan dan menjelaskan strategi pengujian yang akan menangkapnya – tema pilihan ganda dan tugas Create yang berulang.

    Tiga jenis kesalahan pemrograman: sintaks, logika, dan waktu berjalan
    Tiga jenis kesalahan pemrograman: sintaks, logika, dan waktu berjalan

    Contoh penyelesaian. Sebuah program yang seharusnya mencetak rata-rata dari dua angka malah menjalankan avg = a + b / 2. Menelusuri urutan operasi, / dijalankan sebelum +, sehingga menghitung $a+\tfrac{b}{2}$ alih-alih rata-rata. Tambahkan tanda kurung untuk memperbaikinya: avg = (a + b) / 2. Pengujian dengan $a=4,\ b=6$ mengonfirmasi perbaikan tersebut — baris yang bermasalah menghasilkan $4+3=7$, sedangkan baris yang diperbaiki menghasilkan $\tfrac{10}{2}=5$. Pengujian dengan input yang diketahui adalah cara tepat untuk menemukan dan mengonfirmasi kesalahan logika.

    Jelajahi

    Telusuri logika permainan menebak dan temukan kesalahan logika

    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.

    1.4

    Tips ujian

    • Sebagian besar CSP dinilai melalui tugas Create dan kinerja tulis – jelaskan alasan Anda dengan jelas, bukan hanya hasilnya.
    • Pahami manfaat kolaborasi dan bagaimana perspektif yang beragam mengurangi bias dalam program.
    • Gunakan kosakata yang presisi (pengembangan iteratif, persyaratan program) saat Anda menggambarkan proses desain.
    • Berikan dan terima umpan balik secara konstruktif; berikan kredit kepada kolaborator dan sumber.
    • Pecahkan masalah besar menjadi modul-modul yang lebih kecil yang dapat dibangun secara paralel oleh tim.
  • 2

    Data

    Tonton pelajaran
    2.1

    Angka Biner

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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.

    Jelajahi

    Konversi antara biner dan desimal

    Komputer menyimpan angka dalam biner (basis 2). Setiap bit adalah pangkat dari dua; jumlahkan nilai tempat dari bit-bit 1 untuk membaca angka desimal.

    Kosa kata 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
    2.2

    Kompresi Data

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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.

    Jelajahi

    Kompres serangkaian pengulangan

    Pengkodean panjang larian adalah kompresi tanpa rugi: serangkaian panjang simbol yang sama digantikan oleh simbol dan jumlah, mengecilkan data tanpa informasi hilang.

    Kosa kata 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
    2.3

    Mengekstrak Informasi dari Data

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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.

    Kosa kata 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

    Menggunakan Program dengan Data

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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

    Tips ujian

    • 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

    Algoritma dan Pemrograman

    Tonton pelajaran

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

    3.1

    Variabel dan Atribut

    Silabus

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

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

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

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

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

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

      Teks:

      a ← expression

      Blok:

      a ← expression

      mengevaluasi expression dan kemudian menugaskan salinan hasilnya ke variabel a.

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

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

      masih menampilkan 1.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

    Jelajahi

    Lihat variabel menahan dan mengubah nilainya

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

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

    Abstraksi Data

    Silabus

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

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

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

      [value1, value2, value3, ...]

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

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

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

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

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

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

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

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

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

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

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

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

      [value1, value2, value3, ...]

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

      • Teks:

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

        Blok:

        aList ← value1, value2, value3

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

      • Teks:

        aList ← []

        Blok:

        aList ← (kosong)

        membuat daftar kosong baru dan menugaskannya ke aList.

      • Teks:

        aList ← bList

        Blok:

        aList ← bList

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

    3.3

    Ekspresi Matematika

    Silabus

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

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

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

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

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

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

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

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

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

      Teks dan Blok:

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

    Jelajahi

    Evaluasi ekspresi langkah demi langkah

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

    3.4

    String

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    Ekspresi Boolean

    Silabus

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

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

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

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

      Teks dan Blok:

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

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

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

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

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

      Teks:

      NOT condition

      Blok:

      NOT condition

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

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

      Teks:

      condition1 AND condition2

      Blok:

      condition1 AND condition2

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

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

      Teks:

      condition1 OR condition2

      Blok:

      condition1 OR condition2

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    Kondisi-kondisi ini menggerakkan setiap keputusan dan perulangan.

    Jelajahi

    Coba tabel kebenaran OR

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

    3.6

    Kondisional

    Silabus

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

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

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

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

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

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

      Teks:

      IF(condition) { <block of statements> }

      Blok:

      IF condition block of statements

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

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

      Teks:

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

      Blok:

      IF condition first block of statements ELSE second block of statements

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    Ikuti keputusan if / else

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

    3.7

    Kondisional Bersarang

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    Iterasi

    Silabus

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

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

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

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

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

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

      Teks:

      REPEAT n TIMES { <block of statements> }

      Blok:

      REPEAT n TIMES block of statements

    di mana block of statements dieksekusi sebanyak n kali.

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

      Teks:

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

      Blok:

      REPEAT UNTIL condition block of statements

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

    Jelajahi

    Jejakkan loop satu kali per laluan

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

    3.9

    Mengembangkan Algoritma

    Silabus

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

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

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

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

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

    Daftar

    Silabus

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

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

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

        Teks:

        aList[i]

        Blok:

        aList i

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

      • menugaskan nilai dari elemen daftar ke variabel

        Teks:

        x ← aList[i]

        Blok:

        x ← aList i

        menugaskan nilai dari aList[i] ke variabel x.

      • menugaskan nilai ke elemen daftar

        Teks:

        aList[i] ← x

        Blok:

        aList i ← x

        menugaskan nilai dari x ke aList[i].

        Teks:

        aList[i] ← aList[j]

        Blok:

        aList i ← aList j

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

      • menyisipkan elemen pada indeks tertentu

        Teks:

        INSERT(aList, i, value)

        Blok:

        INSERT aList, i, value

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

      • menambahkan elemen ke akhir daftar

        Teks:

        APPEND(aList, value)

        Blok:

        APPEND aList, value

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

      • menghapus elemen

        Teks:

        REMOVE(aList, i)

        Blok:

        REMOVE aList, i

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

      • menentukan panjang daftar

        Teks:

        LENGTH(aList)

        Blok:

        LENGTH aList

        bernilai jumlah elemen yang saat ini ada dalam aList.

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

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

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

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

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

      Teks:

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

      Blok:

      FOR EACH item IN aList block of statements

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

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

    Pencarian Biner

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

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

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

    Memanggil Prosedur

    Silabus

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

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

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

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

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

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

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

      procName(arg1, arg2, ...)

      sebagai cara untuk memanggil

      Teks:

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

      Blok:

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

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

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

      Teks:

      DISPLAY(expression)

      Blok:

      DISPLAY expression

      untuk menampilkan nilai expression, diikuti oleh spasi.

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

      Teks:

      RETURN(expression)

      Blok:

      RETURN expression

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

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

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

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

      Teks:

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

      Blok:

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

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

      Teks:

      INPUT()

      Blok:

      INPUT

      yang menerima nilai dari pengguna dan mengembalikan nilai input.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

    3.13

    Mengembangkan Prosedur

    Silabus

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

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

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

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

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

      Teks:

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

      Blok:

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

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

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

      Teks:

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

      Blok:

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

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

    Perpustakaan

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

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

    Nilai Acak

    Silabus

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

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

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

      Teks:

      RANDOM(a, b)

      Blok:

      RANDOM a, b

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

    3.16

    Simulasi

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    3.17

    Efisiensi Algoritmik

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    Masalah Tak Terputuskan

    Silabus

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

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

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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

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

    3.18

    Tips ujian

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

    Sistem Komputer dan Jaringan

    Tonton pelajaran
    4.1

    Internet

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Konektor Ethernet RJ45 – tautan fisik mengirimkan paket melintasi Internet
    Konektor Ethernet RJ45 – tautan fisik mengirimkan paket melintasi Internet

    Internet adalah jaringan global dari jaringan-jaringan. Data berjalan sebagai paket – potongan kecil yang dikirim secara terpisah dan dirakit kembali di tujuan. Dua hal membuatnya bekerja dalam skala besar:

    Internet adalah jaringan dunia; web adalah satu layanan yang berjalan di atasnya
    Internet adalah jaringan dunia; web adalah satu layanan yang berjalan di atasnya
    • Protokol adalah aturan yang disepakati untuk komunikasi. Alamat IP (Internet Protocol) mengidentifikasi dan merutekan paket; TCP menyusunnya sesuai urutan dan meminta ulang yang hilang; HTTP membawa halaman web; DNS menerjemahkan nama seperti example.com menjadi alamat IP.
    • Redundansi dan perutean: ada banyak jalur yang mungkin antara dua titik, jadi jika satu jalur gagal, paket mengambil jalur lain. Hal ini membuat Internet tahan-gangguan.

    Internet dirancang agar terbuka dan skala-nya dapat berkembang – dibangun di atas standar yang bisa digunakan siapa saja, sehingga tetap berfungsi saat miliaran perangkat bergabung. Bandwidth adalah jumlah data yang dapat dibawa oleh koneksi per detik.

    Jelajahi

    Bagaimana data melintasi Internet dalam paket

    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.

    Kosa kata 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
    reliability/rɪˌlaɪəˈbɪlɪti/ keandalan
    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.2

    Tahan-Gangguan

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Router Wi-Fi: gerbang lokal yang meneruskan paket menuju Internet yang lebih luas
    Router Wi-Fi: gerbang lokal yang meneruskan paket menuju Internet yang lebih luas

    Sistem bersifat tahan-gangguan jika tetap berfungsi meskipun sebagian darinya rusak. Internet mencapai hal ini melalui koneksi redundan: karena paket dapat diarahkan melalui banyak jalur, kegagalan satu router atau kabel tidak menghentikan komunikasi – lalu lintas hanya dialihkan ke jalur lain. Tahan-gangguan memerlukan sumber daya tambahan (jalur redundan) tetapi sangat meningkatkan keandalan. Satu jalur tanpa cadangan tidak tahan-gangguan.

    Penggantian paket mengirim paket melalui jalur independen, sehingga jaringan mentolerir tautan yang gagal
    Penggantian paket mengirim paket melalui jalur independen, sehingga jaringan mentolerir tautan yang gagal
    4.3

    Komputasi Paralel dan Terdistribusi

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    Rak server pusat data: komputasi terdistribusi menyebarkan pekerjaan ke banyak mesin
    Rak server pusat data: komputasi terdistribusi membagi beban kerja ke banyak mesin
    • Komputasi sekuensial menjalankan satu operasi pada satu waktu.
    • Komputasi paralel memecah tugas menjadi bagian-bagian yang berjalan secara bersamaan pada beberapa prosesor, sehingga selesai lebih cepat.
    • Komputasi terdistribusi menggunakan banyak komputer yang terhubung melalui jaringan untuk mengerjakan satu masalah – esensial untuk masalah yang terlalu besar untuk satu mesin.
    Komputasi paralel: banyak prosesor bekerja secara bersamaan
    Komputasi paralel: banyak prosesor bekerja secara bersamaan

    Percepatan solusi paralel adalah waktu sekuensial dibagi dengan waktu paralel. Percepatan dibatasi: bagian yang harus berjalan secara sekuensial tidak dapat dipercepat dengan menambah prosesor, sehingga menggandakan jumlah prosesor jarang menggandakan kecepatan.

    Contoh penyelesaian. Suatu tugas memiliki bagian yang harus dijalankan secara berurutan, memakan waktu $40$ detik, ditambah bagian yang dapat diparalelkan yang membutuhkan waktu $60$ detik pada satu prosesor—sehingga pada satu prosesor seluruh tugas memakan waktu $40+60=100$ detik. Sebar bagian yang dapat diparalelkan ini di $3$ prosesor dan butuh waktu $\tfrac{60}{3}=20$ detik, sehingga total waktu paralel adalah $40+20=60$ detik dan percepatannya adalah $\tfrac{100}{60}\approx1.67$. Bagian berurutan selama $40$ detik menjadi batas bawah: bahkan dengan tak terhingga banyaknya prosesor, tugas ini tidak akan pernah selesai dalam waktu kurang dari $40$ detik.

    Keterampilan ujian: diberikan waktu untuk bagian sekuensial dan paralel dari sebuah tugas, mampu menghitung total waktu paralel dan percepatan.

    4.3

    Tips ujian

    • Jelaskan bagaimana data berjalan dalam paket melalui jaringan router independen yang redundan dan tahan-gangguan.
    • Pahami bahwa protokol (IP, TCP, HTTP) adalah aturan yang disepakati, dan bahwa standar terbuka memungkinkan sistem berbeda saling berinteroperabilitas.
    • Jelaskan skalabilitas dan bagaimana Internet berkembang tanpa kendali sentral.
    • Bandingkan bandwidth (laju) dengan latency (penundaan), dan jelaskan pencarian nama-ke-alamat DNS.
    • Bahas kesenjangan digital dan dasar-dasar keamanan (enkripsi, autentikasi) dengan bahasa sederhana.
  • 5

    Dampak Komputasi

    Tonton pelajaran
    5.1

    Efek yang Menguntungkan dan Merugikan

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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

    Kesenjangan Digital

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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

    Bias Komputasi

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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.

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

    Crowdsourcing

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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
    Kosa kata 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

    Kekhawatiran Hukum dan Etika

    Silabus

    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

    Sumber: Deskripsi Kursus dan Ujian College Board AP

    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.

    Kosa kata 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

    Komputasi Aman

    Silabus

    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.

    Sumber: Deskripsi Kursus dan Ujian College Board AP

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

    Jelajahi

    Kacaukan pesan dengan enkripsi

    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.

    Kosa kata 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

    Tips ujian

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

Masuk atau buat akun

IGCSE, A-Level & AP