Kali ini kita akan membahas tentang validasi pada android EditText untuk login. Bagi yang belum membaca tentang bagaimana cara login di android silakan kunjungi postingan saya yang ini 


Oke lanjut, sekarang buka project android teman-teman semua. Anggap kita sudah membuat activity dan viewnya.

Kita hanya tinggal menambahkan function validasi() pada click Listener button login nya.

Berikut adalah codingannya : 


 private boolean validasi() {  
     // Validasi Username Jika Value Kosong  
     if (username.getText().toString().isEmpty()){  
       username.setError("Username tidak boleh kosong.");  
       return false;  
     }  
     // Validasi Password Jika Value Kosong  
     if (password.getText().toString().isEmpty()){  
       password.setError("Username tidak boleh kosong.");  
       return false;  
     }  
     return true;  
   }  

Dan berikut adalah full code nya :



 package com.panduseptian.aplikasilogin;  
 import android.content.Intent;  
 import android.support.v7.app.AppCompatActivity;  
 import android.os.Bundle;  
 import android.view.View;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.Toast;  
 import com.android.volley.AuthFailureError;  
 import com.android.volley.Request;  
 import com.android.volley.RequestQueue;  
 import com.android.volley.Response;  
 import com.android.volley.VolleyError;  
 import com.android.volley.toolbox.StringRequest;  
 import com.android.volley.toolbox.Volley;  
 import org.json.JSONException;  
 import org.json.JSONObject;  
 import java.util.HashMap;  
 import java.util.Map;  
 public class MainActivity extends AppCompatActivity {  
   // Parameter sesuai dengan tipe data  
   EditText username;  
   EditText password;  
   Button button;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     // Deklarasi komponen view  
     username = (EditText) findViewById(R.id.txt_username);  
     password = (EditText) findViewById(R.id.txt_password);  
     button = (Button) findViewById(R.id.btn_login);  
     // Setting button ketika di klik  
     button.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View view) {  
         boolean status = validasi();  
         if (status == true){  
           // Panggil void sendLogin()  
           sendLogin();  
         }  
       }  
     });  
   }  
   private boolean validasi() {  
     // Validasi Username Jika Value Kosong  
     if (username.getText().toString().isEmpty()){  
       username.setError("Username tidak boleh kosong.");  
       return false;  
     }  
     // Validasi Password Jika Value Kosong  
     if (password.getText().toString().isEmpty()){  
       password.setError("Password tidak boleh kosong.");  
       return false;  
     }  
     return true;  
   }  
   private void sendLogin() {  
     // Setting POST request ke server  
     StringRequest loginRequest = new StringRequest(Request.Method.POST, "http://192.168.56.1/server/login.php",  
         new Response.Listener<String>() {  
           @Override  
           public void onResponse(String response) {  
             // Handle response dari server ketika sukses dengan mengkonvert menjadi JSON  
             try {  
               JSONObject json = new JSONObject(response);  
               // Mengambil variable status pada response  
               String status = json.getString("status");  
               if(status.equals("success")){  
                 // Jika Login Sukses Maka pindah ke activity lain.  
                 Intent intent = new Intent(MainActivity.this, HomeActivity.class);  
                 startActivity(intent);  
                 finish();  
               }else{  
                 // Jika Login Gagal Maka mengeluarkan Toast dengan message.  
                 Toast.makeText(getApplicationContext(), "Username & Password Salah", Toast.LENGTH_LONG).show();  
               }  
             } catch (JSONException e) {  
               e.printStackTrace();  
             }  
           }  
         },  
         new Response.ErrorListener() {  
           @Override  
           public void onErrorResponse(VolleyError error) {  
             // Handle response dari server ketika gagal  
             Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();  
           }  
         }  
     ){  
       @Override  
       protected Map<String, String> getParams() throws AuthFailureError {  
         HashMap<String, String> params = new HashMap<>();  
         params.put("username", username.getText().toString());  
         params.put("password", password.getText().toString());  
         return params;  
       }  
     };  
     // Buat antrian request pada cache android  
     RequestQueue requestQueue = Volley.newRequestQueue(this);  
     // Tambahkan Request pada antrian request  
     requestQueue.add(loginRequest);  
   }  
 }  

Dan hasil akhirnya adalah seperti gambar dibawah ini :



Oke, cukup sekian sharing singkatnya. Semoga bermanfaat dan jika ada pertanyaan silakan di kolom comment ya. terima kasih.

