<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aditiya Prayogo</title>
    <description>The latest articles on DEV Community by Aditiya Prayogo (@aditprayogo).</description>
    <link>https://dev.to/aditprayogo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F298992%2F6b4c14b9-b708-4c8b-b34b-197f99693acc.jpg</url>
      <title>DEV Community: Aditiya Prayogo</title>
      <link>https://dev.to/aditprayogo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditprayogo"/>
    <language>en</language>
    <item>
      <title>Scope Functions di Kotlin</title>
      <dc:creator>Aditiya Prayogo</dc:creator>
      <pubDate>Wed, 11 Nov 2020 03:53:40 +0000</pubDate>
      <link>https://dev.to/aditprayogo/scope-functions-di-kotlin-2j12</link>
      <guid>https://dev.to/aditprayogo/scope-functions-di-kotlin-2j12</guid>
      <description>&lt;p&gt;Mungkin beberapa orang ada yang masih bingung dengan perbedaan standart function yang terdapat di kotlin dan bingung untuk menentukan yang mana yang tepat untuk digunakan.&lt;br&gt;
Disini saya akan menjelaskan perbedaan penggunaan antara standart function dan cara menentukan function yang tepat untuk digunakan.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Scope Function&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Apa itu Scope Function ? Di kotlin Scope function adalah sebuah standard library yang berisikan beberapa function yang bisa digunakan untuk mengeksekusi object dengan mudah memanfaatkan &lt;a href="https://www.baeldung.com/kotlin-lambda-expressions"&gt;lambda expression&lt;/a&gt;. di blog ini akan kita bahas mengenai T.let, T.run, T.apply, T.also&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;let&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;let merupakan sebuah Scope Function yang menjadikan &lt;em&gt;Object&lt;/em&gt; sebagai Parameter lambdanya. Sehingga perlu menggunakan &lt;em&gt;it&lt;/em&gt; untuk mengakses &lt;em&gt;refrence&lt;/em&gt; terhadap &lt;em&gt;object&lt;/em&gt; tersebut. &lt;br&gt;&lt;br&gt;
Contoh Penggunaan :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;data class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;major&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;student&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"adit"&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;major&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"informatics"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="cm"&gt;/**
     * Penggunaan let
    */&lt;/span&gt;
    &lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;let&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="p"&gt;-&amp;gt;&lt;/span&gt;
        &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;text&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nama saya ${it.name}, Jurusan saya ${it.major }"&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/*
   output : Nama saya adit, Jurusan saya teknik informatics
