1. Sebelum memulai
Di aplikasi yang Anda gunakan di ponsel, perhatikan bahwa beberapa bagian aplikasi tetap sama, sementara bagian lainnya berubah (atau bervariasi).
Misalnya, nama kategori dalam aplikasi Setelan tetap sama – Jaringan & internet, Perangkat terhubung, Aplikasi, dan lainnya.
Di sisi lain, jika Anda melihat aplikasi berita, artikel tersebut akan sering berubah. Nama artikel, sumber, waktu diposting, dan gambar berubah.
Bagaimana Anda menulis kode sehingga konten berubah seiring waktu? Anda tidak bisa menulis ulang kode di aplikasi setiap kali ada artikel baru untuk diposting yang terjadi setiap hari, setiap jam, dan setiap menit.
Dalam codelab ini, Anda akan mempelajari cara menulis kode yang menggunakan variabel sehingga bagian tertentu dari program Anda dapat berubah tanpa harus menulis kumpulan petunjuk baru. Anda akan menggunakan Kotlin Playground seperti yang telah Anda lakukan di codelab sebelumnya.
Yang akan Anda build
- Program singkat di Kotlin yang menggunakan variabel.
Yang akan Anda pelajari
- Cara menentukan variabel dan memperbarui nilainya.
- Cara memilih jenis data yang sesuai untuk variabel dari jenis data dasar di Kotlin.
- Cara menambahkan komentar ke kode.
Yang akan Anda butuhkan
- Komputer dengan akses internet dan browser web.
2. Variabel dan jenis data
Dalam pemrograman komputer, ada konsep variabel yang merupakan penampung untuk satu bagian data. Anda dapat membayangkannya sebagai kotak yang berisi nilai. Kotak ini memiliki label yang merupakan nama variabel. Dengan merujuk ke kotak menurut namanya, Anda akan memiliki akses ke nilai di dalamnya.
Mengapa nilai harus disimpan dalam kotak dan merujuk ke kotaknya menurut namanya jika nilai tersebut dapat digunakan secara langsung? Masalahnya adalah saat kode Anda menggunakan nilai secara langsung di semua petunjuk, program hanya akan berfungsi untuk kasus spesifik tersebut.
Berikut analogi yang dapat memudahkan Anda memahami mengapa variabel itu penting. Berikut adalah surat untuk seseorang yang baru-baru ini Anda temui.
Lauren yang terhormat,
Senang bisa bertemu dengan Anda hari ini di kantor. Kami menantikan kehadiran Anda pada Jumat.
Semoga hari Anda menyenangkan!
Surat ini bagus, tetapi hanya berlaku untuk situasi tertentu yang Anda alami bersama Lauren. Bagaimana jika Anda menulis surat yang sama berulang kali, tetapi dengan sedikit variasi untuk orang yang berbeda? Akan lebih efisien untuk membuat template satu surat dengan mengosongkan bagian-bagian yang dapat berubah.
____ yang terhormat,
Senang bisa bertemu dengan Anda hari ini di _____. Kami menantikan kehadiran Anda pada ____ .
Semoga hari Anda menyenangkan!
Anda juga dapat menentukan jenis informasi yang ditampilkan di setiap ruang kosong. Cara ini memastikan template surat akan digunakan seperti yang Anda harapkan.
{ name } yang terhormat ,
Senang bisa bertemu dengan Anda hari ini di { lokasi } . Kami menantikan kehadiran Anda pada { tanggal } .
Semoga hari Anda menyenangkan!
Secara konsep, hal ini serupa dengan pembuatan aplikasi. Anda memiliki placeholder untuk beberapa data, sementara bagian lain aplikasi tetap sama.
Dalam ilustrasi aplikasi berita di atas, teks "Selamat Datang", judul "Berita terbaru untuk Anda", dan teks tombol "Lihat artikel lainnya" akan selalu sama. Sebaliknya, nama pengguna dan konten setiap artikel akan berubah, sehingga berpeluang besar menggunakan variabel untuk menyimpan setiap bagian informasi.
Sebaiknya Anda tidak menulis kode (atau petunjuk) di aplikasi berita hanya untuk pengguna yang bernama Alex, atau untuk artikel berita yang selalu memiliki judul dan tanggal publikasi yang sama. Sebagai gantinya, Anda menginginkan aplikasi yang lebih fleksibel. Jadi, Anda harus menulis kode dengan merujuk ke nama variabel seperti name
, article1Name
, article1Date
, dan seterusnya. Kode Anda akan menjadi cukup umum untuk berbagai kasus penggunaan dengan nama dan detail artikel yang berbeda.
Aplikasi contoh dengan variabel
Mari lihat contoh aplikasi untuk mengetahui lokasi penggunaan variabel.
Pada aplikasi peta, Anda mungkin menemukan layar detail untuk setiap lokasi, seperti restoran atau tempat usaha. Screenshot di atas dari aplikasi Google Maps menunjukkan detail dari kantor pusat perusahaan Google, yang disebut Googleplex. Manakah data yang menurut Anda disimpan sebagai variabel dalam aplikasi?
- Nama lokasi
- Rating bintang lokasi
- Jumlah ulasan lokasi
- Apakah pengguna menyimpan (atau membuat bookmark) lokasi ini
- Alamat lokasi
- Deskripsi lokasi
Ubah data yang disimpan dalam variabel tersebut dan Anda memiliki aplikasi peta yang cukup fleksibel untuk menampilkan detail lokasi lain.
Jenis data
Saat menentukan aspek aplikasi yang dapat berupa variabel, sangat disarankan untuk menentukan jenis data yang dapat disimpan dalam variabel tersebut. Di Kotlin, ada beberapa jenis data dasar umum. Tabel di bawah menampilkan jenis data yang berbeda di setiap baris. Untuk setiap jenis data, terdapat deskripsi jenis data yang dapat ditampung dan contoh nilai.
Jenis data Kotlin | Jenis data yang dapat dimuat | Contoh nilai literal |
| Teks |
|
| Seluruh bilangan bulat |
|
| Angka desimal |
|
| Angka desimal (yang kurang akurat daripada |
|
|
|
|
Setelah mengetahui beberapa jenis data Kotlin umum, jenis data manakah yang sesuai untuk setiap variabel yang diidentifikasi di halaman detail lokasi yang Anda lihat sebelumnya?
- Nama lokasi adalah teks sehingga dapat disimpan dalam variabel yang jenis datanya adalah
String.
- Rating bintang lokasi adalah angka desimal (seperti 4,2 bintang) sehingga dapat disimpan sebagai
Double
. - Jumlah ulasan lokasi adalah bilangan bulat sehingga harus disimpan sebagai
Int
. - Entah pengguna yang menyimpan lokasi ini hanya memiliki dua kemungkinan nilai (disimpan atau tidak disimpan) sehingga lokasi tersebut disimpan sebagai
Boolean
dengantrue
danfalse
dapat mewakili setiap status. - Alamat lokasi adalah teks sehingga harus berupa
String
. - Deskripsi lokasi juga merupakan teks sehingga harus berupa
String
.
Pelajari dua skenario lainnya di bawah ini. Mengidentifikasi penggunaan variabel dan jenis datanya dalam aplikasi berikut.
- Terdapat layar detail video di aplikasi untuk menonton video, seperti aplikasi YouTube. Di mana variabel mungkin digunakan? Apa jenis data dari variabel tersebut?
Tidak ada satu jawaban yang benar, tetapi dalam aplikasi menonton video, variabel dapat digunakan untuk bagian data berikut:
- Nama video (
String
) - Nama channel (
String
) - Jumlah penayangan video (
Int
) - Jumlah suka pada video (
Int
) - Jumlah komentar di video (
Int
)
- Di aplikasi email seperti Gmail, layar kotak masuk mencantumkan pesan email terbaru yang diterima. Di mana variabel mungkin digunakan? Apa jenis data dari variabel tersebut?
Sekali lagi, tidak ada jawaban yang benar. Di aplikasi email, variabel dapat digunakan untuk bagian data berikut:
- Nama pengirim (
String
) - Subjek email (
String
) - Apakah email dibintangi (
Boolean
) atau tidak - Jumlah email baru di kotak masuk (
Int
)
Coba
- Buka aplikasi favorit di ponsel.
- Identifikasi lokasi penggunaan variabel di aplikasi pada layar tertentu tersebut.
- Tebak jenis data variabel tersebut.
- Bagikan jawaban Anda di media sosial dengan screenshot aplikasi, penjelasan terkait penggunaan variabel, dan hashtag #AndroidBasics.
Semua berjalan lancar sejauh ini di codelab! Lanjutkan ke bagian berikutnya untuk mempelajari lebih lanjut cara menggunakan variabel dan jenis data dalam kode Anda.
3. Menentukan dan menggunakan variabel
Menentukan vs. menggunakan variabel
Anda harus menetapkan variabel terlebih dahulu di kode sebelum dapat menggunakan variabel tersebut. Caranya mirip dengan yang telah Anda pelajari di codelab terakhir tentang menentukan fungsi sebelum memanggilnya.
Saat menentukan variabel, Anda harus menetapkan nama untuk mengidentifikasi variabel secara unik. Anda juga harus menentukan jenis data yang dapat disimpan dengan menetapkan jenis data. Terakhir, Anda dapat memberikan nilai awal yang akan disimpan dalam variabel, tetapi ini bersifat opsional.
Setelah menentukan variabel, Anda dapat menggunakan variabel tersebut dalam program. Untuk menggunakan variabel, ketik nama variabel dalam kode Anda sehingga compiler Kotlin tahu bahwa Anda ingin menggunakan nilai variabel pada titik tersebut dalam kode.
Misalnya, tentukan variabel untuk jumlah pesan yang belum dibaca di kotak masuk pengguna. Variabel dapat bernama count
. Simpan nilai seperti angka 2
di dalam variabel yang mewakili 2
pesan yang belum dibaca di kotak masuk pengguna. (Anda dapat memilih angka berbeda untuk disimpan dalam variabel, tetapi untuk contoh ini, gunakan angka 2
.)
Setiap kali kode Anda harus mengakses jumlah pesan yang belum dibaca, ketik count
di kode Anda. Saat menjalankan petunjuk, compiler Kotlin melihat nama variabel dalam kode Anda dan menggunakan nilai variabel sebagai gantinya.
Secara teknis, ada kosakata yang lebih tepat untuk menggambarkan proses ini.
Ekspresi adalah unit kecil kode yang memiliki nilai. Ekspresi dapat terdiri dari variabel, panggilan fungsi, dan lainnya. Dalam kasus di bawah ini, ekspresi terdiri dari satu variabel: variabel count
. Nilai ekspresi adalah 2
.
Evaluasi berarti menentukan nilai ekspresi. Dalam hal ini, ekspresi bernilai 2
. Compiler mengevaluasi ekspresi dalam kode dan menggunakan nilai-nilai tersebut saat mengeksekusi petunjuk dalam program.
Untuk mengamati perilaku ini di Kotlin Playground, jalankan program di bagian berikutnya.
Contoh
- Buka Kotlin Playground di browser web.
- Ganti kode yang ada di Kotlin Playground dengan program berikut.
Program ini membuat variabel yang disebut count
dengan nilai awal 2
dan menggunakannya dengan mencetak nilai variabel count
ke output. Jangan khawatir jika Anda belum memahami semua aspek sintaksis kode. Aspek ini akan dijelaskan secara lebih detail di bagian mendatang.
fun main() {
val count: Int = 2
println(count)
}
- Jalankan program dan output-nya akan seperti berikut:
2
Deklarasi variabel
Dalam program yang Anda jalankan, baris kode kedua bertuliskan:
val count: Int = 2
Pernyataan ini membuat variabel bilangan bulat yang disebut count
yang menyimpan angka 2
.
Diperlukan waktu hingga Anda dapat memahami sintaksis (atau format) sintaksis untuk mendeklarasikan variabel dalam Kotlin. Diagram di bawah menunjukkan lokasi setiap detail lokasi variabel, serta lokasi spasi dan simbol.
Dalam konteks contoh variabel count
, Anda dapat melihat bahwa deklarasi variabel dimulai dengan kata val
. Nama variabelnya adalah count
. Jenis data adalah Int
, dan nilai awalnya adalah 2
.
Setiap bagian deklarasi variabel dijelaskan secara lebih detail di bawah.
Kata kunci untuk menentukan variabel baru
Untuk menentukan variabel baru, mulailah dengan kata kunci Kotlin val
(yang merupakan singkatan dari nilai). Kemudian, compiler Kotlin mengetahui bahwa deklarasi variabel ada dalam pernyataan ini.
Nama variabel
Sama seperti ketika memberi nama fungsi, Anda juga harus menamai variabel. Dalam deklarasi variabel, nama variabel mengikuti kata kunci val
.
Anda dapat memilih nama variabel yang diinginkan, tetapi sebagai praktik terbaik, hindari penggunaan kata kunci Kotlin sebagai nama variabel.
Sebaiknya pilih nama yang menjelaskan data yang disimpan variabel sehingga kode Anda lebih mudah dibaca.
Nama variabel harus mengikuti konvensi kasus camel, seperti yang saat Anda mempelajari nama fungsi. Kata pertama nama variabel harus ditulis dalam huruf kecil. Jika terdapat beberapa kata dalam nama, tidak ada spasi di antara kata tersebut, dan semua kata lainnya harus diawali dengan huruf kapital.
Contoh nama variabel:
numberOfEmails
cityName
bookPublicationDate
Untuk contoh kode yang ditampilkan sebelumnya, count
adalah nama variabel.
val count: Int = 2
Jenis data variabel
Setelah nama variabel, tambahkan titik dua, spasi, lalu jenis data variabel. Seperti yang telah disebutkan, String
, Int
, Double
, Float,
, dan Boolean
adalah beberapa jenis data Kotlin dasar. Anda akan mempelajari jenis data lainnya dalam kursus ini nanti. Jangan lupa untuk mengeja jenis data persis seperti yang ditampilkan dan awali setiap huruf dengan huruf kapital.
Untuk contoh variabel count
, Int
adalah jenis data dari variabel tersebut.
val count: Int = 2
Operator penetapan
Dalam deklarasi variabel, simbol tanda sama dengan (=
) mengikuti jenis data. Simbol tanda sama dengan disebut sebagai operator penetapan. Operator penetapan menetapkan nilai ke variabel. Dengan kata lain, nilai di sisi kanan tanda sama dengan disimpan dalam variabel di sisi kiri tanda sama dengan.
Nilai awal variabel
Nilai variabel adalah data sebenarnya yang disimpan di variabel.
Untuk contoh variabel count
, angka 2
adalah nilai awal dari variabel tersebut.
val count: Int = 2
Anda mungkin juga mendengar frasa: "variabel count
diinisialisasi ke 2
". Ini berarti 2
adalah nilai pertama yang disimpan dalam variabel saat variabel dideklarasikan.
Nilai awal akan berbeda, bergantung pada jenis data yang dideklarasikan untuk variabel.
Lihat tabel di bawah yang mungkin tidak asing lagi bagi Anda di codelab ini. Kolom ketiga menunjukkan contoh nilai yang dapat disimpan dalam variabel dari setiap jenis yang sesuai. Nilai ini disebut literal karena bersifat tetap atau konstan (nilai selalu sama). Misalnya, bilangan bulat 32 selalu memiliki nilai 32. Sebaliknya, variabel bukan literal karena nilainya dapat berubah. Anda mungkin mendengar nilai literal ini yang dirujuk berdasarkan jenisnya: literal string, literal integer, literal boolean, dll.
Jenis data Kotlin | Jenis data yang dapat dimuat | Contoh nilai literal |
| Teks |
|
| Seluruh bilangan bulat |
|
| Angka desimal |
|
| Angka desimal (yang kurang akurat daripada |
|
|
|
|
Anda sangat disarankan untuk memberikan nilai yang sesuai dan valid sesuai dengan jenis data variabel. Misalnya, Anda tidak dapat menyimpan string literal seperti "Hello"
di dalam variabel jenis Int
karena compiler Kotlin akan mengalami error.
Menggunakan variabel
Di bawah ini adalah program asli yang Anda jalankan di Kotlin Playground. Sejauh ini, Anda sudah mengetahui bahwa baris kedua kode menciptakan variabel bilangan bulat baru yang disebut count
dengan nilai 2
.
fun main() {
val count: Int = 2
println(count)
}
Sekarang, lihat baris kode ketiga. Anda mencetak variabel count
ke output:
println(count)
Perhatikan bahwa tidak ada tanda kutip pada kata count
. Kata tersebut adalah nama variabel, bukan literal string. (Anda akan menemukan tanda kutip pada kata jika merupakan string literal.) Saat Anda menjalankan program, compiler Kotlin mengevaluasi ekspresi di dalam tanda kurung, yaitu count
, untuk instruksi println()
. Karena ekspresi ini bernilai 2
, metode println()
akan dipanggil dengan 2
sebagai input: println(2)
.
Oleh karena itu, output program ini adalah:
2
Angka itu sendiri tidak terlalu berguna dalam output. Akan lebih membantu jika pesan yang lebih detail dicetak di output untuk menjelaskan elemen yang diwakili oleh 2
.
Template string
Pesan yang lebih bermanfaat untuk ditampilkan dalam output adalah:
You have 2 unread messages.
Ikuti langkah-langkah di bawah ini sehingga program akan menampilkan pesan yang lebih bermanfaat.
- Update program Anda di Kotlin Playground menggunakan kode di bawah ini. Untuk panggilan
println()
, teruskan literal string yang berisi nama variabelcount
. Jangan lupa untuk memberikan tanda kutip pada teks. Perhatikan bahwa cara ini tidak akan memberikan hasil yang Anda harapkan. Anda akan memperbaiki masalah ini di langkah berikutnya.
fun main() {
val count: Int = 2
println("You have count unread messages.")
}
- Jalankan program dan output-nya akan menampilkan:
You have count unread messages.
Kalimat itu tidak masuk akal! Anda ingin nilai variabel count
ditampilkan dalam pesan, bukan nama variabel.
- Untuk memperbaiki program, tambahkan simbol tanda dolar
$
sebelum variabelcount
:"You have $count unread messages."
Ini adalah template string karena berisi ekspresi template$count
. Ekspresi template adalah ekspresi yang dievaluasi menjadi nilai, yang kemudian diganti menjadi string. Dalam hal ini, ekspresi template$count
bernilai2
, dan2
diganti menjadi string tempat ekspresi tersebut berada.
fun main() {
val count: Int = 2
println("You have $count unread messages.")
}
- Saat Anda menjalankan program, output akan cocok dengan sasaran yang diinginkan:
You have 2 unread messages.
Kalimat tersebut lebih masuk akal bagi pengguna!
- Sekarang, ubah nilai awal variabel
count
menjadi literal bilangan bulat yang berbeda. Misalnya, Anda dapat memilih angka10
. Jangan ubah kode lainnya dalam program.
fun main() {
val count: Int = 10
println("You have $count unread messages.")
}
- Jalankan program. Perhatikan bahwa output berubah dan Anda bahkan tidak perlu mengubah pernyataan
println()
dalam program Anda.
You have 10 unread messages.
Anda dapat melihat seberapa bermanfaatnya template string. Anda hanya menulis template string sekali dalam kode ("You have $count unread messages."
). Jika Anda mengubah nilai awal variabel count
, pernyataan println()
akan tetap berfungsi. Kode Anda kini lebih fleksibel.
Untuk lebih menekankan hal ini, bandingkan kedua program di bawah. Program pertama di bawah menggunakan literal string dengan jumlah yang tepat dari pesan yang belum dibaca langsung dalam string. Program ini hanya berfungsi jika pengguna Anda memiliki 10 pesan yang belum dibaca.
fun main() {
println("You have 10 unread messages.")
}
Dengan menggunakan variabel dan template string dalam program kedua di bawah, kode Anda dapat beradaptasi dengan lebih banyak skenario. Program kedua ini lebih fleksibel.
fun main() {
val count: Int = 10
println("You have $count unread messages.")
}
Inferensi jenis
Berikut adalah tips yang memungkinkan Anda menulis lebih sedikit kode saat mendeklarasikan variabel.
Inferensi jenis adalah jika compiler Kotlin dapat menyimpulkan (atau menentukan) jenis data yang seharusnya digunakan oleh suatu variabel, tanpa jenis yang ditulis secara eksplisit dalam kode. Ini berarti Anda dapat menghilangkan jenis data dalam deklarasi variabel jika memberikan nilai awal untuk variabel. Compiler Kotlin melihat jenis data dari nilai awal, dan mengasumsikan bahwa Anda ingin variabel menyimpan data dari jenis tersebut.
Berikut adalah sintaksis untuk deklarasi variabel yang menggunakan inferensi jenis:
Kembali ke contoh jumlah, program pada awalnya berisi baris kode ini:
val count: Int = 2
Namun, baris kode ini juga dapat ditulis sebagai berikut. Perhatikan bahwa simbol titik dua (:
) dan jenis data Int
dihilangkan. Sintaksis yang diupdate memiliki lebih sedikit kata yang akan diketik, dan mencapai hasil yang sama dari pembuatan variabel Int
yang disebut count
dengan nilai 2
.
val count = 2
Compiler Kotlin mengetahui bahwa Anda ingin menyimpan 2
(keseluruhan bilangan bulat) ke dalam variabel count
sehingga dapat menyimpulkan bahwa variabel count
adalah jenis Int
. Mudah, bukan? Ini adalah salah satu contoh cara menulis kode Kotlin menjadi lebih ringkas.
Meskipun contoh ini hanya membahas variabel jenis Int
, konsep inferensi jenis berlaku untuk semua jenis data di Kotlin.
Operasi matematika dasar dengan bilangan bulat
Apa perbedaan antara variabel Int
dengan nilai 2
dan variabel String
dengan nilai "2"
? Saat keduanya dicetak ke output, keduanya akan terlihat sama.
Keuntungan menyimpan keseluruhan bilangan bulat sebagai Int
(bukan String
) adalah Anda dapat melakukan operasi matematika dengan variabel Int
, seperti penambahan, pengurangan, pembagian, dan perkalian (lihat lainnya operator). Misalnya, dua variabel bilangan bulat dapat ditambahkan bersamaan untuk mendapatkan jumlahnya. Tentu saja ada kasus yang menyimpan bilangan bulat sebagai String, tetapi tujuan bagian ini adalah menunjukkan berbagai operasi yang dapat Anda lakukan dengan variabel Int
.
- Kembali ke Kotlin Playground, lalu hapus semua kode di editor kode.
- Buat program baru tempat Anda menentukan variabel bilangan bulat untuk jumlah email yang belum dibaca di kotak masuk, dan menginisialisasinya ke nilai seperti
5
. Anda dapat memilih nomor lain jika menginginkannya. Tentukan variabel bilangan bulat kedua untuk jumlah email yang telah dibaca dalam kotak masuk. Lakukan inisialisasi ke nilai seperti100
. Anda dapat memilih nomor lain jika menginginkannya. Lalu cetak jumlah total pesan di kotak masuk dengan menjumlahkan dua bilangan bulat.
fun main() {
val unreadCount = 5
val readCount = 100
println("You have ${unreadCount + readCount} total messages in your inbox.")
}
- Jalankan program dan program akan menampilkan jumlah total pesan di kotak masuk:
You have 105 total messages in your inbox.
Untuk template string, Anda telah mempelajari bahwa Anda dapat menempatkan simbol $
sebelum satu nama variabel. Namun, jika memiliki ekspresi yang lebih kompleks, Anda harus menyertakan ekspresi dalam tanda kurung kurawal dengan simbol $
sebelum kurung kurawal: ${unreadCount + readCount}
. Ekspresi dalam tanda kurung kurawal, unreadCount + readCount
, bernilai 105
. Kemudian, nilai 105
diganti dalam literal string.
- Untuk mempelajari topik ini lebih lanjut, buat variabel dengan nama dan nilai awal yang berbeda, serta gunakan ekspresi template untuk mencetak pesan ke output.
Misalnya, ubah program Anda untuk mencetaknya:
100 photos 10 photos deleted 90 photos left
Berikut adalah satu cara menulis program, meskipun ada cara lain yang benar untuk menulis program juga.
fun main() {
val numberOfPhotos = 100
val photosDeleted = 10
println("$numberOfPhotos photos")
println("$photosDeleted photos deleted")
println("${numberOfPhotos - photosDeleted} photos left")
}
4. Memperbarui variabel
Saat aplikasi berjalan, nilai variabel mungkin perlu diperbarui. Misalnya, di aplikasi belanja, saat pengguna menambahkan item ke keranjang belanja, total keranjang akan bertambah.
Mari sederhanakan kasus penggunaan belanja ini menjadi program sederhana. Logika ini ditulis di bawah menggunakan bahasa manusia, bukan Kotlin. Logika ini disebut kode semu karena menjelaskan poin-poin penting tentang rencana cara penulisan kode, tetapi tidak berisi semua detail kode.
Di fungsi utama program:
- Buat variabel bilangan bulat
cartTotal
yang dimulai pada nilai0
. - Pengguna menambahkan sweter seharga $20 ke keranjang belanja.
- Perbarui variabel
cartTotal
menjadi20
dan ini adalah biaya saat ini untuk item yang ada di keranjang belanja mereka. - Cetak total biaya item di keranjang, yang merupakan variabel
cartTotal
, ke output.
Untuk menyederhanakan kode lebih lanjut, Anda tidak perlu menulis kode saat pengguna menambahkan item ke keranjang belanja. (Anda belum mempelajari cara program merespons input pengguna. Penjelasan ini akan tersedia pada unit berikutnya.) Oleh karena itu, fokuskan pada bagian yang Anda gunakan untuk membuat, memperbarui, dan mencetak variabel cartTotal
.
- Ganti kode yang ada di Kotlin Playground dengan program di bawah ini. Di baris 2 program, lakukan inisialisasi variabel
cartTotal
ke nilai0
. Anda sudah memberikan nilai awal sehingga tidak lagi perlu menentukan jenis dataInt
karena inferensi jenis. Di baris 3 program, Anda mencoba memperbarui variabelcartTotal
menjadi20
dengan operator penetapan (=
). Di baris 4 program, Anda mencetak variabelcartTotal
menggunakan template string.
fun main() {
val cartTotal = 0
cartTotal = 20
println("Total: $cartTotal")
}
- Jalankan program, dan Anda akan mengalami error kompilasi.
- Perhatikan bahwa error ini menunjukkan
val
tidak dapat ditetapkan ulang. Error ini terjadi di baris ketiga program saat mencoba mengubah nilaicartTotal
variabel ke20.
. Halamanval
cartTotal
tidak dapat ditetapkan ulang ke nilai lain (20
) setelah nilai awal ditetapkan (0
).
Val cannot be reassigned
Jika Anda perlu memperbarui nilai variabel, deklarasikan variabel dengan kata kunci Kotlin var
, bukan val
.
- Kata kunci
val
- Gunakan jika Anda tidak ingin nilai variabel dapat berubah. - Kata kunci
var
- Gunakan jika Anda ingin nilai variabel dapat berubah.
Dengan val
, variabelnya bersifat hanya baca sehingga Anda hanya dapat membaca, atau mengakses nilai variabel tersebut. Anda tidak lagi dapat mengedit atau mengubah nilai setelah ditetapkan. Dengan var
, variabelnya adalah dapat berubah yang berarti nilai dapat diubah atau diubah. Nilai dapat berubah.
Untuk mengingat perbedaannya, anggap val
sebagai nilai tetap dan var
sebagai variabel. Di Kotlin, sebaiknya gunakan kata kunci val
daripada kata kunci var
jika memungkinkan.
- Perbarui deklarasi variabel untuk
cartTotal
di baris 2 program untuk menggunakanvar
, bukanval
. Tampilan kode akan terlihat seperti berikut:
fun main() {
var cartTotal = 0
cartTotal = 20
println("Total: $cartTotal")
}
- Perhatikan sintaksis kode di baris 3 program yang memperbarui variabel.
cartTotal = 20
Gunakan operator penetapan (=
) untuk menetapkan nilai baru (20
) ke variabel yang ada (cartTotal
). Anda tidak perlu menggunakan kata kunci var
lagi karena variabel sudah ditentukan.
Dengan menggunakan analogi kotak, gambar nilai 20
yang disimpan dalam kotak berlabel cartTotal
.
Berikut adalah diagram sintaksis umum untuk memperbarui variabel yang telah dideklarasikan pada baris kode sebelumnya. Mulai pernyataan dengan nama variabel yang ingin Anda perbarui. Tambahkan spasi, tanda sama dengan, diikuti dengan spasi lain. Kemudian, tuliskan nilai yang telah diperbarui untuk variabel tersebut.
- Jalankan program Anda dan kode akan berhasil dikompilasi. Tindakan tadi akan mencetak output ini :
Total: 20
- Untuk melihat perubahan nilai variabel selama program berjalan, cetak variabel
cartTotal
ke output setelah mendeklarasikan variabel awalnya. Lihat perubahan kode di bawah ini. Baris 3 memiliki pernyataanprintln()
baru. Juga ada baris kosong yang ditambahkan di baris 4 kode. Baris kosong tidak memengaruhi cara compiler memahami kode. Tambahkan baris kosong yang akan mempermudah pembacaan kode Anda dengan memisahkan blok kode yang terkait.
fun main() {
var cartTotal = 0
println("Total: $cartTotal")
cartTotal = 20
println("Total: $cartTotal")
}
- Jalankan lagi program, dan output-nya akan seperti berikut:
Total: 0
Total: 20
Anda dapat melihat bahwa total keranjang belanja awal adalah 0
. Setelah itu, file akan diperbarui menjadi 20
. Anda telah berhasil memperbarui variabel. Hal ini bisa terjadi karena Anda telah mengubah cartTotal
dari variabel hanya baca (dengan val
) menjadi variabel yang dapat berubah (dengan var
).
Ingat bahwa Anda hanya boleh menggunakan var
untuk mendeklarasikan variabel jika mengharapkan perubahan nilai. Jika tidak, Anda harus menggunakan val
secara default untuk mendeklarasikan variabel. Praktik ini akan membuat kode Anda lebih aman. Penggunaan val
memastikan bahwa variabel tidak akan diperbarui dalam program jika Anda tidak menginginkannya. Setelah nilai ditetapkan, val
akan selalu memiliki nilai tersebut.
Operator penambahan dan pengurangan
Sekarang Anda tahu bahwa variabel harus dideklarasikan sebagai var
agar nilainya dapat diperbarui. Terapkan pengetahuan ini ke contoh pesan email yang mungkin sudah tidak asing lagi di bawah ini.
- Ganti kode di playground Kotlin Playground dengan program ini:
fun main() {
val count: Int = 10
println("You have $count unread messages.")
}
- Jalankan program. Dan, akan muncul tulisan:
You have 10 unread messages.
- Ganti kata kunci
val
dengan kata kuncivar
untuk membuat variabelcount
menjadi variabel yang dapat diubah. Seharusnya tidak ada perubahan pada output saat Anda menjalankan program.
fun main() {
var count: Int = 10
println("You have $count unread messages.")
}
- Namun, kini Anda dapat memperbarui
count
menjadi nilai lain. Misalnya, jika satu email baru masuk ke kotak masuk pengguna, Anda dapat meningkatkancount
sebanyak 1. (Anda tidak perlu menulis kode untuk email yang masuk. Mendapatkan data dari internet adalah topik yang lebih rumit untuk unit yang jauh lebih baru.) Untuk saat ini, fokuskan pada variabelcount
yang meningkat sebanyak1
dengan baris kode ini:
count = count + 1
Ekspresi di sebelah kanan tanda sama dengan adalah count + 1
dan bernilai 11
. Hal ini dikarenakan nilai count
saat ini adalah 10
(yang ada di baris 2 program) dan 10 + 1
sama dengan 11
. Kemudian dengan operator penetapan, nilai 11
akan ditetapkan atau disimpan di variabel count
.
Tambahkan baris kode ini ke program Anda di bagian bawah fungsi main()
. Kode Anda akan terlihat seperti berikut:
fun main() {
var count = 10
println("You have $count unread messages.")
count = count + 1
}
Jika Anda menjalankan program sekarang, output-nya tidak akan berubah karena Anda belum menambahkan kode apa pun untuk menggunakan variabel count
setelah memperbaruinya.
- Tambahkan pernyataan cetak lainnya yang akan mencetak jumlah pesan yang belum dibaca setelah variabel diperbarui.
fun main() {
var count = 10
println("You have $count unread messages.")
count = count + 1
println("You have $count unread messages.")
}
- Jalankan program. Pesan kedua akan menampilkan
count
dari11
pesan yang telah diperbarui.
You have 10 unread messages. You have 11 unread messages.
- Sederhananya, jika ingin meningkatkan variabel sebanyak
1
, Anda dapat menggunakan operator penambahan (++
) yang terdiri dari dua simbol plus. Dengan menggunakan simbol ini langsung setelah nama variabel, Anda memberi tahu compiler bahwa Anda ingin menambahkan 1 ke nilai variabel saat ini, lalu menyimpan nilai baru dalam variabel. Dua baris kode berikut sama, tetapi tidak perlu banyak mengetik karena menggunakan operator penambahan++
.
count = count + 1
count++
Buat perubahan ini pada kode, lalu jalankan program. Tidak boleh ada spasi antara nama variabel dan operator penambahan.
fun main() {
var count = 10
println("You have $count unread messages.")
count++
println("You have $count unread messages.")
}
- Jalankan program. Output-nya sama, tetapi sekarang Anda mempelajari operator baru!
You have 10 unread messages. You have 11 unread messages.
- Sekarang, ubah baris 4 program untuk menggunakan operator pengurangan (
--
) setelah nama variabelcount
. Operator pengurangan terdiri dari dua simbol minus. Dengan menempatkan operator pengurangan setelah nama variabel, Anda memberi tahu compiler bahwa Anda ingin mengurangi nilai variabel sebanyak1
dan menyimpan nilai baru ke dalam variabel.
fun main() {
var count = 10
println("You have $count unread messages.")
count--
println("You have $count unread messages.")
}
- Jalankan program. Tulisan yang akan muncul pada output:
You have 10 unread messages. You have 9 unread messages.
Di bagian ini, Anda telah mempelajari cara memperbarui variabel yang dapat berubah menggunakan operator penambahan (++
) dan operator pengurangan (--
). Atau lebih spesifiknya lagi, count++
sama dengan count = count + 1
dan count--
sama dengan count = count - 1
.
5. Mempelajari jenis data lainnya
Sebelumnya di codelab, Anda telah diperkenalkan dengan beberapa jenis data dasar umum: String
, Int
, Double
, dan Boolean
. Anda baru saja menggunakan jenis data Int
, dan sekarang Anda akan menjelajahi jenis data lain.
Jenis data Kotlin | Jenis data yang dapat dimuat |
| Teks |
| Seluruh bilangan bulat |
| Angka desimal |
|
|
Coba program ini di Kotlin Playground untuk melihat output-nya.
Ganda
Jika Anda memerlukan variabel dengan nilai desimal, gunakan variabel Double
. Untuk mempelajari rentang yang valid, lihat tabel ini dan lihat digit desimal yang dapat disimpan misalnya.
Bayangkan Anda sedang menavigasi ke suatu tujuan, dan perjalanan Anda dibagi menjadi tiga bagian terpisah karena Anda harus berhenti di sepanjang perjalanan. Program ini menampilkan total jarak yang tersisa untuk mencapai tujuan Anda.
- Masukkan kode ini di Kotlin Playground. Bisakah Anda memahami apa yang terjadi pada setiap baris kode?
fun main() {
val trip1: Double = 3.20
val trip2: Double = 4.10
val trip3: Double = 1.72
val totalTripLength: Double = 0.0
println("$totalTripLength miles left to destination")
}
Tiga variabel bernama trip1
, trip2
, dan trip3
dideklarasikan untuk mewakili jarak setiap bagian perjalanan. Semuanya adalah variabel Double
karena menyimpan nilai desimal. Gunakan val
untuk mendeklarasikan setiap variabel karena nilainya tidak berubah selama program dijalankan. Program ini juga membuat variabel keempat bernama totalTripLength
yang saat ini diinisialisasi ke 0.0
. Baris terakhir program mencetak pesan berisi nilai totalTripLength
.
- Perbaiki kode sehingga variabel
totalTripLength
menampilkan jumlah dari ketiga jarak perjalanan.
val totalTripLength: Double = trip1 + trip2 + trip3
Ekspresi di sebelah kanan tanda sama dengan bernilai 9.02
karena 3.20 + 4.10 + 1.72
sama dengan 9.02
. Nilai 9.02
akan disimpan ke dalam variabel totalTripLength
.
Seluruh program akan terlihat seperti kode di bawah ini:
fun main() {
val trip1: Double = 3.20
val trip2: Double = 4.10
val trip3: Double = 1.72
val totalTripLength: Double = trip1 + trip2 + trip3
println("$totalTripLength miles left to destination")
}
- Jalankan program. Tulisan yang akan muncul adalah:
9.02 miles left to destination
- Perbaiki kode Anda untuk menghapus jenis data
Double
yang tidak perlu dari deklarasi variabel karena inferensi jenis. Compiler Kotlin dapat menyimpulkan bahwa variabel tersebut adalah jenis dataDouble
berdasarkan angka desimal yang diberikan sebagai nilai awal.
fun main() {
val trip1 = 3.20
val trip2 = 4.10
val trip3 = 1.72
val totalTripLength = trip1 + trip2 + trip3
println("$totalTripLength miles left to destination")
}
- Jalankan lagi kode untuk memastikan kode Anda masih dikompilasi. Output harus sama, tetapi sekarang kode Anda lebih sederhana!
String
Jika Anda memerlukan variabel yang dapat menyimpan teks, gunakan variabel String
. Jangan lupa menggunakan tanda kutip pada nilai literal String, seperti "Hello Kotlin"
, sedangkan nilai literal Int
dan Double
tidak memiliki tanda kutip.
- Salin dan tempel program ini ke Kotlin Playground.
fun main() {
val nextMeeting = "Next meeting is:"
val date = "January 1"
val reminder = nextMeeting + date
println(reminder)
}
Perhatikan bahwa ada dua variabel String
yang dideklarasikan, yaitu variabel nextMeeting
dan variabel date
. Kemudian, variabel String
ketiga yang disebut reminder
dideklarasikan, dan disetel sama dengan variabel nextMeeting
ditambah variabel date
.
Dengan simbol +, Anda dapat menambahkan dua string bersama-sama yang disebut penyambungan. Kedua string digabungkan, satu per satu. Hasil ekspresi, nextMeeting + date
adalah "Next meeting is:January 1"
seperti yang ditunjukkan pada diagram di bawah.
Selanjutnya, nilai "Next meeting is:January 1"
disimpan ke dalam variabel reminder
menggunakan operator penetapan di baris 4 program.
- Jalankan program Anda. Tulisan yang akan muncul adalah:
Next meeting is:January 1
Saat Anda menggabungkan dua string, tidak ada ruang tambahan yang akan ditambahkan di antara string tersebut. Jika menginginkan spasi setelah titik dua dalam string yang dihasilkan, Anda harus menambahkan spasi ke satu string atau string lainnya.
- Perbarui variabel
nextMeeting
agar mendapatkan spasi lebih di akhir string sebelum tanda kutip penutup. (Atau, Anda dapat menambahkan spasi tambahan ke awal variabeldate
). Program Anda akan terlihat seperti berikut:
fun main() {
val nextMeeting = "Next meeting is: "
val date = "January 1"
val reminder = nextMeeting + date
println(reminder)
}
- Jalankan lagi program Anda dan sekarang akan ada spasi setelah titik dua dalam pesan output.
Next meeting is: January 1
- Ubah kode sehingga Anda menyambungkan - atau menambahkan - potongan teks lain ke ekspresi yang disimpan dalam variabel
reminder
.
Gunakan simbol +
untuk menambahkan literal string "at work"
ke akhir string reminder
.
- Jalankan program.
Tulisan yang akan muncul pada output:
Next meeting is: January 1 at work
Kode di bawah menunjukkan salah satu cara untuk menerapkan perilaku tersebut.
fun main() {
val nextMeeting = "Next meeting is: "
val date = "January 1"
val reminder = nextMeeting + date + " at work"
println(reminder)
}
Perhatikan bahwa tidak ada tanda kutip pada nextMeeting
dan date
karena keduanya adalah nama variabel string yang ada (dengan nilai masing-masing adalah teks dengan tanda kutip). Sebaliknya, "at work"
literal tidak ditentukan sebelumnya dalam variabel apa pun. Jadi, gunakan tanda kutip pada teks ini agar compiler dapat mengetahui bahwa ini adalah string yang harus disambungkan ke string lain.
Secara teknis, Anda dapat memperoleh output yang sama dengan mendeklarasikan satu variabel String
dengan teks lengkap, bukan menggunakan variabel terpisah. Namun, tujuan dari latihan ini adalah menunjukkan cara mendeklarasikan dan memanipulasi variabel String
, terutama cara menyambungkan string terpisah.
- Saat membaca kode yang berisi string, Anda mungkin menemukan urutan escape. Urutan escape adalah karakter yang diawali dengan simbol garis miring terbalik (
\
) atau disebut juga konversi garis miring terbalik.
Contohnya adalah melihat \"
dalam literal string seperti dalam contoh di bawah. Salin dan tempel kode ini ke Kotlin Playground.
fun main() {
println("Say \"hello\"")
}
Anda telah mempelajari sebelumnya untuk menggunakan tanda petik ganda di sekitar literal string. Namun, bagaimana jika Anda ingin menggunakan simbol "
dalam string? Selanjutnya, Anda perlu menambahkan simbol garis miring terbalik sebelum tanda petik ganda sebagai \"
dalam string. Perlu diingat bahwa harus tetap ada tanda petik ganda di seluruh string.
- Jalankan program untuk melihat output. Tulisan yang akan muncul:
Say "hello"
Pada output, ada tanda petik yang ditampilkan di sekitar hello
karena kita menambahkan \"
sebelum dan sesudah hello
dalam pernyataan println()
.
Untuk urutan escape lainnya yang didukung di Kotlin, lihat halaman dokumentasi tentang urutan escape. Misalnya, jika Anda ingin baris baru dalam string, gunakan simbol \
sebelum karakter n seperti di \n
.
Sekarang Anda telah mempelajari cara menggabungkan string dan juga meng-escape urutan dalam string. Pindah ke jenis data terakhir yang dicakup codelab ini.
Boolean
Jenis data Boolean
berguna jika variabel Anda hanya memiliki dua kemungkinan nilai yang diwakili oleh true
atau false
.
Contohnya adalah variabel yang menunjukkan apakah mode pesawat perangkat aktif atau nonaktif, atau apakah notifikasi aplikasi diaktifkan atau dinonaktifkan.
- Masukkan kode ini di Kotlin Playground. Di baris 2 program ini, Anda mendeklarasikan variabel
Boolean
yang disebutnotificationsEnabled
dan melakukan inisialisasi ketrue
. Secara teknis, Anda dapat menghilangkan: Boolean
dalam deklarasi sehingga dapat menghapusnya jika ingin. Di baris 3 program, Anda akan mencetak nilai variabelnotificationsEnabled
.
fun main() {
val notificationsEnabled: Boolean = true
println(notificationsEnabled)
}
Jalankan program, dan program akan mencetaknya:
true
- Ubah nilai awal
Boolean
menjadi nilai salah di baris 2 program.
fun main() {
val notificationsEnabled: Boolean = false
println(notificationsEnabled)
}
Jalankan program, dan program akan mencetaknya:
false
- Jenis data lain dapat disambungkan menjadi
Strings
. Misalnya, Anda dapat menyambungkanBooleans
menjadiStrings
. Gunakan simbol+
untuk menyambungkan (atau menambahkan) nilai variabel booleannotificationsEnabled
ke bagian akhir string"Are notifications enabled? "
.
fun main() {
val notificationsEnabled: Boolean = false
println("Are notifications enabled? " + notificationsEnabled)
}
Jalankan program untuk melihat hasil penyambungan. Program akan mencetak output ini:
Are notifications enabled? false
Anda dapat melihat bahwa variabel Boolean
dapat disetel ke nilai true
atau false
. Dengan variabel Boolean
, Anda dapat membuat kode skenario yang lebih menarik dan memungkinkan Anda menjalankan beberapa kumpulan petunjuk saat variabel Boolean
memiliki nilai true
. Atau, Anda akan melewati petunjuk tersebut jika Boolean
memiliki nilai yang salah. Anda akan mempelajari Booleans
lebih lanjut di codelab selanjutnya.
6. Konvensi coding
Di codelab sebelumnya, Anda telah diperkenalkan dengan panduan gaya Kotlin untuk menulis kode Android secara konsisten seperti yang direkomendasikan oleh Google dan diikuti oleh developer profesional lainnya.
Berikut adalah beberapa konvensi pembuatan format dan coding lainnya yang dapat Anda ikuti berdasarkan topik baru yang telah Anda pelajari:
- Nama variabel harus dalam camel case dan dimulai dengan huruf kecil.
- Dalam deklarasi variabel, harus ada spasi setelah titik dua saat Anda menentukan jenis data.
- Harus ada spasi sebelum dan sesudah operator seperti penetapan (
=
), penambahan (+
), pengurangan (-
), perkalian (*
), pembagian (/
), dan lainnya.
- Saat menulis program yang lebih kompleks, ada rekomendasi batas sebesar 100 karakter per baris. Batas ini untuk memastikan Anda dapat membaca semua kode dalam program dengan mudah di layar komputer, tanpa perlu menggulir secara horizontal saat membaca kode.
7. Memberi komentar di kode Anda
Saat melakukan coding, praktik lain yang baik untuk diikuti adalah menambahkan komentar yang menjelaskan tujuan kode tersebut. Komentar dapat membantu orang yang membaca kode Anda agar dapat mengikutinya dengan lebih mudah. Dua simbol garis miring, atau //
, menunjukkan bahwa teks setelahnya di baris lainnya dianggap sebagai komentar sehingga tidak ditafsirkan sebagai kode. Menambahkan spasi setelah dua simbol garis miring ke depan merupakan hal yang biasa.
// This is a comment.
Komentar juga dapat dimulai di tengah baris kode. Dalam contoh ini, height = 1
merupakan pernyataan coding normal. Semuanya setelah //
, atau Assume the height is 1 to start with
, ditafsirkan sebagai komentar dan tidak dianggap sebagai bagian dari kode.
height = 1 // Assume the height is 1 to start with.
Jika Anda ingin mendeskripsikan kode secara lebih detail dengan komentar panjang yang melebihi 100 karakter dalam satu baris, gunakan komentar banyak baris. Mulai komentar banyak baris dengan garis miring (/
) dan simbol tanda bintang (*
) sebagai /*
. Tambahkan tanda bintang di awal setiap baris baru komentar. Kemudian, akhiri komentar dengan simbol tanda bintang dan garis miring */
.
/*
* This is a very long comment that can
* take up multiple lines.
*/
Program ini berisi komentar satu baris dan banyak baris yang menjelaskan hal yang terjadi:
/**
* This program displays the number of messages
* in the user's inbox.
*/
fun main() {
// Create a variable for the number of unread messages.
var count = 10
println("You have $count unread messages.")
// Decrease the number of messages by 1.
count--
println("You have $count unread messages.")
}
Seperti yang sudah disebutkan sebelumnya, Anda dapat menambahkan baris kosong ke kode untuk mengelompokkan pernyataan terkait sehingga kode menjadi lebih mudah dibaca.
- Tambahkan beberapa komentar ke cuplikan kode sebelumnya yang Anda gunakan.
- Jalankan program untuk memastikan bahwa perilaku tidak berubah karena komentar tidak akan memengaruhi output.
8. Kesimpulan
Bagus! Anda telah mempelajari variabel di Kotlin, alasan pentingnya variabel dalam pemrograman, serta cara membuat, memperbarui, dan menggunakannya. Anda telah bereksperimen dengan berbagai jenis data dasar di Kotlin, seperti jenis data Int
, Double
, String
, dan Boolean
. Anda juga telah mempelajari perbedaan antara kata kunci val
dan var
.
Semua konsep ini adalah elemen penting dalam perjalanan Anda untuk menjadi seorang developer.
Sampai jumpa di codelab berikutnya.
Ringkasan
- Variabel adalah penampung untuk satu bagian data.
- Anda harus mendeklarasikan variabel terlebih dahulu sebelum menggunakannya.
- Gunakan kata kunci
val
untuk menentukan variabel yang bersifat hanya baca jika tempat nilai tidak dapat berubah setelah ditetapkan. - Gunakan kata kunci
var
untuk menentukan variabel yang dapat diubah atau diubah. - Di Kotlin, sebaiknya gunakan
val
daripadavar
jika memungkinkan. - Untuk mendeklarasikan variabel, mulai dengan kata kunci
val
atauvar
. Kemudian, tentukan nama variabel, jenis data, dan nilai awal. Misalnya:val count: Int = 2
. - Dengan inferensi jenis, hilangkan jenis data dalam deklarasi variabel jika nilai awal diberikan.
- Beberapa jenis data Kotlin dasar yang umum mencakup:
Int
,String
,Boolean
,Float
, danDouble
. - Gunakan operator penetapan (
=
) untuk menetapkan nilai ke variabel selama deklarasi variabel atau memperbarui variabel. - Anda hanya dapat memperbarui variabel yang telah dideklarasikan sebagai variabel yang dapat diubah (dengan
var
). - Gunakan operator penambahan (
++
) atau operator pengurangan (--
) untuk menambah atau mengurangi nilai variabel bilangan bulat masing-masing sebesar 1. - Gunakan simbol
+
untuk menyambungkan string menjadi satu. Anda juga dapat menyambungkan variabel dari jenis data lain sepertiInt
danBoolean
keStrings
.