Java

bahasa pemrograman berorientasi objek
(Dialihkan dari Bahasa Java)


Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems, yang saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis Java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM).

Java
Edit nilai pada Wikidata
ParadigmaMultiparadigma: generik, OOP (Pemrograman berbasis kelas), fungsional, imperatif, reflektif, bersamaan
Dirancang olehJames Gosling
PengembangOracle Corporation
Rilis perdana23 Mei 1995; 29 tahun lalu (1995-05-23)[1]
Tipe sistemStatis, kuat, aman, nominatif, manifest
Format berkas.java, .class, .jar, .jmod
Situs webwww.oracle.com/java/
Repositoriwww.oracle.com/java/
Implementasi utama
Kompiler: OpenJDK (javac, sjavac), GNU Compiler for Java (GCJ), Eclipse Compiler for Java (ECJ)
Mesin virtual: OpenJDK JRE, Oracle JRockit, Azul Zing, IBM J9, Excelsior JET, Gluon VM, Microsoft JVM, Apache Harmony
Kompiler JIT: HotSpot, GraalVM, Azul Falcon (LLVM)
Terpengaruh oleh
CLU,[2] Simula67,[2] Lisp,[2] Smalltalk,[2] Ada 83, C++,[3] C#,[4] Eiffel,[5] Mesa,[6] Modula-3,[7] Oberon,[8] Objective-C,[9] UCSD Pascal,[10][11] Object Pascal[12]
Mempengaruhi
Ada 2005, BeanShell, C#, Chapel,[13] Clojure, ECMAScript, Fantom, Gambas,[14] Groovy, Hack,[15] Haxe, J#, Kotlin, PHP, Python, Scala, Seed7, Vala, JavaScript, JS++
Sunting kotak info
Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didesain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi Java mampu berjalan di beberapa platform sistem operasi yang berbeda, Java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini Java merupakan bahasa pemrograman yang paling populer digunakan[butuh rujukan], dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak.

Oracle (dan yang lainnya) sangat merekomendasikan untuk menghapus versi lawas dan tidak didukung dari Java, karena masalah keamanan yang belum terselesaikan di versi lama.[16] Oracle menyarankan para penggunanya untuk segera bertransisi ke versi yang didukung, seperti salah satu versi LTS (8, 11, 17).

Pada Maret 2023, Java 20 adalah versi terbaru, sedangkan Java 17, 11 dan 8 adalah versi Long-term support (LTS) saat ini.

Sejarah perkembangan

sunting
 
Duke, si maskot Java
 
James Gosling, pembuat dari Java, pada 2008

Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, yaitu dari awal tahun 1991 hingga musim panas 1992. Proyek ini awalnya diciptakan untuk televisi interaktif [17], dimana awalnya bahasa ini dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, dan James Gosling, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada perangkat asisten digital pribadi sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.

Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.

Mereka menjadikan peramban (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.

Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.

Pada awalnya, bahasa ini dinamakan sebagai Oak yang diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).

Versi awal Java pada tahun 1996 sudah merupakan versi rilis sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:

  • java. Lang: Peruntukan kelas elemen-elemen dasar.
  • java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
  • java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas-kelas penanggalan.
  • java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
  • java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
  • java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

Riawayat versi

sunting

Hingga September 2021, Java 8, 11, dan 17 didukung sebagai versi Long-Term Support (LTS).[18]

Perilisan utama dari Java, bersama dengan tanggal perilisannya:

Versi Tanggal
JDK Beta 1995
JDK 1.0 23 Januari 1996[19]
JDK 1.1 19 Februari 1997
J2SE 1.2 8 Desember 1998
J2SE 1.3 8 Mei 2000
J2SE 1.4 6 Februari 2002
J2SE 5.0 30 September 2004
Java SE 6 11 Desember 2006
Java SE 7 28 Juli 2011
Java SE 8 (LTS) 18 Maret 2014
Java SE 9 21 September 2017
Java SE 10 20 Maret 2018
Java SE 11 (LTS) 25 September 2018[20]
Java SE 12 19 Maret 2019
Java SE 13 17 September 2019
Java SE 14 17 Maret 2020
Java SE 15 15 September 2020[21]
Java SE 16 16 Maret 2021
Java SE 17 (LTS) 14 September 2021
Java SE 18 22 Maret 2022
Java SE 19 20 September 2022
Java SE 20 21 Maret 2023
Java SE 21 19 September 2023
Java SE 22 19 Maret 2024
Java SE 23 17 September 2024

Kelebihan dan kekurangan

sunting

Kelebihan

sunting
  • Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan di atas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek), Java merupakan salah satu bahasa pemrograman dengan konsep OOP Diarsipkan 2017-01-18 di Wayback Machine.. Di mana program yang dibangun berorientasikan kepada Object. Aplikasi yang dibangun dengan konsep OOP terdiri atas object-object yang saling berhubungan
  • Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
  • Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
  • Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