*/&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;run&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Fungsi run akan mengembalikan nilai berdasarkan expression yang berada di dalam blok lambda. Untuk mengakses konteks dari objek, ia akan menggunakan receiver (this). Fungsi run akan sangat berguna jika di dalam blok lambda terdapat inisialisasi objek dan perhitungan untuk nilai kembalian. &lt;br&gt;&lt;br&gt;
Contoh Penggunaan :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;   &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Aditiya"&lt;/span&gt;

    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;from&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;
        &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;to&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;oldValue&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Aditiya"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newValue&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ihzar"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="s"&gt;"Replace text from $from to $to"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


    &lt;span class="cm"&gt;/*
       Output : Replace text from Aditiya to Ihzar
   */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;apply&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Pengertian &lt;em&gt;Apply&lt;/em&gt; hampir sama dengan &lt;em&gt;run&lt;/em&gt;, Yang membedakan adalah &lt;em&gt;return value&lt;/em&gt; dari &lt;em&gt;apply&lt;/em&gt; merupakan &lt;em&gt;refrence&lt;/em&gt; object itu sendiri&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Contoh penggunaan :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;data class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;nim&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;?,&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;?,&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;major&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;?,&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;address&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;student&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;

    &lt;span class="cm"&gt;/**
     * Contoh penggunaan apply
     */&lt;/span&gt;
    &lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="o"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;apply&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;nim&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1811500584&lt;/span&gt;
        &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Aditiya Prayogo"&lt;/span&gt;
        &lt;span class="n"&gt;major&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"teknik Informatika"&lt;/span&gt;
        &lt;span class="n"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Jln komp ddn nomor 50"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Contoh lain Penggunaan apply :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;message&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StringBuilder&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;apply&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;StringBuilder&lt;/span&gt;
        &lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Aditiya "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Prayogo!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/*
   output : Aditiya Prayogo
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;also&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Fungsi also sama seperti fungsi apply, di mana nilai yang dikembalikan adalah nilai dari konteks objek. Namun untuk konteks objeknya tersedia sebagai argumen (it). Fungsi also baiknya digunakan ketika kita ingin menggunakan konteks dari objek sebagai argumen tanpa harus mengubah nilainya. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Contoh penggunaan :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;text&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Hello Aditiya"&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;also&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"value length -&amp;gt; ${it.length}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/*
   output :
           Hello Aditiya
           value length -&amp;gt; 13
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  &lt;strong&gt;Kapan kita menggunakan let, run, apply, dan also ?&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Simak Flowchart di bawah ini&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7ZJV_vHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/1%2AoEQ4sqvtDfmL93wlQ0xlbQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7ZJV_vHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/1%2AoEQ4sqvtDfmL93wlQ0xlbQ.png" alt="Gambar" width="700" height="295"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Refrensi&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/mobile-app-development-publication/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84"&gt;https://medium.com/mobile-app-development-publication/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://proandroiddev.com/kotlin-scope-functions-made-simple-c59b97a04ca2"&gt;https://proandroiddev.com/kotlin-scope-functions-made-simple-c59b97a04ca2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Mengapa Kotlin ?</title>
      <dc:creator>Aditiya Prayogo</dc:creator>
      <pubDate>Sat, 07 Nov 2020 15:05:01 +0000</pubDate>
      <link>https://dev.to/aditprayogo/apa-itu-kotlin-4m6l</link>
      <guid>https://dev.to/aditprayogo/apa-itu-kotlin-4m6l</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Penjelasan Kotlin&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Kotlin adalah bahasa pemrograman modern, disajikan secara statis yang berjalan pada platform Java Virtual Machine (JVM). Kotlin menggunakan compiler LLVM yang artinya, dapat dikompilasi ke dalam kode JavaScript. Bahasa pemrograman yang satu ini banyak diminati oleh para developer. Terutama bagi kamu yang ingin jadi developer Android, pakailah bahasa yang satu ini.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Sejarah Kotlin&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Kotlin pertama kali muncul pada tahun 2011, tepatnya pada bulan Juli. Bahasa ini telah dikembangkan selama satu tahun dipimpin oleh Dmitry Jemerov, penerbit buku “Kotlin in Action” bersama dengan Svetlana Isakova. Dmitry sendiri mengatakan bahwa sebagian besar bahasa tidak memiliki fitur yang mereka cari, dengan pengecualian Scala. Namun, ia menyebutkan waktu kompilasi lambat Scala sebagai kekurangan yang jelas. Salah satu tujuan dari Kotlin adalah untuk mengkompilasi secepat Java. Pada Februari 2012, JetBrains membuka proyek bersumber di bawah lisensi Apache 2. Nama kotlin berasal dari pulau Kotlin di dekat St. Petersburg.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SXcRgHVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://photos.wikimapia.org/p/00/03/20/85/40_big.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SXcRgHVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://photos.wikimapia.org/p/00/03/20/85/40_big.jpg" alt="St.Petersburg"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Andrey Breslav, pemimpin desain bahasa kotlin menyebutkan bahwa tim memutuskan untuk menamakannya seperti Java yang namanya berasal dari pulau Jawa di Indonesia (meskipun bahasa pemrograman Java mungkin awalnya dinamai kopi). JetBrains berharap bahwa bahasa baru ini akan mendorong penjualan IntelliJ IDEA. Kotlin v1.0 dirilis pada 15 Februari 2016. Kotlin dianggap rilis resmi pertama yang stabil dan JetBrains telah berkomitmen untuk kompatibilitas mundur jangka panjang yang dimulai dengan versi ini. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FMNNZxeI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vignette.wikia.nocookie.net/logopedia/images/d/d9/Google-io-logo.png/revision/latest%3Fcb%3D20160629081925" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FMNNZxeI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vignette.wikia.nocookie.net/logopedia/images/d/d9/Google-io-logo.png/revision/latest%3Fcb%3D20160629081925" alt="Google I/O 2017"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Setelah melalui banyak perkembangan, JetBrains merilis Kotlin secara open source dan kini setelah perkembangannya semakin maju, Google mendukung penuh Kotlin untuk pengembangan aplikasi Android. Ini artinya Kotlin menjadi bahasa pemrograman ketiga yang didukung oleh android selain Java dan C++.  Kotlin v1.2 dirilis pada 28 November 2017. Kode berbagi antara JVM dan fitur platform Javascript baru ditambahkan ke rilis ini. Versi kotlin yang terbaru adalah Kotlin 1.3 RC yang rilis pada tanggal 20 September 2018 lalu. Kotlin memiliki filename extension .kt dan .kts.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/X1RVYt2QKQE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Contoh Syntax Kotlin&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Person.kt&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;data class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;hobby&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Main.kt&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;person&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s"&gt;"Aditiya Prayogo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;"Mancing"&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="cm"&gt;/**
     * Operator "?" merupakan safe-call operator
     * untuk menghindari Object tersebut bernilai Null
     */&lt;/span&gt;
    &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;let&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//Aditiya Prayogo&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//20&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hobby&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//Mancing&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  &lt;strong&gt;Kelebihan dan Kekurangan Kotlin&lt;/strong&gt; &lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Sebagai bahasa pemrograman, kotlin juga memiliki kelebihan dan kekurangan. Kelebihan dari kotlin yaitu concise, safe, versatile, dan interopelable.&lt;br&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Concise&lt;/em&gt;&lt;/strong&gt; yaitu dalam bahasa pemrograman kotlin mampu mengurangi boilerplate of code atau tingkat kerumitan dari kode yang biasa kita tulis ketika menggunakan bahasa java.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Safe&lt;/em&gt;&lt;/strong&gt; dalam bahasa pemrograman kotlin mampu menjamin bahwa setiap syntax yang kita tulis secara proses kompilasi dapat mencegah kemungkinan terjadinya error, seperti mampu mencegah terjadinya NullPointerExceptions ketika kita coding menggunakan bahasa pemrograman java.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Versatile&lt;/em&gt;&lt;/strong&gt; maksudnya karena kotlin merupakan bahasa pemrograman yang diturunkan dari java, maka kotlin juga dapat dipakai dalam pengembangan aplikasi di web maupun mobile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Interoperable&lt;/em&gt;&lt;/strong&gt; maksudnya kotlin tidak sama seperti bahasa pemrograman lain yang diturunkan dari java yang tidak dapat dijalankan bersamaan dengan kode yang kita tulis menggunakan java. &lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Kotlin sendiri juga mampu membaca kode lama atau library yang kita gunakan atau kita tulis dengan bahasa java dan begitupun sebaliknya. Kotlin bukan bahasa pemrograman yang sempurna. Kotlin juga memiliki kekurangan dalam penggunaannya. Kotlin memiliki ukuran runtime yang dapat bertambah, meskipun tambahan untuk ukuran hanya 800kb tetapi itu sangat mempengaruhi para pengguna android. Kode dari bahasa pemrograman kotlin pun memiliki tingkat kesulitan dalam kode awal yang menurut beberapa developer sulit untuk dibaca. Kotlin juga tidak memiliki banyak dukungan resmi. Meskipun kotlin memiliki dukungan dari IDE android studio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Refrensi :
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kotlinuc.wordpress.com/2018/10/15/kotlin/#:~:text=Sejarah,Action%E2%80%9D%20bersama%20dengan%20Svetlana%20Isakova.&amp;amp;text=JetBrains%20berharap%20bahwa%20bahasa%20baru%20ini%20akan%20mendorong%20penjualan%20IntelliJ%20IDEA."&gt;kotlinuc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.dicoding.com/blog/apa-itu-kotlin-kenapa-kita-harus-mempelajari-kotlin/"&gt;dicoding&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
