Pemrograman Visual I


FASILITAS BAHASA C# : EXCEPTION HANDLING, GARBAGE COLLECTION, EXTENSIBLE DATA TYPES, SECURE CODE


A. EXCEPTION HANDLING
           Pada dasarnya, Exception merupakan subkelas dari kelas java.lang.Throwable. “Bukalah dokumentasi java untuk lebih menyakinkan anda”. Karena Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan maka bug tersebut dapat dianggap sebuah object. Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil method to String yang terdapat dalam object bertipe Exception ini. Java memberikan akses kepada developer untuk mengambil object bug yang terjadi ini dengan mekanisme yang dikenal Exception Handling. Exception handling merupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan.

> Keyword penting pada exception handling
   Ada 5 keyword penting dalam java dalam hal exception handling :

   1. Try
       Keyword ini biasanya digunakan dalam suatu block program. keyword ini digunakan untuk mencoba menjalankan block program kemudian mengenai dimana munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally yang akan dibahas pada point kedua dan ketiga. Contoh penggunaan :
Output : 
java.lang.ArithmeticException: / by zero
Perhatikan contoh diatas, ada beberapa hal penting yang perlu dilihat. Pertama, block program yag diyakini menimbulkan kesalahan maka ada di dalam block try and catch.Kedua, kesalahan yang muncul akan dianggap sebagai object dan ditangkap catch kemudian di assign ke variable kesalahan dengan tipe Exception. Ketiga, perintah setelah munculnya kesalahan pada block try tidak akan dieksekusi.




2. catch
Jika anda sudah melihat contoh try maka secara tidak langsung anda sudah memahami kegunaan dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try. Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun pada block catch sesuai keinginan developer. Contoh Program :




3. finally
Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada. Contoh implementasinya pada program :
Output Program diatas:
terima kasih telah menjalankan program
Jika saya lakukan modifikasi program diatas menjadi :
Output Program : 
ada kesalahan yang muncul
terima kasih telah menjalankan program
Perhatikan kedua contoh diatas, block finally akan selalu dieksekusi meskipun adanya kesalahan atau tidak pada block try. Berbeda dengan keyword catch keyword finally hanya dapat diletakan 1 kali setelah keyword try.




4. throw
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual. Contoh program :


Output Program : 
java.lang.Exception: kesalahan terjadi
Seperti yang anda lihat pada program diatas, pada keyword throw new Exception(“kesalahan terjadi”); akan melempar object bertipe exception yang merupakan subclass dari class Exception sehingga akan dianggap sebagai suatu kesalahan yang harus ditangkap oleh keyword catch.

Perhatikan contoh berikut ini :


Output Program : 
object dengan tipe kelas B
Program diatas telah mendefinisikan suatu kelas B mengextends dari kelas Exception. Ketika kita melakukan throw new B(); maka object dari kelas bertipe B ini akan dianggap kesalahan dan ditangkap oleh block catch. Sekarang jika anda menghilangkan keyword throw apa yang terjadi?.




5. throws
throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method adalah sebagai berikut : <method modifier> type method-name throws exception-list1, exceptio-list2,
Contoh Program :









B. GARBAGE COLLECTION
                Garbage collection adalah salah satu fitur canggih milik bahasa pemrograman java, yang berguna untuk mengumpulkan memory komputer setelah digunakan. Banyak contoh kasus yang menyebabkan seorang programmer itu menjadi handal atau dia menjadi seorang programmer yang gagal hanya karena managemen memory pada program yang dibuat. Misalnya, pada bahasa C, kita mengenal pointer yang bisa digunakan untuk pengalamatan variabel dan juga sebagai variabel dinamis. Apabila sang programmer handal dalam mengolah memory, maka program yang dibuat pun akan menjadi sangat handal. Namun sebaliknya, pointer bisa menjadi boomerang bagi programmer apabila dia salah dalam me-manage memory yang dimiliki. 

Dalam bahasa pemrograman java, pointer dikenal sebagai objek yang merupakan instance dari suatu class dan memiliki reference terhadap class tersebut. Dengan adanya garbage collection ini, maka proses untuk pengumpulan memori komputer dapat dilakukan secara otomatis oleh bahasa java. Sehingga, akan lebih memudahkan programmer. Disamping program akan menjadi lebih handal, programmer juga akan lebih mudah dalam mengatur penggunaan memorinya. 

contoh untuk penghapusan memory pada suatu objek java. Sehingga reference dapat dilepas/ hilang :








C. EXTENSIBLE DATA TYPES
     Bahasa pada pemrograman, biasa disebut XTD 
1.  Masalahnya 
Berikut adalah tes sederhana untuk orientasi objek (untuk beberapa definisi yang masuk akal): 
Tentukan tipe A sehingga untuk setiap tipe B Anda dapat menentukan :



     Anda dapat melakukan ini cukup mudah di Jawa atau C + +, mutatis mutandis. Anda tidak dapat melakukan hal ini dalam Haskell (atau O'Haskell baik). 
     Anda dapat melakukan bentuk yang lebih lemah dari ini dengan Dinamis Haskell, di mana Anda hanya harus berurusan dengan B itu adalah contoh dari Typeable. Tetapi bahkan dengan itu, diketahui bahwa Dinamis /      Typeable / TypeRep adalah berantakan sedikit, dengan contoh untuk Typeable ditetapkan untuk berbagai jenis dikenal. 
     Sebuah pendekatan alternatif akan mengidentifikasi B Anda dalam A bukan per-B tapi per-(atas, bawah). Hal ini akan memungkinkan untuk contoh yang terpisah (atas, bawah) untuk B sama sehingga :




2.   Extensible datatypes Datatypes Extensible memungkinkan tipe yang akan didefinisikan sebagai "terbuka", yang kemudian dapat diperpanjang dengan menguraikan serikat. Berikut adalah sintaks loh-Hinze yang mencapai tes OO di atas :





3.    Mendapatkan Dinamis 
Ini mungkin untuk menentukan Dinamis data yang extensible menggunakan jenis. Berikut adalah upaya naif:










D.     SECURE CODE

Tentang CodeSecure
     CodeSecure ™ adalah kode sumber statis analisis platform yang memanfaatkan teknologi software generasi ketiga verifikasi untuk mengidentifikasi kerentanan aplikasi web di seluruh pembangunan. Solusi berbasis web kami menyediakan otomatis compiler-independen analisis kode yang tercemar dataflow model dalam aplikasi. Laporan menunjukkan lokasi kode rentan dan menawarkan bimbingan remediasi diprioritaskan. 

       Tentang Armorize 
     Armorize Technologies menyediakan solusi yang komprehensif untuk malware web, malvertising, dan keamanan aplikasi web yang mendeteksi, meringankan, dan mencegah malware web, sementara memfasilitasi remediasi kerentanan dalam kode sumber aplikasi web. The Armorize anti-malware mengintegrasikan solusi web injeksi malware & pemantauan malvertising, bersama kode sumber analisis statis dan teknologi WAF untuk memberikan fleksibel dan efisien end-to-end Web keamanan aplikasi pengamanan terhadap malware web. Berkantor pusat di San Francisco, CA, dengan R & D center di Nan Kang Software Park di Taipei, Taiwan, Armorize memiliki basis pelanggan global dengan klien di antara keuangan, telekomunikasi, pemerintah dan para pemimpin sektor teknologi.

Comments

Popular posts from this blog

DDL (DATA DEFINITION LANGUAGE)

KODING DERET FIBONACCI C#

Cara Mengatasi Tombol FN Error