Universitas Kebudayaan Digital Makassar

Universitas Kebudayaan Digital Makassar (UKDMKS) memadukan inovasi teknologi digital dengan pelestarian budaya lokal. Bergabunglah untuk membangun masa depan berbasis budaya dan teknologi!

android kotlin pemograman

Cara Membuat Progam Pertama Kotlin dengan Gradle

Pada dasarnya semua program aplikasi bisa dikembangan hanya dengan bantuan text editor dan build tools. Lalu adanya IDE adalah untuk mempermudah dan mempercepat proses pengembangan. Pada modul ini kita akan mempelajari bersama bagaimana membuat program dengan Kotlin dari cara yang paling dasar hingga memanfaatkan bantuan IDE.

Membuat Program Dengan Gradle

Untuk membuat program dengan Gradle, kita akan membutuhkan sebuah plugin yaitu Gradle Init Build Plugin. Kita tidak perlu menambahkannya secara manual karena plugin tersebut merupakan bawaan dari paket instalasi Gradle.
Sebelum membuat project, terlebih dahulu buat folder baru yang akan digunakan sebagai folder project yang nantinya akan kita buat. Setelah selesai, silakan buka terminal atau command prompt Anda dan kita akan langsung  coba membuat sebuah program dengan menjalankan perintah gradle init seperti berikut:
202004071944094c5180f7215037c84cc75533a0b4f8d5.png
Untuk pembuatan folder project di atas diberi nama kotlin-starter. Anda bisa menyesuaikan namanya dengan keinginan masing-masing. Lanjut, setelah kita menjalankan perintah seperti di atas, terminal akan menampilkan daftar jenis-jenis proyek yang bisa kita pilih. Kita bisa memilih jenis dari proyek yang ingin kita kembangkan dengan cara memilih angka yang ada pada daftar tersebut. Karena kita akan membuat proyek dengan tipe application maka masukkan angka 2 dan tekan enter.
20200407194450a5a6d89bffb713525e97c2909a04a651.png
Berikutnya kita akan diminta untuk memilih bahasa yang akan kita gunakan. Karena kita akan membuat proyek dengan Kotlin, langsung saja masukkan angka 4 dan tekan enter
Setelah itu, Anda juga bisa menentukan tipe dari build script, nama proyek dan juga package name yang akan digunakan. Selengkapnya bisa Anda lihat pada gambar berikut:     
20200407194517cb6470e7cf9eb475c70252fa2bcf617e.png
Sampai di sini kita telah memiliki proyek Kotlin baru dengan nama kotlin-starterpackage name com.dicoding.kotlin dan menggunakan Kotlin DSL sebagai build script-nya. Sebenarnya kita bisa meringkas langkah-langkah tersebut dengan cara langsung menuliskan perintah seperti berikut:


  1. gradle init --type kotlin-application --dsl kotlin --project-name kotlin-starter --package com.dicoding.kotlin


Jika Anda membuka proyek tersebut, maka Anda akan melihat struktur proyek seperti di bawah ini:
201904221037067f1823744078a06f5c53fbd352595fef.png
Mari kita pelajari satu per satu dari masing-masing berkas tersebut.

Gradle Wrapper

Di dalam folder gradle/wrapper/ kita akan menemukan 2 (dua) berkas yaitu gradle-wrapper.jar dan gradle-wrapper.properties. Berkas Wrapper JAR merupakan sebuah library yang berisi kode untuk mengunduh distribusi Gradle. Sedangkan gradle-wrapper.properties adalah sebuah properti yang bisa kita gunakan untuk mengkonfigurasi behaviour dari Wrapper runtime seperti mengatur versi Gradle dari proyek dll. Berikut adalah konfigurasi yang terdapat pada berkas tersebut:


  1. distributionBase=GRADLE_USER_HOME

  2. distributionPath=wrapper/dists

  3. distributionUrl=https://services.gradle.org/distributions/gradle-6.2.2-bin.zip

  4. zipStoreBase=GRADLE_USER_HOME

  5. zipStorePath=wrapper/dists


Terdapat juga berkas gradlew dan gradlew.bat pada folder root, yaitu sebuah shell script dan Windows batch script yang digunakan untuk menjalankan build dengan Wrapper.

Build Scripts

