huruf berjalan

Selamat Datang di blog Yudha

Selasa, 16 Oktober 2012

Pengertian Exception Handling, Gargabe Collection di Java, Extensible Data Types & Secure Code/Security Code


Pengertian Exception Handling

Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian program.

Saat suatu keadaan eksepsi muncul, suatu objeke xcep tio n dibuat dan dimasukkan ke dalam method yang menyebabkan eksepsi. Method tersebut dapat dipilih untuk menangani eksepsi berdasarkan tipe tertentu. Method ini juga menjaga agar tidak keluar terlalu dini melalui suatu eksepsi, dan memiliki suatu blok program yang dijalankan tepat sebelum suatu eksepsi menyebabkan metodenya kembali ke pemanggil.


Dasar-dasar Penanganan Eksepsi

Penanganan eksepsi pada java diatur dengan lima kata kunci :try,
catch, throw, throwsdan finally. Pada dasarnya try digunakan untuk
mengeksekusi suatu bagian program, dan jika muncul kesalahan, sistem akan melakukanth row suatu eksepsi yang dapat andaca tch berdasarkan tipe eksepsinya, atau yang anda berikanf in a lly dengan penangan default. Berikut ini bentuk dasar bagian penanganan eksepsi :
try {
// Block of Code
}
catch (ExceptionType1 e) {
// Exception Handler for ExceptionType1
}catch (ExceptionType2 e) {
// Exception Handler for ExceptionTYpe2
throw (e); // re-throw the Exception?
}finally {

}

