Mengenal SonarQube Alat Untuk Cek Kualitas Program Secara Otomatis
Kualitas kode dari suatu aplikasi, merupakan salah satu indikator yang harus diperhatikan oleh pengembang, karena sangat berpengaruh terhadap performa dari aplikasi yang dibuat.
Ketika membangun sebuah aplikasi perangkat lunak, kode program harus memiliki karakteristik seperti berikut:
- Kode harus mengikuti pedoman dari bahasa pemrograman yang digunakan.
- Kode harus diperiksa untuk kemungkinan kekutu (bug) dan masalah kinerja, keamanan, atau kerentanan.
- Apakah logika kode program masuk akal atau terlalu rumit?
- Apakah dokumentasi dalam penggunaan API publik sudah jelas dan mudah dipahami?
- Apakah kode memiliki unit test?
- Apakah kode mengikuti desain perangkat lunak dan prinsip arsitektur yang baik?
Kode program yang dibuat dalam sebuah aplikasi memang banyak dan dikembangkan oleh lebih dari satu programmer. Sehingga sangat tidak mungkin untuk mengecek kualitas kode dengan cara manual, dibutuhkan sebuah aplikasi dalam melakukan cek kualitas kode program dengan cara otomatis.
SonarQube adalah alat peninjauan kode otomatis untuk mendeteksi bug, kerentanan, dan code smells dalam kode yang dibuat. SonarQube bisa terintegrasi dengan alur kerja dalam banyak proyek dalam pemeriksaan kode yang berkelanjutan.
Code smells merupakan gejala yang mengindikasikan terdapat permasalahan pada kode program (Wikipedia).
SonarQube mendukung lebih dari 25 bahasa pemrograman dan terdapat beberapa plugin yang bisa digunakan.
Mengapa SonarQube?
Ketika bekerja di proyek perangkat lunak apa pun, yang menjadi fokus utama adalah mencapai tujuan akhir yaitu menyelesaikan fungsionalitas dan mengirimkannya kepada pengguna akhir. Sangat penting bagi pengembang dalam meninjau kualitas kode, potensi bug, duplikasi kode, dan distribusi kompleksitas yang buruk dan tidak hanya itu tetapi digunakan juga untuk cek variabel, metode, dll yang tidak digunakan. Aplikasi yang dibuat harus menghasilkan perangkat lunak dengan kode yang bersih, tanpa duplikasi kode, logika program yang mudah dipahami, dan tentunya tanpa potensi kekutu (bug).
Fitur SonarQube
- Tidak hanya menunjukkan apa yang salah, tetapi juga menawarkan alat kualitas dan manajemen untuk secara aktif membantu dalam memperbaiki masalah.
- Berfokus pada lebih dari sekedar bug dan kompleksitas serta menawarkan lebih banyak fitur untuk membantu programmer menulis kode, seperti aturan pengkodean, cakupan pengujian, de-duplikasi, dokumentasi API, dan kompleksitas kode semua dalam sebuah dashboard.
- Memberikan snapshot kualitas kode saat ini, serta tren indikator kualitas di masa lalu dan potensi di masa mendatang. Juga menyediakan metrik untuk membantu dalam membuat keputusan yang tepat.
Manfaat SonarQube
- Sustainability — Mengurangi kompleksitas, kemungkinan kerentanan, dan duplikasi kode, mengoptimalkan masa pakai aplikasi.
- Increase productivity — Mengurangi skala, biaya pemeliharaan, dan risiko aplikasi; dengan demikian, ini menghilangkan kebutuhan untuk menghabiskan lebih banyak waktu untuk mengubah kode.
- Quality code — Kontrol kualitas kode merupakan bagian yang tidak terpisahkan dari proses pengembangan perangkat lunak.
- Detect Errors — Mendeteksi kesalahan dalam kode dan memperingatkan pengembang untuk memperbaikinya secara otomatis sebelum di deploy.
- Increase consistency — Menentukan di mana kriteria kode dilanggar dan meningkatkan kualitas.
- Business scaling — Tidak ada batasan jumlah proyek yang akan dievaluasi.
- Enhance developer skills — Feedback reguler tentang masalah kualitas membantu pengembang meningkatkan keterampilan dalam pembuatan algoritma kode program.
Tampilan SonarQube
Pada gambar di atas terdapat 46 bugs, dan 7 security Hotspots.
Gambar di atas merupakan daftar bugs yang ditemukan, dan SonarQube memberikan informasi status dari bugs tersebut, apakah masuk ke dalam Blocker, Critical, Major, Minor, Info dan estimasi dalam penyelesaian.
Gambar di atas menunjukkan salah satu bugs yang ditemukan dan SonarQube menjelaskan kenapa kode program tersebut salah dengan memberikan penjelasan seperti gambar di atas.
Kesimpulan
Menggunakan SonarQube memberikan fasilitas dalam mengkontrol kualitas kode dan mengurangi jumlah pontensial kekutu (bug). Programmer bisa lebih fokus pada logika yang dibuat dan dapat mencurahkan waktu dalam kebutuhan analisis bisnis dan menemukan solusi optimal untuk kasus yang kompleks.
Analisis kode program dapat bermanfaat untuk berbagai banyak aplikasi yang dikembangkan. Jika digunakan dengan benar, SonarQube merupakan tools yang sangat bermanfaat dalam menghasilkan sebuah aplikasi yang baik.
Sumber:
http://sonarqube.org/
https://www.loginradius.com/blog/async/sonarqube/
https://www.crestdatasys.com/an-introduction-on-using-sonarqube
https://bqstack.com/b/detail/44/Why-SonarQube-is-important-for-IT-projects-%3F