Difference between revisions of "ANDROID: Contoh Hello World"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Let us start actual programming with Android Framework. Before you start writing your first example using Android SDK, you have to make sure that you have set-up your Android...")
 
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
Let us start actual programming with Android Framework. Before you start writing your first example using Android SDK, you have to make sure that you have set-up your Android development environment properly as explained in Android - Environment Set-up tutorial. I also assume that you have a little bit working knowledge with Android studio.
+
Mari kita mulai pemrograman sebenarnya dengan Android Framework. Sebelum kita mulai menulis contoh pertama kita menggunakan Android SDK, kita harus memastikan bahwa kita telah menyiapkan lingkungan pengembangan Android kita dengan benar. Asumsi-nya, anda memiliki sedikit pengetahuan tentang Android studio.
  
So let us proceed to write a simple Android Application which will print "Hello World!".
+
Jadi mari kita lanjutkan untuk menulis Aplikasi Android sederhana yang akan mem-print "Hello World!".
  
Create Android Application
 
The first step is to create a simple Android Application using Android studio. When you click on Android studio icon, it will show screen as shown below
 
  
Hello Android Wizard
+
==Membuat Aplikasi Android==
You can start your application development by calling start a new android studio project. in a new installation frame should ask Application name, package information and location of the project.−
 
  
Hello Android Project
+
Langkah pertama adalah membuat Aplikasi Android sederhana menggunakan Android studio. Ketika kita mengklik icon studio Android, maka akan tampil layar yang kira-kira seperti yang ditunjukkan di bawah ini
After entered application name, it going to be called select the form factors your application runs on, here need to specify Minimum SDK, in our tutorial, I have declared as API23: Android 6.0(Mashmallow) −
 
  
Hello Android Project
+
[[File:Studio9.png|center|200px|thumb]]
The next level of installation should contain selecting the activity to mobile, it specifies the default layout for Applications.
 
  
Hello Android Project
+
Kita dapat memulai pengembangan aplikasi dengan calling start a new android studio project. dalam new installation frame akan di tanyan nama Aplikasi, informasi paket, dan lokasi proyek.−
At the final stage it going to be open development tool to write the application code.
 
  
Hello Android Project
+
[[File:Studio10.png|center|200px|thumb]]
Anatomy of Android Application
 
Before you run your app, you should be aware of a few directories and files in the Android project −
 
  
Android Directory Structure
+
Setelah memasukkan nama aplikasi, kita perlu memilih form factor tempat menjalankan aplikasi tersebut, kita perlu menentukan SDK Minimum, dalam tutorial ini, kita mendeklarasikan sebagai API23: Android 6.0(Mashmallow)
Sr.No. Folder, File & Description
 
1
 
Java
 
  
This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon.
+
[[File:Studio11.png|center|200px|thumb]]
  
2
+
Tingkat instalasi berikutnya memilih activity ke seluler, ini menentukan layout default untuk Aplikasi.
res/drawable-hdpi
 
  
This is a directory for drawable objects that are designed for high-density screens.
+
[[File:Studio12.jpeg|center|200px|thumb]]
  
3
+
Pada tahap akhir akan dibuka development tool untuk menulis kode aplikasi.
res/layout
 
  
This is a directory for files that define your app's user interface.
+
[[File:Studio13.jpg|center|200px|thumb]]
  
4
 
res/values
 
  
This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions.
+
==Anatomy sebuah aplikasi Android==
  
5
+
Sebelum menjalankan aplikasi, kita perlu mengetahui beberapa direktori dan file di sebuah proyek Android
AndroidManifest.xml
 
  
This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.
+
[[File:Hello word.png|center|200px|thumb]]
  
6
 
Build.gradle
 
  
This is an auto generated file which contains compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName
+
{| class="wikitable"
 +
|+ Android Directory Structure
 +
|-
 +
! Sr.No. !! Folder !! File & Description
 +
|-
 +
| 1 || Java || This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon.
 +
|-
 +
| 2 || res/drawable-hdpi || This is a directory for drawable objects that are designed for high-density screens.
 +
|-
 +
| 3 || res/layout || This is a directory for files that define your app's user interface
 +
|-
 +
| 4 || res/values || This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions.
 +
|-
 +
| 5 || AndroidManifest.xml || This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.
 +
|-
 +
| 6 || Build.gradle || This is an auto generated file which contains compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName
 +
|}
  
