Saturday, October 29, 2011

MENJADI LEBIH BIJAK


Berderet kata-kata mutiara tercatat seperti “air beriak tanda tak dalam “, “ tong kosong berbunyi nyaring “, “ bagaikan ilmu padi “ dan lain-lain. Alangkah dalamnya makna dibalik kalimat tersebut. Kesemuanya menyiratkan berbagai pelajaran dalam hal interaksi antar manusia, dan berkaitan erat dengan karakter atau pribadi seseorang menuju pada kualitas pribadi yang disebut BIJAK. 

 Menjadi bijak ini dibutuhkan pemahamam mendalam , ketajaman melihat sesuatu yang tak terlihat, dan punya kejelasan dalam bersikap atau memutuskan. Orang bijak, dengan begitu, bukan orang yang menjual kata-kata manis agar terhindar dari masalah dan kontradiksi namun tidak punya penyikapan yang jelas. Ada  beberapa hal yang dapat dilakukan untuk menjadikan kita lebih Bijak, antara lain :

 Pertama ; Penghayatan atas pengalaman pribadi
Dari pengalaman yang kita miliki, jadi bijak dan tidak bijaknya kita akan tergantung pada sejauh mana kita sanggup menghayati atau mengambil pelajaran dari pengalaman itu. Pengalaman itu bukan sekedar merasakan peristiwa hidup yang menimpa diri kita saja, tetapi apa yang kita lakukan atas peristiwa  hidup yang menimpa kita. tepatlah kalau kemudian dikatakan bahwa pengalaman adalah guru yang terbaik.

Pengalaman yang tepat untuk dihayati adalah barbagai pengalaman yang terkait dengan kegagalan, kerugian, kesalahan atau kekurangan. Kita belajar banyak menjadi orang bijak dari kegagalan ketimbang dari kesuksesan. Kita akhirnya bisa menemukan apa yang bekerja setelah mengetahui apa yang mandul dan mungkin saja orang yang tidak pernah melakukan kesalahan tidak akan pernah menemukan sesuatu.

Sejauh kita sanggup mengambil pelajaran untuk memperbaiki diri dari pengalaman semacam itu, biasanya akan membuat kita lebih bijak dalam melihat masalah dan manusia. Kalau kita sudah belajar melihat kesalahan kita bukan sebatas sebagai kesalahan, biasanya kita pun akan mudah belajar melihat kesalahan orang lain bukan sebatas sebagai kesalahan.

 Kedua ; meningkatkan pengertian (empati )
Yakni kemampuan seseorang untuk share-feeling yang dilandasi kepedulian. Kalau bisa diurai tingkatan awalnya ketika kita baru bisa memahami ungkapan verbal, entah itu perasaan atau pikiran. Lalu tingakatan menengah ketika kita sudah bisa memahami isu kompleks yang ada dibalik suatu percakapan. Mampu mengerti penyebab yang kompleks dari perbuatan, pola kebiasaaan maupun masalah seseorang dimasa lalu. Kemudian tingkatan paling tinggi adalah memahami lalu tergerak untuk memberikan bantuan nyata yang dibutuhkan orang berdasarkan keadaannya. 

Empati ini sangat kita butuhkan dan akan membuat kita bisa cepat memisahkan orang berikut masalahnya, juga mendorong kita untuk lebih melihat bagaimana menyelesaikan masalah ketimbang bagaimana menyerang orang. Terdapat beberapa cara melatih dan meningkatkan empati sbb  : 
  1. cepat menangkap isi perasaan dan pikiran orang lain ( understanding others ).
  2. memberikan pelayanan yang dibutuhkan orang lain ( service orientation )
  3. memberikan masukan-masukan positif atau membangun orang lain ( developing others )
  4. mengambil manfaat dari perbedaan, bukan menciptakan konflik dari perbedaan ( leveraging diversity ).
  5. memahami aturan main yang tertulis atau yang tidak tertulis dalam hubungan kita dengan orang lain ( political awareness ).
 Ketiga : meningkatkan profesionalitas
Banyak definisi tentang profesionalitas, tapi ada 5 karakteristik utama yang perlu kita miliki dan tampilkan yaitu :
  1. Memiliki pengetahuan dan keahlian khusus berdasarkan profesi
  2. Mendapatkan pengakuan dari masyarakat, komunitas, kelompok, organisasi atau industri terkait dengan profesi kita.
  3. Memiliki standar etika moral yang tinggi, baik itu bersifat universal atau yang bersifat spesial, misalnya kode etik profesi.
  4. Memiliki otonomi dalam mengambil keputusan berdasarkan pengetahuan dan pengalaman, dan punya rasa tanggung jawab untuk menciptakan kemaslahatan bagi diri sendiri dan orang lain.

Tentu kita sadar bahwa untuk menjadi bijak tidak bisa dilakukan secara langsung dan jadi, tetap dibutuhkan proses yang berkelanjutan. Cermatlah dalam menyikapi hidup dan pahami prosesnya ke arah peningkatan kualitas yang ingin kita raih. Mulailah dengan syukur dan akhiri dengan ikhlas….keep happy !!!

Dari berbagai sumber,
Penulis : Ade Mardiah
GM Bumi Sawunggaling Hotel / Humas ISI JAbar


Friday, October 21, 2011

ARSITEKTUR APLIKASI ANDROID


Tujuan Instruksional:
 Mengetahui komponen-komponen aplikasi
 Memahami siklus hidup activity
Arsitektur  aplikasi  Android  berbeda dengan  arsitektur  aplikasi  desktop.  Arsitektur  aplikasi
Android  didasarkan  atas komponen-komponen  yang  saling berhubungan  satu  dengan  yang  lain
menggunakan Intent. Intent dideskripsikan pada manifest dalam paket aplikasi.
Komponen-Komponen Aplikasi
Aplikasi Android merupakan gabungan komponen-komponen (seperti Activity, service, content
provider,  dan  broadcast  receiver)  yang  dijalankan pada Linux dan  dikelola  oleh  Android.
Komponen-komponen  tersebut  saling berbagi  resource, yang  meliputi database,  preferensi
(preference), sistem file, dan proses Linux.


Catatan :
Semua komponen tidak selalu harus ada dalam sebuah aplikasi. Sebagai contoh, sebuah aplikasi mungkin
terdiri dari Activity-activity saja, sementara aplikasi lain hanya terdiri dari Activity dan service.

