Jelaskan apa kelebihan Java memiliki fitur Code Security

Jelaskan apa kelebihan Java memiliki fitur Code Security

Bahasa Pemrograman java adalah bahasa terpopuler no 1 di dunia tahun 2016. Hal tersebut terjadi karena java dikenal sebagai bahasa tingkat tinggi yang cukup mudah dipelajari, berbasis objek dan yang membedakan dari bahasa pemrograman lain adalah JVM (Java Virtual Machine) yang membuat java dapat berjalan di berbagai sistem operasi, berikut pengenalan bahasa java yang harus anda tau sebelum belajar bahasa pemrograman java;

  • Pembaca dapat mengetahui perkembangan java sejak awal diciptakan.
  • Pembaca dapat mengetahui kelebihan java.
  • Pembaca dapat mengetahui beberapa fitur java.
  • Pembaca dapat mengetahui fase-fase pemrograman java. 

Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena manufaktur- manufaktur  berbeda memilih  processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.

Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portabel yang menghasilkan intermediate code untuk mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini kemudian dapat digunakan di sembarang mesin yang memiliki interpreter. Proyek Green menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin.

Karena orang–orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural. Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah  ada sebelumnya, kemudian SUN menggantinya dengan  JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai  kopi  yang  kemudian  dengan  tidak  sengaja  salah  satu  dari  mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.

Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang sangat cerdas. Dikarenakan pasar masih belum tertarik dengan produk konsumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang diciptakan.  Pada  saat  yang  sama,  implementasi  WWW  dan  Internet  sedang mengalami perkembangan pesat. Di lain pihak, anggota dari proyek Green juga menyadari bahwa Java dapat digunakan pada pemrograman internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang berperan di web.

Java   telah   mengakomodasi   hampir   seluruh   fitur   penting   bahasa–bahasa pemrograman yang ada semenjak perkembangan komputasi modern manusia :

1.  Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling mempengaruhi Java sekaligus C++. Dari bahasa ini diadopsi bentukan–bentukan dasar dari pemrograman berorientasi objek.

2.  Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection, serta

kemampuan untuk meniru generic list processing, meski fasilitas ini jarang yang memanfaatkannya.

3.  Dari  Algol  –  bahasa  pada  tahun  60-an,  diambil  struktur  kendali  yang dimilikinya.

4.  Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling

5.  Dari bahasa Ada, diambil strongly type, dan exception handling.

6.  Dari Objective C, diambil fasilitas interface.

7.  Dari  bahasa  SmallTalk,  diambil  pendekatan  single-root  class  hiérarchie,

dimana object adalah satu kesatuan hirarki pewarisan

8.  Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK

Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :

1.    Sederhana

Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks   pada   Java   telah   banyak   diperbaiki   terutama   menghilangkan penggunaan   pointer   yang   rumit   dan   multiple   inheritance.   Java   juga

menggunakan automatic memory allocation dan memory garbage collection.

2.    Berorientasi objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.

3.    Dapat didistribusi dengan mudah

Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya

libraries networking yang terintegrasi pada Java.

4.    Interpreter

Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

5.    Robust

Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.

6.    Aman

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan  untuk  merusak  sistem  komputer  yang  menjalankan  aplikasi tersebut.

7.    Architecture Neutral

Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.

8.    Portabel

Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.

9.    Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance Java  dapat  ditingkatkan  menggunakan  kompilasi  Java  lain  seperti  buatan Inprise,  Microsoft  ataupun  Symantec  yang  menggunakan  Just  In  Time Compilers (JIT).

10.  Multithreaded

Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.

11.  Dinamis

Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.

1.Kompleksifitas Tinggi,Tidak Mudah Dipelajari

            Bagi pemula dalam pembelajaran bahasa pemrograman,mungkin akan sedikit kesulitan dalam mempelajari bahasa java, karena sintaksis bahasa yang rumit dan mempunyai konsep OOP(Object Oriented Programming) tentu membawa kesulitan tersendiri, untuk mengerti keseluruhan bahasa java membutuhkan waktu yang tidak sedikit. Berbeda dengan halnya bahasa prosedural contohnya bahasa C yang mudah dipelajari untuk pemula.