Following section will give a brief overview of the important application files.
 
  
The Main Activity File
+
Bagian berikut akan memberikan gambaran singkat tentang file-file penting dalam sebuah aplikasi.
The main activity code is a Java file MainActivity.java. This is the actual application file which ultimately gets converted to a Dalvik executable and runs your application. Following is the default code generated by the application wizard for Hello World! application −
 
  
package com.example.helloworld;
+
==Main Activity File==
  
import android.support.v7.app.AppCompatActivity;
+
Main activity code adalah file Java MainActivity.java. Ini adalah file aplikasi yang pada akhirnya akan dikonversi menjadi Dalvik executable dan menjalankan aplikasi anda. Berikut adalah default code yang dihasilkan oleh wizard aplikasi untuk Hello World! sebagai berikut -
import android.os.Bundle;
 
  
public class MainActivity extends AppCompatActivity {
+
package com.example.helloworld;
  @Override
+
  protected void onCreate(Bundle savedInstanceState) {
+
import android.support.v7.app.AppCompatActivity;
      super.onCreate(savedInstanceState);
+
import android.os.Bundle;
      setContentView(R.layout.activity_main);
+
  }
+
public class MainActivity extends AppCompatActivity {
}
+
    @Override
Here, R.layout.activity_main refers to the activity_main.xml file located in the res/layout folder. The onCreate() method is one of many methods that are figured when an activity is loaded.
+
    protected void onCreate(Bundle savedInstanceState) {
 +
      super.onCreate(savedInstanceState);
 +
      setContentView(R.layout.activity_main);
 +
    }
 +
}
  
The Manifest File
+
Di sini, R.layout.activity_main merujuk ke file activity_main.xml yang terletak di folder res/layout. Method onCreate() adalah salah satu dari banyak metode yang akan muncul saat aktivitas dimuat.
Whatever component you develop as a part of your application, you must declare all its components in a manifest.xml which resides at the root of the application project directory. This file works as an interface between Android OS and your application, so if you do not declare your component in this file, then it will not be considered by the OS. For example, a default manifest file will look like as following file −
 
  
<?xml version="1.0" encoding="utf-8"?>
+
==Manifest File==
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 
    package="com.example.tutorialspoint7.myapplication">
 
  
  <application
+
Komponen apa pun yang kita kembangkan sebagai bagian dari aplikasi, kita harus mendeklarasikan semua komponennya dalam manifest.xml yang berada di root direktori proyek aplikasi. File ini berfungsi sebagai interface antara OS Android dan aplikasi, jadi jika kita tidak mendeklarasikan komponen tersebut dalam file ini, maka komponen tersebut tidak akan dipertimbangkan oleh OS. Misalnya, default manifest file akan terlihat seperti file berikut
      android:allowBackup="true"
 
      android:icon="@mipmap/ic_launcher"
 
      android:label="@string/app_name"
 
      android:supportsRtl="true"
 
      android:theme="@style/AppTheme">
 
     
 
      <activity android:name=".MainActivity">
 
        <intent-filter>
 
            <action android:name="android.intent.action.MAIN" />
 
            <category android:name="android.intent.category.LAUNCHER" />
 
        </intent-filter>
 
      </activity>
 
  </application>
 
</manifest>
 
Here <application>...</application> tags enclosed the components related to the application. Attribute android:icon will point to the application icon available under res/drawable-hdpi. The application uses the image named ic_launcher.png located in the drawable folders
 
  
The <activity> tag is used to specify an activity and android:name attribute specifies the fully qualified class name of the Activity subclass and the android:label attributes specifies a string to use as the label for the activity. You can specify multiple activities using <activity> tags.
+
<?xml version="1.0" encoding="utf-8"?>
 +
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 +
    package="com.example.tutorialspoint7.myapplication">
 +
 +
    <application
 +
      android:allowBackup="true"
 +
      android:icon="@mipmap/ic_launcher"
 +
      android:label="@string/app_name"
 +
      android:supportsRtl="true"
 +
      android:theme="@style/AppTheme">
 +
     
 +
      <activity android:name=".MainActivity">
 +
          <intent-filter>
 +
            <action android:name="android.intent.action.MAIN" />
 +
            <category android:name="android.intent.category.LAUNCHER" />
 +
          </intent-filter>
 +
      </activity>
 +
    </application>
 +
</manifest>
  
The action for the intent filter is named android.intent.action.MAIN to indicate that this activity serves as the entry point for the application. The category for the intent-filter is named android.intent.category.LAUNCHER to indicate that the application can be launched from the device's launcher icon.
+
Di sini tag <application>...</application> menyertakan komponen yang terkait dengan aplikasi. Atribut android:icon akan menunjuk ke icon aplikasi yang tersedia di bawah res/drawable-hdpi. Aplikasi menggunakan gambar bernama ic_launcher.png yang terletak di drawable folder
  
