25 Pertanyaan &Jawaban Wawancara Scala Teratas – Panduan PDF
Jelajahi pertanyaan dan jawaban wawancara Scala yang ringkas dan dibuat oleh ahli, cocok untuk pendatang baru dan pengembang berpengalaman yang ingin mendapatkan peran ideal mereka.
1) Apa itu Scala?
Scala adalah bahasa yang kuat dan diketik secara statis yang memadukan paradigma pemrograman berorientasi objek dan fungsional. Dirancang agar ekspresif dan ringkas, ini berjalan di Java Virtual Machine dan terintegrasi secara lancar dengan pustaka Java.
2) Apa yang dimaksud dengan Scala Set dan bagaimana operasi set dilakukan?
Sebuah Set di Scala adalah kumpulan elemen unik berpasangan dari tipe yang sama. Scala menawarkan keduanya mutable.Set dan immutable.Set varian, masing-masing menyediakan metode seperti add , remove , contains , dan operasi teori himpunan seperti union , intersect , dan diff .
👉 Unduhan PDF Gratis:Pertanyaan &Jawaban Wawancara Scala
3) Apa itu Peta Scala?
Sebuah Peta adalah kumpulan pasangan nilai kunci. Kunci bersifat unik, memungkinkan pencarian nilai terkait secara efisien. Nilai dapat diduplikasi. Map Scala API mencakup get , put , contains , dan transformasi fungsional seperti mapValues .

