Dasar-dasar Java

Pada tulisan sebelumnya, kita sudah melihat sedikit seperti apa sih program Java. Nah, pada tulisan kali ini, kita akan membahas mengenai beberapa hal yang perlu kamu ketahui tentang Java secara mendasar. Apa saja itu? Let’s see. We’ll start with text representation on Java and end this writing with comment. 😀

Teks pada Java
Kita sudah melihat representasi teks di Java pada tulisan pembuka Kenalan dengan Java. Mari kita lihat program HelloWorld.java-nya.

// HelloWorld.java
// Program perkenalan dengan Java
public class HelloWorld {

	public static void main(String[] args) {
		System.out.println("Hai Dunia. Mari belajar Java!");
	}
}

Representasi teks pada Java adalah serangkaian karakter atau teks yang diapit oleh tanda petik dua (“). Pada method println() di atas, representasi teks yang dibuat akan tercetak di layar (misal, command line) sebagai teks. Tanpa mengapitnya dengan tanda kutip dua, Java tidak akan mengenalinya sebagai representasi teks dan kemungkinan besar akan menyebabkan program tidak bisa dijalankan.

Kita bisa menampung nilai teks yang ditulis ke suatu wadah bernama String (inilah mengapa representasi teks dalam Java dikenal dengan sebutan String). Dengan menampungnya ke suatu wadah, nilai teks tersebut bisa kita ganti dengan yang nilai teks yang baru kapanpun kita suka (dalam alur program). Mari kita lihat implementasinya di bawah ini.

// DemoPrintString.java
// Mencetak sebuah teks
public class DemoPrintString {

	public static void main(String[] args) {
		String greeting = "Hai Dunia. Mari belajar Java!";
		System.out.println(greeting);
	}
}

Luaran yang dihasilkan oleh program DemoPrintString.java sama dengan HelloWorld.java. Bedanya adalah teks yang ditampilkan ke layar pada DemoPrintString.java sudah ditampung di String bernama greeting. Selanjutnya greeting ini bisa kita ubah nilainya dengan nilai teks yang lain. Perhatikan program DemoPrintString2.java di bawah ini.

// DemoPrintString2.java
// Mencetak teks dua kali
public class DemoPrintString2 {

	public static void main(String[] args) {
		String greeting = "Hai Dunia. Mari belajar Java!";
		System.out.println(greeting);

		greeting = "Selamat pagi!";
		System.out.println(greeting);
	}
}

Program akan memberikan luaran sebagai berikut.

Hai Dunia. Mari belajar Java!
Selamat pagi!

Yang kita lakukan di atas adalah mencetak nilai yang ditampung oleh greeting. Pada saat yang pertama, isi greeting adalah teks “Hai Dunia. Mari belajar Java!”. Kemudian kita mengubah nilai yang ditampung greeting dengan teks “Selamat pagi!” sehingga ketika kita mencetak kembali isi greeting, hasilnya sudah nilai teks yang baru.

Variable dalam Java
Variable adalah nama yang merujuk ke sebuah lokasi memori di komputer. Setiap variable yang dideklarasikan haruslah memuat nama variable dan tipe data variable tersebut. Variable berguna untuk menyimpan suatu nilai selama program berjalan.

Dalam program DemoPrintString2.java, greeting berperan sebagai wadah yang menampung nilai teks. Wadah inilah yang disebut dengan variable. Ini berarti greeting adalah sebuah variable dengan tipe data String.

t2_about variable

Selain String, variable dalam Java bisa menampung nilai lainnya seperti bilangan bulat (integer) dan bilangan riil (floating point number). Mari lihat contoh program di bawah ini.

// DemoVariable.java
// Variable dalam berbagai tipe data
public class DemoVariable {

	public static void main(String[] args) {
		String s = "lima";
		int num = 5;
		double d = 5.324;

		System.out.println(s);
		System.out.println(num);
		System.out.println(d);
	}
}

Pada program DemoVariable.java, kita membuat suatu variable bernama num dengan tipe data int (integer atau bilangan bulat). Kita mengisinya dengan nilai 5. Hasil yang dicetak ke layar sesuai dengan nilai yang ditampung oleh variable num, yaitu 5. Silakan coba untuk mengubah nilai variable num dan jalankan programnya kembali. 🙂

