class diagram

advertisement
Kelompok 2 :
 Eka Satryawati
 Mohamad Sahlani
 Embun Fajar Wati
 Andrie Abrianto
 Dwi Wiratmoko
(14000277)
(14000341)
(14000345)
(14000348)
(14000349)
Pembahasan
Konsep OOP
 Konsep UML
 Implementasi OOP at Java

Materi :
•
•
•
•
Paradigma berbasis obyek (objectoriented/OO)
Mengapa OO ?
Pemrograman OO
Konsep-konsep dalam OOP
 Kelas dan obyek
 Mekanisme OO: encapsulation, inheritance,
dan polymorphism
OO Sebagai Paradigma
Pemrograman
•
Paradigma pemrograman: pandangan
mendasar terkait tentang formulasi sebuah
solusi dalam bahasa pemrograman
• Paradigma pemrograman menjelaskan
tentang perspektif/pandangan
pemrogram tentang program yang akan
dibuatnya
• Pemrograman berbasis obyek (OOP)
mendasarkan pada konsep object dan
interaksinya
Konsep Object
•
Dalam paradigma berbasis object, “object” adalah
representasi sebuah entitas yang memiliki makna
tertentu yang menjadi perhatian si pemandang 
object memiliki abstraksi tertentu bagi si
pemandang
 Contoh: dalam sistem akademik di kampus, beberapa
kandidat object adalah: mahasiswa, dosen, kelas, mata
kuliah, kurikulum, praktikum, laboratorium, perpustakaan,
KRS, KHS, …
•
•
Object dapat menerima pesan (message),
mengolah data, dan mengirimkan pesan ke object
lain  membentuk interaksi antar object
Object bersifat independen: tiap object dapat
dipandang sebagai sebuah entitas mandiri yang
memiliki peran atau tanggung jawab tertentu
Object dan Interaksinya
pembeli
kasir
pelayan
pesan & bayar
siapkan burger
siapkan kentang
siapkan minum
sajikan
Skenario: restoran cepat-saji
Object dan Representasi
Lingkup Permasalahan

Object dan interaksinya dapat digunakan untuk
merepresentasikan lingkup permasalahan
 Object merepresentasikan entitas-entitas yang dianggap
penting dalam skenario permasalahan
 Interaksi antar object menggambarkan bentuk-bentuk
relasi antar entitas di dalam skenario permasalahan
OO sebagai tool untuk memodelkan sistem di dunia
nyata
 setiap sistem selalu dapat digambarkan melalui
object-object penyusunnya dan bagaimana objectobject tersebut saling berinteraksi
 Dalam software engineering: OO analysis  OO
design  OO programming

Kelebihan OO Sebagai Model
Representasi
Natural: mengikuti cara berpikir
manusia (manusia memandang
dunianya sebagai kumpulan object yang
berinteraksi)
 Abstraksi: menjelaskan makna sebuah
entitas secara cepat dan mudah
 Enkapsulasi: dapat menyembunyikan
detil yang tidak perlu
 Modular: object adalah entitas yang
independen

Pemrograman dan Bahasa
Pemrograman Berbasis OO
Merealisasikan entitas-entitas object dalam
desain software (OOD) dalam bahasa
pemrograman
 Bahasa pemrograman berbasis object
menyediakan mekanisme untuk bekerja
dengan:






kelas dan object
methods
inheritance
polymorphism
reusability
Pemrograman dan Bahasa
Pemrograman Berbasis OO

Ragam bahasa pemrograman berbasis OO
 Bahasa OO “murni”  semua diperlakukan
secara konsisten mengikuti teori OO dan
“memaksa” pemrogram mengikutinya. Contoh:
Smalltalk, Eiffel, Ruby
 Bahasa yang dirancang untuk OOP, tetapi
dengan beberapa elemen prosedural. Contoh:
Java (program utama/entry point)
 Bahasa yang aslinya prosedural, tetapi
kemudian ditambah fitur-fitur OO. Contoh: C++,
Perl, PHP
Konsep-Konsep dalam OOP:
Kelas (Class)

Mendefinisikan karakteristik abstrak dari
sebuah entitas
 Property (statis) – fields, atribut
 Behaviour (dinamika) – fitur, methods
 Contoh: abstraksi “sepeda” memiliki property
“punya roda”, “punya rantai”, dsb., dan
behaviour “bisa berjalan”, “bisa berbelok”, dsb.

Sebagai abstraksi dari sebuah entitas,
definisi kelas harus mencerminkan
karakteristik sebenarnya dari entitas tsb.
Kelas

Kelas merupakan “cetakan” (template) untuk
instance (wujud nyata) entitas-entitas yang
direpresentasikannya
 Sebuah kelas dapat melahirkan lebih dari satu
instance
satu template
banyak instance
(wujud nyata)
Object
Sebuah instance (perwujudan nyata) dari suatu kelas tertentu
public class SegiEmpat {
int panjang;
int lebar;
string warna;
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
}
public setWarna (string w) {
warna = w;
}
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
SegiEmpat sPutih = new SegiEmpat(“putih”, 15,10);
SegiEmpat sOrange = new SegiEmpat(“orange”, 30,15);
Definisi Kelas dan Object
public class SegiEmpat {
int panjang;
int lebar;
string warna;
field, menunjukkan atribut/property
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
}
public setWarna (string w) {
warna = w;
}
constructor, untuk menciptakan
object (instance) baru dengan
property tertentu
methods atau member functions,
mendeskripsikan behaviour atau
aktivitas yang bisa dijalankan
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
memanggil constructor untuk membentuk
object baru
Enkapsulasi
Enkapsulasi: lokalisasi fitur-fitur sebuah object (fields dan
methods) dalam definisi object tersebut
 Enkapsulasi menyembunyikan property dan behaviour
