Lompat ke konten

Perangkat lunak sistem

Ilmu Komputer A-Level · Topik 5

Pelajaran video untuk topik ini Buka halaman video
21:02

Sistem Operasi

Anda tidak pernah melihatnya, dan Anda tidak akan pernah melihatnya — namun ia selalu ada. Di balik setiap aplikasi yang Anda buka, setiap file yang Anda simpan, setiap sentuhan di layar, ada sesuatu yang tak terlihat…

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

5.1

Sistem operasi

Silabus
Kandidat harus mampu: Catatan dan panduan
Jelaskan mengapa sistem komputer memerlukan Sistem Operasi (OS)
Jelaskan tugas-tugas manajemen utama yang dilakukan oleh Sistem Operasi Termasuk manajemen memori, manajemen file, manajemen keamanan, manajemen perangkat keras (input/output/periferi), manajemen proses
Tunjukkan pemahaman akan kebutuhan perangkat lunak utilitas standar yang disediakan bersama Sistem Operasi Termasuk formatting disk, pemeriksa virus, perangkat lunak defragmentasi, analisis isi disk / perangkat lunak perbaikan disk, kompresi file, perangkat lunak cadangan
Tunjukkan pemahaman tentang perpustakaan program Termasuk: • perangkat lunak yang sedang dikembangkan sering kali dibangun menggunakan kode yang sudah ada dari perpustakaan program • manfaat bagi pengembang perangkat lunak yang dibangun menggunakan file perpustakaan, termasuk Dynamic Link Library (DLL)

Sumber: Silabus Cambridge International

Mengapa komputer membutuhkan OS

Hardware sendirian hanya dapat mengambil dan menjalankan instruksi — ia tidak tahu apa-apa tentang file, program, jaringan atau pengguna. Sistem operasi (OS) adalah lapisan perangkat lunak yang:

  • mengelola hardware (processor, memori, I/O, penyimpanan) untuk program yang berjalan.
  • menyediakan layanan (sistem file, jaringan, akun pengguna) melalui antarmuka yang jelas, sehingga program tidak perlu berkomunikasi langsung dengan perangkat keras.
  • menyediakan antarmuka pengguna (baris perintah, GUI, sentuh).
  • memungkinkan beberapa program berbagi perangkat keras dengan aman — masing-masing mendapatkan waktu CPU yang adil dan dijauhkan dari memori program lain.

Tanpa OS, setiap program akan memerlukan driver sendiri, dan hanya satu program yang dapat berjalan dengan aman pada satu waktu.

"Jelaskan tujuan sebuah OS" — daftar lima poin bernilai. OS (1) menyediakan antarmuka antara pengguna dan perangkat keras; (2) menyembunyikan kerumitan perangkat keras dari pengguna dan dari program aplikasi; (3) mengelola sumber daya perangkat keras — waktu prosesor, memori, penyimpanan, dan perangkat input/output — serta membagikannya antar program; (4) memuat perangkat lunak aplikasi ke dalam memori dan menjalankannya, memberikan setiap program platform yang sama untuk dijalankan; (5) memungkinkan beberapa program berjalan sekaligus (multitasking) sambil menjaga mereka, serta data pengguna, tetap aman. Berikan lima poin berbeda; "ia menjalankan komputer" atau "ia mengelola sumber daya" saja tidak mendapat nilai.

Sistem operasi desktop di layar
Sistem operasi desktop mengelola layar, file, dan program untuk pengguna
Ponsel pintar dipegang dengan satu tangan, menampilkan layar utama Android dengan ikon aplikasinya
Ponsel juga membutuhkannya: ini adalah sistem operasi seluler, Android

Tugas manajemen utama

Kurikulum menyebutkan lima hal. Setiap poin di bawah ini adalah satu hal yang sebenarnya dilakukan oleh OS, yang merupakan apa yang diminta soal "jelaskan".

  • manajemen memori — mengalokasikan memori ke setiap program saat dimuat, menjaga memori setiap program tetap terpisah (perlindungan memori) agar satu tidak menimpa yang lain, membebaskan memori ketika program berakhir, dan menukar halaman antara RAM dan penyimpanan sekunder (disk) (memori virtual / paging) agar lebih banyak program dapat terbuka daripada kapasitas memori fisik yang tersedia.
  • manajemen proses — program yang sedang berjalan disebut proses. OS membuat dan mengakhiri proses, memutuskan proses mana yang mendapat CPU selanjutnya (penjadwalan) dan selama berapa lama (sebuah time slice), beralih di antaranya, menyelesaikan konflik ketika dua ingin sumber daya yang sama, dan dapat membunuh salah satu yang berhenti merespons.
  • manajemen perangkat keras (input/output dan periferal) — berkomunikasi dengan setiap perangkat melalui device driver-nya, mengantre dan buffering data menuju perangkat lambat seperti printer, merespons interrupt dari perangkat, dan membagikan satu perangkat antara beberapa program.
  • manajemen file — membuat, memberi nama, menyalin, memindahkan, dan menghapus file dan folder, menjaga struktur directory dan catatan di mana setiap file disimpan di disk, mengalokasikan ruang disk ke file, dan menerapkan hak akses (baca / tulis / eksekusi) untuk setiap pengguna.
  • manajemen keamanan — akun pengguna dan kata sandi (autentikasi), hak akses, enkripsi data tersimpan, firewall, pembaruan keamanan otomatis, dan log aktivitas siapa melakukan apa.
