Monday, October 27, 2014

Tips: Penanganan Tipe Data String di Android

Tips berikut ini mungkin bermanfaat bagi pemula developer Android (seperti saya :)) Untuk membandingkan string di bahasa pemrograman umumnya, kita menggunakan tanda sama dengan (equal sign). Namun di bahasa Java, equal sign digunakan untuk membandingkan object, bukan untuk membandingkan contentnya. Java tidak akan memberikan error karena secara syntax tidak ada error, namun output yang dihasilkan tidaklah sesuai dengan apa yang kita inginkan. Berikut ini adalah snippet code, dimana saya mengambil parameter yang dipassing dari Activity sebelumnya, yang akan saya bandingkan dengan string tertentu.

Intent in = getIntent();
String kelas = in.getStringExtra(“kelas”);
String cek_kelas = kelas.substring(0,1);
cek_kelas = cek_kelas.trim();
if (cek_kelas.equals(“1″)) {
…..


Jika kita perhatikan pada baris terakhir, method equals adalah cara yang tepat yang dapat digunakan untuk pengecekan string, jadi bukan dengan menggunakan tanda = .

Oleh: Wahyu Kurniawan

Tips: Membuat Spinner dengan Array

Tips kali ini berbicara tentang object spinner yang ada di Android. Object ini seperti selection list di HTML dan drop down di program desktop, dimana mampu menyimpan lebih dari satu nilai dan biasanya digunakan untuk pilihan. Ada beberapa cara yang bisa dilakukan, namun yang akan saya informasikan disini adalah cara yang paling sederhana, yaitu dengan memasukkan nilai ke dalam file xml. Tentu saja, dengan cara seperti ini, nilai yang terdapat dalam spinner menjadi kurang dinamis. Pertama-tama, kita edit file string.xml di folder /res/values untuk memasukkan nilai array nya:

<string-array name=”type”>     
<item>1</item>     
<item>2<item>
</string-array>


Selanjutnya, pada file xml layoutnya, kita akan sisipkan object spinnernya:

<Spinner:
android:id=”@+id/spinner_type”                   
android:entries=”@array/type”
/>


Dan berikut adalah program di dalam class nya:

spinner_text = (Spinner) findViewById (R.id.spinner_type)


yang biasanya diletakkan pada event onCreate

Demikianlah cara sederhana untuk menggunakan object spinner dengan nilai yang sudah didefinisikan terlebih dahulu, semoga bermanfaat buat kita semua.

Oleh: Wahyu Kurniawan

Tips: Membuat button Add New Record di bawah ListView

Terkadang dalam sebuah activity sebuah ListView tidak berdiri sendiri saja melainkan ada tombol/button yang dapat digunakan untuk menambah data yang baru. Namun posisi button ini seringkali tertimpa oleh ListView sendiri, jadi jika kita tidak benar dalam menyusun layoutnya, tombol kita nantinya akan tertutup oleh ListViewnya. Kita dapat memodifikasi file xml dari activity yang aktif menjadi seperti ini:

<ListView     
android:layout_width=”fill_parent”     
android:layout_height=”0dp”     
android:layout_weight:”1″ />


Apabila kita sudah memodifikasi settingan ListView, tombol button kita nantinya akan berada di bagian bawah/footer dari ListView yang sedang aktif. Oleh: Wahyu Kurniawan

Tips: Menampilkan pesan jika ListView empty

Dalam tips kali ini, kita akan mencoba membuat sebuah pesan, apabila object ListView kita empty. Object ListView biasanya digunakan untuk menampilkan record yang diambil dari database, ataupun dari data array. Berikut adalah contoh yang sangat sederhana yaitu dengan perintah Toast, yang dapat digunakan untuk menampilkan pesan singkat yang menginformasikan kepada user jika ListView dalam keadaan kosong / empty.

Dalam salah satu project saya, saya menggunakan ListView untuk menampung data yang dikirimkan dalam format JSON melalui pemanggilan fungsi API. Apabila JSON gagal melakukan parsing teks, otomatis ListView dalam keadaan kosong, sehingga jika tidak ada keterangan, hal ini akan membingungkan user. Untuk memeriksa ListView empty atau tidak, kita bisa menggunakan perintah berikut:

if (adapter.getCount()==0) {   
Toast.makeText(YourActivity.this,”No Record found”,Toast.LENGTH_SHORT).show();
}


Tentunya pesan yang ditampilkan hanya semacam pop up singkat yang segera fading. Namun dengan pesan tersebut, user akan tahu bahwa ListView yang seharusnya menampilkan data saat itu dalam keadaan kosong.

Oleh: Wahyu Kurniawan

Tips: Setting Activity yang jalan pertama kali

Untuk tips Android kali ini, saya akan berbicara tentang bagaimana cara mensetting activity Android yang akan dijalankan pertama kali, saat sebuah aplikasi dilaunching. Kita tinggal melihat di AndroidManifest.xml dan mengedit bagian-bagian berikut ini:

<activity android:label=”@string/app_name” android:name=”.DashboardActivity”>
<intent-filter> <action android:name=”android.intent.action.MAIN”>
<category android:name=”android.intent.category.LAUNCHER”>
</intent-filter>
</activity>


tinggal kita ubah string .DashboardActivity menjadi activity yang akan kita jalankan pertama kali. Semoga bermanfaat.

Oleh: Wahyu Kurniawan

Tips: Membuat Global Konstanta

Saat kita akan membuat project Android, terkadang kita membutuhkan suatu nilai yang dapat dikenali di semua class yang ada di project kita. Saya akan memberikan contoh kasus. Dalam salah satu project saya, saya membutuhkan satu alamat URL yang nantinya dapat saya ubah-ubah sesuai kebutuhan. Nah, jika harus mengedit satu persatu di dalam seluruh class, selain memakan waktu, juga kemungkinan salah ketik lebih besar. 

Oleh karenanya, saya tinggal membuat satu class baru yang saya namakan Constant.class yang berisi nilai-nilai yang nantinya digunakan dalam seluruh class saya. 
Berikut adalah snippet code nya: 


public class Constants { 
public static final String alamat = “192.168.0.1″; 
} 

Lalu cara menggunakannya di class yang berbeda adalah sebagai berikut: 


private static final String URL = “http://”+Constants.alamat+”…”; 


Dengan cara ini, lebih memudahkan buat kita untuk mengganti-ganti nilai alamat apabila memang dibutuhkan. Demikian tips untuk kali ini, semoga bermanfaat. 

Oleh: Wahyu Kurniawan

Menggunakan Virtual Device di luar Eclipse

Setelah cukup lama vakum di dunia developer Android, saya mencoba untuk mengangkat satu topik yang mungkin bisa bermanfaat buat kita semua. Beberapa waktu yang lalu, saya mencoba untuk menginstall Eclipse Luna, yakni varian Eclipse terbaru saat tulisan ini dibuat. Kalau dilihat sekilas memang ga banyak perubahannya. Hanya ada satu yang cukup mengganjal, yaitu pada saat kita mencoba untuk menjalankan aplikasi kita pada Virtual Device. Eclipse menyediakan VDM, dimana kita bisa create emulator Android sesuai kebutuhan kita. 

Sayangnya, waktu yang dibutuhkan untuk menginisialisasi Virtual Device ini sangatlah lama. Beberapa teman yang sempat mencoba Eclipse Luna mengatakan, untuk menginisialisasi sebuah Virtual Device untuk sistem Android 4.+ dengan kapasitas RAM 1GB, dia membutuhkan waktu hampir 1 jam!!! Wah, kalau seperti ini ngga bisa belajar dunk… 

Untunglah dengan bantuan mbah Google dan setelah tanya kesana kemari, akhirnya saya menemukan solusinya. Salah satu third party yang bernama GenyMotion menawarkan solusi untuk membuat Virtual Device agar kita bisa menggunakan Device ini untuk mengetes aplikasi yang kita bikin sebelum dipublish. Sebelumnya kita perlu unduh dulu dari http://genymotion.com 

Untungnya juga, Genymotion menawarkan plugin Eclipse, sehingga nantinya untuk menjalankan Genymotion, kita tinggal mengklik tombol di lingkungan IDE Eclipse. Untuk plugin nya sendiri ada di http://plugin.genymotion.com/eclipse. Kita juga perlu membuat free account, yang nantinya dipakai untuk otorisasi Genymotion. Jika semuanya lancar, nantinya di IDE Eclipse kita, akan muncul satu icon di toolbar, yaitu icon Genymotion. 

Selanjutnya, sebelum kita bisa start coding, kita perlu menjalankan Genymotion terlebih dahulu dengan cukup mengklik iconnya, lalu kita juga perlu create Device, dimana proses ini membutuhkan koneksi internet, karena mereka akan download devicenya dari internet, yang besarnya rata2 200 MB. Jangan kuatir, proses download ini hanya sekali saja dilakukan. Setelah Virtual Device availale, kita tinggal menyeleksinya dan mengklik Start. Dan dalam beberapa detik, Virtual Device akan muncul, siap untuk digunakan sebagai sarana ujicoba ataupun debug dari program2 yang ada. Waktu yang dibutuhkan untuk inisialisasi device jauh lebih cepat dibandingkan dengan VDM yang disediakan oleh Eclipse sendiri. 
Selamat Mencoba. 



Oleh: Wahyu Kurniawan

Wednesday, October 22, 2014

Koneksi Android dengan MySQL

Salah satu yang mungkin sempat menjadi pertanyaan buat kita yang biasa bekerja di lingkungan web adalah, bagaimana sih caranya membangun koneksi antara Android dengan MySQL. Sebelum kita mulai ngoding, kita perlu memahami teorinya terlebih dahulu. Mungkin diagram di bawah ini dapat menjadi gambaran awal bagi kita untuk mengetahui proses koneksi antara Android dengan Web Server.

Sumber: thaicreate.com

Jadi yang pertama dilakukan adalah, Android akan mengirimkan Request ke Web Server, yang biasa dikenal dengan method HTTPRequest, yang bisa mengandung parameter. Di web server, kita perlu membuat file PHP untuk meresponse dari permintaan client. Fungsi ini biasa dikenal dengan fungsi API (Application Programming Interface) Setelah permintaan dari client (Android) diproses, maka perlu ada nilai yang harus dikembalikan. Data yang dikembalikan bisa berformat JSON ataupun XML. Pada saat Android menerima data yang dikembalikan ini, dia membutuhkan sebuah class parser untuk dapat membaca data yang dikembalikan tadi. Seperti yang tadi disebutkan, data yang dikirim kembali dapat berupa JSON atau XML.

Untuk contoh dibawah ini, saya menggunakan class AsyncTask untuk memproses permintaan dari Android Client. Prinsip kerjanya mirip dengan AJAX, jika teman2 biasa ngoding AJAX di web application tentunya tidak akan kesulitan dalam memahami AsyncTask. Ada beberapa method penting yang harus kita perhatikan pada class AsyncTask ini

1. onPreExecute
method ini yang akan dijalankan pada activity yang aktif, pada saat request dikirimkan ke web server. oleh karena itu, bentuk tampilannya biasanya berupa gambar ataupun tulisan Loading...
Berikut adalah contoh snippet code nya:

protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(YourActivity.this);
pDialog.setMessage("Loading profile ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}

2. doInBackground
method ini yang akan memproses permintaan ke web server.

3. onPostExecute
method ini akan dijalankan setelah proses doInBackground selesai dikerjakan. Artinya method ini yang akan menampilkan hasilnya.

Ok tanpa menunggu lama lagi, berikut adalah contoh coding mengambil string yang ada di web server. Data yang diterima kembali dari Android dalam bentuk JSON, sehingga kita akan membutuhkan class JSONObject.

package ngodingandroid.httprequest;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import ngodingandroid.httprequest.R.string;

public class ProfileActivity extends Activity {

TextView txtUsername;
TextView txtFullname;
TextView txtPosition;
TextView txtSubject;

private ProgressDialog pDialog;

JSONParser jsonParser = new JSONParser();

JSONObject profile;

private static final String PROFILE_URL = "http://yoururl.com/data.php";

private static final String TAG_PROFILE = "data";
private static final String TAG_USER = "username";
private static final String TAG_NAME = "fullname";
private static final String TAG_POSITION = "position";
private static final String TAG_SUBJECT = "subject";

@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);

txtUsername = (TextView) findViewById(R.id.username);
txtFullname = (TextView) findViewById(R.id.fullname);
txtPosition = (TextView) findViewById(R.id.position);
txtSubject = (TextView) findViewById(R.id.subject);

new LoadProfile().execute();

}

/**
* Background Async Task to Load profile by making HTTP Request
* */

class LoadProfile extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ProfileActivity.this);
pDialog.setMessage("Loading profile ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}

/**
* getting Profile JSON
* */

protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>(1);
params.add(new BasicNameValuePair("username", user));

// getting JSON string from URL
JSONObject json = jsonParser.makeHttpRequest(PROFILE_URL, "GET",params);

try {
// profile json object
profile = json.getJSONObject(TAG_PROFILE);
} catch (JSONException e) {
e.printStackTrace();
}

return null;

}