Arsitektur  Android  yang  berbasis komponen memungkinkan  sebuah  aplikasi  menggunakan
ulang komponen-komponen dari  aplikasi lain yang mengizinkan penggunaan  ulang  komponen-
komponennya. Penggunaan  ulang  komponen  akan  mengurangi  keseluruhan jejak  memori yang
sangat penting  untuk perangkat  dengan  memori  terbatas. Misalkan,  kita  membuat  aplikasi
menggambar  yang  mengizinkan user  untuk  memilih  warna  dari  palette.  Maka  aplikasi
menggambar dapat  memanggil komponen  pemilih  warna dari  aplikasi  lain  yang  sesuai  dan
menggizinkan  komponen  ini  untuk  digunakan  ulang.  Aplikasi menggambar  tidak  memuat
komponen  pemilih  warna atau  bahkan  link  ke  aplikasi  lain,  melainkan  hanya  men-startup
komponen pemilih warna aplikasi lain pada saat diperlukan saja.  


Android memulai suatu proses ketika suatu komponen dari suatu aplikasi benar-benar diperlukan
(seperti  komponen  pemilih  warna), dan  menginstansiasi  objek  Java  untuk  komponen  tersebut.
Hal ini  yang  menjadi alasan mengapa aplikasi Android tidak memiliki single-entry-point (tanpa
fungsi main() seperti pada C). Aplikasi Android hanya menggunakan komponen-komponen yang
telah diinstansiasi dan menjalankannya pada saat diperlukan saja.  


Activity
Activity  merupakan  komponen  dari  suatu  aplikasi  yang  menyediakan user  interface  sehingga
user dapat berinteraksi dengan aplikasi.
Misalnya,  aplikasi  Contact  Android  memiliki activity  yang  menyediakan  user  interface  untuk
memasukkan  contact  baru,  aplikasi  Phone  memiliki activity  yang  menyediakan  user  interface
untuk dialing nomor telepon, atau aplikasi Calculator yang memiliki activity yang menyediakan
user interface untuk melakukan perhitungan-perhitungan dasar.




Gambar 1. Activity utama aplikasi Calculator


Gambar 1. di atas menunjukkan Activity utama (Main activity) dari aplikasi Calculator Android
yang memungkinkan user untuk melakukan perhitungan-perhitungan dasar[1]
.
Sebuah  aplikasi  dapat  mempunyai  lebih  dari  sebuah  activity. Sebagai  contoh,  selain  activity
untuk  melakukan  perhitungan  dasar,  Calculator  juga  memuat activity  "advance  panel"  yang
memungkinkan user untuk melakukan perhitungan akar kuadrat, mengerjakan trigonometri, dan
melakukan operasi-operasi matematika lanjut lainnya.
Dalam  program,  Activity  dideskripsikan  oleh subclass dari  class android.app.Activity,  yang
merupakan subclass tidak langsung dari class abstrak android.content.Context. Subclass-subclass
Activity  meng-override  beberapa method Activity (yang  dikenal  dengan "lifecycle  callback
method" seperti method onCreate(), onStart(), dan lain-lain) yang dipanggil oleh Android selama
Activity masih aktif (hidup).
Sebagai contoh, misal pada listring program berikut, class SimpleActivity meng-extend Activity
dan  juga  meng-override method void  onCreate(Bundle  savedInstanceState)  dan  method  void
onDestroy().
------------------------------------------------------------------------------------------------------

package gie.triana;

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

public class AktivitasActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // always call superclass method first
        setContentView(R.layout.main);
        Log.d(tag, "pada event method onCreate(");
    }
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy(); // always call superclass method first
}
}
------------------------------------------------------------------------------------------------------------

Overriding  method  onCreate(Bundle)  dan  method  onDestroy()  pada listing  program  di  atas,
masing-masing  selalu  meng-invoke  superclassnya terlebih  dahulu,  ini  merupakan  pola  yang
harus  selalu  diikuti  pada  saat kita  meng-override  "lifecycle  callback method"  yang  lain  seperti
method-method void  onStart(),  void  onRestart(),  void  onResume(),  void  onPause(),  dan  void
onStop().

 Method  onCreate(Bundle) dipanggil  ketika  suatu  Activity  pertama  kali  dibuat.  Method
ini digunakan untuk membuat user interface dari Activity, membuat background thread,
dan  melakukan  inisialisasi  global  lainnya. Method  onCreate()  akan  melewatkan  obyek
dari  kelas  android.os.Bundle yang  berisi keadaan  (state)  Activity  sebelumya jika state
tersebut  telah  di-capture.  Android  akan  selalu  memanggil  method  onStart()  setelah
pemanggilan method onCreate(Bundle).
 Method  onStart() dipanggil  sebelum  suatu Activity menjadi  visible  (terlihat  oleh  user).
Android  memanggil  method  onResume() setelah pemanggilan onStart()  ketika  Activity
menuju ke latar depan (foreground),  dan memanggil method onStop() setelah onStart()
pada saat Activity tersembunyi (tidak terlihat oleh user).
 Method  onRestart(),  dipanggil  setelah  suatu  Activity  dalam  keadaan  berhenti  (stop),
beberapa  saat  sebelum  Activity  dimulai  lagi.  Android  akan  selalu  memanggil  onStart()
setelah pemanggilan onRestart().
 Method  onResume()  dipanggil  sebelum suatu Activity  berinteraksi  dengan  user.  Pada
titik ini, Activity memperoleh focus dan input user diarahkan ke Activity. Android akan
selalu memanggil  method  onPause()  setelah  pemanggilan  onResume(),  namun  hanya
ketika Activity harus berhenti sementara waktu (pause).

ketika Activity harus berhenti sementara waktu (pause).
 Method  onPause()  dipanggil  ketika  Android  mulai menjalankan Activity  lain.  Method
ini  digunakan  untuk  menahan  perubahan  yang  tidak  disimpan,  menghentikan  animasi
yang  mungkin  mengganggu  siklus  prosesor,  dan  sebagainya.  Method  onPause()  akan
melakukan  tugasnya  dengan cepat,  karena  Activity  selanjutnya  tidak  akan  mulai
dijalankan  sampai tugasnya selesai. Android memanggil  onResume()  setelah
pemanggilan  method  onPause() ketika  suatu  Activity  mulai  berinteraksi  dengan user,
dan memanggil onStop() pada saat Activity menjadi invisible (tidak terlihat oleh user).
 Method onStop() dipanggil ketika suatu Activity sudah tidak terlihat lagi oleh user. Hal