Selamat pagi/siang/malam para programmer dan developer android. Pada kesempatan kali ini saya akan sharing tentang tutorial membuat aplikasi login di android dengan Volley Sebagai android librarynya dan PHP MYSQL untuk servernya. Oke langsung aja, pertama yang harus disiapkan adalah :

  1. Android Studio. Bisa di download di sini
  2. XAMPP untuk PHP & MYSQL nya.
  3. HP android / Android Emulator untuk run projectnya.
  4. Kopi, diperlukan jika kalian pusing ngoding. heheheh

Setelah semua perlengkapan siap, langkah pertama adalah install android studio dan xampp nya.
Kalo semua sudah terinstall, buat folder "server" di c:/xampp/htdocs.

Sekarang kalian buat database dengan nama "android"  lalu buat tabel "user" dengan field seperti di gambar :


lalu save tabelnya.

Sekarang kita isi record di di tabel usernya

id : 1
username : admin
password : 21232f297a57a5a743894a0e4a801fc3

21232f297a57a5a743894a0e4a801fc3 adalah admin yang sudah di encrypt menjadi MD5.

Berikut gambarnya :








Database sudah selesai, sekarang kita lanjut ke codingan PHP nya.

Buat file login.php di folder server yang sudah kita buat tadi.

Lalu masukan code berikut.


 <?php  
 $servername = "localhost";  
 $username = "root";  
 $password = "";  
 $dbname = "android";  
 // Create connection  
 $conn = new mysqli($servername, $username, $password, $dbname);  
 // Check connection  
 if ($conn->connect_error) {  
   die("Connection failed: " . $conn->connect_error);  
 }   
 $sql = "SELECT * FROM user WHERE username = ".$_POST['username']."   
 AND ".md5($_POST['password']);  
 $result = $conn->query($sql);  
 if ($result->num_rows > 0) {  
   // output data of each row  
   while($row = $result->fetch_assoc()) {  
     echo json_encode(Array('status' => 'success'));  
   }  
 } else {  
   echo json_encode(Array('status' => 'failed'));  
 }  
 $conn->close();  
 ?>  

Oke server sudah siap. sekarang waktunya kita ke aplikasi androidnya. Sebelum melanjutkan kalo pusing silakan diminum dulu kopinya yang tadi udah disiapin heheheheh.

Kalo udah minum kita lanjut, sekarang buka aplikasi android studionya.

Berikut Adalah Step nya :

Setting Nama Aplikasi Dan Package

Set minimum SDK

Pilih Main Activity

Setting Nama Activity Main

Tunggu Sampai Build Selesai

Setelah Build Selesai.

Selanjutnya buka build.gradle untuk memasukan dependencies, berikut adalah dependenciesnya :

compile 'com.android.support:design:24.2.1' => untuk material design
compile 'com.android.volley:volley:1.0.0' => Untuk volley library



Sekarang kita setting permission INTERNET pada AndroidManifest.XML



Settingan awal sudah complete sekarang kita ke inti programnya. Simak terus ya.
Sebelum masuk kedalam intinya kita buat sebuah activity baru untuk handle request ketika sukses login.

Berikut Caranya :






Seletalh sudah membuat activity baru kita buka folder res/layout/activity_main.xml disini kita akan membuat tampilan login dari aplikasi kita.

Berikut codingannya :


 <?xml version="1.0" encoding="utf-8"?>  
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:id="@+id/activity_main"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   tools:context="com.panduseptian.aplikasilogin.MainActivity">  
   <LinearLayout  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content"  
     android:layout_centerInParent="true"  
     android:padding="20dp"  
     android:orientation="vertical">  
     <android.support.design.widget.TextInputLayout  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content">  
       <EditText  
         android:id="@+id/txt_username"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:hint="Username"  
         android:inputType="text"/>  
     </android.support.design.widget.TextInputLayout>  
     <android.support.design.widget.TextInputLayout  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content">  
       <EditText  
         android:id="@+id/txt_password"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:hint="Password"  
         android:inputType="textPassword"/>  
     </android.support.design.widget.TextInputLayout>  
     <Button  
       android:id="@+id/btn_login"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_marginTop="20dp"  
       android:background="@color/colorPrimary"  
       android:textColor="#fff"  
       android:text="Login"/>  
   </LinearLayout>  
 </RelativeLayout>  