Diagram hub dengan sistem operasi di tengah terhubung oleh jari-jari roda ke manajemen memori, proses, file, perangkat, keamanan, dan antarmuka pengguna
Tugas-tugas utama yang dikelola oleh sistem operasi
Peta memori dengan sistem operasi dan tiga aplikasi masing-masing dalam blok sendiri, dipisahkan oleh alamat batas; akses di dalam blok diperbolehkan tetapi akses yang melewati batas diblokir
Perlindungan memori menjaga setiap aplikasi berada dalam blok memori sendiri

Bagaimana manajemen memori dan proses mendukung multitasking (favorit empat poin). Manajemen memori memuat beberapa program ke dalam memori pada saat yang sama, masing-masing di area terlindung sendiri, dan melacak alamat mana milik siapa; manajemen proses membagikan prosesor di antara mereka — setiap proses berjalan selama time slice, OS menyimpan keadaannya dan beralih ke berikutnya, dan pergantian itu sangat cepat sehingga semua program tampak berjalan bersamaan. Interrupt memungkinkan OS mengambil kembali prosesor dari proses kapan pun perangkat membutuhkan perhatian.

Interrupt. Hardware interrupt berasal dari perangkat: tombol ditekan, klik mouse, printer habis kertas, disk selesai mentransfer, kegagalan listrik. Software interrupt berasal dari program: pembagian dengan nol, instruksi tidak valid, upaya menggunakan memori yang bukan miliknya, atau permintaan layanan OS. Handler interrupt OS menyimpan keadaan proses yang sedang berjalan, menangani interrupt, lalu mengembalikan proses (topik 4 mencakup detail fetch–execute).

Perangkat lunak utilitas

Program utilitas adalah sistem perangkat lunak yang memelihara, memperbaiki, atau mengoptimalkan komputer alih-alih mengerjakan tugas pengguna; penguji menerima "melakukan tugas pemeliharaan spesifik tertentu yang meningkatkan kinerja atau keamanan". Sebagian besar OS menyertakan ini:

Program utilitas umum: antivirus, backup, kompresi file, dan defragmenter disk
Program utilitas: antivirus, backup, kompresi, dan defragmenter
  • disk formatter — mempersiapkan disk baru (atau menghapus data lama) untuk digunakan: mengatur sistem file dan partisinya, menghapus data yang sudah ada.
  • virus checker (antivirus) — memindai file dan memori, membandingkan kode terhadap basis data tanda tangan virus yang diketahui dan memantau perilaku mencurigakan, kemudian mengisolasi atau menghapus apa yang ditemukan; berjalan berdasarkan jadwal dan setiap kali unduhan, serta perlu diperbarui seiring munculnya virus baru.
  • perangkat lunak defragmentasi (disk defragmenter) — hard disk menyimpan file di blok bebas apa pun yang ditemukan, sehingga setelah banyak penyimpanan dan penghapusan, file tersebar (fragmented) di seluruh platter dan kepala baca/tulis harus berpindah antar bagian. Defragmenter memindahkan bagian-bagian setiap file berdampingan dan mengumpulkan ruang bebas menjadi satu area, sehingga file dimuat lebih cepat dan file baru tidak terfragmentasi. Tidak diperlukan pada SSD, yang tidak memiliki kepala bergerak.
  • analisis isi disk / perangkat lunak perbaikan disk — menampilkan apa saja yang menggunakan ruang disk (file besar, duplikat, atau sementara) agar dapat dihapus; menemukan dan memperbaiki sektor rusak, kluster hilang, dan kesalahan sistem file.
  • kompresi file (compression) — mengecilkan file agar membutuhkan lebih sedikit penyimpanan dan mentransfer lebih cepat; pengarsipan menggabungkan banyak file menjadi satu.
  • perangkat lunak cadangan (backup) — menyalin file ke media lain (disk eksternal, jaringan, cloud) secara berkala sehingga data dapat dipulihkan setelah kehilangan, kerusakan, atau serangan ransomware; salinan lengkap diikuti oleh cadangan inkremental hanya untuk apa yang berubah.
  • firewall (memfilter lalu lintas jaringan berdasarkan aturan) dan alat enkripsi, untuk keamanan; pemantau sistem dan pembaruan otomatis.