ini  terjadi  karena  suatu  Activity  sudah  tidak  aktif  lagi  (dimusnahkan)  atau  disebabkan
Activity lain (baik yang telah ada atau yang baru) telah dijalankan dan menutupi Activity
sebelumnya. Android memanggil onRestart() setelah pemanggilan onStop() ketika suatu
Activity  kembali  berinteraksi  dengan  user,  dan  memanggil  method  onDestroy()  pada
saat suatu Activity menghilang.
 Method onDestroy()  dipanggil  sebelum  suatu  Activity  dimusnahkan. Kalaupun  memori
memadat,  Android  hanya  akan  menghentikan  proses  dari  suatu  Activity.  Method
onDestroy() tidak akan pernah dipanggil. Jika onDestroy() dipanggil, maka akan menjadi
panggilan terakhir yang diterima Activity.        

    
Ketujuh  method  di  atas  mendefinisikan siklus  hidup  Activity  (Activity  lifecycle)  yang dapat
digambarkan seperti pada Gambar 2 berikut[1]



Gambar 2. Siklus hidup Activity (Activity lifecycle).

Untuk memahami siklus hidup Activity, lakukan percobaan berikut:
1. Menggunakan  eclipse,  buatlah  sebuah  project  Android  baru  dan  beri  nama  seperti  pada
Gambar 3. dibawah berikut :


2. Ubah file ActivitiesActivity.java, sehingga isi file terlihat seperti berikut :

------------------------------------------------------------------------------------------------------------

package gie.triana;

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

public class AktivitasActivity extends Activity {
    String tag = "Event";
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d(tag, "pada event method onCreate(");
    }
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d(tag, "pada event method onDestroy()");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d(tag, "pada event method onPause()");
}

@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.d(tag, "pada event method onRestart()");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d(tag, "pada event method onResume()");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d(tag, "pada event method onStrat()");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.d(tag, "pada event method onStop()");
}
}





------------------------------------------------------------------------------------------------------------

Catatan : Penjelasan mengenai Log.d() dapat dilihat di :
http://developer.android.com//reference/android/util/Log.htm


3. Buka  file  AndroidManifest.xml.  Pilih  tab  Application.  Ubah  nilai Debuggable  ke  nilai  true
(lihat Gambar 4) dan save file.

      Gambar 4.
4. Tekan F11 untuk men-debug aplikasi pada emulator Android
5. Ketika Activity pertama kali di-load, pada jendela LogCat akan terlihat catatan / Log seperti 
berikut (lihat pada Gambar 5) :  
10-09 23:34:16.951: DEBUG/Kejadian(544): pada event method onCreate()
10-09 23:34:16.951: DEBUG/Kejadian(544): pada event method onStart()
10-09 23:34:16.961: DEBUG/Kejadian(544): pada event method onResume()
Membuka jendela LogCat:
Pilih  menu  Window  >  Open  perspective  >  Debug.  Maksimumkan  jendela  LogCat  hingga 
seperti Gambar 5 berikut :

                                                                           Gambar 5.
6. Pilih tombol Back pada emulator Android, Amati bahwa Log yang tercetak adalah:
10-09 23:42:02.672: DEBUG/Kejadian(544): pada event method onPause()
10-09 23:42:07.151: DEBUG/Kejadian(544): pada event method onStop()
10-09 23:42:07.151: DEBUG/Kejadian(544): pada event method onDestroy()
7. Klik  dan  tekan  tombol  Home  hingga  beberapa  saat,  klik  icon  Activities  dan  Amati bahwa 
Log yang tercetak adalah :
10-09 23:44:02.252: DEBUG/Kejadian(544): pada event method onCreate()
10-09 23:44:02.252: DEBUG/Kejadian(544): pada event method onStart()
10-09 23:44:02.262: DEBUG/Kejadian(544): pada event method onResume()
8. Tekan  tombol  Phone  pada  emulator  Android  terlihat  bahwa  Activity  didesak  ke  area 
background. Amati output jendela LogCat:
10-09 23:45:27.362: DEBUG/Kejadian(544): pada event method onPause()
10-09 23:45:42.591: DEBUG/Kejadian(544): pada event method onStop()

9. Perhatikan  bahwa  event  onDestroy  tidak  dipanggil,  menunjukkan  bahwa  Activity  masih 
berjalan dalam memori. Keluarlah dari dialer phone dengan menekan tombol Back. Activity 
sekarang terlihat lagi. Amati output pada jendela LogCat :
10-09 23:50:35.752: DEBUG/Kejadian(544): pada event method onRestart()
10-09 23:50:35.752: DEBUG/Kejadian(544): pada event method onStart()
10-09 23:50:35.762: DEBUG/Kejadian(544): pada event method onResume()
Event onRestart() sekarang dinyalakan, diikuti oleh event onStart() dan onResume(). 
Seperti  yang  kita  lihat  pada  percobaan  ini,  Activity  akan  dihentikan  (destroyed)  pada  saat  kita 
menekan tombol Back. 
Pada  saat  sebuah  activity  mulai  dijalankan,  event  onStart()  dan  onResume()  selalu  dipanggil, 
tidak terkecuali apakah activity tersebut merupakan activity yang di-restore dari background atau 
activity yang baru dibuat.

Service
Service  merupakan  komponen aplikasi  yang  beroperasi di  area  belakang  layar (background) 
untuk  periode waktu  yang  tidak  terbatas  dan  tidak  memiliki user  interface. Seperti  dengan 
activity, service berjalan dalam thread utama proses; dan pasti akan melahirkan thread lain untuk 
menjalankan  suatu  operasi yang  memerlukan banyak  waktu.  Service  diklasifikasikan  sebagai 
local atau remote service:
 Local service: berjalan pada proses yang sama sebagai penopang aplikasi. Service seperti 
ini membuat aplikasi mudah untuk melaksanakan tugas-tugas di balik layar.
 Remote  service:  berjalan  pada  proses  yang  terpisah. Service  seperti  ini  memungkinkan 
kita untuk melakukan komunikasi antar proses.
Catatan:
Service bukan merupakan suatu proses yang terpisah, walaupun service dapat  dispesifikasikan ke dalam 
proses  yang  terpisah. Service  juga  bukan  thread. Service  memungkinkan  suatu  aplikasi  memberitahu
Android  mengenai  sesuatu  yang  ingin  dilakukan di  area  background (bahkan pada  saat  pengguna tidak 
secara  langsung  berinteraksi  dengan  aplikasi),  dan memungkinkan  aplikasi  meng-expose
fungsionalitasnya untuk aplikasi lain.   
Bayangkan  service  yang  menjalankan musik  sebagai  respon  atas  pilihan  user melalui  activity.
Pengguna memilih lagu untuk dimainkan melalui activity ini, dan service segera bekerja sebagai 
respon  atas  pilihan  pengguna.  Selanjutnya  service  memainkan  musik  pada  thread  lain  untuk 
mencegah munculnya dialog box Application Not Responding.

