Sitemap

PMD Source Code Analyzer

2 min readJan 29, 2025

--

https://pmd.github.io

Apa Itu PMD?

PMD adalah alat static code analysis untuk menemukan masalah dalam kode sumber Java, Apex, JavaScript, dan beberapa bahasa lain.

Fungsi Utama

Berikut fungsi utama pada PMD :

  1. Mendeteksi bad practices dan kode redundan
  2. Menemukan bug potensial (misalnya, NullPointerException)
  3. Memeriksa style code agar lebih bersih dan maintainable
  4. Bisa diintegrasikan dengan Maven, Gradle, atau CI/CD pipeline

Contoh Penggunaan PMD di Java

Misalnya, kita punya kode Java berikut yang memiliki beberapa masalah:

public class Example {
public void badMethod() {
String message = "Hello"; // Variabel tidak digunakan
if (true) {
System.out.println("This is always true");
}
}
}

Masalah yang bisa dideteksi PMD:
❌ Variabel message tidak digunakan (UnusedLocalVariable)
❌ if (true) adalah redundant conditional statement

Cara Menggunakan PMD (Java)

Install PMD via Homebrew dengan command

$ brew install pmd

Jalankan PMD untuk Menganalisis Kode

$ pmd check -d /path/to/project/src -R rulesets/java/quickstart.xml -f text


# -d → Direktori kode yang akan dianalisis
# -R → Ruleset yang digunakan (bisa custom)
# -f text → Format output

Contoh Hasil Output PMD

Example.java:2: Avoid unused local variables such as 'message'
Example.java:3: Avoid if statements that are always true or false

Dari hasil ini, kita tahu harus menghapus variabel message dan memperbaiki redundant conditional.

Integrasi dengan Maven

Jika proyek menggunakan Maven, tambahkan dependency PMD berikut. Keuntungan dengan menggunakan maven bisa otomatis mengecek kode saat build.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.15.0</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>

Lalu jalankan:

mvn pmd:check

Kesimpulan

✅ PMD membantu mendeteksi kode buruk sebelum masuk ke production.
✅ Cocok untuk proyek besar dengan banyak developer.
✅ Bisa diintegrasikan ke CI/CD agar kode lebih bersih & maintainable.

Get Firman’s stories in your inbox

Join Medium for free to get updates from this writer.

Cocok buat kamu yang ingin menulis Java yang lebih baik tanpa harus cek manual! 🚀

--

--