Cara Membandingkan String Pada Java

Seperti sudah anda ketahui sebelumnya bahwa String merupakan class yang istimewa pada java dan terdapat beberapa alasan mengapa String tersebut immutable. Terkadang dalam pemrograman Java kita memerlukan untuk membandingkan dua buah String.

Kali ini kita menggunakan method:
  • compareTo()
  • equals()
  • equalsIgnoreCase()
  • compareToIgnoreCase()

membandingkan_string_pada_java

Menggunakan method compareTo(), equals(), equalsIgnoreCase(), dan compareToIgnoreCase()


a) compareTo()


Method compareTo() akan membandingkan nilai String secara leksikografis dan akan mengembalikan nilai berupa integer yang akan menjelaskan apakah string pertama yang dibandingkan tersebut lebih kecil, setara ataupun lebih besar dari string kedua.

Setiap karakter dalam String akan di konversi ke dalam nilai Unicode untuk perbandingan. Jika nilai kedua string setara maka nilai 0 akan dikembalikan dan sebaliknya maka nilai positif atau negatif akan dikembalikan.

Nilai yang dikembalikan akan bernilai positif jika string pertama secara leksikografis lebih besar dibandingkan dengan string kedua dan jika sebaliknya maka nilai negatif akan dikembalikan.


Output:

b) equals


Method equals akan membandingkan konten orisinil dari string. Method ini akan membadingkan equality dari string.


Output:


c) equalsIgnoreCase()


Method ini akan membandingkan dua string dengan persyaratan yang lebih longgar. Jadi selama urutan stringnya sama, walaupun kedua string memiliki perbedaan penggunaan huruf besar dan huruf kecil, ataupun menggunakan penulisan 'camel', maka akan tetap bernilai true.

Lihat contoh berikut ini:



Output:



d. compareToIgnoreCase()

Method ini serupa dengan equalsToIgnoreCase(), hanya saja akan mengembalikan nilai seperti pada method compareTo.



Output

#5 Tips Belajar Bahasa Pemrograman Dasar Dengan Cepat

Pada saat profesi pekerjaan tertentu tergerus oleh perkembangan teknologi dan otomatisasisi, ada satu keterampilan yang terus menjadi lebih diminati daripada sebelumnya, yaitu koding.

Masalahnya memang benar koding itu  bukanlah sesuatu yang mudah. Butuh banyak waktu, kerja keras, dan dedikasi untuk memahami dasar-dasar pengkodean. Ini sama sja seperti belajar bahasa baru tentu saja membutuhkan banyak waktu dan usaha.

Namun, setelah anda berhasil mempelajari bahasa kedua, anda biasanya bisa belajar yang ketiga dan keempat tanpa banyak masalah. Dengan setiap topik baru, semakin cepat anda mulai bermain dengan kode-kode bahasa planet ini, semakin cepat anda akan mempelajari konsep yang diberikan, jadi intinya tetap semangat dan ketekunan. Jangan menyerah sebelum bertempur.

Mungkin anda masih akan menggaruk-garuk kepala saat mencoba untuk menerapkan suatu kode sederhana untuk pertama kalinya.

Terlintas dalam pikiran anda "Mengapa begini dan mengapa begitu?", tapi ini adalah ciri yang positif. Artinya anda memiliki rasa ingin tahu dan ini bagus dalam bidang ilmu apapun.

Meskipun tidak mungkin untuk memberitahukan semua hal yang perlu diketahui tentang pengkodean dalam satu sumber tunggal, pertimbangkan artikel ini sebagai panduan pengantar.

Artikel ini akan memberi beberapa tips, informasi, dan terminologi yang membantu anda untuk memutuskan apakah pengkodean adalah sesuatu yang akan anda minati lebih lanjut nantinya.


belajar_bahasa_pemrograman_dasar_dengan_cepat


Berikut ini adalah tips-tips untuk belajar bahasa pemrograman dasar dengan cepat:

1. Ketahuilah Tujuan Anda Belajar Pemrograman


Apa tujuan anda mempelajari pemrograman? Setiap orang pasti memiliki alasan yang berbeda-beda kenapa mereka harus belajar bahasa pemrograman. Mungkin saja seseorang hanya ingin mencoba-coba tapi tidak serius ingin menjadi programmer atau orang lain mungkin memiliki keseriusan ingin berkarir dalam bidang ini karena prospek masa depan yang lebih baik dengan teknologi yang semakin berkembang.



Tapi apapun alasannya, dengan mengetahui "mengapa" anda ingin mulai belajar pemrograman, akan membantu untuk menentukan arah yang ingin anda ambil dan berapa banyak waktu dan energi yang dapat berikan untuk hal ini.

Misalnya, jika anda hanya ingin mempelajari dasar-dasar pemrograman, anda mungkin tidak perlu berinvestasi dalam bootcamp coding yang intensif. Anda bisa saja hanya mencari buku dan tutorial online yang banyak tersebar diinternet dan gratis.

Tetapi jika anda benar-benar bertekad untuk menginvestasikan diri dan ingin membuat karir pemrograman ataupun hanya ingin menggunakan keterampilan baru untuk memperbaiki pekerjaan anda saat ini atau memulai bisnis baru, maka anda pasti ingin mempertimbangkan untuk bergabung dengan kursus atau program coding.

Jadi tanyakan pada diri anda, untuk apa saya belajar pemrograman? Dan segala sesuatu akan mengikuti setelahnya.

2. Memilih Bahasa Pemrograman Yang Akan Dipelajari


Sebelum anda mulai belajar, anda pasti ingin memilih bahasa pemrograman yang tepat untuk dipelajari.

Ada banyak pendapat dan perdebatan yang berbeda dan seakan tidak pernah berakhir tentang bahasa pemrograman manakah yang "terbaik"?, tapi pada dasarnya apa yang perlu anda ketahui adalah bahwa tidak ada bahasa pemrograman "terbaik". Setiap bahasa pemrograman pasti memiliki  kelebihan dan kekurangannya masing-masing.

Ini akan kembali kepada poin no. 1 untuk apa anda belajar pemrograman? Jika anda ingin serius membuat game maka anda bisa mempelajari bahasa yang banyak digunakan untuk pembuatan game, demikian pula jika anda ingin mahir dalam pembuatan website atau aplikasi android atau yang lainnya pelajarilah bahasa yang paling mendukung untuk bidang itu, setiap bahasa pemrograman memiliki kelebihan tersendiri.

Walaupun demikian, kabar baiknya adalah bahasa pemrograman itu banyak yang memakai model dasar serupa, apakah itu pemrograman berorientasi objek ataupun pemrograman prosedural. Oleh karena itu pemahaman mengenai model dasar bagaimana suatu bahasa pemrograman bekerja itu adalah hal yang fundamental.

Jadi ketika anda siap untuk mengambil bahasa pemrograman baru pengetahuan sebelumnya tentang bahasa pertama yang anda pelajari akan membantu anda dalam mempelajari yang baru

Selain itu, 5 konsep dasar berikut ini juga selalu ada dalam bahasa pemrograman manapun, jadi pahami mengenai:

a. Variabel

Program dibangun berdasarkan variabel. Variabel adalah tulang punggung dari setiap bahasa pemrograman. Dalam bentuk yang paling sederhana, sebuah variabel adalah metode untuk penyimpan informasi yang dimaksudkan untuk digunakan nantinya. Kemudian nilai variabel ini dapat diambil dengan mengacu pada kata atau istilah yang menjelaskan informasi tersebut.

b. Struktur kontrol

Struktur kontrol adalah blok pemrograman yang menganalisis variabel dan memilih suatu arah yang akan digunakan berdasarkan parameter yang diberikan. Oleh karena itu, proses pembuatan keputusan dasar dalam komputasi dan dapat menentukan bagaimana komputer akan merespon bila diberi kondisi dan parameter tertentu.

c. Struktur data

Struktur data merupakan metode spesifik dimana data disimpan dan diatur dalam komputer. Data ini disimpan sedemikian rupa sehingga bisa diakses dan digunakan secara efisien bila dibutuhkan.


d. Syntax

Walaupun jika anda tidak memiliki banyak pengetahuan tentang koding, anda mungkin tahu bahwa karakter dan simbol yang berbeda sering digunakan.  Syntax adalah seperangkat aturan yang mendefinisikan kombinasi berbagai simbol dan strukturnya dengan benar. Sintaks pada dasarnya adalah buku panduan tata bahasa untuk bahasa koding.

e. Tools

Ini adalah konsep termudah dari lima konsep yang harus dipahami. Tools ini hanyalah software yang memungkinkan anda memprogram lebih cepat dan lebih efisien. Ada ribuan tools di luar sana, jadi memilih yang tepat untuk kebutuhan spesifik anda adalah hal yang terpenting.


3. Melihat Contoh Kode Program Dan Menjalankannya


Belajar koding adalah seperti belajar bahasa baru, bahasa yang dimengerti oleh komputer dan ini dituangkan dengan kode-kode. Tentu saja berbeda dengan ketika seperti belajar biasa dimana hanya mengenai kata-kata di halaman buku.

Jadi, ketika anda pertama kali belajar memprogram, anda harus memastikan untuk melihat, dan mencoba memahami, setiap contoh. Jangan terlalu terburu-buru berpindah ke topik lainnya, yang penting anda paham dulu dengan dasar-dasarnya.

Belajar koding tidak hanya bisa dilakukan dengan membaca tapi harus melalui praktek. Walaupun pasti tidak semua langsung dipahami, tapi anda sudah melakukan metode belajar yang benar.