String dan Tipe Data Primitif
Ada beberapa tipe data yang umum digunakan di Java, yaitu String, int, float, long, double, dan boolean. Tipe data ini digunakan oleh variable untuk menampung nilai yang bersesuaian dengannya. Jika suatu variable dideklarasikan memiliki tipe data String, variable tersebut tentu tidak bisa menampung nilai yang tidak terkait dengannya seperti int (bilangan bulat).

String untuk representasi teks pada dasarnya merupakan sebuah class. Sedangkan tipe data int, float, long, dan boolean merupakan tipe data primitif (bersifat dasar dan utama) dan bukan class. Class String sendiri dalam implementasinya memanfaatkan tipe data primitif. Berikut ini merupakan contoh program yang menggunakan String dan tipe data primitif. Perhatikan deklarasinya dan cara memberi nilai awal pada variable-nya.

// DemoStringAndPrimitiveDataType.java
// String dan berbagai tipe data primitif
public class DemoStringAndPrimitiveDataType {

	public static void main(String[] args) {
		String s = "Ini teks ya";
		int num = 5;
		long l = 1;
		float f = 3;
		double d = 178.459;
		boolean b = true;

		System.out.println(s);
		System.out.println(num);
		System.out.println(l);
		System.out.println(f);
		System.out.println(d);
		System.out.println(b);
	}
}

Nah, di bawah ini adalah tabel daftar tipe data primitif dan rentang nilai yang bisa ditampung olehnya.

  • byte (-128 s.d. 127)
  • short (-32.768 s.d. 32.767)
  • int (-2.147.483.648 s.d. 2.147.483.647)
  • long (-2^63 s.d. (2^63)-1)
  • float (+/- 3,4 x 10^38 dengan 7 digit signifikan)
  • double (+/- 1,7 x 10^308 dengan 15 digit signifikan)

Manipulasi String
String sebagai class tentu memiliki behaviour atau method yang berguna untuk keperluan manipulasi teks. Banyak hal yang bisa dilakukan seperti mengambil sebagian nilai String, menghapus karakter tertentu pada String, hingga menggabungkan dua buah String yang berbeda.

Program berikut mendemokan bagaimana cara menggabungkan dua buah String yang berbeda. Hasil penggabungannya kemudian disimpan dalam variable String yang baru.

// DemoConcatString.java
// Menggabungkan dua buah String yang berbeda
public class DemoConcatString {

	public static void main(String[] args) {
		String s1 = "Jauh di mata ";
		String s2 = "namun dekat di hati :')";

		String res = s1.concat(s2);
		System.out.println(res);
	}
}

Salah satu hal yang spesial di Java, kita bisa menggabungkan dua buah String hanya dengan menggunakan operator ‘+’. Silakan banding program di bawah ini dengan program DemoConcatString.java dan temukan bedanya. 🙂

// DemoConcatString2.java
// Menggabungkan dua buah String yang berbeda dengan operator +
public class DemoConcatString2 {

	public static void main(String[] args) {
		String s1 = "Jauh di mata ";
		String s2 = "namun dekat di hati :')";

		String res = s1 + s2;
		System.out.println(res);
	}
}

Kamu bisa nebak kan apa luaran dari program di atas? :mrgreen:

Jauh di mata namun dekat di hati :’)

Operator Assignment
Saat kita mendeklarasikan variable dan menginisialisasinya (memberi nilai awal), kita menggunakan tanda ‘=’. Tanda ‘=’ dalam Java merupakan operator assignment (penugasan). Ini artinya nilai yang ada di sebelah kanan operator ditugaskan (bahasa mudahnya ya dimasukkan) ke sebelah kiri operator. Pada program DemoVariable.java, kita memasukkan nilai bilangan bulat 5 ke variable num.

t2_assignment operator

Selain memasukkan nilai langsung seperti di atas, kita bisa juga memasukkan nilai yang ditampung oleh suatu variable ke variable lain tanpa mengganggu nilai variable asal yang diambil nilainya. Hal seperti ini berlaku pada tipe data primitif dan String. Silakan lihat contohnya di bawah ini.

// DemoOperatorAssignment.java
// Operator assignment pada tipe data int
public class DemoOperatorAssignment {

