Senin, 15 Oktober 2012

exception handling , garbage collection , extensible data types dan secure data



 Exception Handling

Pengertian Exception
Suatu program apabila mengalami kesalahan akan menghasilkan suatu runtime errors seperti gagal membuka file, suatu program melakukan akses diatas range array dan lain-lain. ketika runtime errors tersebut terjadi, aplikasi akan membuat suatu exception. Java exception merupakan instance dari class Throwable. Throwable class terdapat dalam java.lang package

Jenis-jenis Exception

§ Exception class merupakan kesalahan yang disebabkan oleh program dan kesalahan external. Kesalahan jenis ini dapat ditangkap dan diatasi oleh program. Exception terdiri dari banyak subclass
§ Error class merupakan class yang berhubungan dengan kesalahan pada internal system. Jika terjadi kesalahan jenis ini maka hanya dapat dilakukan bagaimana memberitahu kepada pemakai dan melakukan pengakhiran program.

Cara menggunakan Exception
Java exception dibagi menjadi tiga buah operasi yaitu :

1. Claiming an exception
Claiming an exception dimaksudkan dengan menyatakan exception apa saja yang mungkin terjadi dalam suatu main() ataupun dalam method. Untuk system errors dan runtime errors tidak perlu dilakukan klaim karena kedua macam kesalahan ini dapat terjadi dimana saja.

Untuk melakukan claiming an exception dilakukan dengan menggunakan throws
keyword. Contoh :

public void myMethod() throws IOException
{
...
}

untuk melakukan klaim terhadap banyak exception dapat dilakukan dengan menambahkan exception dipisahkan dengan koma ( , ).

method_declaration throws Exception1, Exception2, ...Exception n




2. Throwing an exception
Throwing an exception dimaksudkan dengan apabila suatu kesalahan terjadi maka method berisi statement yang melakukan claiming an exception tersebut membuat suatu exception object yang dilempar ke dalam sistem.

Untuk melakukan throwing exception kita menggunakan keyword throw didalam method yang telah melakukan claim exception.

throw ExceptionObjectInstance;

3. Catching an exception
Catching an exception dimaksudkan apabila exception object yang dilempar kedalam sistem akan ditangkap untuk diatasi dalam exception handler. Metode pencarian handler ini dilakukan secara backward yaitu pencarian dimulai dengan method yang dieksekusi sampai ke pemanggil method tersebut.

Untuk melakukan catching an exception dapat dilakukan digunakan suatu blok trycatch.

try {
statements; // statements that may throw exceptions
}
catch (Exception1 ex) {
handler for Exception1;
}
catch (Exception2 ex) {
handler for Exception2;
}
...
catch(ExceptionN ex) {
handler for ExceptionN;
}

jika tidak terjadi suatu exception pada statements maka blok catch akan dilewati. Jika ada suatu exception yang dikenali pada blok catch maka exception akan diatasi oleh handler statement untuk exception tersebut. Sedangkan jika ada suatu exception yang tidak dikenali maka java keluar dari method dan mengirim exception ke method sebelumnya yang memanggil method tersebut. Hal ini dilakukan sampai method pemanggil awal dicapai dan bila masih belum terdapat handler dari exception ini maka program terhenti dan menampilkan pesan ke java console. Exception object membawa informasi penting mengenai exception yang terjadi.




Membuat Exception Class
Selain menggunakan exception class yang sudah ada pada java, exception class dapat diturunkan menjadi suatu exception class yang baru. Cara membuatnya adalah dengan menurunkan exception class dan meng-override method toString() atau getLocalizedMessage().
Perhatikan contoh berikut :

Pada ExceptionTest.java

public class ExceptionTest {

public static void main(String [] args) {
int x = 2;
int y = 3;

try {
if((x==2) && (y==3))
throw new MyException(x,y);

System.out.println(x/y);
           }     catch (MyException ex) {
System.out.println(ex.toString());
}
System.out.println("this never executed");
}
}

Pada MyException.java