object dari pihak luar (object yang lain)  object lain
melihat object ini sebagai “black box” saja
 Enkapsulasi memisahkan antara bagian publik (yang
bisa dilihat oleh pihak luar (object lain) dan bagian privat
(internal object itu sendiri) dengan tegas  fitur ini
memberi keleluasaan/independensi untuk bekerja
dengan aspek internal tanpa harus bergantung pada
aspek publik/eksternal  berguna untuk menangani
berbagai persoalan interoperabilitas

Enkapsulasi
public class SegiEmpat {
int panjang;
int lebar;
string warna;
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
}
Pihak luar (object lain) melihat sPink
sebagai sebuah “kotak hitam” yang
tidak terlihat isinya, kecuali fields dan
methods yang memang dideklarasikan
secara publik
public setWarna (string w) {
warna = w;
}
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
sPink
setWarna(string w)
Object lain tidak bisa
melihat apa yang dilakukan
sPink secara internal
Inheritance (Pewarisan
Sifat)

Dalam dunia OO, beberapa object memiliki sifat/ciri yang
mirip dengan yang lain  sebuah kelas object dapat
didefinisikan dari kelas yang lain
 Kemiripan ini membentuk hubungan sifat yang bersifat hirarkis
 “pesawat penyergap adalah sebuah pesawat terbang yang
dilengkapi dengan persenjataan dan dapat terbang melebihi
kecepatan suara”
○ “pesawat penyergap” memiliki ciri yang sama dengan “pesawat
terbang”  “pesawat penyergap” mewarisi sifat “pesawat terbang”
○ “pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan
“pesawat terbang”  “pesawat penyergap” adalah subclass dari
“pesawat terbang”
 Dalam OOP, hubungan inheritance (pewarisan sifat) ini
diimplementasikan melalui definisi kelas: sebuah kelas dapat
didefinisikan dari kelas yang lain
Inheritance
“bentuk”
poligon
ellips
persegi
panjang
lingkaran
segitiga
bujur
sangkar
Inheritance

Dalam pohon hirarki inheritance, sebuah subclass
mewujudkan abstraksi yang lebih spesifik dari
superclassnya: subclass = superclass + (fitur-fitur baru)
 Subclass dapat menambahkan fields dan methods baru
 Subclass dapat mengambil alih (override) method milik superclass
dan mengubah implementasi method tersebut

Manfaat inheritance:
 Pemanfaatan kembali (reuse) kelas
 Menyediakan model yang bersifat generik (abstract class);
implementasi spesifiknya bisa dilakukan kemudian (mungkin oleh
pemrogram yang berbeda)
Polymorphism
Poly: banyak; morphism: bentuk  sebuah fitur
(generik) bisa diimplementasikan dengan
berbagai cara
 Polymorphism diimplementasikan dengan
mekanisme inheritance dan overriding

hewan
“bersuara”
anjing
“menggonggong”
kucing
“mengeong”
kuda
“meringkik”
Sejarah
Unified Modeling Language (UML)
Tahun 1994, Grady Boch dan James
Rumbaugh bergabung untuk
menggunakan metode berorientasi objek.
 Ivan Jacobson bergabung pada tahun
1995, dan mereka bertiga fokus membuat
suatu bahasa pemodelan objek standar
sebagai ganti dari pendekatan atau
metode objek standar. Berdasarkan kerja
mereka dan hasil kerja lainnya pada
industri, Unified Modeling Language
(UML) versi 1.0 dirilis pada tahun 1997.




Unified Modeling Language (UML) tidak
menentukan metode untuk sistem-sistem
pengembangan, tetapi sudah diterima luas sebagai
standar untuk pemodelan objek.
Object Management Gorup/OMG, badan standar
industri, mengadopsi UML pada bulan November
1997 dan terus bekerja sama untuk
meningkatkannya berdasarkan kebutuhan industri.
Pada saat ini, salah satu industri telah merilis
sebuah sofware yang mendukung UML yaitu Visual
Paradigm 6.4 Interprise edition. Berbagai industri
juga bermunculan dan mendukung penggunaan
UML dengan berbagai produk, diantaranya Rational
Rose, SmartDraw, dan lain-lain.
Definisi
Unified Modeling Language (UML)
Unified Modeling Language (UML) merupakan satu
kumpulan konvensi pemodelan yang digunakan untuk
menentukan atau menggambarkan sebuah sistem
software yang terkait dengan objek (Whitten L. Jeffery et
al, 2004). Sementara menurut Henderi (2007: 4)
 Unified Modeling Language (UML) adalah sebuah
bahasa pemodelan yang telah menjadi standar dalam
industri software untuk visualisasi, merancang, dan
mendokumentasikan sistem perangkat lunak.
 Bahasa Pemodelan UML lebih cocok untuk pembuatan
perangkat lunak dalam bahasa pemrograman berorientasi
objek (C+ , Java, VB.NET), namun demikiantetap dapat
digunakan pada bahasa pemrograman prosedural (Ziga
Turck, 2007)

UML dan Implementasinya.

Unified Modeling Language (UML) biasa digunakan untuk
1. Menggambarkan batasan sistem dan fungsi-fungsi sistem
secara umum, dibuat dengan use case dan actor
2. Menggambarkan kegiatan atau proses bisnis yang
dilaksanakan secara umum, dibuat dengan interaction
diagrams
3. Menggambarkan representasi struktur statik sebuah
sistem dalam bentuk class diagrams
4. Membuat model behavior ”yang menggambarkan
kebiasaan atau sifat sebuah sistem” dengan state
transition diagrams
5. Menyatakan arsitektur implementasi fisik menggunakan
component and development diagrams
6. Menyampaikan atau memperluas fungsionality dengan
stereotypes (Ziga Turck, 2007)
UML dan Diagram-diagram
use case diagram
 class diagram
 statechart diagram
 activity diagram
 sequence diagram
 collaboration diagram
 component diagram
 deployment diagram

Use Case diagram
Use case diagram menggambarkan
fungsionalitas yang diharapkan dari
sebuah sistem. Yangditekankan adalah
“apa” yang diperbuat sistem, dan bukan
“bagaimana”.
 Sebuah use case merepresentasikan
sebuah interaksi antara aktor dengan
sistem.

Contoh : Use Case Diagram
Class Diagram



Class adalah sebuah spesifikasi yang jika
diinstansiasi akan menghasilkan sebuah objek
dan merupakan inti dari pengembangan dan
desain berorientasi objek.
Class menggambarkan keadaan
(atribut/properti) suatu sistem, sekaligus
menawarkan layanan untuk memanipulasi
keadaan tersebut metoda/fungsi).
Class diagram menggambarkan 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
Nama Kelas
Attribute
Metoda
Sifat dari Attribut dan
Metoda
 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 iinstansiasikan, tetapi