Menggabungkan semua ini dengan OS menghemat pengguna dari instalasi masing-masing.

Fungsi tiap utilitas. Performa: defragmentasi (akses file lebih cepat), perbaikan disk (disk dengan error lambat atau gagal), analisis isi disk (ruang bebas dengan menghapus sampah), kompresi (lebih muat di disk). Keamanan: antivirus, firewall, enkripsi, dan backup (satu-satunya pemulihan dari ransomware). Pertanyaan "tarik satu garis" memasangkan setiap utilitas dengan tepat satu tujuan — pelajari pasangan di atas dan gunakan nama sesuai silabus.

Contoh soal terpecahkan. Jelaskan bagaimana defragmentasi dapat meningkatkan performa komputer (3 nilai).

Seiring waktu, file disimpan dalam blok yang tersebar di hard disk, sehingga membacinya memerlukan banyak perpindahan kepala baca/tulis. Defragmenter mengatur ulang blok sehingga setiap file disimpan secara kontigu dan ruang bebas bersama. File kemudian dibaca dengan lebih sedikit perpindahan kepala, sehingga dimuat lebih cepat, dan file baru dapat ditulis ke dalam ruang yang terus-menerus.

Jelajahi

Di mana sistem operasi berada

Ketuk setiap lapisan. OS adalah lapisan tengah — ia berada di antara aplikasi Anda dan perangkat keras, berbagi mesin secara aman agar program tidak pernah menyentuh perangkat keras secara langsung.

Kosa kata Latih
English Bahasa Indonesia
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ sistem operasi
processor/ˈprəʊsesə/ prosesor
multitasking/ˈmʌltitæskɪŋ/ multitasking
memory management/ˈmeməri ˈmænɪdʒmənt/ manajemen memori
memory protection/ˈmeməri prəˈtekʃn/ perlindungan memori
RAM/ræm/ RAM
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ penyimpanan sekunder
virtual memory/ˈvɜːtʃuːəl ˈmeməri/ memori virtual
paging/ˈpeɪdʒɪŋ/ paging
process management/ˈprəʊses ˈmænɪdʒmənt/ manajemen proses
process/ˈprəʊses/ proses
scheduling/ˈʃedjuːlɪŋ/ penjadwalan
time slice/taɪm slaɪs/ irisan waktu
device driver/dɪˈvaɪs ˈdraɪvə/ driver perangkat
interrupts/ˈɪntərʌpts/ interupsi
directory/daɪˈrektəri/ direktori
access rights/ˈækses raɪts/ hak akses
authentication/ɔːˌθentɪˈkeɪʃn/ otentikasi
firewall/ˈfaɪəwɔːl/ firewall
hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ interrupt perangkat keras
software interrupt/ˈsɒftweə ˈɪntərʌpt/ interrupt perangkat lunak
interrupt handler/ˈɪntərʌpt ˈhændlə/ handler interrupt
utility program/juːˈtɪlɪti ˈprəʊɡræm/ program utilitas
antivirus/ˌæntɪˈvaɪrəs/ antivirus
backup/ˈbækʌp/ backup
compression/kəmˈpreʃn/ pemampatan
disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ defragmenter disk
signatures/ˈsɪɡnɪtʃəz/ tanda tangan
fragmented/fræɡˈmentɪd/ fragmented
incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ cadangan bertahap
program library/ˈprəʊɡræm ˈlaɪbrəri/ perpustakaan program
subroutines/ˈsʌbruːtiːnz/ subrutin
library routines/ˈlaɪbrəri ruːˈtiːnz/ rutin perpustakaan
static library/ˈstætɪk ˈlaɪbrəri/ perpustakaan statis
5.1

Perpustakaan program

Sebuah perpustakaan program adalah kode yang telah ditulis sebelumnya (subrutin, kelas, modul) yang digunakan kembali oleh program alih-alih menulis sendiri — misalnya perpustakaan matematika, perpustakaan jaringan, perpustakaan grafis.

