Apa itu Java?
Aplikasi Android saat ini dikembangkan dengan bahasa Java. Sampai saat ini, hanya itu satu-satunya pilihan untuk aplikasi asli. Java adalah sebuah bahasa pemrograman yang sangat popular yang dikembangkan oleh Sun Microsystems (saat ini dimiliki oleh Oracle).
Dikembangkan lama setelah C dan C++, Java menggabungkan banyak fitur-fitur canggih dari bahasa-bahasa canggih tersebut, sambil mengatasi beberapa kelemahan mereka. Walaupun demikian, tingkat kecanggihan bahasa pemrograman bergantung pada library mereka. Library ini ada untuk membantu para developer untuk membuat aplikasi
.
Beberapa fitur inti Java adalah:
- Mudah dipelajari dan dimengerti
- Didesain untuk tidak bergantung kepada platform dan aman, menggunakan mesin virtual
- Bersifat object-oriented (fokus kepada objek program ketimbang logic)
Android sangat bergantung kepada sifat-sifat dasar dari Java tersebut. Android SDK mengandung banyak library Java standar (library struktur data, library matematika, library grafik, library networking dan apapun yang dapat Anda inginkan) dan juga library special Android yang dapat membantu Anda mengembangkan aplikasi Android yang keren.
Mengapa Java Mudah untuk Dipelajari?
Java mudah untuk dipelajari karena beberapa alasan. Sangat banyak sumber yang dapat membantu Anda belajar Java, termasuk situs-situs, tutorial, buku dan kelas. Java adalah salah satu bahasa
pemrograman yang paling banyak didiskusikan, diajarkan dan digunakan di planet ini. Java digunakan untuk banyak sekali tipe proyek pemrograman, tanpa memperdulikan skala mereka, dari aplikasi web ke aplikasi desktop hingga aplikasi mobile.
Jika Anda memiliki pengalaman bekerja dengan C atau C++, Anda akan menemukan bahwa syntax mereka sangat mirip dengan Java. Dan jika tidak, Anda tidak perlu takut karena Anda telah memilih salah satu bahasa termudah untuk dipelajari. Anda akan bisa melakukan banyak hal dengan hanya belajar dalam waktu yang singkat.
Akhirnya, Java adalah bahasa yang paling mudah dibaca oleh manusia yang tersedia di luar sana, maksudnya bahkan orang yang tidak tahu apa-apa tentang programming dapat melihat kode Java dan setidaknya mengetahui apa yang kode tersebut lakukan. Perhatikan contoh berikut:
char character = 'a';
if(character=='a')
{
doSomething();
} else {
doSomethingElse();
}
Jika Anda membaca kode tersebut, Anda dapat dengan mudah mengetahui apa yang potongan kode ini lakukan. Terdapat sebuah variable satu huruf yang disebut dengan character. Jika variable character sama dengan huruf “a”, maka kita melakukan sesuatu (memanggil method doSomething()), jika tidak kita melakukan sesuatu yang lain (dengan memanggil method doSomethingElse())
Mengapa Java Aman?
Mari kita gunakan kembali analogy balon tadi. Karena aplikasi Java bekerja di dalam sebuah balon (mesin virtual), aplikasi tersebut terisolir dari hardware perangkat tempatnya bekerja. Oleh karena itu, sebuah mesin virtual dapat membungkus, menyimpan dan mengatur eksekusi kode secara aman dibandingkan dengan bahasa yang bekerja langsung dengan kode mesin. Platform Android bahkan mengambil sebuah langkah tambahan. Setiap aplikasi Android bekerja pada operating system (Linux-based) yang menggunakan akun pengguna berbeda dan Dalvik VM mereka masing-masing. Aplikasi Android dimonitor secara ketat oleh operating system dan langsung mati jika mereka tidak bekerja dengan baik (contohnya menggunakan terlalu banyak processing power, menjadi unresponsive, menyianyiakan resource, dll.). Sehingga, sangat penting untuk mengembangkan aplikasi yang stabil dan responsive. Setiap aplikasi dapat saling berkomunikasi satu sama lain menggunakan protocol yang telah terdefinisi dengan baik.
Meng-compile Kode Anda
Sama seperti banyak bahasa lainnya, Java hanyalah sebuah bahasa yang ter-compile, walaupun Java tidak meng-compile hingga kode mesin. Ini berarti Anda sebagai developer, harus meng-compile proyek Android Anda dan mempersiapkan mereka agar dapat digunakan di sebuah perangkat. Eclipse (yang digunakan bersamaan dengan Android Development Plug-in) membuat hal ini menjadi sangat mudah. Pada Eclipse, biasa fungsi compile otomatis dinyalakan secara default. Hal ini berarti setiap kali Anda melakukan save a project file, Eclipse melakukan compile ulang setiap perubahan yang Anda lakukan pada paket Aplikasi Anda. Anda dapat langsung melihat jika ada error pada hasil compile Anda. Eclipse juga menginterpretasikan Java setiap Anda mengetik, memberikan warna dan format pada setiap kode sehingga sangat membantu serta menunjukan berbagai tipe error selama Anda bekerja. Seringkali, Anda dapat melakukan klik pada error tersebut, dan membiarkan Eclipse secara otomatis memperbaiki typo (kesalahan pengetikan), menambah import statement, atau memberikan potongan method untuk Anda, membuat hal yang perlu diketikkan menjadi sedikit.
Anda juga dapat meng-compile kode Anda secara manual jika Anda mau. Pada Eclipse, Anda akan menemukan Build setting di menu project. Jika fitur “Build Automatically” sedang menyala, Anda dapat memilih “Clean…” yang membuat Anda dapat membangun ulang semua file. Jika “Build Automatically” sedang mati, pilihan menu “Build All” dan “Build Project” akan menyala. “Build All” berarti membangun semua proyek di workspace. Anda dapat bekerja dengan banyak proyek pada sebuah workspace Eclipse.
Proses build, untuk proyek Java regular, menghasilkan sebuah file dengan ekstensi JAR – Java ARchive. Aplikasi Android menggunakan file JAR dan mengemas mereka untuk disebarkan pada perangkat-perangkat sebagai file Android PacKage dengan ekstensi .apk. Format ini tidak hanya mengandung kode Java Anda yang telah ter-compile, namun juga berbagai resource lainnya, seperti string, gambar, atau file suara, yang aplikasi Anda butuhkan untuk bekerja dan juga file Application Manifest, AndroidManifest.xml. File Android Manifest adalah sebuah file yang dibutuhkan oleh semua aplikasi Android, yang Anda gunakan untuk menjelaskan detil konfigurasi tentang aplikasi Anda.
Apa itu Bahasa Pemrograman yang Object Oriented?
Ok. Ini waktunya untuk penjelasan singkat tentang Object oriented programming (OOP). OOP adalah sebuah gaya atau teknik programming yang bergantung kepada definisi dari struktur data yang disebut dengan object. Bagi orang-orang yang awam terhadap OOP, sebuah object dapat dibayangkan seperti tipe custom data. Contohnya, Anda bisa memiliki sebuah object bernama Dog, yang melambangkan sebuah cetak biru bagi seekor anjing, dengan nama, jenis dan jenis kelamin. Anda kemudian dapat membuat berbagai object Dog untuk melambangkan berbagai anjing yang berbeda-beda. Setiap object Dog harus dibuat dengan cara memanggil constructor-nya (sebuah method yang memiliki nama yang sama dengan object itu sendiri, dan bisa jadi memilii parameter untuk menge-set nilai awal). Contohnya, object Dog berikut menggunakan sebuah constructor dengan tiga parameter (nama, jenis, jenis kelamin):
Dog dog1 = new Dog("Lassie", collie, female);
Dog dog2 = new Dog("Fifi", poodle, female);
Dog dog3 = new Dog("Asta", foxterrier, male);
Jadi dimanakan object Dog ini didefinisikan? Di sini kita harus mulai mendefinisikan beberapa dasar-dasar dalam membangun bahasa pemrograman Java. Sebuah class memberikan definisi kepada sebuah object. Oleh karena itu, terdapat sebuah class Dog — yang bisa saja didefinisikan oleh Anda atau oleh sebuah library di manapun. Secara umum, sebuah class akan didefinisikan dalam filenya sendiri, dengan nama file yang sama dengan nama class (contoh Dog.java). Ada beberapa pengecualian terhadap aturan ini, seperti class didefinisikan di dalam class lainnya (ketika sebuah class dinyatakan di dalam sebuah class lainnya, biasanya ia didefinisikan hanya untuk digunakan di dalam parent class sebagai class pembantu, dan disebut sebagai inner class).
Ketika Anda ingin mengacu kepada sebuah object dari dalam sebuah class, Anda harus memasukan sebuah import statement di atas dari file class Anda, sama seperti Anda menggunakan pernyataan #include di dalam bahasa seperti C.
Sebuah class biasanya menjelaskan data dan sifat dari sebuah object. Sifat ini didefinisikan menggunakan class methods. Method adalah sebuah term yang umum untuk sebuah subroutine (kumpulan instruksi yang didesain untuk melakukan suatu operasi yang sering dilakukan di dalam suatu program) dalam sebuah bahasa OOP. Banyak class object yang umum didefinisikan dalam library class yang dishare, seperti SDK, sedangkan class object lainnya didefinisikan langsung oleh Anda, developer, untuk tujuan Anda masing-masing. Software kemudian dibangun dengan menggunakan dan memanipulasi object dengan cara yang berbeda-beda.
Mohon dimengerti bahwa ini adalah penjelasan yang sangat umum tentang OOP. Ada banyak sekali buku yang menjelaskan tentang materi ini. Jika Anda ingin tahu lebih tentang OOP, berikut adalah beberapa sumber yang dapat anda cek:
• Wikipedia memiliki overview yang baik tentang OOP
• Tutorial Sun Java tentang Java
• Tutorial Java di Oracle
Catatan: Kami menggunakan banyak terminology yang berbeda pada tutorial ini. Terdapat beberapa cara berbeda untuk mengacu kepada konsep yang diberikan (contohnya superclass vs. parent class), yang mungkin membingungkan bagi orang-orang yang awam terhadap OOP. Developer berbeda menggunakan bahasa yang berbeda pula, sehingga kami telah mencoba untuk menyebutkan berbagai sinonim. Memilih term yang tepat untuk digunakan bergantung pada pilihan personal Anda.
Memahami Inheritance
Ini adalah konsep Java penting lainnya yang akan sering Anda temui: inheritance. Secara simple, inheritance berarti bahwa class Java (dan juga object) dapat disusun menjadi hierarki dengan aturan class dengan hierarki lebih rendah dan lebih spesifik, mewarisi sifat-sifat dan ciri-ciri dari class dengan hierarki inheriting lebih tinggi dan lebih umum.
Konsep ini dapat diilustrasikan dengan contoh. Mari berpura-pura sedang mengembangkan aplikasi Java yang mensimulasikan sebuah akuarium. Akuarium berisi beberapa ikan di dalamnya. Oleh karena itu, kita dapat mendefinisikan sebuah class untuk merepresentasikan seekor ikan. Class ini, disebut Fish, dapat mengandung beberapa data field (juga disebut attribute, atau class member variable) untuk mendeskripsikan object seekor ikan: spesies, warna dan ukuran; juga beberapa sifatnya dalam bentuk methods (disebut juga dengan subroutine, atau function pada bahasa procedural), seperti eat(), sleep(), dan makeBabyFish().
Sebuah tipe khusus dari method, disebut dengan constructor, digunakan untuk membuat dan meninisiasi sebuah object; constructor dinamakan sama dengan class mereka dan bisa mengandung parameter. Class Fish berikut memiliki dua constructor: satu untuk membuat sebuah object Fish biasa dan lainnya untuk membuat sebuah object Fish dengan data awal. Anda juga akan melihat bahwa class Fish memiliki dua eat() method: satu untuk memakan sesuatu secara random, dan lainnya untuk memakan ikan lainnya, yang kemudian direpresentasikan oleh class Fish lainnya:
public class Fish {
private String mSpecies;
private String mColor;
private int mSize;
Fish() {
// generic fish
mSpecies = "unknown";
mColor = "unknown";
mSize = 0;
}
Fish(String species, String color, int size) {
mSpecies = species;
mColor = color;
mSize = size;
}
public void eat() {
// eat some algae
};
public void eat(Fish fishToEat) {
// eat another fish!
};
public void sleep() {
// sleep
};
public void makeBabyFish(Fish fishSpouse, int numBabies) {
// Make numBabies worth of baby fish with Fish spouse
};
}
Class dapat disusun menjadi beberapa hierarki, ketika derived class (atau subclass) mengandung semua fitur dari parent class (atau superclass)nya, tetapi menyaring dan menambahkan beberapa object spesifik menggunakan kata kunci tambahan. Ini disebut dengan inheritance.
Contohnya, class Fish bisa terbagi menjadi dua subclass: FreshwaterFish dan SaltwaterFish. Kedua subclass ini akan memiliki fitur-fitur dari class Fish, namun bisa mengubah object lebih jauh melalui atribut dan sifat-sifat baru dari parent class Fish. Contohnya, class FreshwaterFish dapat mengandung informasi tentang lingkungan di mana ikan air tawar hidup (contohnya sungai, danau, kolam atau genangan air). Demikian pula dengan class SaltwaterFish dapat mengubah method makeBabyFish() sehingga ikan memakan pasangannya sendiri setelah berkembang biak (seperti yang didefinisikan pada super class) dengan menggunakan mekanisme override, seperti berikut:
public class SaltwaterFish extends Fish
{
@Override
public void makeBabyFish(Fish fishSpouse, int numBabies) {
// call parent method
super.makeBabyFish(fishSpouse, numBabies);
// eat mate
eat(fishSpouse);
}
}
Menyusun Perilaku Object dengan Interface
Di Java, Anda dapat menyusun perilaku object pada apa yang disebut dengan interface. Walaupun class mendefinisikan sebuah object, sebuah interface mendefinisikan beberapa perilaku yang dapat diterapkan pada sebuah object. Contohnya, kita dapat mendefinisikan sebuah interface Swimmer yang memberikan sekumpulan method yang umum di sepanjang object yang bisa berenang, apakah mereka ikan, berang-berang, atau robot yang dapat menyelam. Interface Swimmer dapat dibagi menjadi 4 method: startSwimming(), stopSwimming(), dive(), dan surface().
public interface Swimmer
{
void startSwimming();
void stopSwimming();
void dive();
void surface();
}
Sebuah class seperti Fish kemudian dapat diterapkan pada Swimmer interface (menggunakan kata kunci alat) dan menyediakan implementasi dari perilaku renang:
public class Fish implements Swimmer {
// Provide implementations of the four methods within the Swimmer interface
}
Menyusun Class dan Interface dengan Package
Hierarki class, seperti class ikan kita, dapat disusun menjadi packages. Sebuah package adalah kumpulan dari berbagai class dan interface yang dikumpulkan. Developer menggunakan namespace untuk menamakan package. Contohnya kita dapat menggunakan com.mamlambo.aquarium atau com.ourclient.project.subproject sebagai nama package agar kita tidak kehilangan track atas class yang berhubungan dengan ikan kita.
Penutupan
Wow! Anda baru saja mengarungi sebuah kursus kilat tentang Java untuk pengembangan Android. Kita telah membahas banyak materi, jadi mari kita tenangkan diri sebelum berlanjut ke pelajaran berikutnya dari rangkaian tutorial ini. Pada pelajaran berikutnya, kita akan mengubah fokus kita kepada seluk beluk dari detil syntax Java.
Anda baru saja bersinggungan dengan permukaan dari Pengembangan Java untuk Pengembangan Android. SIlahkan cek tutorial keren lainnya pada Mobiletuts+ untuk belajar lebih dalam tentang Java dan Pengembangan Android. Selamat berjuang!
https://code.tutsplus.com/id/tutorials/learn-java-for-android-development-introduction-to-java--mobile-2604
0 komentar:
Posting Komentar