Mengetik kode akan memaksa anda untuk memperhatikan rincian sintaks bahasa dengan benar dan akan menjadi kebiasaan. Karakter-karakter seperti titik koma, kurung kurawal atau simbol lainnya yang jarang anda gunakan nantinya akan menjadi lebih familiar.

Setelah itu, anda perlu melihat hasil program ketika dieksekusi. Kemudian anda bisa bereksperimen sendiri dengan logika anda melalui program sederhana tersebut. Cobalah selalu membuat beberapa kode baru atau memodifikasi setiap contoh dalam buku atau web yang anda pelajari. Masukkan problem anda sendiri dalam program tersebut dan cobalah mencari penyelesaiannya.

Cara termudah untuk mempelajari fitur bahasa baru adalah dengan mengambil beberapa kode, mengubahnya sesuai dengan apa yang dipikiran anda, dan mengeksekusinya dan ini harus dilakukan setiap pergantian topik. Anda bisa mengevaluasi sendiri  dan lebih memahami bahasa pemrograman yang anda pelajari tersebut.

Cara lainnya adalah menyelesaikan soal-soal latihan yang banyak terdapat pada buku pemrograman. Cobalah mengerjakannya tanpa melihat kunci jawabannya. Kemudian bandingkan, dan anda bisa mengevaluasi kemajuan anda dalam belajar pemrograman.


4. Manfaatkan Sumber Online Yang Kaya Informasi


Bahasa pemrograman selalu berkembang, jika konsep tertentu anda rasa tidak masuk akal, baik itu pada kode tulis, dalam buku teks, atau di kelas kuliah, pertahankan kepercayaan diri anda dan carilah sumber online alternatif untuk mempelajari konten yang sama.

Semua orang belajar dengan cara berbeda, terkadang masalah yang sama bisa diselesaikan dengan cara yang berbeda, itu juga berlaku dalam pemrograman. Buatlah anda nyaman dengan metode belajar yang anda pilih.

Sumber daya online untuk belajar pemrograman komputer tidak ada habisnya, dan selalu ada materi tutorial di youtube, tutorial web spesifik ataupun forum komunitas yang semuanya saling membantu dan berbagi pengalaman.

5. Segarkan Pikiran Dan Tetap Percaya Diri


Ketika anda menemukan masalah pada kode program anda, dan kepala anda sudah terasa pusing, beristirahatlah karena jika anda meneruskannya itu tidak akan efektif. Hirup udara segar selama beberapa jam untuk membuat pikiran anda menjadi lebih rileks, tenang saja bug-nya tidak akan lari kemana-mana jika anda tinggalkan. Dengan demikian, anda nanti bisa kembali dengan ide yang segar dan semangat baru untuk belajar.

Tetaplah percaya diri bahwa anda bisa menjadi apa yang anda inginkan. Walaupun ketika melakukannya, anda harus berulang kali gagal dan bersabar, tapi memang itulah caranya. Karena menjadi ahli dalam segala hal membutuhkan kerja keras dan juga waktu yang tidak sebentar.

Dan jika ada keraguan yang melemahkan rasa percaya diri anda maka ingatlah bahwa setiap pemrogrammer yang hebat juga telah menempuh jalan ini sebelumnya.


Demikianlah beberapa tips untuk dapat belajar bahasa pemrograman dasar dengan cepat. Semoga bisa bemanfaat untuk anda.

#10 Compiler Dan Editor Online Java Terbaik

Java adalah bahasa yang selalu hadir dengan aplikasi baru di semua bidang teknologi termasuk dunia mahasiswa ilmu komputer, pengajar, pengembang aplikasi individual dan juga development house kelas enterprise selama beberapa tahun ini.

Hal ini juga menjadikan Java sebagai pemrograman berorientasi objek paling populer dan banyak digunakan dalam pendidikan untuk mengajar siswa mengenai pemrograman dan konsep dasarnya.

Pada artikel ini, kita akan melihat berbagai tools Java online yang menawarkan fitur untuk mengedit kode, mengkompilasi, debug dan menjalankan kode java serta masih banyak yang lainnya.

Fitur yang ditawarkan oleh kompiler Java online dapat bervariasi, mulai dari kompiler dasar yang mampu mengubah file .java menjadi file .class dengan fitur lengkap cloud sampai pada IDE yang dapat digunakan untuk mengelola proyek Java kelas enterprise.

CompileJava.Net misalnya adalah pilihan tepat untuk mengkompilasi kode java secara online dan juga menjalankan kode yang dikompilasi untuk melihat hasilnya langsung di browser. Kompiler Java serupa lainnya termasuk tool seperti repl.it, JDoodle, Browxy, Ideone dan sebagainya.

compiler_editor_java_online_terbaik


Terdapat banyak lingkungan pengembangan berbasis cloud yang canggih seperti CodeEnvy, Koding, Cloud9 dan sebagainya. Alat pengembangan online canggih ini menyediakan rangkaian fitur lengkap untuk bersaing dengan IDE Java yang sangat populer seperti Eclipse, NetBeans dan JDeveloper, yang berjalan di komputer atau server.

Kategori lain dari kompiler editor Java online yang cepat menjadi populer dan mencakup alat untuk wawancara coding secara online adalah Remoteinterview.io dan CodeBunk.

Berikut ini adalah 10 compiler dan editor online Java terbaik.

1. CompileJava.Net


CompileJava.Net adalah tool online yang sangat sederhana dan sangat mudah dijalankan untuk mengkompilasi dan mengedit kode Java. Pengguna cukup menempelkan kode dan mengklik COMPILE & EXECUTE untuk melihat hasilnya langsung di browser.

CompileJava.Net beroperasi sejak 2013 dan tersedia gratis untuk digunakan oleh siapa saja. Tool ini banyak digunakan secara luas oleh pemula Java, pelajar dan institusi pendidikan untuk pengajaran pemrograman Java.

Beberapa fitur utama CompileJava.Net adalah:

  • Pilihan untuk membuat salinan kode pada GitHub agar mudah dibagikan dengan orang lain
  • Pilihan untuk mendownload source dan compiled classes
  • Pilihan untuk mengimpor Gist 
  • Pilihan tema yang banyak dan sesuai dengan gaya pengkodean user
  • Pilihan untuk pass pada command line argument
  • Membagi beberapa public class ke file yang berbeda 
  • Dukungan untuk Applet dan sebagainya termasuk JPanel.


2. Browxy


Browxy termasuk memiliki peringkat atas di antara kompiler java gratis yang terdapat secara online berdasarkan pada fitur yang ditawarkan dan kemudahan penggunaan.

Saat artikel ini di tulis, Browxy masih dalam versi beta, tapi cepat menjadi populer di kalangan pelajar dan pengembang java yang suka bermain-main dengan Java secara online di browser.

Pengguna  dapat membuat akun di Browsy.com dan pengguna dapat tetap memantau kodenya. Compiler ini juga dapat mengirimkan cuplikan dan tampilan kode serta menggunakan kode publik yang dikirimkan oleh pengguna lain.

Dan tentu saja terdapat pilihan agar pengguna juga dapat menjaga source code tetap pribadi. Browxy sangat mudah digunakan dan simpel secara online. Terdapat 3 view untuk compiler ini yaitu Console, Applet dan tampilan log view.


3. Repl.it


Repl.it telah  menyediakan lingkungan pemrograman interaktif secara online untuk banyak bahasa termasuk Java. Repl.it adalah salah satu situs web yang dikelola dengan baik dan diciptakan oleh tim yang termasuk penggemar terhadap teknologi. Tool ini menyediakan editor kode Java, memiliki banyak contoh yang telah siap pakai dan juga dukungan fitur terminal emulator lengkap.

Pengguna juga memiliki pilihan untuk meng-share karyanya dengan orang lain serta dapat  menyimpan sesi tertentu di repl.it untuk dikerjakan ditahap selanjutnya.

Repl.it juga menawarkan fitur canggih seperti integrasi API. Seseorang dapat menggunakan API Repl.it lalu menambahkan fitur kompilator dan editor di website, aplikasi atau tool mereka sendiri yang kemudian dapat digunakan untuk hackaton, interview ataupun lomba koding. Repl.it juga menjadi sangat populer di kalangan komunitas pengajar dan pewawancara.

4. TutorialsPoint


TutorialsPoint adalah salah satu situs paling populer di luar sana karena mempelajari berbagai bahasa pemrograman termasuk Java dan menyajikan tutorial Java dengan lengkap.

Hal terbaik tentang belajar Java di tutorialspoint.com adalah adanya kompiler Java yang menyertainya sehingga bisa digunakan untuk mengedit dan menjalankan kode Java di browser.

Tutorial Java compiler dan editor menawarkan banyak fitur seperti membuat dan mengelola proyek dengan lengkap, menyimpan kode, mendownload kode dan masih banyak lagi.


5. Ideone


Ideone adalah salah satu compiler dan editor Java online gratis terbaik. Fitur utama dari Ideone mencakup penyorotan sintaks, pilihan pengeditan source code dan pilihan untuk viewable apakah publik atau pribadi saja.

Pengguna juga dapat memeriksa waktu yang dibutuhkan untuk pengeksekusian kode, pemanfaatan memori, error message dan sebagainya saat menjalankan kode Java.

Ideone adalah salah satu kompiler kode yang paling canggih dan mendukung banyak bahasa pemrograman dengan menggunakan engine Sphere.



