Anda di halaman 1dari 15

MODUL PERKULIAHAN

API Level
pada
Android
Studio
 Menetapkan informasi versi Aplikasi
 Latihan Membuat Fungsi Open Whatsapp di
Aplikasi Android

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

6
Ilmu Komputer Informatika MKCF-8 Adi Hartanto, ST.,M.Kom

Abstract Kompetensi
Pembuatan versi merupakan bagian Mahasiswa diharapkan mampu
penting dari proses upgrade aplikasi memahami API Level
dan strategi pemeliharaan

2019 Mobile Programming Android (Lab)


2 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Membuat versi aplikasi Anda
Pembuatan versi merupakan bagian penting dari proses upgrade aplikasi dan strategi
pemeliharaan. Pembuatan versi penting karena:
 Pengguna perlu memiliki informasi khusus mengenai versi aplikasi yang terinstal di
perangkat mereka dan versi upgrade yang tersedia untuk diinstal.
 Aplikasi lain — termasuk aplikasi lain yang Anda publikasikan sebagai paket — perlu
mengkueri sistem perihal versi aplikasi Anda, untuk menentukan kompatibilitas dan
mengidentifikasi dependensi.
 Layanan yang akan Anda gunakan untuk memublikasikan aplikasi juga mungkin
perlu mengkueri aplikasi untuk mengetahui versinya, sehingga aplikasi dapat
menampilkan versinya kepada pengguna. Layanan publikasi mungkin juga perlu
memeriksa versi aplikasi untuk menentukan kompatibilitas dan menetapkan
hubungan upgrade/downgrade versi.
Sistem Android menggunakan informasi versi aplikasi Anda untuk memberikan
perlindungan dari upaya downgrade. Sistem Android tidak menggunakan informasi
versi aplikasi untuk menerapkan batasan upgrade atau kompatibilitas aplikasi pihak
ketiga. Aplikasi Anda harus menerapkan batasan versi apa pun dan harus memberi
tahu pengguna tentang hal tersebut.
Sistem Android menerapkan kompatibilitas versi sistem sebagaimana dinyatakan oleh
setelan minSdkVersion dalam file build. Setelan ini memungkinkan aplikasi menetapkan
versi minimum API sistem yang kompatibel dengannya.
Untuk menentukan informasi versi aplikasi Anda, tetapkan nilai untuk setelan versi
dalam file build Gradle. Kemudian nilai-nilai tersebut digabungkan ke dalam file manifes
aplikasi Anda selama proses build.
Ada dua setelan yang tersedia, dan Anda harus selalu menetapkan nilai keduanya:
 versionCode — Bilangan bulat positif yang digunakan sebagai nomor versi internal.
Nomor ini hanya digunakan untuk menentukan apakah suatu versi lebih baru
daripada versi yang lain; nomor yang lebih tinggi menunjukkan versi yang lebih baru.
Ini bukanlah nomor versi yang ditampilkan kepada pengguna, melainkan nomor yang
ditentukan oleh setelan versionName, yang dijelaskan di bawah. Sistem Android
menggunakan nilai versionCode untuk memberikan perlindungan dari upaya
downgrade dengan mencegah pengguna menginstal APK dengan versionCode yang
lebih rendah daripada versi yang saat ini terinstal di perangkat mereka.
Nilai ini berupa bilangan bulat positif, sehingga aplikasi lain dapat
mengevaluasi nilainya secara terprogram, misalnya untuk memeriksa hubungan

2019 Mobile Programming Android (Lab)


3 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
upgrade atau downgrade. Anda dapat menetapkan nilainya ke suatu bilangan bulat
yang diinginkan, akan tetapi Anda harus memastikan setiap rilis aplikasi Anda telah
menggunakan nilai yang lebih besar. Anda tidak dapat mengupload APK ke Play
Store dengan versionCode yang telah digunakan untuk versi sebelumnya.
Umumnya, Anda merilis versi pertama aplikasi dengan versionCode yang
ditetapkan ke 1, lalu meningkatkan nilai ini secara monoton di setiap rilis, baik rilis
besar maupun kecil. Ini berarti nilai versionCode tidak harus serupa dengan versi rilis
aplikasi yang dapat dilihat pengguna (lihat versionName di bawah). Aplikasi dan
layanan publikasi tidak boleh menampilkan nilai versi ini kepada pengguna.
 versionName — String yang digunakan sebagai nomor versi yang ditampilkan
