E-Book Pemrograman Android
E-Book Pemrograman Android
KeDai Computerworks
PENGENALAN ANDROID
KeDai Computerworks
MENGENAL ANDROID STUDIO
Struktur Proyek
Secara default, Android Studio menampilkan file proyek
Anda dalam tampilan proyek Android seperti yang ditunjukkan
dalam gambar Tampilan ini diatur menurut modul untuk memberi
akses cepat ke file sumber kunci proyek Anda.
res: Berisi semua sumber daya bukan kode, seperti tata letak
XML, string UI, dan gambar bitmap.
Struktur proyek Android pada disk berbeda dari representasi rata ini. Untuk melihat struktur file
sebenarnya dari proyek ini, pilih Project dari menu tarik turun Project (dalam gambar 1, struktur
ditampilkan sebagai Android).
Anda juga bisa menyesuaikan tampilan file proyek untuk berfokus pada aspek tertentu dari
pengembangan aplikasi Anda. Misalnya, memilih tampilan Problems dari tampilan proyek Anda akan
menampilkan tautan ke file sumber yang berisi kesalahan pengkodean dan sintaks yang dikenal, misalnya
tag penutup elemen XML tidak ada dalam file tata letak.
Antarmuka Pengguna
Jendela utama Android Studio terdiri dari beberapa bidang logika yang diidentifikasi dalam gambar
1. Bilah alat memungkinkan Anda untuk melakukan berbagai jenis tindakan, termasuk menjalankan
aplikasi dan meluncurkan alat Android.
2. Bilah navigasi akan membantu Anda menavigasi di antara proyek dan file yang dibuka untuk
pengeditan. Di sini tampilan struktur yang terlihat tampak lebih ringkas daripada jendela Project.
3. Jendela editor merupakan tempat Anda membuat dan mengubah kode. Bergantung pada jenis file
saat ini, editor dapat berubah. Misalnya, ketika melihat file tata letak, editor akan menampilkan
Layout Editor.
4. Jendela alat memberi Anda akses ke tugas-tugas spesifik seperti pengelolaan proyek, penelusuran,
kontrol versi, dan banyak lagi. Anda bisa meluaskan dan juga menciutkannya.
5. Bilah status menampilkan status proyek Anda dan IDE itu sendiri, serta setiap peringatan atau
pesan.
PENGENALAN ANDROID
KeDai Computerworks
Anda bisa menata jendela utama untuk memberi Anda ruang layar yang lebih luas dengan
menyembunyikan atau memindahkan bilah alat dan jendela alat. Anda juga bisa menggunakan pintasan
keyboard untuk mengakses sebagian besar fitur IDE.
Anda dapat menelusuri seluruh kode sumber, basis data, tindakan, elemen antarmuka pengguna, dan
seterusnya setiap saat dengan menekan tombol Shift dua kali, atau mengeklik kaca pembesar di sudut
kanan atas dari jendela Android Studio. Ini akan sangat berguna misalnya saat Anda mencoba menemukan
tindakan IDE tertentu yang Anda lupakan cara memicunya.
File Proyek
Menampilkan semua file manifes untuk setiap modul dalam grup level-modul (bila Anda
memiliki beberapa file manifes berbeda untuk beberapa ragam produk dan tipe
pembangunan).
Menampilkan semua file sumber daya alternatif dalam grup tunggal, sebagai ganti dalam
folder terpisah per qualifier sumber daya. Misalnya, semua versi kepadatan ikon peluncur
Anda terlihat berdampingan.
PENGENALAN ANDROID
KeDai Computerworks
Dalam setiap modul aplikasi Android, file ditampilkan dalam grup-grup berikut:
manifests
java
Berisi file kode sumber Java, dipisahkan oleh nama paket, termasuk kode pengujian
JUnit.
res
Berisi semua sumber daya bukan kode, seperti layout XML, string UI, dan gambar
bitmap, yang dibagi ke dalam beberapa sub-direktorinya. Untuk informasi
selengkapnya tentang semua tipe sumber daya yang memungkinkan,
lihat Menyediakan Sumber Daya.
PENGENALAN ANDROID
KeDai Computerworks
Tampilan Proyek Android
Untuk melihat struktur file sesungguhnya dari
suatu proyek termasuk semua file tersembunyi dari
tampilan Android, pilih Project dari menu tarik-turun di
bagian atas jendela Project.
module-name/
build/
libs/
src/
Berisi semua file sumber daya dan kode untuk modul dalam subdirektori berikut:
androidTest/
Berisi kode untuk pengujian instrumentasi yang dijalankan pada perangkat Android.
Untuk informasi selengkapnya, lihat Dokumentasi Pengujian Android.
main/
Berisi file sourceset "main": sumber daya dan kode Android yang digunakan bersama
oleh semua varian pembangunan (file untuk varian pembangunan lainnya berada
dalam direktori saudara, misalnya src/debug/ untuk tipe pembangunan versi debug).
PENGENALAN ANDROID
KeDai Computerworks
AndroidManifest.xml
java/
jni/
Berisi kode asli yang menggunakan Java Native Interface (JNI). Untuk informasi
selengkapnya, lihat Dokumentasi Android NDK.
gen/
Berisi file Java yang dihasilkan oleh Android Studio, misalnya file R.java Anda dan
antarmuka yang dibuat dari file AIDL.
res/
Berisi sumber daya aplikasi, misalnya file yang dapat digambar, file layout, dan string
UI. Lihat Sumber Daya Aplikasi untuk informasi selengkapnya.
assets/
Berisi file yang harus dikompilasi menjadi file .apk apa adanya. Anda bisa menyusuri
direktori ini dengan cara yang sama seperti pada sistem file umumnya dengan
menggunakan URI dan membaca file sebagai aliran byte dengan
menggunakan AssetManager . Misalnya, inilah lokasi yang bagus untuk data game
dan tekstur.
test/
Berisi kode untuk pengujian lokal yang dijalankan pada JVM host Anda.
build.gradle (modul)
Ini mendefinisikan konfigurasi pembangunan Anda yang berlaku pada semua modul.
File ini integral pada proyek, jadi Anda harus menyimpannya dalam kontrol revisi
bersama semua kode sumber lainnya.
SDK Location: Menyetel lokasi JDK, Android SDK, dan Android NDK yang digunakan
proyek Anda.
Project: Menyetel versi untuk Gradle dan plugin Android untuk Gradle, serta nama
lokasi repositori.
Developer Services: Berisi setelan untuk komponen add-in Android Studio dari Google
atau pihak ketiga lainnya. Lihat Developer Services, di bawah.
Developer Services
Bagian Developer Services pada kotak dialog Project Structure berisi laman konfigurasi
untuk sejumlah layanan yang bisa Anda gunakan bersama aplikasi. Bagian ini berisi laman
berikut:
Modul
Bagian setelan Modules memungkinkan Anda mengubah opsi konfigurasi untuk
setiap modul proyek Anda. Setiap laman setelan modul dibagi ke dalam tab-tab berikut:
Properties: Menetapkan versi SDK dan alat pembangunan yang digunakan untuk
mengompilasi modul.
Signing: Menetapkan sertifikat yang akan digunakan untuk menandatangani APK Anda.
Klik start a new Android Studio Project untuk membuat project android baru,
Kemudian penamaan aplikasi dan package seperti gambar dibawah.
PENGENALAN ANDROID
KeDai Computerworks
Selanjutnya memberikan nama dari sebuah project yang ingin dibuat
untuk menjalankan ke Aplikasi dapat kita menggunkan Virtual Android atau langsung ke
Mobile Android intinya versi android pada mobile sama dengan target versi android pada
aplikasi, nah kebetulan saya langsung menggunakan Device Mobile Android cara nya cukup
muda:
1. Download dan Install Univesal Android Studio
2. Ada pun cara Enable USB Debugging
a. Masuk ke menu Settings (Setelan) > About (Tentang Letak menu About
b. Pada Menu About (Tentang), cari dan masuk ke menu Build number (Nomor
software).
PENGENALAN ANDROID
KeDai Computerworks
Tap (Klik) Build number (Nomor bentukan) sebanyak 7 kali. Pada beberapa
tap pertama akan muncul popup you are now 4 step away for being developer
(4 klik lagi jadi pengembang) teruskan tap 4 kali menu Build Number (Nomor
bentukan) dan setelah selesai akan muncul popup pemberitahuan you are now
options (Opsi pengembang) sudah muncul. Jika sudah muncul masuk ke menu
Debugging (Debugging USB) dengan cara tap / klik area USB Debugging sepeti
gambar berikut.
PENGENALAN ANDROID
KeDai Computerworks
Catatan:
malware.
PENGENALAN ANDROID
KeDai Computerworks
MEMBUAT CALCULATOR SEDERHANA
* Button
2. Untuk lebih detailnya teman-teman bisa lihat XML versi Text nya dibawah
ini :
PENGENALAN ANDROID
KeDai Computerworks
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android: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="com.example.hadrianmetrix.belajar.MainActivity">
<EditText
android:id="@+id/result_id"
android:layout_width="match_parent"
android:layout_height="70dp" />
<Button
android:id="@+id/Btn7_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/result_id"
android:onClick="btn7Clicked"
android:text="7" />
<Button
android:id="@+id/Btn8_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/result_id"
android:layout_toRightOf="@id/Btn7_id"
android:onClick="btn8Clicked"
android:text="8" />
<Button
android:id="@+id/Btn9_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/result_id"
android:layout_toRightOf="@id/Btn8_id"
android:onClick="btn9Clicked"
android:text="9" />
<Button
android:id="@+id/Btnclear_id"
android:layout_width="90dp"
android:layout_height="60dp"
android:layout_below="@id/result_id"
android:layout_toRightOf="@id/Btn9_id"
android:onClick="btnclearClicked"
android:text="clear" />
<Button
android:id="@+id/Btn4_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn7_id"
android:onClick="btn4Clicked"
android:text="4" />
<Button
android:id="@+id/Btn5_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn8_id"
android:layout_toRightOf="@id/Btn4_id"
android:onClick="btn5Clicked"
android:text="5" />
PENGENALAN ANDROID
KeDai Computerworks
<Button
android:id="@+id/Btn6_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn9_id"
android:layout_toRightOf="@id/Btn5_id"
android:onClick="btn6Clicked"
android:text="6" />
<Button
android:id="@+id/Btnplus_id"
android:layout_width="90dp"
android:layout_height="60dp"
android:layout_below="@id/Btnclear_id"
android:layout_toRightOf="@id/Btn6_id"
android:onClick="btnplusClicked"
android:text="+" />
<Button
android:id="@+id/Btn1_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn4_id"
android:onClick="btn1Clicked"
android:text="1" />
<Button
android:id="@+id/Btn2_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn5_id"
android:layout_toRightOf="@id/Btn1_id"
android:onClick="btn2Clicked"
android:text="2" />
<Button
android:id="@+id/Btn3_id"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_below="@id/Btn6_id"
android:layout_toRightOf="@id/Btn2_id"
android:onClick="btn3Clicked"
android:text="3" />
<Button
android:id="@+id/Btnminus_id"
android:layout_width="90dp"
android:layout_height="60dp"
android:layout_below="@id/Btnplus_id"
android:layout_toRightOf="@id/Btn3_id"
android:onClick="btnminusClicked"
android:text="-" />
<Button
android:id="@+id/Btnequal_id"
android:layout_width="110dp"
android:layout_height="60dp"
android:layout_below="@id/Btn1_id"
android:onClick="btnequalClicked"
android:text="=" />
<Button
android:id="@+id/Btndivide_id"
android:layout_width="90dp"
android:layout_height="60dp"
android:onClick="btndivideClicked"
android:text="/"
android:layout_below="@+id/Btnminus_id"
PENGENALAN ANDROID
KeDai Computerworks
android:layout_toRightOf="@+id/Btnmulti_id"
android:layout_toEndOf="@+id/Btnmulti_id" />
<Button
android:id="@+id/Btnmulti_id"
android:layout_width="100dp"
android:layout_height="60dp"
android:onClick="btnmultiClicked"
android:text="*"
android:layout_below="@+id/Btn2_id"
android:layout_toLeftOf="@+id/Btnminus_id"
android:layout_toStartOf="@+id/Btnminus_id" />
</RelativeLayout>
package com.example.hadrianmetrix.belajar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
showResult = (EditText)findViewById(R.id.result_id);
}
public void btn1Clicked(View v){
insert(1);
PENGENALAN ANDROID
KeDai Computerworks
}
}
public void btn3Clicked(View v){
insert(3);
}
public void btn4Clicked(View v){
insert(4);
}
public void btn5Clicked(View v){
insert(5);
}
public void btn6Clicked(View v){
insert(6);
}
public void btn7Clicked(View v){
insert(7);
}
public void btn8Clicked(View v){
insert(8);
}
public void btn9Clicked(View v){
insert(9);
}
public void btnplusClicked(View v){
perform();
op = '+';
}
public void btndivideClicked(View v){
perform();
op = '/';
}
public void btnmultiClicked(View v){
perform();
op = '*';
}
public void btnequalClicked(View v){
calculate();
}
private void perform() {
// TODO Auto-generated method stub
str = "";
calculateNoShow();
numtemp = num;
}
private void calculate() {
// TODO Auto-generated method stub
if(op == '+')
num = numtemp+num;
else if(op == '-')
num = numtemp-num;
else if(op == '/')
num = numtemp/num;
else if(op == '*')
num = numtemp*num;
showResult.setText(""+num);
}
SQLite adalah sebuah open source database yang telah ada cukup lama, cukup stabil, dan
sangat terkenal pada perangkat kecil, termasuk Android. SQLite cocok digunakan sebagai
database dalam Android, maupun Berbagai program yang membutuhkan kemudahan serta
tidak membutuhkan resource besar. SQLite menggunakan konsep Zero Configuration dan
embedded database, yaitu sebuah konsep dimana developer tidak perlu menginstall ataupun
melakukan setup database kedalam sebuah server database sehingga tidak membutuhkan
resource yang besar dan proses pembuatan database pun menjadi instan. Selain itu dengan
menggunakan konsep embedded maka database pada SQLite digunakan sebagai library dan di
compile bersamaan dengan program. SQLIte saat ini banyak digunakan di dalam aplikasi dan
program termasuk dalam beberapa high profile project. SQLite juga merupakan mesin database
SQL embedded yang berbeda dengan kebanyakan database SQL lainnya. seperti yang
dijelaskan sebelum nya SQLite tidak memiliki proses server yang terpisah sehinggaSQLite
membaca dan menulis secara langsung ke disk.
Struktur SQLite berbeda dengan struktur database lain seperti MySQL, Oracle dan
sebagainya yang mengusung konsep Relational Database Management System (RDBMS).
Struktur SQLite yang mengusung konsep Embedded Relational Database Management System
(ERDBMS) dan Server Less Architecture sehingga struktur database terpasang bukan pada
server host melainkan pada client host seperti gambar dibawah ini :
PENGENALAN ANDROID
KeDai Computerworks
Selain dengan konsep dan arsitektur yang baik itu SQLite sudah memiliki interface API
untuk bahasa pemrograman umum seperti C++, PHP, Perl, Phyton, dan Tcl. Beberapa contoh
tipe data yang ada dalam SQLite diantaranya :
Numeric ( integer , float , double),
Text ( Char , varchar , text )
DateTime
BLOB
Kelebihan SQLite
Performanya lebih efisien dan cepat dibanding database lain
Sedikit penggunaan memory, hanya membutuhkan single library untuk mengkases
database
Dapat berjalan di banyak platform yang berbeda
Sudah memenuhi standar ACID (Atomicity, Consistency, Isolation, dan, Durability)
SQL Support mendukung ANSI 92 SQL Standar
License public domain, free untuk redistributed
Kekurangan SQLite
Tidak adanya CHECK constraint
Tidak mendukung Variabel subquery
Tidak adanya Foreign Key Constraint
Tidak adanya fasilitas Alter Table sehingga apabila ingin mengubah struktur table harus
menghapus semua table kemudian build ulang
Grant dan Revoke serta hak akses tergantung dari Operating system yang digunakan
Tidak tersedia Right dan Full Outer Join hanya tersedia left outer join
Tidak dapat melakukan Penulisan pada View
Untuk modifikasi view hanya menggunakan trigger
Selain itu beberapa Program besar juga sudah mendukung SQLite dan menyertakan SQLite di
dalam struktur mereka diantaranya :
Mozilla Firefox, Mozilla Thunderbird (bookmarks, cookies, contacts etc.) .
Skype
Adobe Photoshop Lightroom, Adobe AIR, Adobe Reader
Ruby on Rails'
Opera
Service Management Facility pada Solaris dan OpenSolaris
PENGENALAN ANDROID
KeDai Computerworks
HTML5 menerapkan SQLite sebagai WebSimpleDB API
Apple's iOS (SMS/MMS, Calendar, Call history, Contacts storage)
Symbian
Nokia's Maemo
GOOGLE'S ANDROID
Google's Chrome browser
RIM's BlackBerry
Linux Foundation's MeeGo
Palm's webOS
Untuk Android, SQLite dijadikan satu di dalam Android runtime, sehingga setiap aplikasi
Android dapat membuat basis data SQLite. Karena SQLite menggunakan antarmuka SQL,
cukup mudah untuk digunakan orang orang dengan pengalaman lain yang berbasis databases.
Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi
Android, yaitu:
Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer.
Ini membuatnya relatif mudah digunakan. Tidak memiliki server. Tidak ada proses database
SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database.
Single-file database. Ini membuat keamanan database secara langsung. Open source. Hal ini
membuat developer mudah dalam pengembangan aplikasi.
Project : Database
Tabel : Barang
Field : id
nama_barang
merk_barang
harga_barang
Fitur Aplikasi :
Membuat Database SQLite dan Menyambungkan Aplikasi Android ke SQLite
Membuat Fungsi Create Data
Membuat Fungsi Read Data
PENGENALAN ANDROID
KeDai Computerworks
Membuat Fungsi Update/Edit Data
Membuat Fungsi Delete Data
barang.java
Kelas barang berfungsi untuk mendefinisikan objek barang beserta fungsi-fungsi dan atribut-
atributnya. Yah seperti barang pada umumnya, mereka mempunyai nama, ID, merk, dan
sebagainya.
package com.example.hadrianmetrix.database;
public class barang {
private long id;
private String nama_barang;
private String merk_barang;
private String harga_barang;
public barang()
{
/**
* @return the id
*/
public long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(long id) {
this.id = id;
}
/**
* @return the nama_barang
*/
public String getNama_barang() {
return nama_barang;
}
/**
* @param nama_barang the nama_barang to set
*/
public void setNama_barang(String nama_barang) {
this.nama_barang = nama_barang;
}
/**
* @return the merk_barang
*/
public String getMerk_barang() {
return merk_barang;
}
PENGENALAN ANDROID
KeDai Computerworks
/**
* @param merk_barang the merk_barang to set
*/
public void setMerk_barang(String merk_barang) {
this.merk_barang = merk_barang;
}
/**
* @return the harga_barang
*/
public String getHarga_barang() {
return harga_barang;
}
/**
* @param harga_barang the harga_barang to set
*/
public void setHarga_barang(String harga_barang) {
this.harga_barang = harga_barang;
}
@Override
public String toString()
{
return "Barang "+ nama_barang +" "+ merk_barang + " "+ harga_barang;
}
}
DATABASE HELPER
Sesuai namanya, kelas ini berfungsi untuk memudahkan kita dalam membuat dan mengakses
database SQLite yang akan dipakai oleh aplikasi. Kelas ini kebanyakan berisi method-method
berkaitan dengan manajemen database, seperti onUpgrade() dan onCreate().
Database Helper sebenarnya sudah ada kelasnya pada Android, yaitu bernama
SQLiteOpenHelper. Sehingga kita tinggal meng-extends kelas ini dari kelas
SQLiteOpenHelper, atau dengan kata lain, melakukan pewarisan.
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/nama_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textSize="20sp"
android:textColor="#00BFFF"
android:text="KeDai ComputerWorks"
/>
<Button
android:id="@+id/button_tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nama_app"
android:layout_centerHorizontal="true"
android:text="Tambah Data"
/>
</RelativeLayout>
PENGENALAN ANDROID
KeDai Computerworks
menu.java
package com.example.hadrianmetrix.database;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.button_tambah :
Intent i = new Intent(this, CreateData.class);
startActivity(i);
break;
}
}
}
PENGENALAN ANDROID
KeDai Computerworks
create_data.xml
<Button
android:id="@+id/button_tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nama_app"
android:layout_centerHorizontal="true"
android:text="Tambah Data"
/>
</RelativeLayout>
Layout di atas berisi EditText yang berfungsi sebagai wadah inputan tiga buah informasi dasar,
yaitu nama barang, merk barang dan harga barang, dan sebuah tombol submit di bawahnya.
CreateData.java
package com.example.hadrianmetrix.database;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_data);
switch(v.getId())
{
case R.id.buttom_submit:
// insert data barang baru
barang = dataSource.createBarang(nama, merk, harga);
//konfirmasi kesuksesan
Toast.makeText(this, "masuk Barang\n" +
"nama" + barang.getNama_barang() +
"merk" + barang.getMerk_barang() +
"harga" + barang.getHarga_barang(),
Toast.LENGTH_LONG).show();
break;
}
PENGENALAN ANDROID
KeDai Computerworks
}
}
DBDataSource.java
package com.example.hadrianmetrix.database;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
// close cursor
cursor.close();
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Maka Outpuynya