Tuesday, November 19, 2024

Explain Crypto To COMPLETE Beginners: Resume


Apakah Anda pernah mencoba menjelaskan cryptocurrency kepada teman atau keluarga yang baru mengenal konsep ini? Terkadang, istilah seperti "blockchain", "mining", dan "staking" bisa membuat bingung. Dalam artikel ini, kita akan memecah konsep-konsep kompleks ini menjadi istilah yang lebih sederhana, sehingga Anda bisa menjelaskan potensi cryptocurrency kepada orang yang belum mengenalnya.

Apa itu Cryptocurrency?

Cryptocurrency adalah mata uang digital yang menggunakan kriptografi untuk keamanan. Berbeda dengan mata uang tradisional, cryptocurrency tidak dikendalikan oleh otoritas seperti pemerintah atau bank. Sebagai gantinya, cryptocurrency berjalan pada jaringan terdesentralisasi yang terdiri dari banyak komputer.

Poin utama yang perlu dijelaskan:  

  • Mata uang digital: Hanya ada dalam bentuk digital.  
  • Desentralisasi: Tidak ada entitas tunggal yang mengendalikannya.  
  • Keamanan: Kriptografi memastikan transaksi yang aman.  
  • Contoh: Bitcoin, Ethereum, Dogecoin.

Bagaimana Cryptocurrency Bekerja?

Cryptocurrency beroperasi menggunakan teknologi blockchain. Anda bisa membayangkan blockchain sebagai buku besar digital yang mencatat semua transaksi. Setiap blok dalam rantai berisi sejumlah transaksi, dan begitu sebuah blok ditambahkan, sangat sulit untuk diubah.

Poin utama yang perlu dijelaskan:  

  • Blockchain: Buku besar digital yang mencatat transaksi.  
  • Mining: Proses untuk memverifikasi dan menambahkan transaksi ke blockchain.  
  • Wallet: Dompet digital untuk menyimpan dan mengelola cryptocurrency.  
  • Smart Contracts: Kontrak yang dijalankan sendiri dengan ketentuan yang tertulis langsung dalam kode.

Mengenal Bitcoin

Bitcoin adalah salah satu cryptocurrency yang paling terkenal dan sering kali membuat orang bingung karena konsepnya yang kompleks. Tapi jangan khawatir, kita akan memecahkannya dengan cara yang lebih mudah dimengerti.

Apa itu Bitcoin?



Bitcoin adalah bentuk uang digital yang dapat dikirim langsung dari satu orang ke orang lain tanpa perlu melalui perantara seperti bank. Bitcoin juga bersifat desentralisasi, artinya tidak dikendalikan oleh satu otoritas pun.

Bagaimana Bitcoin Bekerja?

Bitcoin beroperasi menggunakan teknologi blockchain. Blockchain adalah sebuah buku besar digital yang mencatat setiap transaksi. Setiap transaksi yang terjadi dibundel dalam sebuah blok, dan setelah blok tersebut ditambahkan ke dalam rantai, sangat sulit untuk diubah.

Konsep Penting dalam Bitcoin:

  • Mining: Proses untuk memverifikasi dan menambahkan transaksi ke blockchain.  
  • Wallet: Dompet digital untuk menyimpan dan mengelola Bitcoin.  
  • Public dan Private Keys: Public key seperti alamat Anda, sedangkan private key adalah kata sandi yang mengamankan akses ke Bitcoin Anda.  
  • Nodes: Komputer-komputer yang ikut berpartisipasi dalam jaringan Bitcoin dan menjaga integritas blockchain.

Mengapa Bitcoin?


  • Desentralisasi: Tidak ada pihak tunggal yang mengendalikan jaringan.  
  • Keamanan: Teknologi blockchain memastikan transaksi yang aman.  
  • Transparansi: Semua transaksi tercatat di blockchain yang dapat diakses publik.  
  • Jangkauan Global: Bitcoin dapat dikirim ke mana saja di dunia.

Memulai dengan Bitcoin

  1. Pilih Wallet: Pilih dompet yang aman untuk menyimpan Bitcoin Anda.  
  2. Beli Bitcoin: Beli Bitcoin melalui bursa yang terpercaya.  
  3. Simpan Bitcoin Anda: Pastikan untuk menyimpan Bitcoin Anda dengan aman di dompet.  
  4. Kirim dan Terima Bitcoin: Gunakan dompet untuk mengirim dan menerima Bitcoin.


Kesimpulan