Program baru dalam pengembangan yang menggunakan rutinitas siap pakai dari perpustakaan matematika, perpustakaan grafis, dan perpustakaan jaringan
Program baru yang menggunakan rutinitas siap pakai dari perpustakaan

Manfaat: menghemat waktu (kode siap pakai), dapat diandalkan (teruji dengan baik, digunakan luas), dan terstandarisasi (perilaku konsisten).

Daftar manfaat bagi pemeriksa, untuk pengembang. Rutinitas perpustakaan sudah ditulis dan diuji, sehingga pengembangan lebih cepat dan murah; mereka dapat diandalkan dan, karena digunakan oleh banyak program, sebagian besar bebas error; pengembang tidak perlu keahlian di bidang tersebut (grafis, kompresi, enkripsi, penemuan jalur); program lebih mudah dirawat karena kode umum berada di satu tempat; dan seluruh tim dapat menggunakan rutinitas yang sama, memberikan hasil konsisten. Kekurangan: rutinitas mungkin tidak persis sesuai kebutuhan Anda dan tidak dapat diubah; program Anda bergantung pada ketersediaan, ketepatan, dan keamanan perpustakaan — bug atau celah keamanan di perpustakaan adalah bug di program Anda; dan Anda harus mempelajari cara memanggilnya.

  • perpustakaan statis disalin ke executable saat kompilasi (berdiri sendiri, tetapi lebih besar dan perlu dibangun ulang untuk diperbarui).
  • perpustakaan dinamis (DLL, Dynamic Link Library; .so) dimuat saat runtime (executable lebih kecil, dibagi oleh banyak program, diperbarui sekali untuk semua).
Perpustakaan statis disalin ke executable saat kompilasi, membuat program mandiri yang lebih besar; file perpustakaan dinamis (.dll atau .so) tetap terpisah, dimuat saat runtime, dan dibagikan oleh beberapa program
Statis: perpustakaan disalin ke executable. Dinamis: file perpustakaan berbagi dimuat saat runtime

File Dynamic Link Library (DLL). DLL adalah perpustakaan yang dimuat ke memori hanya ketika program memanggilnya, pada runtime, dan tetap sebagai file terpisah daripada disalin ke executable. Manfaat: executable lebih kecil; beberapa program yang berjalan berbagi satu salinan DLL di memori; DLL dapat diperbarui (perbaikan bug, perangkat baru) tanpa mengkompilasi ulang program yang menggunakannya; dan memori hanya digunakan selama rutinitas dibutuhkan. Kekurangan: program tidak akan berjalan jika DLL hilang, dipindahkan, atau versinya salah; DLL yang diperbarui dapat merusak program yang bergantung pada perilaku lama; dan DLL palsu yang diletakkan di tempatnya berjalan dengan hak program.

Contoh soal terpecahkan. Sebuah tim yang menulis perangkat lunak untuk robot restoran menggunakan perpustakaan program yang mencakup rutinitas untuk menemukan jalur terpendek antar meja. Jelaskan dua manfaat dan satu kekurangan bagi tim tersebut.

Manfaat: rutinitas sudah ditulis dan diuji, sehingga tim menghemat waktu dan dapat mempercayai hasilnya; tim tidak perlu memahami algoritma penemuan jalur sendiri dan dapat menghabiskan waktu untuk fitur robot itu sendiri. Kekurangan: rutinitas mungkin tidak menangani kebutuhan restoran yang spesifik (memindahkan kursi, lorong satu arah) dan tim tidak dapat mengubahnya, sehingga mereka mungkin harus mengatasi keterbatasannya.

Jelajahi

Laboratorium konsep komputasi

Klasifikasikan contoh konkret berdasarkan ide komputasi yang ditunjukkannya.

Kosa kata Latih
English Bahasa Indonesia
executable/ɪɡˈzekjʊtəbl/ file yang dapat dieksekusi
dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ perpustakaan dinamis
translator/trænˈsleɪtə/ penerjemah
machine code/məˈʃiːn kəʊd/ kode mesin
5.2

Penerjemah bahasa

Silabus
Kandidat harus mampu: Catatan dan panduan
Tunjukkan pemahaman akan kebutuhan: • perangkat lunak assembler untuk penerjemahan program bahasa perakitan • compiler untuk penerjemahan program bahasa tingkat tinggi • interpreter untuk penerjemahan dan eksekusi program bahasa tingkat tinggi
Jelaskan manfaat dan kekurangan menggunakan compiler atau interpreter serta justifikasi penggunaan masing-masing
Tunjukkan kesadaran bahwa program bahasa tingkat tinggi mungkin dikompilasi sebagian dan ditafsirkan sebagian, seperti Java (mode konsol)
Jelaskan fitur-fitur yang ditemukan dalam Integrated Development Environment (IDE) standar Termasuk: • untuk pemrograman, termasuk prompt kontekstual • untuk deteksi kesalahan awal, termasuk pengecekan sintaks dinamis • untuk presentasi, termasuk prettyprint, perluas dan kolaps blok kode • untuk penelusuran, termasuk langkah tunggal, titik jeda, yaitu variabel, ekspresi, jendela laporan