Sekarang kita menuju ke file javanya, buka folder java/com.namapackage/MainActivity . Masukan codingannya :


 package com.panduseptian.aplikasilogin;  
 import android.content.Intent;  
 import android.support.v7.app.AppCompatActivity;  
 import android.os.Bundle;  
 import android.view.View;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.Toast;  
 import com.android.volley.AuthFailureError;  
 import com.android.volley.Request;  
 import com.android.volley.RequestQueue;  
 import com.android.volley.Response;  
 import com.android.volley.VolleyError;  
 import com.android.volley.toolbox.StringRequest;  
 import com.android.volley.toolbox.Volley;  
 import org.json.JSONException;  
 import org.json.JSONObject;  
 import java.util.HashMap;  
 import java.util.Map;  
 public class MainActivity extends AppCompatActivity {  
   // Parameter sesuai dengan tipe data  
   EditText username;  
   EditText password;  
   Button button;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     // Deklarasi komponen view  
     username = (EditText) findViewById(R.id.txt_username);  
     password = (EditText) findViewById(R.id.txt_password);  
     button = (Button) findViewById(R.id.btn_login);  
     // Setting button ketika di klik  
     button.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View view) {  
         // Panggil void sendLogin()  
         sendLogin();  
       }  
     });  
   }  
   private void sendLogin() {  
     // Setting POST request ke server  
     StringRequest loginRequest = new StringRequest(Request.Method.POST, "http://192.168.56.1/server/login.php",  
         new Response.Listener<String>() {  
           @Override  
           public void onResponse(String response) {  
             // Handle response dari server ketika sukses dengan mengkonvert menjadi JSON  
             try {  
               JSONObject json = new JSONObject(response);  
               // Mengambil variable status pada response  
               String status = json.getString("status");  
               if(status.equals("success")){  
                 // Jika Login Sukses Maka pindah ke activity lain.  
                 Intent intent = new Intent(MainActivity.this, HomeActivity.class);  
                 startActivity(intent);  
                 finish();  
               }else{  
                 // Jika Login Gagal Maka mengeluarkan Toast dengan message.  
                 Toast.makeText(getApplicationContext(), "Username & Password Salah", Toast.LENGTH_LONG).show();  
               }  
             } catch (JSONException e) {  
               e.printStackTrace();  
             }  
           }  
         },  
         new Response.ErrorListener() {  
           @Override  
           public void onErrorResponse(VolleyError error) {  
             // Handle response dari server ketika gagal  
             Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();  
           }  
         }  
     ){  
       @Override  
       protected Map<String, String> getParams() throws AuthFailureError {  
         HashMap<String, String> params = new HashMap<>();  
         params.put("username", username.getText().toString());  
         params.put("password", password.getText().toString());  
         return params;  
       }  
     };  
     // Buat antrian request pada cache android  
     RequestQueue requestQueue = Volley.newRequestQueue(this);  
     // Tambahkan Request pada antrian request  
     requestQueue.add(loginRequest);  
   }  
 }  

Untuk url nya diubah menjadi url local kalian masing-masing. dan pastikan android teman-temang dengan server local dalam satu jaringan. agar bisa terkoneksi dengan baik.

Setelah semua sudah selesai run/build program :

Run program ke android/emulator via usb debugging

Build aplikasi menjadi APK

Show explorer, lalu copy ke android kalian


Sekian tutorial yang bisa saya bagikan ke teman-teman. semoga bermanfaat.
Jika ada pertanyaan silakan comment di bawah. Terima Kasih.


API (Application Programming Interface) adalah sekumpulan perintah, fungsi, danprotokol yang dapat digunakan oleh programmer saat membangun perangkat lunakuntuk sistem operasi tertentu. API memungkinkan programmer untuk menggunakanfungsi standar untuk berinteraksi dengan sistem operasi lain. -Wikipedia

API sudah banyak digunakan oleh banyak sekali programmer di dunia karena API bisa digunakan oleh Sistem Operasi dan bahasa pemograman yang berbeda.

Berikut adalah cara kerja API




Keuntungan memakai API adalah : 

Portabilitas. 

Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter- install API tersebut. Sedangkan system call berbeda antar sistem operasi, dengan catatan dalam implementasinya mungkin saja berbeda.

Lebih Mudah Dimengerti. 

API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan.

Integrasi Yang Lebih Luas.

Ketika facebook membuat API, sangat membantu para developer untuk bisa mengakses Profile, Apps, bahkan bisa melakukan posting melalu aplikasi diluar facebook.