Broadcast Receiver
Broadcast  Receiver  adalah  komponen  yang  menerima  dan  memberikan  reaksi  terhadap 
broadcast.  Kebanyakan  broadcast  bermula dari  dalam  kode  sistem.  Contohnya,  sebuah 
pemberitahuan dibuat  untuk  mengindikasikan  bahwa  timezone telah  berubah  atau  batere telah 
melemah.
Applikasi  juga  dapat  memulakan broadcast.  Contohnya  sebuah  aplikasi  mungkin  menghendaki 
aplikasi-aplikasi lain untuk mengetahui bahwa data telah selesai diunduh dari jaringan ke dalam 
perangkat dan sekarang telah tersedia untuk digunakan.  

Content Provider
Content  provider  merupakan  komponen  yang  memungkinkan data dari  suatu  aplikasi  tersedia 
bagi aplikasi lainnya.  Data  dapat tersimpan dalam  sistem file Android,  dalam  database  SQLite, 
atau  dalam  bentuk lain  yang  dapat  difahami sehingga  memungkinkan  aplikasi  untuk saling 
berbagi data dengan aplikasi lainnya.
Content  provider  melakukan  pengaksesan  raw  data secara  langsung  karena  content  provider 
men-decouple  kode  komponen dari  format  raw  data.  Pen-decouple-an  ini dimaksudkan  untuk
mencegah kerusakan kode ketika format data berubah.

Sumber: Kuliah Mobile Programing U.Tresna


Android 4.0 Ice Cream Sandwich: everything you need to know


Android 4.0 Ice Cream Sandwich is now official.
Here's what you need to know about the latest version of Google's mobile OS which combines the best of the Android 2.x phone interface with the Android 3.x Honeycomb tablet interface.
Ice Cream Sandwich is designed for use with both phones and tablets.

Android 4.0 Ice Cream Sandwich features

Android ICS offers a massive array of improvements over its predecessors bringing the best of both Gingerbread and Honeycomb while providing a raft of new innovations.
The company says 4.0 is a complete rethink of Android's image and is part of a push to make the OS "Enchant me, Simplify My Life, and Make Me Awesome."
Android 4.0 ice cream sandwich
"Android 4.0 builds on the things people love most about Android," says Google in a post on the Android Developers Blog. "Easy multitasking, rich notifications, customizable home screens, resizable widgets, and deep interactivity — and adds powerful new ways of communicating and sharing."
Android 4.0 ice cream sandwich
Minor improvements include better copy and paste, data logging and warnings and, at last, the opportunity to easily grab screenshots by holding down the power and the volume buttons.
The keyboard and dictionaries have also been revamped, says Google. "Error correction and word suggestion are improved through a new set of default dictionaries and more accurate heuristics for handling cases such as double-typed characters, skipped letters, and omitted spaces. Word suggestion is also improved and the suggestion strip is simplified to show only three words at a time."
"To fix misspelled words more easily, Android 4.0 adds a spell-checker that locates and underlines errors and suggests replacement words. With one tap, users can choose from multiple spelling suggestions, delete a word, or add it to the dictionary."
Android 4.0 ice cream sandwich
The new OS is designed to bring common actions to the fore, with better animations and an entirely new typeface - more on that shortly.

Android 4.0 Ice Cream Sandwich Galaxy Nexus

Google kicked off its launch event by announcing the Samsung Galaxy Nexus, which will be the first device to run Ice Cream Sandwich and will be launched in November. Check out Samsung Galaxy Nexus: what you need to know.
Galaxy nexus

Android 4.0 Ice Cream Sandwich update

Google has confirmed it is working on an Android 4.0 update for the Samsung Nexus S and other Android devices.
Director of Android operating system User Experience Matias Duarte told Engadget that Google is. "Currently in the process for releasing Ice Cream Sandwich for Nexus S. Theoretically it should work for any 2.3 device."
Motorola confirmed to TechRadar that the Motorola Razr will launch in the UK with Android 2.3, but that there will be an update to 4.0in 2012.

Android 4.0 Ice Cream Sandwich Roboto

Among the first new features championed by Google at the Hong Kong media event was a brand new typeface for Android in the shape of the easy-to-read "Roboto."

Android 4.0 Ice Cream Sandwich System Bar and Action Bar

At the launch event, Google showcased a host of virtual buttons that appear at the bottom of the screen in some apps and allow users access to areas of the device like phone and contacts.
These are located in the System Bar - present in all apps - and enables you to navigate instantly to Back, Home, and Recent Apps. Virtual buttons are present across all apps, but can be dimmed by applications for full-screen viewing.
You can also access the contextual options for each app in the Action Bar at the top of the screen.

Android 4.0 Ice Cream Sandwich voice control

Android 4.0 introduces new voice input engine, You can dictate the text you want, for as long as you want. After dictating, you can tap the underlined words to replace them from a list of suggestions.

Android 4.0 Ice Cream Sandwich multitasking

Multi-tasking has also been given a boost and with ICS it's easier to see which apps you've been using recently. If you decide you're done with using one, you can easily flick it away to close.
Google says it has made multitasking "even easier and more visual" on Android 4.0. The Recent Apps button lets users jump instantly from one task to another using the list in the System Bar. The list pops up to show thumbnail images of apps used recently — tapping a thumbnail switches to the app.
Android 4.0 ice cream sandwich

Android 4.0 Ice Cream Face Unlock

Perhaps the most 'Star Trek' of all the new Android 4.0 features is a new piece of functionality called Face Unlock which, as the name suggests, unlocks your handset based on facial recognition tech.
Android 4.0 ice cream sandwich
You can also do more without unlocking. As in iOS 5 you can jump straight to the camera. You can also pull down the notifications window.

Android 4.0 Ice Cream Sandwich Home Screen folders

Like iOS before it, Android is now getting home screen folders too. You can group apps or shortcuts together and, as with iOS, you can do this just by dragging icons on top of one another.From the All Apps launcher, you can now drag an app to get information about it or uninstall it should you wish.
Android 4.0 ice cream sandwich

Android 4.0 Ice Cream Sandwich notifications