class MyException extends Exception {
int x;
int y;

MyException(int x,int y) {
super("MyException");
this.x = x;
this.y = y;
}

public String toString() {
return(""+x+" divide by "+y);
}
}

Rethrowing Exception
Ketika suatu exception terjadi dalam suatu method, maka alir program akan keluar dari method jika suatu tidak ditangkap pada method tersebut. Jika ingin melakukan beberapa operasi yang harus dilakukan sebelum keluar dari method maka exception dapat ditangkap terlebih dahulu baru kemudian dilempar kembali ke handler yang sebenarnya.
Strukturnya adalah sebagai berikut :

try {
statements;
}
catch(TheException ex) {
perform operations before exits;
throw ex;
}

Klausa finally
Finally digunakan apabila menginginkan menjalankan suatu operasi tanpa dipengaruhi apakah terjadi exception atau tidak. Dengan finally suatu operasi tidak akan mengalami peloncatan alur.

Struktur try-cacth-finally adalah sebagai berikut :

try {
statements;
}
catch(TheException ex) {
handling ex statements;
}
finally {
finalStatements;
}

Perhatikan tiga kasus berikut :

1.       Jika tidak ada exception dalam blok try-catch, maka finalStatements akanselalu dieksekusi dan statement selanjutnya setelah blok try-catch dieksekusi.

2.       Jika salah satu statement dalam blok try-catch menyebabkan exception dan ditangkap oleh blok catch . Statement selanjutnya dalam blok try akan diloncati, kemudian finalStatements. Jika exception tidak di lempar ulang dengan menggunakan keyword throw maka statement setelah blok try-catch akan dieksekusi. Akan tetapi sebaliknya maka eksekusi akan dikembalikan ke method pemanggilnya.

3.       Jika salah satu statement dalam blok try-catch menyebabkan exception dan tidak ada blok catch yang memenuhi exception tersebut maka statement dalam blok try akan diloncati dan finalStatements dijalankan dan eksekusi akan dikembalikan ke method pemanggilnya.



Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang pemrogram
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 pemrogram yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana pemrogram 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 pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
Garbage Collection adalah suatu mekanisme yang dilaksanakan dengan algoritma tersendiri untuk melacak state dari object(object masih terpakai atau tidak) dan untuk melakukan penghapusan object. Garbage Collection terus berlangsung selama program kita berjalan. Pada saat-saat tertentu Garbage Collection akan melakukan pencatatan state dari suatu object. Dan apabila object tersebut sudah tidak terpakai lagi(misalnya tidak ada variabel yang merujuk kepada object tersebut) maka object ini kemudian akan dianggap sampah dan apabila program memerlukan memory tambahan maka object tersebut akan dihapus dan memory-nya dibebaskan. Yang melaksanakan semua mekanisme ini disebut sebagai Garbage Collector(Istilah lainnya Garbage Collector adalah sebuah bagian dari CLR yang menjalankan mekanisme Garbage Collection).
Jadi pada C#, object yang di-null-kan tidak langsung dihapus dari memory. Itu semua terserah dari Garbage Collector dan bagaimana Algoritma Garbage Collection itu dilaksanakan. Kita tidak dapat mengetahui secara pasti kapan suatu object dihapus dari memory,  tetapi ada suatu keadaan dimana ketika object dihapus dari memory dan kita ingin program kita melaksanakan sesuatu. Untuk itu maka C# punya yang namanya Destructor.
Destructor di C# tidak lebih dari sebuah method yang akan dipanggil oleh CLR sesaat sebelum object dihapus dari memory. Makanya Destructor di C# namanya harus didahului dengan tanda ~, misalnya ~SomeClass. Tujuannya supaya program kita tidak bisa memanggil Destructor secara langsung. Jadi Destructor di C# bisa dikatakan sangat berbeda dengan destructor di C. Oleh karena itu Destructor di C# disebut juga Finalize Method.