Sekarang sudah banyak bahasa pemograman yang mendukung pembuatan API itu sendiri. So buat kalian para developer, banyak cara untuk membuat API dan buat API kalian sesuai dengan bahasa pemograman yang anda mintai.


Sekian tulisan kali ini. Semoga bermanfaat untuk teman-teman semua.


Kali ini penulis akan sharing tentang framework terbaik untuk para developer PHP. Tidak bisa dipungkiri bahwa PHP adalah bahasa pemograman server-side scripting yang paling banyak digunakan oleh para developer selain mudah PHP memiliki banyak komunitas dalam pengembangannya.

Berbicara soal framework PHP, framework adalah sebuah kerangka kerja. Kerangka kerja dimana dapat memudahkan pekerjaan kita. Jika dihubungkan dengan PHP ya tentu saja mempermudah kita dalam membuat aplikasi menggunakan bahasa pemograman PHP.
Dan berikut adalah 10 PHP framework terbaik yang banyak di pakai oleh para developer :

Laravel

Kelebihan : 
  • Sintak lebih mudah dipahami karena lebih simpel
  • Full MVC
Kekurangan :
  • Framework yang tergolong baru sehingga sedikit dokumentasi dan susah dipahami bagi pemula

Symfony

Kelebihan :
  • Dukungan terhadap AJAX, ORM.
  • Kompatibel dengan berbagai macam database.
  • Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir mendekati CMS. Sehingga ada yang mengatakan ”Symphony is a CMS with a heart of a framework.” ini menjadi kelebihan sekaligus kekurangan.
Kekurangan : 
  • Tidak mendukung PHP4.
  • Relatif butuh waktu lama untuk mengerti framework ini.
  • Instalasi dan konfigurasinya cukup rumit.

CodeIgniter


Kelebihan :
  • Fungsi-fungsi pendukung yang cukup lengkap
  • Mendukung PHP4 dan PHP5
  • Memakai konsep MVC (Model View Controller)
  • Performa dalam mengeksekusi sangat cepat
  • Dokumentasi lengkap, friendly dan didukung oleh forum, wiki, dan komunitas yang besar
  • Mudah dipelajari bagi pemula
Kekurangan :
  • Tidak support AJAX dan ORM
  • Masih banyak kelonggaran dalam hal coding, misalnya penamaan file dan membebaskan programmer untuk melanggar aturan MVC
  • Karena kelonggaran tersebut, CodeIgniter Tidak ditujukan untuk pembuatan web dengan skala besar (enterprise) walaupun tersedia banyak library, karena pengembangan akan semakin sulit dilakukan.
YII

Kelebihan : 
  • framework yang sangat ringan dan dilengkapi dengan solusi caching yang memuaskan.
  • Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas-tinggi, seperti portal, manajemen konten (CMS), sistem e-commerce, dll.
  • Yii didokumentasikan dengan jelas, efisien, dan kaya-fitur.
  • Cocok untuk pengembangan aplikasi skala enterprise.
Kekurangan : 
  • Tidak mendukung PHP versi 4

Berikut adalah PHP framework terbaik yang banyak digunakan oleh para developer.
Sekian postingan kali ini, share ke temen kalian dan jika ada tambahan framework menurut versi kalian bisa tulis di kolom comment.

Pada tulisan sebelumnya kita sudah membahas tentang arsitektur android. Kali ini penulis akan sharing tentang cara kerja dari arsitektur android khususnya bagi para programmer / developer. Oke, langsung saja kita bahas bersama-sama.

Komponen Aplikasi

Fitur penting android adalah bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada [developer.android.com].

Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian itu. Oleh karenanya android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan.

- Activities

Activity merupakan bagian yang paling penting dalam sebuah aplikasi, karena Activity menyajikan tampilan visual program yang sedang digunakan oleh pengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan.

Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali. Memory Manager android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut.

Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009]:

  1. Active, setiap activity yang berada ditumpukan paling atas, maka dia akan terlihat, terfokus, dan menerima masukkan dari pengguna. Android akan berusaha untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara, bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika diperlukan. Ketika activity sedang aktif, maka yang lainnya akan dihentikan sementara.
  2. Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Ketika activity dalam keadaan paused, dia terlihat active namun tidak dapat menerima masukkan dari pengguna. Dalam kasus ekstrim, android akan menghentikan activity dalam keadaan paused ini, untuk menunjang sumber daya bagi activity yang sedang aktif.
  3. Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih. Oleh karenanya ketika suatu activity dalam kondisi stopped maka perlu disimpan data dan kondisi antarmuka saat itu. Karena ketika activity telah keluar atau ditutup, maka dia akan menjadi inactive.
  4. Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali.