harus diimplementasikan dahulu menjadi sebuah class.
 Dengan demikian interface mendukung resolusi metoda
pada saat run-time.

Hubungan Antar Class
1. Asosiasi, yaitu hubungan statis antar class. Umumnya
menggambarkan class yang memiliki atribut berupa class lain,
atau class yang harus mengetahui eksistensi class lain. Panah
navigability menunjukkan arah query antar class.
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri
atas..”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat
diturunkan dari class lain 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 dipassing dari satu class kepada class lain. Hubungan dinamis
dapat digambarkan dengan menggunakan sequence diagram.
Statechart Diagram

Statechart diagram menggambarkan transisi
dan perubahan keadaan (dari satu state ke
state 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).
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 diagram khusus, 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.
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
Masing-masing objek, termasuk aktor,
memiliki lifeline 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.
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
6. Definisikan objek-objek level atas (package atau
domain) dan buatlah sequence dan/atau
collaboration diagram untuk tiap alir pekerjaan.
Jika sebuah use case memiliki 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 package atau
domain dipecah 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 pengelompokan class 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.
12. Lakukan uji modul dan uji integrasi serta perbaiki
model berserta codenya. Model harus selalu sesuai
dengan code yang aktual.
13. Piranti lunak siap dirilis.
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)
Data seluruh tool yang mendukung UML, lengkap beserta
harganya (dalam US dolar) bisa anda pelajari di situs
http://www.objectsbydesign.com/tools/umltools_byCompan
y.html . Disamping itu, daftar tool UML berikut fungsi dan
perbangingan kemampuannya juga dapat dilihat di
http://www.jeckle.de/umltools.htm.
Pengenalan Java


Java menurut definisi dari Sun Microsystem
adalah nama untuk sekumpulan teknologi
yang membuat perangkat lunak dan
menjalankan perangkat lunak pada komputer
standalone ataupun pada lingkungan
jaringan. Java2 adalah generasi kedua dari
Java platform. Java berdiri di atas sebuah
mesin intepreter yang diberi nama Java
Virtual Machine (JVM).
JVM inilah yang akan membaca bytecode
dalam file .class dari suatu program
sebagai representasi langsung program
yang berisi bahasa mesin. Oleh karena itu
bahasa Java disebut sebagai bahasa
pemrograman yang portable, karena dapat
dijalankan pada berbagai sistem operasi,
asalkan pada sistem operasi tersebut
Platform Java


Platform Java terdiri dari sekumpulan library,
compiler, debugger dan alat lain yang dipaket
dalam Java Development Kit (JDK).
Java 2 adalah generasi yang sekarang sedang
berkembang dari platform Java. Agar sebuah
program Java dapat dijalankan, maka file
dengan ekstensi .java harus dikompilasi
menjadi file bytecode. Untuk menjalankan file
byte-code tersebut dibutuhkan JRE (Java
Runtime Environment) yang memungkinkan
pemakai untuk menjalankan program Java,
hanya menjalankan tidak membuat kode baru
lagi. JRE terdiri dari JVM dan library Java
yang digunakan.
3 Buah Edisi Java :
J2EE (Java 2 Enterprise Edition)
 J2SE (Java 2 Second Edition)
 J2ME (Java 2 Micro Edition)

J2EE (JAVA 2 ENTERPRISE
EDITION)

J2EE adalah kelompok dari beberapa API
(Application Programming Interface) dari Java dan
teknologi selain Java. J2EE dirancang untuk
membuat aplikasi yang rumit. J2EE sering dianggap
sebagai middle-ware atau teknologi yang berjalan di
server, namun sebenarnya J2EE tidak hanya
terbatas untuk itu. Faktanya J2EE juga mencakup
teknologi yang dapat digunakan di semua lapisan
dari sebuah sistem informasi.

Implementasi J2EE menyediakan kelas dasar dan
API dari Java yang mendukung pengembangan dan
rutin standard untuk aplikasi client maupun server,
termasuk aplikasi yang berjalan di web browser.
J2SE (JAVA 2 SECOND
EDITION)

J2SE adalah inti/ dasar dari bahasa
pemrograman Java. JDK (Java
Development Kit) adalah salah satu tool
dari J2SE untuk mengkompilasi dan
menjalankan program Java. Tool J2SE
yang salah satunya adalah JDK 1.5
dapat diunduh pada
http://java.sun.com/j2se/, dimana JDK
merupakan tool open source dari Sun.
J2ME (JAVA 2 MICRO
EDITION)
J2ME adalah lingkungan
pengembangan yang dirancang untuk
meletakan perangkat lunak Java pada
barang elektronik beserta perangkat
pendukungnya.
 Pada J2ME, jika perangkat lunak
berfungsi baik pada sebuah perangkat,
maka belum tentu juga berfungsi baik
pada perangkat yang lainnya.

J2ME membawa Java ke dunia informasi,
komunikasi, dan perangkat komputasi selain
perangkat komputer desktop yang biasanya
lebih kecil dibandingkan perangkat komputer
desktop.
 J2ME biasa digunakan pada telepon selular,
pager, personal digital assistants (PDA) dan
sejenisnya.



J2ME adalah bagian dari J2SE, karena itu tidak
semua librabry yang ada pada J2SE dapat
digunakan pada J2ME.
Tetapi J2ME mempunyai beberapa library khusus
yang tidak dimiliki J2SE. Arsitektur J2ME dapat
dilihat seperti pada gambar berikut ini
Teknologi J2ME juga memiliki beberapa
keterbatasan, terutama jika diaplikasikan pada
ponsel.
 J2ME sangat tergantung pada perangkat
(device) yang digunakan, bisa dari segi merek
ponsel dan dukungan terhadap teknologi
J2ME. Misalnya, jika sebuah ponsel tidak
memiliki kamera, maka jelas J2ME pada ponsel
tersebut tidak dapat mengakses kamera.
 Keterbatasan lainnya adalah pada ukuran
aplikasi, karena memori pada ponsel sangat
terbatas. Sebagian ponsel tidak mengijin-kan
aplikasi J2ME menulis pada file, karena alasan
keamanan.

Configuration merupakan Java Library
minimum dan kemampuan yang dimiliki
oleh para pengembang J2ME, maksudnya
adalah sebuah moblile device dengan
kemampuan Java akan dioptimalkan agar
sesuai.
 Configuration hanyalah mengatur hal-hal
tentang kesamaan sehingga dapat
dijadikan ukuran kesesuaian antar device.
Misalnya sebuah lampu sepeda dapat
digunakan oleh berjenis-jenis sepeda.

Dalam J2ME telah didefinisikan dua buah
konfigurasi yaitu :
 CLDC (Connected Limited Device
Configuration) Untuk perangkat kecil.
 CDC (Connected Device Configuration) Untuk
perangkat yang lebih besar.

Profile berbeda dengan configuration,
profile membahas sesuatu yang spesifik
untuk sebuah perangkat. Sebagai contoh
misalnya, sebuah sepeda dengan merek
tertentu tentu mempunyai ciri spesifik dari
sepeda lainnya.

Dalam J2ME terdapat dua buah profile
yaitu MIDP (Mobile Information Device
Profile) dan Foundation Profile.
Keterhubungan antara configuration dan
profile yang ada pada J2ME beserta jenis
mesin virtualnya dapat dilihat pada gambar
dibawah ini.
CLDC (Connected Limited Device
Configuration) adalah perangkat dasar dari
J2ME berupa library dan API yang
diimplementasikan pada J2ME, seperti yang
digunakan pada telepon selular, pager dan
PDA. Perangkat tersebut sangat terbatas pada
memori, sumber daya dan kemampuan
memproses.
 Spesifikasi CLDC pada J2ME adalah spesifikasi
minimal dari package, kelas, dan sebagian
fungsi JVM yang dikurangi agar dapat
diimplemen-tasikan dengan keterbatasan
sumber daya pada alat-alat tersebut. JVM yang
digunakan disebut KVM (Kilobyte Virtual
Machine).

CDC (Connected Device Configuration)
merupakan komunitas proses pada Java
yang memiliki standardisasi.
 CDC terdiri dari virtual machine dan library
dasar untuk dipergunakan pada profile
industri.
 Implementasi CDC pada J2ME adalah
source code yang menyediakan sambungan
dengan macam-macam platform.

Perbandingan antara CLDC
dengan CDC sebagai berikut :
MIDP (Mobile Information Device Profile)
adakal spesifikasi untuk sebuah profil J2ME.
MIDP memiliki lapisan di atas CLDC, API
tambahan untuk daur hidup aplikasi,
antarmuka, jaringan, dan penyimpan-an
persisten.
 Pada saat ini terdapat MIDP 1.0 dan MIDP
2.0, fitur tambahan pada MIDP 2.0 adalah
terdapat API untuk multimedia, terdapat
dukungan memainkan tone, tone sequence,
dan file WAV walaupun tanpa adanya Mobile
Media API (MMAPI).

KVM (Kilobyte Virtual Machine) adalah paket
JVM yang dirancang untuk perangkat yang
kecil. KVM mendukung sebagian dari fiturfitur JVM, tidak mendukung operasi floatingpoint dan finalisasi objek. KVM
diimplementasikan dengan menggunakan C,
sehingga sangat mudah beradaptasi pada
tipe platform yang berbeda
 CVM (C-Virtual Machine) adalah paket JVM
yang digunakan pada CDC. CVM
mempunyai seluruh fitur-fitur dari virtual
machine yang dirancang untuk perangkat
yang memerlukan fitur-fitur Java 2 Virtual
Machine.

MIDlet adalah aplikasi yang ditulis untuk
MIDP. Aplikasi MIDlet adalah bagian dari
kelas javax.microedition.midlet. MIDlet
yang didefinisikan pada MIDP. MIDlet
berupa sebuah kelas abstrak yang
merupakan sub kelas dari bentuk dasar
aplikasi sehingga antaramuka antara
aplikasi J2ME dan aplikasi manajemen
pada perangkat dapat terbentuk.
 JAD (Java Application Descriptor)
digunakan untuk mendeskripsikan isi
aplikasi untuk keperluan pemetaan. File
JAD bersisi deskripsi file JAR (Java
Archive) dan pemetaan atribut MIDlet,
sedangkan file JAR berisi kumpulan kelas
dan resource.





OTA (Over The Air) mengacu pada beberapa
teknologi jaringan tanpa kabel. Dengan
menggunakan OTA, provider MIDlet dapat
menginstal MIDlet pada web server dan
menyediakan link untuk mengunduh via WAP atau
internet microbrowser.
J2ME WTK (J2ME Wireless Tool Kit) adalah alat
yang menyediakan lingkungan emulator,
dokumentasi, beserta contoh-contoh aplikasi Java
untuk perangkat kecil (small device). J2ME WTK
berbasiskan pada CLDC dan MIDP.
J2ME WTK adalah program yang meniru kerja
ponsel yang mendukung MIDP atau yang biasa
disebut emulator.
Oleh karena itu, belum tentu MIDlet yang berjalan
di emulator juga berjalan pada ponsel yang
sebenarnya, karena juga tergantung pada
kemampuan dan kapasitas ponsel yang digunakan.
Untuk memulai Implementasi OOP di
Java apakah yang harus di
persiapkan…????
Pastikan sebuah Platform Java seperti
Java Development Kit (JDK).
 Dan Edisi-edisi yang sudah di sediakan
