{"id":24514969,"url":"https://github.com/dalpan/pakarbengkel","last_synced_at":"2025-03-15T10:27:12.793Z","repository":{"id":250079828,"uuid":"833408218","full_name":"dalpan/PakarBengkel","owner":"dalpan","description":"Proyek ini adalah implementasi dari sistem pakar yang digunakan untuk mendiagnosa kerusakan pada mesin injeksi roda dua menggunakan metode Forward Chaining. Aplikasi ini dikembangkan menggunakan Java dengan antarmuka pengguna berbasis Swing.","archived":false,"fork":false,"pushed_at":"2024-07-25T02:34:45.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T23:34:50.477Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dalpan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T01:59:38.000Z","updated_at":"2024-07-25T02:34:48.000Z","dependencies_parsed_at":"2024-07-25T03:53:52.211Z","dependency_job_id":null,"html_url":"https://github.com/dalpan/PakarBengkel","commit_stats":null,"previous_names":["dalpan/pakarbengkel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalpan%2FPakarBengkel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalpan%2FPakarBengkel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalpan%2FPakarBengkel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalpan%2FPakarBengkel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dalpan","download_url":"https://codeload.github.com/dalpan/PakarBengkel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243716286,"owners_count":20336122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-22T01:15:23.007Z","updated_at":"2025-03-15T10:27:12.766Z","avatar_url":"https://github.com/dalpan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sistem Pakar Diagnosa Kerusakan Mesin Injection Roda Dua\n\nProyek ini adalah implementasi dari sistem pakar yang digunakan untuk mendiagnosa kerusakan pada mesin injeksi roda dua menggunakan metode Forward Chaining. Aplikasi ini dikembangkan menggunakan Java dengan antarmuka pengguna berbasis Swing.\n\n## Fitur\n\n- **Manajemen Gejala:** Tambahkan, hapus, dan lihat gejala yang mungkin terjadi pada mesin injeksi.\n- **Manajemen Kerusakan:** Tambahkan, hapus, dan lihat jenis kerusakan yang mungkin terjadi.\n- **Manajemen Aturan:** Tambahkan, hapus, dan lihat aturan yang menghubungkan gejala dengan kerusakan.\n- **Diagnosa:** Pilih gejala-gejala yang terdeteksi dan dapatkan hasil diagnosa berupa kerusakan yang mungkin terjadi.\n\n## Prasyarat\n\nPastikan Anda memiliki hal-hal berikut terinstal di sistem Anda:\n\n- [Java Development Kit (JDK) 8 atau lebih baru](https://www.oracle.com/java/technologies/javase-downloads.html)\n- [Apache NetBeans IDE](https://netbeans.apache.org/download/index.html)\n\n## Struktur Proyek\n\n```plaintext\nSistemPakarDiagnosis\n├── src\n│   └── com\n│       └── sistem\n│           └── pakar\n│               ├── Condition.java\n│               ├── Damage.java\n│               ├── Rule.java\n│               ├── ExpertSystem.java\n│               ├── KnowledgeBase.java\n│               ├── DiagnosisUI.java\n│               └── Main.java\n└── pom.xml\n```\n## Keterangan File\n### `KnowledgeBase.java`\n`KnowledgeBase.java` adalah kelas yang menyimpan dan mengelola basis pengetahuan yang mencakup gejala, kerusakan, dan aturan diagnosis. Kelas ini memungkinkan penambahan, penghapusan, dan pengambilan data yang diperlukan untuk proses diagnosis.\n\n#### Atribut:\n- `conditions`: Daftar objek `Condition` yang merepresentasikan gejala.\n- `damages`: Daftar objek `Damage` yang merepresentasikan kerusakan.\n- `rules`: Daftar objek `Rule` yang mendefinisikan aturan diagnosis.\n\n#### Metode:\n- **Constructor**: Menginisialisasi basis pengetahuan dengan data awal (gejala, kerusakan, aturan).\n- **addCondition(Condition condition)**: Menambahkan gejala baru ke basis pengetahuan.\n- **addDamage(Damage damage)**: Menambahkan kerusakan baru ke basis pengetahuan.\n- **addRule(Rule rule)**: Menambahkan aturan baru ke basis pengetahuan.\n- **getConditions()**: Mengembalikan daftar gejala yang ada.\n- **getDamages()**: Mengembalikan daftar kerusakan yang ada.\n- **getRules()**: Mengembalikan daftar aturan yang ada.\n\nKelas ini mengelola semua data yang diperlukan untuk diagnosis dan menyediakan metode untuk mengakses serta memodifikasi data tersebut.\n\n### `DiagnosisUI.java`\n`DiagnosisUI.java` adalah kelas yang menyediakan antarmuka pengguna grafis (GUI) untuk aplikasi sistem pakar. Kelas ini memungkinkan pengguna untuk memasukkan gejala, menambahkan data baru, dan melihat hasil diagnosis.\n\n#### Metode Utama:\n- **Constructor**: Menginisialisasi antarmuka pengguna, termasuk komponen untuk memilih gejala dan menampilkan hasil diagnosis.\n- **initUI()**: Mengatur dan menampilkan elemen GUI.\n- **addCondition()**: Menambahkan gejala baru melalui formulir.\n- **removeCondition()**: Menghapus gejala yang dipilih.\n- **diagnose()**: Menjalankan proses diagnosis dan menampilkan hasil.\n- **updateKnowledgeBase()**: Memperbarui basis pengetahuan dengan data baru yang dimasukkan oleh pengguna.\n\nKelas ini adalah titik interaksi antara pengguna dan sistem pakar, memungkinkan pengguna untuk berinteraksi dengan aplikasi dan mendapatkan diagnosis berdasarkan gejala yang dimasukkan.\n\n### `Rule.java`\n`Rule.java` adalah kelas yang mendefinisikan aturan diagnosis dalam sistem pakar. Kelas ini menyimpan informasi tentang aturan yang menghubungkan gejala dengan kerusakan.\n\n#### Atribut:\n- `damageCode`: Kode kerusakan yang dihasilkan jika aturan cocok.\n- `conditions`: Daftar kode gejala yang harus ada untuk menerapkan aturan ini.\n\n#### Metode:\n- **Constructor**: Digunakan untuk membuat instance `Rule` dengan kode kerusakan dan daftar gejala.\n- **getDamageCode()**: Mengembalikan kode kerusakan.\n- **getConditions()**: Mengembalikan daftar kode gejala.\n- **setDamageCode(String damageCode)**: Mengatur kode kerusakan.\n- **setConditions(List\u003cString\u003e conditions)**: Mengatur daftar kode gejala.\n\nKelas ini digunakan untuk menentukan aturan yang harus dipenuhi agar kerusakan tertentu dapat didiagnosis.\n\n### `Condition.java`\n`Condition.java` adalah kelas yang mendefinisikan objek gejala dalam sistem pakar. Kelas ini memiliki atribut dan metode untuk merepresentasikan gejala yang dapat terdeteksi oleh sistem.\n\n#### Atribut:\n- `code`: Kode identifikasi gejala (misalnya, \"G01\").\n- `name`: Nama gejala (misalnya, \"Bau aneh pada knalpot\").\n\n#### Metode:\n- **Constructor**: Digunakan untuk membuat instance `Condition` dengan kode dan nama gejala.\n- **getCode()**: Mengembalikan kode gejala.\n- **getName()**: Mengembalikan nama gejala.\n- **setCode(String code)**: Mengatur kode gejala.\n- **setName(String name)**: Mengatur nama gejala.\n\nKelas ini biasanya digunakan dalam proses diagnosis untuk mencocokkan gejala yang dilaporkan dengan kerusakan yang sesuai berdasarkan aturan yang telah ditentukan.\n\n### `Damage.java`\n`Damage.java` adalah kelas yang mendefinisikan objek kerusakan dalam sistem pakar. Kelas ini memiliki atribut dan metode untuk merepresentasikan kerusakan yang dapat terdeteksi oleh sistem.\n\n#### Atribut:\n- `code`: Kode identifikasi kerusakan (misalnya, \"K01\").\n- `name`: Nama kerusakan (misalnya, \"Kerusakan pada sensor MAP\").\n\n#### Metode:\n- **Constructor**: Digunakan untuk membuat instance `Damage` dengan kode dan nama kerusakan.\n- **getCode()**: Mengembalikan kode kerusakan.\n- **getName()**: Mengembalikan nama kerusakan.\n- **setCode(String code)**: Mengatur kode kerusakan.\n- **setName(String name)**: Mengatur nama kerusakan.\n\nKelas ini biasanya digunakan dalam proses diagnosis untuk mencocokkan gejala dengan kerusakan yang sesuai berdasarkan aturan yang telah ditentukan.\n\n### `ExpertSystem.java`\n`ExpertSystem.java` adalah kelas utama yang mengelola data gejala, kerusakan, dan aturan dalam sistem pakar. Kelas ini menyimpan informasi dan melakukan diagnosis berdasarkan aturan yang diberikan.\n\n#### Atribut:\n- `conditions`: Daftar objek `Condition` yang merepresentasikan gejala.\n- `damages`: Daftar objek `Damage` yang merepresentasikan kerusakan.\n- `rules`: Daftar objek `Rule` yang mendefinisikan aturan diagnosis.\n\n#### Metode:\n- **Constructor**: Digunakan untuk membuat instance `ExpertSystem` dan menginisialisasi daftar gejala, kerusakan, dan aturan.\n- **addCondition(Condition condition)**: Menambahkan gejala baru ke daftar.\n- **addDamage(Damage damage)**: Menambahkan kerusakan baru ke daftar.\n- **addRule(Rule rule)**: Menambahkan aturan baru ke daftar.\n- **diagnose(Set\u003cString\u003e symptoms)**: Melakukan diagnosis berdasarkan gejala yang diberikan dan mengembalikan daftar kerusakan yang sesuai.\n\nKelas ini merupakan pusat logika dari sistem pakar yang mengatur semua data dan menjalankan proses diagnosis.\n\n\n## Diagram Alur\n```\nPilih Gejala\n     |\n     v\nMencari Aturan yang Sesuai\n     |\n     v\nHasil Diagnosa (Kerusakan yang Teridentifikasi)\n```\n\n## Clone Repository\n```\ngit clone https://github.com/username/SistemPakarDiagnosis.git\ncd SistemPakarDiagnosis\n```\n## Instalasi dan Menjalankan Aplikasi\n\n### Buka Proyek di NetBeans\n\n1. Buka NetBeans IDE.\n2. Pilih `File \u003e Open Project`.\n3. Arahkan ke folder `SistemPakarDiagnosis` yang telah di-clone dan pilih folder tersebut.\n4. Klik `Open Project`.\n\n### Bangun Proyek\n\nSetelah proyek terbuka di NetBeans, bangun proyek dengan:\n\n1. Klik kanan pada proyek di panel `Projects`.\n2. Pilih `Clean and Build`.\n\n### Jalankan Aplikasi\n\nUntuk menjalankan aplikasi:\n\n1. Klik kanan pada proyek di panel `Projects`.\n2. Pilih `Run`.\n\n## Penulis\n\nProyek ini dikembangkan oleh Van Lyubov.\n\n## Lisensi\n\nProyek ini dilisensikan di bawah lisensi MIT.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalpan%2Fpakarbengkel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdalpan%2Fpakarbengkel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalpan%2Fpakarbengkel/lists"}