Fitur-fitur Java

JVM (Java Virtual Machine)

JVM atau yang diartikan sebagai mesin virtual java adalah fitur java yang terdiri dari class loader dan java interpreter. Java interpreter itu sendiri adalah sebuah fasilitas penerjemah yang ada di dalam JVM, yaitu yang berfungsi sebagai mesin pembaca isi berkas ( bytecode ) yang dirancang oleh Java ketika berkasnya telah ada dalam memori lalu menerjemahkannya di dalam mesin local. Perangkat lunak adalah merupakan bentukan dari Java interpreter yang menginterpretasikan bytecode setiap waktu, yang dapat mengubah bytecode menjadi bahasa mesin local. Selain itu juga dapat diimplementasikan pada perangkat keras.

JVM adalah sebuah system program yang mempunyai level paling tinggi yang dapat melihat segala sesuatu yang berada di bawahnya yang merupakan bagian dari mesin. Inilah yang dapat disimpulkan mengenai mesin virtual yaitu menyediakan sebuah program antarmuka dengan underlying bare hardware. Virtual mesin dibuat dengan cara membagi sumber daya yag dilakukan oleh physical computer. Pada virtual mesin perangkat lunak memerlukan sedikit ruang untuk memori virtual dan spooling sehingga membutuhkan juga disk virtual. Tapi sayangnya, virtual mesin ini sangat sulit untuk diimplementasikan. Karena banyak hal yang harus disediakan untuk duplikat dari underlying machine. VM lebih cepat untuk dieksekusi dengan menggunakan spooling dan akan menjadi lambat dengan menggunakan interpreter.

Jika setiap user ada 1 VM maka akan bebas menjalankan system operasi yang diinginkan pada VM itu sendiri. Itulah yang merupakan kekurangan dari program Virtual machine. Namun VM juga memiliki kelebihan yang tidak dimiliki oleh program lainnya yaitu: mempunyai system keamana yang terjamin karena mempunyai perlindungan yang lengkap yang ada pada system sumber daya, pembagian resources dilakukan secara tidak langsung, dalam pembagian disk mini dan jaringan diimplementasikan dengan menggunakan perangka lunak, merupakan system yang sempurna jika digunakan untuk sebuah penelitian dan pengembangan Sistem operasi, dalam perubahan satu bagian dari mesin tidak akan berpengaruh terhadap komponen yang lainnya,.

Garbage collection

Garbage collection merupakan salah satu fitur canggih yang dimiliki oleh Java yang berfungsi untuk mengumpulkan semua memory yang ada pada computer sesaat setelah digunakan. Managemen memory sangatlah penting bagi seorang programmer karena seseorang dapat menjadi programmer yang handal jika dia bisa mengunakan managemen memory dengan semaksimal mungkin begitupun sebaliknya. Contohnya saja yaitu pada bahasa C yakni terletak pada pointer yang digunakan oleh programmer. Pointer senidir adalah dikenal sebagai objek dari suatu class yang memiliki reference terhadap class tersebut. Garbage collection ini tujuannya adalah untuk memudahkan programmer dalam mengumpulkan memori computer secara otomatis. Selain memudahkan juga bertujuan untuk mengatur pengguanaan memory komputernya. Garbage collection ini mempunyai kelebihan pada system penggunaan memory computer. Biasanya dalam kenyataan sehari-hari sangatlah sulit untuk melacak objek yang masuknya kategori sampah dan mana yang buka. Suatu objek dikatakan sebagai sampah jika semua referensi merujuk pada objek tersebut hilang. Jika dalam bahasa pemrograman yang lain seorang programmer harus mengatur sampahnya sendiri yang jika dilakukan secara manual sangatlah sulit dan sering menimbulkan bug yang tidak terduga, maka lain halnya dengan garbage collection ini.

