IRK Library
Description
IRK Library adalah aplikasi berbasis Android yang menggabungkan beberapa konsep fundamental pada mata kuliah IRK (Ilmu dan Rekayasa Komputasi). Aplikasi ini dirancang sebagai learning platform yang membantu mahasiswa memahami konsep pada matkul-matkul IRK!.
Aplikasi ini hadir dengan 5 fitur utama:
- Sistem Persamaan Linear & Operasi Matrix - Implementasi algoritma Gauss-Jordan, Cramer, dan berbagai operasi matrix
- Kriptografi - Caesar Cipher dan RSA Algorithm dengan step-by-step explanation
- Huffman Coding - Visualisasi tree construction dan proses encoding/decoding
- References - Kumpulan slide perkuliahan dari mata kuliah IRK dengan fitur pencarian menggunakan algoritma KMP
- About - Info tentang pembuat aplikasi dan motivasi pengembangan
Logo aplikasi ini berupa buku dengan tulisan "A" yang merepresentasikan harapan agar aplikasi ini dapat membantu mahasiswa meraih indeks A!
Tech Stack
- Language: Kotlin
- Platform: Android (API 24+)
- Architecture: MVVM (Model-View-ViewModel)
- UI Framework:
- Navigation Drawer dengan Fragment-based architecture
- Material Design 3 components
- Custom views untuk visualisasi tree
- Libraries:
- Navigation Component untuk navigasi antar fragment
- ViewBinding untuk binding layout
- RecyclerView untuk list tampilan
- Custom Canvas untuk drawing Huffman tree
- Algorithm Implementation:
- Divide and Conquer untuk perkalian dan eksponensiasi matrix
- Brute Force untuk operasi matrix dasar
- KMP (Knuth-Morris-Pratt) untuk string matching di fitur references
Features Overview
1. SPL & Matrix Operations
Fitur ini mengimplementasikan berbagai algoritma untuk menyelesaikan Sistem Persamaan Linear dan operasi matrix. Terdapat implementasi berbagai strategi algoritma seperti Brute Force dan Divide & Conquer pada operasi matrix.
Sistem Persamaan Linear
Metode Cramer |
Eliminasi Gauss-Jordan |
Operasi Matrix
Penjumlahan dan Pengurangan Matrix |
|
Perkalian Matrix Brute Force dan Divide & Conquer |
|
![]() Matrix Inverse |
![]() Determinan Matrix |
2. Cryptography
Implementasi algoritma kriptografi Caesar Cipher dan RSA dengan step-by-step explanation yang mengikuti materi PPT Pak Rinaldi. Mendukung input untuk 256 karakter ASCII.
Caesar Cipher |
RSA Algorithm |
3. Huffman Coding
Implementasi lengkap algoritma Huffman Coding dengan visualisasi tree yang interaktif. Fitur ini dilengkapi dengan auto-solve untuk kemudahan penggunaan.
![]() Visualisasi Pohon Huffman |
![]() Step-by-step Construction |
![]() Encoding Process |
![]() Decoding Process |
4. References
Kumpulan lengkap slide perkuliahan dari mata kuliah IRK dengan fitur pencarian menggunakan algoritma KMP (Knuth-Morris-Pratt) untuk string matching.
![]() Pencarian Slide |
![]() Hasil Filter KMP |
| References dengan KMP Search | |
Mata Kuliah yang Tersedia:
- Matematika Diskrit
- Aljabar Linear dan Geometri
- Strategi Algoritma
5. About
Halaman personal yang berisi informasi tentang developer, motivasi pengembangan aplikasi, dan visi sebagai calon asisten IRK.
About Developer |
Architecture Overview
Aplikasi ini dibangun menggunakan arsitektur MVVM (Model-View-ViewModel) untuk memisahkan logic bisnis dari UI dan memudahkan testing serta maintenance.
Struktur MVVM:
- Model: Diimplementasikan dalam folder
datayang berisi models dan repositories untuk mengelola data aplikasi - View: UI components berupa Fragment yang menampilkan data dan menerima user interaction
- ViewModel: Mengelola state UI dan berkomunikasi dengan repository untuk data processing
Project Structure:
IRK-Library-Android/
├── app/
│ ├── src/main/java/com/irklibrary/app/
│ │ ├── data/ # Data Layer
│ │ │ ├── models/ # Data models
│ │ │ │ ├── CryptographyModel.kt
│ │ │ │ ├── HuffmanModel.kt
│ │ │ │ ├── MatrixSPLModel.kt
│ │ │ │ └── SlideModel.kt
│ │ │ └── repositories/ # Data repositories
│ │ │ ├── CryptographyRepository.kt
│ │ │ ├── HuffmanRepository.kt
│ │ │ ├── MatrixSPLRepository.kt
│ │ │ └── SlideRepository.kt
│ │ └── ui/ # Presentation Layer
│ │ ├── main/ # Main Activity
│ │ ├── page1/ # SPL & Matrix Fragment
│ │ │ ├── MatrixSPLFragment.kt
│ │ │ ├── MatrixSPLViewModel.kt
│ │ │ └── StepsAdapter.kt
│ │ ├── page2/ # Cryptography Fragment
│ │ ├── page3/ # Huffman Coding Fragment
│ │ │ ├── HuffmanTreeView.kt # Custom tree view
│ │ │ └── ...
│ │ ├── page4/ # References Fragment
│ │ └── page5/ # About Fragment
│ └── res/ # Resources
│ ├── layout/ # XML layouts
│ ├── drawable/ # Icons & graphics
│ └── values/ # Colors, strings, themes
├── screenshots/ # App screenshots
├── irk-library.apk # Signed APK
└── README.md # This file
Algorithm Implementation
Aplikasi ini mengimplementasikan berbagai strategi algoritma untuk menyelesaikan masalah komputasi dengan efisien:
1. Brute Force - Perkalian Matrix
Implementasi algoritma Brute Force untuk perkalian matrix menggunakan triple nested loop standar untuk menghitung setiap elemen hasil matrix. Kompleksitas waktu: O(n³) untuk matrix n×n.
2. Divide and Conquer - Perkalian Matrix
Implementasi algoritma Divide and Conquer untuk perkalian matrix dengan membagi matrix menjadi 4 sub-matrix yang lebih kecil dengan menerapkan perkalian secara rekursif pada setiap sub-matrix. Kompleksitas waktu: O(n³).
3. Divide and Conquer - Eksponensiasi Matrix
Implementasi fast matrix exponentiation menggunakan binary exponenentiation, dengan membagi masalah menjadi sub-masalah yang lebih kecil. Kompleksitas waktu: O(n³ log k) untuk matrix n×n pangkat k.
4. KMP (Knuth-Morris-Pratt) - String Matching
Implementasi algoritma KMP untuk fitur pencarian di halaman References. Menggunakan failure function untuk menghindari pengulangan pencocokan dan Preprocessing pattern untuk membuat LPS (Longest Proper Prefix Suffix) array. Kompleksitas waktu: O(n + m), dimana n = panjang text, m = panjang pattern.


Penjumlahan dan Pengurangan Matrix
Perkalian Matrix Brute Force dan Divide & Conquer







About Developer