SlideShare a Scribd company logo
1 of 48
Introduction Programming with
Kotlin
Aldi Saepurahman
@aldisaep_
linkedin.com/in/aldi-saepurahman/
Kotlin Basic Syntax
Have you ever learned to make Android apps?
Questions
Before we started..
● History/Sejarah
● Variables
● Data Type/Tipe Data
● Strings
● Null Safety
● Control Flow
● Collections
Overview
Introduction Programming with Kotlin
Kotlin
Sejarah
●Bahasa pemrograman Kotlin dikenalkan oleh Perusahaan JetBrains pada
tahun 2011
●Kotlin di desain agar terintegrasi dengan Java
●Tahun 2017, Google mengumumkan bahwa Kotlin adalah bahasa
pemrograman yang direkomendasikan untuk pengembangan aplikasi
Android
●Tahun 2019, Google umumkan KOTLIN FIRST!
Variables
Description
●Kotlin mendukung 2 jenis variabel; Mutable (bisa diubah) dan Immutable
(tidak bisa diubah).
●Untuk membuat variable Mutable, di kotlin bisa menggunakan kata kunci var
●Untuk membuat variable Immutable, di kotlin bisa menggunakan kata kunci
val
●Deklarasi :
val/var namaVariable : TipeData = data
Variables
Code
var width: Int = 10
width = 2
=> 2
val size: Int = 100
size = 200
=> Error: val cannot be reassigned
Integer Types
Integer
Type Bits Notes
Long 64 From -263 to 263-1
Int 32 From -231 to 231-1
Short 16 From -32768 to 32767
Byte 8 From -128 to 127
Underscore
Integer
val oneMillion = 1_000_000
val idNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
Conversion / Casting
Integer
var number: Int = 100
var byte: Byte = number.toByte()
var short: Short = number.toShort()
var long: Long= number.toLong()
var float: Float = number.toFloat()
var double: Double = number.toDouble()
var string: String = number.toString()
Floating Point and Other Numeric
types
Float, Char, Boolean
Type Bits Notes
Double 64 16 - 17 significant digits
Float 32 6 - 7 significant digits
Char 16 16-bit Unicode character
Boolean 8 True or false. Operations include:
|| - lazy disjunction, && - lazy conjunction,
! - negation
Berikut ini adalah kata kunci yang digunakan untuk variabel yang nilainya
tidak bisa dirubah adalah…
A. var
B. val
Questions
Before we continue..
● Tipe data string adalah tipe data yang berisikan data kumpulan karakter
atau sederhananya adalah teks.
● Di kotlin, tipe data string direpresentasikan dengan kata kunci String.
● Untuk membuat string di kotlin, kita bisa menggunakan
❖“ (tanda petik 2) untuk teks satu baris
❖“”” (tanda petik 2 sebanyak 3 kali) untuk teks lebih dari satu baris
String Type
String
val s1: String = "Hello world!"
val s2: String = "Hello world!n"
val text: String = """
var bikes = 50
"""
String Code
String
var address1: String = """
|Street 123
|Province Bandung
""".trimMargin()
var address2: String = """
>Street 222
>Province Ngawi
""".trimMargin(">")
String Trim Margin
String With Trim Margin
Without Trim Margin
●Ketika ingin menggabungkan 2 string gunakan operasi +
val firstName = "UPI"
val secondName = "Edun"
val fullname = firstName + " " + secondName
=> UPI Edun
String Concatenation
String
●Dengan string template, secara otomatis kita bisa mengakses data dari luar teks
string.
●$ adalah tanda yang digunakan untuk template ekspresi sederhana, seperti
mengakses variabel lain
●${ isi ekspresi } merupakan tanda yang digunakan untuk template yang kompleks
val i = 10
println("i = $i")
=> i = 10
val s = "abc"
println(“$s length is ${s.length}”)
=> abc length is 3
String Template
String
●Jika saat membuat variable, tidak diberi nilai, maka akan error
NullPointerException (NPE)
●Tetapi, Kotlin mendukung variabel yang boleh null (tidak memiliki data)
●Untuk membuat variabel bisa bernilai null, di Kotlin bisa menggunakan
? (tanda tanya) setelah tipe datanya.
●Penggunaan fitur ini tidak direkomendasikan untuk dilakukan di kotlin,
hanya sebagai jalan akhir jika misal mengakses kode Java
Null Safety
Description
●Safe Call Operator (?), dapat membuat variabel menjadi dapat berisi
data null
●Deklarasi Nullable variabel
val numberOfBooks: Int? = null
●Secara umum, jangan tetapkan variabel menjadi null karena mungkin
memiliki konsekuensi yang tidak diinginkan.
Safe Call Operator
Null Safety
●Jika suatu variabel yang dideklarasikan bernilai null dan memiliki suatu
property dari tipe datanya. Gunakan Safe Call (?) ketika memanggil
property tersebut
●Contoh:
val text: String? = null
val textLength = text?.length
Safe Call Operator
Null Safety
●Jika kalian yakin suatu variabel tidak null, gunakan !! untuk memaksa
variabel menjadi tipe non-null.
●Deklarasi !!
val text = “Test123”
val len = text!!.length
●Warning : !! operator akan mengembalikan Null Pointer Exception jika
variabel bernilai null jadi pastikan bahwa variabel tidak akan pernah
bernilai null
!! Operator
Null Safety
Elvis Operator
●Elvis operator merupakan cara untuk mengetes apakah suatu variable
bernilai null atau tidak menggunakan sintaks ?:
●Deklarasi !!
val text : String? = null
val lenText = text?.length ?: 0
●Jika panjang text sama dengan null akan mengembalikan nilai 0
Null Safety
Berikut ini adalah operator yang digunakan untuk menghindari
NullPointerException (NPE), kecuali…
A. !!
B. ?
C. !
D. ?:
Questions
Before we continue..
Kotlin menyediakan berbagai cara untuk mengimplementasikan logika
percabangan dan perulangan:
●If/Else statements
●When statements
●For loops
●While loops
Control Flow
Conditional & Loops
● Terkadang di dalam if, kita memerlukan berapa kondisi
● Kita bisa menggunakan Else If
val guests = 30
if (guests == 0) {
println("No guests")
} else if (guests < 20) {
println("Small group of people")
} else {
println("Large group of people!")
}
=> Large Group of People!
If/Else with multiple cases
Conditional
● Tipe data berisi rentang nilai yang sebanding (mis., bilangan bulat dari 1 hingga 100)
●Ranges bersifat terbatas
●Range dapat berupa data mutable ataupun immutable
●Cara membuat range di Kotlin sangat mudah cukup menggunakan tanda .. (titik
dua kali) :
○0..10 : Range dari 0 sampai 10
○1..100 : Range dari 1 sampai 100
○100 downTo 1 : Range dari 100 sampai 1
Ranges
Range Types
val numberOfStudents = 50
if (numberOfStudents in 1..100) {
println(numberOfStudents)
}
=> 50
Ranges dalam If Statement
Range
●Selain if/else statement, untuk melakukan percabangan di Kotlin, kita
juga bisa menggunakan When Statement
●When sangat sederhana dibandingkan if
●When sangat direkomendasikan ketika percabangan lebih dari 2
kondisi
●Biasanya when expression digunakan untuk melakukan pengecekan ke
kondisi dalam satu variabel
When Statement
When
val results = 100
when (results) {
0 -> println("No results")
in 1..39 -> println("Got results!")
else -> println("That's a lot of results!")
}
=> That's a lot of results!
When Statement
Code
val name = “Rudy”
when (name) {
is String -> println("This is String")
!is String -> println("This is not String")
}
=> This is String
When Statement Is
Code
●Dalam bahasa pemrograman, biasanya ada fitur yang bernama
perulangan
●Salah satu fitur perulangan di Kotlin adalah for
●For digunakan untuk melakukan perulangan iterasi dari data iterator
(Array, Range, dan lain-lain)
For Loops Statement
For Loops
val pets = arrayOf("dog", "cat", "canary")
for (element in pets) {
print(element + " ")
}
=> dog cat canary
For Loops Statement
Code
val pets = arrayOf("dog", "cat", "canary")
for ((index, element) in pets.withIndex()) {
println("Item at $index is $elementn")
}
⇒ Item at 0 is dog
Item at 1 is cat
Item at 2 is canary
For Loops : Element and Index
Code
for (i in 0..5) print(i)
=> 012345
for (i in 3..6 step 2) print(i)
⇒ 35
for (i in 'd'..'g') print (i)
⇒ defg
For Loops : Range
Code
●While adalah salah satu perulangan yang sangat flexible, dimana kode
while akan melakukan pengecekan kondisi, jika kondisi bernilai true,
maka dia akan menjalankan blok while, dan terus diulangi sampai
kondisi while bernilai false
While
While
var i = 0
while(i < 10){
println("While Loop")
i++
}
=> While Loop
While Loop
While Loop
While Loop
… 10x
While Loops
Code
Manakah program yang menyebabkan error saat dijalankan?Jelaskan
alasannya!
Questions
Before we continue..
List
Description
●List merupakan kumpulan elemen yang terurut
●Elemen pada list dapat diakses menggunakan indeksnya
●Elemen pada list bisa terdapat lebih dari 1
●List dapat bersifat Immutable dan Mutable
Immutable List
Description
●Deklarasi menggunakan listOf()
val instruments = listOf("trumpet", "piano", "violin")
println(instruments)
=> [trumpet, piano, violin]
mutable List
Description
●Deklarasi menggunakan mutableListOf()
val instruments = mutableListOf("trumpet", "piano", "violin")
instruments.remove("piano")
println(instruments)
instruments.add("guitar")
println(instruments)
=> [trumpet, violin]
=> [trumpet, violin, guitar]
● With a list defined with val, you can't change which list the variable refers to, but you can still change the contents of the list.
Arrays
Description
●Array digunakan untuk menyimpan berbagai data
●Elemen pada array dapat diakses menggunakan indeksnya
●Elemen pada array bersifat mutable
●Ukuran array adalah tetap
Arrays
Description
●Deklarasi array string menggunakan arrayOf()
val pets = arrayOf("dog", "cat", "canary")
println(pets.contentToString())
=> [dog, cat, canary]
● Array dapat menyimpan tipe data yang berbeda
val mix = arrayOf("hats", 2)
Operasi pada Arrays
Description
Operasi Keterangan
size Untuk mendapatkan panjang Array
get(index) Mendapat data di posisi index
[index] Mendapat data di posisi index
set(index, value) Mengubah data di posisi index
[index] = value Mengubah data di posisi index
Operasi Array
Description
val members: Array<String> = arrayOf("Eko", "Joko", "Budi")
● Mengakses elemen array Menggunakan Indeks
val eko: String = members[0]
val joko: String = members.get(1)
● Mengubah konten pada array
members.set(0, "Dudung")
val dudung: String = members[0]
Codelab
Subtitle
Practice what you’ve learned by
completing the pathway:
Lesson 1: Kotlin basics
Study Jam
Introduction Progamming with Kotlin
Biar lebih ngerti dan bisa pake bahasa Kotlin, coba
selesaikan soal challenge berikut ini
Coba buat program untuk menampilkan teks seperti berikut
(ganti dengan nama dan asal Universitas atau sekolah kalian)
1st Study Jam
Introduction Programming with Kotlin
Buat program menggunakan percabangan untuk menampilkan grade nilai
ujian:
- Nilai antara 80 hingga 100, diberi grade “A”
- Nilai antara dibawah 80 hingga 75, diberi grade “B”
- Nilai antara dibawah 75 hingga 65, diberi grade “C”
- Nilai antara dibawah 65 hingga 50, diberi grade “D”
- Dibawah 50 diberi grade “E”
2nd Study Jam
Introduction Programming with Kotlin
Gunakan perulangan dan percabangan untuk mengecek seluruh elemen
array yang berisi kumpulan String, jika suatu string memiliki panjang lebih
dari 8 karakter, tampilkan “String ini lebih dari 8 karakter”, jika tidak
melebihi 8 karakter, tampilkan langsung string tersebut
3rd Study Jam
Introduction Programming with Kotlin