/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
// Storing each json item in variable
try {
String username = profile.getString(TAG_USER);
String fullname = profile.getString(TAG_NAME);
String position = profile.getString(TAG_POSITION);
String subject = profile.getString(TAG_SUBJECT);

// displaying all data in textview
txtUsername.setText("Username: " + username);
txtFullname.setText("Fullname: " + fullname);
txtPosition.setText("Position: " + position);
txtSubject.setText("Subject: " + subject);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

});


}

}

}

Demikianlah cara sederhana untuk mendapatkan data berdasarkan parameter yang dikirim oleh Android Client. Dalam contoh di atas, kita mengirimkan nilai parameter username, yang nantinya akan diproses oleh API dan dengan format JSON akan dikembalikan data-data detail dari username tersebut.
Sumber: androidhive.info

Oleh: Wahyu Kurniawan

Tuesday, October 21, 2014

Menampilkan versi Apps



Jumpa lagi di edisi kita kali ini, yang berbicara tentang bagaimana menampilkan versi apps kita. Cara yang paling mudah adalah dengan mengambil nilai app version yang tersimpan di AndroidManifest, yaitu dari property android:versionName. Untuk menampilkannya pada activiy kita, kita membutuhkan object Context dan Package Manager. Jadi rencananya, kta akan membaca property dari AndroidManifest, simpan dalam variabel, dan menampilkannya pada activity kita. Berikut adalah snippet code nya!

