Showing posts with label Materi Kuliah. Show all posts
Showing posts with label Materi Kuliah. Show all posts

Monday, December 19, 2011

Model RUP dalam RPL


RUP (Rational Unified Process
Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak. Gambar dibawah menunjukkan secara keseluruhan arsitektur yang dimiliki RUP.
RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML). Melalui gambar dibawah dapat dilihat bahwa RUP memiliki, yaitu:
§  Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap phase dapat berdiri dari satu beberapa iterasi.  Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition.
§  Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspek-aspek statis dari proses pengembangan perangkat lunak yang dikelompokkan ke dalam beberapa disiplin. Proses pengembangan perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen penting, yakni who is doing, what, how dan when. Dimensi ini terdiri atas

Business Modeling, Requirement, Analysis and Design, Implementation, Test, Deployment, Configuration dan Change Manegement, Project Management, Environtment.

Gambar  Arsitektur Rational Unified Process
Pada penggunaan kedua standard tersebut diatas yang berorientasi obyek (object orinted) memiliki manfaat yakni:
• Improve productivity
Standard ini dapat memanfaatkan kembali komponen-komponen yang telah tersedia/dibuat sehingga dapat meningkatkan produktifitas 
• Deliver high quality system
Kualitas sistem informasi dapat ditingkatkan sebagai sistem yang dibuat pada komponen­komponen yang telah teruji (well-tested dan well-proven) sehingga dapat mempercepat delivery sistem informasi yang dibuat dengan kualitas yang tinggi.
• Lower maintenance cost
Standard ini dapat membantu untuk menyakinkan dampak perubahan yang terlokalisasi dan masalah dapat dengan mudah terdeteksi sehingga hasilnya biaya pemeliharaan dapat dioptimalkan atau lebih rendah dengan pengembangan informasi tanpa standard yang jelas.
• Facilitate reuse
Standard ini memiliki kemampuan yang mengembangkan komponen-komponen yang dapat digunakan kembali untuk pengembangan aplikasi yang lainnya.
• Manage complexity
Standard ini mudah untuk mengatur dan memonitor semua proses dari semua tahapan yang ada sehingga suatu pengembangan sistem informasi yang amat kompleks dapat dilakukan dengan aman dan sesuai dengan harapan semua manajer proyek IT/IS yakni deliver good quality software within cost and schedule time and the users accepted.
Fase RUP
§  Inception/insepsi
§  Elaboration/elaborasi
§  Construction/konstruksi
§  Transition/transisi

•         Inception
–        Menentukan Ruang lingkup proyek
–        Membuat ‘Business Case’
–        Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan
•         Elaboration
–        Menganalisa berbagai persyaratan dan resiko
–        Menetapkan ‘base line’
–        Merencanakan fase berikutnya yaitu construction

•         Construction
–        Melakukan sederetan iterasi
–        Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing
•         Transistion
–        Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
–        Dalam fase ini dilakukan:
•         Beta dan performance testing
•         Membuat dokumentasi tambahan seperti; training, user guides dan sales kit
•         Membuat rencana peluncuran produk ke komunitas pengguna

Peran Use Case Pada Setiap Fase
•         Inception
–        Menolong mengembangkan scope proyek
–        Menolong menetapkan penjadwalan dan anggaran
•         Elaboration
–        Menolong dalam melakukan analisa resiko
–        Menolong mempersiapkan fase berikutnya yaitu konstruksi
•         Construction
–        Melakukan sederetan iterasi
–        Pada setiap iterasi akan akan melibatkan proses berikut: analisa desain, implementasi dan testing
•         Transistion
–        Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
–        Dalam fase ini dilakukan:
•         Beta dan performance testing
•         Membuat dokumentasi tambahan seperti; training, user guides dan sales kit
•         Membuat rencana peluncuran produk ke komunitas pengguna



Penerapan Tahapan Metodologi Pengembagan Perangkat Lunak dengan Menggunakan RUP (Contoh Kasus)
     Metodologi Rational Unified Process (RUP). Metode RUP merupakan metode pengembangan kegiatan yang berorientasi pada proses. Dalam metode ini, terdapat empat tahap pengembangan perangkat lunak yaitu:
§  Inception                  
Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan melakukan       perancangan awal perangkat lunak (perancangan arsitektural dan use case). Pada akhir fase ini, prototipe perangkat lunak versi Alpha harus sudah dirilis
§  Elaboration  :
Pada tahap ini dilakukan perancangan perangkat lunak mulai dari menspesifikasikan fitur perangkat lunak hingga perilisan prototipe versi Betha dari perangkat lunak.
§  Construction           
Pengimplementasian rancangan perangkat lunak yang telah dibuat dilakukan pada tahap ini. Pada akhir tahap ini, perangkat lunak versi akhir yang sudah disetujui administrator dirilis beserta  dokumentasi perangkat lunak.
§  Transition               
Instalasi , deployment dan sosialisasi perangkat lunak dilakukan pada tahap ini.

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


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

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 class. Activation 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