More Related Content

What's hot

Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3
Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3
Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3Tino Dwiantoro
 
Jetpack Compose.pptx
Jetpack Compose.pptxJetpack Compose.pptx
Jetpack Compose.pptxGDSCVJTI
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan javarizki adam kurniawan
 
Pertemuan 4 alert dan toast
Pertemuan 4 alert dan toastPertemuan 4 alert dan toast
Pertemuan 4 alert dan toastheriakj
 
Rekayasa Kebutuhan Perangkat Lunak
Rekayasa Kebutuhan Perangkat LunakRekayasa Kebutuhan Perangkat Lunak
Rekayasa Kebutuhan Perangkat LunakSherly Uda
 
Pemodelan dan simulasi sistem komputer
Pemodelan dan simulasi sistem komputerPemodelan dan simulasi sistem komputer
Pemodelan dan simulasi sistem komputerArdhiansyah Purwanto
 
Pertemuan 9 preferences dan menu
Pertemuan 9 preferences dan menuPertemuan 9 preferences dan menu
Pertemuan 9 preferences dan menuheriakj
 
Imk model sistem
Imk model sistemImk model sistem
Imk model sistemDitta Paski
 
PERANCANGAN PERANGKAT LUNAK
PERANCANGAN PERANGKAT LUNAKPERANCANGAN PERANGKAT LUNAK
PERANCANGAN PERANGKAT LUNAKDhika The'Lover
 
