{"id":180,"date":"2025-08-28T14:37:59","date_gmt":"2025-08-28T14:37:59","guid":{"rendered":"https:\/\/learn.rantissi.my.id\/?p=180"},"modified":"2025-08-28T14:38:00","modified_gmt":"2025-08-28T14:38:00","slug":"menulis-dan-mendeploy-smart-contract-sendiri-ke-sepolia","status":"publish","type":"post","link":"https:\/\/learn.rantissi.my.id\/index.php\/2025\/08\/28\/menulis-dan-mendeploy-smart-contract-sendiri-ke-sepolia\/","title":{"rendered":"Menulis dan Mendeploy Smart Contract Sendiri ke Sepolia"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Kita Akan Buat Apa?<\/h2>\n\n\n\n<p>Hari ini kamu akan membuat smart contract bernama <strong>&#8220;MessagePortal&#8221;<\/strong>:<\/p>\n\n\n\n<p>\ud83d\udd39 Siapa pun bisa kirim pesan ke blockchain<br>\ud83d\udd39 Setiap pesan disimpan di dalam smart contract<br>\ud83d\udd39 Kita bisa ambil semua pesan yang pernah dikirim<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Buat File Smart Contract<\/h2>\n\n\n\n<p>\ud83d\udcc2 Masuk ke folder <code>contracts\/<\/code> dan buat file baru:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd contracts\nnano MessagePortal.sol\n<\/code><\/pre>\n\n\n\n<p>\u270f\ufe0f Isi dengan kode ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ncontract MessagePortal {\n    string&#91;] public messages;\n\n    function sendMessage(string memory _message) public {\n        messages.push(_message);\n    }\n\n    function getAllMessages() public view returns (string&#91;] memory) {\n        return messages;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udccc Penjelasan singkat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>messages[]<\/code> menyimpan semua pesan<\/li>\n\n\n\n<li><code>sendMessage()<\/code> untuk menambah pesan<\/li>\n\n\n\n<li><code>getAllMessages()<\/code> untuk melihat semua pesan<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Buat Skrip Deploy<\/h2>\n\n\n\n<p>\ud83d\udcc2 Masuk ke folder <code>scripts\/<\/code> dan buat file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ..\/scripts\nnano deploy.js\n<\/code><\/pre>\n\n\n\n<p>\u270f\ufe0f Isi dengan kode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const hre = require(\"hardhat\");\n\nasync function main() {\n  const MessagePortal = await hre.ethers.getContractFactory(\"MessagePortal\");\n  const contract = await MessagePortal.deploy();\n\n  await contract.deployed();\n  console.log(\"\u2705 Contract deployed to:\", contract.address);\n}\n\nmain().catch((error) =&gt; {\n  console.error(error);\n  process.exitCode = 1;\n});\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Deploy ke Sepolia Testnet<\/h2>\n\n\n\n<p>\ud83d\udcc2 Kembali ke root proyek, jalankan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx hardhat run scripts\/deploy.js --network sepolia\n<\/code><\/pre>\n\n\n\n<p>Jika sukses, kamu akan lihat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2705 Contract deployed to: 0x1234abc....7890\n<\/code><\/pre>\n\n\n\n<p>Salin alamat itu, lalu buka:<br>\ud83d\udd17 <a href=\"https:\/\/sepolia.etherscan.io\n\">https:\/\/sepolia.etherscan.io<br><\/a>\u2192 tempel alamat untuk melihat kontrakmu live di blockchain!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Bonus: Verifikasi Kontrak di Etherscan (opsional)<\/h2>\n\n\n\n<p>Jika kamu ingin <strong>nama kontrak + kode muncul di Etherscan<\/strong>, tambahkan plugin Hardhat Etherscan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install --save-dev @nomicfoundation\/hardhat-verify\n<\/code><\/pre>\n\n\n\n<p>Lalu tambahkan ini di <code>hardhat.config.js<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>require(\"@nomicfoundation\/hardhat-toolbox\");\n\nmodule.exports = {\n  solidity: \"0.8.20\",\n  networks: {\n    sepolia: {\n      url: \"https:\/\/eth-sepolia.g.alchemy.com\/v2\/YOUR_ALCHEMY_KEY\",\n      accounts: &#91;\"0xYOUR_PRIVATE_KEY\"]\n    }\n  },\n  etherscan: {\n    apiKey: \"YOUR_ETHERSCAN_API_KEY\"\n  }\n};\n<\/code><\/pre>\n\n\n\n<p>Lalu jalankan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx hardhat verify --network sepolia 0xALAMAT_KONTRAK_KAMU\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ringkasan<\/h2>\n\n\n\n<p>\u2705 Kamu berhasil menulis kontrak <code>MessagePortal.sol<\/code><br>\u2705 Kamu berhasil deploy ke Sepolia<br>\u2705 Kamu bisa lihat hasilnya di Etherscan<br>\u2705 (Opsional) Bisa verifikasi kode di Etherscan<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kita Akan Buat Apa? Hari ini kamu akan membuat smart contract bernama &#8220;MessagePortal&#8221;: \ud83d\udd39 Siapa pun bisa kirim pesan ke blockchain\ud83d\udd39 Setiap pesan disimpan di dalam smart contract\ud83d\udd39 Kita bisa ambil semua pesan yang pernah dikirim Buat File Smart Contract \ud83d\udcc2 Masuk ke folder contracts\/ dan buat file baru: \u270f\ufe0f Isi dengan kode ini: \ud83d\udccc&#8230;<\/p>\n","protected":false},"author":1,"featured_media":24,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web3-blockchain"],"_links":{"self":[{"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":2,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/posts\/180\/revisions\/182"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/media\/24"}],"wp:attachment":[{"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learn.rantissi.my.id\/index.php\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}