Thursday, March 10, 2016

Belajar Scala

Halo teman.
Pada tutorial kali ini saya akan sedikit sharing tentang bahasa pemrograman yang lain, kerana sebelumnya selalu share tentang hal yang berkaitan dengan Java. Tentang 'SCALA'.
Scala pertama kali diciptakan oleh Martin Odersky, pertama kali release pada 2003. Apa alasan saya yang membuat saya tertarik belajar scala?.
Scala hampir mirip dengan java. Tetapi syntax tidak terlalu panjang. tentu sebagai java developer akan gampang memahami. bisa memanggil dan menggunakan class atau library milik java. dan konon katanya scala mempunyai fitur untuk menangani concurrent yang tinggi.
Scala dipopulerkan dan digunakan secara luas oleh Twitter. tentu siapa yang tidak kenal dengan social media ini. Pemakai lain yang terkenal antara lain Linkedin, Foursquare, Netflix, Sony, dan masih banyak lagi.

Untuk memulai scala perlu install dua software ini.
- Java JDK, diperlukan karena scala perlu berjalan di atas JVM.
- Scala binary. bisa didownload disini
Keduanya diinstall dan ditambahkan di environment variable OS kita.
Ide yang digunakan bisa bermacam macam. tetapi yang sangat compatible pluginnya menurut saya adalah Intelij Idea. fitur autocomplete nya juga bagus. tersedia juga wizard untuk create new project.



Pertama-tama kita perlu belajar dan memahami syntax dasar nya dulu.

Semicolon
tanda semicolon atau titik koma ';' sifatnya optional bisa dipake bisa tidak.

Varible.
Ada 2 macam variable yakni immutable dan mutable. "val" merupakan immutable, variable yang tidak bisa diubah lagi nilainya setelah diinisialiasai. Jika di java sama dengan final. "var" merupakan mutable variable yg bisa diubah nilainya kapan saja. Deklarasi variable ada dua cara tanpa tipe data atau tanpa tipe data. Scala compiler akan otomatis mengenali tipe variable berdasarkan isinya mirip dengan java script.

 var name = "andri"  
 val name = "andri"  
 val total : Int = 10  
 var status : Boolean = false  

Tipe data
Tipe data di scala hampir sama dengan di java. sperti Int, String, Float, Boolean, Char, Short

Function
Deklarasi function secara garis besar seperti ini, selalu diawali dengan keyword 'def' tapi bisa berbagai macam variasi.

 def functionName ([list of parameters]) : [return type] = {  
   function body  
   return [expr]  
 }  

Function yg menghasilkan return bisa ditulis tanpa keyword 'return' didalam body methodnya. barus terakhir otomatis jadi return value.

 def calculate (a : Int , b : Int) : Int {  
    a + b  
 }  

Function bisa juga ditulis tanpa kurung kurawal (bracket) '{ }'. tetapi langsung diberikan '=' (equal)

 def calculate (a : Int , b : Int) : Int = (a + b)  

Anonymous function
method yang tanpa nama atau tanpa signature. sangat mirip dengan lambda expression di java 8.

 (x: Int) => x + 1  
 val value = (x: Int) => x + 1  
 (x: Int, y: Int) => "(" + x + ", " + y + ")"  
 () => { println("test") }  

Function adalah object
semua function dianggap jadi sebuah object. Maka function dapat dipasaing sebagai parameter juga di function lain.
 val firstN : Int = 1  
   val secondN : Int = 2  
   // anonymous function sample  
   def doWithOneAndTwo(f: (Int, Int) => Int, b : Int) = {  
    f(firstN, secondN ) + b  
   }  
   // this function will be a parameter  
   def call(x: Int, y : Int): Int = x + y  
   def sumInts( x: Int): Int = doWithOneAndTwo(call, x)  
   println("anonymous function call " +sumInts(3))  

code diatas akan menghasilkan nilai '6'.
Function 'call()' (didalamnya ada proses logic) dipassing sebagai parameter di function lain 'doWithOneAndTwo()'. dan didalam body-nya diprosess lagi hasil parameter 'call()' tadi.

Executable class.
seperti main class di java. bisa dijalankan dengan klik kanan run dari IDE anda.
 object Test {  
  def main(args: Array[String]) {  
    println ("do someting")  
  }  
 }  

For-loop
sama seperti bahasa lainnya digunakan untuk perulangan.
basic syntax :
 for( var x <- Range ){  
   statement(s);  
 }  

contoh :
 for( a <- 1 to 10){  
   println( "Value of a: " + a );  
 }  

hasilnya akan menampilkan a dari 1 sampai 10.

for-loop dengan conditional.
 for( var x <- Range  
    if condition1; if condition2...  
   ){  
   statement(s);  
 }  

if-else conditional bisa dimasukkan ke definition for-loopnya.
contoh :
 for( a <- 1 to 10 ; if a < 8){  
    println( "Value of a: " + a );  
   }  

akan menghasilkan printout a yang lebih kecil dari 8.

Learning tentang basic fundamental scala bisa dipelajari dari video berikut ini, yang menurut saya penjelasannya sangat membantu.


referensi :
http://docs.scala-lang.org/
https://www.jetbrains.com/idea/help/creating-and-running-your-scala-application.html
http://alvinalexander.com/scala/whos-using-scala-akka-play-framework

bersambung ke tutorial scala selanjutnya yang akan membahas tentang object oriented

No comments:

Post a Comment