Sumber: Silabus Cambridge International

Anda menulis kode sumber; komputer menjalankan kode mesin. Penerjemah mengonversi di antara keduanya.

Assembler

Sebuah assembler menerjemahkan bahasa assembly menjadi kode mesin: setiap instruksi mnemonic (LDD, ADD, JMP) berubah menjadi tepat satu instruksi kode mesin, dan alamat serta label simbolis digantikan oleh alamat nyata. Hal ini diperlukan karena prosesor hanya mengeksekusi kode mesin, dan assembly digunakan ketika programmer membutuhkan kontrol langsung atas perangkat keras (sistem tertanam, driver perangkat).

Compiler

Sebuah compiler menerjemahkan program tingkat tinggi menjadi kode mesin sekali, sebelum program dijalankan.

  • ia melaporkan semua kesalahan pada saat kompilasi; sekali bersih, ia menghasilkan executable mandiri yang dapat berjalan tanpa compiler terinstall dan dapat dijalankan berkali-kali.
  • umumnya lebih cepat saat runtime (tidak ada penterjemahan saat berjalan), tetapi terikat pada satu CPU/OS — harus dikompil ulang untuk setiap platform.

Deskripsi bernilai dua poin: compiler menerjemahkan seluruh program tingkat tinggi menjadi kode mesin (kode objek) sebelum dijalankan, menghasilkan file executable, dan melaporkan semua kesalahan sintaks sekaligus sebagai daftar di akhir penerjemahan. Ia tidak menjalankan programnya.

Interpreter

Sebuah interpreter menerjemahkan dan menjalankan program tingkat tinggi baris per baris, tanpa menghasilkan file executable.

  • ia melaporkan error ketika sampai pada baris tersebut, lalu berhenti; Anda dapat memperbaikinya dan melanjutkan — baik untuk pengembangan.
  • interpreter harus terinstall untuk menjalankan program; umumnya lebih lambat (setiap kali jalan mengiterprometer ulang), tetapi mudah untuk diporting lintas platform.

Deskripsi bernilai dua poin: interpreter menerjemahkan satu pernyataan dari program tingkat tinggi secara bergantian dan mengeksekusinya segera sebelum beralih ke berikutnya; tidak ada file executable yang dihasilkan; ia berhenti pada kesalahan pertama yang ditemui dan melaporkannya. Baik kode sumber maupun interpreter harus ada setiap kali program dijalankan.

Compiler menerjemahkan sumber sekali menjadi executable yang kemudian berjalan berkali-kali tanpa penerjemang; interpreter menerjemahkan dan menjalankan sumber baris per baris, pada setiap kali jalanan
Compiler menerjemahkan sekali menjadi program mandiri; interpreter menerjemahkan baris per baris, setiap kali jalanan

Memilih di antara keduanya

Gunakan compiler ketika: Gunakan interpreter ketika:
kecepatan runtime penting Anda menginginkan siklus edit–run cepat
mendistribusikan ke pengguna tanpa alat dev menulis skrip lintas-platform
program dijalankan berkali-kali program kecil atau dijalankan sekali
mengajar pemula

Keuntungan dan kerugian, seperti yang tercantum dalam skema nilai.

kompiler interpreter
kecepatan eksekusi cepat — sudah berupa kode mesin lambat — diterjemahkan pada setiap jalanan
apa yang dibutuhkan pengguna hanya executable; tidak ada penerjemang, dan kode sumber tetap rahasia kode sumber dan interpreter
menemukan error semua error didaftar sekaligus, setelah seluruh program diterjemahkan setiap error dilaporkan pada baris tempat terjadinya, seiring pengembangan
mengubah kode kompil ulang seluruh program setelah setiap perubahan edit dan jalankan kembali segera
portabilitas kode mesin hanya berjalan di satu platform; kompil ulang untuk masing-masing sumber yang sama bisa berjalan di mana pun interpreter tersedia

Contoh dikerjakan. Seorang pengembang menggunakan interpreter saat menulis program dan compiler saat selesai. Jelaskan bagaimana masing-masing digunakan (4 poin).