Context context = getApplicationContext(); // or activity.getApplicationContext()
PackageManager packageManager = context.getPackageManager();
String packageName = context.getPackageName();

String myVersionName = "Not Available"; // initialize String

try {
myVersionName = packageManager.getPackageInfo(packageName, 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}       

// set version name to a TextView
TextView VersionName = (TextView) findViewById(R.id.version);
VersionName.setText(myVersionName);


Sederhana sekali bukan? Tentu saja, sebelum kita bisa menjalankan kode di atas, kita harus menyiapkan object TextView di layout xml nya. Nah, apabila kita sudah bisa membaca versi apps yang kita gunakan saat itu, kita bisa kembangkan dengan pengecekan apakan apps yang ada di device user saat ini adalah apps yang paling update atau tidak. Cara paling gampangnya adalah dengan membuat sebuah field di database yang akan kita update apabila kita mau mengupdate apps. Lalu kita buat pengecekan dari sisi Android, dengan memanggil fungsi API yang sudah kita siapkan terlebih dahulu untuk mengambil data apps terupdate. Jika nilainya tidak sama dengan nilai yang tercantum dalam AndroidManifest, kita bisa tampilkan pesan untuk menyarankan user mengupdate apps nya. Dengan demikian, user akan tahu bahwa ada versi baru dari apps yang digunakannya.

Oleh: Wahyu Kurniawan

Monday, October 20, 2014

Pengantar Grafik di Android

Mempelajari grafik di Android jadi mengingatkan saya pada awal2 saya belajar Pemrograman Grafik di Pascal ataupun C dulunya. Saya baru mengenal beberapa perintah grafik di Android, namun dari sekilas pandang, keliatannya sama seperti pascal dan C, kita mesti membuat fungsi atau object sendiri untuk menghasilkan kualitas grafis yang lumayan bagus. Berikut ini adalah contoh kode untuk menghasilkan grafik di platform Android,
package ngodingandroid.intrografik; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Path; 
import android.os.Bundle; 
import android.view.View; 

public class MainActivity extends Activity {     
DemoView demoview;     
//@Override     
  public void onCreate(Bundle savedInstanceState) {         
    super.onCreate(savedInstanceState);         
    demoview = new DemoView(this);         
    setContentView(demoview);     
}     

private class DemoView extends View{         

 public DemoView(Context context){             
       super(context);         
    }         
 @Override protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);             
        //deklarasi object paint             
  Paint paint = new Paint();             
  //set warna latar belakang dg format ARGB             
  paint.setStyle(Paint.Style.FILL);             
  paint.setColor(0xff0000ff);             
  canvas.drawPaint(paint);             
  //menulis string pada mode grafis             
  paint.setStyle(Paint.Style.FILL);             
  paint.setColor(Color.YELLOW);             
  paint.setTextSize(30);             
  canvas.drawText("Tulisan di mode grafis Android", 25, 75, paint);             
  //membuat kotak             
  paint.setAntiAlias(true);             
  paint.setColor(Color.RED);             
  canvas.drawRect(50, 100, 420, 130, paint);                 
  //menggambar lingkaran             
  int x;             
  x=1;             
  while (x<=11) {             
  paint.setColor(Color.GREEN);             
  canvas.drawCircle(50 + (x * 30), 150, 15, paint);             
  x=x+1;             
  }             
  paint.setStyle(Paint.Style.STROKE);             
  paint.setStrokeWidth(2);             
  paint.setColor(Color.YELLOW);             
  Path path = new Path();             
  path.moveTo(0, 0);             
  path.lineTo(5, 50);             
  path.lineTo(-50, 0);             
  path.close();             
  path.offset(200, 200);             
  canvas.drawPath(path, paint);             
  path.offset(50, 0);             
  canvas.drawPath(path, paint);             
  path.offset(50, 0);             
  canvas.drawPath(path, paint);         
  }     
 } 
}