	public static void main(String[] args) {
		int length1 = 7;
		int length2 = length1;

		System.out.println("panjang 1: " + length1);
		System.out.println("panjang 2: " + length2);
	}
}

Inilah luaran dari program.

panjang 1: 7
panjang 2: 7

Identifier
Class, variable, dan beberapa hal lainnya yang kita buat di Java memerlukan sebuah nama sehingga bisa dikenali dan dibedakan satu sama lain. Nama inilah yang disebut dengan identifier. Pada contoh program sebelumnya yang sudah dibuat, kita memberikan nama untuk variable dengan penamaan greeting, num, length1, length2, f, d, b, dan lainnya. Tentu saja, identifier yang baik adalah yang bisa menggambarkan tujuan dibuatnya variable atau class tersebut sehingga jelas dan mudah dimengerti oleh yang membacanya. 😀

Agar identifier yang kita buat sah dan legal menurut Java, ada beberapa hal yang harus diperhatikan.

  1. Karakter pertama suatu identifier harus dimulai dengan huruf, karakter currency ($), atau karakter underscore ( _ ). Identifier tidak boleh dimulai dengan angka (0-9).
  2. Setelah karakter pertama, identifier boleh mengandung kombinasi dari huruf, karakter currency ($), karakter underscore ( _ ), atau angka (0-9).
  3. Kita tidak boleh menggunakan keyword (kata kunci) dari Java sebagai identifier. Keyword adalah identifier khusus yang sudah didefinisikan dalam Java dan memiliki arti tersendiri. Contohnya adalah final, class, dan public.
  4. Identifier di Java bersifat case-sensitive. Sebagai contoh, num dan NUM adalah dua identifier yang berbeda.

Nah, dengan petunjuk pembuatan identifier di atas, kita bisa berkreasi membuat identifier. Di bawah ini contoh kreasi pembuatan identifier yang sah menurut Java tapi sulit untuk digunakan.

// DemoIdentifier.java
// Penggunaan identifier yang sah tapi tidak lazim digunakan.
public class DemoIdentifier {

	public static void main(String[] args) {
		int c123 = 8;
		int ____f_i = 7;
		int $ = c123 + ____f_i;

		System.out.println("nilai c123: " + c123);
		System.out.println("nilai ____f_i: " + ____f_i);
		System.out.println("nilai $: " + $);
	}
}

Program akan memberikan luaran sebagai berikut.

nilai c123: 8
nilai ____f_i: 7
nilai $: 15

Keyword pada Java
Sejauh ini kita sudah melihat beberapa keyword atau kata kunci pada contoh-contoh program Java yang sudah dibuat. Kita bisa menemukan kata public, static, void, class, int, float, double, dan lainnya. Itu semua merupakan kata-kata yang sudah terdefinisi dan memiliki arti spesifik di Java. Misalnya, int untuk menyatakan tipe data integer (bilangan bulat) dan class untuk menyatakan deklarasi pembuatan suatu class. Kita tidak bisa menggunakan kata kunci tersebut sebagai nama variable yang dibuat.

Di bawah ini merupakan contoh daftar kata kunci pada Java. Insya Allah kita akan mengetahui arti kata kunci tersebut satu-persatu pada pembahasan yang lain. 😀

  • abstract
  • assert
  • boolean
  • break
  • class
  • catch
  • do
  • double
  • else
  • enum
  • final
  • for
  • if
  • implements

White Space
Spasi, tab, dan baris kosong dalam Java biasa disebut white space. White space digunakan untuk memisahkan kata-kata dalam suatu program. Dengan penggunaan white space secara tepat, program yang dibuat menjadi rapi, mudah dibaca dan dimengerti.

White space sangat berguna untuk kita-kita dalam memahami program yang ditulis. Oleh compiler Java, white space diabaikan. Oleh karena itu, suatu program yang sama bisa memilki bentuk yang berbeda-beda karena penggunaan white space yang beragam.

Program HelloWorld.java menggunakan white space secara tepat. Nah, berikut ini adalah program yang sama dengan penggunaan white space yang berbeda.

// HelloWorld.java
	// Program perkenalan dengan Java yang amburegul
		public class AmburegulHelloWorld {

	public static
	void main(String[] args) {
System.out
		.println("Hai Dunia. Mari belajar Java!");
	}
}