Engine sphere ini juga tersedia untuk penggunaan komersial dan banyak digunakan dalam kontes koding, Hackathons, lembaga pelatihan, sektor pendidikan untuk mengajar coding dan interview koding. Mesin sphere dapat digunakan oleh aplikasi pihak ketiga dengan menggunakan API yang telah disediakan.

6. CodeEnvy


CodeEnvy adalah salah satu nama besar di pasar online editor dan IDES. CodeEnvy sangat populer di kalangan banyak perusahaan dan digunakan oleh beberapa nama besar termasuk TIAA, YouthDigital, Redhat dan lainnya.

Developer perorangan serta peminat yang berencana belajar coding dapat menggunakan edisi gratis CodeEnvy yang juga kaya fitur untuk dijalankan dan dapat diedit juga dikompilasi secara online.

CodeEnvy dibangun menggunakan salah satu proyek open source yang paling populer yaitu Eclipse Che. Hal ini menjadikannya sangat terukur dan dapat disesuaikan lebih lanjut dengan menggunakan plugin Che.

Dua nama besar di dunia editor kode komersial lainnya yaitu Cloud 9 dan Koding. CodeEnvy kebetulan memberikan persaingan yang ketat bagi mereka dalam hal fitur yang ditawarkan untuk pengeditan kode secara online.

7. JDoodle


JDoodle adalah kompiler Java online yang sangat sederhana untuk mengedit, mengkompilasi, mengeksekusi, menyimpan dan berbagi program Java secara online di browser.

JDoodle mendukung semua library standar, cs1.keyboard serta setiap jar lainnya yang tersedia di repositori maven. JDoodle juga mendukung banyak bahasa lain termasuk PHP, C / C ++, Python, Ruby dan Perl.

Dengan JDoodle, pengguna juga dapat berkolaborasi dengan orang lain dengan membagikan URL unik yang dibuat untuk kode, pengguna dapat melakukan peer programming, melihat orang lain melakukan pengkodean, melakukan koreksi dan masih banyak lagi.


8. Cloud9


Dalam beberapa tahun terakhir terjadi pergeseran besar dari lingkungan pengembangan berbasis desktop menjadi tools berbasis cloud.  Trend ini menonjol tidak hanya di antara organisasi besar namun juga di kalangan para pengembang termasuk  orang yang belajar.

Tool seperti Cloud 9 menjadi paling diuntungkan dengan hal ini karena menawarkan hampir semua fitur yang ditemukan di IDES berbasis dekstop yang telah lebih dulu ada.

Cloud 9 adalah editor Java  komersial yang sangat populer dan sukses dan banyak digunakan oleh organisasi dengan berbagai skala.

Bagi para pemula Java, Cloud 9 juga menawarkan versi gratis yang cukup bagus dengan menawarkan satu workspace publik dan pribadi serta dukungan komunitas secara gratis.


9. RemoteInterview.io


Remoteinterview.io berfokus secara khusus pada kebutuhan pewawancara dan menawarkan fitur untuk memudahkan proses wawancara.

Untuk melakukan wawancara, sesi bisa dibuat dan dibagikan kepada kandidat untuk menyelesaikan coding secara langsung di browser. Pengguna bisa melihat eksekusi kode, kesalahan koding dan langsung mengevaluasi kandidat.

Editor Java dan IDE yang ditawarkan oleh RemoteInterview.io dapat digunakan untuk pemrograman berpasangan dan mewawancarai programmer Java tanpa memerlukan instalasi apapun serta dapat digunakan untuk berbagi cuplikan kode Java.

CodeBunk adalah berada dalam kategori yang sama dengan RemoteInterview.io dan juga menawarkan fitur yang kurang lebih sama.


10. Java Online Compiler


Selanjutnya adalah Java Online Compiler dan merupakan yang terakhir dalam daftar compiler dan editor java online terbaik.

Alasan dimasukkannya kompiler ini adalah user interface sederhana yang ditawarkannya dengan menyediakan jendela editor tempat pengguna bisa menulis atau menyalin / menyisipkan kode Java.

Untuk mengeksekusi kode, pengguna tinggal mengklik tombol RUN dan melihat hasil compile serta outputnya secara langsung di browser dalam dua jendela yang terpisah.

#10 Framework Java Terbaik Untuk Aplikasi Dan Pengembangan Web

Java adalah bahasa pemrograman yang dirilis oleh Sun Microsystems pada tahun 1990 sebagai bahasa open source dan kemudian diakuisisi oleh Oracle. Komunitas Java telah berkembang pesat sejak itu dan ada banyak frameworks Java yang telah tersedia dan menawarkan kesiapan untuk penggunaan library, komponen, abstraksi kode untuk menangani masalah keamanan, penerapan MVC dan banyak lagi.

Singkatnya, penggunaan framework Java mempercepat proses pengembangan, menerapkan metode best practice, membuatnya menjadi lebih menyenangkan untuk dikerjakan dan membuat hidup lebih mudah bagi para developer.

Pengembang individu, tim kecil dan perusahaan besar menggunakan satu atau frameworks Java lainnya yaitu open source, dengan hak milik, atau kombinasi keduanya.

Terdapat frameworks untuk segala hal, termasuk juga frameworks untuk pengembangan aplikasi web, pengembangan aplikasi desktop, pengembangan aplikasi jaringan, pengembangan aplikasi seluler, API REST, deployment web services, pengembangan game dan pengembangan aplikasi perangkat lunak kelas enterprise.



Yang Manakah Framework Yang Sesuai Dengan Kebutuhan Anda?


Frameworks yang berbeda bertujuan untuk memecahkan masalah yang berbeda dan sebagian besar  developer mungkin saja akhirnya menggunakan beberapa frameworks dalam satu proyek tunggal.

Spring MVC misalnya sangat berguna dalam membangun aplikasi web yang digabungkan dan menerapkan tampilan model serta controller pola desain.

Frameworks Netty lebih berfokus pada pemrograman jaringan sehingga menyederhanakan dan mempercepat pengembangan server berbasis protokol jaringan dan client applications.

Berbicara tentang pengembangan REST API, Spark adalah framework open source ringan yang berlisensi dari Apache 2.0 dan membuat implementasi REST API menjadi keunggulannya.

Jika Anda mencari sesuatu untuk pengembangan aplikasi berbasis desktop menggunakan JavaFX, maka anda bisa melihat frameworks seperti JRebirth.

Play frameworks adalah framework Java ringan lainnya yang banyak digunakan oleh perusahaan pemula dan perusahaan untuk pengembangan aplikasi mobile dan web. Dua framework Java lainnya yang sedang trend saat ini dan banyak digunakan oleh perusahaan adalah Vaadin dan Grails.

Berikut ini akan dibahas 10 Java Frameworks terbaik dan paling banyak digunakan di pasar yang mendukung pengembangan kecepatan, memiliki fitur yang kaya, populer di kalangan komunitas pengembang, dan berguna dalam menciptakan software aplikasi kompleks kelas kecil maupun besar.


java_frameworks


1. Grails


Grails menggunakan bahasa Groovy Apache dan meningkatkan produktivitas development untuk membuat aplikasi web.

Java library dan kelas business logic dapat langsung digunakan dalam Grails dan terintegrasi dengan mulus ke dalam alur kerja pengembangan Java anda, sekaligus melengkapi pengembangan web java.

Para developer telah menyambut Grails dengan tangan terbuka lebar karena beberapa alasan di bawah ini :

  • Memiliki integrasi dan interoperat yang mulus dengan Java 
  • Dependency injection didukung oleh Spring 
  • Mendapat dukungan ORM / Nosql 
  • Easy Microservices difasilitasi oleh Spring boot 
  • Dukungan dari IDE Java top seperti Eclipse, NetBeans, Sublime Intellij IDEA dll. 
  • Scalable dengan menggunakan custom built plugins


Sejarah Grails dimulai tahun 2005 dan hal itu mulai menjadi pertanda bagi pengembangan aplikasi berbasis JVM. Grails tersedia free untuk digunakan sebagai framework open source di bawah Apache License 2.0 dan terus dikelola secara aktif. Grails selalu mendapatkan update reguler dengan sponsor dari Object Computing, Inc (OCI).

2. Spring MVC


Spring framework pertama kali dirilis kembali pada bulan Juni 2003 oleh Rod Johnson, sebagai framework open source di bawah Apache 2.0 License. Spring core didasarkan pada pemrograman berorientasi objek dan dilengkapi dengan dukungan dependency injection, pesan, aplikasi web, manajemen transaksi, pengujian dan banyak lagi.

Pemrograman berorientasi objek dengan dependency injection inilah yang membuat Spring framework yang kuat untuk menciptakan aplikasi dengan menggunakan teknologi dan library pihak ketiga yang berbeda, sekaligus memberikan model pemrograman yang konsisten.

Spring juga merupakan sistem untuk bekerja dengan banyak frameworks yang dapat digunakan untuk membangun aplikasi JavaEE berskala besar dan kompleks.  Mendukung semua frameworks dan teknologi utama di sekitar Java termasuk Tapestry, EJB, Hibernate, Java Server Faces, Struts dan masih banyak lagi.

Spring Framework runtime diatur ke dalam beberapa komponen seperti di bawah ini :

  • Komponen core meliputi beans, core, context dan SpEL
  • APO, Aspects, Instrumentation and messaging
  • Data Access/Integration Layer termasuk JDBC, ORM, OXM, JMS juga Transactions dan di web termasuk WebSocket, Servlet, Web dan Portlet 
  • Modul pengujian JUnit dan TestNG yang mendukung pengujian unit dan pengujian integrasi.