Berikut adalah screenshotnya:



Yang perlu kita perhatikan program diatas tidak menggunakan default interface yang biasanya kita gunakan dalam setiap aplikasi Android, jadi ContentView nya tidak menggunakan file XML seperti biasa melainkan dirujuk kepada class DemoView, yang memanfaatkan object Canvas untuk membangkitkan komponen-komponen grafisnya.

Demikian sedikit contoh sederhana dari implementasi grafis di Android. Mudah-mudahan bisa memberikan informasi buat rekan-rekan developer semua.

Oleh: Wahyu Kurniawan

Membuat Splash Screen

Hallo teman-teman developer!

Untuk edisi kali ini, saya akan mencoba membuat suatu splash screen sederhana di Android. Sebelumnya kita perlu tahu apa itu Splash Screen. Sebenarnya Splash Screen sangat sering digunakan di beberapa apps sebagai activity yang pertama kali diload. Biasanya Splash Screen memuat logo dari developer, atau brand name dari apps yang dijalankan.
Sebagai contoh sederhana, apabila kita mengunduh aplikasi di facebook di Android, pada saat dijalankan dia akan menampilkan logo facebook selama beberapa detik, dan kemudian menghilang dan diikuti dengan content yang sebenarnya.
Untuk persiapan membuat Splash Screen, kita harus menyiapkan dua buah Activity. Activity yang pertama adalah Splash Screen itu sendiri yang akan diload pertama kali, kemudian Activity yang kedua adalah real activity. Dalam kesempatan kali ini, saya akan mencoba membuat contoh Splash Screen yang akan menghilang setelah 3 detik, kemudian menampilkan activity lain, yaitu satu activity bertuliskan Hello World.

