# Tutorial Penggunaan QM Komputasi 2.4.0-r8

Panduan operasional lengkap berdasarkan alur antarmuka pada `qm-komputasi_2.4.0-r8.py`

Copyright © Kasmui, 2026. All Rights Reserved.

---

## 1. Ruang lingkup tutorial

Dokumen ini menjelaskan penggunaan **QM Komputasi 2.4.0-r8** setelah aplikasi terpasang. Pembahasan disusun mengikuti urutan menu dan kontrol pada aplikasi, dari membuka program sampai memeriksa serta menyimpan hasil.

QM Komputasi menggabungkan beberapa tahap dalam satu antarmuka:

1. memasukkan atau menggambar struktur molekul;
2. memeriksa identitas kimia, charge, dan multiplicity;
3. membuat geometri awal tiga dimensi;
4. memilih backend, job, metode, basis set, dan sumber daya;
5. menjalankan perhitungan pada proses latar belakang;
6. memantau status dan log;
7. membaca energi, orbital, dipol, geometri, frekuensi, Add-On, dan descriptor;
8. membuka folder hasil serta mengunduh data untuk dokumentasi atau analisis lanjutan.

> **Prinsip penting:** status `Completed` hanya menyatakan proses program selesai. Status tersebut tidak otomatis membuktikan bahwa struktur, konvergensi, metode, basis set, atau interpretasi ilmiahnya sudah benar.

---

## 2. Daftar isi