Spring MVC adalah salah satu modul Spring framework yang paling populer yang memfasilitasi pengembangan aplikasi web dengan menggunakan paradigma model view dan controller.


3. Vaadin


Vaadin adalah salah satu framework yang paling kuat dan pertumbuhannya pesat dalam beberapa tahun terakhir. Kerangka Vaadin dapat digunakan untuk membuat situs web sederhana serta aplikasi web perusahaan yang sangat kompleks.

Arsitektur Vaadin memungkinkan model server side development atau both client side. Model pengembangan server side-nya bersaing dengan Spring MVC dan ini adalah dua frameworks yang telah menggantikan Struts untuk waktu yang lama di masa lalu. Model server side menggunakan Ajax sebagai engine based client side .

Model client side menggunakan Google's GWT untuk mengkompilasi kode Java ke JavaScript yang dikirim ke front end dan dieksekusi di browser. Salah satu bagian yang terbaik adalah anda dapat mencampur komponen yang dikembangkan dalm dua model di dalam satu proyek dan mendapatkan yang terbaik dari keduanya.

4. Play


Play adalah framework web development open source yang mengambil pendekatan modern dan mendukung pengembangan aplikasi di Java dan Scala. Framework ini sangat ringan, dilengkapi dengan I / O tanpa pemblokiran dan berfokus pada kebutuhan aplikasi web dan seluler.

Play semakin populer di kalangan developer setelah diluncurkan kembali pada tahun 2007 dan hingga saat ini banyak situs inovatif didukung oleh Play framework. Beberapa nama besar menggunakannya di satu atau aplikasi web atau seluler lainnya seperti LinkedIn, Klout, GILT, ZapTravel dan theGuardian.

5. Spark


Dibuat oleh Per Wendel pada tahun 2011 yang membuat pengembangan REST API dan layanan web menjadi keunggulannya. Spark adalah framework open source, canggih dan dapat menangani URL dengan mendefinisikan rute yang terdiri dari kata kerja, path dan callback dengan mudah.

Spark paling cocok digunakan bila anda ingin cepat membangun aplikasi web sederhana atau membuat layanan Rest berbasis web dengan semua kendali di tangan anda. Aplikasi anda akan berkisar pada framework Spark ketika telah menghubungkan library dan komponen eksternal, sesuai dengan kebutuhan.

Spark telah tumbuh dalam popularitas dengan pertumbuhan arsitektur berdasarkan micro services dan sampai saat ini  Spark menjadi salah satu kerangka kerja yang paling dicintai di antara komunitas pengembang Java. Spark di bangun melalui filosofi Lambda Java 8 sehingga memungkinkan anda dapat membuat aplikasi verbose lebih sedikit daripada full stack Java framework lainnya.

6. Struts2


Struts mencapai puncak kejayaannya satu dekade yang lalu ketika  menjadi pemimpin di pasar pengembangan web Java namun kehilangan pamornya selama periode waktu tertentu.

Spring frameworks dan pendatang baru lainnya telah mengambil alih banyak pangsa pasar Struts dalam waktu belakangan ini. Namun, banyak orang yang menilai sangat bagus mengenai rilisan terbaru dari Struts dan banyak developer mulai melihat kembali Struts dengan semua perspektif baru yang dibawanya.

Struts merupakan framework yang bisa digunakan untuk mengembangkan aplikasi web modern di Java. Framework Struts terukur dengan penggunaan plugin khusus, beberapa plugin yang digunakan untuk pengembangan yaitu plugin untuk REST APIS, JSON dan AJAX.

Struts2 mengikuti perkembangan framework web modern seperti Spring, Vaadin dan Grails dll.

Berikut ini adalah beberapa fitur kunci dari Struts :
  • Dukungan AJAX untuk permintaan asinkron dan peningkatan kinerja 
  • Pilihan integrasi untuk frameworks lainnya seperti Spring, Hibernate, Tiles dan lainnya.
  • Action berdasarkan plain old java objects (POJO)
  • Kemudahan pengembangan menggunakan UI tags, control tags and data tags dan sebagainya.
  • Konfigurasi MVC menggunakan file xml, mengubah dan mengontrol semuanya dari file konfigurasi Struts. 
  • Dukungan tema dan template - xhtml, css xhtml 

7. Netty


Netty framework banyak digunakan dalam bisnis pengembangan server protokol dan client. Dengan menggunakan Netty, maka dapat mempercepat pengembangan aplikasi jaringan yang bersifat asynchronous, event-driven, fleksibel dan terukur tanpa mengorbankan performanya.

Fitur utama dari Netty adalah sebagai berikut:
  • Dukungan untuk berbagai tipe transport dengan unified API - nonblocking dan blocking socket
  • Model thread yang dapat dikustomisasi untuk single thread atau thread pools
  • Kinerja tinggi dan memastikan latency rendah, throughput yang lebih baik, salinan memori yang optimal dan konsumsi resources yang lebih sedikit. 
  • Mendukung SSL / TSL dan StartTLS untuk memastikan keamanan. 
  • Dokumentasi yang bagus dan komunitas yang sangat membantu.

8. LibGDX


LibGDX adalah kerangka pengembangan game Java yang menawarkan API terpadu untuk bekerja dengan banyak platform yang didukung. Fitur dan development environment yang ditawarkan oleh LibGDX membantu melakukan prototyping cepat dan mengurangi waktu iterasi dengan menggunakan fitur code hot-swapping dari JVM.

LibGDX dapat digunakan untuk mengembangkan game untuk Android, iOS, Mac OS X, Windows, Linux, Blackberry, Applet dan web based menggunakan WebGl / JavaScript, semuanya dari basis kode tunggal.

Beberapa fitur utama LibGDX termasuk dukungan untuk Spine, Nextpeer untuk game multiplayer, Saikoa dan banyak lagi.


9. JSF - JavaServer Faces


JavaServer Faces adalah framework yang disponsori Oracle dan banyak digunakan untuk pengembangan komponen server side yang dapat langsung digunakan dalam aplikasi web.

JSF juga mengikuti pola pengembangan MVC yang digunakan developer untuk membuat komponen user interface yang dapat digunakan kembali dan terhubung ke server side even handlers dan data sources.

JSF adalah framework standar dan menyediakan API terpadu untuk mengembangkan komponen widget dan UI.


10. GWT - Google Web Toolkit


GWT adalah framework Java gratis lainnya yang memungkinkan programmer untuk membuat dan mengoptimalkan aplikasi berbasis web yang canggih.

Digunakan secara luas dalam mengembangkan aplikasi berbasis browser menggunakan Java API dan widget. GWT bekerja dengan  AJAX, anda menulis kode di JAVA lalu mengkompilasi kode ke JavaScript untuk menjalankannya di browser.

Tujuan akhirnya adalah membuat kode JavaScript yang sangat optimal yang dapat dicapai oleh GWT dengan mengoptimalkan string, metode in-lining, menghapus dead code dan sebagainya. GWT juga menyediakan opsi untuk menetapkan split point sehingga dapat mengubah kode java anda menjadi beberapa fragmen JavaScript untuk memperoleh kinerja yang lebih baik.

10 IDE Terbaik Untuk Programmer Java

IDE atau Integrated Development  Environment adalah suatu software aplikasi yang menyediakan fasilitas komprehensif bagi para programmer komputer termasuk Java untuk proses pengembangan software. Secara standar IDE ini memiliki :
  • Editor untuk source code
  • Debugger
  • Build automation
IDE dapat memberikan kemudahan dan kecepatan bagi programmer. Terdapat banyak IDE dan terkadang memilih mana yang akan digunakan cukup menyita waktu.

Sebagai pilihan anda bisa saja menulis kode Java anda di notepad atau menggunakan IDE yang kaya dengan berbagai fitur seperti NetBeans, Eclipse Java IDE, JDeveloper, Intellij, Android Studio, JEdit, atau MyEclipse.


ide_java


IDE Mana Yang Harus Digunakan?

Jawaban sebenarnya adalah berdasarkan kebutuhan pemrograman, budget dan juga berdasarkan keinginan. Namun, untuk para pemula gampang saja, tidak usah dipusingkan dengan berbagai IDE yang ada. Pemula bisa menggunakan IDE yang paling populer seperti NetBeans, Eclipse bahkan BlueJ.

Karena Java banyak digunakan dalam berbagai bidang seperti pengembangan software, android, jaringan, pengembangan sistem, pendidikan dan pengajaran, pengembangan games dan lain sebagainya, oleh karena itu setiap  IDE menawarkan fitur yang berbeda-beda untuk mengembangkan aplikasi sesuai dengan kebutuhannya.

Biasanya suatu organisasi atau para developer profesional akan menghabiskan cukup waktu untuk mengevaluasi tool yang akan digunakan untuk pengembangan sebelum mereka memutuskan mana yang akan digunakan.

Sebagai contoh misalnya Intellij IDEA dan MyEclipse merupakan tool komersil  pengembangan Java yang kaya akan berbagai fitur untuk development aplikasi enterprise grade J2EE, lain halnya dengan DrJava, JGrasp adan BlueJ yang hanya menawarkan fitur yang minimum namun cocok digunakan untuk para siswa atau orang yang sedang belajar sehingga banyak digunakan di berbagai institusi dan universitas untuk tujuan pengajaran.



