Sistem Operasi Java



Sejarah Java
Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan JamesGosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cableTV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena manufakturmanufakturberbeda memilih processor yang berbeda pula, maka bahasa harusbebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.
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.
Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas–kelas untuk semua paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya.
Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser komersial menyediakan interpreter dan runtime environment dari teknologi Java.
·         1991 : Project “Green”, kelompok Sun enginer dipimpin James Gosling akan merancang program simple untuk konsumsi elektronik consumer
·         1992: Project menghasilkan produk bernama “*7”, kurang sukses
·         1993-mid1994:Project baru “First Person Inc”, Patrick Naughton mencoba memasrakan *7 (300.000 air mail) gagal
·         1994: Internet growing bigger. The key – web browser take hypertext to translate to screen
·         Kebanyakn browser adalah Mosaic (ditulis Marc Anderson)
·         1994: Patrick Naughton dan Jonathan Payne merancang THE REAL BROWSER (architectur neutral, real-time,relaible and secure) disebut HOtJava, ditulis dalam java.
·         1995 : The breakthrough for widespread use of java, when Netscape (ditulis oleh Jim Clark) membuat browsernya JAVA ENABLE
·         1996 :Januari -  Netscape ver 2.0 menggunakan java 1.0

Karakteristik Java

Pengertian seputar karakteristik java ialah sebagai berikut :
 ☺ Sederhana:
 Java tidak memiliki sintaks aneh tetapi banyak menggunakan sintaks c++ yang sudah banyak dikenal sehingga java tidak menyulitkan bagi para programmer. Bahkan java memberikan banyak peningkatan dan kemudahan dibanding c++.
☺ Berorientasi objek :
 Java merupakan pemrograman berorientasi objek yang murni. Dalam pemrograman Java semua adalah objek, terkecuali tipe data primitif.
 ☺ Dapat didistribusikan dengan mudah:
 Sifat terdistribusi dari Java sangat tampak sebagai applet dan library yang mampu bekerja dalam jaringan dan bekerja dengan objek terdistribusi (RMI) dengan sangat baik. Saat ini Java juga memiliki kemampuan untuk server side processing yaitu teknologi Java Servlet dan Java Server Pages.
 ☺ Aman:
 Aman karena program Java memiliki library security serta policy yang membatasi akses applet di komputer client.
 ☺ Diinterpretasi oleh interpreter:
Java memerlukan virtual machine yang bertindak sebagai interpreter yang menterjemahkan bytecode (file class) menjadi bahasa mesin yang dimengerti oleh komputer host.
 ☺ Portable:
 Portabel karena Java dapat dijalankan di berbagai platform tanpa perubahan kode sama sekali.
 ☺ Multithreading:
 Java memiliki kemampuan untuk menangani dan menjalankanbanyak thread sekaligus.
 ☺ Dinamik:
 Java merupakan teknologi yang terus berkembang, dan hal ini tampak nyata sekali dengan library yang terus ditingkatkan kemampuannya dan kelengkapannya. Bahkan Java saat ini telah menjadi teknologi handal untuk aplikasi mobile dengan adanya Java
Keunggulan Java

  1. Sederhana dan ampuh :Mudah dipelajari jika telah mengenal konsep OOP, terbuka dan mudah dikembangkan
  2. Aman : DIbuat dengan pertimbangan penuh keamanan diinternet
  3. Full OOP : Hanya program java yang benar-benar OOP. Kebnyakan bahasa program lain memiliki heararchi datan yang kaku. Bahkan OOP adalah fasilitas dan pilihan saja
  4. Kokoh : Kekokohan terkait dengan beberapa kelemahan program lain seperti Pascal atau  C++ dengan pointer, pengaturan memori dengan konsep garbage collection.
  5. Interaktif : Dirancang untuk kebutuhan pemrograman jaringan yang interaktif
  6. Netral arsitektur : Mengatasi portabilitas program anatar sistem operasi (Mac, PC, UNIX) dengan konsep java-code byte dan Java Virtual Machine
