Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mobile Development
Code

Memperlajari Java untuk Pengembangan Android: Perkenalan pada Java

Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Learn Java for Android Development.
New Course: Learn Java for Android
Learn Java for Android Development: Java Syntax

Indonesian (Bahasa Indonesia) translation by Yanti Baddolo (you can also view the original English article)

Pada rangkaian tutorial ini, Anda akan menjadi familiar dengan Java, sebuah bahasa pemrograman yang digunakan untuk mengembangkan aplikasi Android. Tujuan kita adalah untuk mempersiapkan orang-orang yang telah familiar dengan salah satu bahasa pemrograman, seperti PHP atau Objective-C, agar mereka merasa nyaman bekerja dengan bahasa pemrograman Java dan bekerja untuk mengembangkan aplikasi Android. Di tutorial ini, Anda akan mendapatkan sedikit perkenalan kepada dasar-dasar dari Java, termasuk object-oriented programming, inheritance, dan sebagainya. Jika Anda masih awam dengan Java, atau hanya ingin mereview detailnya, maka tutorial ini sangat tepat untuk Anda!

Memulai

Sejauh yang telah dijelaskan pada prasyarat tutorial ini, kami akan mengasumsikan bahwa Anda telah mengerti bagaimana cara menulis program (seperti di PHP, atau Visual Basic atau C++), namun Anda belum familiar dengan detil dari programming menggunakan bahasa Java. Kami tidak akan mengajarkan Anda untuk membuat program; namun kami akan memberikan Anda contoh yang jelas tentang membangun program dan prinsip yang sering digunakan dari bahasa Java, sambil menunjukkan beberapa tips dan trik khusus untuk Android.

Apa yang akan Anda Butuhkan

Secara teknis, Anda tidak memerlukan alat apapun untuk menyelesaikan tutorial ini tetapi Anda akan membutuhkannya untuk mengembangkan aplikasi Android.

Untuk mengembangkan aplikasi Android (atau aplikasi Java apapun), anda membutuhkan development environment untuk menulis dan membangun aplikasi. Eclipse adalah sebuah development environment (IDE) yang sangat popular untuk Java dan biasanya sering digunakan untuk pengembangan Android. Eclipse tersedia gratis untuk OS Windows, Mac dan Linux.

Untuk instruksi lengkap mengenai cara melakukan instalasi Eclipse (termasuk versi mana saja yang didukung oleh OS Anda) dan Android SDK (Software Development Kit), dapat dilihat pada situs pengembang Android.

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:

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 Ketidakbergantungan terhadap Platform itu Penting?

Dengan banyaknya bahasa pemrograman yang tersedia, Anda membutuhkan sebuah compiler untuk mengubah kode Anda menjadi bahasa mesin yang dapat dimengerti oleh perangkat Anda. Ini berarti Anda mungkin butuh untuk meng-compile aplikasi Anda untuk setiap perangkat atau bahasa mesin yang berbeda. Dengan kata lain, kode Anda tidak dapat dipindah-pindahkan dengan mudah. Hal ini tidak terjadi kepada Java. Compiler Java, mengubah kode Anda dari source file Java yang dapat dibaca manusia menjadi sesuatu yang disebut dengan “bytecode” di dunia Java. Ini diinterpretasikan oleh Mesin Virtual Java, yang bekerja seperti sebuah CPU yang bekerja dengan kode mesin, untuk mengeksekusi kode yang telah ter-compile. Walaupun sekilas tampak tidak efisien, namun telah banyak usaha yang dilakukan untuk membuat proses ini menjadi sangat cepat dan efisien. Semua usaha ini terbayarkan dengan performa Java yang secara umum hanya kalah dibandingkan dengan C/C++ pada perbandingan dengan performa bahasa yang umum digunakan.

Aplikasi Android bekerja pada sebuah mesin virtual yang disebut dengan Dalvik VM. Walaupun detil dari mesin virtual ini tidak penting pada kebanyakan developer, Anda dapat membayangkan Dalvik VM sebagai balon di mana aplikasi Android anda bekerja, sehingga Anda tidak perlu mengkhawatirkan tentang perangkat yang Anda gunakan, apakah itu Motorola Droid, atau HTC Evo, atau perangkat Android semutakhir apapun. Anda tidak perlu mengkhawatirkan hal itu selama perangkatnya menggunakan Dalvik VM — dan hal ini merupakan tugas dari pembuat perangkat bukan Anda.

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):

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:

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:

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:

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().

Sebuah class seperti Fish kemudian dapat diterapkan pada Swimmer interface (menggunakan kata kunci alat) dan menyediakan implementasi dari perilaku renang:

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!

Tentang Penulis

Pengembang Mobile Lauren Darcey dan Shane Conder telah berkontribusi dalam penulisan beberapa buku tentang pengembangan Android: sebuah buku tentang programming yang berjudul Android Wireless Application Development and Sams TeachYouself Android Application Development in 24 Hours. Ketika tidak sedang menulis, mereka menghabiskan waktu mengembangkan mobile software di perusahaan mereka dan memberikan jasa konsultasi. Mereka dapat dihubungi melalui email ke androidwirelessdev+mt@gmail.com, melalui blog mereka di androidbook.blogspot.com, dan di Twitter @androidwireless.

Butuh Bantuan Lebih untuk Menulis Aplikasi Android? Cek Buku dan Sumber Terbaru Kami!

Buy Android Wireless Application Development 2nd Edition Buy Sams Teach Yourself Android Application Development in 24 Hours Mamlambo code at Code Canyon


Tutorial yang Berkaitan:


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.