Modular Type Checking for Hierarchically Extensible Data Types and Functions 
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.
Untuk membantu melindungi sistem komputer dari kode ponsel berbahaya, untuk memungkinkan kode dari asal tidak diketahui untuk menjalankan dengan perlindungan, dan untuk membantu mencegah kode terpercaya dari mengorbankan keamanan sengaja atau tidak sengaja, Framework. NET menyediakan mekanisme keamanan yang disebut kode keamanan akses. Kode keamanan akses memungkinkan kode bisa dipercaya untuk berbagai derajat tergantung di mana kode berasal dan pada aspek lain dari identitas kode itu. Kode akses keamanan juga memberlakukan berbagai tingkat kepercayaan pada kode, yang meminimalkan jumlah kode yang harus dipercaya sepenuhnya dalam rangka untuk menjalankan. Menggunakan kode keamanan akses dapat mengurangi kemungkinan bahwa kode Anda dapat disalahgunakan oleh kode berbahaya atau kesalahan-penuh. Hal ini dapat mengurangi kewajiban Anda karena Anda dapat menentukan seperangkat operasi kode Anda harus diizinkan untuk melakukan serta operasi kode Anda tidak boleh diizinkan untuk melakukan. Kode akses keamanan juga dapat membantu meminimalkan kerusakan yang dapat terjadi akibat kerentanan keamanan dalam kode Anda.Semua kode dikelola yang menargetkan runtime bahasa umum menerima manfaat keamanan kode akses, bahkan jika kode yang tidak membuat kode akses panggilan keamanan tunggal. Namun, semua aplikasi harus membuat permintaan kode akses, seperti yang dijelaskan dalam Dasar-Dasar Keamanan Kode Akses.
















http://sutondoscript.blogspot.com/2011/03/pengertian-java-virtual-machine-jvm.html

SQL



APIT PRISAMBODO
12 SI  A/ 12.12.0068
STMIK AMIKOM PURWOKERTO
2012/2013






I. PENDAHULUAN
SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data rasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Struktur Query Language (SQL) merupakan bahasa query standar yang
digunakan untuk mengakses basis data relasional. Database relasional adalah
database yang mengorganisasikan data dalam bentuk tabel. Dalam SQL Server,
database bukanlah sebuah file tetapi merupakan sebuah konsep logis yang berisi
kumpulan objek-objek yang berhubungan.

 SQL mempunyai kemampuan:
ü  Query memperoleh data
ü  Pendefinisian struktur data
ü  Pengubahan data
ü  Pengaturan sekuritas, dan lain-lain

Antar muka SQL terhadap database managemen sistem (DBMS) adalah
sebagai berikut:
·         SQL sebagai bahasa administrasi basis data
Dalam hal ini SQL dipakai oleh DBA untuk menciptakan serta
mengendalikan pengaksesan basis data.
·         SQL sebagai bahasa query interaktif
Pengguna dapat memberikan perintah-perintah untuk mengakses basis data
yang sesuai dengan kebutuhannya.
·         SQL sebagai bahasa pemrograman basis data
Pemogram dapat menggunakan perintah-perintah SQL dalam program
aplikasi yang dibuat guna mengakses basis data.


SQL juga dapat dipakai juga untuk mengimplementasikan sistem
klien/server. Sebuah klien dapat menjalankan sesuatu aplikasi yang
mengakses basis data yang ada pada server. Dalam hal ini sistem operasi
pada server dengan klien boleh berbeda. Dilingkungan PC, pengaksesan
data antar DBMS yang berbeda dapat dilakukan dengan mudah berkat
adanya ODBC






II. Soal dan Permasalahan.

1. Login dalam sqlplus.
2. Login sqlplu menggunakan run system.
3. Melakukan pengecekan terhadap database.
4. Melakukan pengecekan ada berapa user atau chema dalam database.
5. Cara mengetahui di chema mana kita berada.
6. Membuka,user account scott.
7. Mengganti password scott menjadi oracle.
8. Berpindah dari user system ke user scott.
9. Melakukan pengecekan di schema scott untuk mengetahui objek data base di dalamnya.
10. menampilkan isi buffer sql*plus atau menampilkan perintah yang terakhir diketik dan cara menjalankannya.
11. Menyimpan buffer menjadi file script.
12. Mengetahui default penyimpanan.
13. Memuat file script.
14. Menghilangkan perintah dan membersihkan buffer.
15. Mengedit buffer.
16. Membuat user/schema.
17. Mengakhiri koneksi dari database.

 III. Landasan Teori.