Kekurangan

sunting
  • Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
  • Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Sintaks

sunting

Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman Java adalah sebagai berikut:

// Outputs "Hello, world!" and then exits
public class HelloWorld {
   public static void main(String args[]) {
       System.out.println("Hello, world!");
   }
}

Semua file sumber harus dinamai setelah berisi public class, menambahkan suffix .java, sebagai contoh, HelloWorldApp.java. Itu harus terlebih dahulu dikompilasi menjadi bytecode, menggunakan sebuah kompiler Java, membuat sebuah file dengan suffix .class(HelloWorldApp.class, dalam kasus ini). Hanya dengan begitu itu dapat dieksekusi atau diluncurkan. File sumber Java hanya boleh berisi satu public class, tapi itu dapat berisi beberapa class dengan pengubah akses non-publik dan sejumlah class dalam publik. Saat file sumber memiliki beberapa Class, perlu untuk membuat satu class (diperkenalkan oleh kata kunciclass) publik (didahului oleh kata kunci public) dan beri nama file sumber dengan nama public class itu.

Contoh dengan metode

sunting
// Ini adalah dari komen satu baris menggunakan dua garis miring

/*
 * Ini adalah contoh komentar beberapa baris menggunakan garis miring dan tanda bintang.
 * Jenis komentar ini dapat digunakan untuk menyimpan banyak informasi atau menonaktifkan
 * kode, tetapi sangat penting untuk diingat untuk menutup komentar.
 */

package fibsandlies;

import java.util.Map;
import java.util.HashMap;

/**
 * Ini adalah contoh komentar Javadoc; Javadoc dapat mengkompilasi dokumentasi
 * dari teks ini. Komentar Javadoc harus segera mendahului kelas, metode,
 * atau bidang yang didokumentasikan.
 * @author Relawan Wikipedia
 */
public class FibCalculator extends Fibonacci implements Calculator {
    private static Map<Integer, Integer> memoized = new HashMap<>();

    /*
     * Metode utama yang ditulis sebagai berikut digunakan oleh JVM sebagai titik awal
     * untuk program.
     */
    public static void main(String[] args) {
        memoized.put(1, 1);
        memoized.put(2, 1);
        System.out.println(fibonacci(12)); // Mendapatkan nomor Fibonacci ke-12 dan print ke konsol
    }

    /**
     * Contoh metode yang ditulis dalam Java, dibungkus dalam class.
     * Diberikan angka non-negatif FIBINDEX, return
     * angka Fibonacci ke-N, di mana N sama dengan FIBINDEX.
     * 
     * @param fibIndex Indeks angka Fibonacci
     * @return Nomor Fibonacci
     */
    public static int fibonacci(int fibIndex) {
        if (memoized.containsKey(fibIndex)) {
            return memoized.get(fibIndex);
        }

        int jawaban = fibonacci(fibIndex - 1) + fibonacci(fibIndex - 2);
        memoized.put(fibIndex, jawaban);
        return jawaban;
    }
}

Dokumentasi

sunting

Javadoc adalah sistem dokumen komprehensif, dibuat oleh Sun Microsystems. Itu menyediakan pengembang dengan sebuah sistem terorganisir untuk mendokumentasi kode mereka. Komentar Javadoc memiliki tanda bintang ekstra di awal, yaitu pembatas adalah /** dan */, sedangkan komentar multi-baris normal di Java dibatasi oleh /* dan */, dan komentar baris tunggal dimulai dengan //.[22]

Tahap kompilasi

sunting
  1. Tulis / Ubah. Pemrogram menulis program dan menyimpannya di media dalam bentuk berkas '.java'.
  2. Kompilasi. Pengkompilasi membentuk bytecodes dari program menjadi bentuk berkas '.class'.
  3. Muat. Pemuat kelas memuat bytecodes ke memori.
  4. Verifikasi. Peng-verifikasi memastikan bytecodes tidak mengganggu sistem keamanan Java.
  5. Jalankan. Penerjemah menerjemahkan bytecodes ke bahasa mesin.tidak bisa di pakai‘’

Integrated Development Environment

sunting

Banyak pihak telah membuat IDE (Integrated Development Environment - Lingkungan Pengembangan Terintegrasi) untuk Java. Yang populer saat ini (Juli 2006) antara lain:

NetBeans disponsori Sun Microsystems, dan versi terkininya memilki Matisse, sebuah GUI Editor yang menurut pendapat umum merupakan yang terbaik. [butuh rujukan]

Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya.

JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari kebanyakan.

Referensi