kepada pengguna. Setelan ini dapat ditentukan sebagai string raw atau sebagai
referensi resource string.
Nilai ini adalah string, sehingga Anda bisa menjelaskan versi aplikasi sebagai
string <major>.<minor>.<point>, atau sebagai jenis ID versi absolut atau relatif
lainnya. versionName tidak memiliki kegunaan selain untuk ditampilkan kepada
pengguna.
Anda dapat menentukan nilai default untuk setelan berikut dengan
menyertakannya ke dalam blok defaultConfig {}, yang disarangkan di dalam
blok android {} file build.gradle modul Anda. Kemudian Anda dapat mengganti nilai
default ini untuk versi aplikasi Anda yang berbeda dengan menentukan nilai
tersendiri untuk masing-masing jenis build atau ragam produk.
File build.gradle berikut menampilkan setelan versionCode dan versionName dalam
blok defaultConfig {}, serta blok productFlavors {}.

    android {
      ...
      defaultConfig {
        ...
        versionCode 2
        versionName "1.1"
      }
      productFlavors {
        demo {
          ...
          versionName "1.1-demo"
        }
        full {
          ...
        }
      }

2019 Mobile Programming Android (Lab)


4 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
    }
   

Dalam blok defaultConfig {} contoh ini, nilai versionCode menunjukkan bahwa APK


saat ini berisi rilis kedua dari aplikasi, dan string versionName menentukan bahwa nilai ini
akan muncul kepada pengguna sebagai versi 1.1. File build.gradle ini juga menentukan dua
ragam produk, "demo" dan "full". Karena ragam produk "demo"
menentukan versionName sebagai "1.1-demo", build "demo"
menggunakan versionName ini, bukan nilai default-nya. Blok ragam produk "full" tidak
menentukan versionName dan menggunakan nilai default "1.1".
Framework Android menyediakan API agar Anda dapat mengkueri sistem untuk
mengetahui informasi versi aplikasi Anda. Untuk mendapatkan informasi versi, gunakan
metode getPackageInfo(java.lang.String, int) dari PackageManager.

Menetapkan persyaratan level API

Jika aplikasi Anda memerlukan versi minimum khusus dari platform Android, Anda
dapat menetapkan persyaratan versi tersebut sebagai setelan level API dalam
file build.gradle aplikasi. Selama proses build, setelan ini akan digabungkan ke dalam file
manifes aplikasi Anda. Penetapan persyaratan level API akan memastikan bahwa aplikasi
Anda hanya dapat diinstal pada perangkat yang menjalankan versi platform Android yang
kompatibel.

Ada dua setelan level API yang tersedia:

 minSdkVersion — Versi minimum platform Android tempat aplikasi akan dijalankan,


yang ditetapkan oleh ID level API platform.
 targetSdkVersion — Menetapkan level API tempat aplikasi dirancang untuk
dijalankan. Dalam beberapa kasus, hal ini memungkinkan aplikasi menggunakan
elemen atau perilaku manifes yang ditetapkan dalam level API target, bukannya
dibatasi pada penggunaan elemen atau perilaku manifes yang ditetapkan untuk level
API minimum.
Untuk menetapkan persyaratan level API default dalam file build.gradle, tambahkan
satu atau beberapa setelan di atas ke blok defaultConfig {}, yang disarangkan dalam
blok android {}. Anda juga dapat mengganti nilai default ini untuk versi aplikasi yang berbeda
dengan menambahkan setelan ke jenis versi atau ragam produk. File build.gradle berikut
menetapkan setelan default minSdkVersion dan targetSdkVersion dalam blok defaultConfig
{} serta mengganti minSdkVersion untuk satu ragam produk.

2019 Mobile Programming Android (Lab)


5 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
android {
      ...
      defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 24
      }
      productFlavors {
        main {
          ...
        }
        afterLollipop {
          ...
          minSdkVersion 21
        }
      }
    }
   

Saat bersiap menginstal aplikasi Anda, sistem akan memeriksa nilai setelan ini dan
membandingkannya dengan versi sistem. Jika nilai minSdkVersion lebih besar daripada
versi sistem, sistem akan mencegah penginstalan aplikasi.
Jika Anda tidak menetapkan setelan ini, sistem akan beranggapan bahwa aplikasi
Anda kompatibel dengan semua versi platform.
Untuk informasi selengkapnya, lihat dokumentasi elemen manifes <uses-sdk> dan
dokumen Level API. Untuk mengetahui setelan build Gradle, lihat Mengonfigurasi Varian
Build.