Proses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakProses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakLusiana Diyan
 
Rpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakRpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakf' yagami
 
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterPemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterAkhmad Khanif Zyen
 
Html power point
Html power pointHtml power point
Html power pointminmon
 
1. Pengenalan Appsheet.pptx
1. Pengenalan Appsheet.pptx1. Pengenalan Appsheet.pptx
1. Pengenalan Appsheet.pptxssuser2b2324
 
Analisa data di python dengan pandas
Analisa data di python dengan pandasAnalisa data di python dengan pandas
Analisa data di python dengan pandaszakiakhmad
 
Jetpack Compose - A Lightning Tour
Jetpack Compose - A Lightning TourJetpack Compose - A Lightning Tour
Jetpack Compose - A Lightning TourMatthew Clarke
 

What's hot (20)

Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3
Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3
Tnd - Pengantar Manajemen Proyek Sistem Informasi - Temu 3
 
Jetpack Compose.pptx
Jetpack Compose.pptxJetpack Compose.pptx
Jetpack Compose.pptx
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java
 
Pertemuan 4 alert dan toast
Pertemuan 4 alert dan toastPertemuan 4 alert dan toast
Pertemuan 4 alert dan toast
 
Rekayasa Kebutuhan Perangkat Lunak
Rekayasa Kebutuhan Perangkat LunakRekayasa Kebutuhan Perangkat Lunak
Rekayasa Kebutuhan Perangkat Lunak
 
