Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Senin, 31 Agustus 2015

Tutorial Android Maps

Halaman ini berisi tutorial-tutorial pemrograman Android yang berhubungan dengan penggunaan Android Maps API sebagai sarana pemetaan geografis, location based service, dan lain sebagainya. kalian akan dibimbing untuk membuat aplikasi pemetaan sederhana, mulai dari membaca koordinat GPS pada Android, kemudian menampilkannya di Google Maps, hingga mengimplementasikan fitur check-in pada lokasi-lokasi yang menarik. GO ON !

Tutorial Android Maps API v2 (Baru!)

  1. Insight pada Android Maps API v2 (link)
  2. Panduan Mendapatkan API Key untuk Android Maps v2 (link)
  3. Panduan Mendownload Google Play Services SDK (link)
  4. Tutorial Menampilkan Maps Menggunakan Android Maps API v2 dan MapFragment (link)
    Pada postingan ini kita belajar untuk menampilkan Maps/Peta pada Android menggunakan Android Maps API v2.
  5. Menampilkan Lokasi Pengguna di Peta Menggunakan Android Maps API v2 (link)
  6. Menampilkan Marker dan InfoWindow di Peta Menggunakan Android Maps API v2  (link)
  7. Membuat Aplikasi Location Based Services di Android Menggunakan Maps API v2
    (link)
  8. Mengatur Tilt dan Bearing pada Google Maps for Android API v2 (link(NEW!)
  9. Implementasi Check-In pada Location Based Services Google Maps Android APIs v2 [1] Memasukkan data koordinat ke dalam SQLite databse (link) 
  10. Implementasi Check-In pada Location Based Services Google Maps Android APIs v2 [2] Mengambil Koordinat dari Database SQLite dan menampilkannya pada Android Maps (link)
  11. Implementasi Check-In pada Location Based Services Google Maps Android APIs v2 [END] Mengambil semua Koordinat dari Database SQLite dan menampilkannya pada Android Maps (link(NEW!)

Tutorial Google Maps for Android API v2 Library Play Services 6.5+  (NEW!)

  1. Tutorial Mendapatkan GoogleMap Asynchronous Menggunakan getMapAsync() pada Android Maps API v2 (link)  (NEW!)
  2. Tutorial Menggunakan Map ToolBar pada Android Maps API v2 (link)  (NEW!)

Artikel Terkait dengan Google Maps for Android API SDK v2

  • Membuat Sebuah Parcelable Object pada Android (link)
  • Tutorial Menampilkan Area Polygon pada Android Maps V2 (link)
  • Menampilkan Rute Tercepat (Driving Direction) Antara Dua Koordinat pada Android Maps V2 (link)
  • Android Periodic Update Location ke Server (link)
  • Mendapatkan Koordinat Lokasi Pengguna Menggunakan Google Play Services Location APIs (link)
  • Berbagai Layanan Tile Map Server (TMS) Online Gratis dan Skema URL-nya (link)  (NEW!)

Tutorial Android Maps API

  1. Tutorial Android Maps : Menampilkan Peta Menggunakan WebView (link)
    Pada postingan ini kita belajar bagaimana cara menampilkan Google Maps pada Android menggunakan WebView.
  2. Tutorial Android Maps : Menampilkan Peta Menggunakan Android Maps API dan MapView DEPRECATED (link)
    Pada postingan ini kita belajar bagaimana cara menampilkan Maps pada Android menggunakan Android Maps API dan MapView.
  3. Tutorial Android Maps : Menampilkan InfoWindow pada Android Maps Menggunakan MapView DEPRECATED (link)
    Pada postingan ini kita belajar bagaimana cara menampilkan InfoWindow ketika ada marker yang di-klik.
  4. Android Maps Tutorial : Membuat Location Based Services Sederhana DEPRECATED (link)
    Postingan ini berisi tutorial Android Maps API untuk membuat Location Based Service. Belajar mengakses koordinat lewat GPS dan menampilkannya pada peta.
  5. Implementasi Check-In Pada Location Based Services Android Maps (bag. I) : Memasukkan Koordinat ke Database SQLite DEPRECATED(link)
    Pada postingan ini kita belajar bagaimana cara mengimplementasikan fitur check-in pada location based service yang telah kita buat. Bagian pertama tentang memasukkan koordinat ke dalam database SQLite.
  6. Implementasi Check-In Pada Location Based Services Android Maps (bag. II) : Mengambil Koordinat dari Database SQLite dan menampilkannya pada Android Maps DEPRECATED (link)
    Pada postingan ini kita belajar bagaimana cara mengimplementasikan fitur check-in pada location based service yang telah kita buat. Bagian kedua tentang menampilkan koordinat yang diambil dari database SQLite pada peta..
  7. Implementasi Check-In Pada Location Based Services Android Maps (bag. Terakhir) : Mengambil Semua Koordinat dari Database SQLite dan menampilkan semuanya pada Android Maps DEPRECATED (link)
    Pada postingan ini kita belajar bagaimana cara mengimplementasikan fitur check-in pada location based service yang telah kita buat. Bagian kedua tentang menampilkan semua koordinat yang diambil dari database SQLite pada peta.

Rabu, 12 Agustus 2015

class diagram

Pendahuluan
Diagram kelas adalah inti dari proses pemodelan objek. Baik forward engineering maupun reverse engineering memanfaatkan diagram ini. Forward engineering adalah proses perubahan model menjadi kode program sedangkan reverse engineering sebaliknya merubah kode program menjadi model. Bab ini akan membahas diagram kelas beserta fitur-fitur yang menyertainya. Atribut (attribute) dan operasi (operation) yang menggambarkan perilaku suatu kelas serta perluasannya seperti stereotypes, tagged values dan batasan (constrains) merupakan fitur-fitur suatu kelas. Kemudian dibahas juga hubungan antara satu kelas dengan kelas lainnya beserta sifat-sifat hubungan tersebut seperti penampakan (viibility), multiplicity, kemudahan berubah (changeability), nilai pokok (default values) dan property (properties).
Kemampuan menghasilkan kode program yang dimilki diagram kelas menyebabkan diagram ini memilik hubungan yang khas dengan diagram UML lainnya. Pada gambar 1.1 terlihat bahwa diagram yang lain memberi masukna kepada diagram kelas. Dagram kelas yang baik menghassilkan suatu rancangan system atau program yang mendekati kenyataan.
Definisi Kelas dan Objek
Diagram kelas merupakan kumpulan kelas-kelas objek. Oleh karena itu pengertian kelas sangat penting sebelum merancang diagram kelas. (Whitten,2004: 400) mengartikan kelas sebagai satu set objek yang memiliki atribut dan perilaku yang sama. Kelas kadang-kadang disebut kelas objek (object class). Secara alami, objek yang berupa buku analisis disain dan buku pemrograman terstruktur kita kelompokan dalam satu kelas, yaitu kelas buku. Kedua objek memiliki atribut dan perilaku yang serupa. Contohnya, kedua objek mugngkin memiliki atribut yang serupa seperti omor ISBN, Judul, tanggal penerbitan, edisi sebgainya. Demikian juga, kedua objek memiliki perilaku yang sama misalnya membuka dan menutup.
Secara teknis (Pender, 2003: bab 5) mengartikan sebuah kelas sebagai suatu definisi sumber daya yan termasuk didalamnya informasi-informasi yang menggambarkan fitur suatu entitas dan bagaimana penggunaannya. Sedangkan objek adalh suatu entitas yang bersifat unik yang mengikuti aturan-aturan yang sudah didefinisikan dalam kelasnya. Dalam terminology perangkat lunak, kode program ditulis sebagai kumpulan kelas-kelas yang mengerti pada perilaku yang telah didefinisikan dalam kelas. Dalam database, objek dinyatakan berupa sebuah baris yang tersimpan dalam file yang berada dalam memori computer. Jadi diagram kelas menggambarkan “fisik” system yang akan kita buat.
Kelas menggambarkan suatu group yang memiliki kesamaan keadaan dan perilaku. Kelas merupakan cetak biru suatu objek dalam system orientasi objek. Dapat dikatakan kelas adalah sejenis alat pengklasifikasi. Sebagai contoh Volkswagen, Toyota dan ford merupakan kumpulan mobil sehingga kita dapat mengkelompokkannya dalam kelas yang diberi nama mobil. Suatu kelas bisa menyatakan konsep yang daoat dilihat maupun abstrak (Pilone, 2005: bab 2)
Kelas dinyatakan dalam kotak yang terbagi menjadi bebrapa kompartemen. Kompartemen dalah area dalam kelas yang berisi informasi. Kompartemen pertama berisi nama kelas, berikutnya atribut dan yang terakhir operasi. Kompartemen-kompartemen itu bisa disembunyikan unruk memperjelas diagram yang kita buat.
UML menyarankan cara pemberian nama yang baik:
1.      Dimulai dengan huruf besar
2.      Ditengah pada kompartemen bagian atas
3.      Ditulis dengan cetak tebal
4.      Ditulis dengan cetak italic jika kelas tersebut abstract

Suatu objek merupakan isi (instance) dari kelas. Misalnya, kita mempunyai kelas yang memiliki anggota mobil dan diberi nama kelas mobil. Isi dari kelas itu misalnya Toyota, BMW, Mercedes dan sebaginya. Dalam menyatakan instance suatu kelas kita bisa menuls instance tersebut dan disertai dengan nama kelasnya.
Atribut
Rincian suatu kelas misalnya warna mobil, jumlah sisi suatu bentuk, dan sebagainya dinamakn atribut. Atribut bisa sederhana (integer, floating-point dan sebagainya) bisa juga kompleks.
Atribut digambarkan dalam dua notasi yang berbeda. Inline atau hubungan antar kelas.
1. Atribut Inline
          Kita dapat menulis atribut kelas di sebelah kanan notasi kotak. Atribut itu dinamakan atribut inline. Tidak ada perbedaan semantic antara atributinline dan atribut relasi. Kedunya sama-sama bermaksud merinci kelas yang kita buat. Untuk menyatakan atribut pada tubuh kelas, letakkan pada kompartemen kedua. Notasi atribut inline yang mengikuti estandar UML antara lain:
          visibility/name:type multiplicity = default {property strings and constraints}
          Di mana:
          Visibility ::= { + | - | # | ~}
          Multiplicity ::= [lower .. upper]
          Berikut penjelasan tiap komponen:
a.       Visibility. Mengindikasikan bagaimana atribut tersebut terlihat berhubungan dengan kelas lain. Gunakan symbol +, -, #, atau ~ berturut-turut untuk menatkan ublic, private, protected, atau package.
b.      Simbol “/”. Mengindikasikan turuna dari atribut. Suatu turunan atribut secara sederhana merupakan atribut yang dihitung dari atribut lain dalam kelas.
c.       Name. Merupakan frasa pendek yang menyatakan nama atribut. Kalimat pada huruf kecil dan tiap huruf kalimat kedua dan seterusnya huruf besar. Misal: horsePoser,manuFactur, dan sebagainya
d.      Type. Menyatakan tipe atribut dari klasifikasi lain misalnyan interace, built in type misalnya :int.
e.       Multiplicity. Menspesifikasikan berapa banyak instance/anggota yang dinyatakan dari atribut tersebut. Bisa integer tunggal atau range suatu nilai yang dispesifikasikan di dalam kurung yang dipisahkan dengan “ .. ”. Gunakan tanda asterisk “ * “ sebagai batas atas untuk menyatakan batas atas.
f.       Default. ,erupakan nilai default atribut
g.      Propery strings. Merupakan kumpulan property atau tag yang dapat dihubungkan dengan atribut. Biasanya untuk hal-hal yang khusus dan unik. Tata caca penulisannya adalah dengan tanda “ {} “ yang dipisahkan oleh koma.
h.      Constraints. Merupakan batasan suatu atribut
2. Atribut Relasi
          Kita bisa mempresentasikan atribut dengan cara menghubungkan dengan kelas lainnya. Untuk itu kita menggunakan notasi relasi sebagai sarana pembentuk atribut relasi dalam diagram kelas yang besar. Dengan cara itu kita dapat membuat atribut yang lebih detil dan kmpleks. Ambil contoh dalam pemodelan sebuah kelas mobil yang memiliki sebuah mesin jenis tertentu. Jika kita akan merinci lagi mesin yang digunakan oleh kelas mobil itu, akan diperoleh kelas mobl yang rumit dan sulit dipahami. Bandingkan bila kelas mobil yang telah kita buatdihubungkan dengan kelas lainnya yaitu kelas mesin yang merinci lebih detil terhadap jenis-jenis mesin yang digunakan.

          Notasi relasi memiliki sintaks yang sama dengan atribut inline. Tanda “-“ berarti private, tanda “ + “ berarti public dan seterusnya antara atribut relasi sama dengan atribut inline walaupun penematan dan layoutnya berbeda. Atribut visibility dan namanya diletakkan dekat garis relasi. Jangan gunakan kotak untuk multiplicity-nya. Cukup dengan meletakkan multiplicity tersebut dekat kelas perinci (attribute’s classifier).
       Seperti multiplicity, kita dapat meletakkan constraint pada atribut. Dalam notasi relasi, kita menuliskan constraint dekat kelas perinci atribut sepanjang garis relasi. UML mengizinkan constraint ditulis dalam notasi relasi antar atribut. seperti gambar dibawah ini: 
           Pada gambar diatas diperlihatkan standar UML berupa constraint “xor” yang berarti hanya Transmisi Otomatis atau Transmisi Manual yang dipilih. Jika dalam atribut inline sudah dinyatakan constraintnya, maka kita cukup membuat catatan saja.
3. Atribut Turunan (Derived Atributes)
               Atribut turunan diberi notasi slash “ /  “. Symbol ini bermaksud memberi informassi kepada implementator bahwa atribut tersebut tidak terlalu penting. Misalnya dalam perbankan kita mempunyai kelas Nasabah. Kelas ini menyimpan saldo terakhir dengan type floating-point diberi nama saldo. Untuk mengetahui kondisi apakah saldonya overdrawn atau tidak kita butuh atribut overdrawn (saldo minus) yang bertipe Boolean. Karena overdrawn berdasarkan kondisi saldo bukan berdasarkan inputan dari user, maka kita katakan overdrawn merupakan atribut turunan. UML menyatakan bahwa atribut turunan readOnly, artinya user diizinkan untuk mengubah nilai tersebut. Seandainya user diizinkan untuk mengubah nilai atribut turunan tersebut, mau tidak mau class harus melakukan update terhadap sumber informasinya secara akurat.
4. Atribut Mltiplicity
               Multiplicity suatu atribut menyatakan berapa banyak isi (instances) dari atribut yang terbentuk saat kelas diinisiasi. Misalnya, kelas mobil akan memiliki empat roda,jadi multiplicity atribut roda adalah empat. Jika tidak ada keterangan multiplicity berarti dianggap bernilai satu. Multiplicity bisa berupa integer, deretan integer yang dipisahkan oleh koma, atau jangkauan nilai tertentu. Saat menyatakan suatu jangkauan nilai, nilai atas tak hingga diberi symbol asterisk “ * “. Jika tidak ada batas bawah, berarti dianggap batas bawahnya nol. Harga multiplicity dinyatakan dalam kurung “ [] ” untuk integer tunggal dan dipisahkan oleh dua titi “ [ .. ] “ untuk dua integer. Pada gambar dibawah ini, karena atribut mesin tidak ditulis multiplicity-nya, maka anggap satu.


Urutan (Ordering)
              Suatu atribut yang memiliki multiplicity lebih dari satu, saat menyimpan datanya bisa dibuat cara pengurutannya. Sebagai contoh, kita dapat menspesifikasikan daftar nama yang tersimpan berdasarkan urut abjad. Jadi urutan tersusunnya data dalam kelas dijumpai pada atribut kelas tersebut. Secara default, atribut suatu kelas tidak memiliki urutan. Tanda bahwa satu atribut memiliki urutan dengan menuliskan kata “{ordered}” setelah tanda kurung tutup atribut. dalam gambar dibawah ini, kelas dataSiswa memiliki atribut nomor induk mahasiswa multiplicity [ 0..*] dan urut abjad.
Unik (Uniqueness)
               Sebagai penjelasan tambahan dari ordered, atribut multiplicity yang lebih dari satu dapat dibuat unik. Unik sini berarti dalam satu kelas tidak boleh ada atribut yang sama, misalya dalam kelas DataSiswa tidak boleh ada nilai mahasiswa (NIM) yang sama. Cara penulisan unik adalah dengan menambah “{unique}” setelah menulis multiplicity atribut suatu kelas. Untuk menegaskan bahwa boleh ada duplikasi dalam suatu kelas kita dapat menuliskan “ not unique “ setelah menulis atribut multiplicity. berikut gambar diagram unik.
Collection Type
              Standar UML menyediakan pemetaan dari beberapa kemungkinan orders dan keunikan sebagai collection type. Table berikut ini memperlihatkan pemetaan dari property atribut ke collection type UML. Perlu diperhatikan, collection type yang ditunjukkan dalam table berikut adalah pemetaan dan  bukan peta langsung kelas ke bahasa pemrograman.
Urutan
(Ordered)
Keunikan
(Uniqueness)
Asosiasi
Collection Type
Salah (False)
Salah (False)
Bag
Benar (True)
Benar (True)
OrderSet
Salah (False)
Benar (True)
Set
Benar (True)
Salah (False)
Urutan (Sequence)
Berikut ini contoh atribut yang tersimpan dalam collection type Orderset.
5. Property Atribut
                Untuk lebih memperjelas property dengan multiplicity, atribut memiliki beberapa set property untuk menyampaian tambahan informasi kepada embaca diagram. Beberapa property yang telah didefinisikan oleh UML antara lain.
     Readonly
              Menspesifikasikan bahawa atribut tidak dapat dimodifikasi setelah nilai awal terbentuk. Dalm pengembang bahasa pemrograman dinyatakan sebagai konstanta. UML tidak menspesifikasikan kapan nilai awal harus disetting walaupun nilai default bisa dinyatakan sebagai nilai default.
     Union
             Menyatakan bahwa tipe atribut sebagai gabungan dari nilai yang mungkiin untuk atribut tersebut. Biasanya ini digunakan dengan property turunan yang mengindikasikan bahwa atribut itu diturunkan dari gabungan terhadap set atribut lainnya.
     Subsets<attribute-name>
             Menjelaskan bahwa atribut ini merupakan suatu subset dari seluruh nilai yang valid dari atribut yang diberikan. Subset bukanlah property yang biasa digunakan, seandainya dgunakan biasanya diasosiasikan dengan sub-kelas dari suatu tipe attribute.
      Redefines <attribute-name>
              Menjelaskan bahwaatribut ini bekerja sebagai suatu nama lain dari atribut yang diberikan. Walaupun tidak lazim, atribut ini dapat digunakan untuk menunjukkan bahwa suatu sub-kelas memiliki suatu atribut yang merupakan nama lain untuk atribut super-kelas.
     Composite
              Menyatakan bahwa atribut ini merupakan bagian dari seluruh bagian hubungan dengan pembuat kelas (classifier)
     6. Hambatan (Constraints)
                   Hambatan menyatakan batasan suatu elemen. Bisa bahasa natural bisa juga menggunakan bahasa formal misalnya OCL. Walaupun demiian hambatan dinyatakan dalam ekspresi Boolean. Hambatan ditulis dalam tanda kurung karawal “ { } “ setelah elemen yang akan dibaut hambatannya ditulis, bisa juga diletakkan sebagai catatan dengan garis putus-putus
                   Kita dapat memberi nama suatu hambatan diikuti oleh titik dua sebelum ekpsresi Boolean ditulis. Biasanya digunakan untuk mengidentifikasi hambatan dalam suatu operasi.
     7. Atribut statis
                 Atribut statis cenderung sebagai atribut kelas dari pada atribut konten (instance) suatu kelas. Sebagai ontoh, kita menginisialisasi nilai konstan dalam satu kelas dan mensharing sifat itu ke setiap konten suatu kelas. Atribut statis dinyatakan dengan garis bawah terhadap baik atribut inline maupun relasi
Operasi (Operation)
             (pilone, 2005) mengartikan operation sebagai fitur dari kelas yang menspesifikasikan bagaimana perilaku dijalankan. Misalnya meggambar segiempat, menghitung umlah item suatu daftar dan sebagainya. UML membedakan dengan jelas antara operation dan method. Jika operation mendefinisikan sutau perilaku dijalankan, method adalah pelaksanaan dari operation. Method berupa prosedur atau algoritma utnuk menjalankan operatin. Diagram kelas hanya mencantumkan operation saja sedangkan method tidak.
            Operation diletakan dalam kompartemen terpisah dengan sintaks:
visibility name ( parameters ) : return-type {properties}
            Parameter ditulis sebagai berikut:
direction parameter_name : type [ multiplicity ] = default_value { properties }
            Gambar dibawah ini mengambarkan contoh operation:
Elemen sintaksnya antara lain:
Visbility
           Mengindikasikan mampu liaht operation oleh kelas lain. Symbol +, -, #, atau ~ berturut-turtberarti: public, pruvate, protected atau package.
Name
            Adalah frasa pendek yang menamai operation. Operation biasanya frasa kata kerja yang merepresentasikan aksi. UML merekomendasikan huruf pertama operasi adalah huruf kecil, bila ada kata berikutnya, kata berikutnya diawali dengan huruf besar.
Return-Type
Merupakan tipe pengembalian pada ooperasi, jika ada. Jika tidak ada operasi pengembalian dari operasi(disebut sebagai subroutine dalam beberapa bahasa), maka type pengembalian dianggap void.  Jika operasi pengembalian dianggap tidak memiliki nilai (dalam beberapa bahsa disebut fungsi), kita harus menunjukkan tipe nilai pengembaliannya, apakah tipe primitive atau collection. UML menspesifikasikan keadaan pengembalian sebagai opsional.
Properties
            Menyatakan batasan dari sifat-sifat yang melekat pada operation. Properties bersifat optional.

Parameter elemen sintaks antara lain:
Direction
Bersifat optional, mengindikasikan bagaimana parameter digunakan dalam operasi. Antara lain: in, inout, out, atau return. Inmenyatakan bahwa parameter mengarah dari caller menuju operation. Out menyatakan sebaliknya parameter mengarah dari operation ke caller. Inout menyatakan parameter dari caller ke operasi dan memiliki kemungkinan untuk balik arah. Return mengindikasikan bahwa nilai yang diset oleh caller diarahkan kembali sesuai nilai return itu.
Parameter-name
Merupakan kata benda atau frasa kata benda yang memberikan nama kepada parameter. Secara tipikal, nama parameter dimulai dengan huruf kecil dengan kata berikutnya jika ada, dimulai dengan huruf besar.
Type
Adalah tipe parameter. Tipe berhubungan dengan kelass lain, interface, collection atau tipe primitif.
Multiplicity
Menaytakan berapa banyak instance tipe parameter. Bisa tidak ditulis (berarti multiplicity = 1), integer tunggal, dertean integer yang terpisahkan oleh koma atau range nilai yang dispesifikasikan anatar kurung besar dengan “..” diantaranya. Batas atas tak hingga dinyatakan dengan “. Jika tidak ada batas bawah, * mengindikasikan no atau lebih.
Default_value
Menyatakan nilai default parameter. Nilai default bersifat opsional. Jia tidak ditulis, berarti kita tidak memperlihatkan tanda sama dengan. Perlu dicatat bahwa UML tidak menyatakan parameter dengan nilai default Karen sintaks operasi melekat pada bahasa pemrograman yang dipilih.
Properties
Menyatakan sifat-sifat yang berhubungan dengan parameter. Dinyatakan dalam tanda kurung kurawal. Bersifat optional, boleh ada boleh tidak.
1. Batasan Operasi
              Operasi bisa saja memilik beberapa batasan yang bermanfaat dalam interaksinya dengan system. Batasan berarti jontrak yang harus dipatuhi oleh operasi. Batasan dituliskan langsung saat operasi ditulis atau dinatakan dalam catatan dengan garis putus-putus.
Kondisi Awal (Preconditions)
               Kondisi awal menjelaskan keadaaan awal system sebelum operasi dijalankan. Singkatnya, karena kta tidak mungkin menyatakan kondisi awal untuk tiapparameter walaupun kelass juga secara umum menyatakan operasi dengan sedikit atribut untuk system.
               Beberapa bahasa pemrograman memilii proteksi sendiri sehingga walaupun kita menyatakan kondisi awal, tetap saja program berjalan tanpa terlebih dahulu mengecek kondisi awal yang kita nyatakan dalam UML. Oleh karena itu menjadi tugas kita untuk mengecek implementassi program yang kita buat secara manual.
Kondisi Akhir (Postconditions)
                Kondisi akhir bermaksud memberi jaminan terhadap kondisi system setelah operai dilaksanakan. Seperti kondisi awal, kondisi akhir secara tipikal menyatakan kondisi satu atau lebih atribut system atau memberi jaminan tentang kondisi kelas yang melakukan operasi.

Kondisi Tubuh (Body Conditions)
                 Suatu operasi mungkin  memiliki kondisi tubuh yang membatasi nilai pengembalian (return value). Kondisi tubuh terpisah dari kondisi tubuh bisa saja diganti oleh metode yang dimiliki kelas itu. Sebagai contoh, kelas “Window” mungkin menyatakan kondisi tubuh untuk metode getSize() yang mensyaratkan panjang dan lebar jendela tidak boleh nol. Kemudian subkelas yang bernama “SquareWindow” mungkin memiliki kondisi tubuh sendiri yang menyatakan lebar dan panjang harus sama besar. Kondisi tubuh sebagaimana kondisi awal dan akhir memiliki batasan yang diekspresikan dalam bahasa alami atau dengan OCL.
Operasi Query
            Operasi dideklarasikan sebagai query jika implementasi operasinya tidak merbah kelas tersebut. Dalam praktek, perancang menggunakan property query yang mengindikasikan metode yang tidak merubah atribut suatu objek. Kita menyatakan suatu metode query dengan meletakkan batasan query setelah operasi ditulis. Sebagai contoh suatu operasi getAge() secara sederhana mengambil integer tanpa mengubah nilai internal kelas.
Pengeculaian (Exceptions)
            Dengan notasi yang sejenis dengan batasan, kita bisa membuat pengecualian dengan keyword <<exceptions>>. Dengan garis putus-putus kita membuat daftar pengeculaian dalam bentuk catatan seperti contoh dibawah ini.

2. Operasi statis
                     Operasi biasanya menspesifikasikan instance suatu kelas. Tetapi UML mengijinkan suatu operasi menspesifikasi perilaku kelas itu sendiri. Operasi itu dinamakan operasi statis yang bekerja langsung terhadap kelas itu sendiri, bukan hanya terhdapad instance kelas. Secara notasi kita menyatakan bahwa operasi itu statis dengan membuat garis bawah.
      Metode (Methods)
             (Pilone, 2005: bab 2.4) menjelaskna bahwa metode adalah implementasi proses. Tiap kelas biasanya mengimplementasikan operasinya dengan menurunkan dari super kelas. Jika suatu kelas tidak memiliki implementasi operasi, maka mau tidak mau harus menurunkan (inheritance) dari super kelasnya, dan operasinya dinyatakan sebagai abstract.

Kelas Absract
             Kelas abstract adalah kelas yang menyediakan operasi tanpa merinci implementasinya. Kelas abstract bermanfaat untuk mengidentifikasikan fungsi antar objek. Karena tanpa implementasi, kelas abstract harus menjadi subkelas. Contoh kelas abstract adalah kelas Movable() yang memiliki operasi Move(). Dan bergeraknya tergantung dari kelas lain, misalnya mobil, pesawat, atau orang.

Hubungan (Relationship)
             Tanpa adanya hubungan dengan kelas lain, kita tidak mampu melihat mekanisme suatu system. UML menyediakan beragam cara menggambarkan hubungan antar kelas.tiap hubungan memiliki tipe yang berbeda sesuai dengan kebutuhan dengan harapan saat kita memodelkan suatu system, pembaca akan memahami hubungan yang kita buat.
1. Ketergantungan (Depedency)
               Hubungan terlemah antar kelas adalah hubungan ketergantungan (dependency relationship). Ketergantungan antar kelas bermakna suatu kelas menggunakan atau memiliki pengetahuan terhadap kelas lainnya. Hubugan ketergantungan hanya sesaat (transient) dan tidak ada batas waktu yang jelas. Ketergantungan biasanya bisa dibaca sebagai “ … menggunakan …”. Misalnya kita memiliki kelas WindowClosingevent saat akan ditutup. Kita bisa menyatakan bahwa Window menggunakan suatu kelas WindowClosingEvent. Ketergantungan digambarkan dengan garis berpanah.

2. Asosiasi
                    Hubungan pada asosiasi lebih kuat dari hubungan ketergantunagn dalam arti suatu kelas  tetap berhubungan dengan kelas lain seterusnya. Hubungan dapat diputus tanpa mengganggu kelas lainnya. Asosiasi bisa dibaca “… menggunakan …”. Sebagai contoh jia kita memiliki kelas Window yang memiliki referensi terhadap gerkaan kursor mouse. Bisa kita katakan,Window memiliki suatu kursor. Dengan cursor, kita dapat mengubah bentuk Window. Asosiasi digambarkan dengan garis lengkap tanpa ada tanda panah.

      Navigavbility
                Asosiasi  memiliki notasi untuk menyatakan navigability. Jika arah asosiasi antar dua kelas bisa dari atau ke, maka dalam UML tidak perlu ditulis anak panah di ujungnya. Tetapi dalam asosiasi dua arah kita jarang membuat hubungan nonnavigable. Kita dapat menggambarkan asosiasi yang nonnavigable dengan membuat tanda silang pada asosiasi tersebut. Misalnya, paa gambar dibawah ini. Window menggunakan Cursor untuk emubah bentuknya dan todak sebalinya (Cursor menggunakan Window untuk mengubah bentuk kursor).

      Penamaan Asosiasi
                 Biasanya asosiasi diberi nama dengan frasa pendek sepanjang garis. Frasa yang ada tidak di-generate menjadi kode, murni sebagai pelengkap model.

      Multiplicity
                  Karena asosiasi biasanya merepresentasikan hubungan akhir, maka ada hubungan atribut dalam kelas-kelas yang berasosiasi itu. Jadi kita harus menerangkan berapa jumlah instance yang terlibat dalam hubungan asosiasi itu. Untuk menyatakan jumlah itu, kta meletakkan multiplicity dekat kelas. Jangan menggunakan  kotak dalam menuliskan multiplicity.
      3. Agregasi (Agregation)
                  Agregasi adalah versi kuat dari asosiasi. Tidak seperti asosiasi, agregasi mengimplikasikan kepemilikansuatu kelas. Agregasi bisa dibaca “ … memilik … “. Misali kita memiliki kelas window yang memiliki posisi dan ukuran pada kelas Rectangle, maka kita katakana “Window memiliki Rectangle”. Walaupun Rectangle bisa saja dishare dengan kelas lain, tetapi Window memiliki hubungan erat dengan Rectangle. Tetapi hubungan agregasi masih kalah kuat dengan komposisi (composition). Hubungan af=gregasi dimyatakan dengan simob “diamond” pada kelas pemilik (owning class) dan garis utuh berpanah ke kelas yang dimiliki (owned class). Gambar dibawah ini menggambarkan notasinya.

      4. Komposisi (Composition)
                    Komposisi merupakan huungan yang paling kuat antar kelas. Komposisi digunakan untuk mengambil seluruh bagian hubungan. Hanya boleh ada satu komposisi dalam satu waktu. Antara instance suatu kelas dengan instance lainnya selalu terkoneksi (linked). UML tidak mengijinkan asosiasi dengan pemilik yang berbeda sebelum hubungan komposisi dengan kelas terdahulu diputus. Hubungan komposisi dibaca “… bagian dari …”. Misalnya, jika Window yang kita buat harus memeliki Titlebar maka kita dapat merepresentasikan suatu kelas bernama Titlebar yang merupakan “bagian dari” kelas Window. Secara notasi, komposisi digambarkan dengan belah ketupat tebal “Filled Diamond” dekat kelas pemilik (owning class) dan garis tebal berpanah menuju kelas yang dimilik (owned class).

      5. Generalisasi (Generalitation)
                     Generalisasi berarti target dari hubungannya ke kelas yanglebih genral (umum). Sebagai contoh jika kita memiliki kelas bernama Cat dan kelas bernama Dog, kita dapat membuat generalisasi dari keduanya dengan nama Animal. Generalisasi biasanya dibaca “… adalah …” dimulai dari kelas yeng lebih spesifik menuju kelas yang lebih umum (general class). Jadi dapat dikatakan “suatu Cat adalah suatu Animal”.
      6. Asosiasi Antar Kelas
                       Terkadang hubungan antara dua elemen tidak sederhana. Misalnya, suatu tim pemain bola (football player) berasosiasi dengan liga (league) lewat suatu regu. Jika hubungannya terlalu rumit, bisa dibuatkan hubungan asosiasi antar kelas. Suatu asosiasi kelas memiliki nama dan atribut seperti kelas biasa. Notasi untuk kelas asosiasi adalah dengan garis putus-putus mengenai garis asosiasi utama. Ketika ditranslasikan menjadi kode, biasanya kelas asosiasi dianggap sebagai kelas biasa, sehingga ada tiga kelas yang terbentuk. Yang perlu diperhatikan dari gambar diatas adalah FootballPlayer tidak memiliki referensi langsung kepada FootballLeague tapi memiliki referensi terhadap FootballTeam. footballTeam akan memiliki referensi terhadap FootballLeague.
      7. Pengkualifikasi Asosiasi (Association Qualifiers)
                       Hubungan antar elemen bisa saja memiliki kunci dan indeks dengan nilai tertentu. Sebagai contoh dalam perbankan, nasabah diidentifikasi oleh nomor rekening atau nomor KTP. UML menyediakan pengkualifikasi asosiasi untuk mengakap informasi itu. Pengkualifikasi dinyatakan dengan cara membuat persegi panjang kecil antara asosiasi dengan sumber elemen. Tulis namanya (biasanya nama atribut) dalam persegi panjang kecil itu.
      8.  Antarmuka (Interface)
                        Dalam UML kita membedakan operasi (operation) dan metode (methods). Operasi diartikan sebagai cara-cara yang harus ditempuh agar perilaku (behavior) pada suatu kelas terjadi. Sedangkan metode diartikan sebagai implementasi/pelaksanaan perilaku. Metode tidak dimodelka dalam diagram  kelas. Identitas operasi (operation signature) terdiri dari nama, parameter, dan nilai balik. Kombinasi ketiga elemen tersebut menghasilkan suatu Antarmuka (Pender, 2003: Bab 5). Beberapa bahasa modern seperti C++tidak mensuport konsep antarmuka. Bahasa lain, misalnya Java, mensuport Antarmuka tetapi tidak memiliki property. Intinya adalahkita harus tahu akan diimplementasikan dalam bahasa apakah model yang akan kita aplikasikan (Pilone, 2005: 2.7
      Notasi Antarmuka
                  Sebagai contoh kita dapat membuat Antarmuka yang bernama Sortable yang memilik operasi ComesBefore (…). Tipa kelas yang melihat antarmuka Sortable harus melaksanakan implementasi ComesBefore(…). Ada dua cara pengambaran suatu antarmuka. Mana yang kita pilih tergantung apa titik berat yang akan kita perlihatkan. Gambar dibawah ini cara pertama penggambaran antarmuka Sortable. Cara penggambaran kedua adalah dengan soket dan bola. Walaupun cara ini kurang detil dibanding cara pertama tetapi sangat baik dalam mengambarkan hubungan dengan kelas-kelas yang lain. Kelas tidak bebas (dependent) dalam antarmuka ini dihubungka ke soket lain hingga klop membentuk antarmuka.
                    Suatu kelas dikatakan melihat antarmuka jika kelas tersebut menyediakan implemtasi darim operasi dan property. Kelas tidak bebas digambarkan dnegan garis purus-putus dengan penuh terbuka sedangkan kelas penyedia antarmuka digambarkan dngangaris putus-putus dengan panah tertutup berarah dari kelas u=itu ke antarmuka. Contoh yang lain adalah misalnya suatu kelas MarketingPlance menyediakan suatu operasi price() yang dapat menentukan harga suatu produk. Antarmuka penyedia digambarkan dengan suatu bola yang terhubung ke kelas implementator dengan garis tebal. Ketika suatu objek membutuhkan antarmuka, objek itu dikatakan memiliki antarmuka peminta (required interface). Digambarkan dengan setengan lingakarn pada ujungnya dan garis penuh menuju kelas yang membutuhkan antarmuka. Gambar diatas diartikan bahwa kelas Shirt membutuhkan antarmuka Price. Dan jika digabungkan akan membentuk konfigurasi bola dan soket. Shirt adalah produk yang membutuhkan suatu harga dan MarketingPlang memiliki kemampuan untuk memberikan harga ke suatu produk. Penggambaran antarmak jenis pertama dimuncilkan pada UML versi 1.4 sedangkan untuk jenis kedua (bola dan soket) mencul pada UML versi 2.0 (Pender, 2003:bab5).
      9. Template (templates)
                       Jika antarmuka mengijinkan kita menyediakan spesifikasi objek-objek yang akan kita interaksikan, UML menyediakan pula abstraksi tipe kelasna. Ketika kita menginginkan kelas List dapat mensuprot segala tpe objek, maka kita mengharuskan seluruh objek dalam List itu memiliki tipe yang sama. UML mengijinkan kita membuat dan menspesifikasikan jenis abstraksi ini dalam suatu template.
      Rangkuman
Bab III telah membahas mengenai kelas dan relasi antar kelas beserta bentuk baku pemodelannya dalam UML 2.0.
v  Kelas. Kelas digambarkan dengan kotak yang terdiri dari sekat-sekat berturut-turut dari atas kebawah untuk nama, atribut dan operasi. Dalam satu paket, nama kelas harus unik (tidak boleh ada kesamaan nama). Bila namanya sama tapi beda paket dengan kelas lain, harus disebutkan dalam format nama paket :: nama kelas
v  Atribut. Atribut mendefinisikan tipe informasi suatu keals dengan standar sintaks :
[visibility][/]name[:type] [multiplicity] [=default][{property-strig}]
v  Operasi (dan Metode). Operasi menunjukkan cara-cara dalam menjabarkan perilaku sedangkan metode merupakan implementasinya. Operasi yang sama dapat dilakukan dengan metode-metode yang berbeda. Sintaksnya dalam UML 2.0:
[visibility]name([parameter-list])’:’[return-result][{properties}]
Parameter-list:=name[‘:’data-type][‘[multiplicity’]’]
v  Visibility. Visibility menunjukkan tingkatan ijin terhadap elemen dalam kelas (atribut dan operasi) utnukm diakses oleh kelas lain. Jenis visbility antara lain: private, public, protected dan package.
v  Multiplicity. Multiplicity mendefinikan jumlah atau jangkauan nilai elemen (atribut atau parameter). Bisa berupa angka, jangkauan(range), limit bawah dan atas dengan sintaks:
Upper ::= integer | ‘*’ | value_specification
Multiplicity_range ::= [ lower ‘..’] upper
Lower ::= integer | value_spesification
v  Antarmuka (Interface). Suatu antarmuka mendefinisikan sekumpulan perilaku yang harus dimiliki oleh kelas implementator antarmuka. Operasi-operasi pada kelas antarmuka tidak memiliki metode. Atribut dalam kelas antarmuka berbentuk abstract. Jika kelas implementator antarmuka bisa menyediakan akses dalam bentuk informasi yang sama dengan operasinya, maka tidak perlu mendeklarasikan atribut lagi.
v  Kelas template. Kelas template menyediakan cara-cara mendefinisikan struktur suatu kelas tanpa menspesifikasikan tipe. Teknik ini sangat bermanfaat untuk kelas-kelas berbentuk array dan vector yang terkadang memiliki beragam tipe.