2019 Mobile Programming Android (Lab)


6 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Latihan Membuat Fungsi Open
Whatsapp di Aplikasi Android

Tutorial pemrograman android kali ini mengenai “Cara Membuat Fungsi Open
Whatsapp” pada aplikasi android kamu. Maksud dari tutorial pemrograman android ini adalah
ketika kamu mempunyai kasus yang dimana ada beberapa list nomor telepon dan kita ingin
meng-integrasikan aplikasi android kita ke whatsapp. Contoh kasus pada contoh tutorial ini
adalah user meng-inputkan suatu nomor maka pada saat button “open whatsapp” di klik
maka akan langsung membuka aplikasi whatsapp.

Pertama,

Buat activity bernama WhatsappActivity dengan pilihan empty activity.

Kedua,

Pada layout activity_whatsapp.xml isi dengan 2 komponen widget. 1 widget edittext untuk
user meng-inputkan nomor handphone, dan 1 widget button untuk melakukan aksinya. Untuk
kodenya seperti berikut :

1 <?xml version="1.0" encoding="utf-8"?>

2 <LinearLayout

3     xmlns:android="http://schemas.android.com/apk/res/android"

2019 Mobile Programming Android (Lab)


7 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
4
    xmlns:app="http://schemas.android.com/apk/res-auto"
5
    xmlns:tools="http://schemas.android.com/tools"
6
    android:layout_width="match_parent"
7
    android:layout_height="match_parent"
8
    android:padding="16dp"
9
    android:orientation="vertical"
1
0     tools:context=".openwhatsapp.WhatsappActivity">

1  
1
    <android.support.design.widget.TextInputLayout
1
2         android:layout_width="match_parent"

1         android:layout_height="wrap_content">
3
 
1
        <EditText
4
            android:id="@+id/etNomorHp"
1
5             android:layout_width="match_parent"

1             android:layout_height="wrap_content"
6
            android:hint="@string/title_masukan_nomor_hp"
1
7             android:fontFamily="@font/notosanskr_regular"

1             android:textSize="16sp"
8
            android:inputType="number"/>
1
9     </android.support.design.widget.TextInputLayout>

2  
0
    <Button
2
        android:id="@+id/btnOpenWhatsapp"
1
        android:layout_width="match_parent"
2
2         android:layout_height="wrap_content"

2         android:layout_marginTop="16dp"
3
        android:textSize="18sp"
2
4         android:textAllCaps="false"

2         android:textColor="@android:color/white"
5

2019 Mobile Programming Android (Lab)


8 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
2
6

2
7

2
8

2
9

3
0
        android:background="#25D366"
3
1         android:fontFamily="@font/notosanskr_regular"

3         android:text="@string/title_buka_whatsapp"/>
2
</LinearLayout>
3
3

3
4

3
5

3
6

3
7

Ketiga,

Setelah kita sudah membuat layoutnya, sekarang buka WhatsappActivity lalu definisikan
komponen-komponen widget yang sudah dibuat tadi.

1 @BindView(R.id.etNomorHp)

2 EditText etNomorHp;

3 @BindView(R.id.btnOpenWhatsapp)

4 Button btnOpenWhatsapp;

6 private Unbinder unbinder;

2019 Mobile Programming Android (Lab)


9 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Keempat,

Buatlah sebuah fungsi bernama openWhatsapp dan beri parameter String nomor
handphone. Nomor Handphone ini untuk kebutuhan API Whatsapp. Untuk kode fungsi
openWhatsappnya seperti berikut :

1 private void openWhatsApp(String number) {

2         String url = "https://api.whatsapp.com/send?phone=" + number;

3         Intent i = new Intent(Intent.ACTION_VIEW);

4         i.setData(Uri.parse(url));

5         startActivity(i);

6     }

Kelima,

Pada button open whatsapp yang sudah dibuat tadi sekarang kita membuat action kliknya
pada button. Untuk kodenya seperti berikut :