Notifications have also been improved. On larger devices - tablets - the updates appear in the System Bar, while on phones the notifications roll down from the top of the screen as before.
Android 4.0 ice cream sandwich

Android 4.0 Ice Cream Sandwich favorites tray

On phones and other "smaller screen devices" (that's Google speak), there's now a customisable favorites tray. You can put anything you want here - apps, folders, shortcuts - whatever you want - check out this screen:
Widgets

Android 4.0 Ice Cream Sandwich widgets

As in Honeycomb, you can now resize widgets on phones too. As in that OS, the widgets in 4.0 are designed to be far more interactive, enabling you to flick through appointments, play music and more.

Android 4.0 Ice Cream Sandwich data

Android 4.0 includes new graphical displays so you can see how much data you're using and how much you've used over Wi-Fi or cellular. You can also see the amount of data used by each running application.
Warning levels can also be specified, as well as determining how much background data apps can use.
Android 4.0
Android 4.0

Android 4.0 Ice Cream Sandwich camera

Android 4.0 Ice Cream Sandwich also brings some much-needed improvements to Google's camera UI, which the company says it has been working on with Samsung.
ICS devices, and the newly announced Samsung Galaxy Nexus in particular, will have 1080p video, zero shutter lag, a new picture-stitching panorama mode, easier sharing and Instagram-esque filters.
In the panorama mode, you can start taking the picture and then move the camera. The phone assembles the full range of continuous imagery into a single panoramic photo.
Android 4.0 ice cream sandwich
"When taking pictures, continuous focus, zero shutter lag exposure, and decreased shot-to-shot speed help capture clear, precise images," says Google. "Stabilized image zoom lets users compose photos and video in the way they want, including while video is recording. For new flexibility and convenience while shooting video, users can now take snapshots at full video resolution just by tapping the screen as video continues to record."
There's also built-in face detection as well as tap to focus.
Android 4.0 ice cream sandwich
There are also various editing tools included, too, while there's sharing via Google+, message, Bluetooth, email or Picasa upload.
Android 4.0 ice cream sandwich
There's also an improved gallery widget, as well as new album layout with larger thumbnails.
Thankfully you can also now take screenshots - this is going to make our job a whole lot easier!
For video, there's also Live Effects you can apply to distort faces or alter backgrounds.

Android 4.0 Ice Cream Sandwich apps

The People app does what many manufacturers have been doing on Android for ages - bringing together various social networking feeds into one place,
This offers richer profile information, including a large profile picture, phone numbers, addresses and accounts, status updates, and a new button for connecting on integrated social networks.
The Calendar app has also been updated to bring together different calendars, while the email app can now autocomplete responses and is able to store oft-used replies.
Android 4.0 now also supports visual voicemail.
The web browser is also improved - especially in terms of speed - and now allows up to 16 windows. You can now sync it with Google Chrome and the browser supports offline browsing - it can save versions of web pages you choose.
Android 4.0
There's also a new NFC-based app called Android Bump, which allows two phones to exchange a wealth of information, just by holding them together.
It can be used to share websites, maps and start games.
Here's a video of the Android 4.0 launch event if you have the time - it's an hour long!


Thursday, October 6, 2011

Mengenal Location Based Service (LBS)

Mengenal Location Based Service (LBS)


Mungkin Anda pernah melihat di film seseorang yang bisa memantau dan mengetahui keberadaan seseorang layar monitor. Orang yang dipantau tersebut bisa disimbolkan dalam bentuk titik atau bahkan gambar dan video asli yang bergerak. Selain itu di layar monitor juga menampilkan beberapa data lengkap seperti lokasi lengkap beserta berapa jarak titik lintang dan bujurnya, di kota mana dan di negera mana orang yang dipantau tersebut berada. Kondisi lain misalnya ketika membaca status Facebook teman Anda yang tertulis kurang lebih memberitahukan bahwa teman Anda tersebut sedang berada di lokasi tertentu.
Jika kita telisik itulah sesungguhnya salah satu bentuk penerapan dari sistem dan teknologi Location Based Service (LBS) atau dalam banyak istilah disebut sebagai Layanan Berbasis Lokasi.
Jadi apakah sesungguhnya LBS itu? Ada dua definisi yang bisa dijelaskan. Definisi Pertama: LBS adalah layanan informasi yang dapat diakses menggunakan piranti mobile melalui jaringan Internet dan seluler serta memanfaatkan kemampuan penunjuk lokasi pada piranti mobile (Virrantasu, et al, 2001). Definisi Kedua: Layanan IP nirkabel yang menggunakan informasi geografis untuk memberikan layanan informasi lokasi kepada pengguna. Beberapa layanan aplikasi yang memberikan petunjuk posisi/lokasi piranti mobile berada.
A. Komponen LBS
Terdapat empat komponen pendukung utama dalam teknologi Layanan Berbasis Lokasi, antara lain (Steiniger, et al 20):
1.      Piranti Mobile
Piranti Mobile adalah salah satu komponen penting dalam LBS. Piranti ini berfungsi sebagai alat bantu (tool) bagi pengguna untuk meminta informasi. Hasil dari informasi yang diminta dapat berupa teks, suara, gambar dan lain sebagainya. Piranti mobile yang dapat digunakan bisa berupa PDA, smartphone, laptop. Selain itu, piranti mobile dapat juga berfungsi sebagai alat navigasi di kendaraan seperti halnya alat navigasi berbasis GPS.
2.      Jaringan Komunikasi
Komponen kedua adalah jaringan komunikasi. Komponen ini berfungsi sebagai jalur penghubung yang dapat mengirimkan data-data yang dikirim oleh pengguna dari piranti mobile-nya untuk kemudian dikirimkan ke penyedia layanan dan kemudian hasil permintaan tersebut dikirimkan kembali oleh penyedia layanan kepada pengguna.
3.      Komponen Positioning (Penunjuk Posisi/Lokasi)
Setiap layanan yang diberikan oleh penyedia layanan biasanya akan berdasarkan pada posisi pengguna yang meminta layanan tersebut. Oleh karena itu diperlukan komponen yang berfungsi sebagai pengolah/pemroses yang akan menentukan posisi pengguna layanan saat itu. Posisi pengguna tersebut bisa didapatkan melalui jaringan komunikasi mobile atau juga menggunakan Global Positioning System (GPS).
4.      Penyedia layanan dan aplikasi
Penyedia layanan merupakan komponen LBS yang memberikan berbagai macam layanan yang bisa digunakan oleh pengguna. Sebagai contoh ketika pengguna meminta layanan agar bisa tahu posisinya saat itu, maka aplikasi dan penyedia layanan langsung memproses permintaan tersebut, mulai dari menghitung dan menentukan posisi pengguna, menemukan rute jalan, mencari data di Yellow Pages sesuai dengan permintaan, dan masih banyak lagi yang lainnya.
5.      Penyedia data dan konten
Penyedia layanan tidak selalu menyimpan seluruh data dan informasi yang diolahnya. Karena bisa jadi berbagai macam data dan informasi yang diolah tersebut berasal dari pengembang/pihak ketiga yang memang memiliki otoritas untuk menyimpannya. Sebagai contoh basis data geografis dan lokasi bisa saja berasal dari badan-badan milik pemerintah atau juga data-data perusahaan/bisnis/industri bisa saja berasal dari Yellow Pages, maupun perusahaan penyedia data lainnya.
Secara lengkap keempat komponen pendukung LBS tersebut dapat dilihat pada gambar berikut.
Komponen pendukung utama teknologi LBS (Steiniger, et al 20)
B. Aplikasi Berbasis LBS
Berbagai macam contoh aplikasi berbasis LBS misalnya:
  1. Layanan Darurat. Contoh: E-911 dan Roadside Assistance
  2. Pelacakan (Tracking). Contoh: Commercial: workforce, fleet management. Family Locator, Personal Asset Tracking
  3. Navigasi. Contoh: Direction, Planning, Assistance
  4. Tagihan. Contoh: Road Tolling, Parking
  5. LBS Alert. Contoh: Promotion Alert, Advertising
  6. Jejaring Sosial. Contoh: Friend-Finder, Instant Messaging
  7. Aplikasi Operator Jaringan. Contoh: Location Sensitive Billing, Cellular Fraudulent Detection and Prevention, Wireless Network Optimization dan Cellular Inter-Network Border Negotiation.
  8. Aplikasi Penyedia Layanan. Contoh: Fleet Navigation and Management, Wireless M2M, Remote Access/Management Mobile Data/Television, Auto Insurance dan Promotion-Advertising
  9. Aplikasi Pengguna Akhir. Contoh: Foursquare, dll.
C. Penyedia Layanan LBS
Banyak perusahaan di dunia yang masuk menggarap layanan berbasis LBS. Beberapa di antaranya adalah (Wang, 2008):
  1. Sprint Navigation menyediakan layanan canggih yaitu memberikan panduan suara untuk para pengemudi kendaraan yang butuh petunjuk jalan dan arah beserta peta pergerakan yang berbasis tiga dimensi.
  2. Verizon Chaperone memanfaatkan telepon seluler anak-anak sebagai GPS yang akan membantu para orang tua bisa memantau dan mengetahui keberadaan anak-anak mereka. Layanan ini akan menyediakan informasi lokasi secara terus-menerus di piranti mobile orang tua.
  3. NTT DoCoMo i-Area menyediakan layanan LBS khusus para pengguna FOMA. Layanan ini meliputi security alert dan juga peningkatan efisiensi logistik bisnis.
http://blog.uad.ac.id/ardi/2011/04/04/mengenal-location-based-service-lbs/

Tuesday, October 4, 2011

Cisco CCNA Certification: The Importance Of The OSI Model

There's nothing I enjoy more than teaching Cisco technologies, especially CCNA candidates. Whether it's in-person or online, everyone's excited to be there. There's a sense of anticipation in the air, and everyone is ready to work hard, get their hands on the racks of Cisco routers and switches I
have available...

... and then I break out the OSI model chart. Chins slump. People sigh, or at least wish they hadn't ordered decaf that morning.

Okay, it's not that bad. But it does temper the excitement a little. I always get a sense of "why can't we just hurry up and get on the routers and switches? Why do we have to learn this dry stuff?"

One reason is that Cisco demands you know the OSI model inside and out for both the Intro and ICND exams. You have to admit that's a pretty good reason, but still, students find the OSI model information to be very dry.

I understand that, because I've been there. My first exposure to the OSI model was actually in a Novell "Networking Technologies" class, and man, was that chart ever dry. They crammed every known protocol (and some unknown ones, I think) into the OSI model. It looked like a giant jigsaw puzzle, and the real problem is that I didn't know what the heck most of that stuff was.

So I dutifully attempted to memorize this massive chart. I managed to pass the exam, but I wondered what all that effort had really been for. It's not like you sit around in a server room or wiring closet and discuss the OSI model.

As a CCNA candidate, you don't have to worry about all the protocols I memorized way back when, but you do have to know what happens at each layer. Which leads to this question:

"If I work with routers and switches, why do I have to know about all the other layers? Don't routers and switches just work at layer 2 and 3?"



Yes, switches work at Layer 2 and routers at Layer 3. But to truly understand networking, you've got to understand what happens at the other layers. Why?

Most network administrators and engineers are going to spend a lot more time troubleshooting than installing. That's just the way it is. And to troubleshoot effectively, you've got to know what's going on at all layers of the OSI model, not just layers 2 and 3.

As someone who's done a lot of hiring and conducted a great many job interviews, I can tell you that the ability to troubleshoot is the number one quality I look for. That's why I tell CCNA and CCNP candidates that they've got to get all the hands-on practice they can while I understand the importance of theory, the only way to develop troubleshooting ability is to work on the real deal. No simulator program
is going to teach you how to troubleshoot.

Additionally, the only way to truly develop your troubleshooting abilities is to know what's going on over the entire network, not just the routers and switches. Troubleshooting always starts at Layer 1 if you don't find a problem at the Physical layer, and everything's fine with your routers and switches, how are you going to continue troubleshooting if you don't know what the next steps are as data moves closer to the end user?

So when it comes to the OSI model, don't just give it a quick once-over and move on to the fun stuff in your CCNA studies. The tangible benefit of passing your exams is great, but it's the hidden benefit of developing your own troubleshooting methodology that makes mastering the OSI model worthwhile.

RESUME OOP DAN OOAD


I.                   Pengertian dan Konsep OOAD 

Analisis dan disain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas. Pengertian "berorientasi objek" berarti bahwa kita mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaiut analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memerika requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.

OOA (Object Oriented Analysis)
OOA mempelajari permasalahan dengan menspesifikasikannya atau mengobservasi permasalahn tersebut dengan menggunakan metode berorientasi objek. Biasanya analisa sistem dimulai dengan adanya dokumen permintaan (requirement) yang diperoleh dari semua pihak yang berkepentingan. (Misal: klien,developer, pakar, dan lain-lain). 
Dokumen permintaan memiliki 2 fungsi yaitu : memformulasikan kebutuhan klien dan membuat suatu daftar tugas. Analisis berorientasi obyek (OOA) melihat pada domain masalah, dengan tujuan untuk memproduksi sebuah model konseptual informasi yang ada di daerah yang sedang dianalisis. Model analisis tidak mempertimbangkan kendala-kendala pelaksanaan apapun yang mungkin ada, seperti konkurensi, distribusi, ketekunan, atau bagaimana sistem harus dibangun. Kendala pelaksanaan ditangani selama desain berorientasi objek (OOD).
Sumber-sumber untuk analisis dapat persyaratan tertulis pernyataan, dokumen visi yang formal, wawancara dengan stakeholder atau pihak yang berkepentingan lainnya. Sebuah sistem dapat dibagi menjadi beberapa domain, yang mewakili bisnis yang berbeda, teknologi, atau bidang yang diminati, masing-masing dianalisis secara terpisah.
Hasil analisis berorientasi objek adalah deskripsi dari apa sistem secara fungsional diperlukan untuk melakukan, dalam bentuk sebuah model konseptual. Itu biasanya akan disajikan sebagai seperangkat menggunakan kasus, satu atau lebih UML diagram kelas, dan sejumlah diagram interaksi. Tujuan dari analisis berorientasi objek adalah untuk mengembangkan model yang menggambarkan perangkat lunak komputer karena bekerja untuk memenuhi seperangkat persyaratan yang ditentukan pelanggan. 
UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software. Unified Model Language (UML) adalah bahasa universal untuk :
  • memvisualisasikan grafis model yang tepat.
  • menetapkan model yang tepat, lengkap, dan tidak ambigu untuk mengampil semua keputusan penting dalam analisis, desain dan implementasi.
  • membangun model yang dapat dihubungkan langsung dengan bahasa pemrograman.
  • mendokumentasikan semua informasi yang dikumpulkan oleh tim sehingga memungkinkan untuk berbagi informasi.

OOD (Object Oriented Design) 

OOD mengubah model konseptual yang dihasilkan dalam analisis berorientasi objek memperhitungkan kendala yang dipaksakan oleh arsitektur yang dipilih dan setiap non-fungsional – teknologi atau lingkungan – kendala, seperti transaksi throughput, response time, run – waktu platform, lingkungan pengembangan, atau bahasa pemrograman. 


A. Karakteristik dari Objek 

1. Objek
  • Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki keadaan sesaat yang disebut state.
  • Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadwalan dalam multiprocessing pada sistem operasi.
  • Dua objek dapat berbeda walaupun bila semua nilai atributnya identik.
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7lOmpngOHTyaS_1sEO4nxJw9yM9HdJteHXtUhOdpgS7xK2eTQLh9vjecsO6rIRZM85y23kE8eUhyStsHXt9eXj-UCBh9lbItnRMdoV3tUUe2OyZjAdYHa-O9oOS3h7n6t90AOj2-E9CQ/s320/gbr1.jpg
Gambar 1. Macam-macam Objek

2. Kelas Objek 
Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama.
  • Suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup.
  • Kelas Objek merupakan wadah bagi Objek. Dapat digunakan untuk menciptakan Objek. 
  • Objek mewakili fakta/keterangan dari sebuah kelas. 


Istilah-istilah Objek
  • Atribut : Data item yang menegaskan Objek.
  • Operasi : Fungsi di dalam kelas yang dikombinasikan ke bentuk tingkah laku kelas. 
  • Metode : Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem). 