Garbage Collection di Java
Jika sebelum anda mengenal Java, anda terlebih dahulu mengenal bahasa C/C++, maka pasti anda akan mencari fitur-fitur yang berhubungan dengan pointer. Ya, tugas sebuah pointer di C/C++ adalah untuk mengalokasikan memory sesuai yang ditunjuk pointer itu sendiri. Selain itu mungkin anda juga mencari fitur method free() atau operator delete pada C/C++ dalam penghancuran isi dari memori yang tak terpakai. Perlu diketahui, Java tidak mendukung adanya pointer, method free(), atau operator delete.
Jadi, apakah ini sebuah bug/kelemahan dari Java ?
Tentu saja tidak.
Alasannya, Java sebenarnya dirancang untuk berjalan di atas Java Runtime Environment (JRE) dan mungkin saja akan dieksekusi di atas firewall jika berbentuk applet. Sehingga tentu tidak akan lagi membutuhkan sebuah pointer. Java menyediakan suatu mekanisme yang disebut dengan garbage collection, yaitu :
"mekanisme dalam melakukan dealokasikan memory secara otomatis"
Jika anda sebelumnya telah belajar meng-inisialisasi objek dan membuat variabel array, maka sebenarnya anda telah belajar mengalokasikan objek dan array yang anda buat ke dalam memory (seperti tugas sebuah pointer di C/C++) karena fungsi dari operator new di bahasa Java adalah mengalokasikan objek dan array ke memory.
NamaClass namaObject = new NamaClass();
tipeData namaArray[] = new tipeData[jumlah_elemen]
(ini adalah inisialisasi objek dan pembuatan array. Perhatikan penggunaan operator new)
Setelah kita tahu mekanisme pengalokasiannya, lalu bagaimana melakukan pen-dealokasian objek dan array dari memory? Tentu saja dilakukan dengan mekanisme garbage collection. Java akan melakukannya secara otomatis. Cara kerja sederhananya sebagai berikut:
Interpreter di Java akan tahu persis dimana objek dan array dialokasikan. Ia juga akan tahu variabel-variabel lokal yang merujuk pada objek atau array dan ia juga akan tahu objek atau array yang merujuk objek atau array yang lain. Ini berarti Interpreter akan mengetahui jika suatu objek atau array tidak lagi memiliki referensi atau akses kemana pun lagi. Maka, Interpreter akan mengasumsikan objek atau array tersebut sudah tidak diperlukan lagi. Sehingga Interpreter akan menghancurkannya secara aman dan menggunakan ruang memory yang digunakan sebelumnya untuk dimanfaatkan kepentingan lain. secara aman dan menggunakan ruang memory yang digunakan sebelumnya untuk dimanfaatkan kepentingan lain.
Sebenarnya tidak hanya objek atau array saja yang bisa di-reklamasi (istilah untuk penghancuran memory). Suatu siklus objek yang saling merujuk satu sama lain, tetapi tidak merujuk ke objek yang aktif, juga akan di-reklamasi oleh Interpreter.
Sebenarnya, garbage collection bukanlah suatu inovasi baru dari bahasa Java. Ini sebelumnya telah bertahun-tahun digunakan dalam bahasa pemrograman seperti Lisp. Fakta bahwa kita tidak perlu lagi merisaukan penghancur setiap objek di memory, adalah keunggulan dari Java itu sendiri dan ini menunjukkan Java lebih aman dari bug dari bahasa pemrograman tanpa garbage collection.
Extensible Data Types
Salah satu pendekatan yang menjanjikan untuk menambahkan object-oriented (OO) fasilitas untuk bahasa fungsional seperti ML adalah untuk menggeneralisasi datatype yang ada dan konstruksi fungsi menjadi hirarkis dan extensible, sehingga varian datatype mensimulasikan kelas dan kasus fungsi mensimulasikan metode. Pendekatan ini memungkinkan datatypes ada untuk dengan mudah diperluas dengan kedua operasi baru dan varian baru, menyelesaikan konflik lama antara gaya fungsional dan OO. Namun, desain sebelumnya didasarkan pada pendekatan ini telah dipaksa untuk menyerah modular typechecking, membutuhkan seluruh Program pemeriksaan untuk memastikan keselamatan jenis. Kami menjelaskan ML Extensible (EML), bahasa ML-seperti yang mendukung hirarkis, datatypes extensible dan fungsi sambil menjaga murni modular typechecking. Untuk mencapai hasil ini, sistem tipe EML yang memberlakukan beberapa persyaratan pada datatype dan diperpanjang fungsi, namun EML masih mampu mengekspresikan idiom fungsional dan OO tradisional. Kami telah diformalkan versi inti EML dan terbukti suara jenis sistem yang terkait, dan kami telah mengembangkan prototipe untuk juru bahasa.
Secure Code/Security Code
Hari ini sistem komputer yang terhubung sangat sering terkena kode yang berasal dari berbagai sumber yang mungkin tidak diketahui. Kode dapat dilampirkan ke e-mail, yang terkandung dalam dokumen, atau di-download melalui Internet. Sayangnya, banyak pengguna komputer telah mengalami langsung dampak dari kode mobile berbahaya, termasuk virus dan worm, yang dapat merusak atau menghancurkan data dan waktu biaya dan uang.
Mekanisme keamanan yang paling umum memberikan hak kepada pengguna berdasarkan kredensial logon mereka (biasanya password) dan membatasi sumber daya (sering direktori dan file) bahwa pengguna diperbolehkan untuk mengakses. Namun, pendekatan ini gagal untuk mengatasi beberapa masalah: pengguna mendapatkan kode dari berbagai sumber, beberapa di antaranya mungkin tidak dapat diandalkan, kode dapat mengandung bug atau kerentanan yang memungkinkan untuk dimanfaatkan oleh kode berbahaya, dan kode kadang-kadang melakukan hal-hal bahwa pengguna tidak tahu itu akan dilakukan. Akibatnya, sistem komputer bisa rusak dan data pribadi dapat bocor ketika pengguna berhati-hati dan dapat dipercaya menjalankan perangkat lunak berbahaya atau kesalahan-penuh. Mekanisme sistem operasi keamanan yang paling mengharuskan setiap potongan kode harus benar-benar dipercaya dalam rangka untuk menjalankan, kecuali mungkin untuk script pada halaman web. Oleh karena itu, masih ada kebutuhan untuk mekanisme keamanan yang berlaku secara luas yang memungkinkan kode yang berasal dari satu sistem komputer untuk mengeksekusi dengan perlindungan pada sistem yang lain, bahkan ketika tidak ada hubungan kepercayaan antara sistem.

Tidak ada komentar:

Posting Komentar

Powered By Blogger

Pages - Menu

Bahasa Indonesia