Normify
Normify is a modern web-based platform that automates the Data Normality Test process using the Straight Line Method. This application transforms complex and time-consuming manual statistical calculations into instant analysis (less than 1 second) with high accuracy, interactive visualization, and detailed reports.
Normify - Uji Normalitas Metode Garis Lurus
Normify adalah platform berbasis web modern yang mengotomatisasi proses Uji Normalitas Data menggunakan Metode Garis Lurus (Straight Line Method). Aplikasi ini mengubah proses perhitungan statistik manual yang rumit dan memakan waktu menjadi analisis instan (kurang dari 1 detik) dengan akurasi tinggi, visualisasi interaktif, dan laporan mendetail.
šø Tampilan Aplikasi
Halaman Utama (Dashboard)
Halaman Perhitungan & Analisis Data
Panduan Pengguna (GuideBook)
⨠Fitur Utama
- ā” Perhitungan Real-time: Menghitung Mean, Standar Deviasi, Slope, Intercept, dan R-squared secara instan menggunakan backend Python yang dioptimasi.
- š Visualisasi Interaktif: Menampilkan grafik histogram data asli vs kurva normal ideal (f(x')) menggunakan
Rechartsuntuk memudahkan interpretasi visual. - š„ Import & Export Data: Mendukung input data manual serta impor massal dari file Excel (
.xlsx) menggunakan template yang disediakan. - š Analisis Mendetail: Menyajikan tabel perhitungan langkah demi langkah (F Kumulatif, Z-score/u, u', p(u'), dll) untuk transparansi akademis.
- š Edukasi Terintegrasi: Dilengkapi dengan halaman Teori Dasar dan Guide Book interaktif (termasuk viewer PDF) untuk membantu pengguna memahami konsep statistik di baliknya.
- š± Responsif Modern: Antarmuka pengguna (UI) yang estetis dan responsif dibangun dengan Next.js dan Tailwind CSS.
š ļø Teknologi yang Digunakan
Project ini dibangun dengan arsitektur Microservices menggunakan Docker.
Frontend
- Framework: Next.js 16 (React)
- Styling: Tailwind CSS v4
- Visualization: Recharts
- Data Handling: SheetJS (xlsx)
- PDF Viewer: React-PDF / Native Object
Backend
- Language: Python 3.9
- Framework: FastAPI
- Computation: Pandas, NumPy, SciPy (untuk interpolasi statistik dan regresi linear)
- Server: Uvicorn
Infrastructure
- Containerization: Docker & Docker Compose
š Prasyarat Instalasi
Sebelum memulai, pastikan perangkat Anda telah terinstal:
- Docker Desktop (Direkomendasikan)
- Atau secara manual: Node.js (v18+) dan Python (v3.9+)
š¦ Cara Menjalankan Project
Metode 1: Menggunakan Docker (Direkomendasikan)
Cara termudah untuk menjalankan aplikasi tanpa konfigurasi environment manual.
-
Clone repository ini:
git clone [https://github.com/mifthrizky/normify.git](https://github.com/mifthrizky/normify.git) cd normify -
Jalankan dengan Docker Compose:
docker-compose up --build -
Akses Aplikasi:
- Frontend: Buka http://localhost:3000
- Backend API Docs: Buka http://localhost:8000/docs
Metode 2: Instalasi Manual
Jika Anda ingin menjalankan frontend dan backend secara terpisah.
1. Menjalankan Backend:
cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
2. Menjalankan Frontend: Buka terminal baru:
cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Akses aplikasi di http://localhost:3000.
š Susunan Project
normify/
āāā docker-compose.yml # Orkestrasi container
āāā backend/ # Service Backend (Python/FastAPI)
ā āāā app/
ā ā āāā main.py # Entry point API
ā ā āāā calculation.py # Logika perhitungan statistik (Core Logic)
ā āāā Dockerfile
ā āāā requirements.txt
āāā frontend/ # Service Frontend (Next.js)
āāā public/ # Aset statis (Images, PDF Guide)
āāā src/
ā āāā app/ # App Router (Dashboard, Uji, Teori, Guide)
ā āāā components/ # Komponen UI (Navbar, Footer, Charts)
āāā Dockerfile
āāā package.json
āāā tailwind.config.js
š” Contoh Penggunaan
- Buka halaman Uji Kenormalan.
- Masukkan data Nilai (Xi) dan Frekuensi (Fi) pada tabel input, atau klik Import dari Excel dan gunakan template yang tersedia.
- Klik tombol HITUNG HASIL.Sistem akan menampilkan: Kesimpulan: Apakah data NORMAL atau MENYIMPANG. Statistik: Mean, Standar Deviasi, dan Persamaan Regresi Linear (u' = mx + c). Grafik: Kurva lonceng yang membandingkan distribusi data Anda dengan distribusi normal teoritis.
š¤ Kontribusi
Kontribusi selalu diterima! Jika Anda ingin menambahkan fitur atau memperbaiki bug:
- Fork repository ini.
- Buat branch fitur baru (git checkout -b fitur-keren).
- Commit perubahan Anda (git commit -m 'Menambahkan fitur keren').
- Push ke branch (git push origin fitur-keren).
- Buat Pull Request.
š Lisensi
Project ini dilisensikan di bawah MIT License.
Dibuat dengan ā¤ļø oleh Miftah Rizky & Tim Normify