Langsung saja kita create new project yaaa...
(Untuk langkah-langkahnya dapat dilihat di artikel saya sebelumnya)

Saat kita create new project, biasanya file MainActivity akan otomatis dibentuk. File ini akan kita simplify isinya menjadi sebagai berikut:

package ngodingandroid.splashscreen;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}


Berikutnya, kita akan membuat class baru yaitu SplashScreen.java dan kita perlu menuliskan kode-kode program pada file SplashScreen.java:

package ngodingandroid.splashscreen;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class SplashScreen extends Activity {

    // Splash screen timer
    private static int SPLASH_TIME_OUT = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);
                finish();
            }
        }, SPLASH_TIME_OUT);
    }
}


Nah sekarang masalah layoutnya, kita akan membuat file XML untuk menata interface dari Splash Screen:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient_background" >

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/logo" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:textSize="12dp"
        android:textColor="#454545"
        android:gravity="center_horizontal"
        android:layout_alignParentBottom="true"
        android:text="ngodingandroid.blogspot.com" />

</RelativeLayout>


Yang perlu diperhatikan, kita harus menyiapkan file gambar yang akan di sisipkan di folder drawable dengan resolusi yang berlainan sesuai foldernya. Dalam hal ini saya menggunakan file dengan nama logo dan gradient_background untuk backgroundnya.

Dan tentu saja kita juga mempunyai file XML untuk activity yang kedua yang akan diload setelah Splash Screen menghilang. File XML ini akan digenerate sendiri oleh Eclipse

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ngodingandroid.splashscreen.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>


Dan akhirnya kita perlu memodifikasi isi AndroidManifest sebagai berikut:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ngodingandroid.splashscreen"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".SplashScreen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >           
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

<!-- Main activity -->
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
        </activity>       

    </application>

</manifest>


Berikut tampilan dari SplashScreen nya:



Demikian sedikit informasi tentang cara membuat Splash Screen yang bisa kita gabungkan dengan aplikasi yang kita buat. Semoga bermanfaat.