Pemodelan dan simulasi sistem komputer
Pemodelan dan simulasi sistem komputerPemodelan dan simulasi sistem komputer
Pemodelan dan simulasi sistem komputer
 
Pertemuan 9 preferences dan menu
Pertemuan 9 preferences dan menuPertemuan 9 preferences dan menu
Pertemuan 9 preferences dan menu
 
Imk model sistem
Imk model sistemImk model sistem
Imk model sistem
 
Java generic dan collection
Java generic dan collectionJava generic dan collection
Java generic dan collection
 
Makalah html
Makalah htmlMakalah html
Makalah html
 
PERANCANGAN PERANGKAT LUNAK
PERANCANGAN PERANGKAT LUNAKPERANCANGAN PERANGKAT LUNAK
PERANCANGAN PERANGKAT LUNAK
 
[PBO] Pertemuan 5 - Polymorphism
[PBO] Pertemuan 5 - Polymorphism[PBO] Pertemuan 5 - Polymorphism
[PBO] Pertemuan 5 - Polymorphism
 
Proses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakProses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat Lunak
 
Rpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakRpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunak
 
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterPemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
 
Html power point
Html power pointHtml power point
Html power point
 
Data Management (Relational Database)
Data Management (Relational Database)Data Management (Relational Database)
Data Management (Relational Database)
 
