Cerita di Balik Pengembangan Aplikasi Sikremut

Sudah lama kami tidak berkumpul, berdiskusi hangat untuk suatu impian kami. Di ujung diskusi, hanya ada diam di antara kami. Memang rasanya sulit untuk menghentikan proyek yang sudah menjadi impian bersama ini. Impian untuk memberikan pelayanan informasi transportasi publik di wilayah Jabodetabek. Tapi apa boleh buat, proyek ini cukup kompleks dan memerlukan sumber daya yang tidak sedikit. Lagipula amanah yang kami pegang masing-masing makin membuat kerja dalam satu tim semakin sulit.

Proyek itu bernama Sistem Informasi Rute Transportasi Umum atau dikenal Sitrum. Sebuah proyek yang didanai dari Program Kreatifitas Mahasiswa (PKM) untuk menghadirkan informasi rute angkutan kota dan bus umum di Jabodetabek akhirnya berada di titik penghabisan. Tim proyek ini terdiri dari saya Ardi (IK 08), Ade Kurniawati (IK 08), Yasmin Khairina (IK 08), Andreas Senjaya (IK 07), dan sang penanggung jawab proyek, Big Zaman (IK 07). Dalam obrolan selama sekitar 1,5 jam, kami masih mencari cara mempertahankan proyek ini.

“Gimana klo kita bawa Sitrum ke kuliah PPL (Proyek Perangkat Lunak) untuk dikembangin lebih lanjut? Gw, Ardo, ama yamin kan bisa tuh. Nanti kita minta dosen biar kita bisa satu tim.” usul Ade Kurniawati.

Usulan Ade dalam obrolan itu akhirnya menjadi kesepakatan tim dan salah satu upaya untuk mimpi bersama ini. Dan ini mungkin adalah upaya terakhir yang bisa dilakukan.Read More »

Android: Pengenalan Daur Hidup Activity dan SharedPreference

Aplikasi yang kita buat bisa memiliki satu activity, atau juga banyak activity. Setiap activity yang didefinisikan memiliki daur hidup tersendiri. jika saat ini activity sedang running, mungkin selanjutnya aplikasi kita berhenti sebentar (pause) atau memang benar-benar dimusnahkan, hilang dari memori (destroy). Ya, state-nya memang bisa berubah-ubah. Dan semuanya diatur oleh sistem. Tapi kita sebagai developer bisa melakukan pengaturan tindakan saat activity berada di state tertentu dengan cara melakukan override terhadap method di dalam class Activity. Pada waktunya, Android akan memanggil method yang bersesuaian dengan state activity.

Berikut adalah diagramnya.

Gambar 1. Daur Hidup Activity

Berikut ini adalah deskripsi dari method override dari class Activity untuk daur hidup activity.

  1. onCreate()
    method ini dipanggil saat activity pertama kali dibuat. Di sinilah inisialisasi dilakukan – membuat UI, mendapatkan data yang diperlukan, dan lainnya.
  2. onStart()
    method ini dipanggil sesaat sebelum activity ditampilkan ke pengguna.
  3. onResume()
    method ini dipanggil ketika activity berinteraksi dengan pengguna.
  4. onPause()
    method ini berjalan ketika activity berada di balik layar (background), tidak terlihat oleh pengguna tapi masih berjalan. Biasanya hal ini terjadi saat ada activity lainnya yang dijalankan. Di state inilah seharusnya data program kita disimpan ke persistent state.
  5. onStop()
    method ini berjalan ketika activity sudah tidak terlihat lagi oleh pengguna dalam waktu yang cukup lama dan activity tidak diperlukan untuk sementara waktu.
  6. onRestart()
    jika method ini dipanggil, berarti activity sedang ditampilkan ulang ke pengguna dari state berhenti (stop).
  7. onDestroy()
    method ini dipanggil sebelum activity dimusnahkan (hilang dari memori).

Persistent State Demo