Demam aplikasi android yang melanda juga telah menghasilkan IDE yang lebih spesifik untuk tujuan ini, misalnya Android Studio yang menawarkan berbagai fitur yang sangat cocok untuk mengembangkan aplikasi mobile dengan cepat.

Berikut ini dirangkum 10 IDE Java terbaik yang sesuai untuk kebutuhan pengembangan yang modern dan menawarkan kemudahan serta kecepatan baik yang memiliki versi gratis ataupun komersil, juga populer dikalangan komunitas Java developer siswa, institusi dan juga organisasi skala besar.


1. NetBeans

NetBeans pertama kali diperkenalkan pada tahun 1997 sebagai proyek siswa di Republic Czech dan merupakan IDE multiplatform dan support untuk Windows, Linux, Mac dan juga Oracle Solaris. IDE ini gratis dan open source, banyak digunakan oleh para developer profesional untuk pengembangan aplikasi enterprise, web, desktop, dan mobile.  

IDE ini sangat lengkap karena membantu untuk :

  • Analisis
  • Desain
  • Coding
  • Profiling
  • Pengujian
  • Debugging
  • Compiling
  • Running
  • Deploy application
NetBeans mendukung banyak bahasa pemrograman dan juga sebagai official IDE dari Java 8, dengan kata lain NetBeans mendukung apapun dalam Java.

NetBeans juga hadir dengan dukungan yang mulus untuk Weblogic dan GlassFish sehingga membuatnya menjadi platform kompeten untuk digunakan pengembangan apliaksi J2EE. NetBeans juga hadir dengan dukungan penuh untuk Dependency Injection, contexts, Facelets (JavaServer Faces), RichFaces, IceFaces dan web EJB dan sebagainya


NetBeans sangat sesuai dalam hal pengembangan dengan persistensi pada API, JSP, spring, struts, servlets, web services dan Hibernate frameworks. NetBeans juga memenangkan penghargaan untuk GUI builder yang menawarkan sistem drag and drop untuk membangun aplikasi menggunakan platform Swing.

Tidak cukup sampai di situ saja, IDE ini juga dapat digunakan untuk project development Java Card, juga mendukung untuk sistem Maven dan Ant.

Anda bisa mendownload NetBeans di sini.


2. IntelliJ IDEA


IntelliJ IDEA merupakan IDE berfitur lengkap untuk pengembang Java EE dan segala hal yang ada di Java. IDE ini hadir dari JetBrains yang masuk dalam bisnis development tool selama 15 tahun terkahir dengan sukses besar.

IntelliJ IDEA adalah IDE bagi para profesional dan hadir dalam dua edisi yaitu edisi gratis (community) dan edisi ultimate yang menargetkan pengguna para developer enterprise.

Edisi gratis hadir dengan banyak fitur untuk membangun aplikasi Android serta aplikasi JVM. Sebenarnya, platform pengembangan Android resmi Google Android Studio didasarkan pada edisi komunitas gratis IntelliJ IDEA. Edisi Ultimate hadir dengan serangkaian fitur paling modern untuk mengembangkan aplikasi web dan Java EE enterprise.

Anda akan mendapatkan dukungan Java, Kotlin, Groovy, Scala, Android, Gradle, SBT, Git, SVN, Mercurial dan CVS dalam edisi komunitas gratis. Dasar-dasar seperti penyelesaian kode, intelligent refactorings, deep static analysis, debugger, test runner, dan sebagainya, tentu saja disertakan dalam edisi komunitas gratis.

Sedangkan edisi ultimate membawa fitur tambahan seperti :
  • Spring Java MVC framework, Spring Security, Spring Boot, Spring Integration dan lain-lain
  • Dukungan untuk framework seperti Node.js, Angular and React 
  • Dukungan untuk bahasa pengembangan web seperti javascript, typescript, coffeescript dan lainnya. 
  • Dukungan Java EE termasuk JSF, JAX-RS, CDI, JPA, dan sebagainya. 
  • Dukungan Grails, GWT, Griffon dan Vaadin 
  • Version control dengan Team foundation server, Perforce, Clearcase dan Visual SourceSafe

Deployment didukung dengan hampir semua server termasuk Tomcat, TomEE, GlassFish, JBoss, WildFly, Weblogic, WebSphere, Geronimo dan Virgo. Build tools termasuk Gulp, Grunt, Webpack dan NPM via plugin.

Anda bisa mendownload IntelliJ IDEA Java IDE community edition (gratis).

3. Eclipse

Eclipse adalah nama yang diperhitungkan dalam dunia pengembangan Java, hampir semua pengembang Java telah menggunakan Eclipse di beberapa titik waktu dalam karir mereka.

Eclipse memiliki ekosistem tersendiri dengan komunitas pengembang yang besar, dokumentasi lengkap dan banyak plugin untuk membuat pengembangan Java menjadi mudah. Programmer menggunakan Eclipse untuk mengembangkan aplikasi mobile, desktop, web, enterprise dan embedded system.

Eclipse sebagian besar ditulis menggunakan bahasa Java sendiri dan tersedia gratis sebagai Java IDE open source  dibawah lisensi publik Eclipse. Anda bisa menjalankan Eclipse di Windows, Mac OS X dan Linux.

Eclipse memiliki keunggulan ketika sampai pada lingkungan pengembangan yang terintegrasi. Eclipse dapat digunakan untuk pemrograman dalam banyak bahasa lain namun paling dikenal untuk Java dan merupakan IDE bebas terbaik yang tersedia di luar sana.

Eclipse itu extendable dan ada banyak Java IDE gratis dan komersial dengan  Eclipse, seperti MyEclipse, Orion dan RAD dari IBM.

Anda bisa mendownload Eclipse disini.


4. JDeveloper

JDeveloper adalah IDE open source Java lainnya yang berasal dari rumah pengembang Oracle.

IDE ini mendukung pengembangan penuh termasuk modelling, coding,  debugging, monitoring dan deployment. JDeveloper adalah IDE yang cocok digunakan jika Anda akan mengembangkan di dunia teknologi Oracle.

JDeveloper sangat cocok untuk development aplikasi Java EE, database, web services, mobile dan terintegrasi dengan baik dengan komponen-komponen Oracle Fusion.

JDeveloper terintegrasi dengan sebagian besar tools versi manajemen dan membuat pengembangan secara tim menjadi lebih mudah. JDeveloper juga terintegrasi dengan cloud service Oracle untuk kolaborasi tim dan pelacakan pengembangan proyek secara detail.

JDeveloper bersifat visual dan deklaratif yang sangat membantu dalam pengembangan. JDeveloper adalah development environment resmi untuk Oracle Application Development Framework (ADF).

JDeveloper dilengkapi dengan SQL Developer yang terintegrasi serta editor query PL / SQL dan sangat membantu dalam membangun, browsing dan melaporkan database relasional.

Dengan JDeveloper Anda juga mendapatkan server weblogic tertanam yang memudahkan untuk menjalankan, menguji dan debug aplikasi Java EE tepat di lingkungan pengembangan.

Dari perspektif pengembangan web, JDeveloper memiliki editor built-in untuk HTML, CSS dan JavaScript. Anda juga mendapatkan editor visual untuk JSF dan juga JSP. Pengembangan SOAP dan REST dibantu oleh editor WSDL visual, skema generator serta fitur pengujian layanan.

Anda dapat membaca lebih jelas tentang IDE ini di JDeveloper Free IDE.


5. Android Studio


Anda berencana membangun aplikasi Android? Maka android studio adalah tool yang sempurna dan juga sebagai environment pengembangan resmi untuk Android apa pun. Dirilis kembali pada tahun 2014 oleh Google untuk menggantikan Eclipse Android Development Tools (ADT).

Android Studio dibangun melalui  IntelliJ IDEA edisi komunitas open source dan tersedia gratis sebagai IDE Java open source di bawah Lisensi Apache.

Android memegang sekitar 71 persen pasar aplikasi seluler saat ini dan sebagian besar aplikasi Android ditulis di Java. Ini menjadikan Android Studio sebagai salah satu IDE yang paling banyak digunakan untuk Java dan dikhususkan untuk pengembangan aplikasi Android.

  • Instan run yang melakukan perubahan kode pada aplikasi yang sedang berjalan untuk efek langsung. 
  • Fitur rich emulator untuk mensimulasikan aplikasi untuk android wear, ponsel, tablet dan perangkat Android TV. 
  • Intelligent Code Editor yang menawarkan Java dan Android SDK terbaik 
  • Gradle 
  • Integrasi dengan Subversion dan GitHub untuk version control.
  • Kode dan template aplikasi yang dapat digunakan ulang yang dibuat oleh orang-orang Google dan lainnya 
  • Dukungan untuk pengujian frameworks dan tools seperti JUnit 4 dan Firebase Test Lab
  • Firebase Messaging dan Google Endpoints untuk integrasi clouds 
  • Editor intuitif  
  • Set ikon untuk desain material Google 
  • GPU profiler untuk grafis debugging

Anda bisa membaca lebih banyak dan mendownload Android studio di sini.


6. DrJava


Mencari IDE ringan untuk pemrograman java? DrJava adalah pilihan tepat, dikembangkan oleh tim JavaPLT di Rice University, Houston, Texas. Pengembangan berkelanjutan DrJava sebagian didanai oleh Sun Microsystems, Inc., Texas Advanced Technology Program serta National Science Foundation.