1. Pengenalan Appsheet.pptx
1. Pengenalan Appsheet.pptx1. Pengenalan Appsheet.pptx
1. Pengenalan Appsheet.pptx
 
Analisa data di python dengan pandas
Analisa data di python dengan pandasAnalisa data di python dengan pandas
Analisa data di python dengan pandas
 
Jetpack Compose - A Lightning Tour
Jetpack Compose - A Lightning TourJetpack Compose - A Lightning Tour
Jetpack Compose - A Lightning Tour
 

Similar to PPT KOTLIN DASAR.pptx

Algo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaAlgo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaSenna Hendrian
 
Bab 4 konsep algoritma
Bab 4 konsep algoritmaBab 4 konsep algoritma
Bab 4 konsep algoritmarisal07
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfraia22
 
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada Kotlin
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada KotlinDicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada Kotlin
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada KotlinDicodingEvent
 
#2 Introduction Operator in Kotlin.pptx
#2 Introduction Operator in Kotlin.pptx#2 Introduction Operator in Kotlin.pptx
#2 Introduction Operator in Kotlin.pptxGDSC2
 
Algoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe DataAlgoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe DataFakhrian Fadlia Adiwijaya
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinAkhmad Khanif Zyen
 
PPT Functional dan OOP Programming.pptx
PPT Functional dan OOP Programming.pptxPPT Functional dan OOP Programming.pptx
PPT Functional dan OOP Programming.pptxAliefMuhammadAbdilla
 
Algoritma dan pemrograman dengan C++ Pertemuan 2
Algoritma dan pemrograman dengan C++ Pertemuan 2Algoritma dan pemrograman dengan C++ Pertemuan 2
Algoritma dan pemrograman dengan C++ Pertemuan 2Menny SN
 
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAstruktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAsugianto91
 

Similar to PPT KOTLIN DASAR.pptx (20)

Algo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaAlgo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritma
 
Algoritma 1 pertemuan 5
Algoritma 1 pertemuan 5Algoritma 1 pertemuan 5
Algoritma 1 pertemuan 5
 
Bab 4 konsep algoritma
Bab 4 konsep algoritmaBab 4 konsep algoritma
Bab 4 konsep algoritma
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdf
 
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada Kotlin
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada KotlinDicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada Kotlin
Dicoding Developer Coaching #3: Android | Perulangan dan Percabangan pada Kotlin
 
3 konsep algoritma
3 konsep algoritma3 konsep algoritma
3 konsep algoritma
 
3 konsep algoritma
3 konsep algoritma3 konsep algoritma
3 konsep algoritma
 
3 konsep algoritma
3 konsep algoritma3 konsep algoritma
3 konsep algoritma
 
#2 Introduction Operator in Kotlin.pptx
#2 Introduction Operator in Kotlin.pptx#2 Introduction Operator in Kotlin.pptx
#2 Introduction Operator in Kotlin.pptx
 
Algoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe DataAlgoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe Data
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
 
Go-Lang Dasar.pptx
Go-Lang Dasar.pptxGo-Lang Dasar.pptx
Go-Lang Dasar.pptx
 
Struktur data
Struktur data Struktur data
Struktur data
 
PPT Functional dan OOP Programming.pptx
PPT Functional dan OOP Programming.pptxPPT Functional dan OOP Programming.pptx
PPT Functional dan OOP Programming.pptx
 
Pertemuan 4
Pertemuan 4Pertemuan 4
Pertemuan 4
 
Praktikum 6A
Praktikum 6APraktikum 6A
Praktikum 6A
 
Visual basic dasar
Visual basic dasarVisual basic dasar
Visual basic dasar
 
Algoritma dan pemrograman dengan C++ Pertemuan 2
Algoritma dan pemrograman dengan C++ Pertemuan 2Algoritma dan pemrograman dengan C++ Pertemuan 2
Algoritma dan pemrograman dengan C++ Pertemuan 2
 
Part 12 t-sql
Part 12  t-sqlPart 12  t-sql
Part 12 t-sql
 
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAstruktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
 

Recently uploaded

Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxSyaimarChandra1
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptxGiftaJewela
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxmawan5982
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxawaldarmawan3
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 