The @string refers to the strings.xml file explained below. Hence, @string/app_name refers to the app_name string defined in the strings.xml file, which is "HelloWorld". Similar way, other strings get populated in the application.
+
Tag <activity> digunakan untuk menentukan aktivitas dan atribut android:name menetapkan nama fully qualified clas dari subclass Axtivity dan atribut android:label menetapkan string untuk digunakan sebagai label activity. Kita dapat menentukan beberapa aktivity menggunakan tag <activity>.
  
Following is the list of tags which you will use in your manifest file to specify different Android application components −
+
Tindakan untuk intent filter diberi nama android.intent.action.MAIN untuk menunjukkan bahwa activity ini berfungsi sebagai titik masuk untuk aplikasi. Kategori untuk intent-filter diberi nama android.intent.category.LAUNCHER untuk menunjukkan bahwa aplikasi dapat diluncurkan dari launcher icon perangkat.
  
<activity>elements for activities
+
@string merujuk ke file strings.xml yang dijelaskan di bawah ini. Oleh karena itu, @string/app_name mengacu pada string app_name yang didefinisikan dalam file strings.xml, yaitu "HelloWorld". Dengan cara yang sama, string lain diisi di aplikasi.
  
<service> elements for services
+
Berikut adalah daftar tag yang akan Anda gunakan dalam file manifest untuk menentukan berbagai komponen aplikasi Android
  
<receiver> elements for broadcast receivers
+
<activity> elements for activities
 +
<service>  elements for services
 +
<receiver> elements for broadcast receivers
 +
<provider> elements for content providers
  
<provider> elements for content providers
+
==Strings File==
  
The Strings File
+
File strings.xml terletak di folder res/values dan berisi semua teks yang digunakan aplikasi. Misalnya, nama tombol, label, teks default, dan jenis string serupa masuk ke file ini. File ini bertanggung jawab atas konten tekstualnya. Misalnya, file string default akan terlihat seperti file berikut
The strings.xml file is located in the res/values folder and it contains all the text that your application uses. For example, the names of buttons, labels, default text, and similar types of strings go into this file. This file is responsible for their textual content. For example, a default strings file will look like as following file
 
  
<resources>
+
<resources>
  <string name="app_name">HelloWorld</string>
+
    <string name="app_name">HelloWorld</string>
  <string name="hello_world">Hello world!</string>
+
    <string name="hello_world">Hello world!</string>
  <string name="menu_settings">Settings</string>
+
    <string name="menu_settings">Settings</string>
  <string name="title_activity_main">MainActivity</string>
+
    <string name="title_activity_main">MainActivity</string>
</resources>
+
</resources>
The Layout File
 
The activity_main.xml is a layout file available in res/layout directory, that is referenced by your application when building its interface. You will modify this file very frequently to change the layout of your application. For your "Hello World!" application, this file will have following content related to default layout −
 
  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+
==Layout File==
  xmlns:tools="http://schemas.android.com/tools"
 
  android:layout_width="match_parent"
 
  android:layout_height="match_parent" >
 
 
 
  <TextView
 
      android:layout_width="wrap_content"
 
      android:layout_height="wrap_content"
 
      android:layout_centerHorizontal="true"
 
      android:layout_centerVertical="true"
 
      android:padding="@dimen/padding_medium"
 
      android:text="@string/hello_world"
 
      tools:context=".MainActivity" />
 
     
 
</RelativeLayout>
 
This is an example of simple RelativeLayout which we will study in a separate chapter. The TextView is an Android control used to build the GUI and it have various attributes like android:layout_width, android:layout_height etc which are being used to set its width and height etc.. The @string refers to the strings.xml file located in the res/values folder. Hence, @string/hello_world refers to the hello string defined in the strings.xml file, which is "Hello World!".
 
  
Running the Application
+
Activity_main.xml adalah file layout yang tersedia di direktori res/layout, yang direferensikan oleh aplikasi saat membangun interface-nya. Kita akan sangat sering memodifikasi file ini untuk mengubah tata letak di aplikasi. Untuk aplikasi "Hello World!", file ini akan memiliki konten berikut yang terkait dengan tata letak default
Let's try to run our Hello World! application we just created. I assume you had created your AVD while doing environment set-up. To run the app from Android studio, open one of your project's activity files and click Run Eclipse Run Icon icon from the tool bar. Android studio installs the app on your AVD and starts it and if everything is fine with your set-up and application, it will display following Emulator window −
 
  
Android Hello World
+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
Congratulations!!! you have developed your first Android Application and now just keep following rest of the tutorial step by step to become a great Android Developer. All the very best.
+
    xmlns:tools="http://schemas.android.com/tools"
 +
    android:layout_width="match_parent"
 +
    android:layout_height="match_parent" >
 +
   
 +
    <TextView
 +
      android:layout_width="wrap_content"
 +
      android:layout_height="wrap_content"
 +
      android:layout_centerHorizontal="true"
 +
      android:layout_centerVertical="true"
 +
      android:padding="@dimen/padding_medium"
 +
      android:text="@string/hello_world"
 +
      tools:context=".MainActivity" />   
 +
