Anda di halaman 1dari 95

7/26/22, 11:16 AM Quiz M12: Attempt review

Dashboard / My courses / ATA 2021/2022 | 2IA04 | Pemrograman Berbasis Objek ** | FAUZIAH SUPARDI
/ Vclass M12(28.06.2022) - Actifity Diagram / Quiz M12

Started on Monday, 4 July 2022, 8:55 PM


State Finished
Completed on Monday, 4 July 2022, 8:57 PM
Time taken 2 mins 18 secs
Grade 10.00 out of 10.00 (100%)
Question 1 Method yang digunakan untuk mengkonversi nilai string ke integer dalam Java adalah
Correct
Mark 1.00 out Select one:
of 1.00 a. ParseInt( ) 
b. ConverseInt( )
c. ChangeInt( )
d. Cint()

Your answer is correct.


The correct answer is: ParseInt( )

Question 2 Int[ ][ ] multiples = new int[4][2];


Correct Kode program diatas adalah contoh pendeklarasian ….
Mark 1.00 out
of 1.00 Select one:
a. Array 2 Dimensi 
b. String
c. Empat Array
d. Array 1 Dimensi

Your answer is correct.


The correct answer is: Array 2 Dimensi

Question 3 Berikut adalah salah satu jenis dari requirements dalam JAVA adalah
Correct
Mark 1.00 out Select one:
of 1.00 a. System Requirements 
b. Product Requirements
c. Functional Requirements
d. External Requirements

Your answer is correct.


The correct answer is: System Requirements

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6695921&cmid=956199 1/4
7/26/22, 11:16 AM Quiz M12: Attempt review

Question 4 Simbol atau notasi state diagram yang berfungsi untuk menunjukkan bahwa proses dihentikan adalah....
Correct
Mark 1.00 out Select one:
of 1.00
a.
b.
c. 

d.

Your answer is correct.


The correct answer is:

Question 5 Sebuah konsep dimana ada sebuah method yang di gunakan untuk mengembalikan nilai dari field/variable yang
Correct memiliki hak akses private/protected adalah:
Mark 1.00 out
of 1.00 Select one:
a. Polymorphisme
b. Encapsulaltion
c. Accessor 
d. Mutator

Your answer is correct.


The correct answer is: Accessor

Question 6 Perhatikan penggalan source code dibawah ini!


Correct if ( grade > 70 )
Mark 1.00 out System.out.println(“Passed”);
of 1.00 else
System.out.println(“Failed”);
Jika penggalan program diatas diubah dengan menggunakan operator kondisi maka hasilnya akan menjadi
Select one:
a. System.out.println( ? grade > 70 “Passed” : “Failed” )
b. System.out.println( grade > 70 ? “Passed” : “Failed” ) 
c. System.out.println( grade > 70 ? “Passed” ? : “Failed” )
d. System.out.println( grade > 70 : “Passed” ? “Failed” )

Your answer is correct.


The correct answer is: System.out.println( grade > 70 ? “Passed” : “Failed” )

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6695921&cmid=956199 2/4
7/26/22, 11:16 AM Quiz M12: Attempt review

Question 7 Kumpulan dari method-method yang belum terdapat operasi di dalam tubuh method tersebut disebut.…....
Correct
Mark 1.00 out Select one:
of 1.00 a. Interface 
b. Method abstract
c. Abstract class
d. Implements

Your answer is correct.


The correct answer is: Interface

Question 8 Arsitektur Java yang digunakan untuk membangun aplikasi berbasis web adalah……
Correct
Mark 1.00 out Select one:
of 1.00 a. J2SE
b. JVM
c. J2EE 
d. J2ME

Your answer is correct.


The correct answer is: J2EE

Question 9 Apa output dari potongan kode dibawah ini:


Correct int x = 64, y = 0;
Mark 1.00 out for(int z=0; z < x; y++) {
of 1.00 z = y * y;
if(z == x) {
System.out.println(y);
break;
}
}
Select one:
a. 8 
b. 4
c. 6
d. 9

Your answer is correct.


The correct answer is: 8

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6695921&cmid=956199 3/4
7/26/22, 11:16 AM Quiz M12: Attempt review

Question 10 Method yang digunakan untuk membandingkan dua buah data string adalah …
Correct
Mark 1.00 out Select one:
of 1.00 a. concat()
b. equals() 
c. equal()
d. length()

Your answer is correct.


The correct answer is: equals()

◀︎Activity Diagram Jump to...

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6695921&cmid=956199 4/4
7/26/22, 11:15 AM 1 pesan baru

Dashboard / My courses / ATA 2021/2022 | 2IA04 | Pemrograman Berbasis Objek ** | FAUZIAH SUPARDI / VClass M8 (19.04.2022) - UML
/ Quiz M8

Started on Tuesday, 19 April 2022, 12:33 PM


State Finished
Completed on Tuesday, 19 April 2022, 12:34 PM
Time taken 46 secs
Marks 5.00/5.00
Grade 10.00 out of 10.00 (100%)
Question 1 Berikut ini Penamaan class pada java yang diperbolehkan, kecuali.....
Correct
Mark 1.00 out Select one:
of 1.00 a. B3 Ta
b. 3_One 
c. O_3ne
d. SI3h

Your answer is correct.


The correct answer is: 3_One

Question 2 Method yang digunakan untuk mengkonversi nilai string ke integer dalam Java adalah...
Correct
Mark 1.00 out Select one:
of 1.00 a. ChangeInt()
b. Cin()
c. ParseInt() 
d. ConverseInt()

Your answer is correct.


The correct answer is: ParseInt()

Question 3 Sintaks java untuk melakukan kompilasi terhadap berkas program adalah...
Correct
Mark 1.00 out Select one:
of 1.00 a. Javax
b. Javaclass
c. Javac 
d. Java

Your answer is correct.


The correct answer is: Javac

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6057891&cmid=895122 1/2
7/26/22, 11:15 AM 1 pesan baru

Question 4 Diantara pernyataan berikut, konsep yang tidak ada di dalam pemrograman java adalah…
Correct
Mark 1.00 out Select one:
of 1.00 a. Inheritance
b. Encapsulation
c. Multiple Inheritance 
d. Polymorphisme

Your answer is correct.


The correct answer is: Multiple Inheritance

Question 5
Correct Sebutkan 3 prinsip utama dalam Pemograman Berorientasi obyek!
Mark 1.00 out
of 1.00
Select one:
a. Public, Private, Protected
b. Inheritance, Polymorphism, Encapsulation 
c. Encapsulation, Polymorphism, Extend
d. Polymorphism, Inheritance, Class

Your answer is correct.


The correct answer is: Inheritance, Polymorphism, Encapsulation

◀︎UML ATM Jump to... Soal UTS Pilihan Ganda ▶︎

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6057891&cmid=895122 2/2
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Dashboard / My courses / ATA 2021/2022 | 2IA04 | Pemrograman Berbasis Objek ** | FAUZIAH SUPARDI
/ Ujian Tengah Semester (UTS) ATA 2021/2022 / Soal UTS Pilihan Ganda

Started on Tuesday, 24 May 2022, 1:09 PM


State Finished
Completed on Tuesday, 24 May 2022, 1:21 PM
Time taken 11 mins 8 secs
Marks 30.00/30.00
Grade 10.00 out of 10.00 (100%)

Question 1 Statement yang dipakai untuk mengkonversi nilai string ke double dalam Java yaitu
Correct

Mark 1.00 out of Select one:


1.00
a. Parsedouble( ) 

b. ChangeDouble( )

c. ParseDouble( )

d. DoubleValue( )

Question 2 Pengembangan dari Static Threading yang bertujuan untuk memberikan kemudahan karena mendukung beberapa fitur
Correct seperti nested parallelism dan parallel loops disebut dengan
Mark 1.00 out of
1.00 Select one:
a. Multhreading

b. Dynamic Multithreadi 

c. Static Threading

d. Single Threading

Question 3 Simbol atau notasi state diagram yang berfungsi untuk menunjukkan bahwa proses dihentikan adalah....
Correct

Mark 1.00 out of Select one:


1.00
a. 

b.

c.

d.

Question 4 Int[ ][ ] multiples = new int[4][2];


Correct Kode program diatas adalah contoh pendeklarasian ….
Mark 1.00 out of
1.00 Select one:
a. Empat Array

