Algoritma, Pemrograman, Kompiler
Diperkenalkan| English | Makna |
|---|---|
| algorithm/ˈælɡərɪθəm/ | Algoritma |
| high-level language/haɪ ˈlevl ˈlæŋɡwɪdʒ/ | Bahasa tingkat tinggi |
| compiler/kəmˈpaɪlə/ | Kompiler |
| syntax error/ˈsɪntæks ˈerə/ | Kesalahan sintaks |
| logic error/ˈlɒdʒɪk ˈerə/ | Kesalahan logika |
Bangunan bersih masih bisa menjual harga yang salah
- Program toko berniat menerapkan diskon 10% ke harga 100, tetapi menghitung harga * 10 / 100 sebagai jumlah yang harus dibayar.
- Ia menghitung jumlah diskon, 10, alih-alih harga setelah diskon, 90. Kode dapat dikompilasi dan dijalankan meskipun menggunakan rumus yang salah.
Apa itu algoritma?
- Algoritma adalah himpunan langkah yang terbatas dan terurut yang memecahkan masalah. Resep adalah algoritma: langkah-langkah tepat, berurutan, yang menghasilkan akhir.
- Pemrograman adalah seni mengubah algoritma menjadi kode yang dijalankan komputer. Untuk algoritma terbatas yang diajarkan di sini, setiap input valid harus menghasilkan hasil setelah sejumlah langkah terbatas. Program juga dapat menjalankan layanan berkelanjutan; tidak semua program hanyalah perhitungan yang berakhir.
Bahasa pemrograman
- Komputer menjalankan kode mesin (raw 0s and 1s) — sulit ditulis manusia. Kita menulis dalam bahasa tingkat tinggi seperti Java: mudah dibaca, mirip bahasa Inggris.
- Kode Java menyatakan apa yang harus dilakukan; penerjemah mengubahnya menjadi instruksi mesin. Kursus ini mengajarkan pemecahan masalah melalui Java.
Kompiler
- Compiler seperti javac menerjemahkan file sumber Java menjadi file kelas dan memeriksa tata bahasa, tipe, dan nama. Java dikompilasi menjadi bytecode, yang kemudian dijalankan oleh Java Virtual Machine (JVM).
- "Tulis sekali, jalankan di mana saja": file kelas dapat dijalankan di berbagai platform dengan JVM yang kompatibel dan pustaka yang diperlukan; versi file kelas yang lebih baru memerlukan runtime yang mendukungnya. Kesalahan kompilasi (terdeteksi sebelum dijalankan) berbeda dari kesalahan waktu jalan (terdeteksi saat dijalankan).
Algoritma paling tepat dijelaskan sebagai...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Langkah terbatas dan berurutan yang selesai — itu adalah algoritma.
Kompiler Java menerjemahkan kode sumber Anda menjadi...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Java dikompilasi menjadi bytecode, yang dieksekusi oleh JVM.
Program yang dikompilasi dan berjalan tetapi memberikan jawaban salah memiliki...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Hasil salah meskipun kompilasi bersih = kesalahan logika.
Kesalahan sintaks mencegah program Java dikompilasi.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Tata bahasa rusak → kompiler menolak membangun.
Jika program dikompilasi tanpa error, program tersebut dijamin benar.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Kompiler memeriksa tata bahasa, tipe, dan nama, tetapi tidak menetapkan aturan bisnis yang dimaksud atau output yang benar.
Setiap pengecualian运行时 (runtime exception) secara pasti mengakhiri program, bahkan jika kode penanganan pengecualian yang sesuai menangkapnya.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Sebuah pengecualian dapat ditangkap dan ditangani; pengecualian yang tidak ditangkap dapat menghentikan eksekusi.
Operasi manakah yang menimbulkan ArithmeticException untuk variabel int bernilai 0?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Pembagian integer dengan nol menimbulkan; pembagian double dengan nol menghasilkan nilai IEEE floating-point.
Jenis kesalahan
- Kesalahan sintaks melanggar tata bahasa Java — compiler menolak untuk membangun. Kesalahan waktu jalan terjadi selama eksekusi; pengecualian yang tidak tertangkap dapat mengakhiri program. Pembagian bilangan bulat dengan variabel nol melempar ArithmeticException, sedangkan pembagian bilangan desimal mengikuti aturan berbeda.
- Kesalahan logika berjalan lancar tetapi memberikan jawaban yang salah. Penelusuran (debugging) adalah menemukan dan memperbaiki ketiga jenis tersebut.
Dari kode sumber hingga program berjalan
Lihat bagaimana sumber Java menjadi program yang berjalan.
Program yang terkompilasi tidak otomatis benar. Compiler mendeteksi kesalahan sintaks dan kesalahan waktu kompilasi lainnya, termasuk kesalahan tipe dan nama. Kesalahan logika — rumus salah, kondisi salah — dapat dikompilasi dengan mulus dan dijalankan, namun menghasilkan hasil yang salah. Selalu uji output algoritma Anda, bukan hanya apakah ia berhasil dibangun.
Match each defect to its category.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
The categories depend on when and how the defect is detected; successful compilation does not establish the intended result.
Algoritma untuk menemukan bilangan yang lebih besar antara dua bilangan a dan b:
- Langkah 1: jika
a > b, jawabannya adalaha. - Langkah 2: sebaliknya, jawabannya adalah
b. - Terbatas, berurutan, dan selalu selesai — algoritma yang valid, siap dikodekan dalam Java.
Terapkan penalaran ke kasus baru
- Periksa output diskon terhadap kasus yang diketahui. Untuk contoh ini, 100 seharusnya menghasilkan 90 dan 0 seharusnya menghasilkan 0; sertakan input non-bulat di bawah kebijakan pembulatan yang ditetapkan daripada mengasumsikan pembagian bilangan bulat adalah aritmatika desimal.
- Kompiler juga mendeteksi kesalahan tipe dan nama, bukan hanya kesalahan tanda baca. Sebaliknya, sebuah pengecualian dapat ditangani selama eksekusi; kompilasi yang bersih tidak menjamin hasil yang dimaksud atau ketiadaan kegagalan saat waktu berjalan.
Sebuah algoritma adalah himpunan langkah terbatas dan berurutan yang memecahkan masalah; pemrograman mengubahnya menjadi kode. Java adalah bahasa tingkat tinggi yang diterjemahkan oleh kompiler ke bytecode untuk JVM. Waspadai kesalahan sintaks, saat berjalan, dan logika — kompilasi bersih tidak menjamin hasil yang benar.