MSIM4203 - Modul 4
Ringkasan materi Module 4 untuk persiapan UAS MSIM4203
Pengantar Java
Java adalah bahasa pemrograman yang sangat populer, menduduki peringkat teratas dalam survei Tiobe pada April 2018. Kepopuleran ini didorong oleh beberapa faktor utama:
- Tren teknologi: Java stabil dengan konsep OOP dan library yang lengkap, mendukung pemrograman desktop maupun mobile.
- Penggunaan oleh perusahaan besar: Banyak perusahaan besar mengadopsi Java, mendorong programmer untuk mempelajarinya.
- Efisiensi: Menawarkan efisiensi waktu dan biaya eksekusi, translasi, kompilasi, serta pemeliharaan yang relatif murah.
- Dukungan komunitas: Memiliki komunitas developer terbesar di dunia, menyediakan dukungan yang luas.
Sejarah Java
Nama "Java" terinspirasi dari kopi Jawa yang sering diminum tim pengembang di Sun Microsystems. Pada tahun 1991, tim The Green Project (dipimpin oleh James Gosling) bertujuan menciptakan bahasa komputer sederhana untuk hardware dan sistem operasi yang beragam. Proyek ini menghasilkan produk OAK pada tahun 1992, yang kemudian diubah namanya menjadi Java karena sudah ada bahasa pemrograman OAK sebelumnya. Sun Microsystems merilis versi awal Java pada awal 1996, dan terus berkembang hingga disusul oleh Netscape dan Internet Explorer. Versi 1.2 dikenal sebagai Java2 dengan penambahan fitur Swing untuk GUI yang portabel.
Konsep Pemrograman
Terdapat dua konsep pemrograman utama: terstruktur dan berorientasi objek.
Konsep Pemrograman Terstruktur
Pemrograman terstruktur adalah metode pemrograman logis yang memfasilitasi pemahaman dan modifikasi program dengan pendekatan top-down, membagi sistem menjadi subsistem atau sub-prosedur. Konsep ini diperkenalkan pada tahun 1966 oleh Corrado Böhm dan Giuseppe Jacopini.
"Pemrograman terstruktur memberikan pendekatan global pada suatu permasalahan (prosedur besar), yang kemudian dipecah menjadi prosedur-prosedur yang lebih kecil dan saling terintegrasi satu dengan yang lainnya."
Contoh bahasa pemrograman terstruktur meliputi Pascal, Cobol, Fortran, Basic, dan C.
Konsep Pemrograman Berorientasi Objek (OOP)
Pemrograman Berorientasi Objek (OOP) dimulai pada tahun 1960-an. Bahasa pemrograman pertama yang menggunakan objek adalah Simula 67. Salah satu kelebihan OOP adalah membagi program menjadi objek-objek yang saling berinteraksi. Java adalah bahasa pemrograman berbasis objek yang dibangun di atas konsep OOP.
Konsep dasar OOP meliputi:
- Objek: Bagian terkecil pemrograman yang memiliki sifat (state) dan perilaku (behavior). Objek memiliki atribut/property (identitas/nilai) dan method (fungsi untuk mengakses atribut).
- Class: Blueprint atau prototipe dari sebuah objek. Komponen dalam class adalah atribut/property dan method/behavior yang didefinisikan.
- Instance: Objek adalah instance dari suatu class, yaitu perwujudan konkret dari class tersebut.
- Abstraction (Abstraksi): Cara pandang terhadap objek dalam bentuk sederhana, fokus pada fungsionalitas tanpa perlu detail internal.
- Inheritance (Pewarisan): Memungkinkan class mewarisi state dan behavior dari super-class lain. Dalam Java, setiap class boleh memiliki satu super-class langsung dan sejumlah sub-class. Menggunakan keyword
extends. - Encapsulation (Enkapsulasi): Pembungkus yang melindungi proses program agar tidak diakses sembarangan. Pondasi enkapsulasi adalah class. Izin akses diatur oleh modifier:
public,protected, danprivate.public: Dapat diakses oleh semua class dalam maupun luar package.protected: Dapat diakses oleh sub-class dalam package yang sama atau class pada package yang berbeda (terbatas).private: Hanya bisa diakses oleh class yang sama.
- Polymorphism (Polimorfisme): Kemampuan suatu hal yang sama untuk memiliki berbagai bentuk dan perilaku berbeda. Dalam OOP, memungkinkan pengenalan dan eksploitasi keserupaan antar class berbeda.
Kelebihan dan Kekurangan Java
Setiap bahasa pemrograman memiliki kelebihan dan kekurangannya.
Kelebihan Pemrograman Java
- Multiplatform: "Tulis sekali, jalankan di mana saja". Dapat berjalan di berbagai platform seperti Microsoft Windows, Linux, Mac OS, dan Sun Solaris.
- Library yang lengkap: Kaya akan library yang memudahkan programmer karena tidak perlu membangun fungsi dari awal.
- Sintaks mendekati C++: Mempermudah programmer C++ untuk beralih ke Java. Banyak perguruan tinggi di Indonesia menggunakan Java.
- Berorientasi Objek (OOP): Struktur pemrograman yang terorganisir, membungkus objek dalam class yang terdiri dari attribute dan method.
Kelemahan Pemrograman Java
- Fitur tidak kompatibel sepenuhnya: Beberapa fitur mungkin tidak berjalan di semua platform meskipun Java bersifat multiplatform.
- Boros penggunaan memori: Menggunakan memori yang cukup besar, meski saat ini bukan masalah besar karena harga memori lebih murah.
- Mudah didekompilasi: Karena Java adalah bytecode, mudah untuk dikembalikan ke kode sumber, memerlukan upaya lebih untuk perlindungan kode.
Java Development Kit (JDK)
JDK (Java Development Kit) adalah software development kit untuk mengembangkan aplikasi Java. Terdiri dari interpreter (java), kompiler (javac), generator dokumentasi (javadoc), dan pengemas file JAR (jar), serta debugger (jdb). JDK juga mencakup Java Runtime Environment (JRE).
Komponen-komponen JDK:
javac: Kompiler Java, mengubah kode sumber ke bytecode.java: Loader untuk aplikasi Java, menginterpretasikan file class hasil kompilasi.javadoc: Generator dokumentasi dari kode sumber.jar: Untuk mengelola file JAR, mengemas library class ke dalam satu file JAR.jdb: Debugger untuk melacak kesalahan logis dalam program Java.
Struktur Program Java
Struktur dasar program Java mencakup beberapa bagian standar:
- Documentation Section: Bagian untuk komentar yang membantu pemahaman program. Tersedia tiga bentuk komentar:
/* ... */(multi-garis),/** ... */(dokumentasi multi-garis), dan//(satu-garis). - Package Statement: Pernyataan
packagedigunakan untuk mengelola sekelompok class, interface, atau sub-package berdasarkan fungsi. Contoh:package nama_paket;. Penamaan package harus unik dan menggambarkan class. - Import Statements: Pernyataan
importdigunakan untuk merujuk method/class yang dideklarasikan di package/library lain. Contoh:import from_package;atauimport paketSepeda.*;untuk mengimpor semua class dalam package. - Interface Statement: Mirip class, namun hanya memiliki konstanta static dan method abstract. Digunakan untuk memaksimalkan multi-inheritance. Semua method dalam interface bersifat
publicdanabstractsecara implisit. Contoh:public interface nama_interface { void apapun_namanya(); }. - Class Definition: Class adalah template untuk membuat objek yang mendefinisikan state dan behavior.
- Class public harus memiliki nama file Java yang sama dengan nama class-nya.
- Satu file Java bisa memuat lebih dari satu class non-public, namun hanya satu class public.
- Class public dapat dilihat oleh semua class. Class dengan akses default hanya dapat dilihat oleh class dalam package yang sama.
- Sintaks umum:
public class NamaClass { //field, constructor, dan method }.
- Main Method Class
- Main Method Definition
Penulisan, Kompilasi, dan Eksekusi Program Java
Proses pembuatan aplikasi Java meliputi:
- Penulisan kode program: Membuat file dengan ekstensi
.java(misalnyaHaloJava.java). - Kompilasi: Menggunakan perintah
javac HaloJava.java. Jika berhasil, akan menghasilkan file bytecode.class(misalnyaHaloJava.class). Jika ada kesalahan sintaks, akan muncul pesan error. - Eksekusi program: Menjalankan file bytecode dengan perintah
java HaloJava.
Tipe Data dan Variabel
Variabel adalah lokasi memori untuk menyimpan nilai, dialokasikan sesuai tipe data.
Tipe Data Primitif
Java memiliki delapan tipe data primitif, yang dibagi menjadi empat kelompok:
- Bilangan Bulat (integer):
byte: 8-bit, nilai -128 hingga 127.short: 16-bit, nilai -32.768 hingga 32.767.int: 32-bit, nilai -2,147,483,648 hingga 2,147,483,647.long: 64-bit, nilai -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807.
- Bilangan Real (desimal):
float: presisi tunggal 32-bit, nilai awal 0.0f.double: presisi tunggal 64-bit, nilai awal 0.0d.
- Karakter:
char: karakter unicode 16-bit tunggal, nilai '\u0000' hingga '\uffff'. Contoh:char karakterA = 'a'.
- Logika:
boolean: hanya terdiri dari satu bit, nilaitrueataufalse, nilai awalfalse.
Tipe Data Referensi/Objek
Tipe data referensi digunakan untuk menentukan referensi dari sebuah objek (instance dari class). Variabel referensi dibuat menggunakan constructor dari class dan digunakan untuk mengakses objek. Contoh: String namaSepeda = "Sepeda Santai";.
Perbedaan Tipe Data Primitif dan Referensi:
| Tipe Data Primitif | Tipe Data Referensi/Objek |
|---|---|
| Diawali huruf kecil | Diawali huruf besar |
| Built-in (tertanam) & reserve-keyword | Bukan reserve-keyword |
| Merepresentasikan nilai tunggal | Dapat menampung nol atau lebih nilai primitif/objek |
Contoh: int nilai = 12; | Contoh: String nama = "Budi"; |
Jenis Variabel
Java mengakomodasi tiga jenis variabel:
- Variabel Lokal:
- Dideklarasikan di dalam method, constructor, atau block.
- Dibuat saat masuk dan dihapus saat keluar dari block tersebut.
- Tidak berlaku access modifier.
- Penggunaan terbatas pada block deklarasinya.
- Harus diinisiasi dari awal (tidak memiliki nilai awal default).
- Variabel Instance (Non-Static):
- Dideklarasikan di dalam class, tetapi di luar method, constructor, atau block.
- Disiapkan dalam memori ketika objek dibuat dengan keyword
new. - Dapat dideklarasikan sebelum/sesudah penggunaan.
- Access modifier dapat digunakan.
- Memiliki nilai default (0 untuk numerik,
falseuntuk boolean,nulluntuk referensi).
- Variabel Class/Static:
- Dideklarasikan menggunakan keyword
staticdi dalam class, tetapi di luar method, constructor, atau block. - Hanya ada satu salinan per class.
- Biasanya dideklarasikan sebagai konstanta (nilai tetap).
- Dibuat saat program dimulai dan dihapus saat program berhenti.
- Memiliki nilai default.
- Dapat diakses dengan nama class (misalnya
Sepeda.namaSepeda). - Jika dideklarasikan
public static final, nama variabel ditulis kapital.
- Dideklarasikan menggunakan keyword
Poin Penting
- Java adalah bahasa pemrograman berorientasi objek yang sangat diminati, digunakan secara luas oleh perusahaan besar, dan memiliki dukungan komunitas yang kuat.
- Konsep OOP dalam Java meliputi Objek, Class, Abstaksi, Enkapsulasi, Pewarisan, dan Polimorfisme.
- Kelebihan Java meliputi sifat multiplatform, library yang lengkap, sintaks yang mirip C++, dan berorientasi objek. Kekurangannya adalah penggunaan memori yang boros dan mudah didekompilasi.
- JDK (Java Development Kit) adalah perangkat lunak pengembangan Java yang berisi kompiler (
javac), interpreter (java), dan debugger (jdb). - Struktur program Java mencakup Documentation Section, Package Statement, Import Statements, Interface Statement, dan Class Definition.
- Pernyataan
packagemengelola class dan interface, sedangkanimportuntuk mreferensi class dari package lain. - Tipe data di Java terdiri dari primitif (byte, short, int, long, float, double, char, boolean) dan referensi/objek (instance dari class).
- Variabel di Java dapat berupa lokal (scope terbatas, harus diinisiasi), instance (milik objek, punya nilai default), atau class/static (milik class, diakses langsung melalui class).
Tes Formatif 1 — Kegiatan Belajar 1
1.Desain pemrograman dengan desain *top-down* adalah konsep pendekatan bahasa pemrograman terstruktur, pola ini pertama kali diperkenalkan oleh ...
2.Bahasa pemrograman yang menerapkan konsep pemrograman terstruktur adalah ...
3.Pemrograman Berorientasi Objek pertama kali diperkenalkan pada tahun 1960-an. Bahasa pemrograman yang pertama menggunakan konsep tersebut adalah ...
4.Perusahaan yang mempelopori lahirnya bahasa pemrograman Java adalah ...
5.Software yang bisa digunakan untuk editor Java adalah, kecuali ...
6.Fungsi dari komponen Java yang bernama `.jdb` adalah ...
7.Yang berkaitan dengan OOP adalah ...
8.Sun Microsystem berhasil meluncurkan sebuah browser Java yang diberi nama ...
9.Browser Netscape berhasil mengadopsi teknologi Java pada ...
10.Kepanjangan dari JDK adalah ...
Tes Formatif 2 — Kegiatan Belajar 2
1.Komentar dokumentasi yang tepat di bawah ini adalah ...
2.Paket java.io digunakan untuk ...
3.Sintaks pernyataan paket yang benar berikut ini yang diikuti oleh nama paket sepeda adalah ...
4.Sebuah pernyataan paket harus mengikuti aturan/kaidah dari pemrograman Java, empat aturan/kaidah dalam penamaan paket yang benar adalah ...
5.Pernyataan `import paketSepeda.*;` memberikan asumsi bahwa ...
6.Pernyataan yang benar dari sebuah *interface* adalah sebuah ...
7.Kaidah penamaan *class public* yang tepat berikut ini adalah penamaan file ...
8.Perhatikan potongan *script* berikut ... 1. public class Sepeda_Gunung { public void info() 2. { 3. System.out.println("Ini sepeda gunung"); 4. 5. }; Agar *script* di atas berjalan pada saat dikompilasi, maka pada baris ke 4 harus dilengkapi dengan ...
9.Maksud dari pernyataan `import paketSepeda.*;` adalah ...
10.Maksud dari pernyataan `//import paketSepeda.*;` adalah ...
Tes Formatif 3 — Kegiatan Belajar 3
1.Kelompok besar tipe data pada Java terdiri dari ...
2.Tipe data byte, short, int, long, float, double, char, dan boolean adalah jenis tipe data ...
3.Jika dikelompokkan, maka tipe data pada pemrograman Java, terdiri dari ...
4.True/False termasuk dalam kelompok tipe data ...
5.Batas minimum dan maksimum nilai tipe data integer adalah ...
6.Nilai awal dari tipe data boolean adalah ...
7.Pernyataan yang benar di bawah ini tentang tipe data primitif ...
8.Pernyataan yang benar tentang variabel lokal adalah ...
9.Variabel instance dibuat dengan keyword ...
10.Variabel class dideklarasikan menggunakan keyword ...