Selanjutnya, di dalam proyek tersebut juga terdapat 2 (dua) berkas gradle scripts yaitu settings.gradle.kts dan build.gradle.kts. Kedua berkas tersebut merupakan Gradle Kotlin DSL yang bisa kita gunakan untuk mengatur konfigurasi dari Gradle. Gradle mendukung 2 (dua) jenis build script yaitu Groovy dan Kotlin DSL. Namun pada akademi ini kita hanya akan fokus menggunakan Kotlin DSL. Beberapa hal yang menjadi alasan kenapa kita memilih Kotlin DSL adalah:
  • Memungkinkan kita untuk memaksimalkan fitur auto-completion pada IDE nantinya;
  • Membuat kita tidak perlu mempelajari 2 bahasa (Groovy + Kotlin);
  • Untuk DSL Konfigurasi, pengembangan Gradle kedepan akan lebih fokus ke penggunaan Kotlin dibandingkan dengan Groovy.
Di dalam berkas settings.gradle.kts kita akan menemukan konfigurasi berikut:


  1. /*

  2.  * This file was generated by the Gradle 'init' task.

  3.  *

  4.  * The settings file is used to specify which projects to include in your build.

  5.  *

  6.  * Detailed information about configuring a multi-project build in Gradle can be found

  7.  * in the user manual at https://docs.gradle.org/6.2.2/userguide/multi_project_builds.html

  8.  */

  9.  

  10. rootProject.name = "kotlin-starter"


Konfigurasi tersebut digunakan untuk mengatur nama dari proyek kita. Ke depannya, di dalam berkas ini kita bisa menambahkan beberapa konfigurasi seperti pengaturan modul dan sebagainya.
Kemudian berkas build.gradle.kts:


  1. import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

  2.  

  3. plugins {

  4.     kotlin("jvm") version "1.3.61"

  5. }

  6.  

  7. group = "com.dicoding.kotlin"

  8. version = "1.0-SNAPSHOT"

  9.  

  10. repositories {

  11.     mavenCentral()

  12. }

  13.  

  14. dependencies {

  15.     implementation(kotlin("stdlib-jdk8"))

  16. }

  17.  

  18. tasks.withType<KotlinCompile> {

  19.     kotlinOptions.jvmTarget = "1.8"

  20. }


Di dalam berkas tersebut terdapat berbagai macam konfigurasi seperti pengaturan pluginsrepositoriesdependencies dan lain sebagainya. Biasanya kita akan sering menggunakan berkas ini ketika kita ingin menambahkan dependency atau library baru. Pada proyek baru tersebut kita hanya memerlukan 1 (satu) library yang secara otomatis sudah ditambahkan, yaitu kotlin-stdlib.

Source (src)

Folder src merupakan tempat kita menyimpan berbagai macam sumber daya untuk pengembangan aplikasi. Di dalamnya Anda akan melihat 2 (dua) folder lagi yaitu main dan test.
Mari kita mulai dari folder main terlebih dahulu. Folder ini merupakan folder utama tempat di mana kita meletakkan berkas kode dan resources lainnya. Di dalam folder main terdapat folder Kotlin, lalu di dalam Kotlin terdapat package name dari proyek kita yaitu com.dicoding.kotlin. Pada package name ini lah kita bisa menambahkan berkas kode nantinya. Saat ini kita sudah memiliki 1 berkas bernama App.kt:


  1. /*

  2.  * This Kotlin source file was generated by the Gradle 'init' task.

  3.  */

  4. package com.dicoding.kotlin

  5.  

  6. class App {

  7.     val greeting: String

  8.         get() {

  9.             return "Hello world."

  10.         }

  11. }

  12.  

  13. fun main(args: Array<String>) {

  14.     println(App().greeting)

  15. }


Selanjutnya adalah folder test, yang berisi berkas-berkas kode pengujian aplikasi. Sama dengan folder main, di dalam test juga terdapat folder kotlin dan package name dari proyek kita. Di sana terdapat berkas AppTest.kt yang merupakan sebuah kelas pengujian. Berikut kode di dalamnya:


  1. /*

  2.  * This Kotlin source file was generated by the Gradle 'init' task.

  3.  */

  4. package com.dicoding.kotlin

  5.  

  6. import kotlin.test.Test

  7. import kotlin.test.assertNotNull

  8.  

  9. class AppTest {

  10.     @Test fun testAppHasAGreeting() {

  11.         val classUnderTest = App()

  12.         assertNotNull(classUnderTest.greeting, "app should have a greeting")

  13.     }

  14. }


