Solidity

**Solidity** adalah kontrak bahasa pemrograman berorientasi untuk menulis kontrak pintar. Bahasa pemrograman ini digunakan untuk menciptakan kontrak pintar pada berbagai platform blockchain. Bahasa ini dikembangkan oleh Gavin Kayu, Kristen Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai dan beberapa mantan kontributor utama Ethereum untuk menambahkan fitur kontrak pintar pada platform blockchain seperti Ethereum.

## Sejarah
Solidity awalnya diusulkan pada bulan Agustus 2014 oleh Gavin Wood; bahasa ini kemudian dikembangkan oleh tim solidity Ethereum, yang dipimpin oleh Kristen Reitwiessner. Bahasa ini adalah salah satu dari empat bahasa pemrograman (yang lainnya adalah Serpent, LLL, Viper (eksperimental) dan Mutan (usang)) yang dirancang untuk Ethereum Virtual Machine (EVM). Untuk informasi lebih lanjut tentang bahasa-bahasa ini melihat bahasa pemrograman Ethereum.

Saat ini, Solidity adalah bahasa utama di Ethereum serta blockchain privat lainnya yang bersaing dengan Ethereum, seperti Monax dan Hyperledger Burrow blockchain, yang menggunakan Tendermint sebagai sistem mufakat. SWIFT telah meluncurkan bukti konsep menggunakan Solidity di platform Burrow.

Sebuah peniliti Cornell University menyatakan peretasan DAO yang terjadi pada tahun 2016 adalah sebagian salah dari Solidity. Dia menyatakan: "ini sebenarnya bukan cacat atau kesalah dari kontrak DAO sendiri: secara teknis EVM beroperasi sebagaimana dimaksud, tetapi Solidity memperkenalkan kelemahan keamanan dalam kontrak yang tidak hanya terlewat oleh komunitas, tetapi tidak terjawab oleh para desainer dari bahasa mereka sendiri."

## Deskripsi
Soliditas adalah bahasa pemrograman *statically-typed* yang dirancang untuk mengembangkan kontrak pintar yang berjalan pada EVM. Solidity ini disusun menjadi bytecode yang dapat dijalankan pada EVM. Dengan Solidity, pengembang dapat menulis aplikasi yang menerapkan logika bisnis yang terkandung di smart kontrak, meninggalkan catatan transaksi berwibawa dan tidak bisa dimanipulasi oleh orang yang tinggal berotoritas. Menulis kontrak pintar pada bahasa khusus kontrak pintar seperti Solidity terbilang mudah (bagi mereka yang sudah memiliki keterampilan pemrograman).

Sebagaimana ditentukan oleh Wood, bahasa ini dirancang menurut sintaks ECMAScript untuk membuatnya familiar bagi para pengembang web. Akan tetapi tidak seperti ECMAScript, Solidity memiliki static typing dan variadic return. Dibandingkan dengan bahasa pemrograman yang menargetkan EVM seperti Ular dan Mutan, Solidity memiliki sejumlah perbedaan penting. Variabel anggota kompleks untuk kontrak termasuk pemetaan kewenangan hirarkis dan struktur tersedia. Kontrak memiliki fitur inheritance, termasuk multiple inheritance dengan linearisasi C3. Sebuah application binary interface (ABI) memfasilitasi beberapa jenis fungsi type-safe dalam satu kontrak itu juga diperkenalkan (dan kemudian didukung oleh Serpent). Sebuah sistem dokumentasi untuk memberikan deskripsi berorientasi kepada pengguna yang berisi keterangan dari konsekuensi dari pemanggilan sebuah method atau function juga masuk ke dalam proposal, yang dikenal sebagai "Natural Language Specification".

Contoh program solidity:

## Platform pengembangan yang tersedia

* Remix, IDE Solidity resmi
* Microsoft Visual Studio
* ConsenSys Enterprise
* Tendermint pada Microsoft Azure oleh PWC
* ErisDB oleh AWS
* Hedera, Hedera hashgraph platform yang mendukung smart kontrak tertulis di Solidity™.

## Platform Blockchain
Solidity tersedia di:

* Ethereum
* Tendermint & ErisDB (versi Tendermint)
* Counterparty (yang berjalan pada Bitcoin)

## Referensi