Kondisi transisi ini sepenuhnya ditangani oleh manajer memori android. Android akan memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup.

- Services

Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak.
- Intents

Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh Intents tersebut.

- Broadcast Receivers

Broadcast Receivers merupakan komponen yang sebenarnya tidak melakukan apa-apa kecuali menerima dan bereaksi menyampaikan pemberitahuan. Sebagian besar Broadcast berasal dari sistem misalnya, Batre sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Sama halnya dengan service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna.

- Content Providers
Content Providers digunakan untuk mengelola dan berbagi database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya.


Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada android [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009] :


  1. Foreground Activity, Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap efektif walaupun tidak terlihat. Aplikasi dengan tipe ini pasti mempertimbangkan siklus hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar.
  2. Background Service, Aplikasi yang memiliki interaksi terbatas dengan user, selain dari pengaturan konfigurasi, semua dari prosesnya tidak tidak tampak pada layar. Contohnya aplikasi penyaringan panggilan atau sms auto respon.
  3. Intermittent Activity, Aplikasi yang masih membutuhkan beberapa masukkan dari pengguna, namun sebagian sangat efektif jika dijalankan di background dan jika diperlukan akan memberi tahu pengguna tentang kondisi tertentu. Contohnya pemutar musik.


Untuk aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi tersebut apalagi aplikasi memiliki ciri-ciri dari semua kategori. Oleh karenanya perlu pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori aplikasi yang sesuai.

Siklus Hidup Aplikasi Android

Siklus hidup aplikasi android dikelola oleh sistem, berdasarkan kebutuhan pengguna, sumberdaya yang tersedia, dan sebagainya. Misalnya Pengguna ingin menjalankan browser web, pada akhirnya sistem yang akan menentukan menjalankan aplikasi. Sistem sangat berperan dalam menentukan apakah aplikasi dijalankan, dihentikan sementara, atau dihentikan sama sekali. Jika pengguna ketika itu sedang menjalankan sebuah Activity, maka sistem akan memberikan perioritas utama untuk aplikasi yang tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah akan ditutup. [Sayed . Y. Hashimi and Satya Komatineni, Pro Android, Apress, USA 2009]

Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori pada aplikasi. Selain itu juga android dapat mengontrol aplikasi mana yang layak menjadi prioritas utama. Karenanya android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Perlu adanya penanganan terhadap setiap kondisi agar aplikasi menjadi stabil.

Sebagai contoh dibawah ini skema audio pada android:


Sekian pembahasan tentang cara kerja arsitektur android. Semoga bisa bermanfaat untuk pembaca. Di tulisan berikutnya kita akan membahas dan mulai coding aplikasi android. Pantengin terus blognya.

Jangan lupa share jika tulisan ini bermanfaat. terima kasih.




Sekarang penulis akan bahas tentang Material Design buatan Google, jadi Material Design adalah bahasa desain yang dikembangkan Google dan diumumkan pada konferensi Google I/O pada 25 Juni 2014. Memperluas pada motif “kartu” yang pertama kali terlihat pada Google Now, adalah desain dengan peningkatan penggunaan layout berbasis grid, animasi dan transisi responsif, padding, dan efek kedalaman seperti pencahayaan dan bayangan. Desainer Matías Duarte menjelaskan bahwa “tidak seperti kertas nyata, Desain Material kami dapat memperluas dan melakukan reformasi yang cerdas. Material memiliki permukaan fisik dan tepi. Jahitan dan bayangan memberikan makna tentang apa yang dapat Anda sentuh.” Google menyatakan bahwa bahasa desain baru mereka didasarkan pada kertas dan tinta.

Desain material dapat digunakan di Android versi 2.1 dan setelahnya melalui v7 appcompat library, yang digunakan pada hampir semua perangkat Android yang dibuat setelah tahun 2009. Desain Material secara bertahap akan meluas ke seluruh berbagai produk web dan mobile Google, memberikan pengalaman yang konsisten di semua platform dan aplikasi. Google juga telah merilis antarmuka pemrograman aplikasi (API) untuk pengembang pihak ketiga untuk menggabungkan bahasa desain ke dalam aplikasi mereka.