oleh Java itu sendiri, seperti :

 J2EE (Java 2 Enterprise Edition)
 J2SE (Java 2 Second Edition)
 J2ME (Java 2 Micro Edition)
 NetBeans 6.7.1
 Modul UML (Free Download Plugin UML)
Sudah terinstall dengan baik.
Design UML
Langkah-langkah pembuatan :
 Pilih New Project pada Menu Bar  pilih UML pada Choose Project
Categories

Pada Project pilih Java  Platform Model

Berikan nama pada Project Name  tentukan Project Location
dimana project ini akan disimpan pada Folder yang sudah kita
tentukan sebelumnya untuk memudahkan kita dalam pencarian,
contoh :

D:\LatJava

Kemudian, akan
tampil gambar
berikut :

Pilih Class Diagram pada Diagram Type karena memang pada
latihan ini kita menggunakan sebuah kelas diagram untuk
mengimplementasikan sedangkan untuk pemahaman UML sendiri
kita bisa mempelajari pada buku yang membahas UML

Berikan nama pada Diagram Name contoh :
BangunRuangClassDiagram  klik Finish untuk menyelesaikan
pembuatan Class Diagram

Pilih sebuah Class Interface pada Menu Palette  Drag
pada Class Interface  Drop pada lingkungan kerja kita 
atur pada

properties atau double klik pada objek class name pada
Class Interface untuk memberikan nama pada Class
tersebut seperti yang terlihat pada gambar dibawah ini
Klik kanan pada Class Interface  pilih Create Operation
 Interface ini kita beri nama BangunRuang2Dimensi yang terdiri dari
objek Segitiga, Segiempat, dan Lingkaran


Membuat Class Diagram Segitiga : klik pada Menu Palette  pilih
Class Diagram lakukan Drag & Drop pada objek tersebut

Beri nama pada objek tersebut Segitiga  klik kanan pada objek  pilih
Create Attribute (berupa Alas dan Tinggi)  hilangkan kata int unnamed
ganti dengan double Alas dan Tinggi

Klik pada objek SegiTiga sehingga tampil menu disamping objek yang kita
pilih  pilih implementation pada saat meng-klik  tahan dan tarik objek
tersebut sampai menyentuh sebuah objek Bangun Ruang 2Dimensi
Selanjutnya buat sebuah objek baru yaitu Prisma
 Pada Class Prisma kita hanya membutuhkan attribute Tinggi
Prisma (Polymorfisme)


Untuk Alas dan Tinggi kita bisa ambil attribute tersebut pada
kelas Segitiga dengan cara : klik pada objek Prisma  akan
muncul menu di samping kanan objek  pilih Generalization

Klik button OK

Drag & Drop Package pada Menu Palette  berikan nama pada Package dengan
BangunRuangUAS  klik pada objek Package

Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk
mengelompokkan kelas- kelas (dan juga interface-interface) yang terkait (karena
jenisnya/fungsinya/alasan lain), sehingga memungkinkan beberapa kelas yang
bernama sama disimpan dalam package yang berbeda.
Klik pada Containment  lakukan koneksi dari masing-masing objek dengan cara
mengklik Containment  hubungkan dengan semua objek yang ada

Membangun Aplikasi Java
Console




Aplikasi yang dijalankan dengan Command Line Interface
Langkah-langkah pembuatan :
Klik pada Menu Bar  klik File  pilih New Project  pilih Java pada menu Choose
Project  pilih Java Application pada Project  tekan tombol Next
Buatlah nama project sesuai dengan nama UML Bangun Ruang, contoh :
BangunRuang  klik Finish
Lakukan proses Generate Code dengan cara klik kanan pada Mouse  arahkan
pada Bangun Ruang Package pada UML  klik tombol OK

Ubahlah listing program yang sudah di generate seperti
operations / method
pada gambar
PrismaSegitiga.java
Segitiga.java
attribute