B. Karakteritik Metodologi Berorientasi Objek
Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama : 
1. Encapsulation (Pengkapsulan) 
  • Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. 
  • Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. 
  • Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri. 
2. Inheritance (Pewarisan) 
  • Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. 
  • Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya. 
  • Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki. 
  • Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya. 
  • Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya. 
  • Inheritance menggambarkan generalisasi sebuah kelas.
3. Polymorphism (Polimorfisme) 
  • Polimorfisme yaitu konsep yang menyatakan bahwa seuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. 
  • Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. 
  • Kemampuan objek-objek yang berbeda untuk melakukan metode yang pantas dalam merespon message yang sama. 
  • Seleksi dari metode yang sesuai bergantung pada kelas yang seharusnya menciptakan Objek.

II. Pemodelan Berorientasi Objek 
A.    Pemodelan Sebagai Teknik Desain 

Teknik pemodelan objek menggunakan tiga macam model untuk menggambarkan sistem, diantaranya adalah sebagai berikut : 

1. Model Objek 
  • Model objek menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya. 
  • Model objek berisi diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang mempunyai relasi antar kelas. 


2. Model Dinamik 
  • Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat. 
  • Model dinamik dipergunakan untuk menyatakan aspek kontrol dari sistem. 
  • Model dinamik berisi state diagram. State diagram adalah graph dimana nodenya adalah state dan arc adalah tarnsisi antara state yang disebabkan oleh event. 