DrJava tidak ditujukan untuk bersaing dengan IDE enterprise kelas berat seperti Eclipse, NetBeans, IntelliJ atau JDeveloper namun IDE ini ditujukan bagi siswa dan pengembang pemula untuk belajar dan menciptakan proyek sekolah / penelitian. .

Keuntungan terbesar dari DrJava adalah Anda dapat dengan cepat menset dan mulai menulis kode Java dalam waktu singkat karena tersedia file untuk diunduh seperti file Jar, Windows App dan juga Mac OS X App sehingga sangat populer di kalangan pelajar di seluruh dunia.

Apakah DrJava adalah IDE terbaik untuk belajar Java?

BlueJ, JGrasp dan Greenfoot adalah tiga pesaing terdekat lainnya bagi DrJava di bidang pendidikan, namun semuanya tergantung pada apa yang benar-benar Anda butuhkan.

Baca lebih banyak mengenai DrJava di sini.


7. MyEclipse


MyEclipse adalah IDE Java komersial terbaik lainnya, yang dibangun melalui open source Eclipse IDE, oleh perusahaan bernama Genuitec yang berbasis di Texas, Amerika Serikat.

MyEclipse digunakan oleh banyak perusahaan dan benar-benar merupakan platform pengembangan Java EE Enterprise yang menghasilkan kombinasi Java EE dan teknologi terbaik.

Fitur utama MyEclipse antara lain:
  • Dukungan untuk beragam frameworks termasuk Springs, Hibernate, jQuery, Cordova, JPA dan JSF 
  • Akses ke plugin Eclipse termasuk plugin seperti clearcase, findbugs, tooling grader, subversive dll. 
  • Struktur proyek Maven dan Built in launch commands 
  • Embedded Derby dan konektor database Tomcat untuk semua database utama termasuk WebSphere, GlassFish dan WEblogic 
  • Tools termasuk model Visual ER, JPA, Hibernate dan POJO 
  • Spring Scaffolding, Visual Spring Editor dan wizards 
  • IDE untuk membangun aplikasi untuk WebSphere dan Liberty profile servers
  • Sudah termasuk JSjet untuk pengembangan web Enterprise 
  • Tools untuk menghasilkan dan melakukan test Rest berdasarkan web services
  • Live preview untuk HTML, CSS dan JSP Integrasi alur kerja Gerrit untuk kolaborasi tim

MyEclipse hadir dalam banyak pilihan. Edisi Standar dan Professional adalah dua edisi utama. Edisi standar mencakup fitur seperti alat tools database, dukungan untuk Spring, JSF, persistence tools, perancang web visual dan berbagai hal lainnya yang ditawarkan  oleh Eclipse.

Beberapa fitur yang disertakan dalam Edisi Profesional yang bukan bagian dari versi standarnya adalah, dukungan Android & iOS, simulator web seluler, Editor Gambar, pemodelan UML, Rest inspect, Pelaporan dan Template JQuery Mobile.

Untuk mengetahui lebih banyak mengenai MyEclipse anda bisa membacanya di sini.


8. jGrasp

jGrasp adalah IDE gratis untuk Java. IDE ini paling cocok untuk auto generation visualisasi  dari kode sebagai Diagram Struktur Kontrol (Control Structure Diagrams). IDE ini cukup ringan dan ditulis dalam bahasa Java sendiri, dapat dijalankandi semua sistem operasi dengan JVM (Java Virtual Machine)

jGrasp adalah hasil kreasi darin orang-orang  di Universitas Auburn dan perkembangannya didukung oleh hibah dari National Science Foundation.

jGrasp cukup populer di kalangan siswa, komunitas kampus maupun universitas. Saat ini jGrasp digunakan oleh lebih dari 380 institusi untuk tujuan pengajaran dan pelatihan.

Anda bisa membaca lebih lanjut tentang jGrasp di sini - Simple Java IDE.


9. JEdit


JEdit adalah Java Editor dan IDE open source yang lain yang menawarkan hampir semua fitur yang dibutuhkan untuk pemrograman yang efisien.

JEdit merupakan Editor yang bisa ditransformasikan menjadi IDE yang kaya fitur dengan tambahan penggunaan plugin. Beberapa plugin yang dibutuhkan untuk mengubah JEdit menjadi Java IDE antara lain AntFarm, Java Style, JBrowse, JCompiler, JIndex, JunitPlugin, ProjectViewer dan Swat.

JEdit awalnya dibuat oleh Slava Pestov pada tahun 1998 dan tersedia untuk download gratis dengan lisensi dari GPL. JEdit ditulis murni menggunakan bahasa pemrograman Java dan dapat dijalankan pada platform apapun termasuk Unix, VMS, Mac OS X, OS / 2 dan Windows.

Baca lebih lanjut tentang JEdit di sini - Java Editor IDE.


10. BlueJ

BlueJ adalah Java Editor ringan lainnya untuk pemula dan digunakan oleh jutaan siswa dan programmer pemula di seluruh dunia untuk belajar pemrograman berorientasi objek, dan Java pada umumnya. BlueJ juga dapat digunakan untuk proyek skala kecil di mana anda tidak perlu mengelola banyak resource atau berkolaborasi di antara tim.

User interface yang mudah digunakan dan intuitif memungkinkan pemula memulai dengan cepat tanpa merasa terbebani. Salah satu fitur utama yang dibawa BlueJ ke dalam tabel adalah Shell / REPL grafisnya untuk Java, di mana Anda dapat berinteraksi dengan objek, memeriksa nilai objek, melewatkan objek sebagai parameter, memanggil method dan ekspresi Java dengan cepat tanpa kompilasi.

BlueJ dikembangkan di University of Kent dan didukung oleh Oracle. Secara historisn IDE ini dikembangkan dan dirilis oleh Michael K├Âlling pada tahun 1999. Distribusi BlueJ tersedia dengan lisensi GNU dan dapat diinstal di Ubuntu / Debian, Mac OS X, Windows dan Raspbian Linux. File Jar installer Oracle JDK BlueJ tersedia untuk sistem operasi lain.

Anda bisa mengetahui lebih banyak tentang BlueJ di sini.

Mengapa String Immutable Pada Java?

String objek pada Java bersifat immutable, artinya ketika String itu dibuat, maka kontennya tidak bisa diganti.

Pada pembahasan kali ini kita akan melihat lebih dalam lagi mengenai String.

Beberapa Alasan String Immutable


Ini adalah pertanyaan klasik namun cukup populer yang sering ditanyakan oleh para pengguna bahasa pemrograman Java. Terdapat beberapa alasan yang membutuhkan pemahaman lebih dalam untuk hal ini, yaitu meliputi memori, sinkronisasi, struktur data, dan sebagainya.

Beberapa alasan mengenai mengapa String immutable atau final dalam Java adalah:



  • Java Runtime dapat menghemat banyak ruang memori heap karena variabel string yang berbeda dapat merujuk kepada variabel string yang sama di dalam String pool. Pengertian dari string pool (kolam string ) adalah tempat string disimpan dalam memori Java heap.

    String adalah class istimewa dalam Java dan objek String dapat dibuat dengan menggunakan operator new ataupun menggunakan tanda petik ganda.

    Berikut ini adalah diagram yang menggambarkan dengan jelas bagaimana String pool berada dalam Java heap dan apa yang terjadi jika anda membuat String dengan cara yang berbeda.

    java_string_pool
    String pool di dalam Java heap


    String pool ini hanya dapat terjadi karena String tersebut immutable. String pool dapat menghemat ruang untuk Java Runtime walaupun waktu yang dibutuhkan untuk membuat String menjadi lebih lama.

    Ketika anda menggunakan tanda kutip ganda untuk membuat String, maka pertama-tama akan dicari String dengan nilai yang sama di dalam String pool, jika ditemukan, maka referensi akan dikembalikan, namun jika nilai yang sama tidak ditemukan, maka String yang baru akan dibuat dan referensi akan dikembalikan.




    Namun ketika anda membuat String dengan operator new maka anda akan memaksa class String untuk membuat objek String yang baru di dalam ruang heap. Anda dapat menggunakan method intern() untuk memasukannya kembali ke dalam String pool atau mengacu kepada objek String dari pool yang memiliki nilai yang sama.

    Agar lebih jelas berikut ini adalah contoh program yang menggambarkan mengenai String pool:



Output:


  • Jika String tidak immutable maka akan menjadi ancaman yang parah untuk aplikasi. Sebagai contoh pada username database, password dilewatkan sebagai String untuk mendapatkan koneksi pada database. Karena String immutable maka nilainya tidak bisa diubah kecuali ada peretas yang yang mampu mengubah nilai referensi untuk menyebabkan masalah keamanan pada aplikasi.


  • Karena String immutable maka aman untuk melakukan multithreading dan String tunggal dapat di share pada berbagai thread-thread yang berbeda. Hal ini menghindari penggunaan synchronization untuk keamanan thread. Secara implisit String merupakan thread safe.


  • String digunakan dalam ClassLoader pada Java dan immutable-nya memberikan kemananan bahwa class yang tepat akan di-load oleh class loader ini.


  • Karena String immutable maka kode hashnya di-cache pada saat pembuatan dan tidak perlu dihitung lagi. Ini menjadikannya pilihan yang hebat untuk key di dalam Map dan pemrosesannya berlangsung lebih cepat dibandingkan dengan key objek HashMap lainnya. Inilah yang menyebabkan String sering digunakan sebagai key HashMap.