Cryptocurrency, termasuk Bitcoin, adalah teknologi revolusioner yang berpotensi mengubah lanskap keuangan global. Dengan memahami konsep dasarnya, Anda dapat berpartisipasi dalam revolusi digital ini. Pastikan untuk selalu mengutamakan keamanan dan melakukan riset yang mendalam sebelum berinvestasi.

Tips Tambahan yang berguna bagi kalian yang ingin mempelajari:

  • Mulai dari yang Kecil: Mulailah dengan investasi kecil untuk memahami pasar.  
  • Tetap Terinformasi: Ikuti berita dan tren terbaru di dunia cryptocurrency.  
  • Konsultasikan dengan Ahli: Cari saran dari penasihat keuangan atau ahli cryptocurrency.

Dengan mengikuti panduan sederhana ini, Anda dapat lebih mudah memahami dunia cryptocurrency dan Bitcoin, serta membantu teman dan keluarga Anda mengenal teknologi yang sedang berkembang ini.


Source: Coin Bureau (Youtube)

  • Explain Crypto To COMPLETE Beginners: Coin Bureau Guide!!
  • Explain Crypto To COMPLETE Beginners: Ultimate Guide!!

Thursday, November 14, 2024

Building a Blockchain with Coding Part 2

 1. Inisialisasi Flask dan Blockchain

Kode diawali dengan mengimpor modul yang diperlukan dan menginisialisasi aplikasi Flask:


Flask memungkinkan kita membuat aplikasi web untuk berinteraksi dengan blockchain.


2. Membuat Kelas Blockchain

Kelas Blockchain bertanggung jawab atas berbagai fungsi utama, seperti pembuatan blok baru, penentuan proof-of-work, dan validasi rantai. Berikut fungsi-fungsi di dalamnya:

A.  __init__: Inisialisasi Blockchain


Fungsi __init__ adalah konstruktor yang menginisialisasi chain sebagai list kosong. Blok pertama (genesis block) dibuat dengan nilai proof=1 dan previous_hash='0'.

B. create_block: Membuat Blok Baru


create_block digunakan untuk membuat blok baru, yang mencakup:
  • index: Nomor urutan blok.
  • timestamp: Waktu pembuatan blok.
  • proof: Bukti dari proof-of-work.
  • previous_hash: Hash dari blok sebelumnya.
Blok yang dihasilkan ditambahkan ke dalam rantai.

C. get_previous_block: Mendapatkan Blok Terakhir


Fungsi ini mengembalikan blok terakhir dalam rantai untuk digunakan dalam proof-of-work dan pembuatan blok baru.

D. proof_of_work: Proses Proof of Work


Fungsi ini menentukan proof-of-work dengan mencari angka (new_proof) yang, ketika digabungkan dengan previous_proof, menghasilkan hash yang diawali dengan empat angka nol (0000). Ini mengontrol kesulitan dalam menambang blok.


E. hash: Menghitung Hash dari Blok


Fungsi hash menghasilkan hash SHA-256 untuk setiap blok. Fungsi ini digunakan untuk memverifikasi keaslian blok di blockchain.


F. is_chain_valid: Validasi Rantai Blockchain


is_chain_valid memastikan bahwa blockchain tidak dimodifikasi. Fungsi ini melakukan dua pemeriksaan:
  1. Memastikan previous_hash setiap blok sesuai dengan hash blok sebelumnya.
  2. Memverifikasi bahwa bukti proof-of-work setiap blok valid.

3. Endpoint API untuk Interaksi dengan Blockchain

Berikut adalah endpoint Flask untuk mengakses fungsi-fungsi blockchain melalui HTTP:

A. mine_block: Menambang Blok Baru



Endpoint ini menambang blok baru dengan mengidentifikasi previous_proof, menjalankan proof_of_work, dan membuat blok baru melalui create_block. Hasilnya dikirimkan sebagai respons JSON.

B. get_chain: Mendapatkan Rantai Blockchain


Endpoint ini mengembalikan rantai blockchain lengkap beserta panjangnya dalam format JSON.

C. is_valid: Memeriksa Validitas Blockchain


Endpoint ini memvalidasi blockchain, mengembalikan pesan apakah rantai tersebut valid atau tidak.

4. Menjalankan Aplikasi Flask

Terakhir, aplikasi Flask diaktifkan untuk berfungsi di alamat 0.0.0.0 pada port 5000:


Lalu, running kodenya di code editor


Python akan menjalankan aplikasi Flask yang berisi implementasi blockchain sederhana. Berikut adalah penjelasan dari setiap output yang muncul:

Serving Flask app 'Blockchain'
Ini menunjukkan bahwa Flask berhasil menemukan aplikasi bernama 'Blockchain'. Nama ini didasarkan pada nama file yang Anda jalankan, yaitu Blockchain.py.

Debug mode: off
Menunjukkan bahwa Flask menjalankan aplikasi dalam mode produksi dan bukan mode debug. Mode debug biasanya digunakan dalam pengembangan untuk memudahkan debugging, tetapi untuk keamanan dan performa, ini dimatikan pada aplikasi siap produksi.

WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Ini adalah peringatan dari Flask bahwa server yang dijalankan sekarang adalah server pengembangan. Flask menyarankan untuk tidak menggunakan server ini dalam produksi karena server ini tidak cukup aman atau cepat untuk aplikasi yang melayani banyak pengguna. Untuk produksi, Anda disarankan menggunakan WSGI server seperti Gunicorn atau uWSGI.

Running on all addresses (0.0.0.0)
Output ini menunjukkan bahwa aplikasi Flask berjalan di semua alamat jaringan yang tersedia di perangkat Anda. Artinya, aplikasi dapat diakses melalui alamat IP lokal maupun IP jaringan.

Running on http://127.0.0.1:5000
Ini adalah alamat lokal yang dapat Anda gunakan untuk mengakses aplikasi dari komputer yang sama di mana server dijalankan. 127.0.0.1 adalah alamat loopback standar (localhost), dan 5000 adalah port default yang digunakan oleh Flask.

Running on http://192.168.18.54:5000
Ini adalah alamat IP jaringan lokal yang diberikan oleh router atau jaringan. Alamat ini memungkinkan Anda mengakses aplikasi dari perangkat lain yang terhubung ke jaringan yang sama, seperti komputer atau ponsel yang terhubung ke Wi-Fi.

Cara Menggunakan Aplikasi Blockchain



Mengakses Endpoint: Buka browser atau aplikasi seperti Postman, lalu akses salah satu dari alamat yang diberikan, misalnya http://127.0.0.1:5000.

Endpoint yang Tersedia:
  • /mine_block: Untuk menambang blok baru

  • /get_chain: Untuk melihat seluruh rantai blockchain.

                                           

  • /is_valid: Untuk memverifikasi apakah blockchain valid atau tidak.


Output ini menunjukkan bahwa aplikasi Flask berhasil berjalan dan siap menerima permintaan HTTP untuk berinteraksi dengan blockchain. Hal ini dapat menguji aplikasi blockchain ini dari perangkat yang sama atau dari perangkat lain di jaringan lokal, selama alamat IP yang disediakan digunakan.

Wednesday, November 6, 2024

Building a Blockchain with Coding Part 1


Blockchain adalah teknologi revolusioner yang mendasari cryptocurrency seperti Bitcoin. Dalam artikel ini, kita akan membahas cara membangun blockchain sederhana menggunakan Python, dengan penjelasan rinci tentang fungsi-fungsi utama dalam pembuatan blockchain tersebut.

Apa itu Blockchain?

Blockchain adalah struktur data yang terdiri dari blok-blok yang saling terhubung dan terenkripsi. Setiap blok berisi data, dan setiap blok baru yang ditambahkan ke blockchain mengandung hash dari blok sebelumnya, menciptakan sebuah rantai yang aman dan tidak bisa diubah (immutable). Blockchain memiliki berbagai aplikasi, mulai dari cryptocurrency, kontrak pintar, hingga sistem penyimpanan data yang aman.

Di dalam tutorial ini, kita akan membangun sebuah blockchain menggunakan Python. Kita akan membuat fungsi-fungsi penting yang diperlukan untuk menjalankan blockchain dan menjelaskan setiap bagian secara mendetail.

Menyiapkan Struktur Blockchain

Langkah pertama adalah mendefinisikan struktur dasar blockchain. Berikut adalah langkah-langkah dasar yang dilakukan oleh program kita.

