Showing posts with label scala. Show all posts
Showing posts with label scala. Show all posts

Sunday, July 1, 2018

How to create a method in scala


In this tutorial ill be showing you how to create a method using Scala.

The requirements are:
-Eclipse
-Latest Version of IDE

1) Once you have to install Eclipse in your machine, you ill then required to download "Scala IDE for eclipse" and "Scala worksheet".

To get this you need to open: Eclipse > Help > Install New Software as shown in the picture below
2) Afterward, a popup windows will open as shown below:
you then need to add this URL in : http://download.scala-ide.org/sdk/lithium/e47/scala212/stable/site
once the URL, has been added you need to checklist "Scala IDE for eclipse" and "Scala Worksheet" and click on next and finish.
3)When the scala has been added, the user need to create a new scala project.
once you click on a new project it will show you a popup and ask the user to name the project.
it will then create 3 items inside the project, right click on "src" and click on New > Scala WorkSheet and it will ask you to give a name for your project.

4) When a blank worksheet has been created, the user must create an object first.
in this example i created an object class and the attributes that i fill in are "carType", "cost" and "color".
i then created a method called greater, which take a parameter (c2) and define the type (which is a type car) and it return as a boolean and compares the cost of the first value to the second value "c2.cost"

I then created 2 objects which is "c1" and "c2" and gives a different values for each
After creating the objects, i would like to compare the prices between them.
i.e 100000 is greater than 3000000 shows that the result gave a false answer.

Tuesday, March 15, 2016

Scala : Class dan Object

Setelah sebelumnya mengenal basic tentang scala. sekarang kita akan mencoba melangkah ke bagian selanjutnya yakni tetang OOP (object oriented). Selain sebagai functional programming scala juga memiliki bagian OOP nya. Sama seperti java, di scala oop juga dibentuk dengan adanya Class.
Pada dasarnya class adalah sebuah blueprint. Sebuah class dapat membuat sebuah object (dengan menggunkan keyword `new`). Misal class Mobil bisa membuat Object sedan, pickup, dll. Konsep class di scala sama seperti dipemrograman lain.
Create sebuah class.
Class bisa ada atau tanpa constructor. membuat constructor harus di definisi class nya tidak perlu menbuat method yg sama dengan nama classnya seperti di Java.

 class Person (val pName : String, val pAge : Int) {  
   var name : String = pName  
   var age : Int = pAge;  
   // setter getter  
   def setName(name : String) = {  
    this.name = name  
   }  
   def getName() : String = this.name  
   def setAge(age : Int) = {  
    this.age = age  
   }  
   def getAge() : Int = this.age  
 }  

Inisialisasi class menggunakan keywordnya.  tapi ingat harus definisi variabel di scala harus menggunakan var / val.
contoh : val mperson : Person = new Person ("budi", 99)

Extending Class
class bisa juga diturunkan dengan cara diextend.
perlu didefinisikan juga varible parent yg harus dioverride di cosntructornya.

 class Student(override val pName: String, override val pAge: Int,  
        val pAddress :String) extends Person(pName, pAge){  
  var address : String = pAddress;  
  def setAddress(address : String) = {  
   this.address = address  
  }  
  def getAddress() : String = this.getAddress()  
 }  

Singleton Object.
Scala tidak menyediakan static variable / member seperti di java. Maka jika kita membutuhkan variable yg sifatnya static dan hanya sekali dicreate kita bisa menggunakan singleton object. Kalau di java seperti kita membuat static blok.

 static {  
  // codes and variables  
 }  

Contoh singleton object

 object Person {  
  var p : Person = new Person("budi", 10)  
  def displayPerson() = {  
   println("name "+ p.getName() + " age "+ p.getAge())  
  }  
 }  

Jadi di dalam object Person akan ada varible 'p' yang isinya selalu sama.
Untuk memanggil method di singleton object cukup lewat nama objectnya,
Person.displayPerson()

Companion object
Jika class dan object mempunyai nama sama dan berada di satu source file. hanya berbeda keyword 'class' dan 'object'. Dalam satu companion object bisa saling mengakses variable membernya masing-masing.

 class Person (val pName : String, val pAge : Int) {  
   var name : String = pName  
   var age : Int = pAge;  
   // setter getter  
   def setName(name : String) = {  
    this.name = name  
   }  
   def getName() : String = this.name  
   def setAge(age : Int) = {  
    this.age = age  
   }  
   def getAge() : Int = this.age  
 }  
 object Person {  
  var p : Person = new Person("budi", 10)  
  def displayPerson() = {  
   println("name "+ p.getName() + " age "+ p.getAge())  
  }  
 }  

Kapan mengunakan companion object?.  varible yg sifatnya bisa berubah atau reuseable sebaiknya ditaruh di Class. sedangkan varible atau method yang sifatnya static / singleton / bisa dipake berkali kali sebaiknya ditaruh di Object.

Sekian dulu pembahasan tentang class dan object di scala dan selamat mencoba.

bersambung di materi scala selanjutnya

referensi :
http://docs.scala-lang.org/tutorials/tour/classes
http://docs.scala-lang.org/tutorials/tour/singleton-objects.html



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