Kursus
Lihat kursus Scala terbaru dari DataCamp: Introduction to Scala.
Scala banyak digunakan oleh data scientist saat menangani volume data besar bersama Apache Spark di bidang Big Data. Ini adalah bahasa pemrograman berorientasi objek sekaligus fungsional dengan banyak fitur penting lainnya sebagai berikut:
- Scala dikenal sebagai bahasa bertipe statis, di mana tipe data untuk variabel didefinisikan sebelum digunakan. Pemeriksaan tipe dilakukan saat kompilasi, bukan saat runtime.
- Ini juga merupakan bahasa "Strongly Typed" di mana variabel diperiksa sebelum dilakukan operasi di dalamnya.
- Scala juga mendukung Type Inference, di mana kompiler menyimpulkan tipe dari ekspresi atau literal, sehingga deklarasi tipe variabel bersifat opsional.
Dalam tutorial ini, Anda akan membahas topik-topik berikut:
- Variabel
- Aturan untuk mendefinisikan Variabel dalam Scala
- Variabel mutable
- Variabel immutable
- Deklarasi dan Penugasan Berganda
- Cakupan Variabel dalam Scala
Variabel
Variabel adalah ruang bernama dalam memori, dan kompiler mengalokasikan lokasi yang dipesan sesuai dengan tipe data dari variabel terkait. Variabel dideklarasikan dengan sintaks berikut dalam Scala sebagai berikut:
val or val variable_name: variable_datatype = value;
Pada sintaks di atas, variabel dapat didefinisikan dengan dua cara menggunakan kata kunci 'var' atau 'val'. Ini terdiri dari 'variable_name' sebagai variabel baru Anda, diikuti dengan titik dua. Tipe data variabel adalah 'variable_datatype' yang dapat berupa tipe data apa pun yang valid. Setelah itu 'value' akan diisikan ke 'variable_name'.
Contoh:
val varValue: Byte = 8;
'val' adalah kata kunci untuk mendefinisikan variabel, dan 'varValue' adalah nama variabel. Tipe datanya adalah 'Byte' dan berisi nilai 8. 'Byte' adalah nilai bertanda 8-bit, yang berkisar dari 2−7 hingga 27−1.
'variable_datatype' di atas dapat berupa tipe data apa pun yang ada di Scala, di antaranya sebagai berikut.
- Int: Tipe bertanda 32 bit (nilai positif atau negatif), dengan rentang dari 2−31 hingga 231−1.
- Byte: Nilai bertanda 8-bit dengan rentang dari 2−7 hingga 27−1.
- Short: Nilai bertanda 16-bit dengan rentang dari 2−15 hingga 215−1.
- Float: Dapat berupa 32 bit atau 64 bit.
Demikian pula, tipe data lain seperti Long, Char, Boolean, Char, String, Boolean, Null memiliki rentang masing-masing, dan penjelasan terperinci diberikan dalam tutorial Beginner’s Guide to Scala. Selain itu, 'variable_datatype' harus diawali huruf kapital, misalnya Int diawali 'I', yang menunjukkan semua tipe data di atas adalah objek dalam Scala.
Aturan Mendefinisikan Variabel dalam Scala
Aturan dan konvensi untuk mendefinisikan variabel dalam Scala adalah sebagai berikut:
- Nama variabel menggunakan lower camel case. Misalnya, pada nama variabel 'nameOfGirl,' huruf 'n' kecil. Selanjutnya, kapitalisasi huruf awal setiap kata seperti 'O' dan 'G'.
- Nama variabel tidak boleh mengandung kata cadangan atau kata kunci yang didefinisikan dalam Scala.
- Nama variabel dapat mengandung tanda dolar ('$') dan garis bawah ('_'). Namun, karakter khusus lain seperti '#','&', dll., tidak diperbolehkan. Selain itu, penggunaan garis bawah tidak dianjurkan.
- Spasi putih (tab, spasi) tidak diperbolehkan dalam nama variabel.
- Nama variabel harus diawali huruf dan tidak boleh diawali angka atau karakter lain.
Variabel Mutable
Variabel mutable memungkinkan perubahan nilai variabel bahkan setelah variabel dideklarasikan.
Sintaks variabel mutable ditunjukkan di bawah ini:
var variable_name : variable_datatype = value;
Sintaks variabel mutable juga dapat didefinisikan sebagai berikut:
var variable_name = value;
Contoh variabel mutable ditunjukkan di bawah ini:
var nameOfThing: String = "Car";
Contoh di atas berisi var sebagai kata kunci untuk mendefinisikan variabel mutable. Nama variabelnya adalah 'nameOfThing'. Diikuti titik dua dengan tipe data variabel 'String'. Nilainya yang tersimpan di memori adalah 'Car'.
Contoh variabel mutable dengan sintaks berbeda dapat dilakukan sebagai berikut:
var nameOfThing = "Car";
Anda dapat mendefinisikan variabel tanpa mencantumkan tipe datanya, seperti di atas. Kompiler Scala secara otomatis menentukannya sebagai tipe data 'String', yang disebut Type Inference.
Anda dapat dengan mudah mengubah nilai variabel seperti di bawah ini:
nameOfThing = "Bike";
print(nameOfThing)
Nilai variabel akan berubah dari "Car" menjadi "Bike." Keluaran akan berupa "Bike," karena kata kunci 'var' memungkinkan Anda mengubah nilai variabel (Sumber: Variables in Scala).
Variabel Immutable
Variabel immutable adalah variabel yang nilainya tidak dapat diubah setelah dibuat dan dideklarasikan menggunakan kata kunci 'val'.
Sintaks variabel immutable ditunjukkan di bawah ini:
val variable_name : variable_data type = value;
Sintaks variabel immutable juga dapat didefinisikan sebagai berikut:
val variable_name = value;
Contoh variabel immutable ditunjukkan di bawah ini:
val numberOfThing: Int = 2;
Contoh di atas berisi val sebagai kata kunci untuk mendefinisikan variabel immutable dan nama variabel 'numberOfThing.' Diikuti titik dua dengan tipe data variabel 'Int' dengan nilai yang disimpan di memori adalah 2.
Contoh variabel immutable dengan sintaks berbeda dapat dilakukan sebagai berikut:
val numberOfThing = 2;
Anda dapat mendefinisikan variabel tanpa tipe data seperti di atas, di mana kompiler Scala secara otomatis menentukan bahwa itu bertipe 'Int'. Proses ini disebut Type Inference (Sumber: Variables in Scala).
Anda tidak dapat mengubah nilai variabel seperti berikut:
numberOfThing = 7;
Contoh di atas akan menghasilkan galat seperti "error: not found: value numberOfThing", yang menunjukkan bahwa penetapan ulang nilai tidak memungkinkan seperti yang ditunjukkan di bawah ini:

Deklarasi dan Penugasan Berganda
Deklarasi berganda dimungkinkan di Scala menggunakan kata kunci 'var' dengan nama variabel dipisahkan oleh koma dan tanda "=" dengan nilai untuk variabel tersebut.
var (x, y, z) = (5, 4.5, "Sit")
Pada contoh di atas, Anda dapat melihat semua variabel x, y, dan z masing-masing diisikan nilai 5, 4.5 dan "Sit" sebagai berikut.

Penugasan berganda juga dimungkinkan di Scala dalam satu baris menggunakan kata kunci 'val' dengan nama variabel dipisahkan koma dan tanda "=" dengan nilai untuk variabel.
val a, b, c = 1;
Pada contoh di atas, Anda dapat melihat semua variabel a, b, dan c diisikan nilai 1 seperti berikut.

Cakupan Variabel
Cakupan adalah visibilitas variabel yang memiliki masa hidup di dalam blok kode tertentu. Variabel dapat didefinisikan dalam Cakupan Lokal atau Global. Contoh:
var globalVar = 10
def sub(){
var difference = 9-4;
}
print(difference)//Error
print(globalVar)//Valid
Pada kode di atas, variabel 'difference' berada dalam Cakupan Lokal karena dideklarasikan di dalam metode 'sub', dan operasi pengurangan akan menghasilkan nilai yang valid, tetapi mencetak nilainya di luar metode 'sub' akan menyebabkan galat. Ada juga Cakupan Global di mana variabel 'globalVar' dapat diakses di mana saja dalam program, dan operasi apa pun dapat dilakukan terhadapnya.
Ada tiga jenis cakupan untuk variabel dalam Scala (Sumber: Scala- Variables):
- Variabel lokal
- Field
- Parameter Metode
Variabel Lokal
Variabel lokal adalah variabel mutable atau immutable yang dideklarasikan di dalam sebuah metode dan hanya dapat diakses di dalam metode tersebut, tidak di luar.
Anda dapat melihat contoh sederhana di bawah untuk mengetahui tentang Variabel Lokal:
class Perimeter
{
def triangle()
{
var side1 = 10;
var side2 = 20;
var side3 = 30;
var total = side1+side2+side3;
print("Perimeter of the triangle is: " + total);
}
}
object Test
{
def main(args:Array[String])
{
val p1 = new Perimeter()
p1.triangle()
}
}
defined class Perimeter
defined object Test
Kode di atas memberikan hasil:
The perimeter of the triangle is: 60
Program di atas berisi kelas bernama 'Perimeter' dan objek bernama 'Test' di mana ada metode bernama triangle dengan tiga variabel mutable yaitu side1, side2, side3. Perhitungan dan pencetakan hasil akan dilakukan di dalam metode, yang akan memberikan keluaran yang benar.
Field
Variabel yang didefinisikan di dalam kelas disebut variabel field yang bisa berupa tipe apa pun, baik variabel mutable maupun immutable. Modifier akses akan otomatis menjadi public jika variabel dideklarasikan di dalam kelas, tetapi tidak boleh didefinisikan di dalam metode mana pun sehingga variabel dapat diakses di mana saja dalam program. Namun, variabel private dapat diakses di dalam kelas yang didefinisikan tetapi tidak dapat diakses di luar cakupan kelas atau bahkan di dalam objek.
class FieldExample
{
var value1 = 10;
private var value2 = 30;
def operation()
{
println("Value of value1:"+value1)
}
println("Value of value2: "+value2);
}
object Demo
{
def Main(args:Array[String])
{
val obj = new FieldExample()
obj.operation()
print(obj.value1)//Valid
print(obj.value2)
}
}
defined class FieldExample
defined object Demo
Kode di atas memberikan hasil:
Value of value2: 30
Value of value1:10
10
Program di atas berisi kelas bernama 'FieldExample,' objek bernama 'Demo' dan metode 'operation.' Variabel public value1 dapat diakses menggunakan notasi titik, dan nilainya tercetak sebagai 10. Variabel private value2 bernilai 30, di mana upaya mengakses variabel tersebut dan mencetaknya akan menyebabkan galat.
Parameter Metode
Parameter metode adalah variabel yang menerima nilai saat metode dipanggil, dan variabel harus immutable, yang didefinisikan menggunakan kata kunci 'val'. Selain itu, variabel dapat diakses di luar metode saat ada referensi yang dibuat kepadanya.
Anda dapat melihat contoh sederhana di bawah untuk mengetahui tentang Parameter Metode:
class Triangle
{
def calculate(height: Int, width: Int)
{
var result = 0.5*(height+width);
println("Area of triangle is: " + result);
}
}
object Area
{
def main(args:Array[String])
{
val a = new Triangle()
a.calculate(4,5);
}
}
defined class Triangle
defined object Area
Kode di atas memberikan hasil:
Area of triangle is: 4.5
Program di atas berisi kelas bernama 'Triangle.' Di dalamnya terdapat metode bernama 'calculate' dengan dua parameter metode height dan width. Nilai integer 4 dan 5 diteruskan saat 'calculate' dipanggil menggunakan instance objek a.
Kesimpulan
Selamat, Anda telah mencapai akhir tutorial ini!
Dalam tutorial ini, Anda telah membahas variabel Scala, aturan untuk mendefinisikan variabel, berbagai jenis variabel dengan Deklarasi dan Penugasan Berganda serta Cakupan variabel di dalamnya.
Jika Anda ingin mempelajari lebih lanjut tentang Scala, ikuti kursus DataCamp Introduction to Scala.