Tools;

  • Vscode (Bebas menggunakan kode editor yang sesuai dengan kebutuhan
  • Download Python Library (pip install Flask==0.12.2)
  • Download Postman (https://www.postman.com/downloads)

1. Membuat Class Blockchain

Blockchain yang kita buat terdiri dari class Blockchain. Class ini akan menangani semua hal terkait dengan blockchain, termasuk penambahan blok baru, validasi rantai, dan proses Proof of Work (PoW).


Pada awalnya, class Blockchain akan memiliki sebuah chain yang kosong, dan kita akan membuat blok pertama dengan proof 1 dan hash sebelumnya yang bernilai '0'. Blok pertama ini disebut Genesis Block.

2. Membuat Blok Baru
Setelah class blockchain diinisialisasi, kita perlu membuat fungsi untuk membuat blok baru dan menambahkannya ke dalam blockchain. Fungsi ini disebut create_block:


Fungsi create_block menerima dua parameter: proof dan previous_hash. Fungsi ini akan membuat sebuah dictionary yang berisi informasi blok, seperti index (urutan blok), timestamp (waktu pembuatan blok), proof (nilai proof yang digunakan untuk PoW), dan previous_hash (hash dari blok sebelumnya). Blok ini kemudian ditambahkan ke dalam self.chain.

3. Mendapatkan Blok Sebelumnya
Fungsi get_previous_block digunakan untuk mengambil blok terakhir dalam rantai:


Dengan fungsi ini, kita dapat mengakses blok terakhir untuk melakukan verifikasi atau operasi lain yang melibatkan data blok sebelumnya.

4. Proof of Work (PoW)
Salah satu konsep penting dalam blockchain adalah Proof of Work (PoW), yang digunakan untuk mengamankan jaringan dan memastikan integritas data. Fungsi proof_of_work adalah implementasi dari algoritma PoW.


Dalam fungsi ini, kita mencoba menemukan nilai new_proof yang menghasilkan hash dengan 4 nol di depan (sebuah kondisi yang harus dipenuhi untuk validitas proof). Proses ini adalah inti dari PoW, di mana setiap calon proof diuji dengan menghitung hash dan memeriksa apakah hash tersebut memenuhi kondisi tertentu. Proses ini memastikan bahwa hanya perhitungan yang memadai yang dapat menambah blok ke dalam rantai.

5. Membuat Hash dari Blok
Setiap blok dalam blockchain memiliki hash yang unik. Fungsi hash digunakan untuk menghasilkan hash dari setiap blok:


Dalam fungsi ini, blok pertama diubah menjadi format JSON yang terurut, kemudian di-encode menjadi bytes, dan akhirnya dihitung hash-nya menggunakan algoritma SHA-256. Ini menghasilkan sebuah string hash yang mewakili data dalam blok.

6. Memvalidasi Rantai Blockchain
Blockchain perlu memverifikasi bahwa semua blok dalam rantai valid dan tidak ada yang diubah. Fungsi is_chain_valid bertanggung jawab untuk memeriksa apakah rantai blockchain yang ada valid:


Fungsi ini memeriksa dua hal untuk setiap blok dalam rantai:
  • Validasi Hash: Memastikan bahwa previous_hash dalam blok saat ini sesuai dengan hash dari blok sebelumnya.
  • Validasi Proof of Work: Memeriksa apakah hash dari proof saat ini dan proof sebelumnya memenuhi kondisi PoW yang ditentukan.
Jika salah satu dari dua pemeriksaan ini gagal, rantai dianggap tidak valid.



Friday, November 1, 2024

Fungsi Fundamental dalam Python: Panduan Lengkap

Apa itu Fungsi?

Dalam pemrograman Python, fungsi adalah blok kode yang terorganisir dan dapat digunakan kembali untuk melakukan tugas tertentu. Fungsi memungkinkan kita untuk memecah masalah kompleks menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan menggunakan fungsi, kode program menjadi lebih modular, mudah dibaca, dan mudah dipelihara.

Mengapa Fungsi Penting?

  • Modularitas: Membagi kode menjadi fungsi-fungsi kecil membuat kode lebih terstruktur dan mudah dipahami.
  • Reusabilitas: Fungsi dapat dipanggil berkali-kali dalam program yang sama atau bahkan di program yang berbeda.
  • Abstraksi: Fungsi menyembunyikan detail implementasi dan hanya mengekspos fungsionalitas yang diperlukan.
  • Pengujian: Fungsi dapat diuji secara independen, sehingga memudahkan untuk menemukan dan memperbaiki bug.

Cara Membuat Fungsi di Python





Answer #1;







Answer #2;











Answer #3;











Answer #4;










Answer #5;







Answer #6;









Answer #7;








Answer #8;













Answer #9;












Answer #10;

















Answer #11;























Answer #12;








Coding: Create a Smart Contract

Smart Contract adalah program komputer yang berjalan di atas jaringan blockchain dan secara otomatis mengeksekusi perjanjian yang telah dipr...