“Sistem adalah sebuah tatanan yang terdiri atas sejumlah komponen fungsional (dengan tugas/fungsi khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu.”
(Kusrini, 2007 : 11).

“Sistem adalah sekelompok elemen yang terintegrasi dengan maksud yang sama untuk mencapai tujuan.”
(Raymond McLeod).

“Sistem basis data merupakan sistem yang terdiri dari kumpulan file atau tabel yang saling berhubungan dan memungkinkan beberapa pemakai mengakses dan memanipulasinya”
(Yakub , 2008 : 13)

“Model Data adalah sekumpulan tool konseptual untuk mendeskripsikan data, relasi-relasi antar data, semantik data, dan konsistensi konstrain.”
(Kusrini, 2007 : 17)



IV. Pembahasan dan SQL.

01.klik start>all program>oracle>klik SQL*plus dan log in dalam SQL*plus



02.buka run (windows+r) lalu log in kedalam SQL* plus.


03. Ketikan seperti pada tanda yg dilingkari untuk melakukan pengecekan terhadap database.





04. Ketikan seperti pada tanda yg dilingkari untuk melakukan melakukan pengecekan ada berapa user atau chema dalam database.

05. Ketikan seperti pada tanda yg dilingkari untuk melakukan mengetahui di schema mana kita berada.




06. Ketikan seperti pada tanda yg dilingkari untuk melakukan untuk memasukan user account.





07. Ketikan seperti pada tanda yg dilingkari untuk melakukan engganti password scott sesuai keinginan anda (contoh password : oracle)




08.
Ketikan seperti pada tanda yg dilingkari untuk melakukan berpindah dari user system ke user lain.
.


09. Ketikan seperti pada tanda yg dilingkari untuk melakukan pengecekan di schema scott untuk mengetahui objek data base di dalamnya.
.



10.
Ketikan seperti pada tanda yg dilingkari untuk melakukan pengecekan isi buffer lalu tekan enter




lalu ketikan run  dan tekan(enter).




11.cara Menyimpan buffer menjadi file script..





12.Mengetahui default penyimpanan.

13.Memuat file script.



14.
Ketikan seperti pada tanda yg dilingkari untuk melakukan menghilangkan perintah dan membersihkan buffer.


15.Jika terjadi kesalahan,dan ingin memperbaiki dapat menggunakan edit untuk Mengedit buffer.



16.Membuat user/schema.


17.Dan jika sudah selesai anda dapat Mengakhiri koneksi dari database dengan cara berikut.


V. Kesimpulan.

Dengan menggunakan basis data,khususnya program yang sekarang saya gunakan,yaitu oracle ,kita dapat dilakukan dengan cepat dan mudah,memiliki kemampuan dalam mengelompokan secara akurat.lalu database dapat juga digunakan oleh banyak user,atau multiple user.pengontrolan juga dapat dilakukan hanya pada satu tempat saja.selain itu database juga dapat mengefisiensikan ruang tempat penyimpanan.
Dengan basis data,kita juga dapat memilah-milah,mana yang kita sedang perlukan ataupun yang akan kita simpan dalam tempat lain.DBMS dilengkapi dengan fasilitas manajemen pengguna,sehingga,pengguna lain tidak dapat masuk se enaknya, sebelum di berikannya hak akses.dari pengguna lainnya.
Selain itu juga ada manfaat lain seperti :
• Kemudahan dalam pembuatan aplikasi baru.
• Kebebasan data.
• User view.
• Pemulihan (Recovery.)



VI. Daftar Pustaka.
(Raymond McLeod).
(Yakub , 2008 : 13)
(Kusrini, 2007 : 17)
(Kusrini, 2007 : 11).