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.
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.
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.