Satu kesalahan yang sering dialami oleh bahasa pemrograman lainnya adalah kebocoran memori, yang dimana seorang programmer lupa untuk menghapus objek yang tidak lagi digunakan. Hal ini akan berakibat fatal jikalau kepenuhan memori sehingga nantinya computer dapat berhenti total. Namun inilah yang menjadi kelebihan oleh java yang memiliki garbage collection yang dimiliki oleh bahasa pemrograman lainnya.

Code security

Code security dapat diartikan sebagai kode pengaman yang fungsinya untuk melindungi system dari untrusted Java Code. Dalam code security terdapat 3 lapisan pengaman, yaitu:

Class loader

Berupa lapisan dari code3 security yang bertugas untuk menangani permutaan kelas java ke dalam runtime interpreter. System dari lapisan ini adalah dengan cara menyediakan pengamanan untuk memisahkan kelas-kelas yang berasal dari local disk degan kelas yang diambil oleh jaringan.

Bytecode verifier

yaitu bertujuan untuk membaca bytecode sebelum dijalankan dan untuk menjamin bytecode apakah sudah memnuhi aturan-aturan dasar dari bahasa Java.

Manajemen keamanan

yaitu tugasnya untuk mengamankan aplikasi dengan cara mengendalikan suatu program apakah berhak untuk mengakses sumberdaya misalnya saja dalam system file,port jaringan, proses eksternal dan system windowin atau tidak.

Java menyediakan berbagai teknik pengamanan yaitu :
  1. Bahasa dirancang dengan tujuan untuk mempersulit eksekusi kode perusak. Salah satu caranya adalah dengan peniadaan pointer untuk pengamanan. Jika pada seorang programmer yang handal keberadaan pointer merupakan hal yang luar biassa dan membantu pembuatan program secara efisien, namun jika berada pada programmer yang jahat maka akan menjadi petaka. Dengan peniadaan pointer maka java merupakan bhasa yang mempunyai keamanan yang baik. 
  2. Java mempunyai keamanan terhadap applet, yaitu dengan cara tidak memperbolehkan membuka, membaca ataupun menulis berkas secara sembarangan. Hal ini dilakukan agar mencegah penipuan dengan melakukan permintaan keterangan username dan password.


sumber

Sejarah Java

Java terlahir dari The Green Project tahun 1991. Proyek pembuatan bahasa pemrograman Java ini dimotori oleh berbagai orang, yaitu Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, dan ke Sembilan progamer lainnya yang tergabung dalam Sun Microsystem. Pertemuan pembuatan program Java itu sendiri adalah bertempat di sebuah gedung perkantoran Sand Hill Road di Menlo Park.

Nama Oak diambil dari pohon oak yang tumbuh pada depan jendela ruang kerja James Gosling ( Bapak Java ). Karena terdapat kesamaan nama dengan merek dagang lain, maka nama oak tidak diikutsertakan dalam Java, sehingga hanya terdaftar dengan nama “Java”. Java ini dalam filosofinya merupakan kopi murni yang berasal dari Jawa yang tidak lain adalah kesukaan dari Gosling. Jadi nama Java adalah dari kata Jawa. Jawa dalam bahasa Inggris adalah Java.



sumber

Pengertian Java

Java adalah salah satu yang termasuk dalam bahasa pemrograman yang sudah ada pada tahun 1991 yang dikembangkan oleh Sun Microsystem. Java dirancang untuk memudahkan penggunanya yaitu dapat dijalankan dalam berbagai jenis system operasi computer. Java juga dirancang pada internet sehingga lebih aman dan portable. Java dapat juga dijalankan melalui telepon genggam bukan hanya dengan computer semata.

Java merupakan penyempurnaan dari bahasa pemrograman yang sebellumnya, yaitu C, dan C++. Java ini sifatnya adalah umum, namun juga dapat bersifat khusus yaitu pada saa didesain untuk memanfaatkan depedensi implementasi seminimal mungkin. Bahasa pemrograman java lebih dikenal dengan slogan “ Tulis sekali, jalankan dimana pun”


sumber