Setelah mengetahui daur hidup activity dalam aplikasi Android, saatnya kita buat aplikasi yang membantu kita memahami teori-teori di atas. Kita akan membuat aplikasi Android yang bisa menyimpan teks yang dituliskan pengguna. Jika pengguna keluar dari aplikasi, kemudian masuk kembali ke aplikasi, teks yang dituliskan sesaat sebelum keluar dari aplikasi akan ada, tidak hilang. 😀Read More »

Wim!, a Wiggle Mouse Application

Welcome to Wim!

Image 1. Wim! Screenshot

It is a simple java application to keep your computer in awake condition and not sleep (or maybe auto log off). This application will wiggle the mouse in certain period of time automatically. I usually use this app when I am in computer laboratory in my faculty, so auto log off on my computer login will not happens. :mrgreen:

You can try this app. Download here. Furthermore, I will show my code here. Learn it for fun. It is just simple code, just 3 java files. 😉

The following is Main.java that contains main method.

//--------------------------------------------------------------------------
// Wim! (c) 2011. v01.
// By Ardi, Computer Science UI 2008
//
// Main class for running application.
//--------------------------------------------------------------------------

import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;

public class Main
{
	//constructor
	public Main()
	{
                //create instance from JFrame
		JFrame frame = new JFrame ("Wim!");

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Panel application = new Panel();
                //add instance of application to frame
		frame.getContentPane().add(application);
		//set frame imageIcon
		ImageIcon icon = new ImageIcon("image/swii_logo.png");
		frame.setIconImage(icon.getImage());

                //set window size
                frame.setSize(220,105);
		frame.setVisible(true);
	}

	//main method is executed first by compiler.
	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(new Runnable(){
			public void run()
			{
				new Main();
			}
		});
	}
}

Next is Panel.java that extends JPanel. Here GUI component like JButton, JTextField, and JLabel, is constructed. Inner class Listener for event-handling is in Panel.java.Read More »

Android: Pengenalan Layout

Ketika membuat suatu halaman dalam aplikasi Android, diperlukan tata letak komponen yang rapi sehingga tampilan aplikasi yang dibuat terlihat cantik. Ada beberapa tata letak atau layout yang bisa digunakan di Android, yaitu Linear Layout, Relative Layout, Table Layout, dan Tab Layout. Penggunaan berbagai macam layout tersebut selain Tab Layout akan didemokan dalam satu aplikasi yang diberi nama ‘HiLayout’.

Sebagai tahap awal, buatlah project Android ‘HiLayout’. Silakan diisi dengan detail project sebagai berikut.

Project name : HiLayout
Application name : hiLayout
Package name : alh.apps
Create Activity : HiLayout
Build Target : Android 2.2
Min SDK Version : 8

Jika project sudah sukses dibuat, kita akan temukan file HiLayout.java dalam folder src/alh.apps dan file main.xml dalam folder res/layout di bagian Package Explorer. Untuk keperluan demo layout, file main.xml tidak digunakan. Sebagai gantinya, kita akan membuat file xml baru, satu file untuk satu demo layout.

Linear Layout

LinearLayout adalah layout yang menampilkan elemen-elemen view dalam arah linear, vertikal atau pun horizontal. Ini adalah layout paling sederhana di Android. Mari lihat implementasinya di Android.

Buat file xml baru dengan nama linearlayout.xml. Caranya, klik kanan di folder res/layout di project ‘HiLayout’. Pada menu pop-up yang muncul, pilih New > Android XML File. Selanjutnya, silakan isikan nama file XML dengan linerlayout.xml.

Gambar 1. Pembuatan File XML

Jika sudah diisi dan tidak ada pesan error, klik Finish. Default-nya, file linearlayout.xml yang dibuat akan berisi sebagai berikut. File xml tersebut tidak berisi elemen view apapun di dalamnya.

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”>

</LinearLayout>

Nah, sekarang ubah isinya menjadi berikut ini.

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”>

<TextView
android:text=”innovation for Indonesia..”
android:background=”#4c0000″
android:textSize=”10pt”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
/>

<TextView
android:text=”turn on our dreams!”
android:textSize=”13pt”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
/>

<Button
android:text=”ya!”
android:layout_marginTop=”30pt”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
/>

</LinearLayout>

Bisa kita lihat, tampilan yang dibuat akan memiliki tampilan teks (TextView) dan tombol (Button). Ukuran teks diatur melalui atribut android:textSize. Salah satu teks juga diberi warna background (latar belakang) dengan kode warna #4c0000 melalui atribut android:background.

Sekarang buka file HiLayout.java. Default-nya, isi file adalah sebagai berikut.

package alh.apps;

import android.app.Activity;
import android.os.Bundle;

public class HiLayout extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Lakukan perubahan kecil pada method onCreate() sehingga kode berubah menjadi berikut.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.linearlayout);
}

Saat ini tampilan aplikasi sudah mengacu ke linearlayout.xml yang berada di folder res/layout. Mari lihat hasilnya melalui emulator. Kita akan dapatkan tampilan sebagai berikut.Read More »

Swii Writer Here!

Alhamdulillah, after so long, finally i can publish one of my apps. I named this app Swii Writer, a java application. I idly built this app when i learned java programming language. I used SciTe text editor application for Swii Writer development. :mrgreen:

Image 1. Swii Writer

Swii Writer is simple text editor app for writing information what you like. It is featured with file management, editing, and formatting. Moreover, i then add cryptography touch to this app toRead More »

Android UI: Membuat Background Berpola

Penggunaan background yang tepat dapat membuat tampilan aplikasi lebih menarik dan elegan. Kadangkala, kita hanya menggunakan satu warna untuk suatu background. Nah, ada pilihan lain agar tampilan background aplikasi tidak sekedar satu warna, yaitu penggunaan background berpola. Sebagai contoh, lihatlah background aplikasi berikut.


Gambar 1. Aplikasi dengan Background Berpola

Gambar 2. Image untuk Membuat Background Berpola

Background aplikasi di atas tidak sekedar hitam, tapi ada pola yang terbentuk. Menarik, kan? Untuk membuat background berpola seperti di atas,Read More »

Lemon Tea Hangat untuk Hati yang Sedih

Pohon-pohon di sepanjang jalan melambaikan tangannya kepadaku. Angin malam bertiup pelan, menemaniku menuju kosan dari kampus. Cerahnya malam terlihat gelap olehku. Ah, aku sedang banyak pikiran belakangan ini. Masalah-masalah yang sedang kuhadapi saat ini membuat makanan lezat terasa hambar, tidur menjadi tidak nyenyak, hati menjadi galau, tugas kuliah tidak kunjung terselesaikan.

Semester ini merupakan semester yang cukup sulit untukku. Dari hal akademis, tugas begitu menumpuk dan materi kuliah terasa sulit dimengerti. Meskipun sudah berusaha mengerjakan, tugas-tugas kuliah tersebut jarang ada yang selesai dengan baik, jauh dari memuaskan. Seringkali tugas dikirim di detik-detik terakhir pengumpulan tugas. Dari luar akademis, aku juga sedang mengalami masalah dengan kos-kosan yang ditempati. Sampah-sampah penghuni kosan berserakan di luar begitu saja. Jarang dibersihkan oleh penjaga kosan. Padahal aku sudah beberapa kali memberitahu bapak penjaga kosan. Bau ‘sedap’ yang muncul dari berserakannya sampah tersebut membuat kosan tidak lagi nyaman. Kalau sudah di kampus, tidak ada gairah untuk pulang ke kosan.

“Malas ah ke kosan. Lingkungannya lagi ga enak.” gerutuku dalam hati.

Bagaimanapun, masalah-masalah seperti ini kerap mengganggu. Konsentrasi belajar di kosan pun buyar. Masih ada masalah-masalah lainnya yang membuat kuliah yang kujalani makin tidak tentu arah.

Liburan semester akhirnya tiba. Suasana indahnya liburan berubah seketika saat kenyataan pahit datang: nilai kuliah semester yang baru saja dilalui hancur berantakan. IP-ku jatuh dalam. Tertera di website akademis kampusRead More »