Ebook PemrogramanJava Organized
Ebook PemrogramanJava Organized
PEMROGRAMAN JAVA
Mohamad Yusuf
Hedie Kristiawan
Norbertus Tri Suswanto Saptadi
Hendri Julian Pramana
Agung Yuliyanto Nugroho
Nina Rahayu
Deden Rustiana
Gde Brahupadhya Subiksa
Eka Purnama Harahap
Mohammad Badrul
Alfredo Gormantara
Fahmi Fadillah Septiana
Yosep Bustomi
i
PEMROGRAMAN JAVA
Tim Penulis:
Mohamad Yusuf
Hedie Kristiawan
Norbertus Tri Suswanto Saptadi
Hendri Julian Pramana
Agung Yuliyanto Nugroho
Nina Rahayu
Deden Rustiana
Gde Brahupadhya Subiksa
Eka Purnama Harahap
Mohammad Badrul
Alfredo Gormantara
Fahmi Fadillah Septiana
Yosep Bustomi
ii
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa atas rahmat dan
karunia-Nya, sehingga buku "Pemrograman Java" ini dapat
diselesaikan dengan baik. Buku ini hadir sebagai panduan praktis dan
komprehensif bagi siapa pun yang ingin memulai atau mendalami
dunia pemrograman, khususnya menggunakan bahasa pemrograman
Java.
Pemrograman Java telah menjadi salah satu bahasa pemrograman
paling populer dan relevan di dunia. Fleksibilitas, portabilitas, dan
performanya yang tinggi menjadikan Java pilihan utama untuk
pengembangan aplikasi lintas platform, mulai dari aplikasi desktop,
web, hingga perangkat seluler berbasis Android. Oleh karena itu,
menguasai Java adalah langkah strategis bagi Anda yang ingin
berkarier di bidang teknologi informasi.
Dalam buku ini, kami menyajikan materi secara terstruktur,
dimulai dari konsep dasar hingga topik yang lebih mendalam. Anda
akan dipandu untuk memahami sintaksis dasar, konsep Object-
Oriented Programming (OOP), struktur data, hingga pengembangan
aplikasi yang lebih kompleks. Setiap bab dilengkapi dengan contoh-
contoh kode yang relevan dan mudah dipahami, serta latihan soal
untuk menguji pemahaman Anda.
Kami menyadari bahwa buku ini masih memiliki kekurangan.
Oleh karena itu, segala kritik dan saran yang membangun akan kami
terima dengan lapang dada demi perbaikan di masa mendatang.
Semoga buku ini dapat memberikan manfaat sebesar-besarnya bagi
para pembaca dan menjadi bekal berharga dalam perjalanan Anda
menjadi seorang programmer andal.
Terima kasih.
Selamat Membaca!
Penulis
iii
DAFTAR ISI
KATA PENGANTAR ....................................................................................iii
DAFTAR ISI .................................................................................................. iv
BAB 1 PENGENALAN PEMROGRAMAN JAVA....................................... 1
Pendahuluan ........................................................................................................ 2
Sejarah dan Filosofi Java ................................................................................ 2
Karakteristik Utama Java ............................................................................... 3
Level Bahasa Pemrograman Java ............................................................... 7
Komponen Utama JRE .................................................................................. 10
Sistem Penomoran Versi Java ................................................................... 12
Cara Memeriksa Versi JDK.......................................................................... 14
Peran Java Dalam Industri Teknologi ................................................... 15
Daftar Pustaka .................................................................................................. 17
Profil Penulis ..................................................................................................... 18
BAB 2 PERSIAPAN LINGKUNGAN PENGEMBANGAN JAVA .............19
Pengantar............................................................................................................ 20
Memahami Peran Java di Era Modern & AI ........................................ 21
Pengenalan IDE Modern Untuk Java...................................................... 22
Panduan Langkah Demi Langkah Untuk Menyiapkan IDE ......... 23
Daftar Pustaka .................................................................................................. 29
Profil Penulis ..................................................................................................... 30
BAB 3 STRUKTUR DASAR PROGRAM JAVA ........................................31
Pengantar............................................................................................................ 32
Struktur Umum Program Java .................................................................. 33
Fungsi Main() Dalam Java ........................................................................... 34
Komentar Dalam Java ................................................................................... 36
Statement dan Blok Kode Dalam Java ................................................... 38
Package dan Import Dalam Java .............................................................. 40
Konvensi Penulisan Dalam Java............................................................... 42
Penutup ............................................................................................................... 46
Daftar Pustaka .................................................................................................. 48
Profil Penulis ..................................................................................................... 50
BAB 4 TIPE DATA DAN VARIABEL DALAM JAVA .............................52
Pendahuluan ..................................................................................................... 53
iv
Identifier dan Reserved Word Pemrograman Java........................... 53
Tipe Data Pemrograman Java ................................................................... 57
Variabel Pada Pemrograman Java .......................................................... 65
Konstanta Pada Pemrograman Java ...................................................... 68
Daftar Pustaka .................................................................................................. 69
Profil Penulis ..................................................................................................... 70
BAB 5 OPERATOR DALAM JAVA ...........................................................71
Pendahuluan ..................................................................................................... 72
Operator Aritmatika ...................................................................................... 72
Operator Penugasan (Assignment) ......................................................... 73
Operator Pembanding (Relasional) ....................................................... 74
Operator Logika ............................................................................................... 76
Operator Inkrement dan Dekrement ...................................................... 77
Operator Bitwise .............................................................................................. 77
Operator Ternary ............................................................................................ 79
Operator Instanceof ....................................................................................... 80
Daftar Pustaka .................................................................................................. 81
Profil Penulis ..................................................................................................... 82
BAB 6 INPUT DAN OUTPUT (I/O) DASAR ..........................................83
Pendahuluan ..................................................................................................... 84
Output Dasar Dengan [Link] ............................................................ 86
Input Dasar Dengan Scanner ..................................................................... 89
Daftar Pustaka .................................................................................................. 93
Profil Penulis ..................................................................................................... 94
BAB 7 KONTROL ALUR PROGRAM DALAM JAVA.............................95
Pendahuluan ..................................................................................................... 96
Struktur Percabangan (Branching) ........................................................ 96
Struktur Perulangan (Loops).................................................................. 100
Kontrol Eksekusi Dalam Perulangan (Loop Control
Statements)…. ................................................................................................ 102
Kesimpulan ..................................................................................................... 104
Daftar Pustaka ............................................................................................... 105
Profil Penulis .................................................................................................. 106
BAB 8 METODE (FUNCTION) DALAM JAVA .................................... 107
Pengertian Metode Dalam Java ............................................................. 108
Sintaks Dasar Metode Dalam Java ....................................................... 111
v
Rekursi Metode Dalam Java .................................................................... 114
Menangani Error Pada Metode Dalam Java..................................... 116
Daftar Pustaka ............................................................................................... 118
Profil Penulis .................................................................................................. 119
BAB 9 PEMROGRAMAN BERORIENTASI OBJEK (OOP) DASAR . 120
Apa Itu OOP? .................................................................................................. 121
Definisi OOP Menurut Para Ahli & Sumber Akademik .............. 121
Sejarah dan Evolusi OOP .......................................................................... 122
OOP vs Pemrograman Prosedural ....................................................... 124
Contoh Ilustrasi ............................................................................................ 125
Bahasa Pemrograman OOP Populer ................................................... 125
Manfaat dan Aplikasi OOP ....................................................................... 127
Daftar Pustaka ............................................................................................... 129
Profil Penulis .................................................................................................. 131
BAB 10 INHERITANCE DAN POLYMORPHISM ................................. 132
Inheritance/Pewarisan.............................................................................. 133
Implementasi Pewarisan/Inheritance di Java................................ 134
Contoh 1: Rancangan Class Diagram .................................................. 134
Contoh 2: Rancangan Class Diagram .................................................. 137
Polymorphism ................................................................................................ 140
Daftar Pustaka ............................................................................................... 146
Profil Penulis .................................................................................................. 147
BAB 11 ENCAPSULATION & ACCESS MODIFIER ............................. 148
Pengertian Enkapsulasi ............................................................................ 149
Pengertian Access Modifier (Pengubah Akses) .............................. 149
Jenis-Jenis Access Modifier ...................................................................... 150
Tujuan dan Manfaat Enkapsulasi ......................................................... 152
Tujuan dan Manfaat Access Modifier................................................... 152
Hubungan Enkapsulasi dan Access Modifier ................................... 153
Contoh Implementasi Code Java........................................................... 153
Penerapan Dalam Sistem Nyata ............................................................ 155
Kelebihan dan Kekurangan Enkapsulasi .......................................... 156
Kesimpulan ..................................................................................................... 157
Daftar Pustaka ............................................................................................... 158
Profil Penulis .................................................................................................. 159
vi
BAB 12 INPUT/OUTPUT (FILE HANDLING) ...................................... 160
Pendahuluan .................................................................................................. 161
Konsep Dasar I/O......................................................................................... 162
Contoh Dasar I/O ......................................................................................... 163
Penanganan File dalam Pemrograman Java.................................... 163
Membaca Inputan User.............................................................................. 167
Pentingnya Try-With-Resources ............................................................ 169
Daftar Pustaka ............................................................................................... 171
Profil Penulis .................................................................................................. 172
BAB 13 UNIT TESTING DENGAN JUNIT............................................. 173
Apa Itu Unit Testing? .................................................................................. 174
Persiapan Lingkungan dan Struktur Dasar Tes JUnit ................. 175
Anotasi Esensial JUnit 5 ............................................................................ 178
Assertion JUnit: Memverifikasi Hasil Tes .......................................... 179
Teknik Pengujian Lanjutan Dengan JUnit 5..................................... 180
Kesimpulan ..................................................................................................... 182
Daftar Pustaka ............................................................................................... 184
Profil Penulis .................................................................................................. 185
vii
Konsep Dasar Manajemen Kesehatan
BAB 1
PENGENALAN
PEMROGRAMAN JAVA
Pendahuluan
Dalam era teknologi yang terus berkembang, bahasa pemrograman
menjadi landasan utama untuk menciptakan perangkat lunak, aplikasi,
dan sistem yang kita gunakan sehari-hari. Di antara banyak bahasa
pemrograman yang ada, Java telah terbukti sebagai salah satu yang
paling andal, populer, dan bertahan lama.
Java diperkenalkan pada tahun 1995 oleh Sun Microsystems, yang
sekarang merupakan bagian dari Oracle Corporation. Sejak itu, java
tidak hanya digunakan untuk membuat aplikasi desktop sederhana,
tetapi juga menjadi basis bagi berbagai sistem besar, mulai dari
aplikasi mobile android hingga layanan web berskala enterprise dan
solusi big data.
Apa yang membuat Java begitu istimewa? Jawabannya terletak
pada prinsip dasarnya: "Write Once, Run Anywhere." Ini berarti kode
yang ditulis dapat dijalankan di berbagai jenis komputer tanpa banyak
penyesuaian, asalkan perangkat tersebut mendukung Java Virtual
Machine (JVM). Prinsip ini menjadikan Java pilihan utama bagi para
pengembang perangkat lunak di seluruh dunia (Gosling et al., 2015).
2 Mohamad Yusuf
Pengenalan Pemrograman Java
Mohamad Yusuf 15
Pengenalan Pemrograman Java
16 Mohamad Yusuf
Pengenalan Pemrograman Java
Daftar Pustaka
Ashwani Kumar. (2025). Java Virtual Machine (JVM): Internal
Architecture and Key Concepts Explained.
Https://[Link]/Java-Virtual-Machine-Jvm-Architecture-
Explained.
ByteCodeAuthor. (2024). Java From Source to Binary. Https://Byte-
[Link]/2024/08/20/Java-from-Source-to-Binary/.
Francesco Tusa. (2022). Introduction to Computer Programs: Bytecode
and Machine Code.
Https://[Link]/Introduction-to-
Computer-Programs-Bytecode-Machine-Code.
Gaurav Gandhi. (2025). What is Byte Code in Java?.
Https://[Link]/Code360/Library/Byte-Code-in-Java.
Geeksforgeeks. (2025). Java OOP (Object Oriented Programming)
Concepts. Https://[Link]/Java/Object-Oriented-
Programming-Oops-Concept-in-Java/.
Gosling, J., Joy, B., Steele, G., Bracha, G., & Buckley, A. (2015). Gosling, J.,
Joy, B., Steele, G., Bracha, G., & Buckley, A. (2015). (Oracle
Corporation, Ed.; 8th ed., Vol. 8).
Horstmann, C. S. (2019). Core Java Volume II: Advanced Features (12th
ed.). Pearson Education.
IBM. (2021). What is the Java Runtime Environment (JRE)?.
Https://[Link]/Think/Topics/Jre.
Lindholm, T., & Yellin, F. (1996). The Java Virtual Machine. Addison-
Wesley Professional.
Oracle Corporation. (2023). The Java Virtual Machine Specification.
(Inc. Oracle America, Ed.).
Oracle Documentation. (2023). Java Platform, Standard Edition
Security Developer’s Guide.
WsCube Tech. (2025). Full History of Java Programming Language
(1991-2025).
Https://[Link]/Resources/Java/History.
Mohamad Yusuf 17
Pengenalan Pemrograman Java
PROFIL PENULIS
Mohamad Yusuf, [Link]., M.C.S.
Lahir di Jakarta, tahun 1976. Pendidikan S1
didapatkan dari Universitas Budi Luhur
Jakarta, jurusan Teknik Informatika.
Pendidikan S2 didapatkan dari Preston
University, Islamabad Pakistan Jurusan
Informatika, saat ini penulis sedang
menyelesaikan S3 Data Science di Universiti
Malaysia Kelantan. Penulis memiliki
keahlian yang mendalam dalam Web
Technology dan Data Science. Sebagai bagian
dari upaya membangun karir sebagai dosen professional di Fakultas
Ilmu Komputer Universitas Mercu Buana Jakarta, penulis aktif terlibat
dalam riset di bidang spesialisasinya. Beberapa penelitian yang telah
dilakukan didanai oleh lembaga perguruan tinggi tempat penulis
mengajar. Selain itu, penulis juga rajin menulis buku dengan tujuan
memberikan kontribusi positif bagi kemajuan bangsa dan negara
tercinta.
18 Mohamad Yusuf
Struktur dan Fungsi Biomolekul
BAB 2
PERSIAPAN
LINGKUNGAN
PENGEMBANGAN JAVA
19 Aviani Harfika
Persiapan Lingkungan Pengembangan Java
Sejak era J2EE hingga Jakarta EE, java menjadi tumpuan dalam
penggunaan aplikasi enterprise dan menjadi solusi berbasis cloud yang
jarang mendapatkan kegagalan (realibel), ukuran dalam kemampuan
yang lebih luas (scalable), dan aman. Di era modern ini, berbagai
Hedie Kristiawan 21
Persiapan Lingkungan Pengembangan Java
Hedie Kristiawan 27
Persiapan Lingkungan Pengembangan Java
28 Hedie Kristiawan
Persiapan Lingkungan Pengembangan Java
Daftar Pustaka
Alfa Satyaputra, [Link], E. (2014). Java for Beginners with Eclipse 4.2
Juno. Edited by Y. Whindy. Jakarta: Elex Media Komputindo.
Available at:
[Link]
&ots=mzXFm5SREQ&dq=Cara install JDK (Java Development Kit)
di windows &lr&hl=id&pg=PP1#v=onepage&q&f=false.
Bhuman Vyas. (2023). Java-Powered AI: Implementing Intelligent
Systems with Code, Journal of Science & Technology (India), 4(6),
pp. 1–12. Available at: [Link]
Hidayat, M.S. (2024). Studi Kasus Pengembangan Dan Pemanfaatan
Artificial Intelligence Sebagai Penunjang Kegiatan Masyarakat,
Qalam: Jurnal Pendidikan Islam, 5(2). Available at:
[Link]
Isla Sibanda. (2025). IDE vs. Traditional Coding: Which Approach
Boosts Productivity?, Ambassador. Available at:
[Link]
environment-explained.
Jetbrains. (2024). Software Development Kit, IntelliJ IDEA. Available at:
[Link]
John Gough, D.C. (2000). Implementing Languages Other than Java on
the Java Virtual Machine. Available at:
[Link]
Mohandas, R. et al. (2020). TensorFlow Enabled Deep Learning Model
Optimization For Enhanced Realtime Person Detection Using
Raspberry Pi Operating At The Edge, CEUR Workshop Proceedings,
2771, pp. 157–168.
Otavio Santana. (2025). Java Enterprise Matters: Why It All Comes Back
to Jakarta EE.
Hedie Kristiawan 29
Persiapan Lingkungan Pengembangan Java
PROFIL PENULIS
Hedie Kristiawan, [Link]., M.M.
Ketertarikan penulis pada bidang
manajemen dan sistem informasi komputer
dimulai sejak tahun 2000. Pengalaman ini
mengantarkan penulis untuk menempuh
studi di Sekolah Tinggi Ilmu Komputer
(STMIK) LIKMI Bandung dengan mengambil
jurusan Manajemen Sistem Informasi, yang
berhasil diselesaikan pada tahun 2005.
Penulis kemudian melanjutkan studi pascasarjana di Universitas
Pasundan Bandung pada tahun 2015, dengan mengambil program
studi Manajemen dan fokus pada bidang Sistem Informasi Bisnis.
Sejak tahun 2023, penulis mengabdikan diri sebagai Dosen Bisnis
Digital di Universitas Santo Borromeus. Selain aktif mengajar, penulis
juga berdedikasi membimbing mahasiswa, salah satunya berhasil
menjuarai lomba desain interface. Dengan kepakaran di bidang
Manajemen dan Sistem Teknologi Informasi, penulis berupaya
mewujudkan karier sebagai akademisi dan praktisi profesional.
Penulis juga aktif melakukan penelitian dan menulis buku sebagai
wujud nyata kontribusi positif bagi kemajuan bangsa dan negara.
30 Hedie Kristiawan
Ekonomi Kerakyatan Dalam Konstitusi
BAB 3
STRUKTUR DASAR
PROGRAM JAVA
Dr. Ir. Norbertus Tri Suswanto Saptadi, [Link]., M.T., M.M., IPM.
Universitas Atma Jaya Makassar
Akhmad Solikin 31
Struktur Dasar Program Java
Penutup
Membahas pondasi penting yang harus dipahami sebelum menulis
program Java yang lebih kompleks. Berikut poin-poin utama yang
perlu diingat:
1. Struktur Program Java Selalu Dimulai dari Kelas
a. Semua kode Java harus berada dalam kelas.
b. Nama kelas harus sesuai dengan nama dari file dan ditulis
menggunakan PascalCase.
2. Fungsi Main() Adalah Titik Masuk Program
a. Program Java dijalankan mulai dari metode:
public static void main(String[] args)
b. Fungsi ini wajib ada agar program bisa dijalankan.
3. Komentar Membantu Dokumentasi dan Pemahaman
a. Gunakan komentar satu baris (//) atau multi-baris (/* */) untuk
menjelaskan bagian penting dari kode.
b. Komentar dokumentasi (/** */) berguna untuk API dan
dokumentasi formal.
4. Statement dan Blok Kode Menentukan Logika Program
a. Statement adalah instruksi tunggal yang diakhiri titik koma,
b. Blok kode ({}) mengelompokkan beberapa statement dalam satu
unit logika.
5. Package dan Import Membantu Organisasi Proyek
a. Package digunakan untuk mengelompokkan kelas.
b. Import digunakan untuk mengakses kelas dari package lain agar
kode lebih ringkas dan terstruktur.
Daftar Pustaka
Ida et al. (2024). Pemrograman Berorientasi Objek, PT Inovasi Pratama
Internasional. Padang.
Ilham, A.A. et al. (2011). Meningkatkan Kinerja Java Virtual Machine
dengan Mengoptimalkan Peran Garbage Collector, pp. 8–9.
Nita, S. (2021). Job Sheet Pemrograman Berorientasi Objek With Java
(Teori dan Implementasi Java). Madiun: UNIPMA Press Universitas
PGRI Madiun.
Pratiwi, E.L. (2020). Konsep Dasar Algoritma dan Pemrograman
dengan Bahasa Java, Poliban Press. Banjarmasin: Poliban Press.
Putri, M.P. et al. (2022). Algoritma dan StrukturData. Bandung:
Penerbit Widina Bhakti Persada.
Rachman, A., Rochimah, S. & Sunaryono, D. (2016). Komentar Semi
Otomatis untuk Memudahkan Pemahaman pada Bahasa
Pemrograman Java, Jurnal Ilmiah NERO, 2(3), pp. 145–152.
Syamsudin, A. (2020). Analisis Kesalahan Coding Pemrograman Java
pada Matakuliah Algoritma Pemrograman Mahasiswa Tadris
Matematika IAIN Kediri, Journal Focus Action of Research
Mathematic (Factor M), 2(2), pp. 102–114.
Wibowo, I.A., Kom, M. and Si, M. (2021). Tips dan Tricks Wawancara
Kerja Menjadi Programming. Semarang: Universitas Sains &
Teknologi Komputer.
Widayat, A. et al. (2023). Pemahaman Konsep Dasar Java: Pendekatan
Praktis untuk Mahasiswa, Buletin Ilmiah Ilmu Komputer dan
Multimedia, 1(4), pp. 619–622.
Yanto, M. et al. (2023). Pemrograman Menggunakan Java NetBeans,
BIIKMA: Buletin Ilmiah Ilmu Komputer dan Multimedia, 1(3), pp.
367–377.
Zain Arif Wildan Sugandi et al. (2022). Implementasi Konsep
Pemrograman Berorientasi Objek Dalam Aplikasi Pembukuan
Keuangan Penjual Jus Buah Menggunakan Bahasa Pemrograman
Java, Jurnal IT CIDA, 8(1), pp. 1–8.
PROFIL PENULIS
Dr. Ir. Norbertus Tri Suswanto Saptadi,
[Link]., M.T., M.M., IPM.
Lahir di Cirebon, Jawa Barat, tanggal 7 Juni
1975. Memiliki Jabatan Fungsional Lektor
Kepala, Pembina Tingkat I (IV/b).
Berpendidikan Sarjana Komputer ([Link].) di
Universitas Teknologi Digital Indonesia
(UTDI) tahun 1998, Magister Manajemen
(M.M.) di Universitas Hasanuddin (UNHAS)
tahun 2004, Magister Teknologi Informasi
(M.T.) di Universitas Gadjah Mada (UGM) tahun 2007, Insinyur (Ir.) di
Pendidikan Profesi Insinyur UNHAS tahun 2020, Insinyur Profesional
Madya (IPM.) di Persatuan Insinyur Indonesia (PII) tahun 2021,
Doktor (Dr.) di Fakultas Teknik UNHAS tahun 2023, Kursus Kader
Pimpinan (Suskapin) XXVI Menwa RI tahun 1997, dan Program
Pendidikan Reguler Angkatan (PPRA) LX Lemhannas RI tahun 2020.
Menjadi tenaga pengajar (Dosen) pada Program Studi Teknik
Informatika Fakultas Teknologi Informasi Universitas Atma Jaya
Makassar (UAJM). Peraih Poster terbaik DPRM Dikti tahun 2016.
Dosen berprestasi IKDKI tahun 2020, 2021, dan 2024. Pernah
menjabat Kepala UPT Komputer, Kepala BAPSI, Wakil Dekan FT,
Dekan FT dan FTI, Wakil Rektor III, Ketua Penjaminan Mutu. Tim PAK
Dosen dan Asesor BKD UAJM. Reviewer International Conference,
International Journal, Seminar Nasional, dan Jurnal SINTA. Pemenang
Hibah Kemdikbud Penelitian Dosen Muda, Dosen Pemula, Bersaing,
Fundamental, dan Strategi Nasional.
Penulis artikel media massa Tribun Timur, Koinonia, Bisnis
Sulawesi, [Link], [Link], HidupKatolikCom, OMKNet,
KatolikanaTV, Jalan Hidup Katolik, dll. Penulis Buku di Kanisius, Sada
Kurnia Pustaka, Aksara Sastra Media, Future Science, HEI Publishing,
Mifandi Mandiri Digital, Rey Media Grafika, Widina Salemba, Andi, dan
Cendikia Mulia Mandiri. Aktifis organisasi IKA Lemhannas RI LX,
IARMI, DPP ISKA, BAPOMI Sulsel, LP3KD Sulsel, IKDKI SulSelTraBar,
Komkep KAMS, Komsos KAMS, PUKAT KAMS, TPP KAMS, FMKI KAMS,
UPS KAMS, Pengurus Kebun Sawit Laimbo, FDI, PII Makassar, INAPR,
Dewan Keuangan Paroki dan Program Ayo Sekolah Mariso, Animator
Laudato Si’, TKN GLSI’, dll.
Email Penulis: ntsaptadi@[Link].
BAB 4
TIPE DATA DAN
VARIABEL DALAM JAVA
Akhmad Solikin 52
Tipe Data dan Variabel Dalam Java
Pendahuluan
Tipe data dan variabel merupakan elemen dasar yang penting dalam
pemrograman java. Tipe data menentukan jenis nilai yang dapat
disimpan, sementara variabel berfungsi sebagai wadah penyimpanan
data dalam program. Java menggunakan sistem tipe data statis yang
kuat, sehingga setiap variabel harus dideklarasikan dengan tipe
tertentu sebelum digunakan, memungkinkan deteksi kesalahan sejak
awal kompilasi (Cosmina, 2024; Ogihara, 2018).
Bab ini akan membahas identifier, tipe data primitif dan non-
primitif, deklarasi dan inisialisasi variabel, konstanta, serta teknik
konversi tipe data. Pemahaman topik ini akan membantu pembaca
dalam menulis kode program yang benar, efisien, dan sesuai dengan
standar bahasa pemrograman java ([Link], 2018; Schildt,
2014).
Output Program:
Penjelasan:
a. Info adalah variabel lokal, karena hanya berlaku dalam
metode tampilkanInfo().
b. Nama dan umur adalah variabel instance, karena
dideklarasikan dalam kelas namun bukan bagian dari method
dan tidak menggunakan static.
c. Institusi adalah variabel statis, karena dideklarasikan
dengan kata kunci static dan dimiliki bersama oleh semua
objek kelas tersebut.
Contoh Penggunaan:
Daftar Pustaka
Ahmadian, H., Mizuardy, H., & AR, K. (2017). Mahir Pemrograman
Visual Dengan Java. Unimal Press.
[Link]
[Link]/bioinformatics/article-
abstract/34/13/2201/4852827%0Ainternal-
pdf://semisupervised-
3254828305/[Link]%0A[Link]
[Link].2013.02.005%0A[Link]
Cosmina, I. (2024). Java 23 for Absolute Beginners. In Java 23 for
Absolute Beginners. Apress. [Link]
1041-1.
[Link]. (2018). Java Notes for Professional. [Link].
Ogihara, M. (2018). Fundamentals of Java Programming. In
Fundamentals of Java Programming. Springer International
Publishing. [Link]
Schildt, H. (2014). Java: The Complete Reference (9th ed.). McGraw-Hill
Education Group.
PROFIL PENULIS
Hendri Julian Pramana, [Link]., [Link].
Adalah seorang akademisi di bidang
pengembangan Rekayasa Perangkat Lunak
(RPL). Ketertarikan penulis terhadap dunia
komputer dan teknologi sudah tumbuh sejak
masa sekolah menengah pertama. Belajar
secara otodidak dan lembaga-informal yang
terbatas tidak menghalangi keinginan untuk
melanjutkan pendidikan tinggi di bidang
Teknik Informatika setelah lulus Sekolah
Menengah Atas di Kota Tasikmalaya. Penulis
berhasil menyelesaikan studi Sarjana Komputer dan kemudian
melanjutkan pendidikan Magister Komputer pada kampus UDINUS
Semarang dan lulus pada tahun 2020. Saat ini, penulis menjadi dosen
tetap untuk Prodi Rekayasa Perangkat Lunak, Fakultas Komunikasi
dan Informasi (FKOMINFO), Universitas Garut (UNIGA). Penulis
mengampu beberapa mata kuliah di antaranya: Sistem Terdistribusi,
Pemrograman Bergerak, Sistem Pendukung Keputusan, Peretasan
Beretika (Ethical Hacking), dan Design Thinking. Fokus dan
ketertarikan penulis dalam bidang keilmuan meliputi design thinking,
decision support system, machine learning, pengenalan objek
menggunakan computer vision, serta Internet of Things (IoT). Selain
mengajar, penulis juga berkomitmen untuk terus aktif melakukan
penelitian dan meningkatkan pengetahuan melalui kegiatan menulis
buku guna memperkuat kontribusi pada dalam pengembangan
pengetahuan dan teknologi di Indonesia.
BAB 5
OPERATOR DALAM
JAVA
Sisca Septiani 71
Operator Dalam Java
Pendahuluan
Perkembangan teknologi informasi dan komunikasi yang pesat Dalam
dunia pemrograman, operator merupakan elemen dasar yang
digunakan untuk membentuk ekspresi dan melakukan manipulasi
data. Dalam bahasa pemrograman java, operator memainkan peran
penting dalam hampir setiap aspek penulisan program, mulai dari
perhitungan aritmatika sederhana hingga evaluasi kondisi logika yang
kompleks.
Java menyediakan berbagai jenis operator yang memungkinkan
programmer untuk mengolah nilai dan variabel secara efisien,
konsisten, dan fleksibel. Operator dalam java dirancang untuk bekerja
dengan berbagai tipe data, baik tipe primitif seperti int, double, dan
boolean, maupun tipe objek. Java juga mendukung penggunaan
operator dalam bentuk ekspresi yang kompleks, termasuk kombinasi
antara operator aritmatika, logika, relasional, dan penugasan.
Pemahaman yang baik tentang jenis-jenis operator, serta cara
penggunaannya yang benar, merupakan bagian fundamental dalam
penguasaan bahasa java. Tanpa pemahaman tersebut, akan sulit bagi
seorang programmer untuk menulis kode yang benar, efisien, dan
mudah dipahami. Bab ini akan membahas berbagai jenis operator
yang tersedia dalam java, mulai dari operator aritmatika hingga
operator khusus seperti instanceof dan operator ternary.
Dengan mempelajari operator secara sistematis, pembaca
diharapkan mampu menggunakannya secara tepat dalam
membangun logika dan struktur program yang efektif.
Operator Aritmatika
Operator aritmatika dalam java digunakan untuk melakukan operasi
matematika dasar seperti penjumlahan, pengurangan, perkalian,
pembagian, dan modulus (sisa bagi). Operator ini bekerja pada tipe
data numerik, seperti int, float, double, dan long.
Operator aritmatika sangat penting karena menjadi dasar dari
berbagai operasi perhitungan dalam pemrograman. Java
menyediakan lima operator aritmatika utama, sebagaimana dijelaskan
pada tabel berikut:
Operator Instanceof
Dalam bahasa pemrograman java, operator instanceof digunakan
untuk memeriksa apakah suatu objek merupakan instance (turunan)
dari kelas tertentu, atau merupakan bagian dari hierarki pewarisan
suatu kelas atau antarmuka. Operator ini menghasilkan nilai boolean
true jika objek tersebut merupakan instance dari tipe yang ditentukan,
dan false jika tidak.
Operator instanceof sangat berguna dalam pemrograman
berorientasi objek, terutama ketika bekerja dengan pewarisan
(inheritance), polimorfisme (polymorphism), dan downcasting objek.
Sintaks Operator instanceof
objek instanceof NamaKelas
1. objek: variabel yang mereferensikan sebuah objek.
2. NamaKelas: tipe data atau kelas yang akan diuji.
Daftar Pustaka
Deitel, P. J., & Deitel, H. M. (2017). Java: How to program (11th ed.).
Pearson Education.
Eckel, B. (2006). Thinking in Java (4th ed.). Prentice Hall.
Farrell, J. (2019). Java programming (9th ed.). Cengage Learning.
Flanagan, D. (2020). Java in a nutshell (8th ed.). O’Reilly Media.
Horstmann, C. S. (2019). Core Java Volume I-Fundamentals (11th ed.).
Pearson Education.
Liang, Y. D. (2022). Introduction to Java Programming and Data
Structures: Comprehensive version (13th ed.). Pearson Education.
Lindholm, T., Yellin, F., Bracha, G., & Buckley, A. (2021). The Java®
Virtual Machine Specification: Java SE 17 Edition. Oracle America,
Inc.
McKenzie, B. (2022). OCP Oracle Certified Professional Java SE 17
Developer Study Guide: Exam 1Z0-829. Wiley.
Schildt, H. (2018). Java: The Complete Reference (11th ed.). McGraw-
Hill Education.
PROFIL PENULIS
Agung Yuliyanto Nugroho, [Link].,
[Link].
Ketertarikan penulis terhadap ilmu
komputer dimulai pada tahun 2015 silam.
Hal tersebut membuat penulis melanjutkan
pendidikan ke Perguruan Tinggi dan berhasil
menyelesaikan studi S1 di prodi Teknik
Informatika Universitas Teknologi
Yogyakarta pada tahun 2018. Dua tahun
kemudian, penulis menyelesaikan studi S2 di
prodi Teknik Informatika Program Pasca
Sarjana Universitas Amikom Yogyakarta dan juga prodi Magister
Pariwisata di Sekolah Tinggi Pariwisata Ambarrukmo Yogyakarta.
Atas dedikasi dan kerja keras dalam membuat suatu karya, Republik
Indonesia Kementerian Hukum Dan Hak Asasi Manusia sudah
mencatat ada kurang lebih 100 karya yang sudah tercatat di surat
pencatatan ciptaan sebagai salah satu kontribusi dalam melindungi
hak kekayaan intelektual.
BAB 6
INPUT DAN OUTPUT
(I/O) DASAR
Nina Rahayu 83
Input dan Output (I/O) Dasar
Pendahuluan
1. Pengertian I/O Dalam Pemrograman
Input adalah proses menerima data dari pengguna atau sumber lain
(keyboard, file), sedangkan output adalah proses menampilkan atau
menyimpan data (misalnya ke layar). Studi Sulír et al. (2023)
menunjukkan bahwa metode I/O ini sangat umum digunakan
dalam kode java nyata, sehingga pemahaman dasar I/O menjadi
sangat penting dalam pembelajaran Java awal.
84 Nina Rahayu
Input dan Output (I/O) Dasar
Daftar Pustaka
Oracle. (2024). Class Scanner (Java SE 8 Documentation). Oracle
Corporation. Access 26/07/2025 (11.30).
Pendergast, M. O. (2006). Teaching Introductory Programming to IS
Students: Java Problems and Pitfalls. Journal of Information
Technology Education: Research, Vol. 5, pp. 491–515. doi:
[Link]
Sulir, M., Chodarev, S., & Nosáľ, M. (2023). Outside the Sandbox: A
Study of Input/Output Methods in Java. Proceedings of the 27th
International Conference on Evaluation and Assessment in Software
Engineering (EASE '23), ACM, 2023, pp. 253-258. doi:
[Link]
Tigina, M., Birillo, A., Golubev, Y., Keuning, H., Vyahhi, N., Bryksin., T.
(2023). Analyzing the Quality of Submissions in Online
Programming Courses. ArXiv: Computer Science, Software
Engineering. doi: [Link]
Yang, C. (2020). Research on Java Programming Course Based on CDIO
and Iterative Engineering Teaching Pattern. Recent Advances in
Computer Science and Communications, Volume 13, Issue 3, Jun
2020, p. 519 - 530. doi:
[Link]
Yuan, X., Wan, J., An, D., Lu, J., & Yuan, P. (2024). Multi-Method
Integrated Experimental Teaching Reform of A Programming
Course Based on The OBE-CDIO Model Under The Background of
Engineering Education. Scientific Reports 14, 16623 (2024). Doi:
[Link]
Nina Rahayu 93
Input dan Output (I/O) Dasar
PROFIL PENULIS
Nina Rahayu, [Link]., M.M., M.T.I.
Nina Rahayu adalah seorang akademisi dan
peneliti di bidang Teknologi Informasi
dengan pengalaman lebih dari satu dekade.
Saat ini, ia berperan sebagai dosen di
Universitas Raharja sejak tahun 2016.
Dengan latar belakang pendidikan di bidang
Manajemen dan Teknologi Informasi, ia
aktif dalam pengajaran, penelitian, dan
pengembangan sistem berbasis teknologi.
Sebagai seorang peneliti, Nina telah menulis
berbagai artikel ilmiah dan berpartisipasi dalam hibah penelitian,
termasuk proyek-proyek seperti prediksi biaya kuliah menggunakan
kecerdasan buatan, sistem peringatan dini kebakaran berbasis sensor
fusion, dan pengembangan sistem keamanan data berbasis blockchain
untuk e-voting.
Selain mengajar dan meneliti, Nina juga memiliki pengalaman
dalam implementasi sistem teknologi di industri, seperti
keterlibatannya dalam proyek ITM di PT Telkom Sigma. Komitmennya
terhadap dunia akademik dibuktikan dengan kelanjutan studinya
pada program doktoral Ilmu Komputer di Universitas Kristen Satya
Wacana, Salatiga, dimana ia terus mengembangkan riset-riset terkini
di bidang kecerdasan buatan, sistem informasi, dan pemanfaatan
teknologi dalam sektor pendidikan. Dengan dedikasi yang tinggi
dalam dunia pendidikan dan teknologi, Nina Rahayu terus
berkontribusi dalam inovasi sistem informasi dan kecerdasan buatan,
serta berperan dalam mencetak generasi muda yang siap menghadapi
tantangan digital.
94 Nina Rahayu
Kontrol Alur Program Dalam Java
BAB 7
KONTROL ALUR
PROGRAM DALAM JAVA
Deden Rustiana 95
Kontrol Alur Program Dalam Java
Pendahuluan
Control alur program (control flow) adalah salah satu konsep
fundamental dalam pemrograman yang memungkinkan kita
mengatur bagaimana instruksi-instruksi dalam program dieksekusi.
Dalam java, kontrol alur program memungkinkan kita untuk membuat
keputusan, mengulang blok kode, dan mengatur jalur eksekusi
program berdasarkan kondisi tertentu. Secara default, program java
dieksekusi secara sekuensial dari atas ke bawah. Namun dengan
menggunakan struktur kontrol alur, kita dapat mengubah urutan
eksekusi ini untuk membuat program yang lebih dinamis dan
interaktif.
c. Penjelasan
Jika variabel nilai lebih besar atau sama dengan 75, maka
program mencetak pesan “Selamat, Anda lulus!”. Jika tidak,
program tidak melakukan apa pun. Jika hanya ada satu
pernyataan, tanda kurung {} boleh dihilangkan, tapi tidak
disarankan karena dapat menimbulkan bug:
96 Deden Rustiana
Kontrol Alur Program Dalam Java
1. Break
Digunakan untuk menghentikan perulangan secara paksa
meskipun kondisinya masih true.
a. Karakteristik dari pernyataan break.
Langsung keluar dari perulangan (bukan hanya satu iterasi, tapi
seluruh loop). Umumnya dipakai saat terjadi kondisi tertentu
yang harus menghentikan loop.
b. Contoh penggunaan break loop dalam program java
2. Continue
Xxxxx xxxxxxx xxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxx
xxxxxxxx
a. Karakteristik dari pernyataan continue
Tidak menghentikan loop, hanya melewati sisa blok pada satu
putaran. Berguna saat ingin mengabaikan nilai tertentu atau
melompati kondisi khusus.
b. Contoh penggunaan continue loop dalam program java
3. Return
a. Kegunaan dari pernyataan return
Mengakhiri eksekusi suatu metode (function) kapan pun. Bisa
juga mengembalikan nilai (kalau metode tidak void). Jika
dipakai di dalam loop dalam sebuah metode, maka program:
Kesimpulan
Kontrol alur program adalah fondasi penting dalam pemrograman
Java yang memungkinkan kita membuat aplikasi yang dinamis dan
interaktif. Dengan menguasai struktur percabangan (if-else, switch),
perulangan (for, while, do-while), dan pernyataan kontrol (break,
continue, return), kita dapat mengatur logika program dengan efisien.
Kunci untuk menguasai kontrol alur program:
1. Memahami kapan menggunakan struktur yang tepat if-else untuk
kondisi sederhana, switch untuk multiple nilai, for untuk iterasi
yang diketahui, while untuk kondisi yang tidak pasti.
2. Menulis kode yang readable dan maintainable, gunakan variabel
boolean untuk kondisi kompleks, beri nama yang bermakna.
3. Menghindari infinite loops, pastikan kondisi loop bisa berubah
4. Mengoptimalkan performa, hindari operasi mahal dalam kondisi
loop.
5. Praktik yang konsisten, gunakan indentasi yang benar dan
konvensi naming yang konsisten.
Daftar Pustaka
Bloch, J. (2017). Effective Java (3rd ed.). Addison-Wesley Professional.
Deitel, P. J., & Deitel, H. M. (2019). Java: How to Program (11th ed.).
Pearson Education.
Eckel, B. (2006). Thinking in Java (4th ed.). Prentice Hall.
Gosling, J., Joy, B., Steele, G., Bracha, G., Buckley, A., Smith, D., &
Bierman, G. (2021). The Java Language Specification (Java SE 17
ed.). Oracle America, Inc.
Horstmann, C. S. (2019). Core Java Volume I - Fundamentals (11th ed.).
Pearson.
Lindholm, T., Yellin, F., Bracha, G., Buckley, A., & Smith, D. (2021). The
Java Virtual Machine Specification (Java SE 17 ed.). Oracle America,
Inc.
Oracle Corporation. (2023). The Java™ Tutorials - Control Flow
Statements. Retrieved from
[Link]
html.
Oracle Corporation. (2023). Java Platform, Standard Edition & Java
Development Kit Version 17 API Specification. Retrieved from
[Link]
Oracle. (2024). The Java™ Tutorials-Statement in Java.
[Link]
ml.
Pendergast, M. O. (2006). Teaching Introductory Programming to IS
Students: Java Problems and Pitfalls. Journal of Information
Technology Education: Research, 5, 491–515.
[Link]
Schildt, H. (2018). Java: The Complete Reference (11th ed.). McGraw-
Hill Education.
Sierra, K., & Bates, B. (2005). Head First Java (2nd ed.). O'Reilly Media.
PROFIL PENULIS
Deden Rustiana, [Link].
Penulis merupakan dosen tetap di
Universitas Raharja sejak tahun 2016,
dengan fokus pada pengajaran dan
pengembangan keilmuan di bidang
Teknologi Informasi. Beliau mengampu
berbagai mata kuliah seperti Sistem
Informasi, Pemrograman, Database, serta
Manajemen Proyek TI. Selain aktif dalam
dunia akademik, Deden juga berkiprah sebagai konsultan IT untuk
berbagai perusahaan swasta dan instansi pemerintahan. Pengalaman
konsultasinya mencakup pengembangan sistem informasi, audit TI,
transformasi digital, serta integrasi teknologi berbasis web dan mobile.
Dengan latar belakang pendidikan Magister Ilmu Komputer dari
Universitas Budi Luhur, Deden Rustiana terus berkontribusi dalam
pengembangan keilmuan TI, baik melalui pengajaran, penelitian,
maupun implementasi langsung di dunia industri dan pemerintahan.
BAB 8
METODE (FUNCTION)
DALAM JAVA
Daftar Pustaka
Asnawi, N. (2023). Teori dan Praktik Object Oriented Programming
Menggunakan Java.
Endra, R. Y., Kom, S., & Kom, M. (2016). Belajar Mudah Algoritma
Pemrograman Java. Bandar Lampung: Nida Dwi Karya Publishing.
Hadiprakoso, R. B. (2021). Pemrograman Berorientasi Objek: Teori dan
Implementasi Dengan Java. RBH.
Pradeka, D., Adiwilaga, A., Agustini, D. A. R., & Hidayatullah, M. B.
(2024). Belajar Dasar Pemrograman Berorientasi Objek Serta
Create, Read, Update, dan Delete di Database MySQL. Mega Press
Nusantara.
Rahmawati, E., Medina, P., & Azhari, D. S. (2024). Rekursif Dalam
Pemrograman Teori Dan Praktek. Innovative: Journal Of Social
Science Research, 4(4), 5622-5630.
Sianipar, R. H. (2015). Pemrograman Java Untuk Programmer (Vol. 1).
Penerbit ANDI.
Sugandi, Z. A. W., Nugraha, Y. A., Anam, S. N., & Darmayanti, I. (2022).
Implementasi Konsep Pemrograman Berorientasi Objek Dalam
Aplikasi Pembukuan Keuangan Penjual Jus Buah Menggunakan
Bahasa Pemrograman Java. Jurnal Ilmiah IT CIDA, 8(1), 1-8.
PROFIL PENULIS
Ir. Gde Brahupadhya Subiksa,
[Link]., M.T.
Praktisi dan Dosen Vokasi pada Program
Studi Teknologi Rekayasa Perangkat
Lunak, Jurusan Teknologi Informasi,
Politeknik Negeri Bali. Penulis lahir di
Denpasar tanggal 31 Agustus 1991. Penulis
adalah dosen tetap pada Program Studi
Teknologi Rekayasa Perangkat Lunak,
Jurusan Teknologi Informasi, Politeknik
Negeri Bali. Menyelesaikan pendidikan S1
pada Jurusan Teknik Informatika Universitas Sanata Dharma
Yogyakarta dan melanjutkan S2 pada Jurusan Teknik Elektro
(Manajemen Sistem Informasi dan Komputer) Universitas Udayana
Bali, dan Mengambil Gelar Profesi Insinyur Teknologi Informasi di
Universitas Udayana Bali. Penulis menekuni bidang Teknologi
Informasi dan Sistem Informasi. Besar harapan penulis dapat
berkolaborasi dalam penulisan Jurnal dan Buku. Penulis juga aktif
dalam Penelitian dan Publikasi Ilmiah dengan sub bidang keilmuan
fokus pada Manajemen Sistem, Human Computer Interaction, Usability
dan Digital Heritage.
BAB 9
PEMROGRAMAN
BERORIENTASI OBJEK
(OOP) DASAR
Daftar Pustaka
Ali, S., et al. (2021). Object-Oriented Programming in Modern Software
Development: A Case for Scalability and Maintainability. Journal of
Software Engineering & Applications, 14(6), 235-248.
AlOmar, E. A., Wang, T., Raut, V., Mkaouer, M. W., Newman, C., & Ouni,
A. (2021). Refactoring for Reuse: An Empirical Study. arXiv.
[Link]
ArXiv. (2023). Refactoring Object-Oriented Systems for AI Integration.
Retrieved from [Link]
Developer Community Forum. (2024, March 18). The Essence of OOP:
Encapsulation And Dynamic Binding. StackOverflow Discussion
Thread. Retrieved June 30, 2025, from
[Link]
Exforsys. (2022). History of Object Oriented Programming. Retrieved
from [Link]
Horstmann, C. S. (2019). Core Java Volume I Fundamentals (11th ed.).
Pearson. Buku Ini Menjelaskan Manfaat OOP Dalam Pengembangan
Sistem Besar Berbasis Java.
HyperSense Software. (2021). A brief History of Java And its Role In
Enterprise Software. Retrieved from [Link]
[Link]
Kumar, A., & Choudhary, R. (2020). A Comparative Study of Object-
Oriented and Procedural Programming Paradigms. International
Journal of Computer Applications, 176(6), 22-27.
Llamas, L. (2023). The Evolution of OOP: From Simula to Kotlin.
Medium. Retrieved from
[Link]
Medium. (2023). The Evolution of Object-Oriented Programming.
Retrieved from [Link]
Minto Share. (2023). Why Python is One of The Best OOP Languages.
Retrieved from [Link]
TechTarget. (2024). Object-oriented programming (OOP). Retrieved
June 30, 2025, from
[Link]
bject-oriented-programming-OOP.
PROFIL PENULIS
Eka Purnama Harahap, [Link]., [Link].
Kelahiran Baringin Jaya, 18 September
1993. Ia merupakan Sarjana lulusan STMIK
Raharja pada tahun 2016. Dua tahun
kemudian lulus sebagai Magister Teknologi
Informasi di STMIK Raharja yang sejak 2019
telah berubah menjadi Universitas Raharja.
Saat ini sedang menempuh pendidikan
Doktoral Ilmu Komputer di Universitas
Kristen Satya Wacana. Sejak 2016 sampai
hingga saat ini, ia telah memiliki 10+ Mata
kuliah yang diampu, dimana 2 mata kuliah
diantaranya yaitu Pemrograman Berbasis Objek dan Pengantar
Kecerdasan Buatan. Selama 7 tahun mengabdi, banyak pengalaman
yang didapatkan sehingga mengajarkannya lebih mengenal beraneka
ragam karakter. Pada Tri Dharma Penelitian, ia aktif menulis karya
ilmiah yang terpublikasi di kancah nasional maupun internasional.
Diantaranya terdapat 80+ Jurnal Nasional Terakreditasi yang terindex
Google Scholar dan SINTA serta 18+ Jurnal Internasional Terindex
SCOPUS. Ia juga merupakan bagian dari Web of Science Academy, yakni
sebagai graduate dan juga mentor. Selain penelitian, ia memiliki 4 hak
kekayaan intelektual di bidang teknologi informasi. Bidang minatnya
meliputi; Machine Learning, Artificial Intelligence, Smart Tourism, dan
Data Analytics. Motto: Al Jazaa Min Jinsil ‘Amal.
BAB 10
INHERITANCE DAN
POLYMORPHISM
Inheritance/Pewarisan
Pewarisan atau inheritance merupakan salah satu karakteristik dari
bahasa pemrograman berbasis objek atau object oriented
programming. Bahasa pemrograman java merupakan salah satu
bahasa pemrograman yang mengimplementasikan object oriented
programming (Deitel & Deitel, 2017). Inheritance adalah proses
pembuatan class baru yang akan mewarisi karakter dari class yang
telah ada.
Pewarisan memungkinkan sebuah kelas yang disebut sebagai
subclass atau child class untuk mewarisi sifat dan perilaku (attribute
dan method) dari kelas lain yang disebut sebagai superclass atau
parent class sehingga akan membentuk hirarki class. Dalam hirarki
class, jika kelas C adalah turunan kelas B, sedangkan kelas B
merupakan turunan kelas A, maka secara otomatis attribute dan
method kelas A juga diwariskan kelas C.
Setiap subclass akan mewarisi state (variabel-variabel) dan
behaviour (method-method) dari superclass-nya (Schildt, 2018).
Pewarisan merupakan salah satu fitur yang sangat penting di bahasa
pemrograman java karena dengan fitur ini pengembang dapat
memanfaatkan kembali source code yang sudah ada, memperluas
fungsionalitas, serta mengorganisir source code dengan lebih baik
(Hidaya, 2024). Contoh inheritance di sekitar kita: contoh
implementasi dari pewarisan atau inheritance di kehidupan kita
sehari-hari seperti konsep “mobil”, semua mobil memiliki
karakteristik atau atribut seperti merk, jumlah pintu, warna dan jenis
atau pabrikan. Dalam dunia nyata ada banyak jenis atau pabrikan
mobil yang ada disekitar kita seperti pabrikan Honda, Toyota,
Hyundai, Nissan, Ford, Wuling, BWM, Ferrari dan jenis pabrikan mobil
lainnya.
Jenis atau pabrikan ini memiliki sifat dasar yang sama dari
“mobil” namun mungkin memiliki attribute atau method tambahan.
Pada konsep object oriented programming, programmer dapat
membuat kelas parent atau super yang bernama mobil, selanjutnya
membuat class Honda, Toyota yang dijadikan subclass atau class
turunan yang mewarisi atribut dan method dari superclass (Sianipar,
2019).
d. Main Class
e. Hasil
Daftar Pustaka
Bachtiar, A. M. (2018). Pemrograman Berorientasi Objek Menggunakan
Java. Informatika.
Cosmina, I. (2018). Java for Absolute Beginners: Learn to Program the
Fundamentals the Java 9+ Way. Apress.
Deitel, P. J., & Deitel, H. (2017). Java How to Program, Early Objects
(11th Edition). PE.
Farrell, J. (2018). Java Programming 9th Edition. Cengage Learning.
Hidaya, B. (2024). Pemrograman Java Dasar. Edu Publisher.
Schildt, H. (2018). Java: A Beginner’s Guide, Eighth Edition 8th Edition.
McGraw Hill.
Sianipar, R. H. (2013). Teori dan Implementasi Java. Informatika.
Sianipar, R. H. (2014). Soal, Kasus dan Penyelesaian Pemrograman
Java: Belajar, Memahami, dan Eksplorasi. Informatika.
Sianipar, R. H. (2019). Java: Referensi Lengkap Untuk Programer. Andi
Publisher.
PROFIL PENULIS
Mohammad Badrul, [Link].
Penulis lahir dari keluarga petani sederhana
di daerah Bangkalan tahun 1984. Dari kecil
penulis sudah di didik di lingkungan agamis
dan sederhana. Setelah lulus dari Sekolah
Menengah Pertama dan Sekolah Menengah
Atas di lingkungan Pesantren, Sejak di
Sekolah Menengah Atas, Penulis memiliki
ketertarikan di bidang komputer. Oleh
sebab itu penulis melanjutkan program Diploma III atau D3 di
Akademi Manajemen Informatika dan Komputer (AMIK) Bina Sarana
Informatika di Jakarta dengan Jurusan Komputerisasi Akuntansi.
Lulus dari Program Diploma III tahun 2007, Penulis melanjutkan
Program Strata Satu (S1) di Sekolah Tinggi Manajemen Informatika
dan Komputer (STMIK) Nusa Mandiri di Jakarta Jurusan Sistem
Informasi. Setelah lulus program Strata Satu (S1) tahun 2009, Penulis
melanjutkan program Strata Dua (S2) di Sekolah Tinggi Manajemen
Informatika dan Komputer (STMIK) Nusa Mandiri Jakarta jurusan
Ilmu Komputer tahun 2010 dan lulus tahun 2012. Saat ini penulis aktif
mengajar di beberapa kampus di Jakarta khususnya Jurusan Sistem
Informasi, Informatika dan Teknologi Informasi dengan konsentrasi di
bidang Data Mining, Data Science, dan Sistem Penunjang Keputusan.
Dan untuk mewujudkan karir sebagai dosen profesional, penulis pun
aktif sebagai peneliti di bidang kepakarannya tersebut. Beberapa
penelitian yang telah dilakukan didanai oleh internal perguruan tinggi
dan juga Kemenristek DIKTI.
BAB 11
ENCAPSULATION &
ACCESS MODIFIER
Pengertian Enkapsulasi
Encapsulation atau enkapsulasi merupakan salah satu prinsip inti
dalam pemrograman berorientasi objek (OOP), terutama dalam
bahasa java. Prinsip ini melibatkan penggabungan data (atribut) dan
perilaku (metode) dalam satu unit yang disebut kelas, dengan tujuan
menyembunyikan detail implementasi dan hanya mengekspos
antarmuka publik yang didesain secara ketat. Atribut kelas biasanya
dideklarasikan sebagai private, sementara akses ke nilai dilakukan
melalui metode getter dan setter publik, yang memungkinkan kontrol
akses dan validasi data sebelum modifikasi dilakukan (Suharto 2022).
Menurut studi perbandingan java dan python (Omer et al. 2023),
enkapsulasi di Java menghasilkan pengamanan data yang lebih ketat
karena penggunaan modifier seperti private, protected, dan public,
dibandingkan dengan python yang mengandalkan konvensi penamaan
seperti _ dan __ untuk menandai atribut privat. Bentuk enkapsulasi ini
tidak hanya menjaga integritas objek tetapi juga mempermudah
pemeliharaan kode artinya logika internal dapat diubah tanpa
mempengaruhi kode eksternal yang bergantung pada antarmuka
tetap.
Dengan demikian, enkapsulasi di java adalah teknik penting
untuk melindungi data, mengontrol akses, dan mendukung
pengembangan perangkat lunak yang lebih maintainable dan aman.
Kesimpulan
Enkapsulasi merupakan salah satu prinsip fundamental dalam
pemrograman berorientasi objek (OOP) yang bertujuan untuk
membungkus data dan perilaku dalam satu unit, serta
menyembunyikan detail internal dari akses luar. Dengan menerapkan
enkapsulasi, pengembang dapat menjaga keamanan dan konsistensi
data dengan membatasi akses langsung ke atribut, serta menyediakan
method publik untuk mengatur interaksi terhadap data tersebut. Hal
ini tidak hanya meningkatkan keamanan program, tetapi juga
membuat kode lebih mudah dirawat dan dimodifikasi karena logika
internal tidak tersebar ke seluruh sistem.
Access modifier adalah alat teknis dalam java yang digunakan
untuk mengontrol visibilitas kelas, atribut, dan method. Modifier
seperti private, protected, dan public memungkinkan pengembang
untuk mengatur siapa saja yang boleh mengakses atau memodifikasi
bagian tertentu dari kode.
Access modifier berperan penting dalam mendukung penerapan
enkapsulasi, karena memungkinkan pemrogram membatasi atau
membuka akses sesuai kebutuhan desain. Dengan memahami dan
menggunakan access modifier dengan tepat, kita dapat membangun
sistem yang lebih modular, aman, dan terstruktur dengan baik.
Daftar Pustaka
Faisal, Mohammad Reza, Universitas Lambung Mangkurat, and Erick
Kurniawan. (2023). Seri Belajar Pemrograman: Pemrograman
Dasar Dengan Java. (March).
Nita, Sekreningsih. (2021). Pemrograman Berorientasi Objek With
‘Java’ (Teori & Implementasi Java).
[Link] Repository Bu
[Link].
Omer, Skala Kamaran, Star Dawood Mirkhan, Nyan Najat Hussein,
Aveen Zuber Ali, Tarik Ahmed Rashid, and Poornima
Nedunchezhian. (2023). Comparative Analysis of Encapsulation in
Java And Python: Syntax And Implementation Differences. The
Journal of Duhok University 26(2):379–89.
doi:10.26682/csjuod.2023.26.2.35.
Suharto, Ahmad. 2022. Teori Dan Praktik Object Oriented
Programming Menggunakan Java.
PROFIL PENULIS
Alfredo Gormantara, [Link]., [Link].
adalah dosen tetap di Universitas Atma Jaya
Makassar dengan minat riset di bidang
Information Systems, Machine Learning, dan
Parallel Computing. Ia menyelesaikan
pendidikan sarjana di bidang Teknik
Informatika dari Universitas Atma Jaya
Makassar dan melanjutkan studi magister di
bidang yang sama di Universitas Atma Jaya
Yogyakarta. Kepakarannya mencakup
pengembangan perangkat keras dan komputasi cerdas, yang sejalan
dengan pokok bahasan dalam buku ini. Sebagai dosen profesional dan
peneliti aktif, ia telah menghasilkan berbagai penelitian di bidang
kepakarannya, baik yang didanai secara internal oleh perguruan tinggi
maupun eksternal oleh Kemenristek DIKTI. Penulis juga aktif dalam
kegiatan pengabdian kepada masyarakat melalui penerapan teknologi
berbasis riset. Buku ini disusun berdasarkan pengalaman akademik
dan profesional, serta diharapkan dapat menjadi kontribusi nyata
dalam pengembangan ilmu pengetahuan di bidang informatika.
Penulis terbuka untuk berkolaborasi dalam penelitian dan
pengabdian, dan dapat dihubungi melalui email:
alfredo_gormantara@[Link].
BAB 12
INPUT/OUTPUT (FILE
HANDLING)
Pendahuluan
Dalam java, paket [Link] mengelola operasi I/O. Paket ini
menawarkan kelas-kelas untuk menulis dan membaca data dari
berbagai sumber, seperti memori, file, atau bahkan jaringan. Ide
pokoknya adalah aliran. Stream merupakan aliran informasi yang bisa
berupa byte (byte stream) atau karakter (character stream) (Team,
2024).
Stream I/O adalah sarana untuk memasukkan data atau tujuan
untuk mengeluarkan data. Stream dapat mewakili berbagai jenis
sumber dan target, termasuk berkas disk, perangkat, aplikasi lain,
serta susunan memori. Stream memungkinkan berbagai jenis data,
termasuk byte umum, tipe data dasar, karakter lokal, dan objek.
Beberapa aliran hanya menyalurkan informasi; yang lain mengolah
dan mengubah data dengan cara yang berguna.
Apa pun mekanisme internalnya, semua stream menyajikan
model sederhana yang sama bagi program yang memanfaatkannya:
Stream merupakan rangkaian data. Sebuah aplikasi memanfaatkan
aliran input untuk mengambil data dari suatu sumber, secara
berurutan:
namaBelakang = [Link]();
[Link]("Nama Saya adalah :");
[Link](namaDepan + " " + namaBelakang);
}
3. Class JoptionPane
JoptionPane adalah sebuah class yang menyediakan sarana
menerima dan menampilkan data berbasis grafis. Model tampilan
akan mengikuti tampilan yang disediakan oleh sistem operasi.
JoptionPane terdapat di dalam class [Link].
Pentingnya Try-With-Resources
Saat bekerja dengan I/O dan berkas, sangat penting untuk selalu
menutup stream setelah selesai menggunakannya. Jika tidak ditutup,
sumber daya sistem bisa bocor, file bisa rusak, atau data tidak
tersimpan sepenuhnya. Sejak java 7, ada konstruksi try-with-resources
yang sangat direkomendasikan. Ini secara otomatis menutup semua
sumber daya yang dapat ditutup (implementasi AutoCloseable)
setelah blok try selesai, bahkan jika terjadi exception. Contoh tanpa try-
with-resources (kurang disarankan)(Horstmann 2013):
FileWriter writer = null;
try {
writer = new FileWriter("[Link]");
[Link]("Hello");
} catch (IOException e) {
[Link]();
} finally {
if (writer != null) {
try {
[Link](); // Harus ditutup di sini
} catch (IOException e) {
[Link]();
}
}
}
Sejak Java 7, ada API I/O baru yang lebih modern dan efisien, yaitu
NIO.2 (New Input/Output 2), yang berada di paket [Link]. API ini
menawarkan (Magazine 2003):
1. Path: representasi jalur file yang lebih fleksibel dan kuat daripada
file.
2. Files: kelas utilitas dengan metode statis untuk melakukan operasi
file umum (menyalin, memindahkan, menghapus, membaca semua
baris, menulis semua byte, dll.) dengan lebih mudah dan aman.
3. DirectoryStream: untuk melakukan iterasi pada konten direktori
secara efisien.
Daftar Pustaka
Bloch, J. (2018). Effective Java 3rd Edition. Best Practices for Java
Platform.
Evi Lestari Pratiwi. (2020). Konsep Dasar Algoritma Dan
Pemrograman Dengan Bahasa Java. Edited by Adi Pratomo.
Banjarmasin Utara: Poliban Press.
Horstmann, Cay S. (2013). Core Java, Volume I: Fundamentals, 12th
Edition.
Java. (2024). Java Tutorial. Retrieved
([Link]
ml).
Magazine, Software Development. (2003). A Brain-Friendly Guide -
Head First JAVA 2nd Edition Covers Java 5.0.
Team, Java. (2024). The JavaTM Tutorials. Retrieved
([Link]
).
PROFIL PENULIS
Fahmi Fadillah Septiana, [Link].,
[Link].
Ketertarikan penulis terhadap
Pemrograman dan juga Sistem komputer
dimulai pada tahun 2013 silam. Hal tersebut
membuat penulis memilih untuk masuk ke
Sekolah Menengah Kejuruan di SMK Negeri 9
Garut dengan memilih Jurusan Teknik
Multimedia (MM) dan berhasil lulus pada
tahun 2016. Penulis kemudian melanjutkan
pendidikan ke Perguruan Tinggi dan berhasil
menyelesaikan studi S1 di prodi Teknik Informatika Institut Teknologi
Garut pada tahun 2020. Dua tahun kemudian, penulis menyelesaikan
studi S2 di prodi Ilmu Komputer Program Pasca Sarjana Universitas
Nusa Mandiri Jakarta. Penulis memiliki kepakaran di bidang Web
Programming dan Internet of Things Engineering (IoT Engineer). Dan
untuk mewujudkan karir sebagai dosen profesional, penulis pun aktif
sebagai Trainer di berbagai sekolah nasional ataupun internasional
dan juga menjadi peneliti di bidang kepakarannya tersebut. Beberapa
penelitian yang telah dilakukan didanai oleh internal perguruan tinggi
dan juga Kemenristek DIKTI. Selain peneliti, penulis juga aktif menulis
buku dengan harapan dapat memberikan kontribusi positif bagi
bangsa dan negara yang sangat tercinta ini. Atas dedikasi dan kerja
keras dalam menulis, Penulis berhasil menerbitkan beberapa jurnal
terakreditasi baik ter-index sinta ataupun nasional.
BAB 13
UNIT TESTING DENGAN
JUNIT
@Test
@Tag("UI") // Tes ini terkait UI
void testHomePageLayout() {
assertTrue(true); // Asumsi tes UI
}
4. Dynamic Tests
Dynamic Test merupakan fitur yang memungkinkan kita membuat
dan mendaftarkan tes secara dinamis saat runtime, bukan saat
kompilasi. Ini berbeda dengan Parameterized Tests yang
menyediakan data inputan untuk tes yang sudah didefinisikan
secara statis sebelumnya. Anotasi dari dynamic tests ini yaitu
@TestFactory. Contoh Penggunaan Dynamic Tests:
@TestFactory
Collection<DynamicTest> dynamicTestsWithCollection() {
Kesimpulan
Unit testing adalah fondasi penting dalam pengembangan perangkat
lunak modern saat ini, sehingga hasil kode yang kita buat sudah sesuai
dan terhindar dari kesalahan. JUnit adalah framework tercepat saat ini
untuk ekosistem java dalam melakukan Unit Testing. Terdapat
arsitektur modular di dalam JUnit 5 yaitu JUnit Platform, JUnit Jupiter
dan JUnit Vintage sehingga memberikan fleksibilitas yang bisa
diandalkan.
Daftar Pustaka
Bechtold, S., Brannen, S., Link, J., Merdes, M., Philipp, M., de Rancourt,
J., & Stein, C. (2025, Agustus 2). JUnit 5 User Guide.
[Link]
[Link]
Junit-team. (2025a). [Link] from junit-jupiter-starter-gradle.
[Link]
examples/blob/r5.13.4/junit-jupiter-starter-gradle/[Link].
Junit-team. (2025b, Agustus 2). [Link] from junit-jupiter-starter-
maven. [Link]
examples/blob/r5.13.4/junit-jupiter-starter-maven/[Link].
Khorikov, Vladimir. (2020). Unit Testing Principles, Practices, and
Patterns.
PROFIL PENULIS
Yosep Bustomi, S.T., [Link].
Seorang praktisi berpengalaman > 15 tahun
bergelut di bidang pengembangan perangkat
lunak. Selain menjadi praktisi saat ini penulis
aktif juga sebagai akademisi menjadi dosen
tetap di Program Studi Rekayasa Sistem
Komputer, Universitas Garut (UNIGA).
Berbagai proyek perangkat lunak yang sudah
dikerjakan, baik untuk Perusahaan BUMN dan
Perusahaan Swasta yang berfokus di bidang keuangan dan perbankan.