3. Generics
● Membuat class di Kotlin agar memiliki type
● Diinisasi ketika deklarasi class, dengan format
class namaClass<T>(param: T){}
● T untuk type, ditentukan ketika pemanggilan,
atau ditentukan typenya langsung ketika inisiasi
● Bisa juga diimplementasikan di method
4. Extensions
● Menambahkan fungsionalitas pada
class / default class tanpa melakukan
inheritance
● Contoh, pada ArrayList akan kita
tambahkan fungsi swap untuk menukar
isi dari index1 ke index2, dimana index1
dan index2 adalah lokasi terserah pada
index array (tidak harus index ke 1 dan
ke 2)
5. Inner Class
● Membuat class di dalam class
● Secara default inner class tidak
bisa mengakses outer class
6. Inner Class
● Perlu menambahkan keyword “Inner”
agar bisa mengakses field/method milik
outer class
● “Inner class” memiliki akses penuh
kepada semua field/method class yang
diluarnya, sekalipun berlabel “private”
● Outer class tidak memiliki akses kepada
semua field/method class yang
didalamnya
● Inisiasi object dari inner class,
diperlukan juga constructornya
7. Akses Antar Class
Outer tidak boleh
mengakses variable dan
method innerclassnya
Innerclass boleh
mengakses variable dan
method outerclassnya
8. Nested Lebih dari Satu Class
Outer class
Inner class /
nested class
Inner class /
nested class Cara membuat object
dari inner class
9. Nested class dapat extends/implements
Nested class diijinkan meng-extends
class lain maupun mengimplement
interface
Nested class dapat
mengimplement interface
Membuat object nested
dengan nama interface
yang diimplementnya
10. Packages
● Cara yang digunakan untuk mengorganisir java/kotlin software
● Nama package yang disarankan: domain terbalik
● Contoh: unisnu.ac.id
● Package:
○ id.ac.unisnu.db (untuk library database)
○ id.ac.unisnu.gui (untuk library GUI)
○ id.ac.unisnu.io (untuk library I/O)
○ id.ac.unisnu.io.socket (untuk library I/O spesifik socket)
11. Membuat package
● Dengan cara klik kanan src > New > Package
● masukkan nama package misal id.ac.unisnu.mylib
13. Import Package
● Untuk sebuah file kotlin/java lain yang ingin menggunakan file kotlin pada
package yang berbeda lokasi, gunakan keyword import
● Import sebuah package, hanya akan mengimpor semua .kt/.java saja. Jika
folder ada folder di dalamnya, tidak ikut terimport
● Statement package letaknya paling ATAS dan hanya bisa dideklarasikan
sekali dalam source code
14. “Import” mengimpor hanya isi 1 folder
● Buat sebuah file Scanner.kt dan nanti
akan dimasukkan ke package
id.ac.unisnu. Default letaknya adalah di
id.ac.unisnu.mylib
● Untuk memindahkan package, dengan
cara klik kanan pada file, kemudian pilih
Refactor > Move, dan hapus lokasi
terakhir mylib, sehingga sekarang
strukturnya berubah menjadi berikut
Scanner.kt
disimpan pada
id.ac.unisnu
Karena membutuhkan
Printer, maka import
id.ac.unisnu.mylib.*
15. Import Package
Tambahkan import id.ac.unisnu.* untuk menambah file Scanner
Karena membutuhkan Printer dan
Scanner maka import sesuai letak file
class masing-masing