4) Apa kelebihan Scala?
- Sintaks yang ringkas dan ekspresif yang mengurangi boilerplate
- Inferensi tipe dan pencocokan pola yang kuat untuk kode yang lebih aman
- Koleksi yang tidak dapat diubah secara default, meningkatkan keamanan thread
- Interoperabilitas yang lancar dengan Java
- Dukungan bawaan untuk konkurensi (Akka, Futures)
- Ekosistem perpustakaan dan kerangka kerja yang kaya (Spark, Play)
5) Dalam hal apa Scala mengungguli bahasa lain?
- Generik adalah kelas satu, terintegrasi erat dengan sistem tipe.
val yang tidak dapat diubah memberikan perbedaan yang jelas antara data yang dapat diubah dan data yang tidak dapat diubah.
- Struktur kontrol seperti
if dan for‑yield mengembalikan nilai secara langsung, menghilangkan kebutuhan akan operator ternary.
- Objek tunggal menggantikan konstruksi statis, menawarkan desain yang lebih rapi.
- Koleksi tetap yang tidak dapat diubah adalah bagian dari perpustakaan standar.
- Dukungan tuple asli dan sintaksis ringkas mengurangi boilerplate.
- Tidak ada kode boilerplate yang berlebihan.
6) Apa itu variabel Scala?
Scala membedakan antara nilai-nilai yang tidak dapat diubah (val ) dan variabel yang bisa berubah (var ). Sekali val ditugaskan, rujukannya tidak dapat diubah; var memungkinkan penugasan ulang.
Contoh:
var myVar: Int = 0
val myVal: Int = 1
7) Perbedaan antara kelas dan objek?
Sebuah kelas mendefinisikan cetak biru untuk membuat objek, menentukan keadaan dan perilaku. Sebuah objek adalah turunan tunggal dari suatu kelas, yang menyediakan satu turunan yang dapat diakses secara global. Di Scala, setiap objek secara implisit membuat subkelas anonim selama kompilasi.
8) Apa itu rekursi ekor di Scala?
Rekursi ekor terjadi ketika suatu fungsi memanggil dirinya sendiri sebagai tindakan terakhirnya. Kompiler Scala dapat mengoptimalkan panggilan rekursif ekor ke dalam loop berulang, mencegah stack overflow untuk rekursi mendalam.
9) Apa yang dimaksud dengan sifat Scala?
Sebuah sifat mendefinisikan sekumpulan anggota abstrak dan konkrit yang dapat digabungkan ke dalam kelas. Sifat memungkinkan perilaku yang dapat digunakan kembali dan disusun tanpa memerlukan pewarisan, dan dapat berisi bidang dan implementasi metode.
10) Kapan sebaiknya Anda menggunakan sifat?
- Ketika perilaku dimaksudkan untuk digunakan kembali di seluruh kelas yang tidak terkait.
- Saat Anda memerlukan beberapa pewarisan tipe perilaku.
- Untuk interoperabilitas Java, pilih kelas abstrak.
- Untuk kode yang penting bagi kinerja, pertimbangkan kelas konkret.
- Saat mendistribusikan perpustakaan yang dapat digunakan kembali, ciri-ciri dapat dikompilasi dan digunakan kembali oleh proyek eksternal.
Pertanyaan Wawancara Scala untuk Pengembang Berpengalaman
11) Apa yang dimaksud dengan kelas kasus?
Kelas kasus adalah kelas khusus dan tidak dapat diubah yang secara otomatis menyediakan metode seperti equals , hashCode , copy , dan mendukung pencocokan pola. Parameter konstruktor adalah kolom val publik secara default.
12) Apa gunanya tupel di Scala?
Tupel mengelompokkan sejumlah nilai heterogen ke dalam satu struktur yang tidak dapat diubah. Mereka berguna untuk mengembalikan beberapa nilai dari suatu metode tanpa mendefinisikan kelas khusus.
13) Apa fungsi kari di Scala?
Currying mengubah fungsi yang mengambil banyak argumen menjadi rangkaian fungsi, masing-masing menerima satu argumen. Hal ini memfasilitasi penerapan parsial dan meningkatkan komposisi.
14) Apa yang dimaksud dengan parameter implisit?
Parameter implisit memungkinkan kompiler untuk secara otomatis memberikan argumen ketika tidak ada argumen yang diberikan secara eksplisit. Mereka didefinisikan dengan implicit kata kunci dan diselesaikan dengan penelusuran tingkat cakupan.
15) Apa itu penutupan?
Penutupan adalah fungsi yang menangkap variabel dari lingkup sekitarnya, sehingga variabel tersebut dapat digunakan bahkan setelah fungsi penutupnya kembali.
16) Apa itu monad?
Monad adalah abstraksi yang merangkum konteks komputasi (misalnya, Option , Future , List ) dan mendefinisikan flatMap dan map operasi untuk merangkai komputasi sambil mempertahankan konteks.
17) Apa yang dimaksud dengan fungsi anonim?
Fungsi anonim, atau literal fungsi, didefinisikan secara inline menggunakan sintaks (args) => body dan dapat diteruskan sebagai argumen atau ditetapkan ke variabel.
18) Jelaskan fungsi tingkat tinggi.
Fungsi tingkat tinggi menerima fungsi lain sebagai parameter atau fungsi kembalian. Contoh:
object Test {
def main(args: Array[String]): Unit = println(apply(layout, 10))
def apply(f: Int => String, v: Int) = f(v)
def layout[A](x: A) = s"[$x]"
}
Menjalankan ini akan mencetak [10] .
19) Perbedaan antara var dan val ?
Lihat Bagian 6
untuk perbandingan mendetail.
20) Apa itu Opsi, Beberapa, dan Tidak Ada?
Option mewakili nilai opsional:dapat berupa Some(value) atau None , menghilangkan null referensi dan mengaktifkan kode yang lebih aman.
21) Bagaimana cara menambahkan ke Daftar?
Gunakan :+ operator untuk elemen tunggal atau ++= untuk koleksi:
var myList = List.empty[String]
myList :+= "a"
myList :+= "b"
myList :+= "c"
myList ++= List("a", "b", "c") 22) Bagaimana cara memformat string?
Gunakan format interpolasi metode atau string:
val formatted = "%s %i".format(myString, myInt)
// or
val formatted = s"$myString $myInt"
23) Mengapa Scala menyukai kekekalan?
Kekekalan mencegah perubahan keadaan yang tidak disengaja, menyederhanakan penalaran tentang kode, dan penting untuk pemrograman paralel dan bersamaan yang aman.
24) Jenis pengidentifikasi Scala
- Pengidentifikasi alfanumerik (misalnya,
myVar )
- Pengidentifikasi operator (misalnya,
++ )
- Pengidentifikasi campuran (misalnya,
_foo )
- Pengidentifikasi literal (misalnya,
`my var` )
25) Jenis literal Scala
- Integer, floating‑point, boolean, simbol, karakter, string, dan literal string multi-baris
Pertanyaan-pertanyaan ini juga akan memperkuat kesiapan wawancara lisan Anda.