Modul Android KA v.2 PDF
Modul Android KA v.2 PDF
abighazy@gmail.com
2013
RioYunanto
Daftar Isi
RioYunanto
Lisensi Dokumen:
Copyright 2013 Lab. Meaning Prodi KA UNIKOM
Seluruh dokumen di Lab. Meaning Prodi KA UNIKOM dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak
menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan
dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali
mendapatkan ijin terlebih dahulu dari Lab. Meaning Prodi KA UNIKOM.
Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar
dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk
menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya,
Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari
34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel,
Motorola, Qualcomm, T-Mobile, dan Nvidia.
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance
menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak,
Google merilis kodekode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan
standar terbuka perangkat seluler.
Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat
dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar
benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset
Distribution (OHD).
RioYunanto
bertugas mengembangkan program perangkat seluler yang didukung oleh kernel Linux. Hal ini
menunjukkan indikasi bahwa Google sedang bersiap menghadapi persaingan dalam pasar telepon
seluler.
Sekitar September 2007 sebuah studi melaporkan bahwa Google mengajukan hak paten aplikasi
telepon seluler (akhirnya Google mengenalkan Nexus One, salah satu jenis telepon pintar GSM
yang menggunakan Android pada sistem operasinya. Telepon seluler ini diproduksi oleh HTC
Corporation dan tersedia di pasaran pada 5 Januari 2010).
Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android
ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd,
Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open
Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak
(mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan
berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.
Telepon pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22
Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18
jenis telepon seluler yang menggunakan Android.
Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan
pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan
dengan Gmail, dan pemberitahuan email.
RioYunanto
s
Gambar Logo Android versi 2.0/2.1 (Eclair)
RioYunanto
Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi
dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan). Kompetisi
ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua
tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.
Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin
banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi
Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam,
Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap
penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya
terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan
aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome
yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card,
kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.
RioYunanto
RioYunanto
RioYunanto
Lisensi Dokumen:
Copyright 2013 Lab. Meaning Prodi KA UNIKOM
Seluruh dokumen di Lab. Meaning Prodi KA UNIKOM dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak
menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan
dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali
mendapatkan ijin terlebih dahulu dari Lab. Meaning Prodi KA UNIKOM.
Untuk dapat membuat aplikasi Andorid, terlebih dahulu kita lakukan proses instalasi Java
Development Kit dan Android Development Tool yang telah di bundle sehingga lebih praktis
dalam proses instalasi. Secara umum ada 2 file utama yang kita perlukan yaitu:
1. jdk-7-windows-i586.exe (http://www.oracle.com/technetwork/java/javase/downloads/)
2. adt-bundle-windows-x86.zip (http://developer.android.com/sdk/index.html)
dimana kedua file tersebut bias kita peroleh dengan mendownload langsung dari alamat web
yang telah tercantum diatas.
RioYunanto
RioYunanto
Setelah proses extract selesai, didalam folder tersebut berisi 2 folder utama yaitu eclipse dan sdk.
Kita hanya perlu fokus pada folder eclipse, yang didalamnya terdapat file eclipse.exe yang
selanjutnya dapat langsung kita jalankan file tersebut, sehingga muncul tampilan gambar berikut.
RioYunanto
RioYunanto
RioYunanto
RioYunanto
RioYunanto
RioYunanto
Lisensi Dokumen:
Copyright 2013 Lab. Meaning Prodi KA UNIKOM
Seluruh dokumen di Lab. Meaning Prodi KA UNIKOM dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak
menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan
dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali
mendapatkan ijin terlebih dahulu dari Lab. Meaning Prodi KA UNIKOM.
Pada bab ini, kita akan memulai membuat project-project baru yang mudah namun punya
peluang untuk dikembangkan menjadi aplikasi yang menarik. Mulai dari aplikasi yang standalone
maupun yang sudah menggunakan pendekatan client-server. Untuk memulai setiap project baru
berikut ini, kita akan selalu membuat project baru secara default seperti membuat HelloWorld,
dengan memberikan nama project yang berbeda. Setelah terbentuk project baru, langkah
selanjutnya adalah memodifikasi file-file yang ada sesuai dengan project yang kita inginkan.
RioYunanto
activity_main.xml
<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"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Nama Lengkap Anda"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:ems="10"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:text="Klik" />
</RelativeLayout>
RioYunanto
MainActivity.java
package com.example.project1;
import
import
import
import
import
import
import
android.os.Bundle;
android.app.Activity;
android.view.Menu;
android.view.View;
android.widget.Button;
android.widget.EditText;
android.widget.Toast;
RioYunanto
activity_main.xml
<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"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="51dp"
android:text="Pesan KFC" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="Buka www.yahoo.com" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="Camera" />
</RelativeLayout>
RioYunanto
MainActivity.java
package example.project2;
import
import
import
import
import
import
import
android.net.Uri;
android.os.Bundle;
android.app.Activity;
android.content.Intent;
android.view.Menu;
android.view.View;
android.widget.Button;
AndroidManifest.xmls
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="example.project2"
RioYunanto
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="example.project2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
RioYunanto
AndroidManifest.xmls
<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"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="No Hape Tujuan"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextNoHape"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextNoHape"
android:layout_marginTop="19dp"
android:text="Isi Pesan SMS"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextSMS"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView2"
android:layout_marginTop="20dp"
android:ems="10"
android:gravity="top"
android:inputType="textMultiLine"
android:lines="5" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/editTextSMS"
RioYunanto
android:layout_marginTop="23dp"
android:text="Kirim" />
</RelativeLayout>
AndroidManifest.xmls
package example.project3;
android.os.Bundle;
android.app.Activity;
android.telephony.SmsManager;
android.view.Menu;
android.view.View;
android.widget.Button;
android.widget.EditText;
android.widget.Toast;
import
import
import
import
import
import
import
import
RioYunanto
AndroidManifest.xmls
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="example.project3"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.SEND_SMS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="example.project3.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
Tipe Data
Varchar(50)
Varchar(50)
Int(11)
RioYunanto
Penulis
Tukul Arwana
BePe
Mario
Tahun
2015
2020
2005
save_buku.php
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error()); }
mysql_select_db("simulasi", $con);
if
($_GET["jdl"]==Null
$_GET["thn"]==Null) {
||
$_GET["pls"]==Null
||
RioYunanto
list_buku.php
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("simulasi", $con);
$result = mysql_query("SELECT * FROM buku");
echo
"<table
width='100%'
border='0'
cellspacing='0'
cellpadding='0'>
<tr bgcolor='#cccccc'>
<td>Judul</td><td>Penulis</td><td>Tahun</td>
</tr>
";
while($row = mysql_fetch_array($result))
{
echo "<tr>
<td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td>
</tr>
";
}
echo "</table>";
mysql_close($con);
?>
RioYunanto
activity_main.xml
<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"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="46dp"
android:text="Simulasi Stored Procedure"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:text="Input Data" />
<Button
android:id="@+id/button2"
RioYunanto
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="42dp"
android:text="Tampilkan Data" />
</RelativeLayout>
forminput.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" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
RioYunanto
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView2"
android:ems="10"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:text="Penulis Buku"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView3"
android:ems="10"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText2"
android:text="Tahun Terbit"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView4"
android:ems="10"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
RioYunanto
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="16dp"
android:text="Judul Buku"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText3"
android:layout_centerHorizontal="true"
android:text="Simpan Data" />
</RelativeLayout>
formtampilan.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
RioYunanto
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Tampilan Data"
android:textAppearance="?android:attr/textAppearanceLarge" />
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp" />
</RelativeLayout>
MainActivity.java
package example.mobileapp;
import
import
import
import
import
import
android.os.Bundle;
android.app.Activity;
android.content.Intent;
android.view.Menu;
android.view.View;
android.widget.Button;
RioYunanto
}
});
btn_tampil.setOnClickListener(new Button.OnClickListener() {
public void onClick(View arg0) {
Intent
intent
=
new
Intent(getApplicationContext(),
TampilActivity.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it
is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
InputActivity.java
package example.mobileapp;
import
import
import
import
import
import
android.app.Activity;
android.os.Bundle;
android.view.View;
android.webkit.WebView;
android.widget.Button;
android.widget.EditText;
RioYunanto
findViewById(R.id.webView1);
webView.loadUrl("http://192.168.2.202/simulasi/save_buku.php?jdl="
+ txt_judul.getText()
+ "&pls="
+ txt_penulis.getText()
+ "&thn=" + txt_tahun.getText() +
"");
}
});
}
}
TampilActivity.java
package example.mobileapp;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class TampilActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.formtampilan);
WebView webView = (WebView) findViewById(R.id.webView1);
webView.loadUrl("http://192.168.2.202/simulasi/list_buku.php");
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="example.mobileapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<application
RioYunanto
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="example.mobileapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="InputActivity"
android:label="Form Input Data"
android:theme="@style/AppTheme" >
</activity>
<activity
android:name="TampilActivity"
android:label="Tampilan Data Buku"
android:theme="@style/AppTheme" >
</activity>
</application>
</manifest>
RioYunanto
RioYunanto
Referensi
[ 1 ] http://id.wikipedia.org/wiki/Android_(sistem_operasi)
[ 2 ] http://www.android.com/
[ 3 ] https://developers.google.com/android/