-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Aplikasi EVote-Blockchain-dApps adalah sistem e-voting terdesentralisasi yang dibangun dengan Next.js dan Solidity, memanfaatkan teknologi blockchain Ethereum untuk menciptakan proses pemilihan yang transparan, aman, dan tidak dapat dimanipulasi. Aplikasi ini adalah Proyek dan Objek Penelitian Tugas Akhir dari Virgiawan Sagarmata Patabuga.
Sistem E-Vote ini dirancang untuk mengatasi masalah klasik pada pemilihan umum, yaitu kurangnya transparansi, potensi kecurangan, dan kerentanan terhadap manipulasi data. Proyek ini mengimplementasikan teknologi Blockchain dengan Protokol Ethereum untuk menciptakan sistem e-voting yang terdesentralisasi, aman, dan dapat diaudit secara publik.
Pemilihan umum adalah sarana penting untuk pergantian kekuasaan yang damai. Namun, sistem voting tradisional sering kali menghadapi tantangan signifikan terkait transparansi dan akuntabilitas. Meskipun sistem E-Vote (voting elektronik) konvensional telah diperkenalkan, masalah sentralisasi dan kurangnya kepercayaan masih menjadi isu utama. Data yang tersimpan di satu server pusat rentan terhadap manipulasi dan serangan siber.
Proyek ini menawarkan solusi dengan memanfaatkan teknologi blockchain, khususnya protokol Ethereum, untuk:
- Desentralisasi: Data voting tidak disimpan di satu server, melainkan di jaringan blockchain yang didistribusikan ke banyak node.
- Immutability (Tidak Dapat Diubah): Setelah suara dicatat di blockchain, data tersebut tidak dapat dimodifikasi atau dihapus.
- Transparansi: Setiap transaksi (pencatatan suara) dapat dilihat oleh siapa pun di jaringan, memastikan proses voting sepenuhnya transparan.
- Smart Contracts: Logika voting (pendaftaran pemilih, daftar kandidat, perhitungan suara) diatur oleh smart contract yang berjalan secara otomatis, menghilangkan kebutuhan akan perantara manusia yang dapat berbuat curang.
Arsitektur sistem terdiri dari dua komponen utama yang saling terhubung:
-
Frontend (UI/UX):
- Dibangun dengan Next.js, menyediakan antarmuka pengguna yang intuitif untuk pemilih dan administrator.
- Berinteraksi dengan blockchain melalui perpustakaan Web3 (misalnya,
ethers.jsatauweb3.js). - Memungkinkan pemilih untuk mendaftar, melihat kandidat, memberikan suara, dan melihat hasil.
-
Backend (Blockchain Logic):
-
Smart Contracts: Ditulis dengan Solidity dan di-deploy di jaringan Ethereum. Kontrak utama (
Evoting.sol) berisi semua logika voting. - Ethereum Protocol: Protokol blockchain yang menjadi fondasi untuk smart contract.
- Truffle Framework: Digunakan untuk mengkompilasi, menguji, dan mendeploy smart contract.
- Ganache: Digunakan sebagai blockchain pribadi lokal untuk lingkungan pengembangan dan pengujian.
-
Smart Contracts: Ditulis dengan Solidity dan di-deploy di jaringan Ethereum. Kontrak utama (
-
Kontrak
Evoting.sol:- Fungsi Utama: Mendaftarkan pemilih, mencatat suara (memastikan satu pemilih hanya bisa memberikan satu suara), dan menghitung total suara per kandidat.
- Konsep Kunci: Memanfaatkan address unik di Ethereum untuk mengidentifikasi pemilih.
-
Migrasi Kontrak:
- Skrip
migrations/digunakan untuk mendeployEvoting.solke jaringan blockchain yang ditargetkan.
- Skrip
-
Antarmuka Frontend:
- Direktori
client/berisi aplikasi Next.js. - Komponen-komponen UI bertanggung jawab untuk memanggil fungsi-fungsi smart contract melalui dompet kripto (seperti MetaMask).
- Direktori
Tugas Akhir ini bertujuan untuk:
- Membangun prototipe sistem E-Vote yang berfungsi penuh di jaringan blockchain.
- Mendemonstrasikan secara nyata bagaimana blockchain dapat meningkatkan transparansi dan keamanan dalam proses pemilihan.
- Menyediakan basis kode yang dapat dikembangkan lebih lanjut untuk sistem voting yang lebih kompleks.
-
Visi dan Roadmap
Tujuan jangka pendek dan panjang proyek. -
Catatan Pengembangan dan Troubleshooting
Log dan solusi untuk masalah yang dihadapi selama pengembangan. -
Panduan Setup Lokal
Langkah-langkah untuk menjalankan aplikasi di komputer Anda. -
Detail Smart Contracts
Penjelasan mendalam tentang kontrak Solidity dan fungsinya. -
Frontend Next.js
Penjelasan arsitektur dan interaksi UI dengan blockchain.