Java: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Anne C (bicara | kontrib)
Tag: Suntingan perangkat seluler Suntingan peramban seluler Suntingan seluler lanjutan
Baris 6:
| paradigm = [[Paradigma pemrograman#Multiparadigma|Multiparadigma]]: [[pemrograman generik|generik]], [[Pemrograman berorientasi objek|OOP]] ([[Pemrograman berbasis kelas]]), [[pemrograman fungsional|fungsional]], [[pemrograman imperatif|imperatif]], [[Reflektif (pemrograman komputer)|reflektif]], [[Komputasi bersamaan|bersamaan]]
| year = {{Start date and age|1995|5|23}}<ref>{{cite magazine|url=https://www.forbes.com/sites/oracle/2015/05/20/javas-20-years-of-innovation/|title=Java's 20 Years of Innovation|magazine=Forbes|date=May 20, 2015|access-date=March 18, 2016|author=Binstock, Andrew|archive-url=https://web.archive.org/web/20160314102242/http://www.forbes.com/sites/oracle/2015/05/20/javas-20-years-of-innovation/|archive-date=March 14, 2016|url-status=live|df=mdy-all}}</ref>
| designer = Oracle[[James Gosling]]
| developer = [[Oracle Corporation]]
| typing = [[tipe sistem|Statis, kuat, aman]], [[sistem tipe nominal|nominatif]], [[pengetikan manifes|manifest]]
| implementations = Kompiler: [[OpenJDK]] (javac, sjavac), [[GNU Compiler for Java]] (GCJ), Eclipse Compiler for Java (ECJ)<br />Mesin virtual: OpenJDK JRE, [[JRockit|Oracle JRockit]], [[Azul Systems|Azul Zing]], [[OpenJ9|IBM J9]], [[Excelsior JET]], Gluon VM, [[Microsoft Java Virtual Machine|Microsoft JVM]], [[Apache Harmony]]<br />Kompiler JIT: [[HotSpot (mesin virtual)|HotSpot]], [[GraalVM]], [[Azul Systems|Azul Falcon (LLVM)]]
Baris 16 ⟶ 17:
[[C Sharp (bahasa pemrograman)|C#]]. [http://www.barrycornelius.com/papers/java5/] {{Webarchive|url=https://web.archive.org/web/20110319065438/http://www.barrycornelius.com/papers/java5/|date=March 19, 2011}} [http://www.levenez.com/lang/] {{Webarchive|url=https://web.archive.org/web/20060107162045/http://www.levenez.com/lang/|date=January 7, 2006}}</ref> [[Eiffel (programming language)|Eiffel]],<ref>{{cite web|author1=Gosling, James|author2=McGilton, Henry|title=The Java Language Environment|date=May 1996|url=https://www.oracle.com/technetwork/java/langenv-140151.html|access-date=May 6, 2014|archive-url=https://web.archive.org/web/20140506214653/http://www.oracle.com/technetwork/java/langenv-140151.html|archive-date=May 6, 2014|url-status=live|df=mdy-all}}</ref> [[Mesa (bahasa pemrograman)|Mesa]],<ref>{{cite web|author1=Gosling, James|author2=Joy, Bill|author3=Steele, Guy|author4=Bracha, Gilad|title=The Java Language Specification, 2nd Edition|url=https://java.sun.com/docs/books/jls/second_edition/html/intro.doc.html#237601|access-date=February 8, 2008|archive-url=https://web.archive.org/web/20110805051057/http://java.sun.com/docs/books/jls/second_edition/html/intro.doc.html#237601|archive-date=August 5, 2011 |url-status=live |df=mdy-all}}</ref> [[Modula-3]],<ref>{{cite web|url=http://www.computerworld.com.au/index.php/id;1422447371;pp;3;fp;4194304;fpid;1|title=The A-Z of Programming Languages: Modula-3|publisher=Computerworld.com.au|access-date=2010-06-09|url-status=dead|archive-url=https://web.archive.org/web/20090105145818/http://www.computerworld.com.au/index.php/id%3B1422447371%3Bpp%3B3%3Bfp%3B4194304%3Bfpid%3B1|archive-date=January 5, 2009|df=mdy-all}}</ref> [[Oberon (programming language)|Oberon]],<ref>[[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: {{cite web|author=Filippova, Elena|title=Niklaus Wirth's lecture at the Polytechnic Museum in Moscow|date=September 22, 2005|url=http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1155|access-date=November 20, 2011|archive-date=December 1, 2020|archive-url=https://web.archive.org/web/20201201054813/http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1155|url-status=live}}), 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{{snd}} all these key overall design features are shared by Java and Oberon.</ref> [[Objective-C]],<ref>[[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 [[Objective-C#Protocols|protocol]]) and primitive wrapper classes. [http://cs.gmu.edu/~sean/stuff/java-objc.html] {{Webarchive|url=https://web.archive.org/web/20110713014816/http://cs.gmu.edu/~sean/stuff/java-objc.html|date=July 13, 2011}}</ref> [[UCSD Pascal]],<ref>{{cite web|url=http://www.fscript.org/prof/javapassport.pdf|quote=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.|title=History of Java|work=Java Application Servers Report|author=TechMetrix Research|year=1999|url-status=dead|archive-url=https://web.archive.org/web/20101229090912/http://www.fscript.org/prof/javapassport.pdf|archive-date=December 29, 2010|df=mdy-all}}</ref><ref>{{cite web|url=http://queue.acm.org/detail.cfm?id=1017013|title=A Conversation with James Gosling – ACM Queue |publisher=Queue.acm.org|date=August 31, 2004|access-date=2010-06-09|archive-url=https://web.archive.org/web/20150716194245/http://queue.acm.org/detail.cfm?id=1017013|archive-date=July 16, 2015|url-status=live|df=mdy-all}}</ref> [[Object Pascal]]<ref>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.[https://web.archive.org/web/20120627043929/http://java.sun.com/docs/white/delegates.html White Paper About Microsoft's Delegates]</ref>
| influenced = [[Ada (bahasa pemrograman)|Ada 2005]], [[BeanShell]], [[C Sharp (bahasa pemrograman)|C#]], [[Chapel (bahasa pemrograman)|Chapel]],<ref name="chplspec">{{cite web|title=Chapel spec (Acknowledgements)|url=http://chapel.cray.com/spec/spec-0.98.pdf|date=2015-10-01|access-date=2016-01-14|publisher=Cray Inc.|archive-url=https://web.archive.org/web/20160205114946/http://chapel.cray.com/spec/spec-0.98.pdf|archive-date=February 5, 2016|url-status=live|df=mdy-all}}</ref> [[Clojure]], [[ECMAScript]], [[Fantom (bahasa pemrograman)|Fantom]], [[Gambas]],<ref name="gambas">{{cite web|url=http://gambaswiki.org/wiki/doc/intro?nh&l=en|title=Gambas Documentation Introduction|publisher=Gambas Website|access-date=2017-10-09|archive-url=https://web.archive.org/web/20171009041815/http://gambaswiki.org/wiki/doc/intro?nh&l=en|archive-date=October 9, 2017|url-status=live|df=mdy-all}}</ref> [[Groovy (bahasa pemrograman)|Groovy]], [[Hack (bahasa pemrograman)|Hack]],<ref>{{cite magazine|url=http://www.infoworld.com/article/2610885/facebook-q-a--hack-brings-static-typing-to-php-world.html|title=Facebook Q&A: Hack brings static typing to PHP world|magazine=InfoWorld|date=March 26, 2014|access-date=2015-01-11|archive-url=https://web.archive.org/web/20150213220946/http://www.infoworld.com/article/2610885/facebook-q-a--hack-brings-static-typing-to-php-world.html|archive-date=February 13, 2015|url-status=live|df=mdy-all}}</ref> [[Haxe (bahasa pemrograman)|Haxe]], [[J Sharp|J#]], [[Kotlin (bahasa pemrograman)|Kotlin]], [[PHP]], [[Python (bahasa pemrograman)|Python]], [[Scala (bahasa pemrograman)|Scala]], [[Seed7]], [[Vala (bahasa pemrograman)|Vala]], [[JavaScript]], [[JS++]]
| File format = .java, [[berkas kelas Java|.class]], [[JAR (format berkas)|.jar]], .jmod
}}
 
Baris 23 ⟶ 25:
 
[[Oracle Corporation|Oracle]] (dan yang lainnya) sangat merekomendasikan untuk menghapus versi lawas dan tidak didukung dari Java, karena masalah keamanan yang belum terselesaikan di versi lama.<ref>{{Cite web|title=Why should I uninstall older versions of Java from my system?|url=https://www.java.com/en/download/faq/remove_olderversions.xml|publisher=Oracle|archive-url=https://web.archive.org/web/20180212011608/https://java.com/en/download/faq/remove_olderversions.xml|archive-date=February 12, 2018|access-date=2021-09-24|url-status=live}}</ref> Oracle menyarankan para penggunanya untuk segera bertransisi ke versi yang mendukung, 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 ==
Baris 43 ⟶ 47:
Nama Oak, 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 ==
Versi awal Java pada tahun [[1996]] sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
* <code>java.lang</code>: Peruntukan kelas elemen-elemen dasar.
* <code>java.io</code>: Peruntukan kelas ''input'' dan ''output'', termasuk penggunaan berkas.
Baris 52 ⟶ 56:
* <code>java.applet</code>: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
<!-- tag tak netral dipindah ke bagian yang tak netral (bagian IDE) -->
=== Riawayat versi ===
{{Main|riwayat versi Java}}
{{As of|2021|09}}, Java 8, 11 dan 17 didukung sebagai versi [[Long-term support|Long-Term Support]] (LTS).<ref>{{cite web|date=September 13, 2021|title=Oracle Java SE Support Roadmap|url=https://www.oracle.com/java/technologies/java-se-support-roadmap.html|publisher=Oracle|archive-url=https://web.archive.org/web/20210919090451/https://www.oracle.com/java/technologies/java-se-support-roadmap.html|archive-date=2021-09-19|access-date=September 18, 2021|url-status=live}}</ref>
 
Perilisan utama dari Java, bersama dengan tanggal perilisannya:
{| class="wikitable"
!Versi
!Tanggal
|-
|JDK [[Versi beta|Beta]]
|1995
|-
|JDK 1.0
|23 Januari 1996<ref>{{cite web|title=JAVASOFT SHIPS JAVA 1.0|url=http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml|website=sun.com|archive-url=https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml|archive-date=March 10, 2007|access-date=2008-02-05|url-status=dead}}</ref>
|-
|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<ref>{{cite web|last=Chander|first=Sharat|title=Introducing Java SE 11|url=https://blogs.oracle.com/java-platform-group/introducing-java-se-11|website=oracle.com|archive-url=https://web.archive.org/web/20180926093144/https://blogs.oracle.com/java-platform-group/introducing-java-se-11|archive-date=September 26, 2018|access-date=September 26, 2018|url-status=live}}</ref>
|-
|Java SE 12
|19 Maret 2019
|-
|Java SE 13
|17 September 2019
|-
|Java SE 14
|17 Maret 2020
|-
|Java SE 15
|15 September 2020<ref>{{cite web|date=September 15, 2020|title=The Arrival of Java 15!|url=https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15|publisher=[[Oracle Corporation|Oracle]]|archive-url=https://web.archive.org/web/20200916092332/https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15|archive-date=September 16, 2020|access-date=2020-09-15|url-status=live}}</ref>
|-
|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
|}
 
== Kelebihan dan kekurangan ==