Selama pengembangan, interpreter menjalankan program yang belum lengkap seketika, tanpa menunggu penerjemahan utuh; ketika menemui error, ia melaporkan barisnya, sehingga pengembang memperbaikinya dan menjalankannya kembali segera — siklus edit–run cepat yang memudahkan debugging. Ketika program selesai, compiler menerjemahkan seluruh program menjadi executable yang berjalan lebih cepat, tidak memerlukan penerjemang di komputer pengguna, dan tidak membongkar kode sumber, sehingga dapat dijual kepada publik.

Hibrida: Java

Java dikompil menjadi bytecode (bentuk perantara yang independen platform), yang kemudian diterjemahkan oleh mesin virtual (JVM) — atau menggunakan kompilasi just-in-time untuk mengubah bagian 'panas' menjadi kode native. Jadi error terdeteksi lebih awal, bytecode berjalan di mana saja dengan JVM ("tulis sekali, jalankan di mana saja"), dan program berjangka panjang mencapai kecepatan hampir native. C# dan Python menggunakan desain serupa.

Frasa kurikulum adalah "terkompil parsial dan diterjemahkan parsial": tahap kompilasi menangkap error sintaks dan menghasilkan bytecode yang ringkas dan portabel; tahap penerjemahan memungkinkan file bytecode tunggal itu berjalan di mesin apa pun yang memiliki mesin virtual, dengan pengorbanan sedikit kecepatan. Java dalam mode konsol (program teks yang dijalankan dari command line) adalah contoh kurikulum.

Sumber Java dikompil sekali menjadi bytecode independen platform (.class), yang kemudian diterjemahkan atau dikompil JIT oleh JVM di Windows, macOS, atau Linux menjadi kode native
Java kompil ke bytecode portabel yang dapat dijalankan oleh JVM apa pun — tulis sekali, jalankan di mana saja

Contoh dikerjakan. Sumber Java dikompil menjadi bytecode, yang kemudian diterjemahkan oleh JVM. Mengapa menggunakan keduanya, bukan kompil langsung ke kode mesin? Compiler menghasilkan kode mesin untuk satu prosesor dan sistem operasi, sehingga program yang dikompil di satu mesin tidak akan berjalan di mesin lain. Compiler Java sebaliknya menargetkan mesin virtual, sehingga bytecode yang dihasilkannya identik di mana saja; setiap platform kemudian menyediakan JVM miliknya sendiri untuk menerjemahkan bytecode itu menjadi instruksi native-nya. Satu file kompilated因而能在任何有JVM的地方运行 - "写一次,跑 anywhere"。代价是速度:解释字节码比运行原生代码慢,这就是为什么真正的JVM也使用JIT编译将频繁运行的字节码转换为运行时原生代码。请列出双方——得分点在于以牺牲速度为代价换取的便携性。

Jelajahi

Rute kompilasi: sumber menjadi program yang berjalan

Ikuti langkah-langkah cara kerja kompiler — menerjemahkan seluruh program sekali, sebelum dijalankan. Bandingkan dengan interpreter, yang menerjemahkan dan menjalankan baris demi baris.

Kosa kata Latih
English Bahasa Indonesia
assembler/əˈsemblə/ assembler
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ bahasa assembly
compiler/kəmˈpaɪlə/ compiler
object code/ˈɒbdʒekt kəʊd/ kode objek
interpreter/ɪnˈtɜːprɪtə/ interpreter
bytecode/ˈbaɪtkəʊd/ bytecode
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ mesin virtual
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ kompilasi just-in-time
portable/ˈpɔːtəbl/ portabel
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ lingkungan pengembangan terintegrasi
5.2

Lingkungan Pengembangan Terintegrasi (IDE)

Sebuah lingkungan pengembangan terintegrasi (IDE) mengumpulkan alat-alat untuk menulis, menguji, dan memperbarui kode ke dalam satu aplikasi:

IDE mengumpulkan editor kode, tombol Run, dan debugger menjadi satu program
IDE menggabungkan editor, tombol Run, dan debugger