Penanganan Input dan Output

Membaca Input dari Keyboard
Untuk mendapatkan inputan dari keyboard kita dapat menggunakan beberapa cara. Yang pertama kita bisa memanfaatkan parameter String[ ] args yang ada pada method main. Perhatikan contoh berikut ini:
public class InputArgs {
 public static void main(String[] args){
  System.out.print("Nama Anda : ");
  for(int x=0;x<args.length;x++){
   System.out.print(args[x]+ " ");
  }
 }
}
Kompile program di atas dan jalankan lewat console/DOS Prompt seperti di bawah ini.
C:\java InputNama Hendro Steven
Kelemahan pada contoh di atas adalah kita hanya dapat melakukan input pada saat akan menjalankan program, dan pada saat run-time kita tidak dapat melakukan input lagi. Untuk dapat melakukan inputan pada saat run-time, kita dapat menggunakan cara seperti contoh program di bawah ini.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputConsole {
public static void main(String[] args) throws IOException{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nama Anda : ");
String nama = input.readLine();
System.out.print("Pekerjaan Anda : " +nama);
String job = input.readLine();
System.out.println(nama+” adalah ”+job);
}
}
Dengan contoh di atas kita dapat memberikan inputan saat run-time. Jangan lupa untuk mengimport class – class yang kita gunakan.     
Membaca Input dari File
Salah satu fungsi yang cukup penting dalam pemograman adalah bagaimana membaca isi dari sebuah file. Untuk membaca isi sebuah file tentunya kita masih akan menggunakan pake java.io dan contoh di berikut ini akan menunjukan betapa mudahnya membaca file dengan Java.

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputConsole {
public static void main(String[] args) {
try{
FileInputStream file = new FileInputStream(args[0]);
BufferedReader input = new BufferedReader(new InputStreamReader(file));
System.out.println(input.readLine());
input.close();
file.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}

Kompile program di atas dan jalankan lewat console seperti berikut ini:
C:\java BacaFile data.txt
Menulis Data ke File
Untuk menulis data ke sebuah file tidak jauh berbeda dengan contoh – contoh sebelumnya. Untuk lebih jelasnya perhatikan contoh berikut ini:
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class TulisFile {
public static void main(String[] args) {
try {
      FileOutputStream file = new FileOutputStream("C:/Data.txt");
 BufferedWriter output = new BufferedWriter(new OutputStreamWriter(file));
 String data = "Nama Saya Hendro Steven Tampake";
 output.write(data);
 output.close();
 file.close();
 System.out.println("OK");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
}
}
Di dalam paket java.io masih terdapat banyak class – class yang berhubungan dengan input dan output yang belum kita bahas. Diharapkan anda melakukan eksplorasi secara individu dengan panduan API yang ada.

Konsep Proses Java

Proses adalah suatu program yang sedang dieksekusi. Suatu proses meliputi:
-          Program counter
Tempat untuk menyimpan alamat suatu proses yang akan dieksekusi selanjutnya
-          Stack
tempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi

-          Data section
mengandung variabel global dari suatu proses
Status Proses
Suatu proses dapat berstatus:
Ø  New: pada saat proses pertama kali dibuat
Ø  Running: pada saat proses sedang dieksekusi
Ø  Waiting: proses menunggu suatu event lain
o   (contoh: proses I/O)
Ø  Ready: proses siap untuk diekseskusi
Ø  Terminated: pada saat proses sudah selesai dieksekusi
Interaksi Proses
Ø  Sistem operasi akhir-akhir ini menjalankan program secara simultan (concurrent).
Ø  Program yang dijalankan secara simultan itu dapat bekerja sama dengan proses lain atau pun bekerja sendiri.
Cooperating Processes
Ø  Proses yang independen : proses yang tidak bisa dipengaruhi dan tidak bisa mempengaruhi proses lain
Ø  Proses yang cooperating : proses yang bisa mempengaruhi atau dipengaruhi oleh proses lain
THREAD
Definisi: unit dasar dari penggunaan CPU, thread terdiri dari thread ID, program counter, set register, dan stack.
Ø  Thread juga sering disebut Lightweight process.
Ø  Thread berbagi code section, data section, dan sumber daya sistem operasi dengan thread lain yang termasuk dalam proses yang sama.
Ø  Proses tradisional ( Heavyweight process ) mempunyai thread tunggal yang berfungsi
Ø  sebagai pengontrol.
Java Threads
Ø  Threads di Java dibuat dengan cara :
o   meng-extends class Threads
o   men-implement interface Runnable
Ø  Threads di Java diatur oleh Java Virtual Machine (JVM)
Keunggulan Java Threads adalah:
o   JVM menggunakan prioritas preemptive berdasarkan algoritma penjadualan
o   Semua threads di Java mempunyai prioritas. Prioritas tertinggi dijadualkan untuk dieksekusi oleh JVM
o   Jika ada 2 thread yang prioritasnya sama, digunakan algoritma First In First Out (FIFO).
Keadaan Threads di Java dibagi menjadi 4 keadaan :
1.      New                : sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat
2.       Runnable        : memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek.
3.      block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan.
Contohnya: sleep() atau suspend()
4.      dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika
stop() method dipanggil.
Metoda Wait() dan Notify()
Thread akan memanggil method wait() saat:
o   Thread melepaskan kunci untuk objek.
o   Status thread diblok.
o   Thread yang berada dalam status wait menunggu objek.
Thread akan memanggil method notify() saat: Thread yang dipilih diambil dari thread yang ada pada himpunan wait. 
Dengan cara:
                     Pindahkan thread yang dipilih dari wait set ke entry set.
                     Atur status dari thread yang dipilih dari blocked menjadi runnable


Konsep Penyimpanan
(cara variabel menyimpan data inputan dalam memori)

Setiap variabel selalu memiliki nama, tipe, ukuran dan nilai. Berikut merupakan suatu analogi :
number1 = input.nextInt(); // read first number from user
Merupakan sintaks untuk menginisiasi variabel number1 dengan inputan yang didapat dari user melalui keyboard. Nilai yang didapat akan ditempatkan dalam lokasi memori dimana bernama number1 dimana telah ditetapkan oleh kompiler. Misal user memberikan input angka 45, maka komputer menempatkan angka tersebut pada variabel number1.

ketika baris perintah ini di eksekusi, dan user menginputkan nilai 72 :
number2 = input.nextInt(); // read second number from user
maka nilai yang diinputkan akan teralokasi ke variabel number2

dan ketika sintaks penjumlahan dieksekusi oleh komputer,dan menghasilkan nilai, maka dapat digambarkan seperti berikut :
sum = number1 + number2; // add numbers

dalam konsep pengalokasian memori ini,, nilai yang paling baru diberikan pada variabel, maka
nilai itulah yang akan menghuni variabel tersebut. Misal :
number1 = 50;
Maka nilai aktual variabel number1 yang akan tersimpan di memori bukan lagi 45, tapi 50.





Referensi:

Sumber : J.E.D.I – J.E.N.I (Java Education Network Indonesia)
distributed by Meruvian Education
Label: free stuff, Java, Open source
http://sinau-java.blogspot.com/2008/05/penanganan-input-dan-output.html
http://www.hervansyahnugraha.web.id/2010/02/04/konsep-memory-dalam-java/



Read Full...
 
Powered By Blogger
Powered By Blogger

Easy Blog Tricks

Powered By Blogger
© Grunge Theme Copyright by Rhossy Kawaii (si chubby) | Template by Blogger Templates | Blog Trick at Blog-HowToTricks