sunting
  1. ^ Binstock, Andrew (May 20, 2015). "Java's 20 Years of Innovation". Forbes. Diarsipkan dari versi asli tanggal March 14, 2016. Diakses tanggal March 18, 2016. 
  2. ^ a b c d Barbara Liskov with John Guttag (2000). Program Development in Java - Abstraction, Specification, and Object-Oriented Design. USA, Addison Wesley. ISBN 9780201657685. 
  3. ^ Chaudhary, Harry H. (2014-07-28). "Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans". Diakses tanggal 2016-05-29. 
  4. ^ Java 5.0 menambahkan beberapa fitur bahasa baru (enhanced for loop, autoboxing, varargs dan anotasi), setelah mereka diperkenalkan di tempat yang sama (dan bersaing) bahasa C#. [1] Diarsipkan March 19, 2011, di Wayback Machine. [2] Diarsipkan January 7, 2006, di Wayback Machine.
  5. ^ Gosling, James; McGilton, Henry (May 1996). "The Java Language Environment". Diarsipkan dari versi asli tanggal May 6, 2014. Diakses tanggal May 6, 2014. 
  6. ^ Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad. "The Java Language Specification, 2nd Edition". Diarsipkan dari versi asli tanggal August 5, 2011. Diakses tanggal February 8, 2008. 
  7. ^ "The A-Z of Programming Languages: Modula-3". Computerworld.com.au. Diarsipkan dari versi asli tanggal January 5, 2009. Diakses tanggal June 9, 2010. 
  8. ^ Niklaus Wirth stated on a number of public occasions, e.g. in a lecture at the Polytechnic Museum, Moscow in September 2005 (several independent first-hand accounts in Russian exist, e.g. one with an audio recording: Filippova, Elena (September 22, 2005). "Niklaus Wirth's lecture at the Polytechnic Museum in Moscow". Diarsipkan dari versi asli tanggal December 1, 2020. Diakses tanggal November 20, 2011.  ), that the Sun Java design team licensed the Oberon compiler sources a number of years prior to the release of Java and examined it: a (relative) compactness, type safety, garbage collection, no multiple inheritance for classes – all these key overall design features are shared by Java and Oberon.
  9. ^ Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [3] Diarsipkan July 13, 2011, di Wayback Machine.
  10. ^ TechMetrix Research (1999). "History of Java" (PDF). Java Application Servers Report. Diarsipkan dari versi asli (PDF) tanggal December 29, 2010. The project went ahead under the name green and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code. 
  11. ^ "A Conversation with James Gosling – ACM Queue". Queue.acm.org. August 31, 2004. Diarsipkan dari versi asli tanggal July 16, 2015. Diakses tanggal June 9, 2010. 
  12. ^ In the summer of 1996, Sun was designing the precursor to what is now the event model of the AWT and the JavaBeans component architecture. Borland contributed greatly to this process. We looked very carefully at Delphi Object Pascal and built a working prototype of bound method references in order to understand their interaction with the Java programming language and its APIs.White Paper About Microsoft's Delegates
  13. ^ "Chapel spec (Acknowledgements)" (PDF). Cray Inc. October 1, 2015. Diarsipkan dari versi asli (PDF) tanggal February 5, 2016. Diakses tanggal January 14, 2016. 
  14. ^ "Gambas Documentation Introduction". Gambas Website. Diarsipkan dari versi asli tanggal October 9, 2017. Diakses tanggal October 9, 2017. 
  15. ^ "Facebook Q&A: Hack brings static typing to PHP world". InfoWorld. March 26, 2014. Diarsipkan dari versi asli tanggal February 13, 2015. Diakses tanggal January 11, 2015. 
  16. ^ "Why should I uninstall older versions of Java from my system?". Oracle. Diarsipkan dari versi asli tanggal February 12, 2018. Diakses tanggal 2021-09-24. 
  17. ^ The History of Java Technology di Wayback Machine (diarsipkan tanggal 10 Februari 2010)
  18. ^ "Oracle Java SE Support Roadmap". Oracle. September 13, 2021. Diarsipkan dari versi asli tanggal 2021-09-19. Diakses tanggal September 18, 2021. 
  19. ^ "JAVASOFT SHIPS JAVA 1.0". sun.com. Diarsipkan dari versi asli tanggal March 10, 2007. Diakses tanggal 2008-02-05. 
  20. ^ Chander, Sharat. "Introducing Java SE 11". oracle.com. Diarsipkan dari versi asli tanggal September 26, 2018. Diakses tanggal September 26, 2018. 
  21. ^ "The Arrival of Java 15!". Oracle. September 15, 2020. Diarsipkan dari versi asli tanggal September 16, 2020. Diakses tanggal 2020-09-15. 
  22. ^ "How to Write Doc Comments for the Javadoc Tool". Oracle Technology Network. Oracle. Diarsipkan dari versi asli tanggal December 18, 2014. Diakses tanggal December 18, 2014. 

Karya dikutip

sunting

Pranala luar

sunting