b. String

c. Array 1 Dimensi

d. Array 2 Dimensi 

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 1/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 5 Hasil kompilasi dari berkas java adalah


Correct

Mark 1.00 out of Select one:


1.00
a. File Class

b. File Executable

c. File BAK

d. File Bytecode 

Question 6 Method yang digunakan untuk membandingkan dua buah data string adalah …
Correct

Mark 1.00 out of Select one:


1.00
a. equal()

b. length()

c. concat()

d. equals() 

Question 7 Berikut adalah salah satu jenis dari requirements dalam JAVA adalah
Correct

Mark 1.00 out of Select one:


1.00
a. Product Requirements

b. System Requirements 

c. External Requirements

d. Functional Requirements

Question 8 Apa yang dimaksud dengan Encapsulation pada JAVA:


Correct

Mark 1.00 out of Select one:


1.00
a. Suatu Pewarisan Atribut,method yang ada di suatu class diwariskan ke subclass

b. Memperbanyak method

c. Suatu cara untuk menyembunyikan suatu proses / data di dalam sistem aplikasi 

d. Suatu konsep menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda

Question 9 Pada text field di JFrame, dapat menerima input dengan tipe data apa saja
Correct

Mark 1.00 out of Select one:


1.00
a. Integer

b. Semua Salah

c. Semua Benar 

d. String

Question 10 Dibawah ini merupakan Software open source yang dapat digunakan untuk pembuatan UML,kecuali
Correct

Mark 1.00 out of Select one:


1.00
a. ArgoUML

b. Adobe Creative Cloud 

c. Rational Rose

d. Umberello
1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 2/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 11 ( ~ ) adalah salah satu simbol dari daftar tingkat/level pengubah akses anggota Yang berarti
Correct

Mark 1.00 out of Select one:


1.00
a. Protected

b. Public

c. Package 

d. Private

Question 12 Objek Oriented mempunyai sifat-sifat berikut, kecuali:


Correct

Mark 1.00 out of Select one:


1.00
a. Extend 

b. Enkapulasi

c. Polymorphisme

d. Inheritance

Question 13 Tipe data dengan range/ jangkauanya -3.4E-4932 s/d 3.4E+4932 adalah
Correct

Mark 1.00 out of Select one:


1.00
a. Long Double

b. Short Int

c. Float 

d. Int

Question 14 int All;


Correct int a=2, b=3, c=6, d=5;
Mark 1.00 out of All = b * d - c / a + b;
1.00 System.out.print (“All:”+All);
program diatas memiliki output sebagai berikut adalah……

Select one:
a. All: 14

b. All: 15 

c. All: 10

d. All: 9

Question 15 Perhatikan penggalan source code dibawah ini!


Correct if ( grade > 70 )
Mark 1.00 out of System.out.println(“Passed”);
1.00 else
System.out.println(“Failed”);
Jika penggalan program diatas diubah dengan menggunakan operator kondisi maka hasilnya akan menjadi

Select one:
a. System.out.println( grade > 70 ? “Passed” : “Failed” ) 

b. System.out.println( grade > 70 : “Passed” ? “Failed” )

c. System.out.println( ? grade > 70 “Passed” : “Failed” )

d. System.out.println( grade > 70 ? “Passed” ? : “Failed” )

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 3/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 16 Sebuah kelas dapat berisi lebih dari 1 constructor yang mempunyai argument berbeda-beda, disebut
Correct

Mark 1.00 out of Select one:


1.00
a. Modifier

b. Package

c. Final

d. Overloading 

Question 17 Thread pada java memiliki beberapa method. Sleep adalah method yang berfungsi untuk
Correct

Mark 1.00 out of Select one:


1.00
a. Menunda sebuah thread untuk periode tertentu 

b. Mendapatkan prioritas thread

c. Mendapatkan nama thread

d. Memulai sebuah thread dengan method

Question 18 Sebuah konsep dimana ada sebuah method yang di gunakan untuk mengembalikan nilai dari field/variable yang memiliki
Correct hak akses private/protected adalah:
Mark 1.00 out of
1.00 Select one:
a. Mutator

b. Polymorphisme

c. Encapsulaltion

d. Accessor 

Question 19 Arsitektur Java yang digunakan untuk membangun aplikasi berbasis web adalah……
Correct

Mark 1.00 out of Select one:


1.00
a. J2SE

b. J2EE 

c. J2ME

d. JVM

Question 20 Apa output dari potongan kode dibawah ini:


Correct int x = 64, y = 0;
Mark 1.00 out of for(int z=0; z < x; y++) {
1.00 z = y * y;
if(z == x) {
System.out.println(y);
break;
}
}

Select one:
a. 4

b. 8 

c. 9

d. 6

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 4/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 21 Berikut ini yang bukan merupakan keunggulan Java adalah:


Correct

Mark 1.00 out of Select one:


1.00
a. Dinamis. 

b. Berorientasi Objek.

Question 22 package com.gunadarma.staticvariabel;


Correct public class DemoStatic {
Mark 1.00 out of // Deklarasi static Variabel
1.00 private static String nama;
private static int daya;
public static void main(String[] args){
/**
* Inisialisasi variabel nama dan daya,
* Menampilkan nama dan daya lampu
*/
nama = "Bohlam";
daya = 4;
System.out.println("Nama lampu\t\t: " + nama);
System.out.println("Daya tahan lampu\t: " + daya + " Bulan");
}
}
Bila kode program diatas dieksekusi, keluaran yang dihasilkan :

Select one:
a. Nama lampu : Bohlam
Daya tahan lampu : 5 Bulan

b. Nama lampu : Lampu


Daya tahan lampu : 6 Bulan

c. Nama lampu : Bohlam


Daya tahan lampu : 4 Bulan 

d. Nama lampu : Bohlam


Daya tahan lampu : 9 Bulan

Question 23 Method yang digunakan untuk mengkonversi nilai string ke integer dalam Java adalah
Correct

Mark 1.00 out of Select one:


1.00
a. Cint()

b. ChangeInt( )

c. ParseInt( ) 

d. ConverseInt( )

Question 24 Pada pemrograman java, file dengan ekstensi class (nama_file.class) sebenarnya berisikan
Correct

Mark 1.00 out of Select one:


1.00
a. Bytecode Program 

b. Logika Program

c. Intruksi Program

d. Statement Program

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 5/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 25 Perhatikan contoh program berikut:


Correct int main(void)
Mark 1.00 out of {
1.00 int matrix[2][3] = {{1,2,3},{7,8,9}};
printf("Isi array matrix: \n");
printf("%d %d %d \n", matrix[0][0], matrix[0][1], matrix[0][2]);
printf("%d %d %d \n", matrix[1][0], matrix[1][1], matrix[1][2]);
return 0;
}
Output dari pemrograman diatas adalah

Select one:
a. Isi array matrix;
1 23
2 89

b. Isi array matrix:


789
1 23

c. Isi array matrix:


123
7 89

d. Isi array matrix;


123
789

Question 26 Berikut ini merupakan konsep yang tidak ada didalam pemrograman Java adalah:
Correct

Mark 1.00 out of Select one:


1.00
a. Encapsulation

b. Polymorphisme

c. Multiple Inheritance 

d. Singel Inheritance

Question 27 Sebuah model dari UML yang menggambarkan sebuah keadaan dalam sistem adalah pengertian dari
Correct

Mark 1.00 out of Select one:


1.00
a. Flow Diagram

b. Diagram Batang

c. State Diagram 

d. Diagram Lingkaran

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 6/7
24/05/22 13.21 Soal UTS Pilihan Ganda: Attempt review

Question 28 if (a>b)
Correct if (c>a)
Mark 1.00 out of tmp=c;
1.00 else tmp=a;
else
if (c>b)
tmp=c;
else tmp=b;
printf("%d\n",tmp);
Maka hasil output diatas jika nilai a=3, b=5, dan c=8 adalah....

Select one:
a. 3

b. 4

c. 8 

d. 5

Question 29 suatu kemampuan yang memungkinkan beberapa kumpulan instruksi (proses) dijalankan secara bersamaan (time slicing)
Correct dalam sebuah program adalah
Mark 1.00 out of
1.00 Select one:
a. Multithreading 

b. Implements Runnable

c. Thread

d. Synchronized

Question 30 Kumpulan dari method-method yang belum terdapat operasi di dalam tubuh method tersebut disebut.…....
Correct

Mark 1.00 out of Select one:


1.00
a. Implements

b. Interface 

c. Abstract class

d. Method abstract

◄ Quiz M8 Jump to...

1
Online

https://v-class.gunadarma.ac.id/mod/quiz/review.php?attempt=6367091&cmid=926644 7/7
1

UML: ATM (CASE STUDY)


Sebuah bank lokal bermaksud untuk menginstal mesin teller otomatis baru (ATM)
untuk memungkinkan pengguna (yaitu, Nasabah bank) untuk melakukan transaksi
keuangan dasar (Gambar 1.1). Setiap user dapat memiliki hanya satu Account di bank.
Pengguna ATM harus dapat melihat Saldo rekening mereka, Menarik uang kas (yaitu,
mengambil uang dari rekening) dan Menyimpan dana (yaitu, menempatkan uang ke
account).

User Interface dari mesin teller otomatis berisi:


 Screen( layar) yang menampilkan pesan kepada pengguna
 Keypad yang menerima input numerik dari pengguna
 Cash Dispenser (dispenser kas) yang membagi-bagikan uang kas kepada
pengguna
 Deposit Slot (slot penyimpanan) yang menerima amplop setoran dari pengguna.

Dispenser kas setiap hari diisi dengan 500 pecahan $ 20.


[Catatan: Karena keterbatasan ruang lingkup studi kasus ini, unsur-unsur tertentu dari
ATM yang dijelaskan di sini tidak akurat meniru ATM sebenarnya. Sebagai contoh, ATM
nyata biasanya berisi sebuah perangkat yang membaca nomor rekening pengguna dari
kartu ATM, sedangkan ATM ini meminta pengguna untuk mengetik nomor rekening
pada keypad. Sebuah ATM nyata juga biasanya mencetak tanda terima pada akhir sesi,
tetapi semua output dari ATM ini muncul di layar.

Gambar 1.1. User Interface ATM

 Bank menginginkan Anda untuk mengembangkan perangkat lunak untuk


melakukan transaksi keuangan dimulai oleh nasabah bank melalui ATM.
 Bank akan mengintegrasikan perangkat lunak dengan hardware ATM di lain
waktu.

UML: ATM (CASE STUDY)


2

 Perangkat lunak ini harus merangkum fungsionalitas dari perangkat keras


(misalnya, dispenser kas, slot penyimpanan) dalam komponen perangkat lunak,
namun tidak perlu mempedulikan bagaimana perangkat ini melakukan tugasnya.
 Perangkat keras ATM belum dikembangkan, jadi daripada menulis perangkat
lunak Anda untuk berjalan di ATM, Anda harus mengembangkan versi pertama
yang dijalankan pada PC.
 Versi ini harus menggunakan monitor komputer untuk mensimulasikan layar
ATM, dan keyboard komputer untuk mensimulasikan keypad ATM.

Sesi ATM terdiri dari:


1. Otentikasi Pengguna (yaitu, membuktikan identitas pengguna) berdasarkan
nomor rekening dan nomor identifikasi pribadi (PIN), yang diikuti dengan
Menciptakan dan Melaksanakan Transaksi keuangan. Untuk mengotentikasi
pengguna dan melakukan transaksi,
2. ATM harus berinteraksi dengan Database Infomasi rekening milik bank (yaitu,
koleksi terorganisir dari data yang tersimpan pada komputer). Untuk setiap
rekening bank, database menyimpan nomor rekening, PIN dan saldo yang
menunjukkan jumlah uang di rekening. [Catatan: Kami berasumsi bahwa bank
berencana untuk membangun hanya satu ATM, jadi kita tidak perlu khawatir
tentang beberapa ATM mengakses database ini pada waktu yang sama. Selain
itu, kami berasumsi bahwa bank tidak membuat perubahan apapun informasi
dalam database sementara pengguna mengakses ATM. Kami membuat asumsi
penyederhanaan, bagaimanapun, bahwa bank mempercayai ATM untuk
mengakses dan memanipulasi informasi dalam database tanpa langkah-langkah
keamanan yang signifikan.]

Setelah pengguna berjalan mendekati ATM (dengan asumsi tidak ada orang yang
sedang menggunakannya), Pengguna harus mengalami urutan peristiwa berikut
(ditunjukkan pada Gambar 1.1.):
1. Layar Selamat Datang! dan meminta pengguna untuk memasukkan nomor
rekening.
2. Pengguna memasukkan nomor rekening lima digit menggunakan tombol.
3. Layar meminta pengguna untuk memasukkan PIN (nomor identifikasi pribadi)
terkait dengan nomor rekening tertentu.
4. Pengguna memasukkan PIN lima digit menggunakan keypad
5. Jika pengguna memasukkan nomor rekening valid dan PIN yang benar untuk
account tersebut, layar menampilkan menu utama (Gambar 1.2). Jika pengguna
memasukkan account yang tidak valid nomor atau PIN yang salah, layar
menampilkan pesan yang tepat, maka ATM kembali ke Langkah 1 untuk memulai
kembali proses otentikasi

UML: ATM (CASE STUDY)


3

Gambar 1.2. Menu Utama ATM

Setelah ATM mengotentikasi pengguna, menu utama (Gambar 1.2) harus berisi
option nomor untuk masing-masing tiga jenis transaksi: Informasi Saldo (opsi 1),
Penarikan (opsi 2) dan Penyimpanan Dana (opsi 3). Hal ini juga harus berisi opsi untuk
memungkinkan pengguna untuk keluar dari sistem (option 4). Pengguna kemudian
memilih baik untuk melakukan transaksi (dengan memasukkan 1, 2 atau 3) atau keluar
dari sistem (dengan memasukkan 4).

Jika pengguna memasukkan 1 untuk melihat Informasi Saldo, layar menampilkan Saldo
rekening pengguna. Untuk melakukannya, ATM harus mengambil nilai Saldo dari
database milik bank. Langkah-langkah berikut menjelaskan apa yang terjadi ketika
pengguna memasukkan 2 untuk melakukan penarikan:

1. Layar menampilkan menu (Gambar 1.3) mengandung jumlah penarikan standar:


$ 20 (opsi 1), $ 40 (opsi 2), $ 60 (opsi 3), $ 100 (option 4) dan $ 200 (option 5).
Menu ini juga berisi opsi untuk memungkinkan pengguna untuk membatalkan
transaksi (opsi 6).
2. Pengguna memasukkan pilihan menu menggunakan tombol.
3. Jika jumlah penarikan yang dipilih lebih besar dari saldo account pengguna, layar
menampilkan pesan yang menyatakan ini dan memberitahu pengguna untuk
memilih jumlah yang lebih kecil. ATM kemudian kembali ke Langkah 1. Jika
jumlah penarikan yang dipilih adalah kurang dari atau sama dengan saldo
rekening pengguna (yaitu, jumlah yang dapat diterima), ATM ke Langkah 4. Jika
pengguna memilih untuk membatalkan transaksi (option 6), ATM menampilkan
menu utama dan menunggu input pengguna.
4. Jika dispenser kas mengandung cukup uang kas, ATM hasil ke Langkah 5. Jika
tidak, layar menampilkan pesan yang menunjukkan masalah dan memberitahu
pengguna untuk memilih jumlah penarikan yang lebih kecil. ATM kemudian
kembali ke Langkah 1.
5. ATM mendebit jumlah penarikan dari account pengguna di bank Database (yaitu,
mengurangi jumlah penarikan dari saldo rekening Pengguna).
6. ATM membagi-bagikan jumlah yang diinginkan uang kepada Pengguna.
UML: ATM (CASE STUDY)
4

7. Layar menampilkan pesan yang mengingatkan pengguna untuk mengambil uang.

Gambar 1.3. Menu Penarikan ATM

Langkah-langkah berikut menjelaskan tindakan yang terjadi ketika pengguna


memasukkan 3 (bila melihat menu utama Gambar . 1.2 ) untuk melakukan
Penyimpanan Dana:
1. Layar meminta pengguna untuk memasukkan jumlah deposit atau masukkan 0
(nol) untuk membatalkan.
2. Pengguna memasukkan jumlah deposit atau 0 menggunakan tombol. [Catatan:
Tombol tidak mengandung titik desimal atau tanda dolar , sehingga user tidak
bisa mengetik nilai uang sebenarnya ( misalnya , $ 27,25 ). sebaliknya , pengguna
harus memasukkan jumlah deposit sebagai angka sen (mis. , 2725 ) . ATM
kemudian membagi angka ini dengan 100 untuk mendapatkan angka yang
mewakili jumlah uang yang dimaksudkan (misalnya, 2725 ÷ 100 = 27,25 ) . ]
3. Jika pengguna menentukan Jumlah Penyimpanan Dana, ATM menuju ke langkah
4 . Jika Pengguna memilih untuk membatalkan transaksi (dengan memasukkan 0)
, ATM menampilkan menu utama dan menunggu input Pengguna.
4. Layar menampilkan pesan yang mengatakan pengguna untuk memasukkan
Amplop Penyimpanan
5. Jika Slot Penyimpanan menerima amplop penyimpanan dalam waktu dua menit ,
ATM melakukan Kredit sejumlah Nilai Penyimpanan ke dalam rekening Pengguna
dalam database bank (yaitu, menambahkan jumlah penyimpanan ke saldo
Rekening milik pengguna ). [ Catatan : Uang ini tidak segera tersedia untuk
penarikan. Bank harus terlebih dahulu secara fisik memverifikasi jumlah uang kas
dalam amplop deposito, dan cek dalam amplop harus jelas (yaitu, uang harus
ditransfer dari rekening cek penulis untuk cek penerima rekening). Ketika salah
satu dari peristiwa-peristiwa ini terjadi , bank akan memutakhirkan data saldo
pengguna yang tersimpan dalam database. Hal ini terjadi secara independen dari
Sistem ATM . ] Jika slot penyimpanano tidak menerima amplop deposito dalam
periode tertentu, layar menampilkan pesan bahwa sistem telah membatalkan
transaksi karena tidak aktif. ATM kemudian menampilkan menu utama dan
menunggu input pengguna. Setelah sistem berhasil mengeksekusi transaksi,
UML: ATM (CASE STUDY)
5

harus kembali ke menu utama sehingga pengguna dapat melakukan transaksi


tambahan. Jika pengguna keluar dari sistem, layar harus menampilkan pesan
ucapan terima kasih , kemudian menampilkan pesan selamat datang bagi
pengguna berikutnya .

USE CASE DIAGRAM

Kita sekarang memperkenalkan yang pertama dari beberapa diagram UML dalam studi
kasus . Kami membuat sebuah Use Case Diagram untuk memodelkan interaksi antara
sebuah Client dari sistem (dalam studi kasus ini, Nasabah bank) dan Use Case-nya.
Tujuannya adalah untuk menunjukkan jenis interaksi pengguna dengan
sistem tanpa memberikan rincian – hal ini diberikan dalam diagram UML lainnya
(yang disajikan di seluruh studi kasus ini ). Diagram use case sering disertai
oleh teks informal yang memberikan tambahan rincian seperti teks yang muncul dalam
dokumen persyaratan (Requirements Document). Use Case Diagram dihasilkan selama
tahap analisis siklus hidup perangkat lunak . Dalam sistem yang lebih besar, Use Case
Diagram adalah alat yang sangat diperlukan yang membantu desainer sistem tetap
fokus pada pemuasan kebutuhan pengguna.

Gambar 1.4 menunjukkan Use Case Diagram untuk sistem ATM. Figur batang mewakili
seorang aktor, yang mendefinisikan peran dari entitas eksternal - misalnya orang atau
sistem lain - saat berinteraksi dengan sistem. Untuk ATM ini, aktor adalah Pengguna
yang dapat Melihat Saldo rekening , Penarikan Tunai dan Penyimpanan Dana dari ATM.
Pengguna bukanlah orang yang sebenarnya , melainkan terdiri dari peran yang nyata
dari seseorang - ketika memainkan peran dari Pengguna – dapat berperan sambil
berinteraksi dengan ATM . Sebuah Use Case Diagram dapat mencakup beberapa aktor.

Gambar 1.4. Use Case Diagram untuk ATM dari Perspektif Pengguna

Sebagai contoh, penggunaan Use Case Diagram sistem ATM bank sebenarnya juga
mungkin mencakup seorang aktor bernama Administrator yang melakukan Pengisian
Ulang uang kas Dispenser ATM setiap hari.

UML: ATM (CASE STUDY)


6

IDENTIFIKASI CLASS DI DALAM SISTEM

Gambar 1.5. Kata Benda dan Frasa di dalam Dokumen Kebutuhan ATM

Kita membuat class hanya untuk kata benda dan frase kata benda yang memiliki
signifikansi dalam Sistem ATM. Kita tidak memodelkan "bank" sebagai sebuah Class,
karena bank bukan merupakan bagian dari sistem ATM. Bank ATM hanya ingin kita
untuk membangun ATM. "Pelanggan" dan "User" juga mewakili entitas luar - mereka
penting karena mereka berinteraksi dengan sistem ATM kita, tetapi kita tidak perlu
model mereka sebagai Class dalam perangkat lunak ATM. Ingatlah bahwa kita
memodelkan pengguna ATM (yaitu, Nasabah bank) sebagai aktor dalam diagram use
case Gambar. 1.4.

Kita tidak memodelkan "20 dolar" atau "Amplop Deposit" sebagai Class. Mereka adalah
bagian dari object fisik di dunia nyata, tapi mereka bukan bagian dari apa yang sedang
dibuat otomatis. Kita cukup dapat mewakili kehadiran tagihan dalam sistem
menggunakan atribut class yang memodelkan dispenser uang kas. (Kita menetapkan
atribut untuk class Sistem ATM di Bagian 1.4). Sebagai contoh, dispenser kas
memelihara hitungan jumlah uang dolar di dalam ATM. Dokumen Persyaratan
(Requirements Document) tidak mengatakan apa-apa tentang apa yang harus
dilakukan oleh sistem terhadap amplop deposito setelah menerima mereka. Kita dapat
berasumsi bahwa dengan hanya mengenali penerimaan amplop - operasi yang
dilakukan oleh class yang memodelkan slot penyimpanan uang - sudah cukup untuk
mewakili kehadiran sebuah amplop di dalam sistem.

Dalam sistem ATM kita yang disederhanakan, mewakili sejumlah "Uang”, meliputi
“Saldo” rekening sebagai atribut class tampaknya paling tepat. Demikian juga, kata
benda "Nomor Rekening" dan "PIN" mewakili potongan besar informasi di dalam
Sistem ATM. Mereka adalah atribut penting dari sebuah rekening bank. Mereka,
bagaimanapun, tidak memperlihatkan Perilaku. Dengan demikian , kita dapat paling
tepat model mereka sebagai atribut dari class Rekening. Meskipun dokumen
persyaratan sering menggambarkan "transaksi" dalam pengertian umum , kita tidak
memodelkan gagasan luas transaksi keuangan saat ini. Sebaliknya , kita memodelkan
tiga jenis transaksi (yaitu , "Cek Saldo” , “Penarikan”, dan “Penyimpanan”) sebagai tiga
class individu.

Ketiga class ini memiliki atribut khusus yang dibutuhkan untuk melaksanakan transaksi
yang mereka wakili . Sebagai contoh, Penarikan perlu mengetahui jumlah penarikan.
Sebuah Cek Saldo, bagaimanapun, tidak memerlukan data tambahan selain Nomor
Rekening. Lebih lanjut, tiga class transaksi menunjukkan perilaku unik. Penarikan
UML: ATM (CASE STUDY)
7

mencakup Pengeluaran Kas kepada Pengguna, sedangkan Penyimpanan Dana


melibatkan menerima amplop setoran dari Pengguna. Dalam Bagian 13.3 , kita akan
melihat fitur-fitur umum dari semua transaksi menjadi class “transaksi” umum
menggunakan konsep berorientasi object Pewarisan .

Kita menentukan class untuk sistem berdasarkan pada kata benda yang tersisa dan kata
benda frase dari Gambar. 1.5. Masing-masing mengacu pada satu atau lebih hal
berikut:
 ATM
 screen
 keypad
 cashdispenser
 deposit slot
 account
 bank database
 balance inquiry
 withdrawal
 deposit

Elemen dari daftar di atas yang nantinya akan kita buat menjadi Class yang diperlukan
oleh Sistem:
 ATM
 Screen
 Keypad
 CashDispenser
 DepositSlot
 Account
 BankDatabase
 BalanceInquiry
 Withdrawal
 Deposit

Kita membangun sistem menggunakan Class di atas sebagai elemen dasar. Sebelum
memulai membangun sistem, namun, kita harus memperoleh pemahaman lebih baik
tentang keterkaitan antar class.

PEMODELAN CLASS

UML memungkinkan kita untuk memodelkan, menggunakan Class Diagram, class di


dalam Sistem ATM dan hubungan diantara class. Gambar 1.6 mewakili class ATM.
Setiap class dimodelkan sebagai sebuah segi empat dengan tiga ruang. Bagian paling
atas berisi nama class diletakkan di tengah dengan cetak tebal. Bagian tengah berisi
atribut dari class. Bagian paling bawah berisi operasi dari class.

UML: ATM (CASE STUDY)


8

Di dalam gambar 1.6, bagian tengah dan bawah masih kosong karena belum
ditentukan.

Gambar 1.6. Mewakili Sebuah Class Menggunakan Sebuah Class Diagram

Class diagram juga menunjukkan hubungan antara Class dari sistem. Gambar 1.7
menunjukkan bagaimana class ATM dan Withdrawal saling terhubung. Untuk sekarang,
untuk kesederhanaan, kita pilih untuk hanya memodelkan subset dari class ini.

Gambar 1.7. Class Diagram yang Menunjukkan Sebuah Asosiasi Antar Class

Perhatikan bahwa persegi panjang yang mewakili class tidak terbagi atas ruang. UML
mengijinkan penghilangan atribut dan operasi milik class untuk membuat diagram yang
lebih mudah untuk dibaca secara layak. Digram tersebut disebut dengan Elided
Diagram – diagram yang beberapa informasi di dalamnya seperti isi dari ruang ke-2 dan
ke-3 tidak dimodelkan.

Dalam Gambar. 1.7, garis padat yang menghubungkan dua class merupakan sebuah
asosiasi – sebuah relasi antar class. Angka-angka di dekat setiap akhir baris adalah Nilai
Multiplicity, yang menunjukkan berapa banyak object dari setiap class berpartisipasi
dalam asosiasi. Dalam contoh ini, jika kita ikuti garis dari kiri ke kanan akan
menunjukkan bahwa, pada saat tertentu, setiap object ATM berpartisipasi di dalam
sebuah asosiasi dengan baik nol atau satu object Withdrawal – nol, jika User tidak
sedang melakukan transaksi atau meminta jenis transaksi lain, dan bernilai satu jika
user meminta transaksi Withdrawal. UML dapat memodelkan banyak
jenis multiplicity. Lihat gambar 1.8.

Gambar 1.8. Jenis Multiplicity


UML: ATM (CASE STUDY)
9

Sebuah Asosiasi dapat diberi nama. Sebagai contoh, kata “Executes” di atas garis yang
menghubungkan class ATM dan Withdrawal pada Gambar 1.7 menandakan nama dari
asosiasi tersebut. Bagian dari diagram ini dapat dibaca “sebuah object dari class ATM
executes nol atau satu object dari class Withdrawal”. Nama asosiasi dibaca sesuai arah
anak panah.

Kata currentTransaction pada sisi Withdrawal dari tanda panah di dalam Gambar 1.7
adalah sebuah nama peran (role name), menandakan peran yang dijalankan oleh
object Withdrawal di dalam relasi dengan ATM. Nama peran (role name)
menambahkan arti kepada sebuah asosiasi antara class dengan mengidentifikasi peran
sebuah class di dalam konteks sebuah asosiasi. Sebuah class dapat menjalankan
beberapa peran di dalam sistem yang sama. Sebagai contoh, di dalam sebuah sistem
personalia sekolah, seseorang dapat berperan sebagai “Pengajar” ketika berelasi
dengan Murid. Orang yang sama dapat berperan sebagai “Kolega” ketika ambil bagian
di dalam sebuah asosiasi dengan Pengajar lainnya, dan “Pelatih” jika sedang mengajar
atlit pelajar.

Di dalam Gambar 1.7, nama peran currentTransaction menandakan bahwa object


Withdrawal yang ikut serta di dalam asosiasi Executes dengan sebuah object dari class
ATM mewakili transaksi yang sedang diproses oleh ATM. Di dalam konteks lain, sebuah
object Withdrawal dapat mengambil peran lain (misalnya “previous transaction”).
Perhatikan bahwa kita tidak menentukan sebuah nama peran untuk sisi ATM dari
asosiasi Executes. Nama Peran di dalam class diagram seringkali diabaikan ketika
makna dari asosiasi telah jelas tanpanya.

Selain menunjukkan hubungan sederhana, asosiasi dapat menentukan lebih kompleks


hubungan, seperti object dari satu class yang terdiri dari benda-benda dari class lain.
bayangkan ATM dunia nyata. Bagian apa sajakah yang disatukan bersama-sama oleh
produsen agar sebuah ATM bekerja? Dokumen persyaratan memberitahu kita bahwa
ATM adalah terdiri dari sebuah layar, sebuah keypad, dispenser kas dan slot
penyimpanan.

Gambar 1.9. Class Diagram Menunjukkan Relasi Komposisi

UML: ATM (CASE STUDY)


10

Dalam Gambar 1.9, berlian penuh yang melekat pada garis asosiasi class ATM
menunjukkan ATM yang memiliki hubungan dengan komposisi class Screen, Keypad,
CashDispenser dan DepositSlot. Komposisi menyiratkan hubungan seluruhnya /
sebagian. Class yang memiliki simbol komposisi (berlian penuh) pada akhir dari garis
asosiasi adalah keseluruhan (dalam hal ini, ATM), dan class di ujung lain dari garis
asosiasi adalah bagian - dalam hal ini, Screen , Keypad, CashDispenser dan DepositSlot.
Komposisi pada Gambar 1.9 menunjukkan bahwa sebuah object dari class ATM class
terbentuk dari satu object dari class Screen, salah satu object dari class CashDispenser,
salah satu object dari class Keypad dan satu object dari class DepositSlot. ATM memiliki
sebuah layar, sebuah keypad, sebuah dispenser kas dan sebuah slot penyimpanan.

Menurut spesifikasi UML (www.omg.org/technology/documents/ formal/uml.htm),


relasi hubungan komposisi memiliki sifat sebagai berikut:
1. Hanya satu class dalam hubungan yang dapat mewakili keseluruhan (yaitu,
berlian dapat ditempatkan hanya pada satu ujung garis asosiasi). Sebagai contoh,
baik layar adalah bagian dari ATM atau ATM merupakan bagian dari layar, tapi
layar dan ATM tidak bisa keduanya mewakili keseluruhan dalam relasi.
2. Bagian dalam relasi komposisi hanya ada selama keseluruhan ada, dan
keseluruhan bertanggung jawab untuk penciptaan dan penghancuran bagian-
bagiannya. Sebagai contoh, tindakan membangun sebuah ATM meliputi
pembuatan bagian-bagiannya. Juga, jika ATM dihancurkan, layar, keypad,
dispenser kas dan slot penyimpanan juga hancur.
3. Sebuah bagian mungkin hanya dimiliki oleh sebuah keseluruhan pada suatu
waktu, meskipun dapat dihilangkan dan dilekatkan kepada sebuah keseluruhan
lain, yang kemudian bertanggung jawab untuk bagian tersebut.

Berlian penuh dalam class diagram menunjukkan hubungan komposisi yang memenuhi
sifat ini. Jika sebuah relasi has-a tidak memenuhi satu atau lebih kriteria ini, UML
menetapkan bahwa berlian hampa dilekatkan pada ujung garis asosiasi untuk
menunjukkan agregasi - bentuk yang lebih lemah dari komposisi. Sebagai contoh,
sebuah komputer pribadi dan monitor komputer berpartisipasi dalam relasi agregasi -
komputer memiliki monitor, tetapi keduanya dapat ada secara mandiri, dan monitor
yang sama dapat dihubungkan ke beberapa komputer sekaligus, sehingga melanggar
sifat kedua dan ketiga komposisi.

Gambar 1.10 menunjukkan class diagram untuk sistem ATM. Diagram memodelkan
sebagian besar class yang kita telah identifikasi, serta asosiasi diantara mereka kita
dapat simpulkan dari dokumen persyaratan. Class BalanceInquiry dan Deposit
berpartisipasi dalam asosiasi yang sama dengan class Withdrawal, jadi kita telah
memilih untuk menghilangkan mereka dari diagram ini untuk mejaganya tetap
sederhana.

UML: ATM (CASE STUDY)


11

Gambar 1.10. Class Diagram Untuk Model Sistem ATM

Gambar 1.10 menyajikan model grafis dari struktur sistem ATM. Ini termasuk class
BankDatabase dan Account, dan beberapa asosiasi yang ada baik pada Gambar 1.7
atau Gambar 1.9. Hal ini menunjukkan bahwa class ATM memiliki relasi one-to-one
dengan class BankDatabase - satu object ATM mengotentikasi user terhadap satu
object BankDatabase .

Dalam Gambar 1.10 , kita juga memodelkan fakta bahwa database milik bank berisi
informasi tentang banyak account - satu object BankDatabase berpartisipasi dalam
relasi komposisi nol atau lebih object Account. Nilai multiplicity 0 .. * di sisi Account
dari asosiaso class BankDatabase dan class Account menunjukkan bahwa nol atau lebih
object dari class Account ikut serta di dalam asosiasi. Class BankDatabase memiliki
sebuah relasi one-to-many dengan class Account - BankDatabase dapat berisi banyak
Account. Demikian pula , class Account memiliki relasi many-to-one dengan class
BankDatabase – Terdapat kemungkinan banyak Account disimpan dalam
BankDatabase.

Ingat dari Gambar 1.8 bahwa nilai multiplicity * identik dengan 0 .. *.

Gambar 1.10 juga menunjukkan bahwa pada waktu tertentu terdapat 0 atau 1 object
Withdrawal terjadi. Jika pengguna melakukan Penarikan (withdrawal), “sebuah object
dari class Withdrawal mengakses / memodifikasi Saldo rekening melalui sebuah object
dari class BankDatabase”. Kita bisa menciptakan asosiasi secara langsung antara kelas
Withdrawal dan class Account. Dokumen persyaratan, meskipun, menyatakan bahwa
“ATM harus berinteraksi dengan database informasi rekening milik bank” untuk
melakukan transaksi. Sebuah rekening bank berisi informasi sensitif, dan pembuat
sistem harus selalu mempertimbangkan keamanan data pribadi ketika merancang
UML: ATM (CASE STUDY)
12

sebuah sistem. Dengan demikian, hanya class BankDatabase yang dapat mengakses
dan memanipulasi sebuah rekening (account) secara langsung. Semua bagian lain dari
sistem harus berinteraksi dengan database untuk mengambil atau memperbarui
informasi account (misalnya, saldo rekening).

Class Diagram pada Gambar 1.10 juga memodelkan asosiasi antara class Withdrawal
dan class Screen, CashDispenser dan Keypad. Sebuah transaksi penarikan mencakup
memberitahu pengguna untuk memilih jumlah penarikan, dan menerima input
numerik. Aksi ini memerlukan penggunaan layar dan keypad, secara berurutan. Selain
itu, pengeluaran uang kas untuk pengguna membutuhkan akses ke dispenser uang kas.

Class BalanceInquiry dan Deposit, meskipun tidak ditunjukkan pada Gambar 1.10,
mengambil bagian dalam beberapa asosiasi dengan class lain dari sistem ATM. Seperti
class Withdrawal, masing-masing class berasosiasi dengan class ATM dan
BankDatabase. Sebuah object dari class BalanceInquiry juga berasosiasi dengan sebuah
object dari class Screen untuk menampilkan Saldo dari account kepada user. Class
Deposit berasosiasi dengan class Screen, Keypad, dan DepositSlot. Seperti class
Withdrawal, transaksi penyimpanan dana memerlukan penggunaan layar dan keypad
untuk menampilkan pemberitahuan dan menerima masukan, secara berurutan. Untuk
menerima amplop deposit, sebuah object dari class Deposit mengakses slot
penyimpanan. Sekarang kita telah mengidentifikasi class awal dalam sistem ATM kita -
dapat menemukan class lain selagi melanjutkan dengan tahap perancangan dan
implementasi.

UML: ATM (CASE STUDY)


13

LATIHAN

1. Misalkan kita memiliki class Mobil yang mewakili sebuah mobil. Pikirkan
beberapa bagian yang berbeda yang akan disatukan untuk memproduksi mobil
secara keseluruhan. Buat sebuah Class Diagram (mirip dengan Gambar 1.9) yang
memodelkan beberapa relasi Komposisi dari class Mobil.
2. Misalkan kita memiliki class File yang mewakili sebuah dokumen elektronik
dalam computer stand-alone, yang tidak terhubung dengan jaringan, yang
diwakili oleh class Komputer. Apa saja jenis asosiasi antara class Computer dan
class file?
a. Class computer memiliki sebuah relasi one-to-one dengan class File
b. Class computer memiliki sebuah relasi many-to-one dengan class File
c. Class computer memiliki sebuah relasi one-to-many dengan class File
d. Class computer memiliki sebuah relasi many-to-many dengan class File
3. Sebutkan apakah pernyataan berikut ini benar atau salah, jika salah, jelaskan
alasannya: “Sebuah diagram UML yang di dalamya terdapat ruang ke-2 dan ke-3
tidak dimodelkan disebut sebagai Elided Diagram”.
4. Ubahlah class diagram pada Gambar 1.10 untuk memasukkan class Deposit
menggantikan class Withdrawal.

UML: ATM (CASE STUDY)


Pemrograman
Berbasis Objek
object-oriented programming

Object di dalam program saling berhubungan dengan saling mengirim


pesan.
!"#$%&'!()$*&$+',(!-(.//)*-'0!!,1

1. Adalah paradigma pemrograman


yang diorientasikan pada objek.
2. Semua data dan fungsi di dalam
paradigma ini dibungkus dalam kelas-
kelas atau objek-objek.
3. Setiap objek dapat menerima pesan,
memproses data, dan mengirim pesan
ke objek lainnya.
!"#$%&'!()$*&$+,'-.-'!"#$%&'/0
Object adalah sebuah komponen perangkat lunak
yang stukturnya mirip dengan obyek pada dunia nyata.
Setiap obyek dibangun dari sekumpulan data (atribut)
yang disebut variabel untuk menjabarkan karakteristik
khusus dari obyek, dan juga terdiri dari sekumpulan
method yang menjabarkan tingkah laku dari obyek.
CLASS vs OBJECT
Obyek adalah sebuah komponen perangkat lunak yang
stukturnya mirip dengan obyek pada dunia nyata. Setiap obyek
dibangun dari sekumpulan data (atribut) yang disebut variabel
untuk menjabarkan karakteristik khusus dari obyek, dan juga
terdiri dari sekumpulan method yang menjabarkan tingkah laku
dari obyek. Bisa dikatakan bahwa obyek adalah sebuah
perangkat lunak yang berisi sekumpulan variabel dan method yg
berhubungan. Variabel dan method dalam obyek Java atau C++
secara formal diketahui sebagai variabel instance dan method
instance. Hal ini dilakukan untuk membedakan dari variabel
class dan method class.

Class adalah sturktur dasar dari OOP. Class terdiri dari dua
tipe dari anggota dimana disebutdengan field (attribut/properti)
dan method. Field merupakan tipe data yang didefinisikan oleh
class, sementara method merupakan operasi. Sebuah obyek
adalah sebuah instance (keturunan) dari class.
PBO vs PT
1. Pemrograman Terstruktur (PT), prosedur dan
data merupakan dua hal yang terpisahkan
satu sama lain.
2. Contoh, untuk mengelola data waktu yang
terdiri dari jam, menit, dan detik, dalam C
dapat digroupkan dengan menggunakan
struct sebagai berikut:

3. Namun meskipun demikian, untuk mengolah


ketiga data tersebut, dibutuhkan prosedur
yang disusun pada bagian yang terpisah.
1. !"#$$%&$$!'
Pemrograman Orientasi Obyek (PBO),
prosedur dan data dapat dibungkus menjadi
sebuah objek sehingga prosedur dan data
tidak terpisah lagi melainkan menjadi satu
kesatuan. class Time
{
int hour; // 0-24
int minute; // 0-59
int second; // 0-59
};
2. Ini merupakan salah satu konsep PBO yang
disebut dengan “encapsulation”.
3. PBO didasarkan pada pemodelan objek –
objek dunia nyata menjadi objek – objek
dalam pemrograman
!"#$$%&'%()*+!,
!"#$%&'"()*+,*#-.%$/*#"0%1/%&
!"#$%&'"()
void main() inisialisasi()
{ {
int x, y; return(0);
….. }
…..
x = inisialisasi();
….
Y = inisialisasi();
….. Definisi fungsi
}
Pemanggilan
fungsi
!"#$%&'"()*+,*#-.%$/*#"0%1/%&
Berfikir berorientasi objek dan Desain
berorientasi objek
Procedural OOP
Programming
Variable_1

Variable_n
Simplify
Function_1
Object

Function_n
!"#$%&'"()*+,*#-.%$/*#"0%1/%&

Class Student

Object Student_No Student_Name Address

201211001 Ali Kerinci


Instance 01312004 Badu Pekanbar
02311002 Charles u
Padang
!"#$%&'"()*+,*#-.%$/*#"0%1/%&

Transportation
Class

Object

Garuda Lorena Kerinci


Instance Mandala ANS Kambuna
Lion Merah Sari Lambelu
SriWijaya Jatra Tidar
Batavia ALS
Thanks!

13
Android App Development
for Beginners

I Komang Sugiartha, S.Kom., MMSI

http://komangsugiartha.com
http://kemangkres.id

I Komang Sugiartha, S.Kom., MMSI


http://sugiartha.staff.gunadarma.ac.id
- Lecture Gunadarma University
- Staff Incubator Business Center
- Head of Robotics and Course Development
Robot Edukasi (http://robotedukasi.com)
- Co-Founder KemangKres (http://kemangkres.id)
Outline ● Pengantar Android
● Bahasa Pemrograman
Android
● Java Programming
● Demo Aplikasi
http://kemangkres.id

Apa itu Android?

Android adalah sebuah sistem


operasi yang dirancang oleh
Google yang berbasiskan kernel
Linux dan berbagai perangkat
lunak Open Source lainnya serta
biasa digunakan untuk
perangkat dengan layar sentuh
seperti smartphone dan tablet.
http://kemangkres.id

Sejarah Singkat Android

● Pada tahun 2004, Android dipasarkan sebagai


saingan untuk smartphone berbasis Symbian dan
Windows Mobile.
● Juli 2005, Google mengakuisisi Android Inc. sebesar
$50 juta. Pendiri-pendiri Android seperti Andy
Rubin, Rich Miner, Nick Sears, dan Chris White juga
ikut bergabung dengan Google.
http://kemangkres.id

Sejarah Singkat Android


● Pada tahun 2008, Blackberry dan
Nokia merilis smartphone yang
memiliki layar sentuh untuk
menyaingi iPhone.
● Google juga merilis HTC Dream
atau T-Mobile G1. Smartphone ini
menggabungkan layar sentuh
dengan keyboard yang dikeluarkan
dengan mekanisme slider.
http://kemangkres.id

Versi Android

Source:
(https://www.hikkart.
com/2018/05/androi
d-versions-list.html)
http://kemangkres.id

Market Share Smartphone

(Q2 2018): 88%


Source (https://www.statista.com/statistics/266136/global-market-share-
held-by-smartphone-operating-systems)
http://kemangkres.id

Arsitektur Android

● Applications
● Application
Framework
● Libraries
● Android Runtime
● Linux Kernel
http://kemangkres.id

Bahasa Pemrograman Android


http://kemangkres.id

Pengantar Flutter

● Flutter adalah sebuah framework open-source yang


dikembangkan oleh Google untuk membangun
antarmuka (user interface/UI) aplikasi Android dan
iOS.
● Apa bedanya membuat aplikasi android
menggunakan Android Studio (native) dengan
Flutter?
http://kemangkres.id

Perbedaan pertama:
● Ada fitur hot reload yang disediakan oleh Flutter.
http://kemangkres.id

Perbedaan kedua:

Kemudian perbedaan berikutnya dari bahasa


pemrograman yang digunakan. Flutter menggunakan
bahasa pemrograman Dart, sedangkan Android Studio
menggunakan Bahasa pemrograman Java dan Kotlin.
http://kemangkres.id

Perbedaan ketiga:

Aplikasi yang kita buat dengan Flutter dapat di-build ke Android


dan iOS. Sedangkan Android Studio hanya bisa di-build ke Android
saja.
http://kemangkres.id

Contoh aplikasi yang dibangun dengan Flutter:

● Alibaba (Android).
● Google AdWords (Android).
● App Tree (Android).
● Topline (Android).
● Hamilton (Android dan iOS).
http://kemangkres.id

Pengantar Kotlin

● Kotlin adalah sebuah bahasa pemrograman statis yang


dikembangkan oleh Jetbrains, kotlin sendiri dapat berjalan pada
JVM (Java Virtual Machine).
● Dengan adanya kotlin sebagai bahasa baru untuk android bukan
berarti java akan tergantikan oleh kotlin, tapi kotlin dan java
dapat berjalanan secara bersamaan pada sebuah project
android.
http://kemangkres.id

Fitur-fitur bahasa pemrograman Kotlin

● Concise : dalam penulisan syntax-syntax dalam kotlin bisa


dibilang lebih simple dari java. contoh nya dalam implementasi
interface onClickListener pada android.

JAVA

KOTLIN
http://kemangkres.id

Fitur-fitur bahasa pemrograman Kotlin

● Interoperable : Tidak sama seperti bahasa pemrograman


lainnya dimana kode tersebut tidak dapat berjalan dengan kode
java, beda dengan kotlin seperti yang saya tulis di atas di mana
kotlin dapat berjalanan bersamaan dengan bahasa
pemrograman java.
http://kemangkres.id

Fitur-fitur bahasa pemrograman Kotlin

● Safe : Bagi anda yang sudah biasa dengan pemrograman java


pasti pernah mendatkan error NPE (Null Pointer Exception) di
mana jika anda menggunakan kotlin maka anda tidak akan lagi
mendapatkan hal sama karena kotlin melakukan pencegahan
terhadap NPE pada level editor jadi sebelum kode tersebut
dijalankan atau dicompile maka kotlin akan memberitahukan
kepada anda kalau ada kode yang memiliki NPE, berbeda
dengan java dimana error nya akan muncul saat program telah
running dan di mana kita juga harus mencari lagi letak NPE tsb.
http://kemangkres.id

Pemrograman Java

● Pada awalnya Bahasa Java dibuat oleh James Gosling


saat masih bergabung di Sun Microsystems namun
saat ini merupakan bagian dari Oracle dan dirilis
tahun 1995.
● Bahasa Java juga menggunakan konsep
pemrograman berorientasi objek (OOP).
http://kemangkres.id

Java Development Kit (JDK)

 Java Development Kit atau disingkat JDK ialah alat


yang digunakan untuk mengkompilasi file dengan
ekstensi .java menjadi .class.
 File hasil kompilasi dari JDK hampir mustahil dibaca
manusia karena merupakan rangkaian bytecode java
yang sangat rumit namun dengan mudah dapat
dibaca oleh mesin.
http://kemangkres.id

Java Runtime Environment (JRE)

 Java Runtime Environment atau JRE digunakan


untuk menyediakan lingkungan agar dapat
mengeksekusi program yang terbuat dari Java.
 JRE menyediakan seperangkat libraries serta file lain
yang digunakan JVM saat runtime atau dengan kata
lain JRE merupakan implementasi dari JVM itu
sendiri.
http://kemangkres.id

Java VIrtual Machine (JVM)


 JVM (Java VIrtual Machine) adalah mechine abstract dengan
spesifikasi tertentu yang menyediakan lingkungan untuk
runtime / menjalankan bytecode dari Java.
 JVM tersedia untuk banyak platform hardwre maupun
software. Bytecode Java yang dikomplilasi oleh JDK bukan
merupakan bytecode native yang langusung dapat dimengeri
oleh Operating System, untuk itu JVM hadir sebagai ‘jubir’
yang akan menjembantani antari OS dengan bytecode java.
http://kemangkres.id

Cara Kerja Compiler Java


http://kemangkres.id

Struktur Program Java


● Untuk dapat membuat program, anda harus
membuat kelas (sintaks: class) terlebih dahulu
karena setiap program Java harus berada dalam
sebuah kelas.
● Kemudian anda harus membuat sebuah method
main atau program utama untuk dapat menjalankan
kode program.
http://kemangkres.id

Contoh Program Java

Cara menjalankan
program melalui
command
prompt:
http://kemangkres.id

Output Program Java


http://kemangkres.id

Komentar dalam Java


Komentar merupakan sebuah catatan biasa yang ditulis
oleh programmer untuk sebagai pengingat atau
penjelasan ketika membaca sebuah kode.
 Hanya 1 Baris - tanda komentar satu baris,
menggunakan tanda //
 Banyak Baris - komentar lebih dari satu bari,

menggunakan tannda /* ... */.


http://kemangkres.id

Variable
 Variabel adalah tempat untuk menyimpan suatu nilai atau
data. Variable memiliki nama, nilai, dan tipe.

 Bentuk umum:
<tipe data> namaVariabel; ( int umur; )
<tipe data> namaVariabel = nilai; ( int umur = 26; )
http://kemangkres.id

Tipe Data pada Java


http://kemangkres.id

Operator pada Java


http://kemangkres.id

Control Statements pada Java


http://kemangkres.id

Pengantar Android Studio


Android Studio adalah sebuah IDE untuk Android
Development yang diperkenalkan google pada acara
Google I/O 2013.
Android Studio merupakan pengembangkan dari
Eclipse IDE, dan dibuat berdasarkan IDE Java populer,
yaitu IntelliJ IDEA.
Android Studio merupakan IDE resmi untuk
pengembangan aplikasi Android.
http://kemangkres.id

Fitur-Fitur Android Studio


 Menggunakan Gradle-based build system yang
fleksibel.
 Template support untuk Google Services dan
berbagai macam tipe perangkat.
 Built-in support untuk Google Cloud Platform,
sehingga mudah untuk integrasi dengan Google
Cloud Messaging dan App Engine.
 Import library langsung dari Maven repository dan
masih banyak lagi yang lainnya.
http://kemangkres.id

System Requirements Android Studio

Source : https://developer.android.com/studio/
http://kemangkres.id

Tampilan Awal Android Studio


http://kemangkres.id
1

Struktur Project Android Studio


2
1) Manifest (app/manifest/AndroidManifest.xml )
Berisi file AndroidManifest.xml, yang merupakan
komponen dari aplikasi seperti activity, services, user
permission, content provider, dan lain-lain. 3

2) Java (app/packagename/MainActivity.java)
Berisi file-file yang yang merupakan perintah-perintah
yang berektensikan java.
3) res (Resource) 4
Folder ini berisi drawable, layout, mipmap dan values.
4) Gradle
Merupakan build tool yang digunakan untuk
menjalankan aplikasi android studio.
http://kemangkres.id
http://kemangkres.id