Super : fungsi ini menunjukan bahwa setiap Class yang
mengacu pada Class yang lain dan dianggap bahwa Class
tersebut adalah sebagai Class yang menurunkan sifat
Super.getLuas() : fungsi ini mengambil perhitungan luas dari
segitiga karena generalization.
Operations/method adalah instruksi pemrosesan yang
menjadi bagian dari objek.
Attribute adalah sesuatu yang dimiliki oleh objek.
Source Code pada Class Main
package bangunruang;
public class Main {
public static void main(String[] args) {
Constructor
Instance / object
Segitiga segi3 = new Segitiga(); //pemanggilan class
segi3.setAlas(10); //pemanggilan method
segi3.setTinggi(20);
System.out.println("===========Segitiga================");
System.out.println("Lebar : " + segi3.getAlas));
System.out.println("Panjang : " + segi3.getTinggi());
System.out.println("Luas : " + segi3.getLuas());
System.out.println("Keliling : " + segi3.getKeliling());
System.out.println("===========End Segitiga=============");
PrismaSegitiga prisma = new PrismaSegitiga();
prisma.setAlas(40);
prisma.setTinggi(50);
prisma.setTinggiPrisma(20);
System.out.println("=========Prisma Segitiga============");
System.out.println("Lebar Balok : "+ prisma.getAlas());
System.out.println("Panjang Balok : "+ prisma.getTinggi());
System.out.println("Tinggi Balok : "+ prisma.getTinggiPrisma());
System.out.println("Valume Balok : "+ prisma.getVolume());
System.out.println("========End Prisma Segitiga=========");
//Constructor : nama sama dengan kelas tetapi tidak mengembalikan nilai
//Instance Prisma Segitiga Ke Segitiga Metode Pholymorphisme
//Maka nilai Tinggi and Method getVolume akan hilang
//Dari bawah ke atas bisa Class
Segitiga segi3_2 = new PrismaSegitiga();
segi3_2.setAlas(60);
segi3_2.setTinggi(70);
System.out.println("=========Segitiga dari Prisma
Baru===========");
System.out.println(“Alas : " + segi3_2.getAlas());
System.out.println(“Tinggi : " + segi3_2.getTinggi());
System.out.println("Luas : " + segi3_2.getLuas());
System.out.println("Keliling : " + segi3_2.getKeliling());
System.out.println("=======End Segitiga dari Prisma Baru
=========");
//atau instance prisma segitiga di samakan dengan instance segitiga
//dari segitiga dan prisma segitiga
//segi3_2 =blk; //cara pemaksaan
//casting  menyerupakan, pemaksaan tapi lebih sopan
segi3_2 = (Segitiga)prisma;
System.out.println("=========Segitiga Instance dari Prisma=========");
System.out.println(“Alas = " + segi3_2.getAlas());
System.out.println(“Tinggi = " + segi3_2.getTinggi());
System.out.println("Luas = " + segi3_2.getKeliling());
System.out.println("Keliling = " + ssegi3_2.getLuas());
System.out.println("=====End Segitiga Instance dari Prisma=========");
//Polimorphisme dengan menggunakan Implement
//dari Segitiga ke 2D
BangunRuang2DInt bangun2DInt = new Segitiga();
BangunRuang2DInt bangun2DInt2 = segi3;
BangunRuang2DInt bangun2DInt3 = new PrismaSegitiga();
BangunRuang2DInt bangun2DInt4 = prisma;
System.out.println("=========Interface 2D dari Segitiga========");
System.out.println("Luas : " + bangun2DInt2.getLuas());
System.out.println("Keliling : " + bangun2DInt2.getKeliling());
System.out.println("=======End Interface 2D dari Segitiga ======");
//dari Balok ke 3D
BangunRuang3DInt bangun3DInt = new PrismaSegitiga();
BangunRuang3DInt bangun3DInt2 = prisma;
//casting
BangunRuang3DInt bangun3Dint2a = (BangunRuang3DInt)prisma;
System.out.println("=========Interface Balok ke 3D===========");
System.out.println("Volume Balok : " + bangun3DInt2.getVolume());
System.out.println("=======End Interface Balok ke 3D =========");
/*Tidak bisa
* BangunRuang3DInt bangun3Dint2 = segi3;
* PrismaSegitiga prisma = new Segitiga(); */
}
}
Membangun Aplikasi Java
Desktop
Aplikasi yang dijalankan dalam bentuk GUI (Graphical User Interface)
Langkah-langkah pembuatan :
 Lakukan Build pada Bangun Ruang Console untuk membuat suatu File
Library yang berekstensi JAR (Java Archive).
 File ini adalah sebuah pengelompokan dari banyak File Java atau bisa
disebut juga dengan sebuah Package dari sebuah File dengan tujuan agar
bisa menjamin bahwa nama yang digunakan tetap unik juga untuk
mengontrol visibility class atau interface yang ada didalam.

o
Klik kanan pada Bangun Ruang Dekstop yang sudah kita
buat  pilih properties
o
Pada list menu di samping kiri pilih Libraries  klik tombol
AddJAR/Folder di sebelah kanan form

Cara membuat sebuah Form dengan menggunakan JFrameMain (Frame
Utama) : klik kanan pada Packages  pilih New  pilih JFrame Form

Buatlah tampilan menu dengan drag & drop MenuBar. Menu dengan JMenu
dan submenu dengan JMenuItem yang terdapat di Palette.
JFrmMain.java
•
Swing Menus
Variable Name
Text
JMenu
jMnuBangunRuang2D
Bangun Ruang 2D
JMenuItem
jMniSegitiga
Segitiga
JMenu
jMnuBangunRuang3D
Bangun Ruang 3D
JMenuItem
jMniPrismaSegitiga
Prisma Segitiga
JMenu
jMnuFile
File
JMenuItem
jMniKeluar
Keluar



Setelah membuat menu, kemudian membuat desain JFrame berikut dengan
cara drag & drop JLabel, JTextField, dan JButton pada Palette.
Untuk mengubah nama variabel dan text yang ditampilkan dengan cara
mengubah di Propertiesnya.
Berikut desain JFrame yang harus dibuat :
JTextField
JButton
JLabel






Keterangan JFrame :
FrmSegitiga.java
FrmPrismaSegitiga.java
Swing
Controls
Variable Name
Text
Swing Controls
Variable Name
Text
JLabel
Segitiga
Segitiga
JLabel
Prisma Segitiga
Prisma Segitiga
JLabel
Alas
Alas
JLabel
Alas
Alas Segitiga
JTextField
jTxtAlas
0
JTextField
jTxtAlasSegitiga
0
JLabel
Tinggi
Tinggi
JLabel
Tinggi
Tinggi Segitiga
JTextField
jTxtTinggi
0
JTextField
jTxtTinggiSegitiga
0
Jbutton
jBtnHitung
Hitung
Jbutton
jBtnHitung
Hitung
JLabel
Luas
Luas
JLabel
TinggiPrisma
Tinggi Prisma
JTextField
jTxtLuas
0
JTextField
jTxtTinggiPrisma
0
JLabel
Keliling
Keliling
JLabel
Volume
Volume Prisma
JTextField
jTxtKeliling
0
JTextField
jTxtVolume
0
JTextField digunakan untuk menginput nilai
JLabel digunakan hanya untuk tampilan dan tidak bisa menginput nilai
JButton digunakan untuk menjalankan perhitungan atau proses
Masing-masing mempunyai event yang bisa dibuat dengan cara klik kanan pada
Button / Label / Text Field pilih Events  … (terdapat banyak event sesuai
kebutuhan)
Events, yaitu objek untuk mewakili peristiwa klik atau tombol ditekan

Source Code (diubah pada event)
JFrmMain.java
private void jmniSegiTigaActionPerformed(java.awt.event.ActionEvent evt) {
if (frmsegitiga == null) {
frmsegitiga = new FrmSegiTiga(); }
showForm(frmsegitiga); }
Events
private void jmniPrismaSegitigaActionPerformed(java.awt.event.ActionEvent evt) {
if (frmprismasegitiga == null) {
frmprismasegitiga = new FrmPrismaSegitiga(); }
showForm(frmprismasegitiga); }
private void jmniKeluarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); }
private void showForm(Object obj) {
JInternalFrame jf = null;
if (obj instanceof JInternalFrame) {
jf = (JInternalFrame) obj;
if (!jf.isVisible()) {
jDesktopPane1.add(jf); }
jf.setVisible(true);
try {
jf.setMaximum(true);
jf.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
e.printStackTrace(); } } }
FrmSegitiga.java
private void jbtnHitungActionPerformed(java.awt.event.ActionEvent evt) {
Segitiga segi3=new Segitiga();
segi3.setAlas(Double.parseDouble(jtxtAlas.getText()));
segi3.setTinggi(Double.parseDouble(jtxtTinggi.getText()));
jtxtLuas.setText(segi3.getLuas() + "");
jtxtKeliling.setText(segi3.getKeliling() + "");
}
FrmPrismaSegitiga.java
private void jbtnHitungActionPerformed(java.awt.event.ActionEvent evt) {
PrismaSegitiga pr=new PrismaSegitiga();
pr.setAlas(Double.parseDouble(jtxtAlas.getText()));
pr.setTinggi(Double.parseDouble(jtxtTinggi.getText()));
pr.setTinggiPrisma(Double.parseDouble(jtxtTinggiPrisma.getText()));
jtxtVolume.setText(pr.getVolume() + "");
}



Double.parseDouble : untuk mengkonversi nilai dari tipe string ke double
getText() : untuk mendapatkan nilai yang diinput
setText() : untuk menampilkan nilai
Membangun Aplikasi Web Di
Java
Aplikasi yang dijalankan di browser yang berbentuk web
Langkah-langkah pembuatan :
 Klik file → new project lalu pilih web → web application.
Kemudian pilih tombol next


Beri nama pada Project Name : BangunRuangWeb → klik tombol Next

Pilih server GlassFish V2 → klik tombol Next → klik Finish. Setelah itu akan
muncul file index.jsp



Kopikan gambar-gambar yang dibutuhkan ke dalam folder
BangunRuangWeb/Web yang ada di NetBeansProjects.
Berikut ini adalah gambar-gambar yang sudah dikopikan ke dalam
folder :
Buatlah file jar yang berasal dari BangunRuang dengan cara : klik
kanan pada BangunRuangWeb → pilih Properties → pilih Libraries →
klik tombol Add JAR/Folder.


Buatlah file jar yang berasal dari BangunRuang dengan cara : klik
kanan pada BangunRuangWeb → pilih Properties → pilih Libraries →
klik tombol Add JAR/Folder
Pilih di folder NetBeansProjects/BangunRuang/dist/BangunRuang.jar
→ klik tombol OK → klik tombol OK lagi.


Buatlah file-file JSP dengan cara : klik kanan di BangunRuangWeb → Web
Pages → Pilih New → JSP
Berilah nama JSP File Name : Balok → setelah itu pilih tombol Finish
Source code yang harus diubah :
Source code Java ditandai dengan <% %>
Segitiga.jsp
<%@page import="bangunruang.*"%>
<%
String tinggi= request.getParameter("tinggi") == null ? "0":request.getParameter("tinggi");
String alas = request.getParameter("alas") == null ? "0":request.getParameter("alas");
Pembuatan tabel Segitiga st = new Segitiga();
st.setAlas(Double.parseDouble(alas));
Pemanggilan halaman index.jsp
st.setTinggi(Double.parseDouble(tinggi)); %>
<a href="index.jsp">Home</a> <br>
<table align="center" border="2" bgcolor="#fabc5a" cellpadding="5" cellspacing="0">
<caption align="top"><H1>SEGI TIGA<H1></caption> <tr><th>
<img width="160" height="160" src="122px-Triangle.Equilateral.svg.png" align="left">
Menyisipkan gambar
Segitiga adalah nama suatu bentuk yang dibuat dari tiga sisi yang berupa garis
lurus dan tiga sudut. Matematikawan Euclid yang hidup sekitar tahun 300 SM menemukan bahwa
jumlah ketiga sudut di suatu segi tiga adalah 180 derajat. Hal ini memungkinkan kita menghitung
besarnya salah satu sudut bila dua sudut lainnya sudah diketahui.
</th></tr>
<tr><td><Form>
Nama variabel harus sama
<img width='200' height='150'
src='S3.png'
align="left">
Membuat
text untuk
menginput
<pre>Tinggi : </pre><input type=text name=tinggi value=<%=tinggi%>>
<pre>Alas : </pre><input type=text name=alas value=<%=alas%>>
<br><input type=submit Value=Hitung>
</Form></td></tr>
<tr><td> <pre> Luas : <%=st.getLuas() %></pre>
<pre> Keliling : <%=st.getKeliling() %></pre>
Membuat button hitung
</td></tr></table>
Membuat label
Pemanggilan method di Java
PrismaSegitiga.jsp
<%@page import="bangunruang.*"%>
<%
String tinggi= request.getParameter("tinggi") == null ? "0":request.getParameter("tinggi");
String alas = request.getParameter("alas") == null ? "0":request.getParameter("alas");
String tinggiP = request.getParameter("tinggiP") == null ? "0":request.getParameter("tinggiP");
PrismaSegitiga pri = new PrismaSegitiga();
pri.setAlas(Double.parseDouble(alas));
pri.setTinggi(Double.parseDouble(tinggi));
pri.setTinggiPrisma(Double.parseDouble(tinggiP)); %>
<a href="index.jsp">Home</a>
<br>
<table align="center" border="2" bgcolor="#fabc5a" cellpadding="5" cellspacing="0" >
<caption align="top"><H1>PRISMA SEGITIGA<H1></caption>
<tr><th>
<img width="160" height="160" src="220px-Prisma.JPG" align="left">
Dalam geometri, prisma adalah bangun ruang tiga dimensi yang dibatasi oleh alas dan tutup
identik berbentuk segi-n dan sisi-sisi tegak berbentuk segiempat. Dengan kata lain prisma
adalah bangun ruang yang mempunyai penampang melintang yang selalu sama dalam bentuk dan ukuran.
</th></tr>
<tr><td><Form >
<img width="200" height="150" src="prisma.jpg" align="left">
<pre>Alas
: <input type=text name=alas value=<%=alas%>></pre>
<pre>Tinggi
: <input type=text name=tinggi value=<%=tinggi%>> </pre>
<pre>Tinggi Prisma : <input type=text name=tinggiP value=<%=tinggiP%>></pre>
<input type=submit Value=Hitung>
</Form></td></tr>
<tr><td>
<pre>Volume : <%=pri.getVolume()%> </pre>
</td></tr>
</table>
Membangun Aplikasi
Mobile
Aplikasi yang dijalankan di mobile / handphone
Langkah-langkah pembuatan :
 Pilih File → New Project → pilih Mobility → MIDP Application → klik tombol
Next
 Berilah nama pada Project Name : BangunRuangMobile → klik tombol Next
 Pilih MIDP 2.0 → klik tombol Next → klik tombol Finish.




Copy semua file dari .java dari
NetBeansProjects/BangunRuang ke dalam folder
bangunruangmobile
Bukalah BangunRuang.java yang bersimbol penggaris dan
pensil di dalam BangunRuangMobile → pilih tab Flow
Berilah nama JSP File Name : PrismaSegitiga → setelah itu
pilih tombol Finish
Splash screen : tampilan yang kita lihat pertama kali waktu kita
menjalankan sebuah aplikasi.
 Splash screen ini biasanya ditampilkan untuk mengurangi kejenuhan user
sewaktu program masih dalam tahap inisialisasi.
Cara membuat splash screen :
 Pilih di dalam Pallete → Splash Screen, buat di dalam flow → tariklah garis
dari started ke Splash Screen.
 Untuk mengganti Text di Splash Screen → ubah di Properties → Text →
Ketik Wait until background task is complete ...


Untuk membuat image di Splash Screen : ubah di properties →
klik kotak kecil yang ada di image → pilih image1 → lalu pilih
file gambar yang sudah ada.

Untuk membuat garis pada flow, dengan cara menarik garis
dari screen command atau exit command atau splash screen ke
form yang dituju

Cara membuat frmWelcome :
Pilih di dalam Pallete → Form.
Buatlah di dalam flow → ubah properties → instance name (nama form)
menjadi frmWelcome dan Title (judul yang akan ditampilkan di mobile)
menjadi Welcome.

Klik kanan pada frmWelcome yang sudah ada di dalam layar Flow → pilih
New/Add → pilih Screen Command → ganti instance name menjadi
scrBangunRuang2D








Buatlah satu Screen Command lagi dan ubah instance name
menjadi scrBangunRuang3D.
Screen Command : tampilan di layar handphone untuk menuju
ke form yang diinginkan
Untuk membuat Exit Command : klik kanan pada form pilih
New/Add → pilih Exit Command
Exit Command : tampilan di layar untuk instruksi keluar dari
form
Untuk membuat List : pilih di Pallette → List.
Untuk membuat List Element di dalam List : klik kanan pada list
→ pilih List Element.
Untuk membuat Back Command : klik kanan pada form/list →
pilih New/Add → pilih Back Command
Back Command : tampilan di layar untuk kembali ke form
yang dituju

Buatlah tampilan menjadi seperti berikut :

Keterangan Flow :
(frm:Form, scr:Screen Command, list:List)

Screen untuk masing-masing list, form welcome dan splash screen :
List Element
DateField

Screen untuk masing-masing form :
TextField
StringItem







TextField : untuk menginput nilai
Cara membuat TextField : klik kanan pada device screen seperti gambar diatas  New/Add
 Text Field
StringItem : untuk menampilkan hasil perhitungan
Cara membuat StringItem : klik kanan pada device screen seperti gambar diatas  New/Add
 String Item
DateField : untuk menampilkan tanggal dan waktu
ListElement : bagian dari List
Cara membuat DateField dan ListElement hampir sama dengan TextField dan String Item,
hanya saja pilihan terakhir yang berbeda
ListBangunRuang2D
ListBangunRuang3D
Type
Properties
Value
Type
Properties
Value
List Element
String
Segitiga
List Element
String
Prisma Segitiga
frmWelcome
Type
Instance Name
Properties
Value
DateField
Tanggal
Input Mode
Date
DateField
Waktu
Input Mode
Time
frmSegitiga
SplashScreen
Sudah dibahas sebelumnya
frmPrismaSegitiga
Type
Instance Name
Properties
Value
Type
Instance Name
Properties
Value
TextField
txtAlasSG
Label
Alas
TextField
txtAlasPS
Label
Alas
TextField
txtTinggiSG
Label
Tinggi
TextField
txtTinggiPS
Label
Tinggi
StringItem
strLuasSG
Label
Luas
TextField
txtTinggiprismaPS
Label
Tinggi Prisma
StringItem
strKelilingSG
Label
Keliling
StringItem
strVolumePS
Label
Volume

Source Code yang perlu diubah di dalam commandAction() :
Segitiga
else if (command == scrHitungSegitiga) {
Untuk Mengambil nilai yang diinput
Segitiga sg = new Segitiga();
sg.setAlas(Double.parseDouble(txtAlasSG.getString()));
sg.setTinggi(Double.parseDouble(txtTinggiSG.getString()));
strLuasSG.setText(sg.getLuas() +"");
strKelilingSG.setText(sg.getKeliling()+"");
}
PrismaSegitiga
else if (command == scrHitungPrismaSegitiga) {
PrismaSegitiga ps = new PrismaSegitiga();
ps.setAlas(Double.parseDouble(txtAlasPS.getString()));
ps.setTinggi(Double.parseDouble(txtTinggiPS.getString()));
ps.setTinggiPrisma(Double.parseDouble(txtTinggiprismaPS.getString()));
strVolumePS.setText(ps.getVolume() +"");
}
-- SEKIAN DAN TERIMA KASIH --
Download