Oleh: Wahyu Kurniawan
Sumber: androidhive.info

Friday, October 17, 2014

Membuat Aplikasi Hello World

Salam teman-teman developer :)
Kali ini kita akan mencoba membuat satu aplikasi Hello World di Android. Seperti bahasa pemrograman yang lain, pencetakan Hello World ini seolah menjadi syarat bahwa kita sudah bisa menguasai bahasa program tersebut (atau minimal sudah ngetes hehe). Langsung aja yaaa...

1. Jalankan program Eclipse

2. Pilih File - New Project

3. Pilih Android - Android Application Project


4. Klik Next

5. Masukkan Application Name yang akan dibikin. Nantinya apabila application ini dipublish di PlayStore, Application Name ini akan menjadi nama apps yang muncul di PlayStore.


6. Klik Next

7. Langkah selanjutnya adalah Configure Project, langsung saja kita Next


8. Sampai pada langkah ini kita dapat mengubah launcher icon. Saya sarankan untuk terus Next, karena icon bisa kita ubah nanti.


9. Lalu kita akan disuruh untuk menentukan model Activity apa yang akan kita bikin. Kita biarkan default Blank Activity saja, klik Next.


10. Dan langkah terakhir adalah memberi nama Activity kita, sebaiknya kita mengikuti nama default, yaitu MainActivity, kemudian klik Finish


Sampai pada langkah ini, project Android akan tercipta dan bisa kita akses pada bagian package explorer pada IDE Eclipse. Berikutnya, kita akan membuat class. Salah satu caranya adalah dengan mengklik kanan pada folder src dan pilih New - Class.


Klik Finish, maka kita akan menjumpai file java yang sudah diopen di code editor. File-file ini sudah digenerate oleh Eclipse, jadi ada 3 file yang harus kita perhatikan, yaitu file MainActivity.java, file activity_main.xml dan file AndroidManifest.xml. Berikut adalah snippet code dari ketiga file tersebut.


package ngodingandroid.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 }

}

Seperti yang sudah disinggung di atas, Android menggunakan format XML untuk mengatur interfacenya

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ngodingandroid.helloworld.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

Untuk file AndroidManifest, akan dibuat sendiri oleh Eclipse. Jadi sekarang tinggal mencoba program ke emulator device Android yang sudah dipersiapkan terlebih dahulu.

Selamat! Anda baru saja membuat program aplikasi Android Anda yang pertama. Tetap stay tune di http://ngodingandroid.blogspot.com untuk berbagi pengetahuan dan mendapatkan informasi seputar pemrograman di Android.

Oleh: Wahyu Kurniawan

Mengenal Struktur Program Android

Hai guys. Jumpa lagi di tulisan saya di ngodingandroid.blogspot.com.
Untuk kesempatan kali ini, kita akan belajar untuk mengenal struktur program Android.
Pada saat kita create new Android Project, maka eclipse akan membuat struktur program Android sebagai berikut:
Mari kita lihat satu persatu. Dari screenshot disamping, AndroidChapsa adalah nama package aplikasi android kita. Package name ini akan diisikan pada saat pertama kali kita create new android project.
Lalu dibawahnya ada folder Android 4.3, yaitu mewakili versi Android target kita nantinya. Sebaiknya isi folder ini tidak kita utak-atik, karena di dalamnya berisi package dari class-class Android maupun Java.
Selanjutnya adalah folder src. Folder inilah yang menjadi pusat coding kita dalam membuat aplikasi Android, dimana di dalamnya akan berisi seluruh class-class yang akan kita gunakan untuk membangun aplikasi Android. Jika kita klik pada folder src, maka akan muncul tampilan seperti berikut ini.
Jika kita perhatikan, seluruh source code dari class-class Android mempunyai ekstensi .java, artinya untuk bisa membuat aplikasi Android, kita memang harus mengerti bahasa Java. Untuk bisa memulai menuliskan program Java, kita cukup melakukan double klik pada file java, sehingga Eclipse akan memunculkan content program pada code editor.
Folder selanjutnya adalah folder gen, dimana folder ini digenerate sendiri saat kita membuat new project dan disarankan untuk tidak diutak-atik juga.
Folder assets untuk saat ini bisa kita lewati juga. Dan ada juga folder bin, yang akan menyimpan file .apk kita nantinya. File .apk inilah nantinya yang bisa kita install pada device Android yang sesungguhnya dan aplikasi kita nantinya akan bisa dijalankan di device Android yang sudah diinstall APK kita.
Folder berikutnya yang tidak kalah penting adalah folder res, yang merupakan singkatan dari resource, yaitu folder yang digunakan untuk menyimpan value ataupun image yang akan digunakan dalam aplikasi kita nantinya.
Folder drawable dibagi menjadi beberapa bagian, yaitu untuk menyimpan image dengan resolusi yang berbeda. Sebagaimana kita tahu, device Android yang beredar di pasaran memiliki resolution yang berbeda satu dengan lainnya. Jadi sudah disediakan folder-folder yang berbeda untuk mengatasi hal ini. Jika kita nantinya menggunakan image dalam aplikasi kita, kita dapat menyimpan image dengan ukuran yang berbeda pada folder yang tepat.
Berikutnya, adalah folder layout, yang mana memegang pernan penting dalam membuat layout ataupun interface dari aplikasi Android. Secara default, pada saat suatu aplikasi Android dilaunch, Android akan mencari file main.xml yang ada di folder layout, yang akan dia gunakan sebagai referensi dalam membangun interfacenya. Berikut adalah contoh file main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>