Semua kode di atas dibuat secara otomatis saat kita membuat proyek dengan Gradle. 

Menjalankan Program Gradle

Setelah mengetahui struktur dari proyek yang dibuat, selanjutnya kita akan menjalankan program tersebut. Caranya sangat sederhana. Pada terminal kita cukup menjalankan 1 (satu) perintah Gradle berikut:


  1. gradle run


Lalu Gradle akan melakukan proses build pada proyek tersebut. Secara otomatis ia akan mengeksekusi kode di dalam berkas App.kt. Jika berhasil, maka terminal akan menampilkan pesan seperti di bawah ini:
20200407194605a24a824b14c845dfb507ed83c108f6c9.png
Jika proses build berlangsung lama, itu adalah hal normal karena baru pertama kali dijalankan pada suatu proyek di mana compiler akan mendownload beberapa library pendukung agar program dapat dijalankan dengan baik.
Perintah gradle run di atas, bisa juga Anda gunakan pada system operasi Windows, berikut contoh jika perintah tersebut dijalankan:
20200407194645a5f7ccf3f52fed33ca58891af86b7163.png
Asalas | Unlock Anime, Manhwa & Donghua Like Never BeforeFinasteriden: Unlock the Secrets of the Movie World!Marians Woman: Celebrating Beauty Around the WorldArheon - Unveiling the Secrets of Food & Origins WorldwideMPAPER The Ultimate Destination for Anime & Manga FansANMC21: Your Guide to Smarter Living and SuccessMV Agusta of Tampa: Your Automotive News HubTech and Play: Your Hub for Technology, Gaming, and GadgetsRebeccaSommer : Stories & Cultures from Around the WorldUETRABAJANDOJUNTOS - Inside the Music World’s Best-Kept SecretsVandelay Armor - Viral News and Global UpdatesGainesville Sun: Technology & Computers UnveiledGRFX Gaming Party Bus: Journey Through Gaming ErasHouse of Beauty: Celebrating the World's Most Beautiful WomenLearn Mistake: Wisdom for a Better LifeSports Hope Alive: Portal Olahraga DuniaWorld News TW - The Hottest Viral News & Global HeadlinesWriter Sujatha - Life Lessons & Struggles That Inspirehttps://128.199.185.186/https://143.198.89.74/https://165.227.47.178/https://170.64.208.214/https://170.64.192.239/https://46.101.102.216/LVONLINEtelegram lvonlinehttps://www.thecarbongenie.com/https://www.aievea-bijou.com/https://www.slashpolicy.com/https://www.benwestbeech.com/https://www.hh-bags.com/https://www.drupalforfacebook.org/https://www.lvonline.boats/https://www.lvoslot.com/https://www.lvobet.id/https://www.lvoslot.id/https://www.lvonline000.com/https://www.lvonline001.com/https://www.lvonline002.com/https://www.lvonline003.com/https://www.lvonline004.com/https://www.lvonline005.com/https://www.lvonline006.com/https://www.lvonline007.com/https://www.lvonline008.com/https://www.lvonline009.com/https://www.lvonline010.com/https://www.lvonlinepoker.com/https://www.lvonlinebola.com/https://www.lvonlinekasino.com/https://www.lvonline.io/https://www.lvonline.store/https://www.lvonline.online/https://www.situslvonline.us/situs bandar lvonlinehttps://146.190.97.83/https://143.198.209.134/https://188.166.246.204/https://167.172.83.179/https://togelhok.tv/https://www.togelhok.id/https://earthtoweb.com/https://www.elearningfacultymodules.org/https://www.how6youtoknowc.org/https://128.199.71.129/https://167.172.64.185/https://152.42.192.250/https://www.capcut88.com/https://www.capcut88.co/https://towsonsmiles.com/https://www.campur88.com/https://www.campur88.org/https://www.campur88.work/https://www.campur88.xyz/https://www.campur88.lol/https://www.nagacampur.biz/https://www.nagacampur.club/https://www.nagacampur.co/https://www.nagacampur.me/https://www.nagacampur.xyz/https://www.nasicampur88.com/https://165.232.175.185/https://152.42.164.228/https://152.42.194.203/https://152.42.169.214/https://www.campurslot.com/https://www.campurslot.id/https://www.campurslot.co/https://www.campurslot.org/https://www.campurslot.homes/https://www.campurslot.design/Badan Lembaga Pendidikan Ilmu Komputer SubangUniversitas Negeri JeparaLembaga Universitas Kristen MaranthaSMP 3 Negri Nganjukhttps://iklanmalay.com/https://promobola.comhttps://kapsychologists.comhttps://propertycloudsite.comSattar777 NewsVR Slot Online NewsRuby888 Online Slot NewsBerita Global Klik Agenslot228Agen Sloto SG777 NewsGold Club SlotOnline NewsAzar Marra Kech NewsBerita Sidney dan MancanegaraBerita Seputar Sumsel dan DuniaBerita Rehabilitasi Judi OnlineBerita Link Gacor TerupdateItalian Tuition News UpdateWPJS Online NewsBerita Agen Slot RoyalThai Slot Online NewsAll Online Game NewsOnline Game News UpdateAsian Lotre NewsBerita Demo Dana SlotBerita Kalbar ProvLocanda della Maria NewsWye Valley NewsBerita Agen Slot1004Berita Agen Slot33Agen Slot399 NewsPlayboy Slot Online NewsSlot Online BB Slot NewsSlot Online 911 News365 Slot Online NewsEat Atlah Newsambamali canadaInfo Seputar Sepakbolacentre thoughtBerita Hiburanopen etherpadras indo groupresistance manualPrediksi Shiowe want real newsthe poisoned pawnindonesia reclaimed teakswift kennedy and copullip passionmy passion foraim torontoPublic FlashesFriweb TeknologiIngenious Gamersthe late show gardensGishPuppy Newsslot danaOregon Farm Garden NewsViral Pulse GlobaljumpajpPromo Bola soccer Captivates The WorldKapsychologists World First The Science of Mental Health - Understanding Psychiatry: The Science of Mental HealthPropertyCloudSite How to Make Smarter Investments in Today’s MarketArnavichara Ultimate Guide Right Business SoftwareAuscare Disability A Comprehensive Guide to Retirement Homes Finding the Perfect Place to Enjoy Your Golden YearsSeries Mp4 The Future of Entertainment Streaming and Downloadable Video ExplainedAlogirlxinh How to Create a Successful Personal Page or Blog in 2024ihokibethttps://bengbulang-karangpucung.cilacapkab.go.id/https://comunicacion.unsa.edu.ar/https://seychellesbiodiversitychm.sc/https://www.925lms.com/https://www.guisseny.memoire.bzh/https://www.mobiliars.org/https://www.squashparkwieliczka.pl/
Asalas | Unlock Anime, Manhwa & Donghua Like Never BeforeFinasteriden: Unlock the Secrets of the Movie World!Marians Woman: Celebrating Beauty Around the WorldArheon - Unveiling the Secrets of Food & Origins WorldwideMPAPER The Ultimate Destination for Anime & Manga FansANMC21: Your Guide to Smarter Living and SuccessMV Agusta of Tampa: Your Automotive News HubTech and Play: Your Hub for Technology, Gaming, and GadgetsRebeccaSommer : Stories & Cultures from Around the WorldUETRABAJANDOJUNTOS - Inside the Music World’s Best-Kept SecretsVandelay Armor - Viral News and Global UpdatesGainesville Sun: Technology & Computers UnveiledGRFX Gaming Party Bus: Journey Through Gaming ErasHouse of Beauty: Celebrating the World's Most Beautiful WomenLearn Mistake: Wisdom for a Better LifeSports Hope Alive: Portal Olahraga DuniaWorld News TW - The Hottest Viral News & Global HeadlinesWriter Sujatha - Life Lessons & Struggles That Inspirehttps://128.199.185.186/https://143.198.89.74/https://165.227.47.178/https://170.64.208.214/https://170.64.192.239/https://46.101.102.216/LVONLINEtelegram lvonlinehttps://www.thecarbongenie.com/https://www.aievea-bijou.com/https://www.slashpolicy.com/https://www.benwestbeech.com/https://www.hh-bags.com/https://www.lvonline.boats/https://www.lvoslot.com/https://www.lvobet.id/https://www.lvoslot.id/https://www.lvonline000.com/https://www.lvonline001.com/https://www.lvonline002.com/https://www.lvonline003.com/https://www.lvonline004.com/https://www.lvonline005.com/https://www.lvonline006.com/https://www.lvonline007.com/https://www.lvonline008.com/https://www.lvonline009.com/https://www.lvonline010.com/https://www.lvonlinepoker.com/https://www.lvonlinebola.com/https://www.lvonlinekasino.com/https://www.lvonline.io/https://www.lvonline.store/https://www.lvonline.online/https://www.situslvonline.us/situs bandar lvonlinehttps://146.190.97.83/https://143.198.209.134/https://188.166.246.204/https://167.172.83.179/https://togelhok.tv/https://www.togelhok.id/https://earthtoweb.com/https://www.elearningfacultymodules.org/https://www.how6youtoknowc.org/https://128.199.71.129/https://167.172.64.185/https://152.42.192.250/https://www.capcut88.com/https://www.capcut88.co/https://towsonsmiles.com/https://www.campur88.com/https://www.campur88.org/https://www.campur88.work/https://www.campur88.xyz/https://www.campur88.lol/https://www.nagacampur.biz/https://www.nagacampur.club/https://www.nagacampur.co/https://www.nagacampur.me/https://www.nagacampur.xyz/https://www.nasicampur88.com/https://165.232.175.185/https://152.42.164.228/https://152.42.194.203/https://152.42.169.214/https://www.campurslot.com/https://www.campurslot.id/https://www.campurslot.co/https://www.campurslot.org/https://www.campurslot.homes/https://www.campurslot.design/Badan Lembaga Pendidikan Ilmu Komputer SubangUniversitas Negeri JeparaLembaga Universitas Kristen MaranthaSMP 3 Negri Nganjukhttps://iklanmalay.com/https://promobola.comhttps://kapsychologists.comhttps://propertycloudsite.comSattar777 NewsVR Slot Online NewsRuby888 Online Slot NewsBerita Global Klik Agenslot228Agen Sloto SG777 NewsGold Club SlotOnline NewsAzar Marra Kech NewsBerita Sidney dan MancanegaraBerita Seputar Sumsel dan DuniaBerita Rehabilitasi Judi OnlineBerita Link Gacor TerupdateItalian Tuition News UpdateWPJS Online NewsBerita Agen Slot RoyalThai Slot Online NewsAll Online Game NewsOnline Game News UpdateAsian Lotre NewsBerita Demo Dana SlotBerita Kalbar ProvLocanda della Maria NewsWye Valley NewsBerita Agen Slot1004Berita Agen Slot33Agen Slot399 NewsPlayboy Slot Online NewsSlot Online BB Slot NewsSlot Online 911 News365 Slot Online NewsEat Atlah Newsambamali canadaInfo Seputar Sepakbolacentre thoughtBerita Hiburanopen etherpadras indo groupresistance manualPrediksi Shiowe want real newsthe poisoned pawnindonesia reclaimed teakswift kennedy and copullip passionmy passion foraim torontoPublic FlashesFriweb TeknologiIngenious Gamersthe late show gardensGishPuppy Newsslot danaOregon Farm Garden NewsViral Pulse GlobaljumpajpPromo Bola soccer Captivates The WorldKapsychologists World First The Science of Mental Health - Understanding Psychiatry: The Science of Mental HealthPropertyCloudSite How to Make Smarter Investments in Today’s MarketArnavichara Ultimate Guide Right Business SoftwareAuscare Disability A Comprehensive Guide to Retirement Homes Finding the Perfect Place to Enjoy Your Golden YearsSeries Mp4 The Future of Entertainment Streaming and Downloadable Video ExplainedAlogirlxinh How to Create a Successful Personal Page or Blog in 2024ihokibethttps://bengbulang-karangpucung.cilacapkab.go.id/https://comunicacion.unsa.edu.ar/https://seychellesbiodiversitychm.sc/https://www.925lms.com/https://www.guisseny.memoire.bzh/https://www.mobiliars.org/https://www.squashparkwieliczka.pl/https://mok.edu.kz/https://www.mware.cloud/https://www.facilitiescoolingandheating.com.au/https://www.krillpay.ng/https://925worksuite.com/https://www.scenarioaulongcourt-archives.com/http://www.lesateliersdusoleil.fr/