Java - Sistem Modul

Pengenalan kepada Sistem Modul Java

Halo, pemrogram Java yang aspiratif! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia Sistem Modul Java. Sebagai guru ilmu komputer yang ramah di lingkungan kita, saya di sini untuk menjelaskan topik yang menarik ini langkah demi langkah. Jangan khawatir jika kamu baru mengenal pemrograman – kita akan mulai dari dasar dan maju bersama!

Java - Module System

Apa itu Modul?

Mari kita mulai dengan analogi sederhana. Bayangkan jika kamu sedang membuat castel LEGO. Setiap kaca LEGO mewakili potongan kode, dan instruksi menjelaskan bagaimana untuk menggabungkannya. Dalam Java, sebuah modul seperti bagian prabangun castel kamu – itu adalah koleksi kode yang terkait yang bekerja bersama untuk menjalankan fungsi tertentu.

Dalam istilah teknis, sebuah modul dalam Java adalah unit kode yang mandiri yang mencakup:

  1. Kelas dan antarmuka
  2. Sumber daya (seperti gambar atau file konfigurasi)
  3. Definisi yang jelas tentang apa yang diperlukan dari modul lain
  4. Deklarasi tentang apa yang diberikan kepada modul lain

Pikirkan tentang itu sebagai rak peralatan yang teratur di mana semua memiliki tempat dan tujuannya.

Fitur dari Sistem Modul Java

Sistem Modul Java, diperkenalkan di Java 9, membawa beberapa fitur yang menarik ke atas meja. Mari kita jelajahi satu per satu:

1. Encapsulation yang Kuat

Ingat saat kamu masih kecil dan memiliki rak rahasia tempat kamu menyimpan harta kamu? Modul bekerja sama seperti itu. Mereka memungkinkan kamu untuk memutuskan mana bagian dari kode kamu yang terlihat oleh orang lain dan mana yang menjadi "harta rahasia" kamu.

module com.myapp.secretbox {
exports com.myapp.secretbox.api;
}

Dalam contoh ini, hanya kelas di paket com.myapp.secretbox.api yang terlihat oleh modul lain. Semua yang lain disembunyikan!

2. Konfigurasi yang Handal

Modul dengan jelas menyatakan apa yang diperlukannya dari modul lain. Itu seperti membuat daftar belanja sebelum pergi ke toko buah dan sayur – kamu tahu persis apa yang kamu butuhkan, dan kamu tidak akan lupa apapun!

module com.myapp.kitchen {
requires com.myapp.fridge;
requires com.myapp.stove;
}

Di sini, modul kitchen kita menyatakan bahwa dia butuh modul fridge dan stove untuk berfungsi dengan baik.

3. Performa yang Ditingkatkan

Dengan modul, Java dapat lebih cerdas tentang memuat hanya kode yang diperlukan. Itu seperti membawa hanya pakaian yang kamu akan pakai untuk perjalanan, bukannya memuat seluruh rak pakaian kamu!

Mendeklarasikan sebuah Modul

Sekarang, mari kita untuk membuat modul pertama kita. Kita akan memulai dengan membuat file bernama module-info.java di root direktori kode sumber kita.

module com.myapp.greetings {
exports com.myapp.greetings.api;
}

Pernyataan sederhana ini membuat modul bernama com.myapp.greetings dan membuat paket com.myapp.greetings.api tersedia bagi modul lain.

Menambahkan Modul yang Bergantung

Kadang-kadang, modul kita mungkin perlu menggunakan kode dari modul lain. Kita dapat menentukan dependensi ini menggunakan kata kunci requires.

module com.myapp.greetings {
requires com.myapp.translations;
exports com.myapp.greetings.api;
}

Dalam contoh ini, modul greetings kita butuh modul translations untuk berfungsi dengan benar.

Menambahkan Modul Opsional

Apa jika kita memiliki modul yang baik untuk dimiliki tetapi tidak absolut harus? Itu tempat modul opsional menjadi berguna!