Kurikulum mengelompokkan fitur-fitur tersebut menjadi empat jenis. Pelajari fitur mana yang termasuk dalam kategori mana, karena soal-soal meminta Anda untuk mengurutkannya dan mendeskripsikan satu dari setiap kelompok.

  • Untuk pengkodean: prompt peka konteks — saat Anda mengetik, IDE menampilkan identifikasi, kata kunci, atau parameter yang sesuai pada bagian kode tersebut; auto-complete menyelesaikan nama untuk Anda; indentasi otomatis dan pencocokan kurung menjaga tata letak tetap benar saat Anda mengetik.
  • Untuk deteksi error awal: pemeriksaan sintaks dinamis — editor memeriksa sintaks saat Anda mengetik dan memberikan garis bawah atau menyoroti kesalahan segera, sebelum program diterjemahkan; setelah diterjemahkan, pesan error dengan nomor baris.
  • Untuk presentasi: prettyprint — kata kunci, identifikasi, string, dan komentar ditampilkan dalam warna atau font berbeda (penyorotan sintaks) dengan indentasi yang konsisten, sehingga struktur terlihat sekilas; perluas dan lipatkan blok kode — sembunyikan isi loop, IF, atau subrutin agar Anda melihat kerangkanya.
  • Untuk pembaruan: titik henti — program berhenti ketika mencapai baris yang ditandai; langkah tunggal — dari posisi berhenti, jalankan satu baris sekaligus; jendela yang menampilkan nilai saat ini dari variabel dan ekspresi saat mereka berubah; dan jendela laporan yang mencantumkan error, peringatan, dan output.

Fitur lainnya: integrasi penerjemah (kompile atau jalankan dengan satu tombol, error ditampilkan sebaris), program pembaruan yang menjalankan fitur pembaruan di atas, kontrol versi (git), manajemen proyek, sistem bantuan, alat refactoring (penggantian nama aman) dan integrasi ujian unit.

Jendela IDE yang diberi anotasi dengan tag bernomor: kata kunci berwarna (prettyprint), blok kode yang diringkas, prompt pop-up yang menyarankan nama, garis bawah bergelombang dari pengecekan sintaks dinamis, titik pemutus (breakpoint) di margin, panah pada baris saat ini selama langkah tunggal, panel variabel, dan jendela laporan
Fitur IDE mencantumkan nama silabus, di tempat Anda akan melihatnya di layar

IDE mempercepat pengembangan dengan menempatkan menulis → menjalankan → memperbarui → memperbaiki di balik satu antarmuka. IDE umum: Visual Studio, PyCharm, Eclipse, VS Code.

Alur kerja debugger: tetapkan titik henti, jalankan program, dan saat mencapai titik henti program akan berhenti sementara sehingga Anda dapat memeriksa variabel, lalu langkah demi langkah atau lanjutkan
A debugger: tetapkan titik henti, jalankan, lalu berhenti untuk memeriksa variabel dan menelusuri kode

Contoh pengerjaan. Fungsi Calculate() mengembalikan nilai tak terduga saat program berjalan. Jelaskan bagaimana fitur pembaruan pada IDE standar membantu menemukan penyebabnya (4 poin).

Pasang titik henti pada baris pertama Calculate(), agar program berhenti di sana alih-alih berjalan terus. Kemudian langkah tunggal melalui fungsi tersebut satu baris sekaligus. Setelah setiap langkah baca nilai variabel dan ekspresi apa pun yang telah Anda minta IDE untuk pantau, dan bandingkan dengan nilai yang Anda harapkan; baris pertama setelah itu di mana nilainya salah adalah tempat logika error berada. Jendela laporan menampilkan pesan error waktu berjalan dan output yang dihasilkan sejauh ini.

Contoh pengerjaan. Masukkan setiap fitur ke dalam kelompok kurikulumnya: prettyprint, prompt peka konteks, pemeriksaan sintaks dinamis, titik henti, perluas/lipatkan blok kode, jendela laporan.

Pengkodean: prompt peka konteks. Deteksi error awal: pemeriksaan sintaks dinamis. Presentasi: prettyprint, perluas/lipatkan blok kode. Pembaruan: titik henti, jendela laporan.

Kosa kata Latih
English Bahasa Indonesia
debugger/ˈdiːbʌɡə/ debugger
context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ prompt peka konteks
auto-complete/ˈɔːtəʊ kəmˈpliːt/ auto-complete
dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ pengecekan sintaks dinamis
prettyprint/ˈpretɪprɪnt/ penyajian rapi
syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ penonjolan sintaks
breakpoints/ˈbreɪkpɔɪnts/ titik henti
refactoring/rɪˈfæktərɪŋ/ refaktorisasi
unit test/ˈjuːnɪt test/ uji unit
5.2

Definisi yang diterima oleh penguji

Soal definisi dinilai berdasarkan frasa tetap. Hafalkan ini persis, dan berikan hanya satu jawaban.