Pada 2015, Desain Material yang tergabung dalam sebagian besar aplikasi mobile Google untuk Android termasuk Gmail, YouTube, Google Drive, Google Docs, Google Sheets,Google Slides, Google Maps, Inbox, dan semua aplikasi Google Play, dan sebagian kecil di Chrome Browser dan Google Keep; serta dalam antarmuka web desktop Google Drive, Docs, Sheets, Slide dan Inbox.



Kabar gembiranya, sekarang kita udah bisa memakai material design buatan google ini, baik di aplikasi android, iphone , maupun website. Sudah banyak framework dan library yang mengusuk tema material design.



Berikut listnya :

CSS Framework (Website)
  1. http://materializecss.com/
  2. http://www.material-ui.com/
  3. https://www.muicss.com/
  4. https://getmdl.io/

Android adalah sistem operasi berbasis Linux yang dirancang untuk perangkat bergerak layar sentuh seperti telepon pintar dan komputer tablet. Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler. Ponsel Android pertama mulai dijual pada bulan Oktober 2008. - Source Wikipedia


Kali ini penulis akan membahas arsitektur Sistem Operasi Android. Buat kalian yang ingin mempelajari pemograman android wajib hukumnya untuk mengetahui arsitektur android.




Seperti gambar di atas, berikut bagian dari arsitektur Android dari yang paling dalam hingga paling luar:

– Linux Kernel
– Library
– Android Runtime
– Application Framework
– Application

Linux Kernel

Di lapisan terbawah Arsitektur Android terdapat Linux Kernel. Lapisan ini tidak benar benar berinteraksi dengan pengguna maupun developer, tapi lapisan ini merupakan jantung dari seluruh sistem di Android karena lapisan inilah yang memberikan fungsi-fungsi berikut pada sistem Android:
  1. Abstraksi Hardware
  2. Program Manajemen Memory
  3. Pengaturan Sekuritas
  4. Manajemen Energi Software ( Baterai )
  5. Driver (Driver adalah program yang mengontrol hardware)
  6. Network Stack
Seiring berkembangnya zaman android kernel pun mengalami perkembangan yang lumayan sangat cepat sejak rilis resminya pada tahun 2007. Berikut adalah versi android sampai saat ini :
  1.  Android 1.5 (Cupcake)
  2.  Android 1.6 (Donut)
  3.  Android 2.0-2.1 (Eclair)
  4.  Android 2.2 (Froyo)
  5.  Android 2.3–2.3.2 (Gingerbread)
  6.  Android 2.3.3–2.3.7 (Gingerbread)
  7.  Android 3.1 (Honeycomb)
  8.  Android 3.2 (Honeycomb)
  9. Android 4.0.3–4.0.4 (Ice Cream Sandwich)
  10. Android 4.1.x (Jelly Bean)
  11. Android 4.2.x (Jelly Bean)
  12. Android 4.3.x (Jelly Bean)
  13. Android 4.4.x (KitKat)
  14. Android 5.x (Lollipop)
  15. Android 6.0 (Marshmallow)
  16. Android 7.0 (Nougat)
Library

Library adalah sekumpulan instruksi untuk mengarahkan perangkat Android kita dalam menangani berbagai tipe data. Berikut adalah beberapa library : 
  1. Media Library untuk memutar dan merekam berbagai macam format audio dan video.
  2. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
  3. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
  4. SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
  5. SSl dan WebKit untuk browser dan keamanan internet.
Library tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development Toolkit (NDK).

Android Runtime

Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:

• Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android.
• Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. [Nicolas Gramlich, Andbook, anddev.org]

Application Framework

Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello Android 2nd Edition]:


1. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
2. Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.
3. Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.
4. Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada.
5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.

Application Layer

Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi.
Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama.


Mungkin cukup sekian penjelasan tentang arstitektur android. setelah postingan ini saya akan membagikan cara kerja arsitektur android khsusunya bagi para developer dan programmer android.

Sekian dan terima kasih sudah mau membaca tulisan ini.

Pandu Septian Gumilar

{picture#http://kekirian.com/wp-content/uploads/2015/12/10419440_814838468537519_2081836625630750537_n-150x150.jpg} YOUR_PROFILE_DESCRIPTION {facebook#YOUR_SOCIAL_PROFILE_URL} {twitter#YOUR_SOCIAL_PROFILE_URL} {google#YOUR_SOCIAL_PROFILE_URL} {pinterest#YOUR_SOCIAL_PROFILE_URL} {youtube#YOUR_SOCIAL_PROFILE_URL} {instagram#YOUR_SOCIAL_PROFILE_URL}
Powered by Blogger.