Seperti yang dapat kita lihat, interface Android disusun dengan format XML, sehingga dapat dengan mudah kita pelajari. Pembahasan tentang file layout XML ini akan saya bahas di tulisan saya yang lain. Selanjutnya, ada juga folder values, yang biasanya berisi file XML untuk pengaturan string maupun color. Jika memang dibutuhkan, aplikasi kita nantinya akan merujuk pada nilai-nilai yang tersimpan pada file XML ini. Dan yang terakhir, yang kadang sering luput dari pengamatan kita yaitu file AndroidManifest.xml yang fungsinya kurang lebih mengatur konfigurasi dari aplikasi kita, misalnya untuk mendaftarkan class baru yang akan kita gunakan, ataupun mengatur permission apakah aplikasi kita nantinya boleh menggunakan internet atau tidak.

Nah, sampai disini pembahasan saya tentang struktur program Android, semoga bisa bermanfaat bagi kita semua.

Oleh: Wahyu Kurniawan

Thursday, October 16, 2014

Membuat Project Android yang pertama

Berikut ini adalah sedikit penjelasan tentang struktur program Android. Saat pertama kali kita create project dengan Eclipse, Android akan otomatis membuat barisan perintah berikut ini pada class yang sedang aktif.

package com.example.tes;
import android.app.Activity;
import android.os.Bundle;
public class TesActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
} 

Class TesActivity yang merupakan class turunan dari Activity, yang diikuti dengan perintah override, dimana metode onCreate yang digunakan adalah metode yang ada di class TesActivity, bukan class parent. Sedangkan perintah super.OnCreate, mengacu pada metode OnCreate yang ada di class Activity.

Untuk lebih jelasnya, coba perhatikan penggalan program berikut:

class A {
public void DoSomething() {
Output("A");
}
} 

Anggaplah perintah output digunakan untuk menncetak. Maka pada kasus diatas apabila kita menjalankan A.DoSomething() akan menghasilkan output “A”. Selanjutnya, jika kita mempunyai class B class B extends A { } Maka jika kita menjalankan B.DoSomething() akan menghasilkan output “A” juga. Namun jika kita mempunyai class B seperti ini,

class B extends A {
@Override
public void DoSomething() {
Output("B");
}
} 

Maka jika kita memanggil B.DoSomething() akan menghasilkan output “B”. Jika kita modifikasi menjadi seperti ini,

class B extends A {
@Override
public void DoSomething() {
super.DoSomething();
Output("B");
}
} 

Maka jika kita eksekusi perintah B.DoSomething() akan menghasilkan output “A” dan kemudian “B”. Semoga ilustrasi sederhana di atas dapat memberikan sedikit pemahaman tentang struktur awal program Android. Beberapa orang mengatakan bahwa onCreate itu semacam main(String[] args) function di program Java yang biasa dimana merupakan tempat kita menyisipkan coding kita nantinya.

Oleh: Wahyu Kurniawan

Persiapan Ngoding!

Untuk memulai ngoding, tentu ada beberapa hal yang harus dipersiapkan terlebih dahulu :) Yang terpenting, Android berbasis bahasa pemrograman Java, jadi pertama-tama, kita harus mendownload JDK (Java Development Kit) terlebih dahulu untuk memastikan di komputer kita nantinya bisa digunakan untuk mengcompile kode-kode bahasa pemrograman Java. Langsung saja kita ikuti langkah-langkahnya yaaa...