BAHASA PEMROGRAMAN JAVA

BAHASA PEMROGRAMAN JAVA
Bahasa pemrograman java adalah teknologi yang pertama kali diperkenalkan oleh Sun Microsystems sekitar tahun 1990an. Menurut definisi dari Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat luinak pada komputer standalone ataupun pada lingkungan jaringan. Banyak orang menyebut Java sebagai sebuah teknologi dibanding hanya sebuah bahasa pemrograman. Teknologi Java memiliki tiga komponen penting yang menopang Java itu sendiri, yaitu :

1. Programming-language specification
2. Application-programming interface
3. Virtual-machine specification

Bahasa Java bisa dikategorikan sebagai bahasa pemrograman berorientasi objek, pemrograman terdistribusi dan bahasa pemrograman multithrreaded . Objek Java dispesifikkan dengan membentuk kelas-kelas. Untuk masing-masing kelas Java, kompiler Java mengeluarkan sebuah file keluaran arsitektur netral yang akan berjalan pada berbagai implementasi dari Java Virtual Machine (JVM). 

Pada awalnya Java sangat digemari oleh para programmer, karena Java mendukung untuk applets , dimana program dengan akses sumber daya terbatas dapat berjalan dalam sebuah web browser. Java juga mampu menyediakan dukungan level tingkat tinggi untuk networking dan objek terdistribusi. Java juga dianggap sebagai sebuah bahasa yang mempunyai tingkat keamanan yang tinggi. Tampilan ini pada khususnya hanya menganggap bahwa sebuah program Java bisa mengeksekusi sebuah jaringan terdistribusi. Bahasa Java pada jaman ini termasuk bahasa pemrograman yang relatif mudah untuk dipelajari karena banyaknya contoh dan konsep yang beredar luas, baik berupa buku panduan belajar java maupun yang sudah dipublikasikan di internet. Tetapi program yang dibuat dalam bahasa Java juga relatif lebih banyak membutuhkan waktu saat di eksekusi (lebih lama), hal ini dikarenakan untuk menjalankan programnya dibutuhkan JVM (perantara antar program dan sistem operasi).





PENGERTIAN BAHASA PEMROGRAMAN

PENGERTIAN BAHASA PEMROGRAMAN
Bahasa pemrograman adalah suatu istilah yang menjelaskan bahasa yang dapat dipahami oleh komputer. Dalam dunia perkomputeran dikenal dua jenis bahasa pemrograman, yaitu bahasa pemrograman tingkat tinggi dan bahasa pemrograman tingkat rendah.

Sebuah bahasa pemrograman atau bahasa komputer di artikan sebagai teknik komunikasi yang sudah distandarisasi untuk menyatakan instruksi-instruksi kepada komputer. Bahasa pemrograman adalah kesatuan aturan sintaksis dan semantik yang digunakan untuk mendefinisikan sebuah program.

Sebuah bahasa pemrograman memungkinkan seorang programmer untuk memutuskan secara tepat apa yang harus dilakukan oleh komputer pada saat itu, cara mengatur alur transfer data, input-output, dan kegiatan-kegiatan lains yang harus dilakukan dalam berbagai keadaan.

Bahasa pemrograman tingkat rendah merupakan bahasa pemrograman yang sulit dimengerti oleh manusia, sedangkan bahasa pemrograman tingkat tinggi lebih mudah dipahami oleh manusia. Contoh dari bahasa pemrograman tingkat rendah adalah Assembly, dan contoh bahasa pemrograman tingkat tinggi adalah C dan Pascal.




Sorting - Pengurutan Data - Struktur Data

Pengurutan atau “Sorting“ adalah suatu proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu ( untuk data yang bertipe numerik atau karakter).

Dua Macam Pengurutan
  • Ascending (urut naik) merupakan pengurutan dari angka yang nilainya lebih kecil kemudian menuju ke nilainya yang lebih besar.
  • Descending (urut turun) adalah sebaliknya, yaitu pengurutan dari nilainya yang lebih besar kemudian menuju ke nilainya yang lebih kecil.

