Friday, February 06, 2015

Android - Membuat Tombol Navigasi di ActionBar

Akan dibuat sebuah aplikasi yang memiliki tombol navigasi ke Activity utama, seperti yang nampak pada video berikut

Buat project Android baru dengan 2 activity, misalnya di sini ada MainActivity dengan NextActivity.
MainActivity menjadi activity utama yang memiliki tombol Next untuk memanggil NextActivity.
Tambahkan Button di layout activity_main dengan action onClick="showNextActivity"
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="next"
        android:id="@+id/bNext"
        android:onClick="showNextActivity"
/>

Tambahkan method showNextActivity di MainActivity.java untuk memanggil NextActivity
public void showNextActivity(View view){
        Intent intent = new Intent(this, NextActivity.class);
        startActivity(intent);
}

Selanjutnya tambahkan baris berikut di NextActivity.java pada method onCreate
//mengaktifkan tombol navigasi home
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

Ubah method onOptionsItemSelected di NextActivity.java menjadi seperti di bawah ini untuk memberikan action ke tombol navigasi agar kembali ke Activity utama
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
        }

        return super.onOptionsItemSelected(item);
    }

source code lengkap
https://github.com/ardhiesta/android-home_navigation

Hosting Unlimited Indonesia

Thursday, December 25, 2014

Share Koneksi Internet di Ubuntu

catatan : Tutorial ini hanya berlaku di Ubuntu 14.04

Koneksi internet di laptop (konek kabel LAN) akan dishare melalui wifi (laptop dijadikan access point).

1. Install dhcp3-server dan hostapd
sudo apt-get install dhcp3-server hostapd

2. Edit file /etc/hostapd/hostapd.conf
sudo [text_editor] /etc/hostapd/hostapd.conf

ganti [text_editor] dengan nama program text editor di Ubuntu, misalnya gedit

*gedit adalah program text editor semacam notepad, belum terinstall secara default di Lubuntu. Bisa install dulu geditnya atau pakai program lain semisal leafpad yang sudah ada otomatis di Lubuntu, perintah di Lubuntu menjadi
sudo leafpad /etc/hostapd/hostapd.conf
Selanjutnya isi file /etc/hostapd/hostapd.conf seperti berikut
interface=wlan0
driver=nl80211
ssid=geekpeek
channel=1
hw_mode=g
auth_algs=1
wpa=3
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

keterangan
geekpeek --> nama wifi
12345678 --> password wifi

Ubah nama wifi dan password wifi sesuai kebutuhan kamu, simpan file.

3. Edit file /etc/default/isc-dhcp-server
sudo [text_editor] /etc/default/isc-dhcp-server

ubah
INTERFACES=""
menjadi
INTERFACES="wlan0"

simpan file

4. Edit file /etc/dhcp/dhcpd.conf
sudo [text_editor] /etc/dhcp/dhcpd.conf

tambahkan di akhir file seperti berikut
subnet 10.10.0.0 netmask 255.255.255.0 {
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.4.4, 8.8.8.8;
        option routers 10.10.0.1;
}

simpan file

5. Edit file /etc/sysctl.conf
hilangkan tanda # di depan baris
awalnya
#net.ipv4.ip_forward = 1

ubah menjadi
net.ipv4.ip_forward = 1

6. Buat script bash, beri nama sesuka kamu. Misalnya ini saya buat file Documents/wifi.sh (file bernama wifi.sh, tersimpan di folder Documents pada directory home user linux), isi file sebagai berikut
#!/bin/bash
nmcli nm wifi off
rfkill unblock wlan
ifconfig wlan0 10.10.0.1/24
iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o eth0 -j MASQUERADE
service isc-dhcp-server start
hostapd /etc/hostapd/hostapd.conf

Buatnya pakai text editor yah (gedit, leafpad, nano, dll). Simpan kalau sudah.

Beri akses execute ke file
chmod +x Documents/wifi.sh

Restart laptop

Untuk menjalankan tethering, ini perintahnya
sudo ~/Documents/wifi.sh

Untuk mematikan tethering, tekan Ctrl+C pada terminal yang menjalankan script bash tadi

Sumber
http://thebeautifullmind.com/2012/09/19/sharing-internet-over-wifi-between-ubuntu-and-android/

Lazada Indonesia

Monday, December 22, 2014

Terima Kasih Ibu - Belajar tentang Arti Seorang Ibu dari Mas Toni Blank

Ibu, sosok yang sangat besar jasanya bagi setiap insan manusia.
Kasih sayangnya diabadikan dalam sebuah lagu,
"..tak terhingga sepanjang masa...
hanya memberi.. tak harap kembali..
bagai sang surya menerangi dunia..."

Begitu pula bagi mas Toni Blank yang mencurahkan isi hatinya tentang sosok seorang ibu.
 

"Ibu adalah yang melahirkan, yang membesarkan...", kata mas Toni.
Menurut mas Toni, kasih sayang ibu mengisi suatu generasi.

Kita semua pasti punya banyak momen kenangan bersama ibu, tak terkecuali mas Toni.
Mas Toni sewaktu kecil berangkat sekolah diantar oleh ibu, sampai di sekolah ibunya pulang. Walau berangkatnya masih diantar ibu, Mas Toni pulang dari sekolah sudah berani sendiri.
Kita pun begitu, semasa kecil mungkin juga suka diantar ibu ke sekolah.
Atau ketika main sering dicari ibu, disuruh pulang.
Atau sering kena omel ibu kalau nakal.

Masakan ibu...
Kita pasti setuju dengan cerita mas Toni, selalu ada masakan favorit buatan ibu.
Mas Toni suka gudeg dan pecel buatan ibunya.
Walaupun di warung-warung ataupun restoran banyak masakan yang lebih wah dari masakan ibu, tetap ga bisa mengalahkan kerinduan kita akan masakan ibu yang sederhana namun merindukan.
Sering kali ibu tak menyediakan cemilan yang wah, hanya ketela singkong dan pisang rebus seperti halnya yang dialami mas Toni, namun tetap nikmat disantap bersama keluarga.

Kita pasti pernah disuruh oleh ibu membantu kegiatan di rumah.
Seperti mas Toni yang pernah disuruh ibunya membantu di sawah.
Sempatkanlah walau sejenak untuk membantu ibu.
Menyapu lantai, mengelap perabot, ataupun mengantarkan ibu pergi berbelanja janganlah dianggap sebagai sesuatu yang memberatkan.
Ibu kita mengalami benyak hal yang berat untuk melahirkan, mendidik kita hingga besar.

Dongeng dari ibu...
Teringat kita di waktu kecil, sebelum tidur ibu selalu menceritakan berbagai kisah dongeng.
Ada di kancil yang mencuri ketimun, ada Timun Mas yang dikejar raksasa, atau dongeng dari daerah lain yang melegenda.
Di sana diselipkan berbagai pesan bijak ibu yang ingin anaknya menerapkan berbagai hal baik.
Demikian pula yang dialami mas Toni, yang dalam setiap cerita ibunya diberikan pesan untuk selalu berbuat baik dan menyebarkan cinta kepada sesama.

Ibu sering memberikan hal-hal kecil yang membahagiakan, demikian menurut mas Toni.
Ibu tidak pernah mengikat, yang mereka ikat hanyalah cinta yang nyata, cinta yang pasti, bukan cinta mati atau cinta yang lain.
Iya, demikian murninya cinta seorang ibu :)

Pernah bilang ibu jahat?
Ketika kita dimarahi ibu karena kenakalan kita, atau hal yang lain, mungkin kita pernah bilang demikian.
Namun kata mas Toni, ibu tidak jahat.
Ibu hanya menuntut sebuah nilai (yang baik dari diri kita), tidak pernah menuntut uang yang banyak (materi) dari kita untuk menunjukkan bahwa kita mampu.
Begitu kan, ibu tidak pernah menuntut, ibu hanya memberi...

Terharu, mas Toni jadi bener ngomongnya waktu mbahas sosok ibu ini.

Sudahkah kita mencintai ibu seperti mas Toni ini, walaupun kondisi mas Toni sekarang kejiwaannya terganggu, namun cinta ibu masih teringat dengan jelas oleh mas Toni.

Sunday, December 21, 2014

Pemrograman Android - Menambahkan Icon ke EditText

Komponen EditText akan jadi lebih menarik jika ditambahkan icon ke dalamnya, caranya seperti yang diuraikan dalam video berikut

Friday, November 07, 2014

Menampilkan Image dari Internet ke ImageView Android

UPDATE
Metode ini sudah tidak bisa dipakai

Gambar yang terdapat di suatu URL akan ditampilkan ke dalam ImageView.
Buat layout dengan sebuah ImageView di dalamnya untuk menampilkan image
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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:id="@+id/a">

    <!-- komponen ImageView untuk menampilkan image dari internet -->
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>
Di dalam MainActivity tambahkan class DownloadImageTask yang meng-extends AsyncTask untuk mendownload image dari internet
    private class DownloadImageTask extends AsyncTask {
        ImageView bmImage;

        public DownloadImageTask(ImageView bmImage) {
            this.bmImage = bmImage;
        }

        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap mIcon11 = null;
            try {
                InputStream in = new java.net.URL(urldisplay).openStream();
                mIcon11 = BitmapFactory.decodeStream(in);
            } catch (Exception e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return mIcon11;
        }

        protected void onPostExecute(Bitmap result) {
            bmImage.setImageBitmap(result);
        }
    }
Panggil DownloadImageTask di dalam method OnCreate dengan menambahkan URL gambar yang akan ditampilkan
new DownloadImageTask((ImageView) findViewById(R.id.imageView)).execute("http://i1-news.softpedia-static.com/images/news2/Guake-Review-463465-4.jpg");
Source code lengkap MainActivity akan menjadi seperti ini
MainActivity.java
package ardhi.com.simpleimageviewer;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import java.io.InputStream;


public class MainActivity extends ActionBarActivity {

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

        new DownloadImageTask((ImageView) findViewById(R.id.imageView)).execute("http://i1-news.softpedia-static.com/images/news2/Guake-Review-463465-4.jpg"); //memanggil class DownloadImageTask untuk menampilkan image dari url yang dimasukkan
    }

    //class untuk mendownload image dan menampilkannya ke imageView, menggunakan asynchronous task
    private class DownloadImageTask extends AsyncTask {
        ImageView bmImage;

        public DownloadImageTask(ImageView bmImage) {
            this.bmImage = bmImage;
        }

        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap mIcon11 = null;
            try {
                InputStream in = new java.net.URL(urldisplay).openStream();
                mIcon11 = BitmapFactory.decodeStream(in);
            } catch (Exception e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return mIcon11;
        }

        protected void onPostExecute(Bitmap result) {
            bmImage.setImageBitmap(result);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
Tambahkan permission ke AndroidManifest
<uses-permission android:name="android.permission.INTERNET"/>
Sehingga AndroidManifest akan menjadi seperti ini
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ardhi.com.simpleimageviewer" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ardhi.com.simpleimageviewer.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>
        <uses-permission android:name="android.permission.INTERNET"/> <!-- permission untuk mengakses internet -->
    </application>

</manifest>
Hasil ketika dijalankan adalah sebagai berikut

Project lengkap (dibuat menggunakan Android Studio 0.8.14) dapat diclone dari
https://github.com/ardhiesta/Simple-Image-Viewer

sumber
http://stackoverflow.com/questions/2471935/how-to-load-an-imageview-by-url-in-android
ardhi.web.id. Powered by Blogger.