1. Instalasi JDK (Java Development Kit)

Dasar Android adalah native code Java, jadi untuk membuat program aplikasi Android, pertama-tama kita butuhkan program Java Development Kit (JDK). Langsung saja unduh versi terbarunya lewat link ini:

http://www.oracle.com/technetwork/java/javase/downloads/index.html
Lalu lakukan proses instalasi seperti biasa, segera setelah Java terinstall pada komputer Anda, Anda bisa terus mengupdate versi terbarunya lewat notifikasi yang senantiasa muncul jika ada versi terbaru.

2. Unduh ADT (Android Development Tool)

Sebenarnya ada beberapa cara untuk dapat ngoding Android, yaitu dengan mengunduh Java IDE, baru kemudian dari IDE tersebut, kita unduh plugin Android. Namun dari situs resminya Android, ternyata sudah disediakan bundle ADT, dimana pada saat kita unduh, sudah ada Java IDE nya dan juga SDK (Standard Development Kit) Manager nya. Berikut adalah contoh tampilan dari SDK Android:


SDK Manager adalah tools yang digunakan untuk mengunduh versi-versi Android beserta kelengkapannya. Nantinya kita tidak perlu mengunduh semua versi tersebut. Saya sarankan kita akan mengunduh Android versi 4.3 yang konon kabarnya merupakan versi Android yang paling sering digunakan pada saat tulisan ini dibuat. Langsung saja kita unduh bundle ADT nya melalui link berikut ini:
Setelah proses unduh selesai, kita copykan folder ADT yang sudah kita unduh ke drive C. Tidak perlu dilakukan proses instalasi karena bundle ini sudah langsung bisa digunakan.

3. Bekerja dengan Eclipse (Java IDE)

Java IDE (Integrated Development Environment) atau interface yang kita gunakan untuk ngoding Android nantinya adalah Eclipse. Saat tulisan ini dibuat, Eclipse versi terbarunya dinamakan Eclipse Luna, dan versi Luna inilah yang saya gunakan untuk menuliskan kode-kode program Android. Saat kita menjalankan Eclipse, kita akan selalu ditanya folder workspace, yaitu folder dimana nantinya kita gunakan untuk menyimpan file2 project Android kita. Saya sarankan untuk tetap menggunakan posisi default yang sudah ditentukan oleh Eclipse, yaitu yang disimpan di dalam folder Users/workspace.


Sampai pada langkah ini, kita sudah siap menuliskan kode-kode program Java untuk menghasilkan aplikasi Android.

4. Instalasi AVD (Android Virtual Device)

Untuk melihat output dari kode program yang kita buat, kita bisa langsung menghubungkan Android kita ke komputer, dan pada saat kita run, target yang dipilih adalah device Android kita yang sudah terkoneksi. Namun sebenarnya kita bisa juga membuat emulator Android, atau yang biasa dikenal dengan AVD, Android Virtual Device. Kita pilih emulator device yang akan kita gunakan. Yang perlu kita catat, dalam kondisi tertentu, proses inisialisasi emulator ini bisa memakan waktu yang sangat lama, jadi disarankan untuk menggunakan tipe device dengan spesifikasi yang biasa saja. Namun jangan kuatir, setelah emulator aktif, untuk selanjutnya tidak perlu menunggu lama apabila programnya di run.


Oleh: Wahyu Kurniawan


Ngoding Yuk!


Wah kayaknya seru yah. Nantinya bisa bikin apps Android dong... Blog ini saya buat untuk sarana berbagi pengetahuan tentang pemrograman aplikasi Android. Saya sendiri juga baru belajar pemrograman Android sekalipun sistem Android ini sebenarnya sudah eksis cukup lama. Saya berharap, konten blog ini nantinya bisa menjadi sumber pengetahuan buat teman-teman developer, dan saya juga berharap mendapatkan feedback dari teman-teman semua agar kita bisa senantiasa belajar.

Dan bagi teman-teman yang ingin mengcopy tulisan/artikel yang ada di blog ini nantinya, mohon untuk tetap mencantumkan sumbernya, apabila ingin dimasukkan di blognya masing-masing. Terima kasih banyak atas segala pengertiannya.

Keep Ngoding dan maju terus developer Indonesia!

Oleh: Wahyu Kurniawan

 

Copyright @ 2013-2014 Ngoding Android - Berbagi Pengetahuan dalam Pemrograman Android.