Seri Pemrograman
PENGUMUMAN
Tim Apache NetBeans mengumumkan bahwa Apache NetBeans 19 dirilis pada 1 September
2023. Halaman unduh Apache NetBeans XIX:
https://cwiki.apache.org/confluence/display/NETBEANS/Release+Schedule
Atau
https://www.apache.org/dyn/closer.cgi/netbeans/netbeans-installers/19/Apache-NetBeans-19-
bin-windows-x64.exe
FSTI ISTN #1
2
BAHAN PRAKTIKUM
Pastikan laptop sudah terinstall Java, misal pada cmd ketik java -version
https://tomcat.apache.org/download-10.cg
Apache Tomcat ini merupakan server aplikasi web open-source yang dikembangkan oleh
Apache Software Foundation/ASF untuk menjalankan aplikasi web berbasis keluaran Java (Like
as Container) servlets dan JSP (JavaServer Pages). Artinya sudah pasti harus ada untuk
menjalankan aplikasi-aplikasi yang kita buat nantinya.
2
3
Lalu Download Template Bootstrap terbaru (5.3.0) sebagai bahan uji web:
https://blog.getbootstrap.com/2023/05/30/bootstrap-5-3-0/
Atau
https://getbootstrap.com/docs/5.3/examples/
Adapun kegunaan Bootstrap adalah untuk pembuatan tampilan dan antarmuka web yang
responsif, menarik, dan mudah diakses. Bootstrap 5 ini mengurangi ketergantungan pada
JavaScript dan jQuery. Sehingga memungkinkan penggunaan JavaScript murni (vanilla
JavaScript) untuk meningkatkan kinerja dan kompatibilitas antar browser.
Beberapa komponen UI seperti modals, alerts, dan forms telah ditingkatkan dalam Bootstrap 5,
efeknya adalah lebih responsif dan mudah digunakan. Fitur Sistem grid Bootstrap V telah juga
ditingkatkan dengan penambahan fitur seperti responsif terhadap ukuran layar yang berbeda.
3
4
Jika sudah sesuai (posisi path assets terhadap script dalam index.html sudah tepat) maka sudah
bisa kita gunakan pada praktek selanjutnya.
Apache NetBeans adalah salah satu Integrated Development Environment (IDE) untuk
mengembangkan aplikasi dan proyek-proyek berbasis Java dalam hal mengembangkan,
menguji, dan menganalisis sistem yang dibuat.Support untuk keluaran berbasis CLI, Desktop,
Web dan Mobile; Juga sebagai Software versi baru untuk Java Apps yang terintegrasi dan gratis,
dengan bahasa pemrograman yang di supportnya antara lain: Java SE, Java EE, PHP, JavaScript,
dan Groovy. Selain fitur-fiturnya, ada sistem desain berbasis Ant, kontrol versi, dan
pemfaktoran ulang.Juga adanya beberapa peningkatan dukungan telah ditambahkan untuk C /C
++, Java, PHP dan HTML. (https://netbeans.apache.org)
4
5
Nama "Apache" dalam "Apache NetBeans", juga "Apache HTTP Server" dan "Apache Tomcat"
merujuk kepada Apache Software Foundation (ASF), / organisasi nirlaba.Nama "Apache"
digunakan sejalan dengan penggabungannya dengan ASF.
Kini September 2023, Versi terbarunya adalah Apache NetBeans XIX., pada rilis ini sudah
ditambahkan dukungan untuk fitur bahasa Java terbaru, sudah mampu mengintegrasikan
kode-kode baru dari Oracle untuk pengembangan Web Java, meningkatkan perangkat Apache
Maven terbaik, menghadirkan beberapa peningkatan untuk pengguna Gradle, termasuk fitur
bawaan untuk Payara dan WildFly untuk pertama kali, memperkenalkan template baru untuk
JavaFX, meningkatkan dan memperluas editor PHP-nya, menyediakan opsi tampilan dan
nuansa gelap baru, dan mencakup berbagai perbaikan.
Semua fitur yang disediakan oleh Apache NetBeans kini adalah tanpa perlu menginstal plugin
tambahan, dan semuanya gratis. Sebagai info, pada Apache NetBeans 12.0 adalah rilis NetBeans
LTS pertama yang sudah support Long Term Support /dukungan yang diberikan oleh developer
software dalam jangka waktu yang panjang.Aplikasi LTS adalah Sistem Software yang di rilis
dengan dukungan dari developer Netbeans dalam waktu yang lama, yaitu 3 tahun untuk versi
desktop dan 5 tahun untuk versi server.
Sedang yang NON LTS, artinya Developer Sosftware tersebut memiliki repository untuk
melakukan update aplikasi, software dan sistem secara sendiri. Sehingga jika dukungan dari
sistem itu sudah habis (sudah lebih dari 18 bulan) maka repository dari sistem itu sendiri tidak
akan di perpanjang lagi oleh pengembang, tidak dikelola lagi, sehingga repository sistemnya
sendiri bisa hilang atau experied, aplikasi ataupun sistem yang digunakan tidak bisa di upgrade
maupun di update.
5
6
Instalasi Netbeans
Setelah download (Apache-NetBeans-19-bin-windows-x64.exe) cukup klik 2x untuk menjalankan.
6
7
Pada menu pemilihan server yang diberikan, arahkan Tomcat Apache kepada posisi path hasil
extract / install Apache Tomcat di atas (C:\Program Files\apache-tomcat-10.0.27):
7
8
Dan diakhir proses Wizard pembuatan web Hello World akan dimunculkan kelengkapan sbb:
Terbentuk file pom.xml , sebagai file konfigurasi Maven tentang proyek, dependensi,
pengaturan build, dan plugin yang akan digunakan dalam proyek tersebut.
Lebih tepatnya, file ini berisi informasi tentang proyek seperti nama proyek, deskripsi, versi
proyek, dan informasi lainnya yang berkaitan dengan identitas proyek.
Didalamnya juga ada fitur pengaturan Dependensi, yaitu pustaka-pustaka eksternal yang
diperlukan oleh proyek Apps. Maven akan mengunduh dan mengelola dependensi ini secara
otomatis.
8
9
Pengaturan Plugin Maven: mengkonfigurasi plugin-plugin Maven dalam file pom.xml untuk
menjalankan berbagai tugas seperti kompilasi kode, pengemasan aplikasi, pengujian, dan
lainnya.
Konfigurasi Build: yaitu mencakup konfigurasi build proyek, seperti direktori output, target
kompilasi, dan lain-lain.
Juga di dalam file ada pengaturan Profil, yaitu sebagai penentu profil-profil khusus dalam file
pom.xml yang memungkinkan aplikasi mengatur konfigurasi berdasarkan lingkungan atau
kondisi tertentu.
Dan xml Repository didalamnya akan mendefinisikan repositori Maven tempat Maven akan
mencari dependensi yang tidak tersedia secara lokal.
Selain itu, direktori terbentuk juga secara automatis folder kerja WEB-INF dan META-INF yang
berguna dalam pengaturan, konfigurasi, dan pemisahan kode sumber dari sumber daya dan
metadata aplikasi.
B. Direktori META-INF; digunakan sebagai arsip WAR (Web Application Archive) dan berisi
metadata terkait dengan aplikasi web.
MANIFEST.MF: berisi informasi meta-data mengenai arsip JAR atau WAR, termasuk versi,
nama pengembang, dan lainnya. yaitu untuk mengidentifikasi aplikasi web dan menyertakan
informasi tambahan tentang aplikasi.
context.xml: berisi konfigurasi spesifik konteks untuk aplikasi web: pengaturan sumber daya,
konfigurasi data sumber, dan pengaturan khusus lainnya .
9
10
persistence.xml (jika menggunakan JPA): untuk konfigurasi JPA (Java Persistence API) jika
aplikasi web menggunakan JPA untuk mengakses basis data.
Direktori META-INF terletak di dalam arsip WAR, yang artinya metadata ini akan diakses saat
aplikasi web di-deploy pada server seperti Tomcat. Dan Metadata ini dapat digunakan untuk
konfigurasi tambahan atau untuk mengidentifikasi aplikasi web tertentu.
Pada contoh Web Hello World yang terbentuk, jalankan dengan cara klik kanan RUN FILE
Error Apache
Ada kalanya saat dijalankan ada kesalahan dengan menampilkan pesan sbb:
10
11
-----------------------------------------------------
realm = plugin>org.apache.maven.plugins:maven-war-plugin:2.3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/adiarray/.m2/repository/org/apache/maven/plugins/maven-war-plugin/2.3/maven-war-plugin-2.3.jar
urls[1] = file:/C:/Users/adiarray/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
urls[2] = file:/C:/Users/adiarray/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
SOLUSI MAVEN
Gunakan posisi Plugin Maven sbb untuk menggantikan plugins di file POM.xml:
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
11
12
<executions><execution>
<phase>validate</phase>
<goals><goal>copy</goal></goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems> <artifactItem>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<type>jar</type>
</artifactItem> </artifactItems>
</configuration>
</execution></executions>
</plugin>
</plugins>
12
13
13
14
lalu copas semua ke isi index.html ke dalam index.jsp; dan jalankan (Klik kanan Run File):
14
15
hasilnya adalah sama…..hanya dengan menggunakan extensi .jsp, kita sudah bisa melakukan
pemrograman Java….berbasis Web !
15
16
16
17
Konfigurasi Automatis akan masuk ke file web.xml, berupa mapping address file; yang artinya
file bisa berdiri sendiri tanpa harus dipanggil melalui link utama lainnya.
17
18
Selanjutnya untuk uji Hello World pada Servlet, lakukan klik kanan pada servlet terbentuk=>
RUN-> File
Selanjutnya, kita akan dibawa ke menu configure servlet; dan Path pemanggilan link bisa diatur
di menu ini:
18
19
ERROR SERVLET
Jika ada pesan kesalahan:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile
(default-compile) on project apacheNine1: Compilation failure: Compilation failure:
latServlet/NewServlet.java:[9,21] package javax.servlet does not exist
latServlet/NewServlet.java:[10,26] package javax.servlet.http does not exist
latServlet/NewServlet.java:[11,26] package javax.servlet.http does not exist
latServlet/NewServlet.java:[12,26] package javax.servlet.http does not exist
latServlet/NewServlet.java:[18,33] cannot find symbol
symbol: class HttpServlet
latServlet/NewServlet.java:[29,35] cannot find symbol
symbol: class HttpServletRequest
location: class latServlet.NewServlet …..
19
20
20
21
Demikian pula pada file yang lain sekiranya ada pesan kesalahan dan library yang digunakan
masih javax. (Bukan jakarta).jakarta.servlet (Jakarta Servlet API): adalah versi dari paket servlet
yang diperbarui dan berada di bawah proyek Jakarta EE setelah migrasi dari Oracle ke Eclipse
Foundation.
Jakarta Servlet API (biasanya disebut Jakarta Servlet) adalah kelanjutan dari Java Servlet API
(javax.servlet) dengan beberapa perubahan dan perbaikan. Jakarta Servlet API memiliki struktur
paket yang serupa dengan javax.servlet, tetapi dengan nama paket yang berbeda.
Perubahan ini termasuk migrasi dari nama paket javax.servlet ke jakarta.servlet. Ini dilakukan
karena masalah lisensi yang melibatkan merek dagang "Java EE" yang dimiliki oleh Oracle.
Seiring dengan perubahan nama paket, juga terdapat perubahan pada kelompok nama paket
terkait lainnya seperti javax.servlet.http, yang berubah menjadi jakarta.servlet.http.
21
22
Catatan:
1.Antara servlet EE dan jakarta EE
jika kita mengembangkan aplikasi web dengan menggunakan Jakarta EE (sebelumnya Java EE)
versi terbaru, maka kita akan menggunakan jakarta.servlet daripada javax.servlet.
Perubahan ini terutama memengaruhi impor paket dalam kode sumber Anda dan penggunaan
dependensi dalam proyek kita nantinya. Jakarta EE bertujuan untuk melanjutkan
pengembangan platform Java EE yang sudah mapan dengan komunitas Jakarta EE yang terbuka
dan beragam.
Gradle: menggunakan bahasa DSL (Domain-Specific Language) berbasis Groovy atau Kotlin untuk mendefinisikan dan
mengkonfigurasi proyek.
Maven: menggunakan format XML untuk konfigurasi proyek. Meskipun XML mudah dibaca, beberapa pengembang
merasa bahwa XML lebih kaku dan kurang ekspresif daripada DSL seperti yang digunakan oleh Gradle.
B. Konfigurasi Proyek:
22
23
Gradle: memungkinkan pengembang untuk mendefinisikan alur kerja yang sangat disesuaikan sesuai dengan kebutuhan
proyek Apps. Ini memungkinkan penyesuaian tingkat tinggi dan kompleksitas dalam konfigurasi proyek.
Maven:
mengikuti konvensi-over-konfigurasi, yang berarti banyak konfigurasi default sudah ada dan diharapkan mengikuti
struktur proyek tertentu. Ini dapat mengurangi keleluasaan dalam menentukan alur kerja proyek.
C. Kinerja:
Gradle: memiliki kinerja yang lebih baik dibandingkan dengan Maven, terutama dalam proyek-proyek besar dengan
banyak dependensi. Ini disebabkan oleh kemampuannya untuk melakukan tugas-tugas build yang lebih cerdas dengan
menggunakan cache.
Maven: umumnya dianggap memiliki kinerja yang baik, tetapi dalam proyek-proyek besar,
kinerja build-nya mungkin menjadi masalah jika tidak diatur dengan benar.
D. Kemampuan Bahasa:
Gradle: Support bahasa pemrograman Groovy dan Kotlin. Ini memungkinkan pengembang untuk menulis kode dalam
bahasa ini dalam file konfigurasi Gradle, yang bisa menjadi kelebihan jika pengembang sudah memiliki pengalaman
dengan bahasa-bahasa ini.
Maven: menggunakan XML untuk konfigurasi, yang bukan bahasa pemrograman seperti Groovy atau Kotlin.
E. Ekosistem Plugin:
Gradle:
memiliki ekosistem plugin yang kuat dan berkembang pesat yang memungkinkan penggunaan plugin pihak ketiga
untuk menambahkan fungsionalitas tambahan ke proyek.
Maven: juga memiliki banyak plugin, tetapi ekosistem plugin Gradle mungkin lebih dinamis dan beragam….
23