Recently uploaded (20)

Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 

PPT KOTLIN DASAR.pptx

  • 1. Introduction Programming with Kotlin Aldi Saepurahman @aldisaep_ linkedin.com/in/aldi-saepurahman/ Kotlin Basic Syntax
  • 2. Have you ever learned to make Android apps? Questions Before we started..
  • 3. ● History/Sejarah ● Variables ● Data Type/Tipe Data ● Strings ● Null Safety ● Control Flow ● Collections Overview Introduction Programming with Kotlin
  • 4. Kotlin Sejarah ●Bahasa pemrograman Kotlin dikenalkan oleh Perusahaan JetBrains pada tahun 2011 ●Kotlin di desain agar terintegrasi dengan Java ●Tahun 2017, Google mengumumkan bahwa Kotlin adalah bahasa pemrograman yang direkomendasikan untuk pengembangan aplikasi Android ●Tahun 2019, Google umumkan KOTLIN FIRST!
  • 5. Variables Description ●Kotlin mendukung 2 jenis variabel; Mutable (bisa diubah) dan Immutable (tidak bisa diubah). ●Untuk membuat variable Mutable, di kotlin bisa menggunakan kata kunci var ●Untuk membuat variable Immutable, di kotlin bisa menggunakan kata kunci val ●Deklarasi : val/var namaVariable : TipeData = data
  • 6. Variables Code var width: Int = 10 width = 2 => 2 val size: Int = 100 size = 200 => Error: val cannot be reassigned
  • 7. Integer Types Integer Type Bits Notes Long 64 From -263 to 263-1 Int 32 From -231 to 231-1 Short 16 From -32768 to 32767 Byte 8 From -128 to 127
  • 8. Underscore Integer val oneMillion = 1_000_000 val idNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010
  • 9. Conversion / Casting Integer var number: Int = 100 var byte: Byte = number.toByte() var short: Short = number.toShort() var long: Long= number.toLong() var float: Float = number.toFloat() var double: Double = number.toDouble() var string: String = number.toString()
  • 10. Floating Point and Other Numeric types Float, Char, Boolean Type Bits Notes Double 64 16 - 17 significant digits Float 32 6 - 7 significant digits Char 16 16-bit Unicode character Boolean 8 True or false. Operations include: || - lazy disjunction, && - lazy conjunction, ! - negation
  • 11. Berikut ini adalah kata kunci yang digunakan untuk variabel yang nilainya tidak bisa dirubah adalah… A. var B. val Questions Before we continue..
  • 12. ● Tipe data string adalah tipe data yang berisikan data kumpulan karakter atau sederhananya adalah teks. ● Di kotlin, tipe data string direpresentasikan dengan kata kunci String. ● Untuk membuat string di kotlin, kita bisa menggunakan ❖“ (tanda petik 2) untuk teks satu baris ❖“”” (tanda petik 2 sebanyak 3 kali) untuk teks lebih dari satu baris String Type String
  • 13. val s1: String = "Hello world!" val s2: String = "Hello world!n" val text: String = """ var bikes = 50 """ String Code String
  • 14. var address1: String = """ |Street 123 |Province Bandung """.trimMargin() var address2: String = """ >Street 222 >Province Ngawi """.trimMargin(">") String Trim Margin String With Trim Margin Without Trim Margin
  • 15. ●Ketika ingin menggabungkan 2 string gunakan operasi + val firstName = "UPI" val secondName = "Edun" val fullname = firstName + " " + secondName => UPI Edun String Concatenation String
  • 16. ●Dengan string template, secara otomatis kita bisa mengakses data dari luar teks string. ●$ adalah tanda yang digunakan untuk template ekspresi sederhana, seperti mengakses variabel lain ●${ isi ekspresi } merupakan tanda yang digunakan untuk template yang kompleks val i = 10 println("i = $i") => i = 10 val s = "abc" println(“$s length is ${s.length}”) => abc length is 3 String Template String
  • 17. ●Jika saat membuat variable, tidak diberi nilai, maka akan error NullPointerException (NPE) ●Tetapi, Kotlin mendukung variabel yang boleh null (tidak memiliki data) ●Untuk membuat variabel bisa bernilai null, di Kotlin bisa menggunakan ? (tanda tanya) setelah tipe datanya. ●Penggunaan fitur ini tidak direkomendasikan untuk dilakukan di kotlin, hanya sebagai jalan akhir jika misal mengakses kode Java Null Safety Description
  • 18. ●Safe Call Operator (?), dapat membuat variabel menjadi dapat berisi data null ●Deklarasi Nullable variabel val numberOfBooks: Int? = null ●Secara umum, jangan tetapkan variabel menjadi null karena mungkin memiliki konsekuensi yang tidak diinginkan. Safe Call Operator Null Safety
  • 19. ●Jika suatu variabel yang dideklarasikan bernilai null dan memiliki suatu property dari tipe datanya. Gunakan Safe Call (?) ketika memanggil property tersebut ●Contoh: val text: String? = null val textLength = text?.length Safe Call Operator Null Safety
  • 20. ●Jika kalian yakin suatu variabel tidak null, gunakan !! untuk memaksa variabel menjadi tipe non-null. ●Deklarasi !! val text = “Test123” val len = text!!.length ●Warning : !! operator akan mengembalikan Null Pointer Exception jika variabel bernilai null jadi pastikan bahwa variabel tidak akan pernah bernilai null !! Operator Null Safety
  • 21. Elvis Operator ●Elvis operator merupakan cara untuk mengetes apakah suatu variable bernilai null atau tidak menggunakan sintaks ?: ●Deklarasi !! val text : String? = null val lenText = text?.length ?: 0 ●Jika panjang text sama dengan null akan mengembalikan nilai 0 Null Safety
  • 22. Berikut ini adalah operator yang digunakan untuk menghindari NullPointerException (NPE), kecuali… A. !! B. ? C. ! D. ?: Questions Before we continue..
  • 23. Kotlin menyediakan berbagai cara untuk mengimplementasikan logika percabangan dan perulangan: ●If/Else statements ●When statements ●For loops ●While loops Control Flow Conditional & Loops
  • 24. ● Terkadang di dalam if, kita memerlukan berapa kondisi ● Kita bisa menggunakan Else If val guests = 30 if (guests == 0) { println("No guests") } else if (guests < 20) { println("Small group of people") } else { println("Large group of people!") } => Large Group of People! If/Else with multiple cases Conditional
  • 25. ● Tipe data berisi rentang nilai yang sebanding (mis., bilangan bulat dari 1 hingga 100) ●Ranges bersifat terbatas ●Range dapat berupa data mutable ataupun immutable ●Cara membuat range di Kotlin sangat mudah cukup menggunakan tanda .. (titik dua kali) : ○0..10 : Range dari 0 sampai 10 ○1..100 : Range dari 1 sampai 100 ○100 downTo 1 : Range dari 100 sampai 1 Ranges Range Types
  • 26. val numberOfStudents = 50 if (numberOfStudents in 1..100) { println(numberOfStudents) } => 50 Ranges dalam If Statement Range
  • 27. ●Selain if/else statement, untuk melakukan percabangan di Kotlin, kita juga bisa menggunakan When Statement ●When sangat sederhana dibandingkan if ●When sangat direkomendasikan ketika percabangan lebih dari 2 kondisi ●Biasanya when expression digunakan untuk melakukan pengecekan ke kondisi dalam satu variabel When Statement When
  • 28. val results = 100 when (results) { 0 -> println("No results") in 1..39 -> println("Got results!") else -> println("That's a lot of results!") } => That's a lot of results! When Statement Code
  • 29. val name = “Rudy” when (name) { is String -> println("This is String") !is String -> println("This is not String") } => This is String When Statement Is Code
  • 30. ●Dalam bahasa pemrograman, biasanya ada fitur yang bernama perulangan ●Salah satu fitur perulangan di Kotlin adalah for ●For digunakan untuk melakukan perulangan iterasi dari data iterator (Array, Range, dan lain-lain) For Loops Statement For Loops
  • 31. val pets = arrayOf("dog", "cat", "canary") for (element in pets) { print(element + " ") } => dog cat canary For Loops Statement Code
  • 32. val pets = arrayOf("dog", "cat", "canary") for ((index, element) in pets.withIndex()) { println("Item at $index is $elementn") } ⇒ Item at 0 is dog Item at 1 is cat Item at 2 is canary For Loops : Element and Index Code
  • 33. for (i in 0..5) print(i) => 012345 for (i in 3..6 step 2) print(i) ⇒ 35 for (i in 'd'..'g') print (i) ⇒ defg For Loops : Range Code
  • 34. ●While adalah salah satu perulangan yang sangat flexible, dimana kode while akan melakukan pengecekan kondisi, jika kondisi bernilai true, maka dia akan menjalankan blok while, dan terus diulangi sampai kondisi while bernilai false While While
  • 35. var i = 0 while(i < 10){ println("While Loop") i++ } => While Loop While Loop While Loop While Loop … 10x While Loops Code
  • 36. Manakah program yang menyebabkan error saat dijalankan?Jelaskan alasannya! Questions Before we continue..
  • 37. List Description ●List merupakan kumpulan elemen yang terurut ●Elemen pada list dapat diakses menggunakan indeksnya ●Elemen pada list bisa terdapat lebih dari 1 ●List dapat bersifat Immutable dan Mutable
  • 38. Immutable List Description ●Deklarasi menggunakan listOf() val instruments = listOf("trumpet", "piano", "violin") println(instruments) => [trumpet, piano, violin]
  • 39. mutable List Description ●Deklarasi menggunakan mutableListOf() val instruments = mutableListOf("trumpet", "piano", "violin") instruments.remove("piano") println(instruments) instruments.add("guitar") println(instruments) => [trumpet, violin] => [trumpet, violin, guitar] ● With a list defined with val, you can't change which list the variable refers to, but you can still change the contents of the list.
  • 40. Arrays Description ●Array digunakan untuk menyimpan berbagai data ●Elemen pada array dapat diakses menggunakan indeksnya ●Elemen pada array bersifat mutable ●Ukuran array adalah tetap
  • 41. Arrays Description ●Deklarasi array string menggunakan arrayOf() val pets = arrayOf("dog", "cat", "canary") println(pets.contentToString()) => [dog, cat, canary] ● Array dapat menyimpan tipe data yang berbeda val mix = arrayOf("hats", 2)
  • 42. Operasi pada Arrays Description Operasi Keterangan size Untuk mendapatkan panjang Array get(index) Mendapat data di posisi index [index] Mendapat data di posisi index set(index, value) Mengubah data di posisi index [index] = value Mengubah data di posisi index
  • 43. Operasi Array Description val members: Array<String> = arrayOf("Eko", "Joko", "Budi") ● Mengakses elemen array Menggunakan Indeks val eko: String = members[0] val joko: String = members.get(1) ● Mengubah konten pada array members.set(0, "Dudung") val dudung: String = members[0]
  • 44. Codelab Subtitle Practice what you’ve learned by completing the pathway: Lesson 1: Kotlin basics
  • 45. Study Jam Introduction Progamming with Kotlin Biar lebih ngerti dan bisa pake bahasa Kotlin, coba selesaikan soal challenge berikut ini
  • 46. Coba buat program untuk menampilkan teks seperti berikut (ganti dengan nama dan asal Universitas atau sekolah kalian) 1st Study Jam Introduction Programming with Kotlin
  • 47. Buat program menggunakan percabangan untuk menampilkan grade nilai ujian: - Nilai antara 80 hingga 100, diberi grade “A” - Nilai antara dibawah 80 hingga 75, diberi grade “B” - Nilai antara dibawah 75 hingga 65, diberi grade “C” - Nilai antara dibawah 65 hingga 50, diberi grade “D” - Dibawah 50 diberi grade “E” 2nd Study Jam Introduction Programming with Kotlin
  • 48. Gunakan perulangan dan percabangan untuk mengecek seluruh elemen array yang berisi kumpulan String, jika suatu string memiliki panjang lebih dari 8 karakter, tampilkan “String ini lebih dari 8 karakter”, jika tidak melebihi 8 karakter, tampilkan langsung string tersebut 3rd Study Jam Introduction Programming with Kotlin