Introduction to Programming
Week ke - 1
1. Peserta diharapkan dapat mengerti dasar dasar java programming dan konsep objek oriented
OUTLINE MATERI :
1. Definisi algoritma
2. Bahasa Pemrograman
3. Pseudocode
4. Flowchart
5. NS Diagram
7. Programming Style
8. Programming Error
ISI MATERI
A. Definisi Algoritma
Algoritma adalah setiap prosedur komputasi yang terdefinisi dengan baik yang
mengambil beberapa nilai, atau set nilai, sebagai input dan menghasilkan beberapa
nilai, atau set nilai, sebagai output. Dengan demikian, algoritma adalah urutan
langkah-langkah komputasi yang mengubah input menjadi output. Kita juga dapat
melihat algoritma sebagai alat untuk memecahkan masalah komputasi yang
ditentukan dengan baik. Pernyataan masalah menentukan secara umum hubungan
input/output yang diinginkan. Algoritm menjelaskan prosedur komputasi khusus
untuk mencapai hubungan input/output tersebut. Misalnya, kita mungkin perlu
mengurutkan urutan angka ke dalam urutan yang tidak menurun. Masalah ini sering
muncul dalam praktik dan menyediakan lahan subur untuk memperkenalkan banyak
teknik desain standar dan alat analisis. Inilah cara kami mendefinisikan masalah
penyortiran secara formal:
Output: Sebuah permutasi (penyusunan ulang) (a'1 ,a'2 ,…..a'n)dari barisan masukan
sedemikian rupa sehingga a'1 <= a' 2 <=….<=a'n. Misalnya, diberikan urutan input
h31; 41; 59; 26; 41; 58i, algoritma pengurutan kembali sebagai output urutan h26; 31;
41; 41; 58; 59i. Urutan input seperti itu disebut turunan dari masalah pengurutan.
Secara umum, sebuah contoh masalah terdiri dari input (memenuhi kendala apa pun
yang dikenakan dalam pernyataan masalah) yang diperlukan untuk menghitung solusi
untuk masalah tersebut. Urutan input seperti itu disebut turunan dari masalah
pengurutan. Secara umum, sebuah contoh masalah terdiri dari input (memenuhi
kendala apa pun yang dikenakan dalam pernyataan masalah) yang diperlukan untuk
menghitung solusi untuk masalah tersebut. Urutan input seperti itu disebut turunan
dari masalah pengurutan. Secara umum, sebuah contoh masalah terdiri dari input
Introduction to Programming
(memenuhi kendala apa pun yang dikenakan dalam pernyataan masalah) yang
diperlukan untuk menghitung solusi untuk masalah tersebut.…
B. Bahasa Pemrograman.
Komputer tidak mengerti bahasa manusia, sehingga program harus ditulis dalam bahasa
yang dapat digunakan komputer. Ada ratusan bahasa pemrograman, dan mereka
dikembangkan untuk membuat proses pemrograman lebih mudah bagi orang-orang.
Namun, semua program harus diubah menjadi instruksi yang dapat dijalankan oleh
komputer
a. Machine Language
Bahasa asli komputer, yang berbeda di antara berbagai jenis komputer, adalah
bahasa mesinnya satu set instruksi primitif bawaan. Instruksi ini dalam bentuk
kode biner, jadi jika Anda ingin memberikan komputer instruksi dalam bahasa
aslinya, Anda harus memasukkan instruksi sebagai kode biner. Misalnya, untuk
menambahkan dua angka, Anda mungkin harus menulis instruksi dalam kode
biner sebagai berikut:
1101101010011010
b. Assembly Language.
Pemrograman dalam bahasa mesin adalah proses yang membosankan. Selain itu,
program yang ditulis dalam bahasa mesin sangat sulit untuk dibaca dan
dimodifikasi. Untuk alasan ini, bahasa rakitan diciptakan pada hari-hari awal
komputasi sebagai alternatif bahasa mesin. Bahasa assembly menggunakan kata
deskriptif pendek, yang dikenal sebagai mnemonic, untuk mewakili setiap
instruksi bahasa mesin. Misalnya, mnemonic add biasanya berarti menambah
angka, dan sub berarti mengurangi angka. Untuk menjumlahkan angka 2 dan 3
Introduction to Programming
dan mendapatkan hasilnya, Anda dapat menulis instruksi dalam kode assembly
sebagai berikut: tambahkan 2, 3, hasil Bahasa assembly dikembangkan untuk
membuat pemrograman lebih mudah. Namun, karena komputer tidak dapat
menjalankan bahasa rakitan, program lain—disebut assembler—digunakan untuk
menerjemahkan program bahasa rakitan ke dalam kode mesin, seperti yang
ditunjukkan pada Gambar dibawah ini. Menulis kode dalam bahasa assembly
lebih mudah daripada dalam bahasa mesin. Namun, masih membosankan untuk
menulis kode dalam bahasa assembly. Sebuah instruksi dalam bahasa assembly
pada dasarnya sesuai dengan instruksi dalam kode mesin. Menulis dalam bahasa
rakitan mengharuskan Anda mengetahui cara kerja CPU. Bahasa rakitan disebut
sebagai bahasa tingkat rendah, karena bahasa rakitan bersifat dekat dengan bahasa
mesin dan bergantung pada mesin.
1. …
Introduction to Programming
menjalankannya di berbagai jenis mesin. Bahasa tingkat tinggi mirip dengan
bahasa Inggris dan mudah dipelajari dan digunakan. Instruksi dalam bahasa
pemrograman tingkat tinggi disebut pernyataan. Di sini, misalnya, adalah
pernyataan bahasa tingkat tinggi yang menghitung luas lingkaran dengan jari-jari
5: luas = 5 * 5 * 3,14159; Ada banyak bahasa pemrograman tingkat tinggi, dan
masing-masing dirancang untuk tujuan tertentu. Tabel 1.1 mencantumkan
beberapayang populer.
Program yang ditulis dalam bahasa tingkat tinggi disebut program sumber atau
kode sumber. Karena komputer tidak dapat menjalankan program sumber,
program sumber harus diterjemahkan ke dalam kode mesin untuk dieksekusi.
Terjemahan dapat dilakukan menggunakan alat pemrograman lain yang disebut
juru bahasa atau kompiler
Introduction to Programming
C. Pseudocode
Pseudocode adalah bahasa buatan dan informal yang membantu programmer
mengembangkan algoritma. Pseudocode adalah alat desain detail (algoritmik) "berbasis
teks".
Cetak "lulus"
kalau tidak
Cetak "gagal".
Beberapa kata kunci sering digunakan untuk menunjukkan input, output, dan operasi
pemrosesan yang umum.
Introduction to Programming
berpotensi untuk menentukan jenis langkah, bersama dengan menghubungkan panah
untuk menentukan aliran dan urutan.
Tabel 1.1 Simbol Flow Chart
Simbol Flowchart Nama Keterangan
Juga dikenal sebagai "Simbol
Tindakan," bentuk ini mewakili
proses, tindakan, atau fungsi. Ini
Simbol proses
adalah simbol yang paling
banyak digunakan dalam
diagram alur.
Introduction to Programming
biasanya ditempatkan pada
atau di dalam bentuk untuk
referensi yang mudah.
E. NS Diagram
NS Diagram atau lebih dikenal dengan Nassi-Shneiderman Diagram atau juga biasa
disebut sebagai Structogram merupakan sebuah diagram yang menggambarkan /
mengekspresikan algoritma ke dalam suatu diagram terstruktur namun dalam satu
lingkup terbatas sehingga dibuat dalam satu kotak. NS Diagram sendiri ditujukan untuk
focus pengembangan dengan metode Top – Down Structured dimana system secara
umum dispesifikasikan terlebih dahulu kemudian dilanjutkan dengan menspesifikasi
detail proses didalamnya. Cara kerja ini merupakan cara kerja yang sama dengan
flowchart dan pseudocode.
Introduction to Programming
Merupakan bentuk dari struktur IF Then –
Else pada NS Diagram dimana symbol ‘?’
menyatakan pertanyaan kondisi, kolom
‘T’ merupakan bagian dari statement
yang akan dilakukan jika kondisi
terpenuhi (benar), dan kolom ‘F’
merupakan bagian dari statement yang
akan dilakukan apabila kondisi tidak
terpnuhi.
Introduction to Programming
Gambar 1.3 Contoh NS Diagram
Bahasa komputer memiliki aturan penggunaan yang ketat. Jika Anda tidak mengikuti
aturan saat menulis program, komputer tidak akan dapat memahaminya. Spesifikasi
bahasa Java dan Java API mendefinisikan standar Java.
Spesifikasi bahasa Java adalah definisi teknis dari sintaks dan semantik bahasa
pemrograman Java. Anda dapat menemukan spesifikasi lengkap bahasa Java di
docs.Oracle.com/javase/specs/.
Introduction to Programming
Antarmuka program aplikasi (API), juga dikenal sebagai perpustakaan, berisi kelas dan
antarmuka yang telah ditentukan untuk mengembangkan program Java. API masih
berkembang. Anda dapat melihat dokumentasi Java API terbaru di
https://docs.Oracle.com/en/java/javase/11/. Java adalah bahasa yang lengkap dan kuat
yang dapat digunakan dalam banyak cara. Itu datang dalam tiga edisi:
Java Standard Edition (Java SE) untuk mengembangkan aplikasi sisi klien. Aplikasi dapat
berjalan di desktop.
Java Enterprise Edition (Java EE) untuk mengembangkan aplikasi sisi server, seperti Java
servlet, JavaServer Pages (JSP), dan JavaServer Faces (JSF).
Java Micro Edition (Java ME) untuk mengembangkan aplikasi untuk perangkat seluler,
seperti ponsel
Java SE adalah fondasi yang menjadi dasar semua teknologi Java lainnya. Ada banyak
versi Java SE. Yang terbaru, ava SE 11 (atau hanya Java 11), digunakan dalam buku ini.
Oracle merilis setiap versi dengan Java Development Toolkit (JDK). Untuk Java 11, Java
Development Toolkit disebut JDK 11.
JDK terdiri dari satu set program terpisah, masing-masing dipanggil dari baris perintah,
untuk mengkompilasi, menjalankan, dan menguji program Java. Program untuk
menjalankan program Java dikenal sebagai Java Runtime Environment (JRE). Alih-alih
menggunakan JDK, Anda dapat menggunakan alat pengembangan Java (misalnya,
NetBeans, Eclipse, dan TextPad)—perangkat lunak yang menyediakan lingkungan
pengembangan terintegrasi (IDE) untuk mengembangkan program Java dengan cepat.
Pengeditan, kompilasi, pembuatan, debugging, dan bantuan online terintegrasi dalam satu
antarmuka pengguna grafis. Anda cukup memasukkan kode sumber di satu jendela atau
membuka file yang ada di jendela, lalu klik tombol atau item menu atau tekan tombol
fungsi untuk mengkompilasi dan menjalankan program.
Introduction to Programming
ditunjukkan pada Gambar 1.6. Jika program Anda memiliki kesalahan kompilasi, Anda
harus memodifikasi program untuk memperbaikinya, lalu mengkompilasi ulang. Jika
program Anda memiliki kesalahan runtime atau tidak memberikan hasil yang benar,
Anda harus memodifikasi program, mengkompilasi ulang, dan menjalankannya lagi.
Anda dapat menggunakan editor teks atau IDE apa pun untuk membuat dan mengedit file
kode sumber Java. Bagian ini menunjukkan cara membuat, mengkompilasi, dan
menjalankan program Java dari jendela perintah. Bagian 1.11 dan 1.12 akan
memperkenalkan pengembangan program Java menggunakan NetBeans dan Eclipse.
Dari jendela perintah, Anda dapat menggunakan editor teks seperti Notepad untuk
membuat file kode sumber Java, seperti yang ditunjukkan pada Gambar
1.7
Introduction to Programming
Gambar 1.5 Contoh Code Welcome to java
G. Programming Style
Introduction to Programming
kelas publik Latihan1 {
/** Metode utama menampilkan tiga pesan */
public static void main(String[] args) {
// Gunakan statemen println untuk menampilkan tiga pesan
System.out.println("Pemrograman itu menyenangkan");
System.out.println("Selamat datang di Pemrograman Komputer");
System.out.println("Java adalah bahasa pemrograman");
}
}
o Block Style
Blok adalah sekelompok pernyataan yang dikelilingi oleh kurung kurawal. Ada
dua gaya populer, gaya baris berikutnya dan gaya akhir baris, seperti yang
ditunjukkan di bawah ini
H. Programming Error
o Kesalahan sintaks
Kesalahan yang dideteksi oleh compiler disebut kesalahan sintaks atau kesalahan
kompilasi. Kesalahan sintaks dihasilkan dari kesalahan dalam konstruksi kode,
seperti salah ketik kata kunci, menghilangkan beberapa tanda baca yang
Introduction to Programming
diperlukan, atau menggunakan tanda kurung buka tanpa tanda kurung tutup yang
sesuai. Kesalahan ini biasanya mudah dideteksi karena kompiler memberi tahu
Anda di mana kesalahan itu dan apa yang menyebabkannya
Introduction to Programming
tetapi pengguna memasukkan string, ini menyebabkan kesalahan tipe data terjadi
dalam program. Contoh lain dari kesalahan runtime adalah pembagian dengan
nol. Ini terjadi ketika pembagi adalah nol untuk pembagian bilangan bulat.
Introduction to Programming
sisi lain, bisa sangat menantang. Dalam bab-bab selanjutnya, Anda akan
mempelajari teknik menelusuri program dan menemukan kesalahan logika.
Introduction to Programming
SIMPULAN
Algoritma merupakan suatu struktur tahapan penyelesaian masalah. Algoritma digunakan dalam
membantu mengolah permasalahan proses bisnis dari sistem yang akan dikembangkan maupun
penggambaran dari sistem yang sedang berjalan. Algoritma digunakan sebagai sarana
dokumentasi agar menjamin bahwa pemahaman yang dimiliki oleh pihak pengembang maupun
klien dalam alur yang sama dan benar serta membantu dalam mengarahkan pembuatan program.
Bahasa Pemrograman merupakan bahasa perantara antara manusia dan komputer yang
digunakan untuk tujuan pengembangan program. Bahasa pemrograman terbagi atas 2 cakupan
besar yakni, berbasis desktop maupun berbasis web. Pengaplikasian bahasa pemrograman
membutuhkan penyesuaian khusus dari komputer yang menerapkan dan juga masing – masing
bahasa pemrograman mempunyai struktur tersendiri dalam pembuatannya.
Bentuk penggambaran dari algoritma dapat diwujudkan ke dalam 3 bentuk umum, yakni
Flowchart, Pseudocode, dan NS Diagram. Ketiga – tiganya berperan dalam menggambarkan
algoritma ke dalam suatu struktur tertentu dan membantu pengembangan dengan metode Top –
Down Structured.
Bahasa Pemrograman Java merupakan bahasa pemrograman berbasiskan Object Oriented. Selain
itu Java adalah platform independent yang berarti bahwa sekali program ditulis dan dijalankan di
komputer mana saja. Nama File harus sesuai dengan nama public class yang ada di program Java
dan harus disimpan dengan ekstensi .java.
Introduction to Programming
DAFTAR PUSTAKA
1. http://www.cosc.canterbury.ac.nz/tim.bell/dt/Tutorial_Pseudocode.pdf
2. https://www.cs.umd.edu/hcil/members/bshneiderman/nsd/Yoder-Schrag-nassi_schart.pdf
3. https://en.wikipedia.org/wiki/Nassi%E2%80%93Shneiderman_diagram
4. https://id.wikipedia.org/wiki/Diagram_alir
5. Y. Daniel Liang. (2020). Introduction to Java programming and Data Structures :
comprehensive version. international edition. 12. Pearson Education. New Jersey. ISBN:
9780136520238. Chapter 1
Introduction to Programming
LECTURE NOTES
Introduction To Programming
Week ke - 2
1. Peserta diharapkan dapat mengerti dasar dasar java programming dan konsep objek oriented
OUTLINE MATERI :
2. Identifiers
3. Variable
4. Named Constant
5. Naming conventions
6. Numeric data
Java menggunakan System.out untuk merujuk ke perangkat output standar, dan System.in
ke perangkat input standar. Secara default, perangkat output adalah monitor tampilan, dan
perangkat input adalah keyboard. Untuk melakukan keluaran konsol, Anda cukup
menggunakan metode println untuk menampilkan nilai primitif atau string ke konsol.
Untuk melakukan input konsol, Anda perlu menggunakan kelas Scanner untuk membuat
objek untuk membaca input dari System.in, sebagai berikut: Scanner input = new
Scanner(System.in); Sintaks New Scanner(System.in) membuat objek dengan tipe
Scanner. Sintaks input Scanner menyatakan bahwa input adalah variabel yang bertipe
Scanner. Seluruh baris Scanner input = new Scanner(System.in) membuat objek Scanner
dan memberikan referensinya ke input variabel. Sebuah objek dapat memanggil
metodenya. Untuk memanggil metode pada suatu objek adalah meminta objek untuk
melakukan tugas. Anda dapat memanggil metode nextDouble() untuk membaca nilai
ganda sebagai berikut: radius ganda = input.nextDouble();Contoh :
Introduction To Programming
• Identifier
Introduction To Programming
double interestRate; // Deklarasikan interestRate sebagai variabel double
Contoh-contoh ini menggunakan tipe data int dan double. Nanti Anda akan diperkenalkan
dengan tipe data tambahan, seperti byte, short, long, float, char, dan boolean.
Jika variabel bertipe sama, maka variabel tersebut dapat dideklarasikan bersama-sama,
sebagai berikut:
tipe data variabel1, variabel2, ..., variabeln;
Introduction To Programming
sebagai gantinya, Anda dapat mendeklarasikan konstanta untuk p. Berikut adalah sintaks
untuk mendeklarasikan konstanta:
tipe data akhir CONSTANTNAME = nilai;
Sebuah konstanta harus dideklarasikan dan diinisialisasi dalam pernyataan yang sama.
Kata final adalah kata kunci Java untuk mendeklarasikan konstanta. Secara konvensi,
semua huruf dalam konstanta menggunakan huruf besar. Misalnya, Anda dapat
mendeklarasikan p sebagai konstanta dan menulis ulang Daftar
Introduction To Programming
kata pertama menjadi huruf kecil dan huruf besar pada huruf pertama setiap kata
berikutnya—misalnya, variabel numberOfStudents. Gaya penamaan ini dikenal sebagai
camelCase karena karakter huruf besar pada namanya menyerupai punuk unta.
Kapitalkan huruf pertama dari setiap kata dalam nama kelas—misalnya, nama kelas
ComputeArea dan System.
Kapitalkan setiap huruf dalam konstanta, dan gunakan garis bawah di antara kata-kata—
misalnya, konstanta PI dan MAX_VALUE.
Penting untuk mengikuti konvensi penamaan untuk membuat program Anda mudah
dibaca.
• Numeric Data.
Setiap tipe data memiliki rentang nilai. Kompiler mengalokasikan ruang memori untuk
setiap variabel atau konstanta sesuai dengan tipe datanya. Java menyediakan delapan tipe
data primitif untuk nilai numerik, karakter, dan nilai Boolean. Bagian ini
memperkenalkan tipe data numerik dan operator.
Tipe Data Angka
Tabel 1.1 Numeric Data
Java menggunakan empat tipe integer: byte, short, int, dan long. Pilih jenis yang paling
sesuai untuk variabel Anda. Misalnya, jika Anda tahu bahwa integer yang disimpan
dalam variabel berada dalam kisaran byte, nyatakan variabel sebagai byte.
Java menggunakan dua jenis angka floating-point: float dan double. Tipe ganda dua kali
lebih besar dari float, sehingga ganda dikenal sebagai presisi ganda, dan float sebagai
Introduction To Programming
presisi tunggal. Biasanya, Anda harus menggunakan tipe ganda karena lebih akurat
daripada tipe float.
• Membaca Angka dari Keyboard
Anda tahu cara menggunakan metode nextDouble() di kelas Scanner untuk membaca nilai
ganda dari keyboard. Anda juga dapat menggunakan metode yang tercantum dalam Tabel
untuk membaca sejumlah tipe byte, short, int, long, dan float.
Tabel 1.2 Method Angka dari keyboard.
Introduction To Programming
Tabel 1.3 Method String
Introduction To Programming
SIMPULAN
Semua nama disebut dengan Identifier yang memiliki ketentuan yang harus dipenuhi diantaranya
adalah tidak diperbolehkan diawali dengan angka. Java mengenal Case Sensitive yang artinya
huruf besar dan huruf kecil akan dianggap berbeda. Perbedaan dari variabel dan konstanta adalah
nilai variabel dapat diubah sedangkan konstanta tidak dapat diubah.
Setiap variabel maupun konstanta memiliki memiliki tipe data sesuai dengan kebutuhannya. Tipe
data numerik terdiri atas 4 tipe untuk integer dan 2 tipe untuk floating point. Tipe integer yaitu
byte, short, int, long. Floating point yaitu float dan double. Setiap tipe data mempunyai rentang
nilai masing - masing. Tipe data lainnya adalah char yang memuat satu karakter, sedangkan jika
membutuhkan lebih dari satu karakter dapat menggunakan tipe data String. Tipe data terakhir
adalah boolean yang hanya memuat nilai true atau false.
Tipe data String merupakan composite class yang dimana nilainya terdiri dari penggabungan
nilai sekumpulan variabel char (array of char) disamping itu kelas String juga memiliki fungsi –
fungsi pada kelasnya.
Introduction To Programming
DAFTAR PUSTAKA
Introduction To Programming
LECTURE NOTES
Introduction to Programming
Week ke - 3
Elementary Programming(Operators)
LEARNING OUTCOMES
1. Peserta diharapkan dapat mengerti dasar dasar java programming dan konsep objek oriented
OUTLINE MATERI :
1. Numeric Operators
6. Math operators
7. Logical operators
8. Bitrwise operators
Operator untuk tipe data numerik termasuk operator aritmatika standar: penambahan (+),
pengurangan (–), perkalian (*), pembagian (/), dan sisa (%), seperti yang tercantum pada
Tabel dibawah ini Operand adalah nilai yang dioperasikan oleh operator.
Meskipun Java memiliki caranya sendiri untuk mengevaluasi ekspresi di belakang layar,
hasil ekspresi Java dan ekspresi aritmatika yang sesuai adalah sama. Oleh karena itu,
Anda dapat dengan aman menerapkan aturan aritmatika untuk mengevaluasi ekspresi
Java. Operator yang terdapat dalam pasangan tanda kurung dievaluasi terlebih dahulu.
Tanda kurung dapat disarangkan, dalam hal ini ekspresi dalam tanda kurung dalam
dievaluasi terlebih dahulu. Ketika lebih dari satu operator digunakan dalam ekspresi,
aturan prioritas operator berikut digunakan untuk menentukan urutan evaluasi:
Introduction to Programming
Operator perkalian, pembagian, dan sisa diterapkan terlebih dahulu. Jika suatu ekspresi
berisi beberapa operator perkalian, pembagian, dan sisa, mereka diterapkan dari kiri ke
kanan.
Operator penjumlahan dan pengurangan diterapkan terakhir. Jika ekspresi berisi beberapa
operator penambahan dan pengurangan, mereka diterapkan dari kiri ke kanan.
Berikut adalah contoh bagaimana ekspresi dievaluasi:
Introduction to Programming
int i = 3, j = 3;
I++; // I menjadi 4
J--; // j menjadi 2
i++ diucapkan sebagai "i plus plus" dan i—— sebagai "i minus minus." Operator ini
dikenal sebagai postfix increment (atau postincrement) dan postfix decrement (atau
postdecrement), karena operator ++ dan —— ditempatkan setelah variabel. Operator ini
juga dapat ditempatkan sebelum variabel. Sebagai contoh,
int i = 3, j = 3;
++I; // I menjadi 4
--J; // j menjadi 2
++i menambah i dengan 1 dan --j mengurangi j dengan 1. Operator ini dikenal sebagai
prefix increment (atau preincrement) dan prefix decrement (atau predecrement). Seperti
yang Anda lihat, efek dari i++ dan ++i atau i-- dan --i adalah sama pada contoh
sebelumnya. Namun, efeknya berbeda ketika digunakan dalam pernyataan yang
melakukan lebih dari sekadar penambahan dan pengurangan
Bisakah Anda melakukan operasi biner dengan dua operan dari jenis yang berbeda? Ya.
Jika bilangan bulat dan bilangan floating-point terlibat dalam operasi biner, Java secara
otomatis mengubah bilangan bulat menjadi nilai floating-point.
Introduction to Programming
rentang nilai yang lebih besar; jadi, misalnya, Anda dapat menetapkan nilai panjang ke
variabel float. Namun, Anda tidak dapat menetapkan nilai ke variabel tipe dengan rentang
yang lebih kecil kecuali jika Anda menggunakan casting tipe. Casting adalah operasi
yang mengubah nilai dari satu tipe data menjadi nilai dari tipe data lain. Casting tipe
dengan rentang kecil ke tipe dengan rentang yang lebih besar dikenal sebagai tipe
pelebaran. Casting tipe dengan rentang besar ke tipe dengan rentang yang lebih kecil
dikenal sebagai penyempitan tipe. Java akan secara otomatis memperluas tipe, tetapi
Anda harus mempersempit tipe secara eksplisit. Sintaks untuk casting suatu tipe adalah
untuk menentukan tipe target dalam tanda kurung, diikuti dengan nama variabel atau nilai
yang akan dilemparkan. Sebagai contoh, pernyataan berikut System.out.println((int)1.7);
menampilkan 1. Ketika nilai ganda dimasukkan ke dalam nilai int, bagian pecahan akan
terpotong. Pernyataan berikut
F. Operator Matematika
Metode Eksponen
Ada lima metode yang terkait dengan eksponen di kelas Matematika
Metode Pembulatan
Kelas Matematika berisi empat metode pembulatan
Introduction to Programming
Tabel 1.5 Metode Pembulatan
G. Logic Operator.
Operator logika, juga dikenal sebagai operator Boolean, beroperasi pada nilai Boolean
untuk membuat nilai Boolean baru. Tabel di bawah ini mencantumkan operator Boolean.
Introduction to Programming
Tabel 1.6 Logic Operator
Tabel di bawah mendefinisikan operator not (!), yang meniadakan true ke false dan false
ke true.
Tabel 1.5 Operator not !
Tabel di bawah mendefinisikan operator and (&&). Dan (&&) dari dua operan Boolean
benar jika dan hanya jika kedua operan itu benar.
Tabel 1.6 Operator And
Tabel di bawah mendefinisikan operator or (||). Or (||) dari dua operan Boolean bernilai
benar jika setidaknya salah satu operan bernilai benar.
Tabel 1.7 Operator OR
Introduction to Programming
Tabel di bawah mendefinisikan operator eksklusif atau (^). Eksklusif atau (^) dari dua
operan Boolean adalah benar jika dan hanya jika kedua operan tersebut memiliki nilai
Boolean yang berbeda. Catatan p1 ^ p2 sama dengan p1 != p2
H. Bitwise Operator
Untuk menulis program pada tingkat mesin, seringkali Anda perlu menangani bilangan
biner secara langsung dan melakukan operasi pada tingkat bit. Java menyediakan
operator bitwise dan operator shift yang didefinisikan dalam Tabel G.1. Operator bit
hanya berlaku untuk tipe integer (byte, short, int, dan long). Karakter yang terlibat dalam
operasi bit diubah menjadi integer. Semua operator bitwise dapat membentuk operator
penugasan bitwise, seperti ^=, |=, <<=, >>=, dan >>>=.
Introduction to Programming
Tabel 1.6 Operator Bitwise
Introduction to Programming
prioritas lebih rendah daripada operator aritmatika. Operator dengan prioritas yang sama
muncul di grup yang sama.
Tabel 1.5 Operator Precedence
Introduction to Programming
SIMPULAN
Operator assignment digunakan untuk memberikan nilai kepada variable yang disebelah
kanannya. Untuk pengerjaan increment dan decrement harus diperhatikan apakah post atau pre.
Apabila berdiri sendiri maka post dan pre akan memiliki hasil yang sama. Namun apabila
digabungkan dengan statement lainnya maka akan menghasilkan nilai yang berbeda.
Operator logical untuk menggabungkan dua kondisi , dan hasil dari operasi ini adalah true atau
false. Operator bitwise akan menggunakan bilangan biner dalam operasinya. Operator relational
atau yang biasa juga disebut dengan operator comparsion berfungsi untuk membandingkan dua
buah variable.
Java menyediakan method yang tergabung dalam math class untuk memudahkan pengguna
apabila ingin menggunakan trigonometri, exponent maupun service method yang didalamnya
juga ada fungsi random. Dalam mengerjakan operasi – operasi diatas, maka harus juga
diperhatikan urutan pengerjaannya sesuai dengan derajat kepentingnnya yang digambarkan
dalam table precedence dan associativity.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 4
Selection
LEARNING OUTCOMES
1. Peserta diharapkan mengerti dasar dasar pemrograman java dan konsep objek orientasi
OUTLINE MATERI :
2. If statement
5. Switch statement
6. Conditional operators
ISI MATERI
Bagaimana Anda membandingkan dua nilai, seperti apakah radius lebih besar dari 0,
sama dengan 0, atau kurang dari 0? Java menyediakan enam operator relasional (juga
dikenal sebagai operator perbandingan), ditunjukkan pada Tabel di bawah, yang dapat
digunakan untuk membandingkan dua nilai (asumsikan radius 5 dalam tabel)
Hasil perbandingan adalah nilai Boolean: benar atau salah. Misalnya, pernyataan berikut
menampilkan true: radius ganda = 1; System.out.println(radius > 0); Sebuah variabel
yang memegang nilai Boolean dikenal sebagai variabel Boolean. Tipe data boolean
digunakan untuk mendeklarasikan variabel Boolean. Variabel boolean dapat menampung
salah satu dari dua nilai: benar atau salah. Misalnya, pernyataan berikut menetapkan true
ke variabel lightsOn: boolean lightsOn = true; benar dan salah adalah literal, seperti
angka seperti 10. Mereka bukan kata kunci, tetapi kata-kata yang dicadangkan dan tidak
dapat digunakan sebagai pengidentifikasi dalam program.
B. If Statement.
Java memiliki beberapa jenis pernyataan seleksi: pernyataan if-else satu arah, pernyataan
if-else dua arah, pernyataan if-else bersarang, pernyataan if-else multi-arah, Paryatan
Introduction to Programming
switch, dan operator kondisional. Pernyataan if satu arah mengeksekusi suatu tindakan
jika dan hanya jika kondisinya benar. Sintaks untuk pernyataan if satu arah adalah
sebagai berikut:
if (ekspresi boolean) {
Statement;
Introduction to Programming
C. Two ways if – else statement
if statement satu arah melakukan tindakan jika kondisi yang ditentukan benar. Jika
kondisinya salah, tidak ada yang dilakukan. Tetapi bagaimana jika Anda ingin
mengambil tindakan alternatif ketika kondisinya salah? Anda dapat menggunakan
pernyataan if-else dua arah. Tindakan yang ditentukan oleh pernyataan if-else dua arah
berbeda berdasarkan apakah kondisinya benar atau salah. Berikut adalah sintaks untuk
pernyataan if-else dua arah:
if (ekspresi boolean) {
else if {
Introduction to Programming
D. Nested if and multiway if else statement
Pernyataan dalam pernyataan if atau if-else dapat berupa pernyataan Java yang legal,
termasuk pernyataan if atau if-else lainnya. Pernyataan if bagian dalam dikatakan
bersarang di dalam pernyataan if bagian luar. Pernyataan if bagian dalam dapat berisi
pernyataan if yang lain; sebenarnya, tidak ada batasan kedalaman sarang. Misalnya,
berikut ini adalah pernyataan if bersarang:
if (i > k) {
if (j > k)
else
Introduction to Programming
Gambar 1.4 Nested if and multiway if else statement Flowchart
E. Switch statements.
break;
break;
Introduction to Programming
break;
break;
System.exit(1);
}
Flowchart dari pernyataan switch sebelumnya ditunjukkan pada Gambar di bawah ini:
F. Conditional operators
Anda mungkin ingin menetapkan nilai ke variabel yang dibatasi oleh kondisi tertentu.
Misalnya, pernyataan berikut memberikan 1 ke y jika x lebih besar dari 0 dan 1 ke y jika
x kurang dari atau sama dengan 0:
if (x > 0)
y = 1;
else
y = −1;
Introduction to Programming
Atau, seperti dalam contoh berikut, Anda dapat menggunakan operator kondisional untuk
mencapai hasil yang sama.
Simbol? dan: muncul bersama disebut operator kondisional (juga dikenal sebagai
operator ternary karena menggunakan tiga operan. Ini adalah satu-satunya operator
ternary di Jawa. Operator kondisional memiliki gaya yang sama sekali berbeda, tanpa
pernyataan if yang eksplisit. The sintaks untuk menggunakan operator adalah sebagai
berikut:
Hasil dari ekspresi ini adalah ekspresi1 jika ekspresi boolean benar; jika tidak, hasilnya
adalah ekspresi2.
Misalkan Anda ingin menetapkan jumlah yang lebih besar dari variabel num1 dan num2
ke max. Anda cukup menulis pernyataan menggunakan operator kondisional:
Introduction to Programming
SIMPULAN
Operasi – operasi seleksi pada pemrograman Java dimungkinkan dengan adanya Struktur
Kendala Pemilihan
Operasi – operasi seleksi tersebut pada umumnya dapat dibagi menjadi beberapa opeasiumum,
yakni IF Statement, IF – ELSE Statement, Nested IF Statement, dan Switch – Case Statement.
Perbedaan yang mencolok tampak dari operasi dengan IF dan Switch – Case dimana pada
operasi seleksi dengan IF memungkinkan adanya operasi logika yang berupa perbandingan,
persamaan, dsb. Sedangkan, pada operasi seleksi dengan Switch – Case hanya memungkinkan
operasi seleksi dengan bentuk persamaan meskipun yang dibandingkan terhadap banyak nilai.
Pada saat penulisan Struktur kendali pemilihan khususnya IF – ELSE harus diperhatikan dengan
baik agar tidak terjadi kesalahan yang sering dilakukan oleh programmer.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 5
1. Peserta diharapkan mengerti Dasar dasar pemrograman java dan konsep orientasi objek
OUTLINE MATERI :
4. Nested loops
while (loop-continuation-condition) {
// Loop body
Statement(s);
Gambar a menunjukkan diagram alir loop while. Bagian dari perulangan yang berisi
pernyataan-pernyataan yang akan diulang disebut badan perulangan. Eksekusi satu kali
dari tubuh loop disebut sebagai iterasi (atau pengulangan) dari loop. Setiap loop berisi
loop-continuation-condition, ekspresi Boolean yang mengontrol eksekusi body. Itu
dievaluasi setiap kali untuk menentukan apakah badan loop dieksekusi. Jika evaluasinya
benar, badan loop dieksekusi; jika evaluasinya salah, seluruh loop berakhir, dan kontrol
program beralih ke pernyataan yang mengikuti loop while. Loop untuk menampilkan
Welcome to Java! seratus kali diperkenalkan di bagian sebelumnya adalah contoh dari
while loop. Flowchartnya ditunjukkan pada Gambar b.
Introduction to Programming
Gambar 1.1 Flowchart while Loops
Kondisi loop-continuation-count <100 dan badan loop berisi dua pernyataan dalam kode
berikut:
Dalam contoh ini, Anda tahu persis berapa kali loop body perlu dieksekusi karena jumlah
variabel kontrol digunakan untuk menghitung jumlah iterasi. Jenis loop ini dikenal
sebagai loop counter-controlled.
Introduction to Programming
B. The do while loop.
Perulangan do while adalah variasi dari perulangan while. Sintaksnya adalah sebagai
berikut:
do {
// Loop body;
Statement(s);
} while (loop-continuation-condition);
int count = 0;
while (count < 100) {
System.out.println("Welcome to Java!");
count++;
}
dapat ditulis menggunakan perulangan do-while sebagai berikut:
int count = 0;
do {
System.out.println("Welcome to Java!");
count++;
} while (count < 100);
Flowchart dari perulangan do-while ini ditunjukkan pada Gambar b. Perbedaan antara
while loop dan do-while loop adalah urutan evaluasi kondisi loopcontinuation, dan badan
Introduction to Programming
loop dieksekusi. Dalam kasus perulangan dowhile, badan perulangan dieksekusi
setidaknya sekali. Anda dapat menulis perulangan menggunakan perulangan while atau
perulangan do-while. Terkadang yang satu adalah pilihan yang lebih nyaman daripada
yang lain.
Introduction to Programming
sebelumnya seperti yang ditunjukkan pada (a) di bawah ini. Secara umum, sintaks untuk
perulangan for adalah seperti yang ditunjukkan pada (a), yang ekuivalen dengan (b).
Introduction to Programming
System.out.println("Welcome to Java!");
}
Flowchart dari pernyataan tersebut ditunjukkan pada Gambar b. Perulangan for
menginisialisasi i ke 0, kemudian berulang kali mengeksekusi pernyataan println dan
mengevaluasi i++ saat i kurang dari 100.
Tindakan awal, i = 0, menginisialisasi variabel kontrol, i. Loopcontinuation-condition, i <
100, adalah ekspresi Boolean. Ekspresi dievaluasi tepat setelah inisialisasi dan di awal
setiap iterasi. Jika kondisi ini benar, badan perulangan akan dieksekusi. Jika salah, loop
berakhir, dan kontrol program beralih ke baris yang mengikuti loop. Tindakan-setelah-
setiap-iterasi, i++, adalah pernyataan yang menyesuaikan variabel kontrol. Pernyataan ini
dijalankan setelah setiap iterasi dan menambah variabel kontrol. Akhirnya, nilai dari
variabel kontrol harus memaksa kondisi-kelanjutan-loop menjadi salah; jika tidak, loop
tidak terbatas. Variabel kontrol loop dapat dideklarasikan dan diinisialisasi dalam loop
for. Berikut ini contohnya:
D. Nested loops
Nested loops terdiri dari loop luar dan satu atau lebih loop dalam. Setiap kali loop luar
diulang, loop dalam dimasukkan kembali, dan dimulai lagi
Contoh
Introduction to Programming
Program menampilkan judul (baris 5) pada baris pertama dalam output. Untuk loop
pertama (baris 9 dan 10) menampilkan angka 1–9 pada baris kedua. Garis putus-putus (–)
ditampilkan pada baris ketiga (baris 12). Loop berikutnya (baris 15–22) adalah loop for
bersarang dengan variabel kontrol i di loop luar dan j di loop dalam. Untuk setiap i, hasil
kali i * j ditampilkan pada garis di loop dalam, dengan j adalah 1, 2, 3, …, 9.
Introduction to Programming
E. Which loops to use.
Anda dapat menggunakan perulangan for, perulangan while, atau perulangan do-while,
mana saja yang sesuai.
Perulangan while dan perulangan do while lebih mudah dipelajari daripada perulangan
for. Namun, Anda akan mempelajari perulangan for dengan cepat setelah beberapa
latihan. A for loop menempatkan inisialisasi variabel kontrol, kondisi kelanjutan loop,
dan penyesuaian setelah setiap iterasi secara bersamaan. Ini lebih ringkas dan
memungkinkan Anda untuk menulis kode dengan lebih sedikit kesalahan daripada dua
loop lainnya. Perulangan while dan perulangan for disebut perulangan pretest karena
kondisi lanjutan diperiksa sebelum badan perulangan dieksekusi. Perulangan do-while
disebut perulangan posttest karena kondisinya diperiksa setelah badan perulangan
dieksekusi. Tiga bentuk pernyataan loop— while, do-while, dan for—secara ekspresif
setara; yaitu, Anda dapat menulis loop dalam salah satu dari tiga bentuk ini. Misalnya,
perulangan while pada (a) pada gambar berikut selalu dapat diubah menjadi perulangan
for pada (b)
Perulangan for pada (a) pada gambar berikut secara umum dapat diubah menjadi
perulangan while pada (b) kecuali dalam kasus khusus tertentu
Introduction to Programming
Gunakan pernyataan loop yang paling intuitif dan nyaman untuk Anda. Secara umum, for
loop dapat digunakan jika jumlah pengulangan diketahui sebelumnya, seperti, misalnya,
ketika Anda perlu menampilkan pesan seratus kali. Perulangan while dapat digunakan
jika jumlah pengulangan tidak tetap, seperti dalam kasus pembacaan angka sampai
inputnya 0. Perulangan do-while dapat digunakan untuk menggantikan perulangan while
jika badan perulangan harus dieksekusi sebelum kondisi lanjutan diuji.
Anda telah menggunakan kata kunci break dalam pernyataan switch. Anda juga dapat
menggunakan break in a loop untuk segera menghentikan loop.
Anda juga dapat menggunakan kata kunci continue dalam satu lingkaran. Ketika ditemui,
itu mengakhiri iterasi saat ini dan kontrol program pergi ke akhir badan loop. Dengan kata
lain, continue break dari sebuah iterasi, sedangkan kata kunci break keluar dari sebuah
loop. Di bawah ini menyajikan program untuk mendemonstrasikan efek penggunaan
continue dalam satu lingkaran.
Introduction to Programming
Introduction to Programming
SIMPULAN
Operasi – operasi perulangan sendiri terbagi menjadi tiga bagian, yakni operasidenganWhile, Do
– While, dan For. Pada operasi while dan for memiliki kencederungan yang sama dimana
pengecekan kondisi dilakukan di awal perulangan. Sedangkan, padaoperasi perulangan dengan
Do – While pengecekan kondisi akan dilakukan di akhirperulangan. Selain itu, operasi
perulangan yang mendukung penuh fitur Jump Operation pada Java hanya operasi perulangan
dengan For. Hal ini dikarenakan operasi perulangan dengan for dibagi menjadi 4 fase dalam
struktur perulangannya.
Struktur pengulangan for memiliki proses incremental sendiri, berbeda dengan while dan do –
while yang harus mendefinisikan proses incremental didalam body loop.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke – 6
Exception Handling
LEARNING OUTCOMES
1. Peserta diharapkan mampu merancang dan aplikasikan algoritma yang benar untuk
menyelesaikan masalah menggunakan java
OUTLINE MATERI :
1. Exception Type
4. Rethrowing exception
ISI MATERI
A. Exception type
Exception adalah objek, dan objek didefinisikan menggunakan kelas. Kelas root untuk
Exception adalah java.lang.Throwable. Bagian sebelumnya menggunakan kelas
ArithmeticException dan InputMismatchException. Apakah ada jenis Exception lain
yang dapat Anda gunakan? Bisakah Anda mendefinisikan kelas Exception Anda sendiri?
Ya. Ada banyak kelas Exception yang telah ditentukan sebelumnya di Java API. Gambar
12.1 menunjukkan beberapa di antaranya, Anda akan belajar bagaimana mendefinisikan
kelas Exception Anda sendiri.
Kelas Throwable adalah akar dari kelas Exception. Semua kelas Exception Java mewarisi
secara langsung atau tidak langsung dari Throwable. Anda dapat membuat kelas
Exception Anda sendiri dengan memperluas Exception atau subkelas Exception. Kelas
Exception dapat diklasifikasikan menjadi tiga jenis utama: kesalahan sistem, Exception,
dan Exception runtime.
Introduction to Programming
• System Error dilempar oleh JVM dan direpresentasikan dalam kelas Kesalahan.
Kelas Kesalahan menjelaskan kesalahan sistem internal, meskipun kesalahan
seperti itu jarang terjadi. Jika ada, hanya sedikit yang dapat Anda lakukan selain
memberi tahu pengguna dan mencoba menghentikan program dengan anggun.
Contoh subclass Error tercantum dalam Tabel di bawah ini.
Introduction to Programming
Tabel 1.3 Runtime Exception
Introduction to Programming
didasarkan pada tiga operasi: mendeklarasikan exception, melempar exception, dan
menangkap exception, seperti yang ditunjukkan di bawah ini
a. Mendeklarasikan exception
Di Java, pernyataan yang saat ini sedang dieksekusi milik suatu metode.
Interpreter Java memanggil metode utama untuk mulai menjalankan program.
Setiap metode harus menyatakan jenis pengecualian yang dicentang yang
mungkin dilontarkannya. Ini dikenal sebagai mendeklarasikan pengecualian.
Karena kesalahan sistem dan kesalahan waktu proses dapat terjadi pada kode apa
pun, Java tidak mengharuskan Anda mendeklarasikan Kesalahan dan
RuntimeException (pengecualian yang tidak dicentang) secara eksplisit dalam
metode. Namun, semua pengecualian lain yang dilontarkan oleh metode harus
dideklarasikan secara eksplisit di header metode sehingga pemanggil metode
diberitahu tentang pengecualian tersebut. Untuk mendeklarasikan pengecualian
dalam suatu metode, gunakan kata kunci throws di header metode, seperti dalam
contoh ini:
Introduction to Programming
pengecualian, dipisahkan dengan koma, setelah melempar:
public void myMethod()
b. Throwing exception
Program yang mendeteksi kesalahan dapat membuat turunan dari jenis Exception
yang sesuai dan membuangnya. Ini dikenal sebagai melempar pengecualian.
Berikut ini contohnya: Misalkan program mendeteksi bahwa argumen yang
diteruskan ke metode melanggar kontrak metode (misalnya, argumen harus
nonnegatif, tetapi argumen negatif diteruskan); program dapat membuat instance
IllegalArgumentException dan membuangnya, sebagai berikut:
c. Catching exceptions
try {
statements; // Statements that may throw exceptions
}
Introduction to Programming
catch (Exception1 exVar1) {
handler for exception1;
} catch (Exception2 exVar2) {
handler for exception2;
}
...
catch (ExceptionN exVarN) {
handler for exceptionN;
}
Jika tidak ada Exception yang muncul selama eksekusi blok try, blok catch akan
dilewati.
Jika salah satu statement di dalam blok try mengeluarkan exception, Java
melewatkan statement yang tersisa di blok try dan memulai proses menemukan
kode untuk menangani pengecualian. Kode yang menangani Exception disebut
handle exception; itu ditemukan dengan menyebarkan exception ke belakang
melalui rantai pemanggilan metode, mulai dari metode saat ini. Setiap blok catch
diperiksa secara bergiliran, dari pertama hingga terakhir, untuk melihat apakah
jenis objek Exception adalah turunan dari kelas exception di blok catch. Jika
demikian, objek exception ditugaskan ke variabel yang dideklarasikan dan kode
di blok catch dieksekusi. Jika tidak ada handler yang ditemukan, Java keluar dari
metode ini, meneruskan Exception ke pemanggil metode, dan melanjutkan proses
yang sama untuk menemukan handler. Jika tidak ada handler yang ditemukan
dalam rantai metode yang dipanggil, program berakhir dan mencetak pesan
kesalahan pada konsol. Proses menemukan penangan disebut Catching exception.
Misalkan metode utama memanggil metode1, metode1 memanggil metode2,
metode2 memanggil metode3, dan metode3 melempar pengecualian, seperti yang
ditunjukkan pada Gambar 12.3. Pertimbangkan skenario berikut:
Introduction to Programming
i. Jika tipe Exception adalah Exception3, maka akan ditangkap oleh blok
catch untuk menangani Exception ex3 dalam metode2. pernyataan5
dilewati dan pernyataan6 dieksekusi.
iv. Jika tipe exception tidak tercakup dalam metode2, metode1, atau utama,
program berakhir dan pernyataan1 dan pernyataan2 tidak dieksekusi.
Introduction to Programming
C. The finally clause
Finally Clause selalu dieksekusi terlepas dari apakah Exception terjadi atau tidak.
Kadang-kadang, Anda mungkin ingin beberapa kode dieksekusi terlepas dari apakah
Exception terjadi atau di catch. Java memiliki klausa last yang dapat digunakan untuk
mencapai tujuan ini. Sintaks untuk Finally clause mungkin terlihat seperti ini:
try {
statements;
}
catch (TheException ex) {
handling ex;
} finally {
finalStatements;
}
Kode di finally block dieksekusi dalam semua keadaan, terlepas dari apakah exception
terjadi di blok coba atau ditangkap. Pertimbangkan tiga kemungkinan kasus:
1. Jika tidak ada exception yang muncul di blok try, Finalstatement dieksekusi dan
pernyataan berikutnya setelah pernyataan try dieksekusi.
2. Jika sebuah pernyataan menyebabkan Exception di blok try yang ditangkap di blok
catch, sisa pernyataan di blok try dilewati, blok catch dieksekusi, dan Finally clause
dieksekusi. Pernyataan berikutnya setelah pernyataan try dieksekusi.
3. Jika salah satu pernyataan menyebabkan Exception yang tidak tertangkap di blok
catch mana pun, pernyataan lain di blok try dilewati, Finally clause dieksekusi, dan
exception diteruskan ke pemanggil metode ini. Kode dalam Finally clause sering kali
untuk menutup file dan untuk membersihkan sumber daya. Finally block dijalankan
bahkan jika ada pernyataan kembali sebelum mencapai Finally block.
Introduction to Programming
D. Rethrowing exception
Java mengizinkan Exception handler untuk menampilkan kembali exception jika handler
tidak dapat memproses exception, atau hanya ingin membiarkan caller diberi tahu tentang
Exception tersebut. Sintaks untuk menampilkan Rethrow exception mungkin terlihat
seperti ini:
try {
statements;
throw ex;
Introduction to Programming
SIMPULAN
Pada pemrograman pada umumnya telah mendukung operasi – operasi Exception Handling.
Exception Handling merupakan operasi yang sangat penting dan wajib diterapkan dalam
pengembangan aplikasi yang berperan untuk menangkap dan menangani error yang terjadi
selama program dijalankan. Pada penerapannya dibutuhkan beberapa klausa sebagai struktur
utamanya, yakni try, catch, dan finally.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 7
Methods
LEARNING OUTCOMES
1. Peserta diharapkan mampu merancang dan aplikasikan algoritma yang benar untuk
menyelesaikan masalah menggunakan java
OUTLINE MATERI :
1. Defining Method
2. Calling a Method
4. Overloading method
Define method terdiri dari nama method, parameter, tipe nilai kembalian, dan isi. Sintaks
untuk Define method adalah sebagai berikut:
// Method body;
Mari kita lihat method yang didefinisikan untuk menemukan yang lebih besar antara dua
bilangan bulat. Method ini, bernama max, memiliki dua parameter int, num1 dan num2,
yang lebih besar dikembalikan oleh method. Gambar di bawah mengilustrasikan
komponen dari method ini
Method header menentukan modifier, return value type, nama method, dan parameter
method.
Sebuah method dapat mengembalikan nilai. returnValueType adalah tipe data dari nilai
yang dikembalikan oleh method. Beberapa method melakukan operasi yang diinginkan
tanpa mengembalikan nilai. Dalam hal ini, returnValueType adalah kata kunci void.
Misalnya, returnValueType tidak berlaku dalam method utama, serta di System.exit, dan
System.out.println. Jika suatu method mengembalikan nilai, itu disebut method return
Introduction to Programming
value; jika tidak, itu disebut void method. Variabel yang didefinisikan dalam header
method dikenal sebagai parameter formal atau parameter sederhana. Parameter seperti
placeholder: ketika suatu method dipanggil, Anda memberikan nilai ke parameter. Nilai
ini disebut sebagai parameter atau argumen aktual. Daftar parameter mengacu pada jenis
method, urutan, dan jumlah parameter. Nama method dan daftar parameter bersama-sama
membentuk tanda tangan method. Parameter adalah opsional; yaitu, suatu method
mungkin tidak mengandung parameter. Misalnya, method Math.random() tidak memiliki
parameter. Badan method berisi kumpulan pernyataan yang mengimplementasikan
method. Badan method dari method max menggunakan pernyataan if untuk menentukan
bilangan mana yang lebih besar dan mengembalikan nilai bilangan tersebut. Agar method
pengembalian nilai mengembalikan hasil, pernyataan pengembalian menggunakan kata
kunci return diperlukan. Method berakhir ketika pernyataan kembali dieksekusi. Agar
method pengembalian nilai mengembalikan hasil, pernyataan pengembalian
menggunakan kata kunci return diperlukan. Method berakhir ketika pernyataan kembali
dieksekusi. Agar method pengembalian nilai mengembalikan hasil, pernyataan
pengembalian menggunakan kata kunci return diperlukan. Method berakhir ketika
pernyataan kembali dieksekusi.
Calling a method
Dalam definisi metode, Anda menentukan apa yang harus dilakukan metode. Untuk
menjalankan metode, Anda harus memanggil atau invoke. Program yang memanggil
fungsi disebut pemanggil. Ada dua cara untuk memanggil sebuah metode, tergantung
pada apakah metode tersebut mengembalikan nilai atau tidak. Jika metode
mengembalikan nilai, panggilan ke metode biasanya diperlakukan sebagai nilai. Sebagai
contoh,
int larger = max(3, 4);
calls max(3, 4) dan memberikan hasil metode ke variabel yang lebih besar. Contoh lain
dari panggilan yang diperlakukan sebagai nilai adalah
Introduction to Programming
System.out.println(max(3, 4));
Jika suatu metode mengembalikan void, panggilan ke metode tersebut harus berupa
pernyataan. Misalnya, metode println mengembalikan void. Panggilan berikut adalah
pernyataan:
System.out.println("Selamat datang di Java!")
Program ini berisi metode main dan metode max. Metode main sama seperti metode
lainnya, kecuali metode ini dipanggil oleh JVM untuk memulai program.
Introduction to Programming
Header metode main selalu sama. Seperti yang ada di contoh ini, ini termasuk pengubah
public dan static, tipe nilai kembalian void, nama metode utama, dan parameter tipe
String[].
Pernyataan di main dapat memanggil metode lain yang didefinisikan di kelas yang berisi
metode main atau di kelas lain. Dalam contoh ini, metode main memanggil max(i, j),
yang didefinisikan dalam kelas yang sama dengan metode main.
Ketika metode max dipanggil (baris 6), nilai variabel i 5 diteruskan ke num1 dan nilai
variabel j 2 diteruskan ke num2 di metode max. Aliran kontrol ditransfer ke metode max
dan metode max dieksekusi. Ketika pernyataan kembali dalam metode max dieksekusi,
metode max mengembalikan kontrol ke pemanggilnya (dalam hal ini, pemanggil adalah
metode main). Proses ini diilustrasikan pada Gambar di bawah ini.
Kekuatan metode adalah kemampuannya untuk bekerja dengan parameter. Anda dapat
menggunakan println untuk mencetak string apa pun, dan max untuk menemukan
maksimum dua nilai int. Saat memanggil metode, Anda perlu memberikan argumen,
yang harus diberikan dalam urutan yang sama dengan parameter masing-masing dalam
tanda tangan metode. Ini dikenal sebagai asosiasi urutan parameter. Misalnya, metode
berikut mencetak pesan n berkali kali:
Introduction to Programming
System.out.println(message);
}
Anda dapat menggunakan nPrintln("Halo", 3) untuk mencetak Halo tiga kali. Pernyataan
nPrintln("Hello", 3) meneruskan parameter string aktual Hello ke pesan parameter,
meneruskan 3 ke n, dan mencetak Hello tiga kali. Namun, pernyataan nPrintln(3, "Halo")
akan salah. Tipe data 3 tidak cocok dengan tipe data untuk parameter pertama, pesan, dan
argumen kedua, Halo, tidak cocok dengan parameter kedua, n.
Saat Anda memanggil metode dengan argumen, nilai argumen diteruskan ke parameter.
Ini disebut sebagai nilai lewat. Jika argumennya adalah variabel daripada nilai literal,
nilai variabel diteruskan ke parameter. Variabel tidak terpengaruh, terlepas dari
perubahan yang dibuat pada parameter di dalam metode. Seperti yang diberikan dalam
Daftar di bawah ini, nilai x (1) diteruskan ke parameter n untuk memanggil metode
kenaikan (baris 5). Parameter n bertambah 1 dalam metode (baris 10), tetapi x tidak
diubah apa pun yang dilakukan metode tersebut.
Introduction to Programming
C. Overloading method
Metode max yang digunakan sebelumnya hanya berfungsi dengan tipe data int. Tetapi
bagaimana jika Anda perlu menentukan mana dari dua angka floating-point yang
memiliki nilai maksimum? Solusinya adalah membuat metode lain dengan nama yang
sama tetapi parameternya berbeda, seperti yang ditunjukkan pada kode berikut:
return num1;
else
return num2;
Jika Anda memanggil max dengan parameter int, metode max yang mengharapkan
parameter int akan dipanggil; dan jika Anda memanggil max dengan parameter double,
metode max yang mengharapkan parameter double akan dipanggil. Ini disebut sebagai
metode overloading; yaitu, dua metode memiliki nama yang sama tetapi daftar parameter
yang berbeda dalam satu kelas. Kompiler Java menentukan metode mana yang akan
digunakan berdasarkan tanda tangan metode
Daftar di bawah ini adalah program yang menciptakan tiga metode. Yang pertama
menemukan bilangan bulat maksimum, yang kedua menemukan ganda maksimum, dan
yang ketiga menemukan maksimum di antara tiga nilai ganda. Ketiga metode tersebut
diberi nama max
Introduction to Programming
D. The scope variable
Variabel yang didefinisikan di dalam metode disebut sebagai variabel lokal. Ruang
lingkup variabel lokal dimulai dari deklarasinya dan berlanjut hingga akhir blok yang
berisi variabel tersebut. Variabel lokal harus dideklarasikan dan diberi nilai sebelum
dapat digunakan. Parameter sebenarnya adalah variabel lokal. Cakupan parameter metode
mencakup keseluruhan metode. Variabel yang dideklarasikan di bagian tindakan awal
dari header for-loop memiliki cakupannya di seluruh loop. Namun, variabel yang
Introduction to Programming
dideklarasikan di dalam for-loop body memiliki ruang lingkup yang terbatas di loop body
dari deklarasi hingga akhir blok yang berisi variabel, seperti yang ditunjukkan pada
Gambar di bawah.
Anda dapat mendeklarasikan variabel lokal dengan nama yang sama di blok yang
berbeda dalam suatu metode, tetapi Anda tidak dapat mendeklarasikan variabel lokal dua
kali di blok yang sama atau di blok bersarang, seperti yang ditunjukkan pada Gambar di
bawah
Introduction to Programming
SIMPULAN
Pada pemrograman lebih lanjut perlu mempelajari tentang efisiensi dalam pembuatan program
dalam hal ini dapat dicapai dengan menggunakan method. Method yang merupakan kumpulan
baris proses membantu mengurangi penggunaan kode yang sama berkali-kali dan juga
membantu dalam pembentukan struktur program yang lebih rapi.
Pendefinisian method dengan nama yang sama dimungkinkan dan hal ini dikenal dengan nama
overloading method. Adapun yang harus menjadi perhatian adalah method signature yang harus
berbeda diantara method dengan nama sama tersebut.
Selain method yang juga harus diperhatikan adalah scope dari variabel. Dimana scope variabel
akan dimulai dari saat dideklarasikan sampai dengan di akhir blok tersebut.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 8
Array
LEARNING OUTCOMES
1. Peserta diharapkan mampu merancang dan aplikasikan algoritma yang benar untuk
menyelesaikan masalah menggunakan java
OUTLINE MATERI :
1. Array Basic
2. Copying arrays
4. Returning an array
Array digunakan untuk menyimpan kumpulan data, tetapi seringkali kita merasa lebih
berguna untuk menganggap array sebagai kumpulan variabel dengan tipe yang sama. Alih-
alih mendeklarasikan variabel individual, seperti number0, number1, . . . , dan number99,
Anda mendeklarasikan satu variabel array seperti angka dan menggunakan angka[0],
angka[1], . . . , dan angka[99] untuk mewakili variabel individu. Bagian ini memperkenalkan
cara mendeklarasikan variabel array, membuat array, dan memproses array menggunakan
indeks.
a. Declaring Array Variable.
or
double[] myList;
or
Introduction to Programming
b. Creating Arrays
Tidak seperti deklarasi untuk variabel tipe data primitif, deklarasi variabel array
tidak mengalokasikan ruang apapun dalam memori untuk array. Itu hanya
membuat lokasi penyimpanan untuk referensi ke array. Jika variabel tidak
mengandung referensi ke array, nilai variabel adalah null. Anda tidak dapat
menetapkan elemen ke array kecuali jika sudah dibuat. Setelah variabel array
dideklarasikan, Anda dapat membuat array dengan menggunakan operator new
dan menetapkan referensinya ke variabel dengan sintaks berikut:
Statement ini melakukan dua hal: (1) membuat array menggunakan new
elementType[arraySize] dan (2) memberikan referensi array yang baru dibuat ke
variabel arrayRefVar. Mendeklarasikan variabel array, membuat array, dan
menetapkan referensi array ke variabel dapat digabungkan dalam satu pernyataan
sebagai
atau
Introduction to Programming
Statement ini mendeklarasikan variabel array, myList, membuat array 10 elemen
bertipe ganda, dan memberikan referensinya ke myList. Untuk menetapkan nilai
ke elemen, gunakan sintaks
arrayRefVar[indeks] = nilai;
myList[0] = 5.6;
myList[1] = 4,5;
myList[2] = 3.3;
myList[3] = 13.2;
myList[4] = 4.0;
myList[5] = 34,33;
myList[6] = 34.0;
myList[7] = 45,45;
myList[8] = 99,993;
myList[9] = 11123;
Introduction to Programming
Gambar 1.1 Input Data Array
arrayRefVar[indeks];
Introduction to Programming
Variabel yang diindeks dapat digunakan dengan cara yang sama seperti variabel
biasa. Misalnya, kode berikut menambahkan nilai dalam myList[0] dan myList[1]
ke myList[2]:
myList[i] = i;
e. Array Initializers
Java memiliki notasi singkatan, yang dikenal sebagai penginisialisasi array, yang
menggabungkan deklarasi, pembuatan, dan inisialisasi array dalam satu
pernyataan menggunakan sintaks berikut:
Misalnya pernyataan
myList[0] = 1.9;
myList[1] = 2,9;
Introduction to Programming
myList[2] = 3.4;
myList[3] = 3.5;
double[] myList;
f. Processing Arrays
Saat memproses elemen array, Anda akan sering menggunakan perulangan for
karena salah satu dari dua alasan:
i. Semua elemen dalam array bertipe sama. Mereka diproses secara merata
dengan cara yang sama berulang kali menggunakan loop.
ii. Karena ukuran array diketahui, maka perulangan for digunakan secara
alami. Asumsikan bahwa array dibuat sebagai berikut: double[] myList =
new double[10];
Introduction to Programming
for (int i = 0; i < myList.length; i++) {
iii. Menampilkan array: Untuk mencetak array, Anda harus mencetak setiap
elemen dalam array menggunakan loop seperti berikut:
jumlah ganda = 0;
total += Daftarku[i];
Introduction to Programming
max = myList[i];
vi. Menemukan indeks terkecil dari elemen terbesar: Seringkali Anda perlu
mencari elemen terbesar dalam sebuah array. Jika sebuah array memiliki
beberapa elemen dengan nilai terbesar yang sama, temukan indeks terkecil
dari elemen tersebut. Misalkan array myList adalah {1, 5, 3, 4, 5, 5}.
Elemen terbesar adalah 5, dan indeks terkecil untuk 5 adalah 1. Gunakan
variabel bernama max untuk menyimpan elemen terbesar, dan variabel
bernama indexOfMax untuk menunjukkan indeks elemen terbesar.
Awalnya max adalah myList[0] dan indexOfMax adalah 0. Bandingkan
setiap elemen di myList dengan max dan perbarui max dan indexOfMax
jika elemen lebih besar dari max.
int indexOfMax = 0;
max = myList[i];
indexOfMax = i;
Introduction to Programming
berikut:
myList[i] = myList[j];
myList[j] = temp;
viii. Menggeser elemen: Terkadang Anda perlu menggeser elemen ke kiri atau
ke kanan. Berikut adalah contoh menggeser elemen satu posisi ke kiri dan
mengisi elemen terakhir dengan elemen pertama:
myList[i - 1] = myList[i];
Introduction to Programming
myList[myList.length - 1] = temp;
else if (monthNumber == 2)
...
else
Introduction to Programming
2. Copying arrays.
Seringkali, dalam sebuah program, Anda perlu menduplikasi array atau bagian dari array.
Dalam kasus seperti itu, Anda dapat mencoba menggunakan pernyataan penetapan (=),
sebagai berikut:
list2 = list1;
Namun, pernyataan ini tidak menyalin isi array yang direferensikan oleh list1 ke list2,
melainkan hanya menyalin nilai referensi dari list1 ke list2. Setelah pernyataan ini, list1 dan
list2 mereferensikan array yang sama, seperti yang ditunjukkan pada Gambar di bawah.
Array yang sebelumnya direferensikan oleh list2 tidak lagi direferensikan; itu menjadi
sampah, yang akan secara otomatis dikumpulkan oleh Java Virtual Machine. Proses ini
disebut pengumpulan sampah.
Di Java, Anda dapat menggunakan assignment Statement untuk menyalin variabel tipe data
primitif, tetapi bukan array. Menetapkan satu variabel array ke variabel array lain sebenarnya
menyalin satu referensi ke referensi lain dan membuat kedua variabel menunjuk ke lokasi
memori yang sama. Ada tiga cara untuk menyalin array:
Introduction to Programming
3. Gunakan metode kloning untuk menyalin array.
Anda dapat menulis loop untuk menyalin setiap elemen dari array sumber ke elemen yang
sesuai dalam array target. Kode berikut, misalnya, menyalin sourceArray ke targetArray
menggunakan for loop:
targetArray[i] = sourceArray[i];
}
Pendekatan lain adalah dengan menggunakan metode arraycopy di kelas java.lang.System
untuk menyalin array daripada menggunakan loop. Sintaks untuk arraycopy adalah:
Parameter srcPos dan tarPos masing-masing menunjukkan posisi awal di sourceArray dan
targetArray. Jumlah elemen yang disalin dari sourceArray ke targetArray ditunjukkan oleh
panjangnya. Misalnya, Anda dapat menulis ulang loop menggunakan pernyataan berikut:
Metode arraycopy tidak mengalokasikan ruang memori untuk array target. Array target harus
sudah dibuat dengan ruang memori yang dialokasikan. Setelah penyalinan terjadi,
targetArray dan sourceArray memiliki konten yang sama tetapi lokasi memori independen.
Introduction to Programming
3. Passing arrays to method
Sama seperti Anda dapat meneruskan nilai tipe primitif ke metode, Anda juga bisa
meneruskan array ke metode. Misalnya, metode berikut menampilkan elemen dalam
array int:
nilai referensi ini diteruskan ke metode. Secara semantik, ini dapat digambarkan sebagai
pass-by-sharing, yaitu array dalam metode ini sama dengan array yang dilewatkan. Jadi,
jika Anda mengubah array dalam metode, Anda akan melihat perubahan di luar metode.
Ambil kode berikut, misalnya:
public class TestArrayArguments {
Introduction to Programming
int x = 1; // x represents an int value
Introduction to Programming
Gambar 1.3 Stack Heap.
4. Returning an array
Anda dapat melewatkan array saat menjalankan metode. Sebuah metode juga dapat
mengembalikan sebuah array. Misalnya, metode berikut mengembalikan array yang
merupakan kebalikan dari array lain.
Baris 2 membuat hasil array baru. Baris 4–7 menyalin elemen dari array list ke array result.
Baris 9 mengembalikan array. Misalnya, pernyataan berikut mengembalikan array baru list2
dengan elemen 6, 5, 4, 3, 2, 1:
Introduction to Programming
5. Two dimensional Array
Mendeklarasikan Variabel Array Dua Dimensi dan Membuat Array Dua Dimensi Sintaks
untuk mendeklarasikan array dua dimensi adalah sebagai berikut:
Sebagai contoh, berikut adalah bagaimana Anda akan mendeklarasikan matriks variabel
array dua dimensi dengan nilai int:
int[][] matrix;
atau
int matriks[][]; // Gaya ini diperbolehkan, tetapi tidak disukai
Anda dapat membuat larik dua dimensi dengan nilai int 5-kali-5 dan menetapkannya ke
matriks menggunakan sintaks ini: matrix = new int[5][5]; Dua subskrip digunakan dalam
larik dua dimensi: satu untuk baris, dan yang lainnya untuk kolom. Kedua subskrip
tersebut dengan mudah disebut indeks baris dan indeks kolom. Seperti dalam array satu
dimensi, indeks untuk setiap subskrip bertipe int dan dimulai dari 0
Introduction to Programming
Gambar 1.6 Code Equivalent Input 2 dimensional array
a. Inisialisasi array dengan nilai input. Loop berikut menginisialisasi array dengan
nilai input pengguna:
java.util.Scanner input = new java.util.Scanner(System.in);
matrix[row][column] = input.nextInt();
Introduction to Programming
b. Inisialisasi array dengan nilai acak. Loop berikut menginisialisasi array dengan
nilai acak antara 0 dan 99:
for (int row = 0; row < matrix.length; row++) {
c. Mencetak array. Untuk mencetak array dua dimensi, Anda harus mencetak setiap
elemen dalam array menggunakan loop seperti loop berikut:
} System.out.println();
total += matrix[row][column];
Introduction to Programming
e. Menjumlahkan elemen dari kolom. Untuk setiap kolom, gunakan variabel
bernama total untuk menyimpan jumlahnya. Tambahkan setiap elemen di kolom
menjadi total menggunakan loop seperti ini:
for (int column = 0; column < matrix[0].length; column++) {
int total = 0;
total += matrix[row][column];
f. Row mana yang memiliki jumlah terbesar? Gunakan variabel maxRow dan
indexOfMaxRow untuk melacak jumlah dan indeks terbesar dari baris. Untuk
setiap baris, hitung jumlah dan perbarui maxRow dan indexOfMaxRow jika
jumlah baru lebih besar.
int maxRow = 0;
int indexOfMaxRow = 0;
maxRow += matrix[0][column];
int totalOfThisRow = 0;
totalOfThisRow += matrix[row][column];
Introduction to Programming
if (totalOfThisRow > maxRow) {
maxRow = totalOfThisRow;
indexOfMaxRow = row;
g. Random shuffling : Bagaimana Anda mengacak semua elemen dalam array dua
dimensi? Untuk melakukannya, untuk setiap elemen matriks[i][j], buat secara
acak indeks i1 dan j1 dan tukar matriks[i][j] dengan matriks[i1][j1], sebagai
berikut:
for (int i = 0; i < matrix.length; i++) {
matrix[i][j] = matrix[i1][j1];
matrix[i1][j1] = temp; } }
Anda dapat meneruskan array dua dimensi ke suatu metode sama seperti Anda meneruskan
array satu dimensi. Anda juga dapat mengembalikan array dari suatu metode. Coding di
bawah ini memberikan contoh dengan dua metode. Metode pertama, getArray(),
Introduction to Programming
mengembalikan array dua dimensi dan metode kedua, sum(int[][] m), mengembalikan jumlah
semua elemen dalam matriks.
Metode getArray meminta pengguna memasukkan nilai untuk array(baris 11-24) dan
mengembalikan array (baris 23).
Introduction to Programming
Metode sum (baris 26–35) memiliki argumen array dua dimensi. Anda dapat memperoleh
jumlah baris menggunakan m.length (baris 28), dan jumlah kolom dalam baris tertentu
menggunakan m[row].length (baris 29).
Introduction to Programming
SIMPULAN
Penggunaan variabel dengan jumlah yang banyak dan tipe data yang sama terkadang diperlukan
dalam pembuatan sebuah program. Untuk menangani hal tersebut maka dapat digunakan array.
Variabel array berisi referensi ke array. Akan tetapi, array yang bersifat statis ini tidak cukup
baik dalam mengelola aplikasi transaksional dikarenakan data transaksional akan bersifat
dinamis dan terus bertambah oleh karena itu perlu mempelajari array dinamis, yakni ArrayList
dan Vector. Untuk penggunaan yang lebih aman dengan adanya fitur sinkronisasi maka
disarankan untuk dapat menerapkan Vector dalam pengembangan aplikasi nantinya
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 9
Sorting
LEARNING OUTCOMES
1. Peserta diharapkan mampu merancang dan aplikasikan algoritma yang benar untuk
menyelesaikan masalah menggunakan java
OUTLINE MATERI :
1. Insertion Sort
2. Bubble Sort
3. Merge Sort
4. Quick Sort
ISI MATERI
A. Insertion Sort
list[0..i] is sorted.
Introduction to Programming
Introduction to Programming
Metode insertionSort(int[] list) mengurutkan array elemen int. Metode ini
diimplementasikan dengan loop for bersarang. Loop luar (dengan variabel kontrol loop i)
(baris 4) diulang untuk mendapatkan sublist terurut, yang berkisar dari list[0] hingga
list[i]. Loop dalam (dengan variabel kontrol loop k) menyisipkan list[i] ke dalam sublist
dari list[0] hingga list[i−1].
Untuk lebih memahami metode ini, lacak dengan pernyataan berikut:
int[] list = {1, 9, 4, 6, 5, −4};
InsertionSort.insertionSort(list);
Algoritma Insertion Sort yang disajikan di sini mengurutkan daftar elemen dengan
berulang kali memasukkan elemen baru ke dalam array parsial yang diurutkan hingga
seluruh array diurutkan. Pada iterasi ke-k, untuk sort elemen ke dalam array berukuran k,
mungkin diperlukan k perbandingan untuk menemukan posisi sort dan k bergerak untuk
sort elemen. Misalkan T(n) menyatakan kompleksitas untuk jenis sort, dan c menyatakan
jumlah total operasi lain seperti penugasan dan perbandingan tambahan dalam setiap
iterasi. Jadi
Oleh karena itu, kompleksitas dari algoritma insertion-sort adalah O(n2 ). Oleh karena itu,
jenis seleksi dan penyisipan memiliki kompleksitas waktu yang sama
B. Bubble Sort
Algoritma bubble-sort membuat beberapa lintasan melalui array. Pada setiap lintasan,
pasangan tetangga yang berurutan dibandingkan. Jika pasangan dalam urutan menurun,
nilainya ditukar; jika tidak, nilainya tetap tidak berubah. Teknik ini disebut bubble sort
atau sinking sort karena nilai yang lebih kecil secara bertahap "menggelembung" ke atas
dan nilai yang lebih besar tenggelam ke bawah. Setelah pass pertama, elemen terakhir
menjadi yang terbesar dalam array. Setelah lintasan kedua, elemen kedua hingga terakhir
Introduction to Programming
menjadi yang terbesar kedua dalam larik. Proses ini dilanjutkan sampai semua elemen
diurutkan. Gambar 23.3a menunjukkan lintasan pertama dari bubble sort pada larik enam
elemen (2 9 5 4 8 1). Bandingkan elemen pada pasangan pertama (2 dan 9) dan tidak
diperlukan swap karena sudah berurutan. Bandingkan elemen pada pasangan kedua (9
dan 5) dan tukar 9 dengan 5 karena 9 lebih besar dari 5. Bandingkan elemen pada
pasangan ketiga (9 dan 4) dan tukar 9 dengan 4. Bandingkan elemen pada pasangan
keempat ( 9 dan 8) dan tukar 9 dengan 8. Bandingkan elemen pada pasangan kelima (9
dan 1) dan tukar 9 dengan 1. Pasangan yang dibandingkan disorot dan angka yang sudah
diurutkan dicetak miring pada Gambar 23.3. Untuk demo interaktif tentang cara kerja
bubble sort, kunjungi visualgo.com
Pass pertama menempatkan angka terbesar (9) sebagai yang terakhir dalam array. Pada
lintasan kedua, seperti yang ditunjukkan pada Gambar b, Anda membandingkan dan
mengurutkan pasangan elemen secara berurutan. Tidak perlu mempertimbangkan
pasangan terakhir karena elemen terakhir dalam array sudah menjadi yang terbesar. Pada
lintasan ketiga, seperti yang ditunjukkan pada Gambar c, Anda membandingkan dan
mengurutkan pasangan elemen secara berurutan kecuali dua elemen terakhir karena
keduanya sudah berurutan. Jadi, pada lintasan ke-k, Anda tidak perlu mempertimbangkan
elemen k - 1 terakhir karena sudah dipesan. Algoritma untuk semacam gelembung
dijelaskan dalam Daftar di bawah ini
Introduction to Programming
Perhatikan jika tidak ada pertukaran yang terjadi dalam suatu lintasan, maka lintasan
berikutnya tidak perlu dilakukan karena semua elemen sudah diurutkan.
Contoh
Introduction to Programming
Dalam kasus terbaik, algoritma Bubble Sort hanya membutuhkan lintasan pertama untuk
menemukan bahwa array sudah diurutkan—tidak diperlukan lintasan berikutnya. Karena
jumlah perbandingan adalah n - 1 pada lintasan pertama, waktu kasus terbaik untuk
bubble sort adalah O(n). Dalam kasus terburuk, algoritma bubble-sort membutuhkan n - 1
lintasan. Lintasan pertama membuat n - 1 perbandingan, lintasan kedua membuat n - 2
perbandingan, dan seterusnya; pass terakhir membuat 1 perbandingan. Jadi, jumlah total
perbandingan adalah sebagai berikut:
Oleh karena itu, waktu terburuk untuk bubble sort adalah O(n2 )
C. Merge Sort
Introduction to Programming
gabungkan (2 4 5 9) dengan (1 6 7 8) ke dalam larik terurut baru (1 2 4 5 6 7 8 9).
D. Quick Sort
Quick Sort berfungsi sebagai berikut: Algoritme memilih elemen, yang disebut pivot,
dalam array. Ini membagi array menjadi dua bagian sehingga semua elemen di bagian
pertama kurang dari atau sama dengan pivot, dan semua elemen di bagian kedua lebih
besar dari pivot. Algoritma quick-sort kemudian diterapkan secara rekursif ke bagian
pertama dan kemudian bagian kedua. Algoritma Quick Sort, yang dikembangkan oleh
CAR Hoare pada tahun 1962, dijelaskan dalam Daftar di bawah ini:
Introduction to Programming
Setiap partisi menempatkan pivot di tempat yang tepat. Ini membagi daftar menjadi dua
sublist seperti yang ditunjukkan pada gambar berikut.
Introduction to Programming
mengurutkan array. Yang kedua adalah metode pembantu (baris 6) yang mengurutkan
subarray dengan rentang yang ditentukan.
Introduction to Programming
Introduction to Programming
Metode partisi (baris 15–49) mempartisi daftar array[first..last] menggunakan pivot.
Elemen pertama dalam array parsial dipilih sebagai pivot (baris 16). Awalnya, poin
rendah ke elemen kedua di subarray (baris 17) dan poin tinggi ke elemen terakhir di
subarray (baris 18). Mulai dari kiri, metode mencari maju dalam larik untuk elemen
pertama yang lebih besar dari pivot (baris 22–23), kemudian mencari dari kanan ke
belakang untuk elemen pertama dalam larik yang kurang dari atau sama dengan poros
(baris 26-27). Ia kemudian menukar dua elemen ini dan mengulangi operasi pencarian
dan pertukaran yang sama sampai semua elemen dicari dalam loop while (baris 20–35).
Metode mengembalikan indeks baru untuk pivot yang membagi subarray menjadi dua
bagian jika pivot telah dipindahkan (baris 44). Jika tidak, ia mengembalikan indeks asli
untuk pivot (baris 47). Gambar dibawah mengilustrasikan cara mempartisi array (5 2 9 3
8 4 0 1 6 7). Pilih elemen pertama, 5, sebagai pivot. Awalnya, rendah adalah indeks yang
menunjuk ke elemen 2 dan tinggi menunjuk ke elemen 7, seperti yang ditunjukkan pada
Gambar a. Majukan indeks maju rendah untuk mencari elemen pertama (9) yang lebih
besar dari pivot, dan pindahkan indeks tinggi ke belakang untuk mencari elemen pertama
(1) yang kurang dari atau sama dengan pivot, seperti yang ditunjukkan pada Gambar b .
Tukar 9 dengan 1, seperti yang ditunjukkan pada Gambar c. Lanjutkan pencarian dan
bergerak rendah untuk menunjuk ke elemen 8 dan tinggi untuk menunjuk ke elemen 0,
seperti yang ditunjukkan pada Gambar d. Tukar elemen 8 dengan 0, seperti yang
ditunjukkan pada Gambar e. Terus bergerak rendah sampai melewati tinggi, seperti yang
ditunjukkan pada Gambar f. Sekarang semua elemen diperiksa. Tukar pivot dengan
elemen 4 pada indeks tinggi. Partisi terakhir ditunjukkan pada Gambar g. Indeks pivot
dikembalikan ketika metode selesai. Untuk demo interaktif tentang cara kerja partisi,
kunjungi liveexample.pearsoncmg.com/dsanimation/QuickSortNeweBook.
Introduction to Programming
Untuk mempartisi array dengan n elemen, dibutuhkan n perbandingan dan n gerakan
dalam kasus terburuk. Jadi, waktu yang diperlukan untuk partisi adalah O(n). Dalam
kasus terburuk, pivot membagi array setiap kali menjadi satu subarray besar dengan array
lainnya kosong. Ukuran subarray besar adalah satu kurang dari yang sebelum dibagi.
Algoritma membutuhkan (n - 1) + (n - 2) + g + 2 + 1 = O(n2 ) waktu. Dalam kasus
terbaik, pivot membagi array setiap kali menjadi dua bagian dengan ukuran yang hampir
sama. Misalkan T(n) menyatakan waktu yang diperlukan untuk menyortir sebuah array
dengan n elemen menggunakan quick sort. Jadi,
Introduction to Programming
Rata-rata, pivot tidak akan membagi array menjadi dua bagian dengan ukuran yang sama
atau satu bagian kosong setiap kali. Secara statistik, ukuran kedua bagian sangat dekat.
Oleh karena itu, waktu rata-ratanya adalah O(n logn). Analisis kasus rata-rata yang tepat
berada di luar cakupan buku ini. Penggabungan dan pengurutan cepat menggunakan
pendekatan membagi-dan-menaklukkan. Untuk pengurutan gabungan, sebagian besar
pekerjaannya adalah menggabungkan dua subdaftar, yang terjadi setelah subdaftar
diurutkan. Untuk quick sort, sebagian besar pekerjaan adalah mempartisi daftar menjadi
dua subdaftar, yang dilakukan sebelum subdaftar diurutkan. Merge sort lebih efisien
daripada quick sort dalam kasus terburuk, tetapi keduanya sama-sama efisien dalam kasus
rata-rata. Merge sort membutuhkan array sementara untuk menyortir dua subarray. Quick
sort tidak memerlukan ruang array tambahan. Dari pada merge sort.
Introduction to Programming
SIMPULAN
Algoritma pengurutan dasar terbagi menjadi 3 algoritma, yakni bubble sort, selection sort, dan
insertion sort. Algoritma bubble dan selection akan menghasilkan nilai terbesar atau terkecil
untuk setiap putarannya. Algoritma insertion akan menyisipkan element ke dalam sublist sesuai
dengan posisinya.
Algoritma pengurutan tingkat lanjut yang dibahas adalah merge sort. Dalam merge sort ini
terdapat dua bagian yaitu split, dimana menjadi dua sub list dan kemudian bagian merge yaitu
berfungsi menggabungkan kembali sublist tersebut.
Introduction to Programming
DAFTAR PUSTAKA
Introduction to Programming
LECTURE NOTES
Introduction to Programming
Week ke - 10
1. Peserta diharapkan dapat mengerti dasar dasar java programming dan konsep objek oriented
Outline Materi
2. Object
3. Class
4. Class Relationship
a. Association
b. Inheritance
6. Access modifier
ISI MATERI
1) Introduction to object oriented programming
Konsep pemrograman berbasis objek atau OOP merupakan salah satu bentuk paradigma
pemrograman. Paradigma pemrograman terbagi menjadi 2, yakni :
Pada paradigma pemrograman ini struktur kode pada pembuatan program berupa fungsi –
fungsi atau juga biasa disebut sebagai modular programming dimana penjalanan program
melalui pemanggilan fungsi main sebagai fungsi utama dan akan menangani pemanggilan
fungsi lainnya.
Pada paradigma pemrograman ini struktur kode pada pembuatan program berupa kelas dan
objek dimana di dalam kelas terdapat fungsi – fungsi dan variabel – variabel yang baru dapat
diakses ketika telah dibuat objek dari kelas tersebut. Proses berjalannya dimulai dengan
pemanggilan fungsi main yang wajib bersifat static dan public agar dapat dijalankan tanpa
membuat objek dari kelas terlebih dahulu kemudian diikuti dengan pembuatan objek – objek
yang nantinya akan memanggil fungsi – fungsi untuk dijalankan.
Class Abstraction
Object dalam pemrograman harus memiliki method / behavior, properti, tipe dan identitas.
Semua data dan fungsi terbungkus dalam class dan object, sebagai contoh sebuah object
Circle (lingkaran) mempunyai data radius. Sebuah Circle dapat memiliki behavior seperti
method getArea() , getPerimeter(), dan setRadius(radius).Class abstraction adalah pemisahan
Introduction to Programming
antara implementasi class dengan penggunaan sebuah class. Detail dari implementasi di
enkapsulasi dan disembunyikan dari user. Fungsi dari class dapat diketahui oleh user tetapi
implementasi rinci dari class tersebut disembunyikan dari user, hal inilah yang disebut
dengan class encapsulation
Dengan adanya penerapan konsep pemrograman berbasis objek maka diperoleh beberapa
keuntungan sebagai berikut:
2. Mendukung penggunaan kembali kode yang sudah ada tanpa perlu membuatnya kembali.
Dengan adanya pemrograman berbasis objek maka sebuah proses dapat dinyatakan
sebagai sebuah fungsi atau method dan ketika ingin melakukan proses tersebut
pengembang tidak perlu lagi membuat kode yang sama untuk subsistem yang berbeda
namun cukup dengan pembuatan objek dari kelas tersebut dan memanggil fungsinya.
Introduction to Programming
perubahan yang dibuat.
2) Object
Sebuah object menggambarkan sebuah entitas dalam dunia nyata. Sebuah object juga
merupakan sebuah produk dari sebuah lass. Object memiliki property dan behavior. Method
dan property hanya dapat diakses ketika object dari kelas telah dibuat atau didalam kelas itu
sendiri. Sebagai contoh sebuah object bernama circle1 mempunyai radius 1 dan circle2
mempunyai radius 25. Radius yang dimiliki oleh object Circle merupakan karakteristik yang
menjelaskan object circle tersebut. Adapun behavior dari sebuah object didefinisikan dengan
method.
1. Deklarasi
Proses ini terjadi ketika objek tersebut di deklarasi namun belum dibuat objeknya.
2. Instansiasi
Proses ini terjadi dengan adanya keyword “new” yang artinya membuat objek dari
kelas tersebut.
3. Inisialisasi
Proses ini terjadi dengan pemanggilan constructor yang berguna untuk
menginisialisasi nilai property pada objek dari kelas tersebut.
3) Class
Sebuah class mendefinisikan property dan behavior dari object. Object sendiri
merepresentasikan sebuah entitas dalam dunia nyata. Class dapat digambarkan sebagai
sebuah kumpulan data dan method dalam sebuah unit untuk tujuan tertentu. Class juga
merupakan sebuah template, blueprint ataupun kontrak yang menjelaskan data dan method
yang akan dimiliki oleh sebuah object. Sebagai contoh sebuah Circle (lingkaran) mempunyai
Introduction to Programming
sebuah radius (jari – jari) sebagai data dan mempunyai method getArea, getPerimeter dan
setRadius.
3. Constructor merupakan method yang pertama kali dijalankan pada saat object dari
kelas tersebut dibuat yang berguna untuk inisialisasi nilai pada property dalam kelas.
Constructor merupakan method yang tidak memiliki return value dan wajib bersifat public
agar dapat diakses dari luar kelas sehingga object dari kelas tersebut dapat dibuat.
4. Destructor merupakan salah satu komponen yang dimiliki oleh kelas yang berupa
method yang akan dijalankan pada saat objek akan dihancurkan (destroy). Namun, method
ini tidak dapat dibuat di dalam kelas karena proses ini di kelola oleh kelas GarbageCollector
pada Java
//Constructor
Statement;
//Property
Introduction to Programming
//behavior
Statement;
return Data_To_Be_Returned;
Pada program di atas terdiri dari sebuah class yang bernama SimpleCircle dengan data yang
dimiliki radius bertipe double, serta memiliki 1 constructor dengan nama yang sama dengan
class, dan 1 method bernama getArea dengan tipe double. Pada main program didekalarasikan
sebuah object bernama circle1 dengan tipe SimpleCircle. Untuk mengakses nilai dari data radius
maka digunakan circle1.radius dan untuk menggunakan fungsi getArea maka dipanggil dengan
cara circle1.getArea().
Introduction to Programming
Contructor dipanggil untuk membuat sebuah object baru. Selain itu sebuah constructor dapat
melakukan tugas apapun, namun sebenarnya constructor di desain untuk melakukan inisialisasi
awal. Constructor merupakan method yang pertama kali dipanggil saat object di inisiasi.
Constructor tidak memiliki nilai balik dan harus mempunyai nama yang sama dengan class
tersebut.
Variabel di dalam sebuah object terikat dalam object tertentu dari class tersebut, sehingga tidak
dapat digunakan oleh object lain walaupun berada dalam class yang sama. Untuk mengatasi hal
tersebut maka dapat digunakan static variabel. Static variabel menyimpan nilai dari variabel pada
lokasi memory yang umum. Karena lokasi umum ini, sehingga jika sebuah object mengubah
nilai dari static variabel, maka semua object pada class yang sama juga terpengaruh.
Selain variabel static, java juga mendukung pemakaian method static. Sebelum menggunakan
variabel ataupun method static, maka perlu ditambahkan modifier static pada saat deklarasi
variabel ataupun method tersebut. Untuk constant dapat digunakan oleh semua object dalam
class tersebut. Namun constant harus di deklarasikan sebagai final static.
Introduction to Programming
Perhatikan contoh di bawah ini
Output
Pada contoh program di atas terdapat sebuah class dengan nama CircleWithStaticMember. Class
tersebut memiliki dua data yaitu radius bertipe double, dan sebuah static variabel bernama
numberofObjects dengan tipe int dan diberikan nilai awal 0. Terdapat dua buah constructor, 1
method dengan tipe double dan 1 method static.
Introduction to Programming
Sebelum object di create isi numberofObject adalah 0. Saat object c1 di buat maka nilai variabel
static numberofObject menjadi 1. Dikarenakan variabel tersebut adalah variabel static, maka
nilainya tetap digunakan saat object c2 di buat, sehingga nilainya menjadi 2. Variabel lainnya
yaitu radius nilainya akan sesuai dengan nilai pada object masing masing.
4) Class relationship
a. Association
Dari contoh di bawah ini terlihat bahwa seorang student dapat mengambil banyak
course dan seorang faculty member mengajar paling banyak 3 course
(matakuliah). Sebuah course dapat memiliki 5 sampai dengan 60 student dan
diajar hanya oleh seorang faculty member.
b. Inheritance
Inheritance (Pewarisan) adalah sebuah mekanisme untuk mendefinisikan class
baru dari class yang sudah ada. Adapun yang diwariskan dari class induk (super
class) ke class anak (sub class) adalah property dan behavior . Pewarisan ini
ditandai dengan penggunaan keyword extends pada kelas yang diwariskan
sehingga secara langsung menspesifikasikan kelas yang menjadi kelas induknya.
Introduction to Programming
Metode ini bertujuan untuk mengurangi redudansi sehingga pembuatan fungsi
tersebut cukup dibuat dikelas induk dan akan diwariskan ke kelas anak. Pada
diagram dibawah ini terlihat proses pewarisan dari class induk (super class) yaitu
GeometricObject ke class turunan yaitu Circle dan Rectangle. Pada diagram di
bawah pewarisan ditandai dengan notasi segitiga yang mengarah ke class induk.
Class Diagram di bawah ini menjelaskan lebih rinci mengenai pewarisaan dari
class GeometricObject ke class turunan yaitu Circle dan Rectangle. Class Circle
mendapatkan semua data field dan method yang bisa diakses dari
GeometricObject. Sebagai tambahan, class Circle memiliki data yang baru yaitu
radius dan method yang get dan set. Circle juga memiliki method getArea(),
getPerimeter() dan getDiameter() untuk mengembalikan nilai area, perimeter dan
diameter dari circle. Class turunan lainnya yaitu Rectangle juga mendapatkan
semua data field dan method dari class GeometricObject. Sebagai tambahan class
Rectangle juga memiliki data field baru yaitu width dan height serta method get
dan set. Selain itu juga memiliki method getArea() dan getPerimeter() untuk
mengembalikan nilai area dan perimeter dari Rectangle.
Introduction to Programming
Gambar 1.3 Example Inheritance
Class GeometricObject
Introduction to Programming
Berikut ini adalah Class Circle yang merupakan class turunan dari Class
GeometricObject. Keyword extends (baris 1) menjelaskan bahwa class Circle
merupakan class turunan dari class GeometricObject dan mewarisi method
getColor, setColor, isFilled, setFilled dan toString dari class GeometricObject.
Constructor Circle (double radius, String color, Boolean filled) di jalankan dengan
memanggil method setColor dan setFilled untuk menentukan property color dan
filled (baris 11 – 12). Method setColor dan setFiller diwariskan oleh
GeometricObject ke class Circle. Dikarenakan data color dan filled bersifat
private dan tidak diwariskan ke class turunannya, maka cara satu satunya adalah
dengan menggunakan method setColor dan setFilled yang
Introduction to Programming
diturunkan.
Berikut ini adalah Class Rectangle yang merupakan class turunan dari
GeometricObject. Keyword extends (baris 1) menginformasikan kepada compiler
bahwa class Rectangle merupakan class turunan dari GeometricObject yang juga
mewarisi method getColor, setColor, isFilled, dan toString.
Introduction to Programming
Berikut ini adalah main program yang membuat object Circle dan Rectangle, serta
memanggil method yang ada didalamnya. Method toString merupakan method
yang diturunkan oleh GeometricObject dan dipanggil di dalam object circle dan
rectangle.
Output:
• Data field dengan modifier private pada sebuah superclass tidak dapat
diakses dari luar class, karenanya tidak bisa digunakan secara langsung
oleh subclass. Namun untuk mengakses data tersebut dapat digunakan
melalui method dengan modifier public yang didefinisikan di dalam
superclass
Introduction to Programming
• Multiple inheritance dalam JAVA tidak dapat digunakan.
Composition adalah hubungan antara dua object dimana satu object terdiri dari
object lainnya. Composition adalah kasus khusus dalam hubungan aggregation.
Model aggregation mempunyai hubungan has-a (memiliki) dan menggambarkan
hubungan kepemilikan antara dua object. Object pemilik disebut sebagai
aggregating object dan classnya disebut sebagai aggregating class. Sedangkan
object lainnya disebut sebagai aggregated object dan classnya disebut sebagai
aggregated class.
Sebuah object dapat dimiliki oleh beberapa aggregating object. Jika sebuah object
secara khusus dimiliki oleh sebuah aggregating object, maka hubungan ini disebut
sebagai composition. Sebagai contoh “seorang student (mahasiswa) memiliki
nama” adalah sebuah hubugan composition antara class Name dan class Student.
Hubungan antara class Student dengan Address adalah aggregation karena
address tersebut dapat digunakan oleh student lain. Aggregation juga
dimungkinkan antar object di dalam class yang sama Setiap class yang terlibat
dapat memiliki multiplicity. Multiplicity dapat terdiri dari sebuah bilangan
ataupun rentang bilangan yang menjelaskan berapa banyak object dalam class
tersebut yang terlibat dalam hubungan terkait.
Introduction to Programming
Gambar 1.5 Aggregation and composition
Sebelum mempelajari polymorphism terdapat dua terminology yang akan digunakan yaitu
subtype dan supertype. Sebuah class akan mendefinisikan sebuah tipe. Sebuah tipe yang
didefinisikan oleh sebuah subclass disebut dengan subtype. Sebuah tipe yang didefinisikan
oleh superclass maka disebut dengan supertype. Dari contoh sebelumnya maka dapat
dikatakan bahwa Circle adalah subtype dari GeomettricObject dan GeometricObject adalah
supertype dari Circle. Polymorpshim ini memungkinkan sebuah object dari sebuah class
dapat digunakan oleh object dari superclass dimanapun dibutuhkan. Secara singkat dapat
dikatakan bahwa polymorphism memiliki arti sebuah pada supertype dapat merefer pada
object dari subtype.
Introduction to Programming
Output
Dynamic Binding
Sebuah method dapat diimplementasikan pada beberapa class selama masih dalam
turunannya, JVM yang akan menentukan method mana yang akan dijalankan. Sebuah
method dapat didefinisikan di superclass dan di override di subclass.
Introduction to Programming
Output
Method m (baris 9) menggunakan parameter dengan tipe object. m dapat dipanggil dengan
menggunakan object apa saja (contoh new GraduateStudent(), new Student(), newPerson(),
dan new Object() dalam baris 3 – 6) . saat method m(Object x) di jalankan, maka perintah
x.toString x dapat saja merupakan object dari GraduateStudent, Student, Person atau Object.
Masing – masing class tersebut mempunyai method toString tersendiri. Pada saat memanggil
m(new GraduateStudent) di baris ke 3 maka method toString yang ada dalam class Student
akan dipanggil. Pada saat m(new Student()) pada baris 4 dipanggil maka method toString
pada class Student yang akan dijalankan. Sedangkan pada saat m(new Person()) di panggil
maka method toString yang ada di class Person yang akan dijalankan. Terakhir saat m(new
Object()) yang dipanggil maka akan menjalankan method toString yang ada di class Object.
Compiler akan menjalankan method sesuai dengan tipe parameter, jumlah parameter, dan
urutan parameter.
6) Access modifier
Access Modifier merupakan pemberian tipe akses terhadap method, class, maupun property
untuk menyatakan jenis akses yang diberikan. Terdapat 4 jenis Access Modifier pada
pemrograman Java, yakni:
A. Private
Akses modifier ini membatasi pemberian akses sehingga komponen yang diberikan akses ini
hanya dapat diakses dari dalam kelas itu sendiri
Introduction to Programming
B. Protected
Akses modifier ini membatasi pemberian akses pada komponen sehingga komponen yang
diberikan akses ini hanya dapat diakses dari dalam kelas itu sendiri dan kelas turunannya.
C. Public
Akses modifier ini memungkinkan komponen yang berikan akses ini untuk dapat diakses dari
luar kelas itu melalui objek dari kelas itu.
D. Package
Akses modifier ini memungkinkan komponen yang diberikan akses ini untuk dapat diakses
dari luar kelas itu melalui objek dari kelas itu namun terbatas hanya pada package dimana
kelas tersebut di buat
Introduction to Programming
SIMPULAN
Dengan adanya pengembangan program berbasis OOP ini dapat diperoleh beberapa keuntungan
antara lain adanya pemodelan dari objek nyata, menggunakan kembali kode yang sudah ada,
meningkatkan fleksibilitas dalam memodifikasi program, dan membantu memudahkan dalam
memperbaiki program.
Hubungan antar class terdiri atas association, inheritance dan composition. Association sendiri
adalah hubungan antar dua class yang dapat juga memiliki multiplicity.Inheritance (Pewarisan)
adalah sebuah mekanisme untuk mendefinisikan class baru dari class yang sudah ada. Dalam hal
ini maka keyword extend digunakan. Composition adalah hubungan dimana satu object dapat
terdiri dari object lainnya.
Introduction to Programming