3. Model Fungsional 
  • Model fungsional menggambrakan transformasi nilai data di dalam sistem. 
  • Model fungsional berisi data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data. 

B. Model Berorientasi Objek
Sebuah model objek menangkap struktur statis dari sistem dengan menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan operasi yang merupakan karakteristik setiap kelas dan objek.
Model berorientasi objek lebih mendekati keadaan nyata, dan dilengkapi dengan penyajian grafis dari sistem yang sangat bermanfaat untuk komunikasi dengan user dan pembuatan dokumentasi struktur dari sistem. 
1. Objek dan Kelas 
Objek 
  • Objek didefinisikan sebagai konsep, abstraksi atau benda dengan batasan dan arti untuk suatu masalah. 
  • Semua objek mempunyai identitas yang berbeda dengan lainnya. 
  • Istilah identitas berarti bahwa objek dibedakan oleh sifat yang melekat dan bukan dengan uraian sifat yang dimilikinya. 
  • Contohnya : kembar identik, walaupun mereka nampak seperti sama, tetapi merupakan dua orang yang berbeda. 
  • Kadang-kadang objek berarti suatu barang, maka digunakan istilah object instance, dan object class untuk menunjukkan satu grup dari barang yang sama. 
Kelas
  • Suatu object class menggambarkan kumpulan dari objek yang mempunyai sifat (atribut), perilaku umum (operasi), relasi umum dengan objek lain dan semantik umum. 
  • Contoh : Orang, perusahaan , binatang, proses adalah objek. 
  • Setiap orang mempunyai umur, IQ, dan mungkin pekerjaan. Setiap proses mempunyai pemilik, prioritas, list dari sumber daya yang dibutuhkan. 
  • Objek dan object class sering sama sebagai benda dalam deskripsi masalah. 
2. Diagram Objek 
Diagram objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat perancangan program. 

> Kelas dan Objek 
Konsep fundamental dalam analisis berorientasi objek adalah objek itu sendiri. Sebuah objek adalah sebuah entitas yang mencakup data dan metode.
Kelas merupakan satu atau lebih objek dengan persamaan atribut dan metode, sedangkan kelas-&-objek adalah kelas dengan satu atau lebih objek di dalamnya. Nama kelas adalah kata benda tunggal, atau kata sifat dan kata benda. Nama dari kelas-&-objek harus dapat menjelaskan objek tunggal dari suatu kelas.

> Struktur Objek dan Hirarki Kelas 
- Struktur kelas dibagi dua macam, yaitu Whole-Part Structure dan Gen-Spec Structure. 
  • Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub objek. Contohnya, kelas Mobil adalah Whole dan komponennya Mesin, Rangka, dan lain-lain, merupakan Part1, Part 2, …, Part n
  • Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat umum disebut Generalization, Superclass atau Topclass, sedangkan kelas yang mempunyai sifat khusus disebut Specialization. 

Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dan lain-lain merupakan Specizlization1, Specialization2, …, Specialization n, yaitu kelas yang mempunyai sifat khusus. 

 - Atribut

Atribut menggambarkan data yang dapat memberikan informasi mengenai kelas atau objek dimana atribut tersebut berada. 


- Metode

Metode (method) disebut juga service atau operator adalah prosedur atau fungsi seperti yang terdapat dalam bahasa Pascal pada umumnya, tetapi cara kerjanya agak berlainan. Metode adalah subprogram yang tergabung dalam objek bersama-sama dengan atribut. Metode dipergunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut. 

 
- Pesan (Message) 
Message merupakan cara untuk berhubungan antara satu objek dengan objek lain. Suatu pesan dikirimkan oleh suatu objek kepada objek tertentu dapat digambarkan dengan anak panah. 


II.                UML (Unified Modelling Language) 
Unified Modelling Language (UML) adalah sebuah “bahasa” yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax /semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan. 

Jenis-jenis Diagram UML : 
A. Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuahuse case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use casemerupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng- create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusunrequirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng- include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di- include akan dipanggil setiap kaliuse case yang meng- include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common . Sebuah use casejuga dapat meng- extend use case lain dengan behaviour -nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
B. Class Diagram 
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Classmenggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagrammenggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :
1. Nama (dan stereotype)
2. Atribut
3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :
  • Private , tidak dapat dipanggil dari luar class yang bersangkutan
  • Protected , hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
  • Public , dapat dipanggil oleh siapa saja
Class dapat merupakan implementasi dari sebuah interface , yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time 
Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package . Kita juga dapat membuat diagram yang terdiri atas package
Hubungan Antar Class 
  1. Asosiasi, yaitu hubungan statis antar class . Umumnya menggambarkan classyang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability m enunjukkan arah query antar class .
  2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
  3. Pewarisan, yaitu hubungan hirarkis antar class Class dapat diturunkan dari classlain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
  4. Hubungan dinamis, yaitu rangkaian pesan ( message ) yang di- passing dari satuclass kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
C. Statechart Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state kestate lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram ). Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antarstate umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat darievent tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.

D. Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagramkhusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya ( internal processing ). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satuuse case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state , standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel ( fork dan join ) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
E. Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display , dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men- trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memilikilifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari classActivation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity .


F. Collaboration Diagram 
Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram , tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message . Setiap message memiliki sequence number , di manamessage dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama.
G. Component Diagram 
Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan ( dependency ) di antaranya. Komponen piranti lunak adalah modul berisi code , baik berisi source code maupun binary code , baik librarymaupun executable , baik yang muncul pada compile time, link time , maupun run time . Umumnya komponen terbentuk dari beberapa class dan/atau package , tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface , yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.
H. Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana komponen di- deploydalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal Sebuah node adalah server, workstation , atau piranti keras lain yang digunakan untuk men- deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.

Langkah-Langkah Penggunaan UML
Berikut ini adalah tips pengembangan piranti lunak dengan menggunakan UML:
  1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.
  2. Petakan use case untuk tiap business process untuk mendefinisikan dengan tepat fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case diagram dan lengkapi dengan requirement, constraints dan catatan-catatan lain.
  3. Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.
  4. Definisikan requirement lain (non-fungsional, security dan sebagainya) yang juga harus disediakan oleh sistem.
  5. Berdasarkan use case diagram , mulailah membuat activity diagram .
  6. Definisikan objek-objek level atas ( package atau domain ) dan buatlah sequencedan/atau collaboration diagram untuk tiap alir pekerjaan. Jika sebuah use casememiliki kemungkinan alir normal dan error, buatlah satu diagram untuk masing-masing alir.
  7. Buarlah rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario use case .
  8. Berdasarkan model-model yang sudah ada, buatlah class diagram . Setiap packageatau domain d ipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class lain.
  9. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokanclass menjadi komponen-komponen. Karena itu buatlah component diagram pada tahap ini. Juga, definisikan tes integrasi untuk setiap komponen meyakinkan ia berinteraksi dengan baik.
  10. Perhalus deployment diagram yang sudah dibuat. Detilkan kemampuan danrequirement piranti lunak, sistem operasi, jaringan, dan sebagainya. Petakan komponen ke dalam node.
  11. Mulailah membangun sistem. Ada dua pendekatan yang dapat digunakan :
    • Pendekatan use case , dengan meng- assign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit code yang lengkap dengan tes.
    • Pendekatan komponen, yaitu meng- assign setiap komponen kepada tim pengembang tertentu.

Tool Yang Mendukung UML
Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa diantaranya adalah:
  • Rational Rose (www.rational.com)
  • Together (www.togethersoft.com)
  • Object Domain (www.objectdomain.com)
  • Jvision (www.object-insight.com)
  • Objecteering (www.objecteering.com)
  • MagicDraw (www.nomagic.com/magicdrawuml)
  • Visual Object Modeller (www.visualobject.com)


 
Copyrigth by Komunitas Android UIN SGD Bandung | Bloggerized by gie_3rd - IF.CUNGUR 2009 | Pasukan Berani Malu, West,Java