Demo Apps – Android Studio (Java)


Source (https://play.google.com/store/apps/details?id=com.smartgarden.smartgardenbali)
http://kemangkres.id

Demo Apps – Android Studio (Java)


Source (https://play.google.com/store/apps/details?id=com.kemenkes.mobileks)
http://kemangkres.id

Demo Apps – Android Studio (Java)


Sistem Akademik Sekolah (http://epasraman.online/)
http://kemangkres.id

Demo Apps – Android Studio (Java)


Smart Tourism
http://kemangkres.id

Demo Apps – Cordova (HTML)


Source (https://play.google.com/store/apps/details?id=com.robotedukasi.belajars4aarduino)
http://kemangkres.id

Demo Apps – MIT App Inventor


Source (https://play.google.com/store/apps/details?id=com.thunkable.android.sugiartha26.AppsRobotEdukasi)
Terimakasih
http://komangsugiartha.com
http://sugiartha.staff.gunadarma.ac.id
sugiartha26@gmail.com
Instagram : @komang.sugiartha
I Komang Sugiartha Facebook : @komang.sugiartha

Lecture, Programmer,
Entreprenuer
PEMROGRAMAN BERBASIS OBJEK
ESU COURSE REGISTRATION:
ACTIVITY DIAGRAM
SEQUENCE DIAGRAM
COLABORATION DIAGRAM
ACTIVITY DIAGRAM

Activity Diagram adalah diagram yang menggambarkan worlflow (aliran kerja) atau aktivitas
dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan adalah bahwa diagram aktivitas
menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh
sistem. Komponen yang ada pada activity diagram antara lain :
Activity atau state : Menunjukan aktivitas yang dilakukan.
Initial activity atau initial state : Menunjukan awal aktivitas dimulai.
Final Activity atau final state : Menunjukan bagian akhir dari aktivitas.
Decission : Digunakan untuk menggambarkan test kondisi untuk memastikan bahwa control
flow atau object flow mengalir lebih ke satu jalur. Jumlah jalur sesuai yang diinginkan.
Merge : Berfungsi menggabungkan flow yang dipecah oleh decission.
Swimlanes : Memecah activity diagram menjadi baris dan kolom untuk membagi tangung jawab obyek-obyek
yang melakukan aktivitas.
Transition : Menunjukan aktivitas selanjutnya setelah aktivitas sebelumnya.
Berikut adalah contoh activity diagram :
SEQUENCE DIAGRAM

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan
komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang
dipertukarkan oleh obyek – obyek yang melakukan suatu tugas atau aksi tertentu. Obyek – obyek tersebut
kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari
diagram.

Tujuan penggunaan sequence diagram :


- Mengkomunikasikan requirement kepada tim teknis karena diagram ini dapat lebih mudah untuk
dielaborasi menjadi model design.
- Merupakan diagram yang paling cocok untuk mengembangkan model deskripsi use-case menjadi
spesifikasi design.
Waktu Penggunaan sequence diagram :

- Pada tahap discovery : Sequence diagram dari use case yang dipilih dibuat oleh Business Analyst.
- Pada tahap construction : System analyst menggunakan use case dan sequence diagram yang
dibuat oleh Business Analyst sebagai input untuk pembuatan technical sequence diagram yang akan
ditinjau kembali oleh Business Analyst
- Pada tahap final verification and validation : sequence diagram digunakan untuk merancang test dari
use-case scenario.

Banyaknya diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki
proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah
dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram
sekuen yang harus dibuat juga semakin banyak.
Contoh Sequence diagram :
Colaboration Diagram

Collaboration Diagram juga dikenal sebagai Communication Diagram atau Interaction Diagram.Collaboration
Diagram adalah suatu diagram yang memperlihatkan/menampilkan pengorganisasian interaksi yang terdapat
disekitar objek (seperti halnya sequence diagram) dan hubungannya terhadap yang lainnya.
Collaboration Diagram lebih menekankan kepada peran setiap objek dan bukan pada waktu penyampaian
pesan/message. Collaboration Diagram mengelompokan message pada kumpulan diagram sekuen menjadi
sebuah diagram. Dalam diagram kolaborasi yang dituliskan adalaha operasi atau metode yang dijalankan
antara objek yang satu dengan objek yang lainnya secara keseluruhan. Oleh karena itu dapat diambil dari
jalannya interaksi pada semua diagram sekuen.

Diagram kolaborasi menunjukkan informasi yang sama persis dengan diagram sekuensial, tetapi dalam
bentuk dan tujuan yang berbeda. Sebagaimana diagram sekuensial, diagram kolaborasi digunakan untuk
menampilkan aliran skenario tertentu di dalam use case. Jika diagram sekuensial disusun berdasrkan urutan
waktu, diagram kolaborsi lebih berkonsentrasi pada hubungan antar obyek-obyek .
Fungsi kolaborasi diagram adalah digunakan untuk :
a. pandangan dalam arti prilaku sistem, berfokus pada link-link diantara objek-objek.
b. illustrasi dari suatu diagram usecase
c. menyatakan objek-objek yang diperlukan untuk merealisasikan suatu layanan
d. memeriksa jalur-jalur pengaksesan
Simbol dan notasi diagram kolaborasi adalah sebagai berikut :
a. kelas
b. asosiasi
c. pesan
CONTOH COLLABORATION DIAGRAM :
THANK YOU

Anda mungkin juga menyukai