Luarannya sama, akan tetapi sulit bagi kita untuk membaca program di atas. Itu baru beberapa baris kode. Jika baris kodenya makin besar, makin sulit dan memusingkan untuk membaca dan memahami apa maksud kode yang ditulis.

Comment
Comment merupakan kode program yang tidak ikut dieksekusi pada saat proses kompilasi program. Tujuannya adalah memberikan panduan atau petunjuk mengenai suatu kode atau program yang ditulis seperti tujuan pembuatan program, algoritma program, nama pembuat program, dan penjelasan suatu class dan variable.

Dalam Java, ada tiga buah jenis comment yang bisa digunakan.

  1. Line Comment
    Comment jenis ini berlaku untuk satu baris dan diawali dengan simbol (//). Contoh program sebelumnya pada tulisan ini menggunakan line comment.
    Contoh:

    // DemoVariable.java
    // Variable dalam berbagai tipe data
    
  2. Block Comment atau Multiple-line Comment
    Comment ini berlaku untuk satu blok atau beberapa baris. Comment diawali dengan simbol (/*) dan diakhiri dengan simbol (*/).
    Contoh:

    /*
    * DemoVariable.java
    * Mendemokan variable dalam berbagai tipe data.
    */
  3. Javadoc Comment
    Comment ini digunakan untuk membuat dokumentasi API (Application Programming Interface). Dokumentasi yang dibuat dengan jenis ini nantinya bisa mempermudah orang lain yang mau menggunakan class yang kita buat. Comment jenis ini juga berlaku untuk satu blok atau beberapa baris. Comment diawali dengan simbol (/**) dan diakhiri dengan simbol (*/). Baris di antara kedua simbol tersebut diawali dengan simbol (*).
    Contoh:

    /**
    * DemoVariable.java
    * Mendemokan variable dalam berbagai tipe data.
    *
    * @author Alh
    */

Comment memudahkan orang lain membaca kode atau program yang kita buat. Comment juga memudahkan kita untuk membaca kode kita sendiri di kemudian hari. Bisa jadi kita sudah lupa dengan kode yang kita buat sendiri. Hehe. Nah, comment bisa mengingatkan. 🙂

Kenalan dengan Java

Apa yang terlintas di pikiran kamu saat mendengar kata ‘Java’? Sebagian besar dari kita langsung teringat dengan pulau Jawa di Indonesia. Sebagian lainnya langsung teringat dengan laut Jawa, orang Jawa, atau kopi Jawa. Namun di sini, Java yang akan kita bahas bukanlah tentang itu semua. Java di sini adalah suatu bahasa pemrograman tingkat tinggi (high-level programming language) yang dirilis oleh Sun Microsystem pada tahun 1995 untuk membangun aplikasi yang dapat berjalan di mesin komputer universal.

Sebagian dari kita mungkin bertanya-tanya kenapa bahasa pemrograman ini diberi nama Java? Kok begitu khas Indonesia ya. Let’s have a cup of Java, mari minum secangkir (kopi) Jawa. ‘Java’ merupakan sebutan populer di Eropa dan Amerika untuk kopi tubruk asal pulau Jawa, Indonesia. Seduhan ‘Java’ saat santai di kedai kopi maupun peneman kerja memberikan inspirasi bagi tim proyek untuk nama bahasa pemrograman yang baru mereka buat. Mereka menyukai nama tersebut dan akhirnya sepakat untuk memberi nama untuk bahasa yang baru tersebut dengan nama Java. Karena Java dalam hal ini adalah sebuah kopi, tidak heran logo Java menampilkan secangkir kopi yang terlihat asap panas mengepul di atasnya. 😀

Java merupakan sebuah bahasa berorientasi object dengan pendekatan Object-Oriented Programming (OOP). Pendekatan ini menekankan pada pemodelan object yang tepat dan pembangunan interaksi antar object yang dibuat agar saling bekerja sama menyelesaikan masalah. Dalam keseharian, kita mengenal object sebagai sesuatu hal atau benda yang ada di sekitar kita, baik itu nyata atau abstrak. Contoh object yang bersifat nyata adalah sepeda, radio, lampu, dan masih banyak lainnya. Sedangkan contoh object yang bersifat abstrak adalah resep masakan, mata kuliah, menu makanan, dan masih banyak lainnya. Setiap object tersebut memiliki attribute (atribut) dan behaviour (perilaku). Attribute pada sebuah object merupakan ciri-ciri atau karakteristik yang melekat pada dirinya sendiri seperti ukuran, warna, tinggi, dan bentuk. Sedangkan behaviour merupakan perilaku dan kemampuan untuk melakukan suatu tindakan dan hal itu berasal dari dalam dirinya sendiri seperti sepeda melaju, lampu dimatikan, volume radio dikeraskan, menu diubah, dan suatu mata kuliah dibatalkan. Pendekatan OOP ini memberikan nuansa yang berbeda dalam merancang sebuah solusi dalam bentuk program Java. Program lebih mudah dimengerti, dimodifikasi, dirawat, dan dikembangkan sebagaimana kita melihat object dan menanganinya dalam dunia nyata.

Nah, sekarang mari kita lihat penampakan bahasa pemrograman Java dalam program pertama “HelloWorld.java” di bawah ini.

// HelloWorld.java
// Program perkenalan dengan Java
public class HelloWorld {
	
	public static void main(String[] args) {
		System.out.println("Hai Dunia. Mari belajar Java!");
	}
}

Catatan: kamu bisa menuliskan program di atas dengan menggunakan notepad, wordpad, atau IDE semacam Netbeans, Eclipse, dan BlueJ. Yang penting adalah komputer kamu sudah terinstal JRE (Java Runtime Environment). Jika belum, silakan ikuti panduan instal Java di situs resmi Java ini.

Silakan kompilasi program dan jalankan. Program akan memberikan luaran sapaan kepada dunia sebagai berikut. 😀

Hai Dunia. Mari belajar Java!

Seperti yang dibahas sebelumnya, Java menekankan penyelesaian masalah pada pemodelan object. Dalam Java, sebuah object didefinisikan oleh sebuah class. Pada program di atas, pendeklarasian class menggunakan kata kunci class. Pendefinisian class berada di dalam cakupan area kurung kurawal buka ({) dan kurung kurawal tutup (}). Pada contoh “HelloWorld.java”, class yang kita buat bernama HelloWorld. Kata kunci public pada class menandakan visibilitas class ini adalah publik atau umum, terlihat dan dapat digunakan oleh class lainnya.

public class HelloWorld {
	// ini adalah area cakupan dari class...
}

Catatan: class yang memiliki kata kunci public harus disimpan dalam file dengan nama yang sama dengan nama class-nya diikuti ekstensi “.java”. Sebagai contoh, nama file program di atas haruslah HelloWorld.java sesuai dengan nama class-nya, yaitu HelloWorld. Jika tidak, akan muncul error saat kompilasi.

Dalam Java, behaviour suatu class dinamakan dengan method. Method menggambarkan kemampuan yang bisa dilakukan oleh class tersebut. Dalam class HelloWorld, kita menemukan method main. Deklarasi method main ditemani dengan kata kunci public, static, dan void. Nah, method main dalam hal ini merupakan method utama dalam Java. Method ini menggambarkan keseluruhan program. Eksekusi program oleh JVM (Java Virtual Machine) berawal dari sini. Tanpa method ini, program Java tidak bisa dijalankan.

Dalam method main pada program “HelloWorld.java”, kita akan menemukan sebuah baris kode berikut.

System.out.println("Hai Dunia. Mari belajar Java!");

Baris kode di atas melakukan pencetakan teks ke layar (misal, command line). Hal ini dilakukan oleh object System.out melalui method println(). Objek System.out dikenal sebagai standard output stream untuk menampilkan luaran standar, dalam hal ini teks atau string literal. Teks atau string literal dalam Java lebih umum disebut sebagai String. Dalam method println(), String direpresentasikan oleh karakter petik dua (“) yang mengapitnya.

Satu baris kode tersebut dapat dihitung sebagai sebuah statement (pernyataan). Sebuah statement selalu diakhiri dengan karakter titik koma (;). Sebuah statement biasanya melakukan sebuah tugas atau aksi tertentu dalam program. Sebuah statement pada satu baris kode di atas melakukan sebuah tugas mencetak suatu teks.

Sebuah statement di atas hanya mencetak satu baris teks. Bagaimana jika kita menginginkan luaran dua baris teks atau lebih? Caranya mudah, gandakan saja statement tersebut sebanyak yang kita inginkan dan ubah nilai String pada method println() sesuka hati. Kompilasi dan jalankan programnya. Kemudian cek hasilnya. Silakan mencoba. 😀

Agar program yang ditulis menjadi lebih mudah dibaca, kita bisa memberikan comment (komentar) pada program. Comment merupakan kode program yang tidak ikut dieksekusi pada saat proses kompilasi program. Tujuannya adalah memberikan informasi-informasi tentang tujuan pembuatan program, kode program yang dibuat seperti algoritma program, penjelasan suatu class dan method, nama pembuat program, dan hal-hal penting lainnya. Pada contoh program “HelloWorld.java”, baris kode yang diberi comment diawali dengan simbol (//).

Ya, inilah sedikit perkenalan dengan Java. Menarik kan? Lebih jauh lagi, nanti kita akan mempelajari Java dan melihat fitur-fitur keren yang dimiliki bahasa ini pada tulisan yang lain. Insya Allah.

Jika kamu punya pertanyaan atau sesuatu hal yang ingin didiskusikan, silakan tinggalkan di kolom komentar di bawah ini.

Terima kasih. 😀

Android: Pengenalan Layout

Catatan: Ini adalah tulisan perdana mengenai Android di Inlentera. Di sini kita akan membahas tentang tata letak komponen view atau lebih dikenal layout. It’s nice to start from this topic. Tulisan pembuka ini mengasumsikan kamu sudah melakukan instal Eclipse dengan baik (ya, kita menggunakan IDE Eclipse) dan sudah memahami dasar-dasar Java dan XML. 🙂

Sebuah aplikasi bisa memiliki satu atau lebih tampilan halaman. Sebuah tampilan halaman dibangun dari komponen-komponen view atau UI (User Interface) di dalamnya. Untuk membuat tampilan aplikasi yang baik dan enak dilihat, diperlukan tata letak komponen view yang rapi. Ada beberapa tata letak atau layout yang bisa digunakan di Android seperti LinearLayout dan RelativeLayout. Pada Android, desain tampilan yang melibatkan tata letak komponen view dilakukan di file XML (eXtensible Markup Language), terpisah dari logic yang ditangani di file java. Dalam tulisan ini, kita akan membuat aplikasi bernama ‘Hi Layout’ yang mendemokan kedua jenis layout tersebut. 😀

Mari kita mulai. Sebagai tahap awal, buatlah project Android ‘HiLayout’. Silakan diisi dengan detail project sebagai berikut dan sesuaikan dengan versi Eclipse dan ADT-nya masing-masing.

Project name: HiLayout
Application name: Hi Layout
Package name: inlentera.apps.hilayout
Create Activity: HiLayout
Min SDK Version: 8
Target SDK Version: 17
Theme: Holo Light with Dark Action Bar
Create Activity: Blank Activity
Activity Name: MainActivity
Layout Name: activity_main

Jika project sudah sukses dibuat, kita akan temukan file MainActivity.java dalam folder src/ inlentera.apps.hilayout, dan file activity_main.xml dalam folder res/layout di bagian Package Explorer. Untuk keperluan demo layout, file activity_main.xml tidak digunakan. Sebagai gantinya, kita akan membuat file xml baru, satu file untuk satu demo layout.

Linear Layout

LinearLayout adalah layout yang menampilkan komponen-komponen view dalam arah linear, vertikal atau pun horizontal. Ini adalah layout paling sederhana di Android dan lumayan sering digunakan. Mari lihat implementasinya.

Buat file xml baru dengan nama linear_layout.xml. Caranya, klik kanan di folder res/layout pada project ‘HiLayout’. Pada menu pop-up yang muncul, pilih New > Android XML File. Selanjutnya, silakan isikan nama file XML dengan liner_layout.xml. Jenis resource secara otomatis berada di nilai ‘Layout’.

Buat XML File di Linear Layout

Kotak Dialog Pembuatan File XML

Jika sudah diisi dan tidak ada pesan error, klik Finish. Pada umumnya, file linear_layout.xml yang dibuat tidak berisi komponen view apapun di dalamnya, melainkan hanya sebuah komponen LinearLayout yang tidak memberikan tampilan apa-apa.

Nah, sekarang ubah isinya menjadi berikut ini.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#004c00"
        android:text="innovation for Indonesia"
        android:textColor="#ffffff"
        android:textSize="20dip" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="turn on our dreams!"
        android:textSize="30dip" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dip"
        android:text="yeah!" />

</LinearLayout>

Bisa kita lihat, tampilan yang dibuat akan memiliki tampilan teks (tag TextView) dan tombol (tag Button). Teks yang ingin ditampilkan ditulis di atribut android:text. Ukuran teks diatur melalui atribut android:textSize. Warna teks diatur melalui atribut android:textColor. Salah satu teks juga diberi warna latar belakang hijau dengan kode warna RGB #004c00 melalui atribut android:background.

Sekarang buka file MainActivity.java. Pada umumnya, file tersebut berisi class utama yang meng-extends Activity dan memiliki method onCreate() seperti berikut ini.

public class MainActivity extends Activity {

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

}

Lakukan perubahan kecil pada method onCreate() sehingga kode berubah menjadi berikut.

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

Saat ini tampilan aplikasi sudah mengacu ke linear_layout.xml yang berada di folder res/layout. Mari lihat hasilnya melalui emulator. Kita akan dapatkan tampilan sebagai berikut.

Hasil Linear Layout

Hasil Linear Layout

Yup, kita sudah membuat tampilan menggunakan LinearLayout. Sebelum beranjak ke demo RelativeLayout, kita akan membahas tentang atribut penting yang selalu digunakan saat menuliskan komponen view di file XML, yaitu android:layout_width dan android:layout_height.

Atribut android:layout_width digunakan untuk mendefinisikan lebar suatu komponen view. Sedangkan android:layout_height digunakan digunakan untuk mendefinisikan tinggi suatu komponen view. Lebar dan tinggi yang didefinisikan bernilai relatif terhadap parent-nya. Ada dua nilai default yang disediakan oleh Android, yaitu wrap_content dan fill_parent (sebenarnya terdapat juga nilai match_parent yang memiliki maksud yang sama dengan fill_parent). Dalam kata lain, wrap_content memiliki arti “ambil saja secukupnya”. Sedangkan fill_parent memiliki arti “ambil semuanya!”

Nah, jika kita melihat teks yang memiliki warna latar belakang hijau pada linear_layout.xml, lebarnya bernilai fill_parent dan tingginya bernilai wrap_content. Hasilnya adalah warna hijau sepanjang lebar layar dan setinggi teks yang ditampilkan. Got it? Nah, untuk menguji pemahaman, silakan ubah nilai lebar dan tinggi pada komponen-komponen view di linear_layout.xml dan perhatikan hasilnya. 😀

Relative Layout

RelativeLayout adalah layout yang menampilkan komponen-komponen view dalam posisi relatif terhadap posisi elemen view di sekitarnya atau relatif terhadap area layout utama. Sebuah desain tampilan aplikasi bisa dibuat lebih mudah dan sederhana menggunakan RelativeLayout dibandingkan dengan LinearLayout saat komponen view yang terlibat lumayan banyak. Mari lihat implementasinya.

Buat file xml baru dengan nama relative_layout.xml. Jika sudah, ubah isinya menjadi berikut ini. Perhatikan bedanya dengan linear_layout.xml.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/theText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#4c0000"
        android:textColor="#ffffff"
        android:textSize="20dip"
        android:text="everyday is a new day" />

    <EditText
        android:id="@+id/theTf"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/theText"
        android:hint="note here..." />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/theTf"
        android:layout_marginTop="30dip"
        android:drawableLeft="@android:drawable/ic_input_add"
        android:text="Add" />

</RelativeLayout>

Tampilan yang dibuat akan memiliki tampilan teks (tag TextView), tombol (tag Button) dengan gambar, dan isian teks atau text field (tag EditText). Beberapa komponen view diberi id melalui atribut android:id. Id ini akan menjadi sebuah identitas atau nama yang unik untuk suatu komponen view agar bisa diacu oleh komponen view lainnya.

Kita lihat dari xml di atas, komponen text field dengan id theTf berada di bawah komponen teks dengan id theText melalui pengaturan atribut android:layout_below. Atribut android:layout_below ini diisi dengan nilai id yang ingin diacu. Tombol dengan teks “Add” pun berada di bawah text field tf menggunakan atribut tersebut. Atribut android:layout_marginTop pada tombol digunakan agar ada jarak tambahan ke atas terhadap text field sebesar 30 dip. Atribut android:layout_alignParentRight pada tombol akan memposisikan tombol tersebut rata kanan relatif terhadap parent-nya. Parent dari tombol share adalah RelativeLayout. Untuk mempercantik tampilan tombol, digunakanlah gambar yang sudah menjadi bawaan Android. Hal ini dilakukan melalui atribut android:drawableLeft. Ini artinya, gambar yang ditempatkan berada di kiri teks. Perhatikan kembali bahwa tombol tidak diberi id karena memang tidak diacu oleh komponen view manapun.

Lakukan perubahan kecil kembali pada method onCreate() di file MainActivity.java. Ubah menjadi berikut ini.

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

Nah, acuan tampilan aplikasi sudah diubah ke relative_layout.xml. Mari lihat hasilnya melalui emulator. Kita akan dapatkan tampilan sebagai berikut.

Hasil Relative Layout

Hasil Relative Layout

Hasil yang didapat cantik kan? 🙂 Untuk mengetahui lebih dalam tentang penggunaan RelativeLayout ini, silakan utak-atik atribut elemen view dalam relative_layout.xml. Silakan gunakan dokumentasi offline yang terdapat pada fitur Auto Code Completion Eclipse untuk membantu pemahaman.

Itulah kedua buah konsep layout sederhana yang bisa digunakan saat membuat aplikasi berbasis Android. Masih ada jenis layout yang lain di Android seperti Table Layout dan Grid Layout. Kapan-kapan kita akan bahas layout yang lainnya ya. 😉

Terima kasih!

Inilah Inlentera!

Hai semua. Selamat datang di Inlentera. 😀

Perkenalkan nama saya Ardi. Saya merupakan satu dari sekian banyak pengembang aplikasi di Indonesia. Saat ini berkarya sekaligus bermain sebagai mobile apps developer di sebuah startup di Depok bernama Badr Interactive. And yeah, i’m the mobile apps development enthusiast. Saya juga tertarik dengan domain masalah yang bisa dibantu dengan aplikasi mobile seperti transportasi publik. Pernah mencoba aplikasi Sikremut Kereta Komuter untuk membantu pengguna mendapatkan informasi jadwal kereta dan posisi kereta terkini di Jabodetabek? Yup, itu adalah salah satu aplikasi yang pernah saya bangun bersama tim Inlentera (sebelumnya bernama Luminascape) dan masih dikembangkan hingga saat ini. 😀

Terkadang saya suka ngepos tulisan mengenai pengembangan aplikasi mobile di blog pribadi. Lama-lama terpikir untuk mengumpulkan tulisan-tulisan tersebut dalam satu blog. Dan jadilah saya membuat satu blog lagi, khusus untuk tulisan seputar pengembangan aplikasi mobile. Nama blognya adalah Inlentera dengan filosofi memberikan cahaya ilmu layaknya lentera untuk para pembelajar pengembangan aplikasi mobile di Indonesia. Asik kan. :mrgreen:

Di sini saya akan berbagi pengetahuan mengenai platform mobile yang sudah pernah saya pelajari, yaitu Android, iOS, Windows Phone, Nokia Asha, dan lainnya (siapa tahu ke depannya muncul platform mobile baru yang keren). Selain itu, saya juga mau memperkenalkan aplikasi-aplikasi yang sudah atau sedang saya kembangkan. Saya juga berharap masukan dan saran dari teman-teman pembaca untuk hal apapun terkait pengembangan aplikasi khususnya bidang aplikasi mobile.

Yap, semoga blog Inlentera bisa bermanfaat buat teman-teman pembaca dan buat saya pribadi juga. Jika dalam satu bulan sejak pos terakhir belum ada tulisan baru di blog ini, mohon ingatkan saya di akun twitter @ardialhaidar ya. xD

Tulisan ini saya tutup dengan suatu kutipan yang menarik buat saya.

Ikatlah ilmu dengan menuliskannya -Ali bin Abi Thalib r.a.

Terima kasih. 😀