</RelativeLayout>
  
 +
Ini adalah contoh RelativeLayout sederhana yang akan kita pelajari di bab terpisah. TextView adalah kontrol Android yang digunakan untuk membangun GUI dan memiliki berbagai atribut seperti android:layout_width, android:layout_height dll yang digunakan untuk mengatur lebar dan tinggi dll. @string merujuk ke file strings.xml yang terletak di folder res/values. Oleh karena itu, @string/hello_world mengacu pada string hello yang didefinisikan dalam file strings.xml, yaitu "Hello World!".
 +
 +
==Menjalankan Aplikasi==
 +
 +
Mari kita coba menjalankan Hello World kita! aplikasi yang baru saja kita buat. Asumsinya anda telah membuat AVD saat melakukan pengaturan environment Android Studio. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik icon Run Eclipse Run Icon dari tool bar. Studio Android menginstal aplikasi pada AVD Anda dan memulainya dan jika semuanya baik-baik saja dengan pengaturan dan aplikasi Anda, dia akan menampilkan jendela Emulator berikut
 +
 +
[[File:Android hello world.png|center|300px|thumb]]
 +
 +
Selamat!!! Anda telah mengembangkan Aplikasi Android pertama Anda dan sekarang terus ikuti tutorial langkah demi langkah untuk menjadi Pengembang Android yang hebat.
  
 
==Referensi==
 
==Referensi==
  
 
* https://www.tutorialspoint.com/android/android_hello_world_example.htm
 
* https://www.tutorialspoint.com/android/android_hello_world_example.htm

Latest revision as of 05:56, 14 July 2022

Mari kita mulai pemrograman sebenarnya dengan Android Framework. Sebelum kita mulai menulis contoh pertama kita menggunakan Android SDK, kita harus memastikan bahwa kita telah menyiapkan lingkungan pengembangan Android kita dengan benar. Asumsi-nya, anda memiliki sedikit pengetahuan tentang Android studio.

Jadi mari kita lanjutkan untuk menulis Aplikasi Android sederhana yang akan mem-print "Hello World!".


Membuat Aplikasi Android

Langkah pertama adalah membuat Aplikasi Android sederhana menggunakan Android studio. Ketika kita mengklik icon studio Android, maka akan tampil layar yang kira-kira seperti yang ditunjukkan di bawah ini

Studio9.png

Kita dapat memulai pengembangan aplikasi dengan calling start a new android studio project. dalam new installation frame akan di tanyan nama Aplikasi, informasi paket, dan lokasi proyek.−

Studio10.png

Setelah memasukkan nama aplikasi, kita perlu memilih form factor tempat menjalankan aplikasi tersebut, kita perlu menentukan SDK Minimum, dalam tutorial ini, kita mendeklarasikan sebagai API23: Android 6.0(Mashmallow)

Studio11.png

Tingkat instalasi berikutnya memilih activity ke seluler, ini menentukan layout default untuk Aplikasi.

Studio12.jpeg

Pada tahap akhir akan dibuka development tool untuk menulis kode aplikasi.

Studio13.jpg


Anatomy sebuah aplikasi Android

Sebelum menjalankan aplikasi, kita perlu mengetahui beberapa direktori dan file di sebuah proyek Android

Hello word.png


Android Directory Structure
Sr.No. Folder File & Description
1 Java This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon.
2 res/drawable-hdpi This is a directory for drawable objects that are designed for high-density screens.
3 res/layout This is a directory for files that define your app's user interface
4 res/values This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions.
5 AndroidManifest.xml This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.
6 Build.gradle This is an auto generated file which contains compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName


Bagian berikut akan memberikan gambaran singkat tentang file-file penting dalam sebuah aplikasi.

Main Activity File

Main activity code adalah file Java MainActivity.java. Ini adalah file aplikasi yang pada akhirnya akan dikonversi menjadi Dalvik executable dan menjalankan aplikasi anda. Berikut adalah default code yang dihasilkan oleh wizard aplikasi untuk Hello World! sebagai berikut -