Istilah Definisi
sistem operasi perangkat lunak yang mengelola hardware komputer dan sumber dayanya serta menyediakan antarmuka antara pengguna, program aplikasi, dan hardware
perangkat lunak utilitas sistem software yang melakukan tugas spesifik untuk memelihara, mengoptimalkan, atau melindungi komputer, seperti antivirus atau defragmenter
perpustakaan program kumpulan rutinitas yang sudah ditulis dan diuji (subrutin, kelas, modul) yang dapat digunakan program alih-alih menulis sendiri
Dynamic Link Library (DLL) perpustakaan program whose routines dimuat ke memori hanya ketika program memanggilnya, pada waktu jalan, dan dibagikan antar program
assembler penerjemah yang mengubah program bahasa assembly menjadi kode mesin, satu instruksi untuk setiap instruksi
compiler penerjemah yang mengubah seluruh program bahasa tingkat tinggi menjadi kode mesin sebelum dijalankan, menghasilkan file yang dapat dieksekusi
interpreter penerjemah yang menerjemahkan dan mengeksekusi program bahasa tingkat tinggi satu pernyataan sekaligus
lingkungan pengembangan terintegrasi aplikasi tunggal yang menyediakan alat untuk menulis, menerjemahkan, menjalankan, dan memperbarui program
prompt peka konteks popup yang menyarankan identifikasi, kata kunci, atau parameter yang sesuai pada bagian kode saat ini
pemeriksaan sintaks dinamis memeriksa sintaks kode saat diketik dan menandai error sebelum program diterjemahkan
prettyprint menampilkan kode dengan kata kunci, identifikasi, dan komentar dalam warna atau font berbeda serta dengan indentasi yang konsisten
titik henti baris yang ditandai di mana program yang sedang berjalan berhenti sehingga variabel dapat diperiksa
langkah tunggal menjalankan program yang dihentikan satu pernyataan sekaligus di bawah kendali programmer
5.2

Tips ujian

  • Sebutkan tugas OS berdasarkan nama silabus (manajemen memori, proses, perangkat keras, file dan keamanan) serta jelaskan apa yang dilakukan oleh masing-masing — "mengelola sumber daya" saja terlalu samar.
  • Bandingkan compiler vs interpreter vs assembler: apa yang diterjemahkan, kapan diterjemahkan, dan bagaimana error dilaporkan.
  • Jelaskan apa yang disediakan oleh sebuah IDE menggunakan kelompok silabus: pemrograman, deteksi error awal, presentasi, debugging.
  • Jawaban "manfaat bagi pengembang" menyebutkan penghematan pengembang: waktu, biaya, keahlian, keandalan atau pemeliharaan. "Kekurangan" menyebutkan ketergantungan: ketersediaan, versi, kesesuaian, keamanan.
  • Untuk "jelaskan operasi" dari sebuah penerjemah, berikan tiga hal: apa yang diterjemahkan (seluruh program atau satu pernyataan), kapan (sebelum berjalan atau saat berjalan), dan bagaimana error dilaporkan (semua sekaligus atau pada error pertama).

Kesalahan umum

  • Menulis "OS mengontrol komputer" atau "mengelola sumber daya" tanpa contoh tugas. Setiap nilai adalah satu tugas yang dinamakan beserta fungsinya.
  • Mengatakan interpreter "menyusun baris demi baris". Interpreter menerjemahkan dan mengeksekusi setiap pernyataan; ia tidak pernah menghasilkan file eksekusi.
  • Mengatakan compiler menjalankan program. Ia hanya menerjemahkan; file eksekusi dijalankan kemudian, tanpa presence compiler.
  • Menaruh DLL "di dalam" file eksekusi. Itu adalah perpustakaan statis; DLL tetap sebagai file terpisah yang dimuat saat runtime.
  • Mengatakan defragmentasi "menghapus" atau "mengkompresi" file, atau diperlukan di SSD. Ia hanya memindahkan blok agar setiap file disimpan secara kontigu.
  • Menyertakan prettyprint atau merangkum blok di bawah "debugging". Mereka adalah fitur presentasi; debugging adalah breakpoint, single stepping, memantau variabel dan jendela laporan.
Kosa kata Latih
English Bahasa Indonesia
single stepping/ˈsɪŋɡl ˈstepɪŋ/ langkah tunggal
report window/rɪˈpɔːt ˈwɪndəʊ/ jendela laporan
version control/ˈvɜːʃn kənˈtrəʊl/ kontrol versi

Pelajaran interaktif untuk topik ini

Kerjakan langkah demi langkah, dengan latihan pengecekan instan.

Soal-Soil Masa Lalu

Topik lain dalam Ilmu Komputer A-Level

Masuk atau buat akun

IGCSE, A-Level & AP