Demikianlah beberapa poin yang bisa dirangkum mengenai mengapa String immutable pada Java. Ini menjadikan String menjadi class yang istimewa pada Java karena memiliki beberapa fitur-fitur yang hebat yang sangat bermanfaat.

Dasar Class BigDecimal Pada Aplikasi Bisnis

Setelah sebelumnya anda mengetahui mengenai class BigInteger, maka kali ini kita akan membahas mengenai class Big Decimal. Kedua class tersebut adalah immutable.

BigDecimal digunakan untuk perhitungan presisi perhitungan aritmatika yang tinggi. Class ini hampir bisa dikatakan masuk ke dalam tipe class wrapper, namun memiliki berbagai method yang sangat berguna.

Class ini memiliki method seperti ketika anda melakukan operasi aritmatika dengan tipe-tipe primitif. Hanya saja, jika pada tipe primitif anda menggunakan operator matematika seperti +, -, /, -, %, maka pada class BigDecimal atau BigInteger anda menggunakan method seperti add, substract, multiply dan sebagainya

Disini anda menukar kecepatan dengan akurasi.

Anda bisa menggunakan BigDecimal untuk perhitungan misalnya dalam hal keuangan yang memang membutuhkan presisi yang tinggi.

Ketika anda menggunakan Java untuk perhitungan bisnis aritmatika secara sederhana, mungkin anda bisa terkejut karena Java tidak selalu memberikan jawaban yang benar. Misalnya ketika tipe double digunakan untuk perhitungan invoice keuangan, ekspresi aritmatika mungkin tidak memberikan akurasi yang tepat.



Alasan sebenarnya adalah angka floating-point tidak bisa merepresentasikan semua desimal dengan akurasi yang diperlukan. Kemudian ketika anda melakukan pembulatan menjadi dua angka dibelakang koma, maka ini bisa terjadi error.

Baca juga:
Class NumberFormat
Class BigInteger
Class DecimalFormat

Masalah Pada Angka Desimal  Dan Pembulatan


Perhatikan contoh program invoice di bawah ini, di mana ketika tipe data double yang digunakan tidak memberikan hasil yang akurat untuk perhitungan keuangan. Pajak penjualan adalah 5% atau 0.05 dari harga barang dan jika nilai pembelian di atas $100 maka akan mendapatkan diskon 10 % atau 0.1 dari harga barang.

Contoh output:

Bisa dilihat dari contoh output di atas, ketika user memasukkan subtotal 150.50, program memberikan hasil yang tepat.

Namun, masalah terjadi ketika user memasukkan subtotal 100.05, total sebelum pajak adalah $90.04 padahal seharusnya $90.05. Demikian juga ketika user memasukkan subtotal 0.7, program memberikan hasil pajak penjualan $0.03, dan seharusnya subtotal menjadi $0.73, tetapi program memberikan hasil $0.74.

Jadi apa masalah yang terjadi di sini? Apakah program tidak berjalan dengan semestinya?

belajar_java_dasar_class_big_decimal


Perhatikan pada nilai yang yang dimasukkan user yaitu 100.05, dari sini anda dapat dengan mudah mengetahui penyebabnya. Ini dikarenakan bagaimana NumberFormat bekerja, jumlah diskon $10.005 dan juga total sebelum pajak $90.045 tidak dibulatkan ke atas.

Pada output program terlihat bahwa total sebelum pajak adalah $90.04 dan pajak penjualan $4.50, dan subtotal $94.55. Seperti terlihat program ini tidak menjumlahkan dengan benar.

Dari sini anda bisa mengetahui bahwa sebenarnya program berjalan sebagaimana mestinya, walaupun memberikan hasil yang tidak diinginkan.

Sekarang coba lihat juga pada nilai 0.70 yang dimasukan user, seharusnya pajak penjualan adalah $0.035 namun output menunjukkan $0.03, ini terjadi karena angka floating-point tidak merepresentasikan dengan tepat untuk beberapa fraksi desimal.

Sebagai hasilnya, nilai yang diformat $0.03 seharusnya dibulatkan menjadi $0.04. Namun, total invoice yang ditunjukkan adalah benar di $0.74. Wow, jadi sepertinya program ini tidak bisa menghitung ya? Lihat juga jika dihitung berdasarkan jumlah jumlah masing-masing subtotal yang ditampilkan, harusnya total invoice adalah $237.51, namun outpout adalah $237.50.

Meskipun error seperti ini bisa diterima dalam kebanyakan aplikasi, namun ini tidak akan bisa diterima dalam aplikasi bisnis. Dan untuk aplikasi seperti ini, anda perlu untuk menyediakan pemecahan masalah untuk dapat memberikan hasil yang anda inginkan. Coba bayangkan bagaimana jadinya jika menggunakan program invoice yang tidak bisa melakukan pembulatan ke atas.

Salah satu solusi mungkin adalah dengan menulis kode tanpa pembulatan sehingga anda tidak memerlukan class NumberFormat untuk melakukan pembulatan tersebut. Namun, faktanya beberapa fraksi desimal tidak dapat secara akurat direpresentasikan oleh angka floating-point.

Jadi untuk memecahkan masalah tersebut juga pada data yang lainnya, solusi terbaik adalah menggunakan class BigDecimal.

Menggunakan BigDecimal

Class BigDecimal didesain untuk mengatasi 2 masalah, yaitu:

  • Untuk merepresentasikan angka desimal dengan tepat.
  • Digunakan untuk bekerja dengan angka yang memiliki lebih dari 16 digit signifikan.

Jika anda belum pernah menggunakan class ini sebelumnya, sebaiknya dipelajari dan diperdalam, karena class ini banyak dipakai dalam aplikasi bisnis.

Setelah anda membuat objek BigDecimal, maka anda bisa menggunakan method pada objek tersebut.

Beberapa method yang sering digunakan adalah:

  • add(value)
  • compareTo(value)
  • divide(value, scale, rounding-mode)
  • setScale(scale, rounding-mode)
  • substract(value)
  • toString()

Method toString() akan mengkonversi nilai dari objek BigDecimal menjadi sebuah string. Anda dapat menggunakan method compareTo() untuk membandingkan nilai dalam objek BigDecimal.

Method setScale() juga sangat penting karena digunakan untuk menentukan junmlah dari angka desimal dari sebuah nilai dari objek BigDecimal sebagaimana juga digunakan dalam mode pembulatan.

Contoh mengatur desimal menjadi dua angka:

pajakPenjualan = pajakPenjualan.setScale (2, RoundingMode.HALF_UP);
dalam hal ini RoundingMode adalah enumerasi. Aplikasi bisnis kebanyakan menggunakan HALF_UP untuk mode pembulatannya. Namun, sebelum bisa menggunakannya, anda harus meng-importnya terlebih dahulu.

Berikut ini adalah contoh program invoice yang menggunakan BigDecimal:


Output:



Dari kedua ouput tersebut di atas anda bisa membandingkan ketika tanpa menggunakan BigDecimal dan setelah menggunakannya.

Dengan kode yang baru ini, semua nilai hasil disimpan dalam objek BigDecimal dan semua hasil memiliki dua angka desimal dan pembulatan telah dilakukan dengan benar ketika dibutuhkan.

Ketika hasil dikalkulasi, anda dapat menggunakan method NumberFormat untuk melakukan format pada nilai dalam objek BigDecimal tersebut tanpa perlu merasa khawatir dengan masalah pada pembulatan. Tapi, method dari objek NumberFormat hanya membatasi hasil sampai 16 digit signifikan saja.

Memahami Class DecimalFormat Dalam Pemrograman Java

Ketika berurusan dengan angka-angka desimal terkadang anda memerlukan untuk memformatnya. seperti membuatnya menjadi dua atau tiga angka dibelakang koma ataupun memerlukan untuk menambahkan angka nol di depang angka tersebut.

Untungnya Java menyediakan banyak cara untuk melakukan hal itu seperti menggunakan Math.round() atau setScale dari class BigDecimal. Namun satu hal yang perlu diperhatikan jika menggunakan Math.round() maka pembulatan angka akan dilakukan, misalnya 2.8 akan dibulatkan menjadi 3.0.

Baca juga:
Class BigInteger

Oleh karena itu jika anda ingin memformat angka desimal sampai dengan n angka, maka menggunakan DecimalFormat adalah pilihan yang tepat. Class java.text.DecimalFormat adalah subclass dari class NumberFormat sehingga bisa menyediakan cara yang dinamis untuk melakukan format pada angka.

Class_DecimalFormat_Java


Ketika anda membuat instance dari DecimalFormat, anda bisa melakukan passing String yang menjelaskan format angka desimal mana yang harus dipakai dan kemudian method DecimalFormat.format() akan melaksanakan tugasnya.



Kali ini akan dijelaskan bagaimana cara untuk melakukan format angka desimal dalam 2 angka dan 3 angka dibelakang titik, menggunakan tanda 'koma' untuk melakukan pemisahan setiap 3 digit angka, dan lain sebagainya.

Cara Menggunakan DecimalFormat 


Class DecimalFormat berada dalam package java.text dan inherit dari class NumberFormat. Untuk dapat melakukan format angka, maka instance dari class DecimalFormat harus dibuat dengan pola yang sudah ditentukan.

Ketika instance itu telah dibuat, selanjutnya anda bisa memanggil method DecimalFormat.format() untuk mengkonversi tipe double atau tipe long menjadi bentuk format yang diinginkan.

Berikut ini adalah contoh kode yang bisa membantu anda untuk lebih memahaminya:


Output:


Meskipun java.text.DecimalFormat adalah class yang sangat membantu untuk memformat bilangan secara dinamis dalam pemrogrman Java, namun class ini tidak thread-safe Sehingga disarankan untuk tidak membagi format desimal diantara beberapa thread.

Demikianlah cara memformat angka desimal dengan DecimalFormat, meskipun terdapat beberapa cara lain yang dapat digunakan, namun metode ini adalah yang paling simpel, mudah, dan rapi untuk memformat bilangan desimal.

Class NumberFomat Pada Pemrograman Java

Class NumberFormat dapat digunakan untuk memformat angka sesuai dengan lokasi spesifik. Class ini adalah class abstract yang terdapat pada package java.text, dan merupakan class dasar untuk semua pemformatan angka-angka.

NumberFormat menyediakan interface untuk memformat dan melakukan parse angka,sehingga kode pemrograman dapat benar-benar bebas untuk melakukan konvensi lokal untuk titik desimal, pemisah ribuan, atau bahkan digit desimal tertentu yang digunakan.

Baca juga : BigInteger Class

Untuk mendapatkan instance dari class ini, maka anda harus memanggil method :
  • getInstance(), atau
  • getNumberInstance()
 Syntax untuk method tersebut adalah:
  • public static NumberFormat getNumberInstance(Locale locale)
  • public static NumberFormat getInstance(Locale locale)
Contoh:


Output:
US:3,765.874
GERMAN:3.765,874
FRENCH: 3 765,874


Pada kode di atas, nilai double pada variabel d diformat sesuai dengan lokasi spesifik, yaitu Amerika, Jerman dan Perancis.

NumberFormat_Java_Class

Jika anda akan melakukan berbagai format terhadap angka-angka, sebaiknya anda menggunakan loop seperti contoh berikut ini:


Contoh output:

 Angka random tipe double antara 1 dan 10000  
 Index 1: 8166.577506154228  
 Index 2: 2320.132528799088  
 Index 3: 439.5074246403331  
 Index 4: 8230.89888184325  
 Index 5: 3940.6629139853244  
 Index 6: 9686.544706925479  
 Index 7: 5932.8425465733335  
 Index 8: 6228.867727680574  
 Index 9: 6982.770634111797  
 Index 10: 6209.420453657998  
   
 Format: default  
 Index 1: 8,166.578  
 Index 2: 2,320.133  
 Index 3: 439.507  
 Index 4: 8,230.899  
 Index 5: 3,940.663  
 Index 6: 9,686.545  
 Index 7: 5,932.843  
 Index 8: 6,228.868  
 Index 9: 6,982.771  
 Index 10: 6,209.42  
   
 Format: Fraksi digit min 2, Fraksi digit max 4  
 Index 1: 8,166.5775  
 Index 2: 2,320.1325  
 Index 3: 439.5074  
 Index 4: 8,230.8989  
 Index 5: 3,940.6629  
 Index 6: 9,686.5447  
 Index 7: 5,932.8425  
 Index 8: 6,228.8677  
 Index 9: 6,982.7706  
 Index 10: 6,209.4205  
   
 Format: digit int min 6  
 Index 1: 008,166.578  
 Index 2: 002,320.133  
 Index 3: 000,439.507  
 Index 4: 008,230.899  
 Index 5: 003,940.663  
 Index 6: 009,686.545  
 Index 7: 005,932.843  
 Index 8: 006,228.868  
 Index 9: 006,982.771  
 Index 10: 006,209.42  
   
 Format: digit int max 5  
 Index 1: 8,166.578  
 Index 2: 2,320.133  
 Index 3: 439.507  
 Index 4: 8,230.899  
 Index 5: 3,940.663  
 Index 6: 9,686.545  
 Index 7: 5,932.843  
 Index 8: 6,228.868  
 Index 9: 6,982.771  
 Index 10: 6,209.42  
   
 Format: set grouping used false   
 Index 1: 8166.578  
 Index 2: 2320.133  
 Index 3: 439.507  
 Index 4: 8230.899  
 Index 5: 3940.663  
 Index 6: 9686.545  
 Index 7: 5932.843  
 Index 8: 6228.868  
 Index 9: 6982.771  
 Index 10: 6209.42  

Melakukan  Format Terhadap Nilai Mata Uang

Untuk melakukan format terhadap nilai mata uang dan angka persentase, anda bisa menggunakan  method getCurrencyInstance() dan method getPercentInstance(), seperti  contoh berikut ini melakukan format secara default:

Output:
Saldo awal $1,500.00 dengan bunga 7% totalnya menjadi $1,605.00

 Beberapa hal yang perlu diingat ketika akan menambahkan 'koma' pada angka adalah:
  • Anda bisa menggunakan class NumberFormat atau DecimalFormat untuk melakukan pengelompokan dan menampilkan koma diantara digit-digit angka
  • Anda bisa menggunakan method NumberFormat.setGroupingUsed(true), method ini akan mem-passing argumen true sehingga pengelompokan dilakukan.
  • Secara default pengelompokkan adalah tiga digit, contohnya 10000000 di kelompokkan menjadi 10,000,000. Artinya, tanda koma akan dimasukkan setelah tiga digit dari kanan dan hanya pada bagian integer saja dari angka tersebut.
  • Untuk menambah ukuran pengelompokkan atau grouping tersebut, anda bisa menggunakan method setGroupingSize(size) dari class DecimalFormat. Misalnya setGroupingSize(5), maka akan menampilkan koma setelah setiap lima digit dimulai dari titik desimal ke kiri.

Memahami Class BigInteger Pada Java

Terkadang dalam pemrograman mungkin anda membutuhkan angka dalam ukuran dan presisi tertentu. Kebanyakan aplikasi, termasuk aplikasi teknik, menggunakan perhitungan tipe data float dan double standar  untuk melakukan operasi dasar metematika di Java.

Namun adakalanya tipe data standar itu tidak mememenuhi kebutuhan dalam program, kerena anda bekerja dengan angka yang sangat besar atau membutuhkan presisi yang sangat tinggi, oleh karena itu Java menyediakan class yang bersifat immutable yaitu BigInteger dan BigDecimal yang terdapat dalam package java.math untuk menyelesaikan permasalahan tersebut.

BigInteger


BigInteger diperlukan dalam operasi matematika ketika nilai integer yang digunakan sangat besar karena jika  hanya menggunakan tipe data int bisa menyebabkan integer overflow.


Integer overflow terjadi dalam pemrograman karena suatu operasi aritmatika yang mencoba untuk memberikan nilai diluar dari range maksimum dan minimum yang dapat direpresentasikan oleh angka yang diberikan bit tertentu.

Kondisi tersebut bisa menyebabkan program memberikan hasil yang tidak akurat, jika tidak diantisipasi dengan baik bisa menyebabkan masalah pada kehandalan dan keamanan program.

class_biginteger_java


BigInteger dapat digunakan ketika tipe data int tidak dapat memenuhi kebutuhan anda. Misalnya ketika anda membutuhkan nilai faktorial dari 70 atau 70!, seperti contoh di bawah ini:

Output:

Nilai faktorial dari 70 adalah:
11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000

Penjelasan:

Class BigInteger digunakan untuk merepresentasikan nilai yang besar dan tidak menentu, sehingga integer overflow tidak akan terjadi seperti bila anda menggunakan int dan long. Pada program di atas, objek dibuat dengan nama hasil, yang akan memegang nilai dari faktorial 70, dimana nilainya diinisialisasi dengan 1.

BigInteger hasil = BigInteger.ONE; //lihat line 15

Loop yang digunakan adalah for loop yang merupakan standar untuk perhitungan faktorial. Perkalian antara dua BigInteger dilakukan menggunakan method multiply(), yang menggunakan nilai BigInteger sebagai argumen.

Class BigInteger itu bersifat immutable artinya pada objek di mana fungsi multiply itu dipanggil, tidak akan mengubah nilai integer yang dipegangnya. Perkalian akan dilakukan dan nilai BigInteger yang baru akan dikembalikan dan simpan dalam variabel objek hasil.

hasil = hasil.multiply(new BigInteger (i + ""));//lihat line 20

Jika kode di bawah ini digunakan untuk menggantikan kode pada line 20 di atas, program akan selalu memberikan 1 sebagai jawaban.

hasil.multiply(new BigInteger (i + ""));

Kenapa bisa demikian? Karena nilai dari hasil telah diinisialisasi dengan 1. Dengan demikian, perkalian tersebut tidak akan memiliki efek pada nilai yang disimpan pada hasil, karena objek yang dikembalikan oleh multiply() tidak disimpan kembali pada hasil. Sehingga walaupun loop telah selesai, program akan tetap memberikan nilai 1 sebagai jawaban.

Secara simpel objek dari BigInteger misalnya dapat dibuat dengan:

BigInteger myNumber = new BigInteger("894164965438599736442957283566998");

Beberapa method untuk pengoperasian matematikanya adalah:
  • add() //penjumlahan
  • substract() //pengurangan
  • multiply() //perkalian
  • divide() //pembagian
  • remainder() //modulo
  • divideAndRemainder()
  • pow() //perpangkatan
  • gcd() //greatest common divisor
dan lain sebagainya.

Demikianlah penjelasan singkat mengenai class BigInteger pada Java, semoga bisa menambah pengetahuan bagi anda yang sedang belajar pemrograman.