2.Compiler Memakan Memori Besar,Begitu Juga Programnya

            Perlu diketahui Compiler Java adalah program yang digunakan untuk mengkompilasi kode-kode java kedalam class-class dan disajikan dalam bentuk .class atau .jar. Penggunaan memori untuk compiler java tidak sedikit. Contohnya adalah Netbeans yang menggunakan memori 200-400MB RAM dalam penggunaannya,semakin banyak tab window yang terbuka semakin menguras memori. Sebelum adanya Garbage Collection java dikenal sebagai program yang boros memori,kenapa ? karena konsep OOP yang membuat objek pada kode akan memakan memori. Programmer perlu mehapus objek yang tidak digunakan secara manual,jika tidak maka program akan berjalan lambat dan memakan memori besar. Menjalankan program java artinya menjalankan Java Virtual Machine sebagai pondasi dasar, tidak seperti .NET yang terintergrasi pada windows. JVM berjalan diatas dirinya sendiri sehingga menjalankan aplikasi java juga membutuhkan alokasi memori untuk JVM.

JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah  mesin  nyata. JVM menyediakan spesifikasi hardware  dan  platform dimana  kompilasi  kode  Java  terjadi.  Spesifikasi  inilah  yang  membuat  aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM.

Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi  menghasilkan  satu  berkas  bytecode  berekstensi  .class  atau  lebih. Bytecode adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan,  sementara  bytecode  berjalan  pada  java  interpreter  yang  tersedia  di semua platform sistem komputer dan sistem operasi.

Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks.

Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek–objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.

Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.

1.  Pertama,   class-loader   menangani   pemuatan   kelas   Java   ke   runtime interpreter. Proses ini menyediakan pengamanan dengan memisahkan kelas– kelas yang berasal dari local disk dengan kelas–kelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena kelas–kelas yang berasal dari local disk yang dimuat terlebih dahulu.

2.  Kedua,  bytecode   verifier  membaca  bytecode   sebelum  dijalankan   dan menjamin bytecode memenuhi aturan–aturan dasar bahasa Java.

3.  Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan  apakah  program  berhak  mengakses  sumber  daya  seperti

sistem file, port jaringan, proses eksternal dan sistem windowing.

Setelah  seluruh  proses  tersebut  selesai  dijalankan,  barulah  kode  program  di eksekusi.

Java juga menyediakan beragam teknik pengamanan lain :

Bahasa  dirancang  untuk  mempersulit  eksekusi  kode  perusak.  Peniadaan pointer merupakan langkah besar pengamanan. Java tidak mengenal operasi pointer. Di tangan programmer handal, operasi pointer merupakan hal yang luar biasa untuk optimasi dan pembuatan program yang efisien serta mengagumkan.   Namun   mode   ini   dapat   menjadi   petaka   di   hadapan programmer jahat. Pointer merupakan sarana luar biasa untuk pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat menjadi bahasa yang lebih aman.

Java  memiliki  beberapa  pengaman  terhadap  applet.  Untuk  mencegah program bertindak mengganggu media penyimpanan, maka applet tidak diperbolehkan melakukan open, read ataupun write terhadap berkas secara sembarangan. Karena Java applet  dapat  membuka jendela browser  yang baru, maka  jendela  mempunyai  logo  Java dan  teks identifikasi  terhadap jendela yang dibuka. Hal ini mencegah jendela pop-up menipu sebagai permintaan keterangan username dan password.



Gambar  dibawah  ini  menjelaskan  aliran  proses  kompilasi  dan  eksekusi  sebuah program Java :

Jelaskan apa kelebihan Java memiliki fitur Code Security


Gambar : Fase dari sebuah Program Java

Langkah  pertama  dalam  pembuatan  sebuah  program  berbasis  Java  adalah menuliskan kode program pada text editor. Contoh text editor yang dapat digunakan antara lain : notepad, vi, emacs dan lain sebagainya. Kode program yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java.

Setelah membuat dan menyimpan kode program, kompilasi file yang berisi kode program tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupa berkas bytecode dengan ekstensi .class.

Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh Java

Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang digunakan.

Proses

Tool

Hasil

Menulis kode program

Text editor

Berkas berekstensi .java

Kompilasi program

Java Compiler

Berkas berekstensi .class

(Java Bytecodes)

Menjalankan program

Java Interpreter

Program Output

                                    Tabel 1: Ringkasan Fase dari sebuah Program Java