package com.example.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
}

Di sini, R.layout.activity_main merujuk ke file activity_main.xml yang terletak di folder res/layout. Method onCreate() adalah salah satu dari banyak metode yang akan muncul saat aktivitas dimuat.

Manifest File

Komponen apa pun yang kita kembangkan sebagai bagian dari aplikasi, kita harus mendeklarasikan semua komponennya dalam manifest.xml yang berada di root direktori proyek aplikasi. File ini berfungsi sebagai interface antara OS Android dan aplikasi, jadi jika kita tidak mendeklarasikan komponen tersebut dalam file ini, maka komponen tersebut tidak akan dipertimbangkan oleh OS. Misalnya, default manifest file akan terlihat seperti file berikut

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tutorialspoint7.myapplication">

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

Di sini tag <application>...</application> menyertakan komponen yang terkait dengan aplikasi. Atribut android:icon akan menunjuk ke icon aplikasi yang tersedia di bawah res/drawable-hdpi. Aplikasi menggunakan gambar bernama ic_launcher.png yang terletak di drawable folder

Tag <activity> digunakan untuk menentukan aktivitas dan atribut android:name menetapkan nama fully qualified clas dari subclass Axtivity dan atribut android:label menetapkan string untuk digunakan sebagai label activity. Kita dapat menentukan beberapa aktivity menggunakan tag <activity>.

Tindakan untuk intent filter diberi nama android.intent.action.MAIN untuk menunjukkan bahwa activity ini berfungsi sebagai titik masuk untuk aplikasi. Kategori untuk intent-filter diberi nama android.intent.category.LAUNCHER untuk menunjukkan bahwa aplikasi dapat diluncurkan dari launcher icon perangkat.

@string merujuk ke file strings.xml yang dijelaskan di bawah ini. Oleh karena itu, @string/app_name mengacu pada string app_name yang didefinisikan dalam file strings.xml, yaitu "HelloWorld". Dengan cara yang sama, string lain diisi di aplikasi.

Berikut adalah daftar tag yang akan Anda gunakan dalam file manifest untuk menentukan berbagai komponen aplikasi Android

<activity> elements for activities
<service>  elements for services
<receiver> elements for broadcast receivers
<provider> elements for content providers

Strings File

File strings.xml terletak di folder res/values dan berisi semua teks yang digunakan aplikasi. Misalnya, nama tombol, label, teks default, dan jenis string serupa masuk ke file ini. File ini bertanggung jawab atas konten tekstualnya. Misalnya, file string default akan terlihat seperti file berikut

<resources>
   <string name="app_name">HelloWorld</string>
   <string name="hello_world">Hello world!</string>
   <string name="menu_settings">Settings</string>
   <string name="title_activity_main">MainActivity</string>
</resources>

Layout File

Activity_main.xml adalah file layout yang tersedia di direktori res/layout, yang direferensikan oleh aplikasi saat membangun interface-nya. Kita akan sangat sering memodifikasi file ini untuk mengubah tata letak di aplikasi. Untuk aplikasi "Hello World!", file ini akan memiliki konten berikut yang terkait dengan tata letak default

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:padding="@dimen/padding_medium"
      android:text="@string/hello_world"
      tools:context=".MainActivity" />     
</RelativeLayout>

Ini adalah contoh RelativeLayout sederhana yang akan kita pelajari di bab terpisah. TextView adalah kontrol Android yang digunakan untuk membangun GUI dan memiliki berbagai atribut seperti android:layout_width, android:layout_height dll yang digunakan untuk mengatur lebar dan tinggi dll. @string merujuk ke file strings.xml yang terletak di folder res/values. Oleh karena itu, @string/hello_world mengacu pada string hello yang didefinisikan dalam file strings.xml, yaitu "Hello World!".

Menjalankan Aplikasi

Mari kita coba menjalankan Hello World kita! aplikasi yang baru saja kita buat. Asumsinya anda telah membuat AVD saat melakukan pengaturan environment Android Studio. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik icon Run Eclipse Run Icon dari tool bar. Studio Android menginstal aplikasi pada AVD Anda dan memulainya dan jika semuanya baik-baik saja dengan pengaturan dan aplikasi Anda, dia akan menampilkan jendela Emulator berikut

Android hello world.png

Selamat!!! Anda telah mengembangkan Aplikasi Android pertama Anda dan sekarang terus ikuti tutorial langkah demi langkah untuk menjadi Pengembang Android yang hebat.

Referensi