Macam-Macam Sorting


1. Bubble Sort

Memindahkan element sekarang dengan elemen berikutnya , jika elemen sekarang itu lebih besar / lebih kecil dari elemen berikutnya maka di tukar (berpindah posisi).

 Ascending
  • Data yang paling awal dibandingkan dengan data berikutnya jika ternyata lebih besar maka tukar.
  • Data yang paling akhir dibandingkan dengan data sebelumya jika ternyata lebih kecil maka tukar.
Descending
  • Data yang paling awal dibandingkan dengan data berikutnya jika ternyata lebih kecil maka tukar.
  • Data yang paling akhir dibandingkan dengan data sebelumya jika ternyata lebih besar maka tukar.
Contoh Bubble Sort
Ascending (Urutan Naik) 


2. Exchange Sort

Exchange sort itu sangat mirip dengan buble sort. Bahkan banyak yang mengatakan bahwa exchange sort sama dengan buble sort. Bedanya jika bubble sort proses pertukarannya harus sistematis, dari awal atau dari belakang. Sedangkan exchange sort proses pertukaran hanya akan dilakukan jika diperlukan saja.

1. Ascending
  • Jika terdapat elemen sebelumnya lebih besar dari elemen berikutnya maka tukar.
  • Jika terdapat elemen sesudahnya lebih kecil dari elemen sebelumnya maka tukar.
2. Descending
  • Jika terdapat elemen sebelumnya lebih kecil dari elemen berikutnya maka tukar.
  • Jika terdapat elemen sesudahnya lebih besar dari elemen sebelumnya maka tukar.








Contoh Exchange Sort
Ascending (Urutan Naik)


3. Selection Sort

Memindahkan elemen dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan elemen terakhir . Jika ditemukan elemen lain yang lebih kecil / lebih besar dari elemen sekarang maka dicatat posisinya dan kemudian ditukar dan begitu seterusnya.

1. Ascending
  • Elemen yang paling besar diletakkan di akhir.
  • Elemen yang paling kecil diletakkan di awal.
2. Descending
  • Elemen yang paling kecil diletakkan di akhir.
  • Elemen yang paling besar diletakkan di awal.
Contoh Selection Sort
Ascending (Urutan Naik)
4. Insertion Sort

Pengurutan yang dilakukan dengan cara membandingkan dengan data ke-2 sampai data terakhir. Jika ditemukan data yang lebih kecil atau lebih besar maka data tersebut disisipkan kedepan sesuai posisi yang seharusnya.

Contoh Insertion Sort
Ascending (Urutan Naik)

5. Shell Sort

Merupakan proses pengurutan data yang sebelumnya acak menjadi data yang terurut dengan cara menentukan jarak antar elemen yang akan dibandingkan.
Contoh Shell Sort
Ascending (Urutan Naik)

6. Merge Sort

Merupakan proses pengurutan data yang menggunakan merging dua buah vector. Pada proses merge sort, data dibuat sepasang-sepasang, yang terdiri dari dua elemen. Jika N ganjil, maka ada satu vector yang terdiri dari 1 elemen. Lalu kemudian data tersebut di merging sampai terurut.

Contoh Merge Sort
Ascending (Urutan Naik)


7. Quick Sort

Merupakan proses penyusunan elemen yang membandingkan suatu elemen (pivot) denan elemen yang lain, dan menyusunnya sedemikian rupa sehingga elemen –elemen lain yang lebih kecil dari pivot terletak disebelah kiri pivot. Dan elemen yang lebih besar dari pivot terletak disebelah kanan pivot.

Dengan demikian akan terbentuk dua sublist, yang terletak disebelah kanan dan kiri pivot. Lalu pada sublist kiri dan kanan itu kita anggap sebuah list baru, dan kita kerjakan proses yang sama seperti yang sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi.