Lompat ke konten

Pengembangan Kreatif

AP Prinsip Ilmu Komputer · Topik 1

Pelajaran video untuk topik ini Buka halaman video
6:15

Pengembangan Kreatif

Berikut program yang seharusnya mencetak rata-rata dua angka. Ia berjalan. Tidak crash. Mencetak jawaban — dan jawabannya salah. Beri empat dan enam…

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

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.

Pelajaran interaktif untuk topik ini

Kerjakan langkah demi langkah, dengan latihan pengecekan instan.

Soal-Soil Masa Lalu

Topik lain dalam AP Prinsip Ilmu Komputer

Masuk atau buat akun

IGCSE, A-Level & AP