1
btnOpenWhatsapp.setOnClickListener(new View.OnClickListener() {
2
            @Override
3
            public void onClick(View v) {
4
                /*
5
                substring(1) ini artinya kita akan menghapus karakter pertama dari
6 sebuah string.

7                 Misalnya user meng-inputkan 0858 maka angka pertama dari 0858


yaitu 0 akan dihapus,
8
                karena kebutuhan kita titdak perlu memakai angka 0.
9
                 */
1
0                 String nomorHp = etNomorHp.getText().toString().substring(1);

1                 if (nomorHp.isEmpty()) {
1
                    Toast.makeText(WhatsappActivity.this,
1 getString(R.string.error_message_form_empty),
2
                            Toast.LENGTH_SHORT).show();
1

2019 Mobile Programming Android (Lab)


10 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
3

1
4                 } else {

1                     /*
5
                    Setelah kebutuhan nomor kita sudah di sortir. Maksudnya yang
1 asalnya user input
6
                    08586078xxxx maka jadi 8586078xxxxx dan disini kita
1 tambahkan +62 didepan nomor yang
7
                    user sudah input. Karena kebutuhan dari api Whatsapp harus
1 memakai kode negara.
8
                     */
1
9                     openWhatsApp("+62" + nomorHp);

2                 }
0
            }
2
1         });

2
2

Untuk full source code WhatsappActivity sebagai berikut :

1 public class WhatsappActivity extends AppCompatActivity {

2  

3     @BindView(R.id.etNomorHp)

4     EditText etNomorHp;

5     @BindView(R.id.btnOpenWhatsapp)

6     Button btnOpenWhatsapp;

7  

8     private Unbinder unbinder;

9  

1     @Override
0
    protected void onCreate(Bundle savedInstanceState) {
1
        super.onCreate(savedInstanceState);
1
        setContentView(R.layout.activity_whatsapp);
1
2  

2019 Mobile Programming Android (Lab)


11 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
1         unbinder = ButterKnife.bind(this);
3
 
1
4         btnOpenWhatsapp.setOnClickListener(new View.OnClickListener() {

1             @Override
5
            public void onClick(View v) {
1
                /*
6
                substring(1) ini artinya kita akan menghapus karakter pertama dari
1
sebuah string.
7
                Misalnya user meng-inputkan 0858 maka angka pertama dari 0858
1
yaitu 0 akan dihapus,
8
                karena kebutuhan kita titdak perlu memakai angka 0.
1
9                  */

2                 String nomorHp = etNomorHp.getText().toString().substring(1);


0
                if (nomorHp.isEmpty()) {
2
1                     Toast.makeText(WhatsappActivity.this,
getString(R.string.error_message_form_empty),
2
2                             Toast.LENGTH_SHORT).show();

2                 } else {
3
                    /*
2
4                     Setelah kebutuhan nomor kita sudah di sortir. Maksudnya yang
asalnya user input
2
5                     08586078xxxx maka jadi 8586078xxxxx dan disini kita
tambahkan +62 didepan nomor yang
2
6                     user sudah input. Karena kebutuhan dari api Whatsapp harus
memakai kode negara.
2
7                      */

2                     openWhatsApp("+62" + nomorHp);
8
                }
2
            }
9
        });
3
0     }

3  
1
    /*
3

2019 Mobile Programming Android (Lab)


12 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
2

3
3

3
4

3
5

3
6

3     Fungsi untuk membuka aplikasi whatsapp menggunakan API yang


7 disediakan.

3      */
8
    private void openWhatsApp(String number) {
3
9         String url = "https://api.whatsapp.com/send?phone=" + number;

4         Intent i = new Intent(Intent.ACTION_VIEW);


0
        i.setData(Uri.parse(url));
4
1         startActivity(i);

4     }
2
 
4
    @Override
3
    protected void onDestroy() {
4
4         super.onDestroy();

4         unbinder.unbind();
5
    }
4
6 }

4
7

4
8

4
9

5
0

5
1

2019 Mobile Programming Android (Lab)


13 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
5
2

5
3

5
4

5
5

5
6

Keenam,

Silahkan jalankan aplikasi.

2019 Mobile Programming Android (Lab)


14 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Daftar Pustaka
1. https://developer.android.com/studio/publish/versioning?hl=id

2. https://farizdotid.com/cara-membuat-fungsi-open-whatsapp-di-aplikasi-android/

2019 Mobile Programming Android (Lab)


15 Adi Hartanto, ST., M.Kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id

Anda mungkin juga menyukai