1. [Ruang lingkup tutorial](#1-ruang-lingkup-tutorial)
2. [Menjalankan aplikasi](#3-menjalankan-aplikasi)
3. [Mengenali menu utama](#4-mengenali-menu-utama)
4. [Alur kerja yang disarankan](#5-alur-kerja-yang-disarankan)
5. [Menyiapkan input molekul](#6-menyiapkan-input-molekul)
6. [Memeriksa daftar molekul](#7-memeriksa-daftar-molekul-dan-identitas-kimia)
7. [Mengatur komputasi](#8-mengatur-komputasi)
8. [Praktik pertama dengan air](#9-praktik-pertama-optimasi-molekul-air)
9. [Menggunakan Input TXT](#10-menggunakan-input-txt-atau-gaussian-like)
10. [Menjalankan dan menghentikan job](#11-menjalankan-memantau-dan-menghentikan-job)
11. [Membaca hasil](#12-membaca-hasil-komputasi)
12. [Visualisasi orbital 3D](#13-visualisasi-homo-dan-lumo-3d-interaktif)
13. [Pusat Hasil Pekerjaan](#14-menggunakan-menu-hasil-pekerjaan)
14. [20 Contoh Riset](#15-menggunakan-menu-20-contoh-riset)
15. [Research Complete](#16-menggunakan-menu-research-complete)
16. [Utilitas terintegrasi](#17-menggunakan-utilitas-terintegrasi)
17. [Folder dan berkas keluaran](#18-folder-dan-berkas-keluaran)
18. [Pemecahan masalah](#19-pemecahan-masalah)
19. [Validasi ilmiah](#20-validasi-ilmiah-sebelum-menggunakan-hasil)
20. [Checklist ringkas](#21-checklist-ringkas-penggunaan)

---

## 3. Menjalankan aplikasi

### 3.1 Dari paket DEB Ubuntu atau WSL Ubuntu

Buka terminal Ubuntu/WSL, kemudian jalankan:

```bash
qm-komputasi
```

Browser biasanya terbuka otomatis. Jika tidak, buka alamat berikut secara manual:

```text
http://localhost:8801
```

Biarkan terminal tetap terbuka selama aplikasi digunakan. Menutup terminal dapat menghentikan server antarmuka, walaupun perlakuan terhadap worker komputasi bergantung pada keadaan proses yang sedang berlangsung.

Untuk memeriksa dependensi paket:

```bash
qm-komputasi-doctor
```

### 3.2 Dari kode Python

Jika aplikasi dijalankan langsung dari kode sumber:

```bash
streamlit run qm-komputasi_2.4.0-r8.py --server.port=8801
```

Versi r8 memerlukan Python 3.10 atau lebih baru, Streamlit 1.63.0 atau lebih baru, serta `py3Dmol` untuk visualisasi tiga dimensi.

---

## 4. Mengenali menu utama

Sidebar kiri memuat enam pilihan navigasi:

| Menu | Fungsi utama |
|---|---|
| **⚛️ Komputasi** | Menyiapkan input, memilih metode, menjalankan job, memantau proses, dan membaca hasil job aktif/terakhir. |
| **🧪 20 Contoh Riset** | Memilih rancangan riset contoh, membuat XYZ awal, serta mengubahnya menjadi Input TXT yang dapat diterapkan langsung. |
| **🧪 Research Complete** | Workspace tambahan untuk diagnosis backend, konformer, xTB, DFTB+, Psi4, BSSE/SAPT, OpenMM, dan scientific gate. |
| **📚 Hasil Pekerjaan** | Membaca kembali riwayat run QM Komputasi yang tersimpan pada folder hasil. |
| **🎯 Tujuan** | Ringkasan tujuan dan kegunaan aplikasi. |
| **📘 Penggunaan** | Petunjuk cepat di dalam aplikasi. |

Ketika pindah dari menu **⚛️ Komputasi**, dialog utilitas yang sedang terbuka ditutup. Dialog tidak akan terbuka kembali tanpa klik baru pada tombolnya.

---

## 5. Alur kerja yang disarankan

Gunakan urutan berikut agar setiap perhitungan dapat diperiksa dan direproduksi:

1. tetapkan pertanyaan penelitian;
2. pilih atau masukkan molekul;
3. pastikan struktur dan identitas kimianya benar;
4. tentukan charge dan multiplicity setiap molekul;
5. pilih backend yang benar-benar tersedia;
6. pilih jenis job;
7. pilih metode dan basis set yang sesuai;
8. atur optimizer, Add-On, toleransi, grid, CPU, dan memori;
9. simpan molekul beserta seluruh pengaturan sebagai Input TXT;
10. jalankan job;
11. pantau status dan `progress.log`;
12. periksa konvergensi serta struktur akhir;
13. baca hasil sesuai tujuan penelitian;
14. simpan CSV, struktur, cube, log, dan ZIP job;
15. dokumentasikan seluruh konfigurasi pada laporan penelitian.

Untuk pengujian pertama, gunakan molekul kecil seperti Water, Methane, Ammonia, Methanol, Ethanol, atau Benzene. Jangan langsung memulai dari molekul besar dengan basis set sangat besar.

---

## 6. Menyiapkan input molekul

Aplikasi menyediakan beberapa jalur input. Pilih salah satu jalur yang paling sesuai. Satu molekul tidak perlu dimasukkan melalui beberapa jalur sekaligus.

### 6.1 Input TXT yang memuat molekul dan seluruh pengaturan

Bagian paling atas pada Input Molekul adalah:

**📄 Input TXT — Molekul + Semua Pengaturan Komputasi**

Format unggahan yang diterima:

- `.txt`
- `.gjf`
- `.com`
- `.inp`

File dapat menggunakan format Gaussian-like untuk satu molekul atau blok `[MOLECULE]` untuk banyak molekul. Input TXT dapat menyimpan struktur, charge, multiplicity, program, job, metode, basis set, CPU, memori, toleransi SCF, grid, optimizer, Add-On, dan parameter lainnya.

Langkah penggunaan:

1. Klik **Pilih / UPLOAD file input TXT**.
2. Pilih satu file UTF-8 atau UTF-8-SIG.
3. Tunggu aplikasi membaca file.
4. Periksa tabel **Pengaturan dari TXT**.
5. Periksa daftar molekul, format struktur, charge, dan multiplicity.
6. Baca seluruh peringatan atau kesalahan validasi.
7. Jika tidak ada error, klik **📥 Terapkan TXT ke Molekul & Semua Pengaturan**.
8. Setelah halaman dimuat ulang, pastikan muncul pemberitahuan **MODE TXT AKTIF**.

Saat Mode TXT aktif:

- molekul dalam TXT menjadi input komputasi eksklusif;
- pilihan preset dan input manual dinonaktifkan;
- unggahan struktur manual sebelumnya diabaikan;
- seluruh pengaturan yang valid diterapkan ke widget terkait;
- Mode TXT dapat dihentikan dengan tombol **↩ Nonaktifkan Mode TXT**.

Gunakan tombol berikut untuk memperoleh contoh format:

- **⬇ Simpan template 1 molekul**
- **⬇ Simpan template multi molekul**

Pembahasan format TXT secara lebih rinci tersedia pada [Bagian 10](#10-menggunakan-input-txt-atau-gaussian-like).

### 6.2 Menggambar struktur dengan JSME 2D

Klik:

**🧪 JSME 2D — Buat/Edit Struktur**

Langkahnya:

1. Pada **Mulai dari**, pilih **— Struktur baru —** atau pilih salah satu preset/molekul tersimpan sebagai struktur awal.
2. Gunakan toolbar JSME untuk memilih atom, ikatan, cincin, atau gugus fungsi.
3. Gambar atau ubah struktur pada kanvas dua dimensi.
4. Isi **Nama molekul**.
5. Isi **Charge** dari −20 sampai 20.
6. Isi **Multiplicity** minimal 1.
7. Periksa SMILES yang ditampilkan oleh editor.
8. Klik **💾 Simpan ke QM Komputasi**.
9. Aplikasi memvalidasi struktur menggunakan RDKit.
10. Jika valid, struktur disimpan ke `upload_molekul.json` dan ditambahkan ke katalog Input Molekul.

Tombol **🧹 Struktur baru** mengosongkan kanvas. Tombol **Tutup Editor 2D** atau ikon X menutup dialog.

JSME hanya menggambar struktur 2D. Setelah struktur disimpan, RDKit membuat geometri 3D yang akan digunakan oleh backend QM. Warna dan bentuk pada editor 2D bukan hasil optimasi kuantum.

JSME dimuat dari jaringan. Jika editor tidak muncul, periksa koneksi internet dan pesan status dalam dialog.

### 6.3 Memilih molekul bawaan atau molekul tersimpan

Pada **Molekul bawaan (50 preset + molekul tersimpan)**:

1. klik kotak pilihan;
2. cari nama molekul;
3. pilih satu atau beberapa molekul;
4. lanjutkan ke tabel identitas kimia;
5. hapus pilihan jika molekul tidak akan dihitung.

Secara default tidak ada molekul yang dipilih. Katalog memuat tepat 50 preset asli. Molekul yang ditambahkan melalui SMILES, InChI, file lokal, upload, atau JSME disimpan pada `upload_molekul.json` dan ditampilkan di atas preset, dengan penambahan terbaru berada paling atas.

### 6.4 Menambahkan SMILES

Gunakan kotak **Tambah SMILES**. Tulis satu molekul per baris dengan format:

```text
Nama=SMILES
```

Contoh:

```text
Ethanol=CCO
Acetone=CC(=O)C
```

Gunakan tanda sama dengan sebagai pemisah nama dan struktur. Jangan memakai tanda `|` pada kotak ini.

### 6.5 Menambahkan InChI

Gunakan kotak **Tambah InChI**. Tulis satu molekul per baris:

```text
Nama=InChI
```

Contoh:

```text
Water=InChI=1S/H2O/h1H2
```

Satu molekul cukup dimasukkan pada satu jenis input. Jangan memasukkan molekul yang sama sekaligus sebagai SMILES dan InChI.

### 6.6 Membaca file struktur dari path lokal

Pada **Nama/path file struktur lokal**, tulis satu path per baris, misalnya:

```text
/home/kasmui/molekul/ethanol.sdf
/mnt/c/Users/USWE/Downloads/water.xyz
```

Pastikan path dapat dibaca oleh WSL/Ubuntu. Path Windows harus ditulis sebagai path WSL, misalnya drive `C:` menjadi `/mnt/c/`.

### 6.7 Mengunggah file struktur

Pada **Upload struktur molekul**, pilih satu atau beberapa file.

Format yang dibaca langsung meliputi:

- SDF
- MOL
- MOL2
- PDB
- XYZ
- SMI atau SMILES
- InChI atau TXT

Format lain dicoba melalui Open Babel jika program tersebut tersedia. Keberhasilan konversi tetap harus diperiksa pada struktur dan identitas hasil.

### 6.8 Menggunakan Compound Converter untuk menyiapkan identifier

Jika hanya memiliki nama senyawa, file MOL/SDF, atau gambar struktur, buka **⚗️ Compound Converter**. Hasil SMILES atau XYZ dari converter dapat digunakan sebagai input utama. Prosedur lengkap dijelaskan pada [Bagian 17.2](#172-compound-converter).

---

## 7. Memeriksa daftar molekul dan identitas kimia

Setelah input dibaca, aplikasi menampilkan **Daftar molekul dan identitas kimia**.

Kolom yang tersedia:

| Kolom | Kegunaan |
|---|---|
| **Pakai** | Menentukan apakah molekul disertakan dalam job. |
| **Nama** | Nama yang digunakan pada tampilan dan folder hasil; dapat disunting. |
| **Formula** | Formula molekul hasil identifikasi; hanya dibaca. |
| **SMILES** | Representasi struktur; hanya dibaca. |
| **InChIKey** | Kunci identitas InChI; hanya dibaca. |
| **Muatan** | Charge total molekul; dapat disunting. |
| **Multiplicitas** | Nilai `2S+1`; dapat disunting dari 1 sampai 20. |
| **Sumber** | Asal struktur; hanya dibaca. |

Langkah pemeriksaan:

1. pastikan hanya molekul yang benar yang dicentang pada kolom **Pakai**;
2. periksa nama dan formula;
3. periksa bahwa SMILES mewakili struktur yang dimaksud;
4. tetapkan charge total;
5. tetapkan multiplicity;
6. pastikan tidak ada duplikasi nama atau molekul yang tidak diperlukan;
7. lihat preview 2D dan 3D.

Untuk molekul netral closed-shell, nilai yang sering digunakan adalah charge 0 dan multiplicity 1. Untuk ion, radikal, atau sistem open-shell, nilai harus ditentukan berdasarkan jumlah elektron dan keadaan spin yang diteliti.

### 7.1 Override charge dan multiplicity dari sidebar

Kontrol **Charge** dan **Multiplicity** pada sidebar tidak langsung menimpa nilai per molekul. Agar keduanya diterapkan sebagai nilai awal untuk semua molekul, aktifkan:

**Gunakan Charge & Multiplicity sidebar**

Setelah itu nilai tetap dapat diperbaiki per molekul melalui tabel editor.

### 7.2 Preview struktur 2D dan 3D

Untuk molekul terpilih, aplikasi menampilkan tab preview hingga delapan molekul pertama.

- Sisi 2D menampilkan gambar struktur dan tabel Formula, SMILES, InChI, InChIKey, Muatan, serta Multiplicitas.
- Sisi 3D menampilkan struktur interaktif jika `py3Dmol` tersedia.

Preview 3D adalah geometri input, bukan jaminan geometri minimum. Tetap periksa struktur final setelah optimasi.

---

## 8. Mengatur komputasi

### 8.1 Nama proyek

Isi **Nama proyek** dengan nama yang singkat dan bermakna, misalnya:

```text
WATER_B3LYP_OPT
```

Nama proyek digunakan sebagai bagian nama folder dan nama berkas input/output. Hindari nama yang terlalu umum jika melakukan banyak percobaan.

### 8.2 Memilih Program QM

Pilihan pada versi r8:

| Program | Kegunaan dan syarat |
|---|---|
| **PySCF** | Jalur utama untuk HF, DFT, dan MP2 single-point. Mendukung banyak keluaran elektronik dan cube. |
| **PySCF Semiempirical** | Menyediakan MINDO/3 dan AM1 melalui ekstensi semiempirik PySCF. |
| **MOPAC CLI** | Menjalankan metode semiempirik MOPAC jika executable tersedia pada `PATH`. |
| **xTB CLI** | Menjalankan GFN2-xTB, GFN1-xTB, atau GFN0-xTB jika executable tersedia. |
| **DFTB+ CLI** | Menjalankan DFTB2/SCC atau DFTB3 dengan parameter Slater–Koster yang disediakan pengguna. |
| **Psi4 CLI** | Menjalankan workflow Standard, Transition State, IRC, Counterpoise BSSE, atau SAPT0 jika Psi4 tersedia. |
| **ORCA CLI** | Menjalankan metode yang didukung adapter ORCA jika executable ORCA tersedia. |

Untuk latihan pertama, pilih **PySCF**.

Lihat bagian **Status backend pada komputer ini**. Tanda centang menunjukkan backend terdeteksi; tanda peringatan menunjukkan backend belum siap.

> Aplikasi tidak mengganti backend secara diam-diam. Jika program yang dipilih tidak tersedia, job tidak dijalankan dan aplikasi menampilkan kesalahan.

### 8.3 Memilih jenis Job

Tersedia enam jenis job:

| Job | Arti praktis |
|---|---|
| **Single Point** | Menghitung energi dan properti pada geometri input tanpa optimasi. |
| **Single Point + Gradient** | Menghitung energi dan gradien pada geometri input. |
| **Geometry Optimization** | Mengubah geometri untuk mencari struktur stasioner sesuai metode. |
| **Geometry Optimization + Final Gradient** | Mengoptimasi lalu menghitung gradien akhir. |
| **Frequency Analysis** | Menghitung frekuensi pada geometri input. Gunakan geometri yang sudah layak. |
| **Geometry Optimization + Frequency** | Mengoptimasi lalu menjalankan analisis frekuensi untuk membantu memeriksa sifat titik stasioner. |

Default antarmuka adalah **Geometry Optimization**.

### 8.4 Metode PySCF

Metode yang tersedia pada jalur PySCF:

- HF dengan pilihan Auto (RHF/UHF), RHF, ROHF, atau UHF;
- LDA (SVWN);
- PBE;
- BP86;
- BLYP;
- B3LYP;
- B3LYP-D3BJ;
- PBE0;
- PBE0-D3BJ;
- TPSS;
- TPSSh;
- M06-L;
- M06-2X;
- CAM-B3LYP;
- ωB97X-D3BJ;
- SCAN;
- MP2.

Metode yang tidak kompatibel dengan job tertentu disaring dari daftar. Pada jalur PySCF aplikasi ini, **MP2 tidak digunakan untuk optimasi geometri dan tidak mendukung frequency**. Gunakan MP2 sebagai single-point pada geometri yang telah dioptimasi dengan metode yang sesuai.

Untuk HF:

- **RHF** umumnya untuk closed-shell;
- **ROHF** atau **UHF** untuk sistem open-shell;
- **Auto (RHF/UHF)** mempertahankan perilaku otomatis aplikasi.

### 8.5 Metode semiempirik PySCF

Pilihan:

- MINDO/3
- AM1

Frequency tidak dipaksakan pada ekstensi semiempirik PySCF. Untuk semiempirik dan frekuensi, gunakan MOPAC CLI jika instalasi MOPAC mendukungnya.

### 8.6 Metode MOPAC

Pilihan pada antarmuka:

- MNDO
- AM1
- PM3
- RM1
- MNDOD
- PM6
- PM6-D3
- PM6-DH+
- PM6-DH2
- PM6-D3H4
- PM6-DH2X
- PM6-D3H4X
- PM7

PM4 dan PM5 tidak ditampilkan karena bukan Hamiltonian standar MOPAC. Pada hasil MOPAC, energi yang disajikan dapat berupa **heat of formation (ΔHf)**, bukan energi elektronik total Hartree. Jangan membandingkannya langsung dengan energi total PySCF.

### 8.7 Metode xTB, DFTB+, Psi4, dan ORCA

- xTB: GFN2-xTB, GFN1-xTB, atau GFN0-xTB.
- DFTB+: DFTB2/SCC atau DFTB3.
- Psi4: HF, B3LYP, PBE0, M06-2X, wB97X-D, MP2, atau SAPT0.
- ORCA: HF, RHF, ROHF, UHF, B3LYP, PBE, PBE0, BP86, M06-2X, atau CAM-B3LYP.

Untuk DFTB+:

1. isi **Direktori Slater-Koster (`*.skf`)**;
2. pastikan parameter kompatibel dengan semua unsur dalam molekul;
3. aktifkan atau nonaktifkan **SCC** sesuai metode;
4. atur **Max SCC iterations** jika diperlukan.

Aplikasi tidak mengunduh atau mengganti parameter Slater–Koster secara diam-diam.

Untuk Psi4:

1. pilih basis set;
2. pilih workflow Standard, Transition State, IRC, Counterpoise BSSE, atau SAPT0;
3. isi **Solvasi PCM** dengan `none`, `water`, atau nama yang dikenali instalasi Psi4/PCMSolver;
4. verifikasi hasil frekuensi, mode imajiner, dan hubungan IRC secara kimia.

### 8.8 Basis set

Basis set dikelompokkan menurut ukuran praktis:

| Kelompok | Basis set |
|---|---|
| **Small** | STO-3G, 3-21G, 6-31G, 6-31G*, 6-31G**, def2-SV(P), def2-SVP, cc-pVDZ, pcseg-0 |
| **Medium** | 6-311G, 6-311G*, 6-311G**, def2-SVPD, def2-TZVP, def2-TZVPP, cc-pVTZ, aug-cc-pVDZ, pcseg-1 |
| **Large** | def2-TZVPD, def2-TZVPPD, def2-QZVP, cc-pVQZ, aug-cc-pVTZ, pcseg-2 |
| **Very large** | def2-QZVPP, def2-QZVPD, def2-QZVPPD, aug-cc-pVQZ, pcseg-3 |

Default adalah **def2-SVP**. STO-3G dapat dipakai untuk menguji alur, tetapi biasanya tidak cukup untuk kesimpulan kuantitatif. Basis yang lebih besar meningkatkan biaya CPU, memori, ruang penyimpanan, dan waktu.

### 8.9 Optimizer

Untuk optimasi melalui PySCF tersedia:

- geomeTRIC melalui PySCF;
- PyBerny melalui PySCF;
- ASE-BFGS melalui PySCF, jika dependensinya tersedia.

Default adalah **geomeTRIC melalui PySCF**. Backend MOPAC, xTB, DFTB+, Psi4, dan ORCA menggunakan optimizer internal ketika job optimasi dipilih sehingga kontrol optimizer PySCF dinonaktifkan.

### 8.10 Add-Ons

Pilihan Add-On:

| Add-On | Catatan penggunaan |
|---|---|
| **None** | Tidak menjalankan komputasi tambahan. Ini adalah default. |
| **IR** | Menghitung vibrasi harmonik pada jalur yang didukung. |
| **Thermodynamics** | Menghitung besaran termokimia; meminta temperatur dan tekanan. |
| **UV-Vis** | Meminta jumlah excited states; default 20. |
| **NMR** | Menggunakan properti yang tersedia pada jalur PySCF. |
| **Raman** | Menggunakan adapter ORCA bila tersedia; meminta temperatur dan tekanan. |
| **ΔH f (g3mp2)** | Memerlukan Gaussian yang tersedia. |
| **NBO (def2-tzpp)** | Memerlukan ORCA dan NBO6/7; basis ditetapkan ke def2-TZPP pada jalur ini. |

Jangan menganggap suatu Add-On tersedia hanya karena namanya muncul pada daftar. Periksa backend, log, dan status Add-On pada hasil.

### 8.11 Temperatur, tekanan, dan excited states

Jika Add-On **Thermodynamics** atau **Raman** dipilih:

- Temperature: 1–5000 K, default 298,15 K;
- Pressure: 1–100.000.000 Pa, default 101.325 Pa.

Jika Add-On **UV-Vis** dipilih:

- jumlah excited states: 1–200;
- default: 20.

### 8.12 Cube grid MEP/HOMO/LUMO

Kontrol ini aktif untuk PySCF:

- minimum 30;
- maksimum 160;
- default 60;
- kenaikan 10.

Nilai 60 berarti 60³ atau 216.000 titik per cube. Grid lebih besar menghasilkan berkas lebih besar dan memerlukan lebih banyak waktu serta memori.

### 8.13 Toleransi konvergensi SCF dan grid DFT

Pilihan toleransi SCF tersedia dari `1e-3` sampai `1e-10`. Default r8 adalah:

```text
1e-9
```

DFT grid level tersedia dari 1 sampai 9, default 3. Kontrol ini aktif terutama untuk metode DFT pada PySCF.

Jangan memperketat toleransi atau memperbesar grid tanpa mempertimbangkan tujuan, ukuran molekul, stabilitas SCF, dan biaya komputasi.

### 8.14 Batas iterasi dan sumber daya

Default penting:

| Parameter | Rentang | Default |
|---|---:|---:|
| Maksimum langkah optimasi | 5–1000 | 100 |
| Maksimum siklus SCF | 20–2000 | 120 |
| CPU threads | 1–256 | 2 |
| Memori maksimum | 256–262.144 MB | 4000 MB |
| Seed geometri awal | 1–2.147.483.647 | 20260820 |

Sesuaikan CPU dan memori dengan perangkat nyata. Jangan menetapkan memori lebih besar daripada RAM yang aman tersedia bagi WSL/Ubuntu.

### 8.15 GPU4PySCF

Jika GPU CUDA terdeteksi, aplikasi menampilkan nama dan jumlah perangkat. Opsi **Gunakan GPU4PySCF bila tersedia** hanya aktif ketika:

1. program yang dipilih adalah PySCF;
2. GPU terdeteksi;
3. GPU4PySCF terpasang.

GPU Threads mencatat jumlah worker host. Penjadwalan kernel CUDA tetap dikelola driver/backend. Jika GPU4PySCF tidak tersedia, aplikasi tetap memakai CPU dan tidak mengubah jalur perhitungan secara diam-diam.

### 8.16 Density fitting, seed, dan pre-optimasi

- **Density fitting / RI (PySCF)**: default nonaktif; dapat mempercepat perhitungan tertentu.
- **Seed geometri awal**: menjaga reproduktibilitas pembangunan konformer awal.
- **Pre-optimasi MMFF94/UFF**: default aktif untuk input yang belum mempunyai geometri baik.

Pre-optimasi force field hanya menyiapkan geometri awal. Energi MMFF/UFF bukan energi akhir QM.

---

## 9. Praktik pertama: optimasi molekul air

Contoh ini memakai konfigurasi default yang cukup ringan dan mengikuti alur utama aplikasi.

### 9.1 Konfigurasi

| Parameter | Nilai |
|---|---|
| Molekul | Water |
| Program QM | PySCF |
| Job | Geometry Optimization |
| Metode | B3LYP |
| Basis set | def2-SVP |
| Charge | 0 |
| Multiplicity | 1 |
| Optimizer | geomeTRIC melalui PySCF |
| Add-On | None |
| Cube grid | 60 |
| SCF tolerance | 1e-9 |
| DFT grid level | 3 |
| Maksimum optimasi | 100 |
| Maksimum SCF | 120 |
| CPU threads | 2 |
| Memori | 4000 MB atau sesuai perangkat |
| Density fitting | Nonaktif |
| Pre-optimasi | Aktif |

### 9.2 Langkah demi langkah

1. Jalankan `qm-komputasi`.
2. Buka `http://localhost:8801` jika browser tidak terbuka.
3. Pada menu utama pilih **⚛️ Komputasi**.
4. Pada **Molekul bawaan**, pilih **Water**.
5. Isi nama proyek `WATER_B3LYP_OPT`.
6. Pilih **Program QM = PySCF**.
7. Pilih **Job = Geometry Optimization**.
8. Pilih **Metode komputasi = B3LYP**.
9. Pilih **Basis set = def2-SVP**.
10. Biarkan **Gunakan Charge & Multiplicity sidebar** nonaktif jika nilai Water dari preset sudah benar.
11. Pada tabel molekul, pastikan **Pakai** dicentang, **Muatan = 0**, dan **Multiplicitas = 1**.
12. Periksa preview 2D dan 3D.
13. Pilih optimizer **geomeTRIC melalui PySCF**.
14. Pilih **Add-Ons = None**.
15. Biarkan cube grid 60, SCF tolerance `1e-9`, dan grid DFT 3.
16. Sesuaikan CPU dan memori dengan perangkat.
17. Klik **💾 Simpan Molekul + Semua Pengaturan sebagai TXT** untuk membuat arsip input yang dapat dimuat ulang.
18. Klik **▶ Jalankan Geometry Optimization**.
19. Pantau status, progress bar, dan `progress.log`.
20. Setelah selesai, pastikan status **COMPLETED** dan baca apakah ada warning atau error.
21. Periksa struktur final 3D.
22. Periksa panjang O–H dan sudut H–O–H pada tab geometri.
23. Periksa energi, HOMO, LUMO, gap, dan momen dipol.
24. Buka tab Orbital dan pilih HOMO atau LUMO jika cube tersedia.
25. Unduh ringkasan CSV dan ZIP seluruh job.
26. Buka **📚 Hasil Pekerjaan** untuk memastikan run dapat ditemukan kembali.

### 9.3 Validasi lanjutan

Optimasi geometri saja belum membuktikan bahwa struktur adalah minimum. Untuk pemeriksaan yang lebih kuat:

1. gunakan hasil geometri optimasi;
2. jalankan **Frequency Analysis**, atau sejak awal pilih **Geometry Optimization + Frequency**;
3. periksa jumlah frekuensi imajiner;
4. kandidat minimum umumnya tidak mempunyai frekuensi imajiner yang bermakna;
5. jika ada frekuensi negatif, periksa mode vibrasinya dan kualitas konvergensi.

---

## 10. Menggunakan Input TXT atau Gaussian-like

Input TXT sangat berguna untuk reproduktibilitas karena struktur dan konfigurasi disimpan bersama.

### 10.1 Template satu molekul

Contoh yang kompatibel dengan aplikasi:

```text
%project=Water_Opt_Freq
%program=PySCF
%nprocshared=4
%mem=4000MB
%optimizer=geomeTRIC melalui PySCF
%addon=IR
%scf_conv_tol=1e-9
%grid_level=3
%max_opt_steps=100
%max_scf_cycle=120
%cube_grid=60
%seed=20260820
%preopt=false
%density_fitting=false
%gpu=false
# B3LYP/def2-SVP Opt Freq

Optimasi dan frekuensi molekul air

0 1
O  0.000000  0.000000  0.000000
H  0.758600  0.000000  0.504300
H -0.758600  0.000000  0.504300
```

Baris `0 1` berarti charge 0 dan multiplicity 1.

Route line berikut:

```text
# B3LYP/def2-SVP Opt Freq
```

diterjemahkan menjadi metode B3LYP, basis def2-SVP, dan job Geometry Optimization + Frequency.

### 10.2 Template multi molekul

Gunakan blok berikut untuk setiap molekul:

```text
[MOLECULE]
name=Water
format=XYZ
charge=0
multiplicity=1
data:
3
Water
O  0.000000  0.000000  0.000000
H  0.758600  0.000000  0.504300
H -0.758600  0.000000  0.504300
[/MOLECULE]

[MOLECULE]
name=Ethanol
format=SMILES
charge=0
multiplicity=1
data=CCO
[/MOLECULE]
```

Format blok yang didukung:

- `PRESET`
- `SMILES`
- `INCHI`
- `XYZ`
- `LOCAL`

### 10.3 Directive yang dikenali

Directive penting meliputi:

```text
%project=
%program=
%job=
%method=
%basis=
%optimizer=
%addon=
%nprocshared=
%mem=
%scf_conv_tol=
%grid_level=
%max_opt_steps=
%max_scf_cycle=
%cube_grid=
%seed=
%preopt=
%density_fitting=
%gpu=
%gpu_threads=
%temperature_k=
%pressure_pa=
%uvvis_nroots=
%dftb_sk_dir=
%dftb_scc=
%dftb_max_scc=
%psi4_workflow=
%psi4_solvent=
```

Memori dapat ditulis sebagai `4000MB` atau `4GB`. Nilai boolean menerima bentuk seperti `true/false`, `yes/no`, `ya/tidak`, atau `aktif/nonaktif`.

### 10.4 Validasi sebelum diterapkan

Aplikasi memeriksa:

- program dan job yang didukung;
- kecocokan metode dengan backend;
- keberadaan basis set pada daftar aplikasi;
- kompatibilitas MP2 dengan job PySCF;
- format molekul dan validitas SMILES/InChI/XYZ;
- keberadaan file untuk format LOCAL;
- rentang CPU, memori, grid, iterasi, temperatur, tekanan, dan parameter lain;
- bahwa toleransi SCF cocok dengan pilihan UI `1e-3` sampai `1e-10`.

Jangan menekan tombol penerapan jika aplikasi masih menampilkan error.

### 10.5 Mengekspor konfigurasi aktif

Setelah memilih molekul dan seluruh pengaturan, klik:

**💾 Simpan Molekul + Semua Pengaturan sebagai TXT**

Nama file mengikuti nama proyek, misalnya:

```text
WATER_B3LYP_OPT_QM_Input.txt
```

File tersebut dapat dimuat kembali untuk memulihkan struktur, charge/multiplicity, dan konfigurasi komputasi.

---

## 11. Menjalankan, memantau, dan menghentikan job

### 11.1 Sebelum menekan Run

Pastikan:

1. minimal satu molekul dicentang;
2. charge dan multiplicity benar;
3. backend menunjukkan status tersedia;
4. metode dan basis sesuai tujuan;
5. job kompatibel dengan metode;
6. sumber daya tidak melebihi kemampuan perangkat;
7. nama proyek sudah benar;
8. konfigurasi telah disimpan sebagai Input TXT.

### 11.2 Menjalankan

Klik tombol:

```text
▶ Jalankan <nama job>
```

Saat tombol diklik, aplikasi mengambil snapshot konfigurasi. Perubahan widget setelah worker dimulai tidak mengubah konfigurasi job yang sedang berjalan.

Setiap job diproses di latar belakang. Jika banyak molekul dipilih, progress menampilkan jumlah molekul selesai dibandingkan total.

### 11.3 Memantau status

Ruang utama menampilkan:

- state job;
- pesan proses saat ini;
- persentase progress;
- jumlah molekul selesai;
- path folder run;
- `progress.log` hingga 120 baris terakhir;
- tombol untuk menyalin log.

Pada Streamlit yang mendukung fragments, status diperbarui otomatis. Jika tidak, gunakan **🔄 Refresh status**.

### 11.4 Menghentikan job

Klik **⏹ Stop**.

Stop diproses pada checkpoint yang aman:

- setiap iterasi SCF PySCF;
- setiap langkah optimasi;
- proses eksternal MOPAC, xTB, atau ORCA dapat diterminasi.

Setelah permintaan Stop dikirim, tunggu status berubah. Hasil molekul yang telah selesai tetap disimpan.

### 11.5 Membuka folder job

Setelah folder tersedia, gunakan:

- **📂 Folder job**
- **🗂 Buka folder**

Pada WSL, aplikasi berusaha membuka lokasi melalui mekanisme sistem operasi yang tersedia. Jika pembukaan otomatis gagal, salin path folder yang ditampilkan dan buka secara manual.

---

## 12. Membaca hasil komputasi

### 12.1 Ringkasan hasil

Tabel ringkasan dapat memuat:

- proyek;
- molekul dan formula;
- program, metode, basis, dan jenis energi;
- energi dalam Eh, eV, dan kJ/mol;
- ΔHf MOPAC jika relevan;
- gap HOMO–LUMO;
- vektor dan magnitudo dipol;
- Add-On;
- RMS gradien;
- jumlah mode frekuensi;
- jumlah frekuensi imajiner.

Gunakan **⬇ Unduh ringkasan CSV** untuk menyimpan tabel. Setelah worker berhenti, gunakan **⬇ Unduh seluruh input/output/log (ZIP)** untuk mengarsipkan seluruh run.

### 12.2 Metrik per molekul

Setiap hasil molekul menampilkan metrik utama:

- energi total atau ΔHf MOPAC;
- energi eV atau konversi yang relevan;
- HOMO;
- gap HOMO–LUMO;
- momen dipol;
- jumlah atom;
- charge;
- multiplicity.

Tabel informasi lengkap juga menampilkan identitas, energi dalam beberapa satuan, perubahan energi optimasi, indeks HOMO/LUMO, statistik MEP, gradien, frekuensi, Add-On, dan catatan backend.

### 12.3 Tab Struktur final 3D

Gunakan tab ini untuk:

1. memutar dan memperbesar struktur final;
2. memeriksa konektivitas;
3. memastikan tidak ada fragmentasi atau ikatan abnormal;
4. membandingkan bentuk akhir dengan struktur awal.

Jangan menafsirkan energi sebelum struktur akhir diperiksa.

### 12.4 Tab Koordinat

Tab ini menampilkan koordinat atom struktur akhir. Gunakan koordinat untuk dokumentasi, pemindahan ke program lain, atau perhitungan lanjutan.

### 12.5 Tab Geometri lengkap

Tab ini memuat:

- semua panjang ikatan;
- semua sudut ikatan;
- semua sudut dihedral;
- tabel energi dan geometri sepanjang optimasi jika tersedia.

Gunakan tombol **⬇ Unduh optimasi: geometri lengkap + semua energi CSV** untuk menyimpan data.

### 12.6 Tab Orbital

Tab menampilkan tabel orbital jika backend menyediakan datanya. Bagian awal memuat tabel frontier HOMO/LUMO yang dapat dipilih; tabel lengkap tersedia dalam expander.

Tidak semua backend menyediakan tabel orbital lengkap atau cube melalui adapter aplikasi.

### 12.7 Tab Muatan Mulliken

Tab menampilkan muatan atom Mulliken jika tersedia. Muatan Mulliken bergantung pada metode dan basis set. Jangan memperlakukannya sebagai satu-satunya definisi muatan atom.

### 12.8 Tab Frekuensi

Tab menampilkan frekuensi vibrasi dalam cm⁻¹ dan menyediakan unduhan CSV.

- nilai negatif menunjukkan frekuensi imajiner;
- nol frekuensi imajiner bermakna konsisten dengan kandidat minimum lokal;
- satu mode imajiner bermakna dapat konsisten dengan transition state orde pertama;
- lebih dari satu mode imajiner menunjukkan higher-order saddle atau geometri yang belum layak.

Klasifikasi tersebut tetap harus dilengkapi pemeriksaan mode vibrasi dan, untuk transition state, IRC.

### 12.9 Tab Add-On

Tab menampilkan metadata status Add-On, tabel hasil, serta termokimia jika tersedia. Jika `Add-On = None`, tidak ada komputasi tambahan.

### 12.10 Tab QSAR/QSPR

Tab menampilkan descriptor RDKit 2D/3D dan descriptor QM/conceptual-DFT jika tersedia. Gunakan tombol unduh CSV.

Descriptor bukan model QSAR yang otomatis tervalidasi. Pemodelan tetap memerlukan kurasi dataset, pembagian train/test, pemeriksaan multikolinearitas, applicability domain, validasi internal, dan validasi eksternal.

### 12.11 Tab File struktur & cube

Tab menyediakan:

- XYZ;
- MOL;
- SDF;
- PDB;
- density cube;
- MEP cube;
- HOMO cube;
- LUMO cube.

MOL, SDF, dan PDB mempertahankan tabel ikatan/konektivitas. Cube terutama dihasilkan melalui jalur PySCF apabila tahap pembuatannya berhasil.

---

## 13. Visualisasi HOMO dan LUMO 3D interaktif

Fitur utama r8 adalah pemilihan orbital frontier langsung dari tabel.

### 13.1 Membuka viewer

1. Selesaikan job menggunakan backend **PySCF**.
2. Buka hasil molekul pada area hasil job atau melalui **📚 Hasil Pekerjaan**.
3. Pilih tab **Orbital**, atau pada Pusat Hasil pilih **🧠 HOMO–LUMO, dipol & elektronik**.
4. Pada tabel **Orbital frontier 3D interaktif**, klik baris **HOMO** atau **LUMO**.
5. Tunggu viewer `py3Dmol` muncul.

Jika kolom Visualisasi 3D menampilkan **Cube tidak tersedia**, energi orbital mungkin ada tetapi berkas cube tidak berhasil dibuat.

### 13.2 Mengoperasikan viewer

- seret mouse untuk memutar struktur;
- gunakan roda mouse atau pinch untuk memperbesar atau memperkecil;
- klik dua kali untuk memusatkan tampilan;
- atur slider **Isovalue**.

Rentang isovalue:

- minimum 0,005;
- maksimum 0,100;
- default 0,030;
- kenaikan 0,005.

Nilai lebih kecil menampilkan lobus lebih luas. Nilai lebih besar menampilkan daerah amplitudo orbital yang lebih tinggi.

### 13.3 Memahami warna fase

- biru menunjukkan satu fase fungsi gelombang;
- merah menunjukkan fase yang berlawanan.

Warna biru dan merah **bukan** muatan positif dan negatif. Untuk membahas distribusi elektrostatik, gunakan MEP dan analisis muatan yang sesuai.

### 13.4 Mengunduh cube

Klik **⬇ Unduh cube HOMO** atau **⬇ Unduh cube LUMO**. Viewer membatasi penampilan interaktif untuk cube hingga 100 MB; cube yang lebih besar tetap dapat diperiksa melalui file hasil menggunakan perangkat lunak visualisasi lain.

Jika viewer gagal:

1. pastikan `py3Dmol` terpasang;
2. pastikan job menggunakan PySCF;
3. periksa `progress.log`;
4. periksa tab File struktur & cube;
5. periksa ukuran dan integritas cube.

---

## 14. Menggunakan menu Hasil Pekerjaan

Menu **📚 Hasil Pekerjaan** membaca riwayat QM Komputasi berdasarkan folder fisik. Pekerjaan lama tetap dapat muncul walaupun format JSON berbeda.

Lokasi utama:

```text
~/.local/share/qm-komputasi/qm_runs
```

Aplikasi juga memeriksa folder legacy `runs`, lokasi aplikasi lama, dan beberapa HOME pengguna yang dikenali. Lokasi dapat diperluas dengan variabel `QM_KOMPUTASI_EXTRA_RESULT_DIRS`.

### 14.1 Memilih run

1. Pilih menu **📚 Hasil Pekerjaan**.
2. Buka **🔎 Folder yang dipindai** jika run belum terlihat.
3. Klik **🔄 Pindai ulang sekarang**.
4. Pilih **📁 Proyek / run**.
5. Periksa ikon status, jumlah hasil, total, dan sumber folder.
6. Pilih jenis hasil pada **🔎 Daftar hasil**.
7. Untuk hasil yang bergantung pada molekul, pilih **🧪 Pilih molekul**.
8. Gunakan **📂 Buka Folder Run** jika perlu.

### 14.2 Jenis tampilan hasil

| Tampilan | Isi |
|---|---|
| **📋 Ringkasan yang sudah dilakukan** | Checklist input, energi, optimasi, elektronik, frekuensi, Add-On, descriptor, serta log. |
| **🧪 Hasil per molekul** | Identitas dan metrik molekul beserta file pada foldernya. |
| **⚡ Energi & metode** | Perbandingan energi, metode, basis, job, ΔHf MOPAC, dan ΔE optimasi. |
| **🧠 HOMO–LUMO, dipol & elektronik** | HOMO, LUMO, gap, dipol, viewer orbital frontier, dan Mulliken. |
| **📐 Geometri & optimasi** | Panjang ikatan, sudut, dihedral, dan riwayat optimasi. |
| **〰️ Frekuensi & termokimia** | Mode vibrasi, frekuensi imajiner, dan termokimia. |
| **🧩 Add-On** | Metadata dan tabel hasil Add-On. |
| **📊 QSAR/QSPR descriptor** | Descriptor yang tersedia. |
| **📦 File hasil & output** | Inventaris file menurut kategori, pembuka lokasi, dan unduh file hingga 50 MB. |
| **📡 Status, progres & log** | `status.json`, `progress.log`, `summary.log`, `error.log`, dan `results.json`. |
| **🧭 Konfigurasi & provenance** | `config.json`, `input_manifest.json`, status, dan hasil. |

Jenis tampilan hanya muncul jika data yang relevan ditemukan.

### 14.3 Hasil lama yang tidak mempunyai JSON lengkap

Jika aplikasi menemukan folder pekerjaan tetapi tidak dapat membaca data numerik terstruktur, hasil ditandai sebagai pekerjaan lama berbasis folder. Gunakan **📦 File hasil & output** atau tombol buka folder untuk memeriksa file mentah.

---

## 15. Menggunakan menu 20 Contoh Riset

Menu ini menyediakan 20 rancangan:

1. air: optimasi dan ikatan O–H;
2. amonia: struktur elektronik dan dipol;
3. metana: energi dan simetri;
4. CO₂: vibrasi regang dan linearitas;
5. formaldehida: MEP dan HOMO–LUMO;
6. metanol: ikatan hidrogen dan polaritas;
7. etanol: konformer anti dan gauche;
8. aseton: IR dan karbonil;
9. asam asetat: konformasi dan muatan;
10. benzena: delokalisasi π;
11. fenol: pengaruh –OH;
12. anilina: donasi pasangan elektron N;
13. piridina: pusat basa/akseptor;
14. glisina: pencarian konformer;
15. alanina: konformasi dan stereokimia;
16. aspirin: MEP, orbital, dan situs reaktivitas;
17. kafeina: descriptor elektronik dan QSAR/QSPR;
18. ibuprofen: ensemble konformer;
19. parasetamol: donor/akseptor ikatan hidrogen;
20. urea: resonansi, planaritas, dan ikatan C–N.

Langkah penggunaan:

1. buka **🧪 20 Contoh Riset**;
2. pilih judul pada **Pilih contoh riset**;
3. baca tujuan;
4. periksa nama, charge, multiplicity, dan SMILES;
5. periksa XYZ awal yang dibuat RDKit;
6. unduh XYZ jika diperlukan;
7. baca tabel metode dan rencana analisis;
8. pilih profil **Sesuai tujuan riset** atau **Default QM Komputasi**;
9. periksa konfigurasi TXT yang akan dibuat;
10. klik **⬇ Konversi & simpan sebagai Input TXT**, atau klik **📥 Gunakan langsung sebagai Input Molekul**;
11. jika diterapkan langsung, aplikasi berpindah ke menu Komputasi dengan Mode TXT aktif;
12. periksa kembali semua parameter sebelum Run.

Koordinat XYZ contoh adalah geometri awal dari ETKDGv3 dan MMFF94s/UFF bila tersedia, bukan hasil akhir QM.

Profil **Sesuai tujuan riset** memilih satu tahap QM utama yang valid terhadap UI. Rencana multi-tahap pada contoh tidak selalu dieksekusi sekaligus. Khusus contoh urea, MP2 diterapkan sebagai Single Point karena jalur PySCF aplikasi tidak menyediakan MP2 untuk optimasi/frequency.

---

## 16. Menggunakan menu Research Complete

Menu **🧪 Research Complete** adalah workspace tambahan. Engine eksternal hanya dijalankan jika benar-benar tersedia. Tidak ada fallback tersembunyi.

### 16.1 Tab Doctor

Tab menampilkan status:

- PySCF;
- RDKit;
- xTB;
- DFTB+;
- Psi4 CLI/Python;
- OpenMM;
- OpenFF Toolkit;
- OpenMMForceFields.

Laporan disimpan sebagai `doctor_report.json` pada folder Research Complete.

### 16.2 Tab Konformer

1. masukkan SMILES atau InChI;
2. tentukan **Jumlah embed**;
3. tentukan **Prune RMSD (Å)**;
4. tentukan **Top-N**;
5. klik **Jalankan Conformer Ensemble**;
6. periksa tabel konformer dan folder hasil.

Default contoh adalah `CCO`, 30 embed, prune RMSD 0,5 Å, dan Top-N 10.

### 16.3 Tab xTB

1. masukkan struktur XYZ;
2. isi solvent ALPB dengan `none`, `water`, atau pelarut yang dikenali xTB;
3. klik **Jalankan xTB GFN2**;
4. baca log dan folder hasil.

### 16.4 Tab DFTB+

1. masukkan XYZ;
2. isi direktori Slater–Koster;
3. klik **Bangun + Jalankan DFTB+**;
4. periksa input dan log.

Direktori parameter wajib diisi dan harus sesuai dengan unsur sistem.

### 16.5 Tab Psi4/TS/IRC

1. masukkan XYZ;
2. isi metode dan basis;
3. pilih task `energy`, `optimize`, `ts`, atau `irc`;
4. isi PCM solvent atau `none`;
5. periksa input Psi4 yang dibuat;
6. klik **Jalankan Psi4**;
7. baca output.

Transition state harus mempunyai mode imajiner yang sesuai koordinat reaksi. IRC harus menghubungkan minimum yang relevan.

### 16.6 Tab BSSE/SAPT

1. masukkan Fragment A dan Fragment B secara terpisah;
2. pilih mode `cp` atau `sapt0`;
3. isi metode Counterpoise dan basis jika mode CP dipilih;
4. periksa input yang dibuat;
5. klik **Jalankan Interaksi Psi4**;
6. baca hasil tanpa menganggap geometri dimer otomatis dioptimasi.

### 16.7 Tab OpenMM

1. periksa readiness OpenMM, OpenFF Toolkit, dan OpenMMForceFields;
2. unggah PDB;
3. unggah OpenMM System XML yang sudah diparameterisasi;
4. atur jumlah steps;
5. atur temperature;
6. atur timestep;
7. pilih platform CPU, CUDA, OpenCL, atau Reference;
8. klik **Jalankan Molecular Dynamics OpenMM**;
9. periksa ringkasan hasil.

MD produksi memerlukan force field yang sah. Aplikasi tidak membuat parameter palsu atau fallback diam-diam.

### 16.8 Tab Scientific Gate

1. masukkan frekuensi dalam cm⁻¹, dipisahkan koma, titik koma, atau spasi;
2. isi ambang frekuensi imajiner bermakna, default 50 cm⁻¹;
3. baca klasifikasi:
   - `minimum_candidate` untuk nol mode imajiner bermakna;
   - `ts_candidate` untuk satu mode;
   - `higher_order_saddle` untuk lebih dari satu mode.

Klasifikasi numerik tidak menggantikan inspeksi vektor mode dan IRC.

---

## 17. Menggunakan utilitas terintegrasi

### 17.1 DEB Package Viewer

Utilitas ini bersifat read-only dan hanya membaca paket Debian/Ubuntu terpasang.

1. pada menu Komputasi klik **Buka DEB Package Viewer**;
2. klik **🔄 Refresh data** jika diperlukan;
3. cari nama paket;
4. filter arsitektur, section, dan priority;
5. buka tab **📋 Daftar Paket** untuk tabel;
6. buka **🔎 Detail Paket** untuk versi, maintainer, dependensi, APT policy, dan daftar file;
7. buka **💾 Ekspor** untuk mengunduh CSV atau JSON;
8. klik **Tutup DEB Viewer**.

Viewer tidak menginstal, memperbarui, menghapus, atau melakukan purge paket.

### 17.2 Compound Converter

Jenis input:

- Nama trivial/IUPAC;
- SMILES;
- InChI;
- File struktur MOL/SDF;
- Gambar struktur melalui OCSR/DECIMER opsional.

Langkah:

1. klik **Buka Compound Converter**;
2. pilih jenis input;
3. masukkan teks atau unggah file;
4. klik **PROSES KONVERSI →**;
5. periksa sumber data;
6. periksa struktur 2D;
7. periksa PubChem CID, formula, massa molar, nama, dan identifier;
8. periksa SMILES, Connectivity SMILES, InChI, dan InChIKey;
9. periksa XYZ 3D yang dibuat RDKit;
10. unduh PNG, XYZ, atau JSON;
11. klik **Reset** untuk input baru atau **Tutup Compound Converter**.

Pencarian nama menggunakan PubChem PUG REST dan memerlukan internet. Pengenalan gambar memerlukan DECIMER. Hasil konversi harus diverifikasi karena nama ambigu atau OCSR dapat menghasilkan struktur yang tidak dimaksud.

---

## 18. Folder dan berkas keluaran

Lokasi data default:

```text
~/.local/share/qm-komputasi
```

Riwayat run:

```text
~/.local/share/qm-komputasi/qm_runs
```

Katalog molekul pengguna:

```text
~/.local/share/qm-komputasi/upload_molekul.json
```

Lokasi data dapat dioverride dengan variabel lingkungan `QM_KOMPUTASI_DATA_DIR`.

Satu run dapat memuat:

- `config.json`;
- `input_manifest.json`;
- `status.json`;
- `results.json`;
- `progress.log`;
- `summary.log`;
- `error.log` jika terjadi kesalahan;
- subfolder setiap molekul;
- struktur XYZ, MOL, SDF, dan PDB;
- tabel CSV koordinat, geometri, orbital, Mulliken, frekuensi, Add-On, dan descriptor;
- output mentah backend;
- checkpoint yang tersedia;
- density/MEP/HOMO/LUMO cube.

Simpan minimal:

1. Input TXT;
2. ZIP seluruh job;
3. ringkasan CSV;
4. struktur final;
5. log;
6. konfigurasi dan manifest;
7. file analisis yang dipakai dalam laporan.

---

## 19. Pemecahan masalah

### 19.1 Tidak ada molekul

Pesan: **Belum ada molekul** atau **Pilih minimal satu molekul yang valid**.

Tindakan:

1. pilih preset atau masukkan struktur;
2. pastikan parsing tidak menghasilkan error;
3. centang kolom **Pakai**;
4. jika Mode TXT aktif, periksa isi file TXT.

### 19.2 Backend tidak tersedia

- PySCF Semiempirical: aplikasi dapat mencoba memasang ekstensi `pyscf[semiempirical]`.
- MOPAC: pastikan executable MOPAC tersedia pada `PATH`.
- xTB: pastikan `xtb` tersedia.
- DFTB+: pastikan `dftb+` dan parameter Slater–Koster tersedia.
- Psi4: pastikan executable `psi4` tersedia.
- ORCA: pastikan executable ORCA tersedia pada `PATH`.

Gunakan **Status backend**, **Laporan cek & instal dependensi**, `qm-komputasi-doctor`, dan tab Doctor pada Research Complete.

### 19.3 SCF tidak konvergen

1. periksa charge dan multiplicity;
2. periksa struktur awal;
3. gunakan pre-optimasi jika input tidak memiliki geometri baik;
4. coba basis yang lebih kecil untuk diagnosis;
5. tambah maksimum siklus SCF secara wajar;
6. periksa log untuk oscillation atau error integral;
7. pertimbangkan reference HF/open-shell yang benar;
8. jangan menganggap hasil valid jika SCF tidak konvergen.

### 19.4 Optimasi tidak selesai

1. periksa apakah batas langkah optimasi tercapai;
2. periksa geometri awal dan fragmentasi;
3. coba pre-optimasi MMFF94/UFF;
4. gunakan molekul lebih kecil untuk menguji konfigurasi;
5. periksa optimizer dan backend;
6. baca gradien dan riwayat energi;
7. jangan memakai geometri yang belum konvergen sebagai minimum.

### 19.5 Viewer 3D tidak muncul

1. pastikan `py3Dmol` terpasang;
2. muat ulang halaman;
3. periksa apakah MolBlock tersedia;
4. untuk orbital, pastikan cube PySCF tersedia dan kurang dari atau sama dengan 100 MB;
5. unduh cube dan buka dengan viewer eksternal jika perlu.

### 19.6 JSME tidak muncul

JSME mengambil library dari CDN utama dan sumber cadangan. Periksa koneksi internet, tunggu status editor, lalu buka ulang dialog.

### 19.7 Hasil lama tidak ditemukan

1. buka **📚 Hasil Pekerjaan**;
2. buka **🔎 Folder yang dipindai**;
3. klik pindai ulang;
4. periksa `~/.local/share/qm-komputasi/qm_runs` dan `runs`;
5. jika memakai lokasi khusus, tetapkan `QM_KOMPUTASI_EXTRA_RESULT_DIRS`.

### 19.8 Folder tidak dapat dibuka otomatis

Salin path run yang ditampilkan. Dari WSL, buka folder dengan perintah yang sesuai, misalnya:

```bash
cd ~/.local/share/qm-komputasi/qm_runs
```

Untuk melihatnya dari Windows Explorer:

```bash
explorer.exe .
```

### 19.9 File TXT ditolak

1. simpan sebagai UTF-8;
2. periksa directive dan route line;
3. gunakan nama program, job, metode, dan basis yang didukung;
4. periksa format `[MOLECULE]`;
5. pastikan XYZ mempunyai jumlah atom dan koordinat valid;
6. gunakan salah satu toleransi SCF yang tersedia pada UI;
7. baca semua pesan validasi sebelum menerapkan.

---

## 20. Validasi ilmiah sebelum menggunakan hasil

### 20.1 Struktur

- periksa formula dan konektivitas;
- periksa protonasi dan tautomer;
- periksa charge dan multiplicity;
- periksa stereokimia;
- periksa struktur akhir dari distorsi atau fragmentasi.

### 20.2 Konvergensi

- pastikan SCF konvergen;
- pastikan optimasi memenuhi kriteria;
- periksa RMS dan maksimum gradien;
- baca warning dan error log;
- jangan hanya mengandalkan label Completed.

### 20.3 Konsistensi perbandingan

Bandingkan energi hanya jika sistem dihitung dengan protokol yang konsisten, termasuk:

- metode;
- basis set;
- charge;
- multiplicity;
- geometri dan tingkat optimasi;
- model pelarut jika digunakan;
- grid dan toleransi;
- koreksi dispersi;
- temperatur dan tekanan untuk termokimia.

### 20.4 Frekuensi

- minimum lokal: biasanya tidak ada frekuensi imajiner bermakna;
- transition state orde pertama: satu frekuensi imajiner yang sesuai koordinat reaksi;
- IRC diperlukan untuk menunjukkan koneksi menuju minimum yang relevan.

### 20.5 Orbital dan MEP

- gap HOMO–LUMO adalah descriptor bergantung metode;
- fase warna orbital bukan muatan;
- MEP harus dibaca bersama geometri, skala, dan model elektronik;
- jangan menyimpulkan reaktivitas hanya dari satu gambar orbital.

### 20.6 QSAR/QSPR

Descriptor hasil aplikasi adalah calon variabel. Model yang layak membutuhkan kurasi data, validasi, domain aplikasi, dan pengujian prediksi.

---

## 21. Checklist ringkas penggunaan

### Sebelum Run

- [ ] Pertanyaan penelitian jelas.
- [ ] Struktur dan identitas molekul benar.
- [ ] Charge benar.
- [ ] Multiplicity benar.
- [ ] Backend tersedia.
- [ ] Job kompatibel dengan metode.
- [ ] Metode dan basis sesuai tujuan.
- [ ] CPU dan memori aman.
- [ ] Add-On serta parameternya benar.
- [ ] Input TXT sudah disimpan.

### Saat Run

- [ ] Status bergerak dari starting/running.
- [ ] Progress log diperiksa.
- [ ] Tidak ada error backend.
- [ ] Stop hanya digunakan bila diperlukan.

### Setelah Run

- [ ] SCF konvergen.
- [ ] Optimasi konvergen.
- [ ] Struktur final masuk akal.
- [ ] Gradien diperiksa.
- [ ] Frekuensi imajiner diperiksa jika dihitung.
- [ ] Energi dibandingkan secara konsisten.
- [ ] Orbital, MEP, dan muatan tidak ditafsirkan berlebihan.
- [ ] CSV, struktur, log, konfigurasi, dan ZIP disimpan.
- [ ] Run dapat ditemukan kembali pada Hasil Pekerjaan.

---

## 22. Ringkasan alur cepat

```text
Jalankan qm-komputasi
→ pilih ⚛️ Komputasi
→ masukkan/pilih molekul
→ periksa identitas, charge, dan multiplicity
→ pilih backend dan job
→ pilih metode, basis, optimizer, serta Add-On
→ atur SCF, grid, CPU, memori, dan parameter lain
→ simpan Input TXT
→ klik Run
→ pantau status dan progress.log
→ periksa struktur, konvergensi, energi, orbital, dipol, geometri, frekuensi, dan descriptor
→ unduh CSV/struktur/cube/ZIP
→ buka kembali melalui 📚 Hasil Pekerjaan
```

Mulailah dari molekul kecil dan konfigurasi default **PySCF + B3LYP + def2-SVP + geomeTRIC**. Setelah seluruh alur berhasil dan hasil telah diverifikasi, barulah naikkan ukuran sistem, kualitas basis, kepadatan grid, metode, serta jenis analisis sesuai kebutuhan penelitian.
