Tahukah kamu bahwa bahasa pemrograman yang ada di dunia berjumlah kurang lebih 700 bahasa (dikutip dari wikipedia.org), merupakan angka yang fantastis mengingat yang kita pelajari selama ini mungkin tidak lebih dari 10 bahasa pemrograman.
Maka dari itu jangan heran, ketika terjun di dunia kerja anda dihadapkan dengan bahasa pemrograman yang terdengar asing. Salah satu bahasa pemrograman yang mungkin asing bagi anda adalah Scala. Meskipun terdengar asing namun ternyata bahasa pemrograman ini sudah ada sejak tahun 2003.
Pengertian Scala
Scala merupakan bahasa pemrograman yang menggabungkan paradigma pemrograman yang berorientasi pada objek dengan fungsional. Bahasa pemrograman ini termasuk kedalam bahasa pemrograman berorientasi objek murni yang dalam arti bahwa setiap nilai adalah objek. Serta termasuk bahasa pemrograman fungsional yang artinya setiap fungsi adalah nilai.Sama halnya seperti java, scala ditulis untuk dapat dijalankan pada JVM (Java Virtual Machine). Bahasa pemrograman lainnya yang dapat berjalan di JVM seperti Kotlin dan Ceylon. Semua bahasa ini dibuat dengan tujuan menyederhanakan atau membuat java yang lebih baik.
Meskipun di jalankan pada JVM, nyatanya Scala bukanlah perpanjangan dari Java. Ketika proses kompilasi (penyusunan) kode scala di terjemahkan kedalam bytecode Java dan berjalan di JVM.
Scala dapat digunakan dalam berbagai lingkungan, mulai dari script yang sederhana hingga sistem yang besar atau rumit sekalipun. Dalam dunia pemrograman ini disebut dengan istilah general purpose programming language.
Sejarah Scala
Scala dibuat dan dikembangkan oleh Martin Odersky, yaitu seorang ilmuan komputer Jerman sekaligus profesor metode pemrograman di École Polytechnique Fédérale de Lausanne di Swiss. Awalnya Martin Odersky merupakan pengembang dari compiler dan fitur Generic pada java.Martin kemudian menemukan suatu kelemahan besar pada Java yaitu ketika Java digunakan pada lingkungan pemrograman konkuren, sintaks dari java harus diubah seluruhnya. Pemrograman konkuren merupakan proses atau beberapa proses yang berjalan secara bersamaan.
Scala kemudian mulai divisualisasikan oleh Martin Odersky dan timnya pada tahun 2001. Empat tahun berselang tepatnya di tahun 2004, scala diluncurkan ke public dan telah dimodifikasi untuk Net Framework.
Seperti kita ketahui scala bisa dikatakan sebagai peningkatan dari Java yang mana merupakan salah satu bahasa pemrograman paling populer di dunia. Java memiliki ekosistem yang sangat kaya, dengan banyaknya framework, library, hingga komunitas. Hal ini membuat usaha untuk meyakinkan programer beralih ke scala menjadi sangat berat. Sebagai solusi atas masalah tersebut, scala kemudian di rancang agar dapat berjalan di JVM, serta kode scala dapat dipanggil ke dalam Java, begitu pula sebaliknya.
Keunggulan Scala dibandingkan Java
1. Penulisan lebih singkat
Java termasuk kedalam bahasa pemrograman yang sederhana. Akan tetapi tingkat kesederhanaan itu terkadang di barengi dengan tingkat kerumitan yang tinggi. Pada Java untuk membuat sebuah program biasanya memerlukan baris kode yang panjang. Scala hadir dengan kode yang lebih pendek dan tidak bertele-tele. Contohnya bisa dilihat dibawah ini.Menampilkan Hello World di Java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Menampilkan Hello World di Scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello World!")
}
}
Dari kedua kode di atas kita dapat menyimpulkan bahwa untuk menampilkan tulisan "Hello World!" di java dituliskan dengan System.out.println("Hello World!"); sedangkan pada scala kita hanya perlu menuliskan println("Hello World!"). Ini membuat scala lebih ringkas daripada Java. Contoh lainnya dapat kita lihat ketika membuat Array, kodenya seperti dibawah.
ArrayList di Java
ArrayList di Scala
Listlist = new ArrayList ();
list.add("1");
list.add("2");
list.add("3");
val list = List("1", "2", "3")
2. Lebih kuat dalam fungsionalitas
Scala dapat menyelesaikan masalah fungsional dengan lebih baik dibandingkan dengan java. Pemrograman fungsional mempunyai karakteristik yang penting yaitu "The absence of side effect" artinya bahwa pemrograman fungsional tidak dipengaruhi data yang ada di luar fungsi dan tidak mempengaruhi data diluar fungsi.3. Menyelesaikan kueri dengan cara yang lebih aman
Scala mempunyai model aktor yang secara inheren lebih aman daripada data dan kata kunci Java yang dapat berubah pada model Thread (Tidak peduli seberapa bagus library yang didapat, java masih terhalang oleh bahasa).Selain yang disebutkan di atas tentunya masih ada keunggulan lainnya yang dapat dirasakan setelah menggunakan Scala.
4. Scala lebih berorientasi objek
Scala memperlakukan semuanya sebagai turunan dari kelas dan itu adalah bahasa yang lebih berorientasi objek dibandingkan dengan java. Sedangkan java kurang berorientasi objek dibandingkan scala sebab adanya primitif dan statika.Apa yang bisa saya buat dengan Scala ?
Pertanyaan yang perlu ditanyakan setelah mengetahui pengertian dari sebuah bahasa pemrograman adalah apa yang bisa saya buat dengan itu ? apa yang bisa saya buat dengan bahasa pemrograman itu ? apa yang bisa saya buat dengan bahasa pemrograman scala ?Scala dapat digunakan untuk membangun aplikasi seperti :
- Aplikasi Streaming data
- Aplikasi android dan API
- Aplikasi Desktop
- Front dan Back ends aplikasi Web
- Analisis big data dengan Apache Spark
- Aplikasi pesan
- Domain-specific language
- Real-time data streaming menggunakan Spark Framework
Siapa saja yang sudah menggunakan scala ?
Ada banyak faktor yang mempengaruhi suatu bahasa pemrograman dikenal, digunakan, sampai disukai. Salah satunya adalah hasil atau siapa saja yang sudah menggunakan bahasa pemrograman tersebut. Berikut beberapa aplikasi yang menggunakan Scala :- Apache Spark
- Scalding
- Apache kafka
- Apache Samza
- Finagle
- Akka
- Lichess
Sintaks dasar scala
Format Main
Format main disini adalah format awal sebelum kita melanjutkan untuk membuat kode seperti kodisi, perulangan dan lain sebagainya. Sebagai contoh disini kita ambil dari C++ dan Java dimana sebelum memulai membuat kode pertama harus di deklarasikan seperti dibawah :C++
#include
int main()
{
//kode disini
}
Java
public class HelloWorld {
public static void main(String[] args) {
// tulis kode disini
}
}
Sedangkan pada scala formatnya sebagai berikut :
Scala
object HelloWorld {
def main(args: Array[String]) {
// tulis kode disini
}
}
Import Class
Import class adalah proses mengambil fungsi dari class lain yang sudah disediakan sebelumnya untuk dapat dijalankan pada program yang sedang di buat. Untuk mengimport class pada scala dapat dilakukan dengan memasukkan kode seperti contoh dibawah.Perlu diperhatikan posisi import class pada scala selalu berada di atas sebelum struktur dibuka. Selain itu kode di awali dengan import dilanjutkan lokasi dan nama class. Cara import ini sama halnya seperti pada java.
import Test.target.Test.Point // import class
object Demo {
def main(args: Array[String]) {
}
}
Cara menampilkan tulisan
Untuk menampilkan tulisan pada program diguanakan perintah println("tulisan"). Contoh penggunaannya seperti berikut :
object HelloWorld {
def main(args: Array[String]) {
println("Tulisan")
}
}
Tipe data
Ada beberapa jenis tipe data pada scala yang dibedakan dari nama dan kegunaanya. Berikut beberapa type data tersebut :- Boolean - berisi true atau false
- Byte - tipe data angka dengan ukuran 8 bit. Mulai dari -128 hingga 127
- Short - tipe data angka dengan ukuran 16 bit. Mulai dari -32768 hingga 32767
- Char - berisi single karakter, huruf, dan angka
- Int - berisi angka
- Long - tipe data bilangan bulat dengan ukuran 16 bit. Range -922337209 hingga 922337209
- Float - berisi pecahan angka atau desimal
- Double - tipe data angka dengan ukuran 8 bit dan 64 bit.
- String - berisi karakter, huruf, atau angka
object Test
{
def main(args: Array[String])
{
var a: Boolean = true
var b: Byte = 126
var c: Float = 2.45673f
var d: Int = 3
var e: Short = 45
var f: Double = 2.93846523
var g: Char = 'A'
if (a == true)
{
println("boolean : true")
}
println("byte:" + b)
println("float:" + c)
println("integer:" + d)
println("short:" + e)
println("double:" + f)
println("char:" + g)
}
}
If else (Kondisi)
Kondisi merupakan salah satu hal penting yang harus dipelajari dalam pemrograman sebab akan banyak dipakai ketika membuat sebuah program. Berikut contoh penggunaan if else pada scala :
object Contoh {
def main(args: Array[String]) {
var x = 10;
if( x <= 20 ){
println("Nilai lebih kecil atau sama dengan 20");
}else{
println("Nilai lebih kecil dari 20");
}
}
}
Perulangan
Perulangan atau bahasa ingrisnya Looping digunakan untuk mengulang fungsi atau kondisi tertentu beberapa kali sesuai dengan yang ditentukan. Untuk melakukan proses perulangan ini bisa mengginakan perintah for.Berikut contoh penggunaan looping pada sacala :
object Contoh {
def main(args: Array[String]) {
var a = 0;
// perulangan menampilkan tulisan
for( a <- 1 to 10){
println( "Isi dari a = " + a );
}
}
}
Membuat Komentar
Seperti halnya kebanyakan bahasa pemrograman lainnya Scala juga menggunakan tanda // untuk membuat komentar satu baris. Sedangkan untuk beberapa baris digunakan tanda /* di awal baris kemudian ditutup dengan */ di akhir baris. Contoh penggunaan komentar seperti berikut :
object HelloWorld {
def main(args: Array[String]) {
// komentar satu baris
}
}
object HelloWorld {
def main(args: Array[String]) {
/*Komentar
beberapa
baris*/
}
}
Itulah beberapa informasi yang perlu anda ketahui seputar bahasa pemrogramab scala. Lanjut ke postingan Cara Install Scala di Windows.
Referensi :
https://medium.com/pujanggateknologi/berkenalan-dengan-scala-dd6452596fa6
https://blog.nolimit.id/2020/01/28/pengenalan-scala-untuk-big-data/
https://medium.com/skyshidigital/berkenalan-dengan-scala-82cd450dc43a
https://bertzzie.com/post/2/scala-sebuah-java-yang-lebih-baik
https://www.lightbend.com/blog/eight-hot-technologies-that-were-built-in-scala