module com.myapp.greetings {
requires com.myapp.translations;
requires static com.myapp.fancyfonts;
exports com.myapp.greetings.api;
}

Kata kunci static memberitahu Java bahwa modul fancyfonts adalah opsional. Modul greetings kita akan bekerja tanpa itu, tetapi dapat menggunakan fancyfonts jika tersedia.

Menambahkan Modul Transisi

Kadang-kadang, kita ingin menyalurkan dependensi kita ke modul yang bergantung padanya. Kita dapat melakukan ini menggunakan kata kunci transitive.

module com.myapp.greetings {
requires transitive com.myapp.translations;
exports com.myapp.greetings.api;
}

Sekarang, setiap modul yang memerlukan com.myapp.greetings secara otomatis mendapatkan akses ke com.myapp.translations juga.

Meng eksportkan Kelas Umum

Ketika kita ingin membuat paket tertentu tersedia bagi modul lain, kita menggunakan kata kunci exports.

module com.myapp.greetings {
exports com.myapp.greetings.api;
exports com.myapp.greetings.utils to com.myapp.testing;
}

Dalam contoh ini, kita membuat paket api tersedia untuk semua modul, tetapi paket utils hanya tersedia bagi modul com.myapp.testing.

Mengizinkan Refleksi

Kadang-kadang, kita perlu mengizinkan modul lain untuk menggunakan refleksi pada kelas kita. Kita dapat melakukan ini dengan kata kunci opens.

module com.myapp.greetings {
exports com.myapp.greetings.api;
opens com.myapp.greetings.internal to com.myapp.testing;
}

Ini mengizinkan modul com.myapp.testing untuk menggunakan refleksi pada kelas di paket com.myapp.greetings.internal.

Membuat dan Menggunakan Modul Java

Sekarang bahwa kita telah menangani dasar-dasar, mari kita gabungkan semua dan buat aplikasi modul yang sederhana. Kita akan membuat dua modul: com.myapp.greetings dan com.myapp.main.

Pertama, mari kita buat modul com.myapp.greetings:

// module-info.java
module com.myapp.greetings {
exports com.myapp.greetings;
}

// com/myapp/greetings/Greeter.java
package com.myapp.greetings;

public class Greeter {
public static String greet(String name) {
return "Hello, " + name + "!";
}
}

Sekarang, mari kita buat modul com.myapp.main yang menggunakan modul greetings kita:

// module-info.java
module com.myapp.main {
requires com.myapp.greetings;
}

// com/myapp/main/Main.java
package com.myapp.main;

import com.myapp.greetings.Greeter;

public class Main {
public static void main(String[] args) {
System.out.println(Greeter.greet("Java Modules"));
}
}

Untuk mengkompilasi dan menjalankan aplikasi modul ini, kita menggunakan perintah berikut:

javac -d mods --module-source-path src $(find src -name "*.java")
java --module-path mods -m com.myapp.main/com.myapp.main.Main

Dan voilà! Anda baru saja membuat dan menjalankan aplikasi Java modul pertama Anda.

Kesimpulan

Selamat karena telah mengikuti pengenalan kepada Sistem Modul Java! Kita telah membahas banyak hal, dari pengertian apa itu modul sampai membuat dan menggunakan mereka dalam aplikasi nyata. Ingat, seperti belajar untuk bersepeda, menguasai modul memerlukan praktek. Jangan takut untuk bereksperimen dan membuat kesalahan – itulah cara kita belajar terbaik!

Sebagai Anda melanjutkan perjalanan Java Anda, Anda akan menemukan bahwa modul membantu Anda membuat aplikasi yang lebih terorganisir, aman, dan efisien. Mereka seperti bahan rahasia yang membuat kemampuan pemrograman Anda dari baik menjadi luar biasa.

Teruslah coding, teruslah belajar, dan yang paling penting, nikmatilah! Sampai jumpa lagi, selamat modulating!

Credits: Image by storyset