Simulasi plugin WordPress untuk sistem reservasi layanan pariTourism berbasis Ethereum Smart Contract (Testnet only).
Plugin ini dirancang sebagai bagian dari inisiatif digitalisasi pariTourism lokal menggunakan pendekatan desentralisasi.
- Integrasi MetaMask untuk verifikasi pengguna
- Form pemesanan langsung tercatat on-chain
- Kompatibel dengan WordPress 6.5+
- Lightweight, tidak mengganggu performa website
- Tersedia demo simulasi di: smartourism.elpeef.com
Plugin ini dibuat untuk simulasi pendidikan dan eksperimen riset, terutama:
- Sistem reservasi wisata tanpa pihak ketiga
- Representasi identitas pengguna menggunakan wallet address
- Otomatisasi proses pencatatan reservasi langsung ke smart contract
Smart contract ERC-20 untuk prototipe sistem pemesanan layanan pariTourism.
- Penerbitan token
STTmenggunakan standar ERC20 - Fungsi
recordBooking()untuk mencatat data booking (nama & tanggal) - Fungsi
getMyBookings()untuk menampilkan data booking per wallet - Data bersifat transparan dan immutable di blockchain
Plugin ini masih dalam tahap awal (alpha version) dan hanya berfungsi di jaringan testnet. Harap tidak digunakan untuk transaksi komersial sampai lulus evaluasi resmi dan pengujian penuh.
Proyek ini merupakan bagian dari riset disertasi dan pengembangan ekosistem blockchain lokal untuk sektor pariwisata. Silakan buat pull request atau hubungi khudri.elpeef.com untuk kolaborasi.
Solidity v0.8.x
Jaringan: Ethereum Sepolia Testnet
Tools: Remix IDE, MetaMask, OpenZeppelin, Hardhat (opsional untuk dev lanjutan)
Deploy SmartTourismToken.sol
Transfer token ke user
Deploy SmartReservation.sol dan hubungkan dengan address token
User memesan dengan memanggil fungsi bookReservation() dan mengirimkan detail reservasi + token
struct Booking {
string nama;
string tanggal;
}
mapping(address => Booking[]) public bookings;
function recordBooking(string memory nama, string memory tanggal) public {
bookings[msg.sender].push(Booking(nama, tanggal));
}
function getMyBookings() public view returns (Booking[] memory) {
return bookings[msg.sender];
}