Penulisan Function, Modifier dalam Solidity
Kembali lagi dengan EMURGO Indonesia edukasi. Pada pembahasan sebelum nya kita sudah membahas tentang apa itu Solidity dan tipe basic dari solidity. Kali ini kita akan membahas bagaimana cara menulis function, bagaimana cara mengirim uang dengan menggunakan function payable, dan bagaimana cara menggunakan modifier dalam solidity. Penulisan function dalam solidity sebenarnya hampir mirip dengan penulisan function dalam java atau javascript.
Pertama kita buat sebuah contract terlebih dahulu.

Setelah itu buatlah variabel dengan tipe data uint dalam contract kita, dan isi dengan 1. Maka contract kita akan menjadi seperti berikut :

Kemudian kita akan membuat function untuk memanggil variabel “angka” yang sudah kita definisikan tadi. Misal kita ingin membuat function dengan nama panggil, maka kita cukup menulis dengan function <diikuti dengan nama function>.

Setelah itu jika kita ingin memanggil variabel, kita cukup menambahkan public view returns pada function dan definisikan tipe data return nya.

Function panggil tersebut akan memanggil isi dari variabel angka yang sudah kita definisikan tadi. Dan function tersebut hanya bisa memanggil isi variabel saja, tidak dapat mengubah isi dari variabel karena function tersebut bertipe view returns.
Sekarang kita akan membuat function untuk mengubah isi dari variabel tadi, bagaimana cara penulisan function nya ? cukup sederhana, kita hanya perlu membuat function baru dan definisikan tipe data untuk inputan nya pada function tersebut. Misal kita ingin membuat function bernama “ubah” dan tentu nya jika ingin mengubah variabel “angka” tadi kita akan definisikan tipe data nya dengan uint, karena variabel “angka” tadi berupa uint.

Seperti itulah cara penulisan function dalam Solidity untuk menampilkan isi dari variabel dan mengganti isi variabel.
Function Payable
Sekarang kita akan melanjutkan penulisan function untuk mengirim uang dengan menggunakan function payable. Penulisan function nya cukup mudah, Kita hanya harus menulis function yang di dalam nya berisi parameter address yang akan Kita kirimkan uang.

Kita modifikasi contract kita sebelumnya menjadi seperti berikut :

Setiap Kita ingin mengirim uang ke akun lain atau ke contract lain, Kita harus menggunakan function payable, karena jika tidak uang Kita yang digunakan untuk membayar gas akan hangus dan jumlah uang yang ingin Kita kirimkan ke akun lain tidak akan pernah terkirim. Bisa kita lihat pada code di atas, kita sudah definisikan parameter address dalam function kirim, setelah itu kita isi function tersebut agar bisa mengirim uang ke akun lain dengan memanggil function (addres_penerima).transfer(msg.value). .transfer digunakan untuk mengirim uang, sedangkan msg.value adalah jumlah uang yang dikirimkan.

Pada function kirim tersebut, kita akan membuat sebuah requirement. Requirement yang mengharuskan kita mengirim uang yang nilai nya lebih dari 100000000000000000. Kita akan membuat nya dengan menggunakan function modifier. Function modifier ini cukup menarik, karena kita bisa memodifikasi function kita dengan menggunakan modifier. Seperti contoh di bawah ini kita akan membuat require dalam modifier dan memasukkan modifier ke dalam function kita.


Bagaimana cara kerja modifier ? pertama kita masukkan modifier notZero ke dalam function kirim. Lalu secara otomatis jika kita memanggil function kirim maka hal yang pertama dilakukan adalah mengecek require yang ada di dalam modifier notZero, setelah setelah require terdapat tanda _; yang berarti semua isi dalam function kirim akan dipanggil semua setelah require selesai.

Seperti itulah dasar penulisan function dalam solidity, cara mengirim uang dengan function payable, dan cara menggunakan modifier untuk memodifikasi function dalam contract. Banyak hal menarik yang bisa dilakukan dengan solidity. Anda bisa mencoba function tersebut dengan menggunakan compiler yang disediakan oleh Cardano, saat ini Cardano menggunakan bahasa pemrograman solidity untuk smart contract nya pada IELE dan KEVM. Untuk melakukan test di IELE dengan menggunakan solidity kamu bisa kunjungi link berikut : https://testnet.iohkdev.io/iele/compiler/
Tentang EMURGO :
EMURGO mendorong adopsi Cardano dan menambah nilai bagi pemegang ADA dengan membangun, berinvestasi, dan memberi masukan kepada proyek atau organisasi yang mengadopsi ekosistem blockchain yang terdesentralisasi dari Cardano. EMURGO memanfaatkan keahliannya dalam R&D blockchain serta jaringan global mitra blockchain dan industri terkait untuk mendukung usaha secara global. EMURGO adalah badan komersial dan ventura resmi dari proyek Cardano, terdaftar di Tokyo,
Jepang sejak Juni 2017 dan di Singapura sejak Mei 2018. EMURGO berafiliasi secara unik dan bekerja sama dengan IOHK untuk menumbuhkan ekosistem Cardano secara global dan mempromosikan adopsi blockchain Cardano.
Follow social media EMURGO Indonesia untuk info lebih lanjut:
Twitter: https://twitter.com/emurgo_id
Facebook: https://www.facebook.com/emurgo.id/
Instagram: https://www.instagram.com/emurgo.id/
Medium: https://medium.com/@emurgo_id/