Memulai
Pemrograman
dengan Kotlin
#2
Ahmad Arif Faizin
Academy Content Writer
Dicoding Indonesia
x
Tips Trik Seputar Instalasi
- Pastikan menggunakan versi yang sama dengan yang ada di modul.
- Jika sudah pernah menginstall Java sebelumnya, install dulu versi yang lama.
- Invalidate cache/restart jika tidak bisa run EduTools.
- Disable antivirus seperti Avast.
- Jika errornya “Failed to launch checking”, coba hapus folder project dan ulangi
mengambil course.
- Pastikan koneksi lancar saat instalasi.
- Kode merah-merah? pastikan besar kecil spasi sama dengan di modul.
- Untuk pengguna 32 bit bisa mencoba install JDK lewat Azul.com
3.
Kotlin Fundamental
Tipe Data & Fungsi
Hello Kotlin!
// main function
fun main() {
println("Hello Kotlin!")
}
fungsi pertama ketika
program dijalankan
untuk memberi komentar
fungsi untuk mencetak teks
ke layar/console
println vs print
fun main() {
println("Kotlin, ")
print("is Awesome!")
}
/*
output:
Kotlin,
is Awesome
*/
fun main() {
print("Kotlin, ")
print("is Awesome!")
}
/*
output:
Kotlin, is Awesome
*/
Contoh lain
fun main() {
val name = "Arif"
print("Hello my name is ")
println(name)
print(if (true) "Always true" else "Always false")
}
/*
output:
Hello my name is Arif
Always true
*/
cetak teks ke layar
untuk membuat variabel dengan tipe data string
untuk membuat
percabangan
cetak teks ke layar dan
membuat baris baru
Cara Menulis Variabel
var namaVariabel: TipeData = isi(value)
Contoh :
var company: String = "Dicoding"
atau bisa disingkat
var company = "Dicoding"
tipe data akan
menyesuaikan dengan
isinya
var vs val
Bisa diubah nilainya
(mutable)
var company = "Dicoding"
company = "Dicoding Academy"
Tidak bisa diubah nilainya
(immutable)
val company = "Dicoding"
company = "Dicoding Academy"
//Val cannot be reassigned
Tipe Data
Char hanya satu karakter ‘A’
String kumpulan dari banyak karakter (teks) “Kotlin”
Array menyimpan banyak objek arrayOf(“Aku”, “Kamu”, “Dia”)
Numbers angka 7
Boolean hanya memiliki 2 nilai true/false
Char
Contoh :
val character: Char = 'A'
Contoh salah
val character: Char = 'ABC'
// Incorrect character literal
Char
Operator increment & decrement
fun main() {
var vocal = 'A'
println("Vocal " + vocal++)
println("Vocal " + vocal--)
println("Vocal " + vocal)
}
/*
output:
Vocal A
Vocal B
Vocal A
*/
String
Memasukkan variabel ke dalam String
Contoh :
fun main() {
val text = "Kotlin"
val firstChar = text[0]
print("First character of" + text + " is " + firstChar)
}
print("First character of $text is $firstChar") string template
String
Membuat pengecualian(escaped) di dalam String
Contoh :
val statement = "Kotlin is "Awesome!""
String
Membuat Raw String
Contoh :
fun main() {
val line = """
Line 1
Line 2
Line 3
Line 4
""".trimIndent()
print(line)
}
/*
output:
Line 1
Line 2
Line 3
Line 4
*/
Array
indeks dimulai dari 0
fun main() {
val intArray = intArrayOf(1, 3, 5, 7) // [1, 3, 5, 7]
intArray[2] = 11 // [1, 3, 11, 7]
print(intArray[2])
}
/*
Output: 11
*/
1 3 5 7
ke-0 ke-1 ke-2 ke-3
Boolean
Numbers
Int (32 bit) nilai angka yang umum digunakan val intNumbers = 100
Long (64 bit) nilai angka yang besar val longNumbers = 100L
Short (16 bit) nilai angka yang kecil val shortNumber: Short = 10
Byte (8 bit) nilai angka yang sangat kecil val byteNumber = 0b11010010
Double (64 bit) nilai angka pecahan val doubleNumbers = 1.3
Functions
tanpa nilai kembalian
fun main() {
setUser("Arif", 17)
}
fun setUser(name: String, age: Int){
println("Your name is $name, and you $age years old")
}
parameter yang dikirimkan
ke dalam fungsi
untuk membuat fungsi
Functions
dengan nilai kembalian
fun main() {
val user = setUser("Arif", 17)
println(user)
}
fun setUser(name: String, age: Int): String {
return "Your name is $name, and you $age years old"
}
untuk membuat nilai
kembalian
tipe data nilai yang
dikembalikan
fun setUser(name: String, age: Int) = "Your name is $name, and you $age years old"
If Expressions
percabangan berdasarkan kondisi
val openHours = 7
val now = 20
if (now > openHours){
println("office already open")
}
val openHours = 7
val now = 20
val office: String
if (now > openHours) {
office = "Office already open"
} else {
office = "Office is closed"
}
print(office)
val openHours = 7
val now = 7
val office: String
office = if (now > 7) {
"Office already open"
} else if (now == openHours){
"Wait a minute, office will be open"
} else {
"Office is closed"
}
print(office)
Nullable Types
Contoh:
val text: String? = null
Contoh salah:
val text: String = null
// compile time error
Safe Call Operator ?.
memanggil nullable dengan aman
val text: String? = null
text?.length
val text: String? = null
val textLength = text?.length ?: 7
Elvis Operator ?:
nilai default jika objek bernilai null
Kerjakan Latihan
4.
Control Flow
Percabangan & Perulangan
When Expression
Percabangan selain If Else
fun main() {
val value = 7
val stringOfValue = when (value) {
6 -> "value is 6"
7 -> "value is 7"
8 -> "value is 8"
else -> "value cannot be reached"
}
println(stringOfValue)
}
/*
output : value is 7
*/
When Expression
val anyType : Any = 100L
when(anyType){
is Long -> println("the value has a Long type")
is String -> println("the value has a String type")
else -> println("undefined")
}
val value = 27
val ranges = 10..50
when(value){
in ranges -> println("value is in the range")
!in ranges -> println("value is outside the range")
else -> println("value undefined")
}
val x = 11
when (x) {
10, 11 -> print("the value between 10 and 11")
11, 12 -> print("the value between 11 and 12")
}
val x = 10
when (x) {
5 + 5 -> print("the value is 10")
10 + 10 -> print("the value is 20")
}
Enumeration
fun main() {
val color: Color = Color.GREEN
when(color){
Color.RED -> print("Color is Red")
Color.BLUE -> print("Color is Blue")
Color.GREEN -> print("Color is Green")
}
}
enum class Color(val value: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
//output : Color is Green
While
Perulangan
fun main() {
var counter = 1
while (counter <= 5){
println("Hello, World!")
counter++
}
}
fun main() {
println("Hello World")
println("Hello World")
println("Hello World")
println("Hello World")
println("Hello World")
}
=
fun main() {
var counter = 1
while (counter <= 7){
println("Hello, World!")
counter++
}
}
cek dulu
baru jalankan
While vs Do While
fun main() {
var counter = 1
do {
println("Hello, World!")
counter++
} while (counter <= 7)
}
jalankan dulu
baru cek
Hati - Hati dengan infinite loop
Karena kondisi tidak terpenuhi
var value = 'A'
do {
print(value)
} while (value <= 'Z')
var i = 3
while (i > 3) {
println(i)
i--
}
val rangeInt = 1.rangeTo(10)
=
val rangeInt = 1..10
=
val rangeInt = 1 until 10
dari bawah
ke atas
rangeTo vs downTo
val downInt = 10.downTo(1)
dari atas ke bawah
For Loop
Perulangan dengan counter otomatis
fun main() {
val ranges = 1..5
for (i in ranges){
println("value is $i!")
}
}
fun main() {
var counter = 1
while (counter <= 5){
println("value is $counter!")
counter++
}
}
=
For Each
Perulangan dengan counter otomatis
fun main() {
val ranges = 1..5
ranges.forEach{
println("value is $i!")
}
}
fun main() {
val ranges = 1..5
for (i in ranges){
println("value is $i!")
}
}
=
Break & Continue
Contoh program deteksi angka ganjil sampai angka 10
fun main() {
val listNumber = 1.rangeTo(50)
for (number in listNumber) {
if (number % 2 == 0) continue
if (number > 10) break
println("$number adalah bilangan ganjil")
}
}
* % adalah modulus / sisa pembagian
misal 10 % 2 == 0, 11 % 2 = 1 , 9 % 6 = 3
/*
output:
1 adalah bilangan ganjil
3 adalah bilangan ganjil
5 adalah bilangan ganjil
7 adalah bilangan ganjil
9 adalah bilangan ganjil
*/
Lanjutkan Latihan
&
Terus Belajar!
OUR LIFE SHOULD BE JUST LIKE
MODULUS. DOESN’T MATTER WHAT VALUE
IS ENTERED, IT’S RESULT ALWAYS
POSITIVE. AND SO SHOULD BE OUR LIFE
IN EVERY SITUATION
- Pranay Neve
’’
’’
You can find me at:
● Google : Ahmad Arif Faizin
● Discord : @arifaizin
Thanks!
Any questions?

Dts x dicoding #2 memulai pemrograman kotlin

  • 1.
    Memulai Pemrograman dengan Kotlin #2 Ahmad ArifFaizin Academy Content Writer Dicoding Indonesia x
  • 2.
    Tips Trik SeputarInstalasi - Pastikan menggunakan versi yang sama dengan yang ada di modul. - Jika sudah pernah menginstall Java sebelumnya, install dulu versi yang lama. - Invalidate cache/restart jika tidak bisa run EduTools. - Disable antivirus seperti Avast. - Jika errornya “Failed to launch checking”, coba hapus folder project dan ulangi mengambil course. - Pastikan koneksi lancar saat instalasi. - Kode merah-merah? pastikan besar kecil spasi sama dengan di modul. - Untuk pengguna 32 bit bisa mencoba install JDK lewat Azul.com
  • 4.
  • 5.
    Hello Kotlin! // mainfunction fun main() { println("Hello Kotlin!") } fungsi pertama ketika program dijalankan untuk memberi komentar fungsi untuk mencetak teks ke layar/console
  • 6.
    println vs print funmain() { println("Kotlin, ") print("is Awesome!") } /* output: Kotlin, is Awesome */ fun main() { print("Kotlin, ") print("is Awesome!") } /* output: Kotlin, is Awesome */
  • 7.
    Contoh lain fun main(){ val name = "Arif" print("Hello my name is ") println(name) print(if (true) "Always true" else "Always false") } /* output: Hello my name is Arif Always true */ cetak teks ke layar untuk membuat variabel dengan tipe data string untuk membuat percabangan cetak teks ke layar dan membuat baris baru
  • 8.
    Cara Menulis Variabel varnamaVariabel: TipeData = isi(value) Contoh : var company: String = "Dicoding" atau bisa disingkat var company = "Dicoding" tipe data akan menyesuaikan dengan isinya
  • 9.
    var vs val Bisadiubah nilainya (mutable) var company = "Dicoding" company = "Dicoding Academy" Tidak bisa diubah nilainya (immutable) val company = "Dicoding" company = "Dicoding Academy" //Val cannot be reassigned
  • 10.
    Tipe Data Char hanyasatu karakter ‘A’ String kumpulan dari banyak karakter (teks) “Kotlin” Array menyimpan banyak objek arrayOf(“Aku”, “Kamu”, “Dia”) Numbers angka 7 Boolean hanya memiliki 2 nilai true/false
  • 11.
    Char Contoh : val character:Char = 'A' Contoh salah val character: Char = 'ABC' // Incorrect character literal
  • 12.
    Char Operator increment &decrement fun main() { var vocal = 'A' println("Vocal " + vocal++) println("Vocal " + vocal--) println("Vocal " + vocal) } /* output: Vocal A Vocal B Vocal A */
  • 13.
    String Memasukkan variabel kedalam String Contoh : fun main() { val text = "Kotlin" val firstChar = text[0] print("First character of" + text + " is " + firstChar) } print("First character of $text is $firstChar") string template
  • 14.
    String Membuat pengecualian(escaped) didalam String Contoh : val statement = "Kotlin is "Awesome!""
  • 15.
    String Membuat Raw String Contoh: fun main() { val line = """ Line 1 Line 2 Line 3 Line 4 """.trimIndent() print(line) } /* output: Line 1 Line 2 Line 3 Line 4 */
  • 16.
    Array indeks dimulai dari0 fun main() { val intArray = intArrayOf(1, 3, 5, 7) // [1, 3, 5, 7] intArray[2] = 11 // [1, 3, 11, 7] print(intArray[2]) } /* Output: 11 */ 1 3 5 7 ke-0 ke-1 ke-2 ke-3
  • 17.
  • 18.
    Numbers Int (32 bit)nilai angka yang umum digunakan val intNumbers = 100 Long (64 bit) nilai angka yang besar val longNumbers = 100L Short (16 bit) nilai angka yang kecil val shortNumber: Short = 10 Byte (8 bit) nilai angka yang sangat kecil val byteNumber = 0b11010010 Double (64 bit) nilai angka pecahan val doubleNumbers = 1.3
  • 19.
    Functions tanpa nilai kembalian funmain() { setUser("Arif", 17) } fun setUser(name: String, age: Int){ println("Your name is $name, and you $age years old") } parameter yang dikirimkan ke dalam fungsi untuk membuat fungsi
  • 20.
    Functions dengan nilai kembalian funmain() { val user = setUser("Arif", 17) println(user) } fun setUser(name: String, age: Int): String { return "Your name is $name, and you $age years old" } untuk membuat nilai kembalian tipe data nilai yang dikembalikan fun setUser(name: String, age: Int) = "Your name is $name, and you $age years old"
  • 21.
    If Expressions percabangan berdasarkankondisi val openHours = 7 val now = 20 if (now > openHours){ println("office already open") } val openHours = 7 val now = 20 val office: String if (now > openHours) { office = "Office already open" } else { office = "Office is closed" } print(office) val openHours = 7 val now = 7 val office: String office = if (now > 7) { "Office already open" } else if (now == openHours){ "Wait a minute, office will be open" } else { "Office is closed" } print(office)
  • 22.
    Nullable Types Contoh: val text:String? = null Contoh salah: val text: String = null // compile time error
  • 23.
    Safe Call Operator?. memanggil nullable dengan aman val text: String? = null text?.length val text: String? = null val textLength = text?.length ?: 7 Elvis Operator ?: nilai default jika objek bernilai null
  • 24.
  • 25.
  • 26.
    When Expression Percabangan selainIf Else fun main() { val value = 7 val stringOfValue = when (value) { 6 -> "value is 6" 7 -> "value is 7" 8 -> "value is 8" else -> "value cannot be reached" } println(stringOfValue) } /* output : value is 7 */
  • 27.
    When Expression val anyType: Any = 100L when(anyType){ is Long -> println("the value has a Long type") is String -> println("the value has a String type") else -> println("undefined") } val value = 27 val ranges = 10..50 when(value){ in ranges -> println("value is in the range") !in ranges -> println("value is outside the range") else -> println("value undefined") } val x = 11 when (x) { 10, 11 -> print("the value between 10 and 11") 11, 12 -> print("the value between 11 and 12") } val x = 10 when (x) { 5 + 5 -> print("the value is 10") 10 + 10 -> print("the value is 20") }
  • 28.
    Enumeration fun main() { valcolor: Color = Color.GREEN when(color){ Color.RED -> print("Color is Red") Color.BLUE -> print("Color is Blue") Color.GREEN -> print("Color is Green") } } enum class Color(val value: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) } //output : Color is Green
  • 29.
    While Perulangan fun main() { varcounter = 1 while (counter <= 5){ println("Hello, World!") counter++ } } fun main() { println("Hello World") println("Hello World") println("Hello World") println("Hello World") println("Hello World") } =
  • 30.
    fun main() { varcounter = 1 while (counter <= 7){ println("Hello, World!") counter++ } } cek dulu baru jalankan While vs Do While fun main() { var counter = 1 do { println("Hello, World!") counter++ } while (counter <= 7) } jalankan dulu baru cek
  • 31.
    Hati - Hatidengan infinite loop Karena kondisi tidak terpenuhi var value = 'A' do { print(value) } while (value <= 'Z') var i = 3 while (i > 3) { println(i) i-- }
  • 32.
    val rangeInt =1.rangeTo(10) = val rangeInt = 1..10 = val rangeInt = 1 until 10 dari bawah ke atas rangeTo vs downTo val downInt = 10.downTo(1) dari atas ke bawah
  • 33.
    For Loop Perulangan dengancounter otomatis fun main() { val ranges = 1..5 for (i in ranges){ println("value is $i!") } } fun main() { var counter = 1 while (counter <= 5){ println("value is $counter!") counter++ } } =
  • 34.
    For Each Perulangan dengancounter otomatis fun main() { val ranges = 1..5 ranges.forEach{ println("value is $i!") } } fun main() { val ranges = 1..5 for (i in ranges){ println("value is $i!") } } =
  • 35.
    Break & Continue Contohprogram deteksi angka ganjil sampai angka 10 fun main() { val listNumber = 1.rangeTo(50) for (number in listNumber) { if (number % 2 == 0) continue if (number > 10) break println("$number adalah bilangan ganjil") } } * % adalah modulus / sisa pembagian misal 10 % 2 == 0, 11 % 2 = 1 , 9 % 6 = 3 /* output: 1 adalah bilangan ganjil 3 adalah bilangan ganjil 5 adalah bilangan ganjil 7 adalah bilangan ganjil 9 adalah bilangan ganjil */
  • 36.
  • 37.
    OUR LIFE SHOULDBE JUST LIKE MODULUS. DOESN’T MATTER WHAT VALUE IS ENTERED, IT’S RESULT ALWAYS POSITIVE. AND SO SHOULD BE OUR LIFE IN EVERY SITUATION - Pranay Neve ’’ ’’
  • 38.
    You can findme at: ● Google : Ahmad Arif Faizin ● Discord : @arifaizin Thanks! Any questions?