Metodologi Pemrograman - Debugging
Mengidentifikasi dan menghapus kesalahan dari program atau perangkat lunak disebut debugging. Debugging idealnya adalah bagian dari proses pengujian tetapi pada kenyataannya itu dilakukan di setiap langkah pemrograman. Pembuat kode harus men-debug modul terkecil mereka sebelum melanjutkan. Ini mengurangi jumlah kesalahan yang muncul selama fase pengujian dan mengurangi waktu dan upaya pengujian secara signifikan. Mari kita lihat jenis kesalahan yang dapat muncul dalam suatu program.
Kesalahan Sintaks
Syntax errorsadalah kesalahan tata bahasa dalam sebuah program. Setiap bahasa memiliki seperangkat aturannya sendiri, seperti membuat pengenal, menulis ekspresi, dll. Untuk menulis program. Jika aturan ini dilanggar, kesalahan dipanggilsyntax errors. Banyak yang modernintegrated development environmentsdapat mengidentifikasi kesalahan sintaks saat Anda mengetik program Anda. Lain, itu akan ditampilkan ketika Anda mengkompilasi program. Mari kita ambil contoh -
Dalam program ini, variabel prod belum dideklarasikan, yang dimunculkan oleh compiler.
Kesalahan Semantik
Semantic errors juga disebut logical errors. Pernyataan tersebut tidak memiliki kesalahan sintaks, sehingga akan dikompilasi dan berjalan dengan benar. Namun, itu tidak akan memberikan keluaran yang diinginkan karena logikanya tidak benar. Mari kita ambil contoh.
Perhatikan baris 13. Di sini programmer ingin memeriksa apakah pembagi adalah 0, untuk menghindari pembagian dengan 0. Namun, alih-alih menggunakan operator pembanding ==, operator penugasan = telah digunakan. Sekarang setiap kali "jika ekspresi" akan mengevaluasi benar dan program akan memberikan output sebagai "Anda tidak dapat membagi dengan 0". Jelas bukan apa yang dimaksudkan !!
Kesalahan logika tidak dapat dideteksi oleh program apapun; mereka harus diidentifikasi oleh pemrogram sendiri ketika keluaran yang diinginkan tidak tercapai.
Kesalahan Waktu Proses
Kesalahan runtime adalah kesalahan yang terjadi saat menjalankan program. Ini menyiratkan bahwa program tidak memiliki kesalahan sintaks. Beberapa kesalahan waktu proses yang paling umum yang mungkin ditemui program Anda adalah -
- Lingkaran tak terbatas
- Divisi oleh '0'
- Nilai yang salah dimasukkan oleh pengguna (katakanlah, string bukan integer)
Optimasi Kode
Metode apa pun di mana kode dimodifikasi untuk meningkatkan kualitas dan efisiensinya disebut code optimization. Code qualitymenentukan masa hidup kode. Jika kode dapat digunakan dan dipertahankan untuk jangka waktu yang lama, dibawa-bawa dari produk ke produk, kualitasnya dianggap tinggi dan masa pakai lebih lama. Sebaliknya, jika sepotong kode dapat digunakan dan dipertahankan hanya untuk jangka waktu yang singkat, katakanlah sampai suatu versi valid, itu dianggap berkualitas rendah dan memiliki masa pakai yang pendek.
Keandalan dan kecepatan kode menentukan code efficiency. Efisiensi kode merupakan faktor penting dalam memastikan kinerja tinggi suatu perangkat lunak.
Ada dua pendekatan untuk pengoptimalan kode -
Intuition based optimization (IBO)- Di sini pemrogram mencoba untuk mengoptimalkan program berdasarkan keahlian dan pengalamannya sendiri. Ini mungkin berhasil untuk program kecil tetapi gagal total karena kompleksitas program tumbuh.
Evidence based optimization (EBO)- Di sini alat otomatis digunakan untuk mencari tahu kemacetan kinerja dan kemudian mengoptimalkan bagian yang relevan. Setiap bahasa pemrograman memiliki seperangkat alat pengoptimalan kode sendiri. Misalnya, PMD, FindBug dan Clover digunakan untuk mengoptimalkan kode Java.
Kode dioptimalkan untuk waktu eksekusi dan konsumsi memori karena waktu langka dan memori mahal. Harus ada keseimbangan antara keduanya. Jikatime optimization meningkatkan beban pada memori atau memory optimization membuat kode lebih lambat, tujuan pengoptimalan akan hilang.
Optimasi Waktu Eksekusi
Mengoptimalkan kode untuk waktu eksekusi diperlukan untuk memberikan layanan yang cepat kepada pengguna. Berikut beberapa tip untuk pengoptimalan waktu eksekusi -
Gunakan perintah yang memiliki pengoptimalan waktu eksekusi bawaan
Gunakan sakelar alih-alih kondisi if
Minimalkan panggilan fungsi dalam struktur loop
Optimalkan struktur data yang digunakan dalam program
Optimasi Memori
Seperti yang Anda ketahui, data dan instruksi menghabiskan memori. Saat kita mengatakan data, itu juga mengacu pada data sementara yang merupakan hasil ekspresi. Kita juga perlu melacak berapa banyak instruksi yang menyusun program atau modul yang kita coba optimalkan. Berikut beberapa tip untukmemory optimization -
Gunakan perintah yang memiliki pengoptimalan memori internal
Jaga penggunaan variabel yang perlu disimpan dalam register minimum
Hindari mendeklarasikan variabel global di dalam loop yang dieksekusi berkali-kali
Hindari menggunakan fungsi intensif CPU seperti sqrt ()