Kamis, 30 Januari 2014

Bug VS Debug

  • Apa itu Bug ?
           Bug dalam bahasa Indonesia artinya serangga pengganggu. Dalam dunia script, bug juga bisa diartikan "lubang-lubang error yang terdapat di dalam komputer dan disebabkan karena ketidaksempurnaan desain pada program yang menyebabkan program itu tidak berfungsi semestinya". Tapi kesalahan ini sangat kecil sehingga dinamakan bug atau si kecil yang mengganggu.
  • Kenapa Dinamakan Bug ?
          Tahun 1945 sewaktu ukuran komputer masih sebesar kamar, pihak militer Amerika Serikat menggunakan komputer yang bernama "Mark 1". Suatu hari komputer ini tidak berfungsi dengan semestinya, setelah komputer itu diperiksa ternyata ada suatu bagian perangkat keras di mana terdapat serangga yang tersangkut. Setelah serangga itu diangkat dari perangkat keras, komputer dapat berfungsi dengan baik. Maka sejak saat itu kata bug lekat dengan masalah-masalah pada komputer.

  • Apa itu Debugging ?
          Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk meng-analisa alur kerja program, mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau perangkat keras sehingga perangkat tersebut bekerja sesuai dengan harapan. Debugging cenderung lebih rumit ketika beberapa subsistem lainnya terikat dengan ketat dengannya, mengingat sebuah perubahan di satu sisi, mungkin dapat menyebabkan munculnya bug lain di dalam subsistem lainnya.

  • Proses Debugging
       Debugging bukan merupakan pengujian, tetapi selalu terjadi sebagai bagian akibat dari pengujian. Proses debungging dimulai dengan eksekusi terhadap suatu test case. Hasilnya dinilai, dan ditemukan kurangnya hubungan antara harapan dan yang sesungguhnya. Dalam banyak kasus, data yang tidak berkaitan merupakan gejala dari suatu penyebab pokok tetapi masih tersembunyi, sehingga perlu ada koreksi kesalahan.
Proses debugging akan selalu memiliki salah satu dari dua hasil akhir berikut:
  1. Penyebab akan ditemukan, dikoreksi, dan dihilangkan, atau
  2. Penyebab tidak akan ditemukan.
  • Karakteristik bug
       Dalam kasus yang terakhir, orang yang melakukan debugging mungkin mencurigai suatu penyebab, mendesainsuatu test case untuk membantu kecurigaannya, dan bekerja untuk koreksi kesalahan dengan gaya yang iterative.
Beberapa karakteristik bug memberi kunci :
  1. Gejala dan penyebab dapat jauh secara geografis, dimana gejala dapat muncul didalam satu bagian dari suatu program, sementara penyebab dapat ditempatkan pada suatu sisi yang terlepas jauh.
  2. Gejala dapat hilang (kadang-kadang) ketika kesalahan yang lain dibetulkan.
  3. Gejala dapat benar-benar disebabkan oleh sesuatu yang tidak salah (misalnya pembulatan yang tidak akurat).
  4. Simpton dapat disebabkan oleh kesalahan manusia yang tidak dapat dengan mudah ditelusuri.
  5. Gejala dapat merupakan hasil dari masalah timing, dan bukan dari masalah pemrosesan.
  6. Mungkin sulit untuk mereproduksi kondisi input secara akurat (misalnya aplikasi real time dimana pengurutan input tidak ditentukan).
  7. Gejala dapat sebentar-sebentar. Hal ini sangat umum pada system yang embedded yang merangkai perangkat lunak dan perangkat keras yang tidak mungkin dilepaskan.
  8. Gejala dapat berhubungan dengan penyebab yang didistribusikan melewati sejumlah tugas yang bekerja pada prosesor yang berbeda.
       Selama debugging, kita menemukan kesalahan-kesalahan mulai dari gangguan yang halus (missal format output yang tidak betul) sampai katrastropis (misalnya kegagalan system yang menyebabkan kerusakan fisik atau ekonomis).
           Sebagai akibat dari peningkatan kesalahan, jumlah tekanan untuk menemukan kesalahan juga bertambah. Sering kali tekanan memaksa seorang pengembang perangkat lunak untuk membetulkan kesalahan dan pada saat yang sama memunculkan lagi dua kesalahan baru.

  • Kategori Pendekatan debugging 
             Tiga kategoti pendekatan debugging dapat diusulkan (MYE79) :

        1. Gaya yang kasar (Brute force)
         Kategori debugging brute force mungkin merupakan yang paling umum dan metode yang paling efisien untuk mengisolasi penyebab kesalahan perangkat lunak. Kita mengaplikasikan metode debugging brute force bila semua yang lain telah gagal. Dengan menggunakan filosofi ”biarkan komputer menemukan kesalahan”, tempat sampah memori dipakai, penelusuran runtime dilakukan, dan program dibebani dengan statemen WRITE. 

        2. Penelusuran balik (backtracking)
          Backtracking adalah pendekatan debugging yang sangat umum yang dapat digunakan secara sukses didalam program yang kecil. Mulai pada sisi dimana suatu gejala diungkap, kode sumber ditelusuri balik (secara manual) sampai sisi penyebab ditemukan. Sayangnya, bila jumlah baris sumber bertambah, maka jumlah jalur balik potensial dapat sangat banyak.

        3. Eliminasi penyebab (Cause elimination)
           Cause elimination dimanisfestasikan oleh induksi atau deduksi serta mengawali konsep partisi biner. Data yang berhubungan dengan kejadian kesalahan dikumpulkan untuk mengisolasi penyebab potensial. Hipotesis penyebab dibuat dan data digunakan untuk membuktikan penolakan hipotesis tersebut. Sebagai alternatif, daftar semua penyebab yang mungkin dikembangkan dan dilakukan pengujian untuk mengeliminasi masing-masing kesalahan. Jika pengujian awal menunjukkan bahwa suatu hipotesis penyebab memberikan gambaran hasil yang jelas, maka data itu disaring sebagai usaha untuk mengisolasi bug.

        Masing-masing pendekatan debugging tersebut dapat ditambah dengan piranti debugging. Kita dapat mengaplikasikan berbagai kompiler debugging yang luas. Namun piranti bukanlah pengganti bagi evaluasi yang berhati-hati yang didasarkan atas dokumen desain perangkat lunak yang lengkap dan kode sumber yang jelas.
        Sekali bug ditemukan, bug harus dibetulkan. Tetapi seperti telah kita catat, koreksi terhadap suatu bug dapat memunculkan kesalahan lain sehingga lebih banyak merugikan daripada menguntungkan.

Sumber :
Buku : "Debug It!", 2009, Paul Butcher, The Pragmatic Programmers
 
 

Komponen pada Komputer

A.  Input Device : 
adalah perangkat-perangkat keras komputer yang berfungsi untuk memasukkan data ke dalam memori komputer, seperti keyboard, mouse, joystick dan lain-lain.

  • Keyboard
Merupakan alat input yang paling umum dan banyak digunakan. Beberapa alat input yang menggunakan keyboard untuk memasukkan input adalah :
Visual display terminal (VDT) disebut juga dengan nama Visual display unit terdiri dari keyboard dan visual display (tampilan display)
Financial transaction terminal, digunakan untuk transaksi yang berhubungan dengan keuangan. Salah satu aplikasinya yaitu untuk Electronic Fund Transfer (EFT) dengan menggunakan ATM
Point of sale terminal (POS), biasanya digunakan di swalayan.
POS terminal merupakan perkembangan dari cash register yang dapat dihubungkan dengan komputer untuk tujuan pengendalian persediaan (inventory control) dan penjadwalan pemesanan kembali barang yang akan dipesan. Alat tambahan pada POS Terminal meliputi OCR Tag Reader atau Bar code reader

  • Pointing device
Yang termasuk dalam peralatan pointing device adalah:
mouse . alat yang berbentuk seperti tikus untuk mengarahkan kursor.
touch screen, layar monitor yang akan mengaktifkan program bila layarnya disentuh dengan tangan
Light Pen, merupakan menyentuh layar monitor dengan pena. Posisi sentuhan di layar akan lebih tepat dan teliti
Digitizer Graphic Tablet, digunakan untuk membuat grafik atau gambar dengan cara menghubungkan dua buah titik di graphic tablet dengan alat yang menyerupai pen

  • Scanner
Alat masukan scanner dapat berupa :
magnetic Ink character recognition (MICR), alat pembaca pengenal karakter tinta magnetik, banyak digunakan di bank-bank amerika untuk transaksi cek. Dibutuhkan tinta magnetik yg khusus supaya bisa dibaca oleh alatnya
Reader. alat untuk membaca data yang akan di scan
Optical Data reader, dapat berupa Optical Character Recognition (OCR) Reader, OCR Tag Reader (banyak dipergunakan di toko-toko serba ada untuk membaca label data barang yang dijual yang dicetak dengan bentuk (font) karakter OCR), Bar Code Reader, Optical Mark Recognition (OMR) Reader (banyak digunakan untuk penilaian test (test scoring). Jawaban dari tes yang diberikan dijawab di kertas mark sense form (dengan pensil 2B). OMR juga banyak digunakan untuk membaca hasil dari daftar pertanyaan (Questionarries), registrasi mahasiswa dsb)

  • Sensor
Merupakan alat yang mampu secara langsung menangkap data kejadian fisik. Data analog dikumpulkan oleh alat sensor dan dimasukan ke pengubah AD/DC yang selanjutnya diproses oleh komputer. Kamera Digital merupakan salah satu sensor yang dipakai untuk menangkap objek yg selanjutnya diproses dengan komputer. Camera Recorder (Camcorder) merupakan sensor untuk menangkap objek yang bergerak

  • Voice recognizer
Biasa disebut Speech Recognizer yaitu alat untuk membuat komputer mengerti omongan manusia.

B.  Processor : 
adalah perangkat utama komputer yang mengelola seluruh aktifitas komputer itu sendiri. Prosesor terdiri dari dua bagian utama, yaitu :
  1. Control Unit (CU), merupakan komponen utama prosesor yang mengontrol semua perangkat yang terpasang pada komputer, mulai dari input device sampai output device. 
  2. Arithmetic Logic Unit (ALU), merupakan bagian dari prosesor yang khusus mengolah data aritmatika (menambah, mengurang dll) serta data logika (perbandingan). 

C.  Memori :
 adalah media penyimpan data pada komputer. 


Memori terbagi atas dua macam, yaitu :
1. Read Only Memory (ROM), yaitu memori yang hanya bisa dibaca saja, tidak dapat dirubah dan dihapus dan sudah diisi oleh pabrik pembuat komputer. Isi ROM diperlukan pada saat komputer dihidupkan. Perintah yang ada pada ROM sebagian akan dipindahkan ke RAM. Perintah yang ada di ROM antara lain adalah perintah untuk membaca sistem operasi dari disk, perintah untuk mencek semua peralatan yang ada di unit sistem dan perintah untuk menampilkan pesan di layar. Isi ROM tidak akan hilang meskipun tidak ada aliran listrik. Tapi pada saat sekarang ini ROM telah mengalami perkembangan dan banyak macamnya, diantaranya :

PROM (Programable ROM), yaitu ROM yang bisa kita program kembali dengan catatan hanya boleh satu kali perubahan setelah itu tidak dapat lagi diprogram.

RPROM (Re-Programable ROM), merupakan perkembangan dari versi PROM dimana kita dapat melakukan perubahan berulangkali sesuai dengan yang diinginkan.

EPROM (Erasable Program ROM), merupakan ROM yangdapat kita hapus dan program kembali, tapi cara penghapusannya dengan menggunakan sinar ultraviolet.

EEPROM (Electrically Erasable Program ROM), perkembangan mutakhir dari ROM dimana kita dapat mengubahdan menghapus program ROM dengan menggunakan teknikelektrik. EEPROM ini merupakan jenis yang paling banyak digunakan saat ini.

2. Random Access Memori (RAM), dari namanya kita dapat artikan bahwa RAM adalah memori yang dapat diakses secara random. RAM berfungsi untuk menyimpan program yang kita olah untuk sementara waktu (power on) jika komputer kita matikan, maka seluruh data yang tersimpan dalam RAM akan hilang. Tujuan dari RAM ini adalah mempercepat pemroses data pada komputer. Agar data yang kita buat tidak dapat hilang pada saat komputer dimatikan, maka diperlukan media penyimpanan eksternal, seperti Disket, Harddisk, flash disk, PCMCIA card dan lain-lain.


D.  Output Device :
 Ouput yang dihasilkan dari pengolahan data dapat digolongkan ke dalam 3 bentuk tulisan (huruf, kata, angka, karakter dan simbol- simbol khusus), image (grafik atau gambar) maupun suara (musik atau omongan) Alat keluaran juga dapat berbentuk:


Hard copy device
Merupakan alat keluaran yg digunakan untuk mencetak tulisan, grafik atau gambar pada media pencetak. Alat hard copy device yang umum dipergunakan adalah printer. Jenis-jenis printer meliputi dot matrix, inkjet printer dan laser. Selain itu juga dikenal Plotter, alat cetak yang mempunyai kemampuan mencetak grafik atau gambar dengan baik, biasanya menggunakan pen plotter

Soft Copy Device
Merupakan alat yg digunakan untuk menampilkan tulisan, image dan suara pada media soft (lunak) yg berupa sinyal elektronik. Contoh soft copy device adalah video display (monitor), flat panel display (Liquid Crystal Dispaly), dan speaker.


      Dari penjelasan diatas dapat kita simpulkan bahwa prinsip kerja komputer tersebut diawali memasukan data dari perangkat input, lalu data tersebut diolah sedemikian rupa oleh CPU sesuai yang kita inginkan dan data yang telah diolah tadi disimpan dalam memori komputer atau disk. Data yang disimpan dapat kita lihat hasilnya melalui perangkat keluaran. 

Sumber :
Buku : "Pengertian dan Komponen Komponen Komputer", Yoga Ailala
 

Keamanan Jaringan dan Keamanan Internet



1. Keamanan Jaringan Komputer dan Keamanan Internet
        
        Keamanan jaringan (Network Security) dalam jaringan komputer sangat penting dilakukan untuk memonitor akses jaringan dan mencegah penyalahgunaan sumber daya jaringan yang tidak sah. Tugas keamanan jaringan dikontrol oleh administrator jaringan.  Sasaran keamanan jaringan komputer antara lain adalah sebagai perlindungan informasi terhadap pencurian atau korupsi, atau pemeliharaan ketersediaan, seperti dijabarkan dalam kebijakan keamanan. Menurut Garfinkel dan Spafford, ahli dalam komputer security, komputer dikatakan aman jika bisa diandalkan dan perangkat lunaknya bekerja sesuai dengan yang diharapkan. Keamanan jaringan komputer memiliki 5 tujuan, yaitu :
  • Privacy : adalah sesuatu yang bersifat rahasia (private). Intinya adalah pencegahan agar informasi tersebut tidak diakses oleh orang yang tidak berhak.
  • Confidentiality : merupakan data yang diberikan ke pihak lain untuk tujuan khusus tetapi tetap dijaga penyebarannya.
  • Integrity : penekanannya adalah sebuah informasi tidak boleh diubah kecuali oleh pemilik informasi. Terkadang data yang telah terenskripsipun tidak terjaga integritasnya karena ada kemungkinan chapertext dari enkripsi tersebut berubah.
  • Autentication : ini akan dilakukan sewaktu user login dengan menggunakan nama user dan passwordnya. Ini biasanya berhubungan dengan hak akses seseorang, apakah dia pengakses yang sah atau tidak.
  • Audit (Availability) : aspek ini berkaitan dengan apakah sebuah data tersedia saat dibutuhkan/diperlukan. Apabila sebuah data atau informasi terlalu ketat pengamanannya akan menyulitkan dalam akses data tersebut.
Kejahatan cyber atau lebih dikenal dengan cyber crime / cyber security adalah suatu bentuk kejahatan virtual dengan memanfaatkan media komputer yang terhubung ke internet, dan mengekploitasi komputer lain yang terhubung juga pada internet. Adanya lubang-lubang keamanan pada sistem operasi menyebabkan kelemahan dan terbukanya lubang yang dapat digunakan para hacker, cracker dan script kiddies untuk menyusup ke dalam computer tersebut. Kejahatan yang terjadi dapat berupa:
a. pencurian terhadap data.
b. akses terhadap jaringan internal.
c. perubahan terhadap data-data penting.
d. pencurian informasi dan berujung pada penjualan informasi.

Hal yang menjadikan kejahatan komputer terus terjadi dan cenderung meningkat adalah :
a. meningkatnya pengguna komputer dan internet. 
b. banyaknya software  disalahgunakan untuk melakukan scanning system orang lain.
c. banyaknya software untuk melakukan penyusupan yang tersedia di internet.
d. meningkatnya kemampuan pengguna komputer dan internet.
e. desentralisasi server sehingga lebih banyak system yang harus ditangani, sementara SDM terbatas.
f. kurangnya hukum yang mengatur kejahatan computer.
g. semakin banyaknya perusahaan yang menghubungkan jaringan LAN mereka ke internet.
h. meningkatnya aplikasi bisnis yang menggunakan internet.
i. banyaknya software yang mempunyai kelemahan (bugs).

2. Ancaman dalam Penggunaan Internet
          ancaman terhadap sistem komputer dikategorikan menjadi 4 ancaman, yaitu :
  • Interupsi (interruption) : Sumber daya sistem komputer dihancurkan atau menjadi tak tersedia atau tak berguna. Interupsi merupakan ancaman terhadap ketersediaan. Contoh : Penghancuran bagian perangkat keras, seperti hardisk dan Pemotongan kabel komunikasi. 
  • Intersepsi (interseption) : Pihak tak diotorisasi dapat mengakses sumber daya. Intersepsi merupakan ancaman terhadap keterahasiaan. Pihak tak diotorisasi dapat berupa orang atau program komputer. Contoh : Penyadapan untuk mengambil data rahasia dan Mengcopy file tanpa diotorisasi.
  • Modifikasi (modification) : Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Modifikasi merupakan ancaman terhadap integritas. Contoh : Mengubah nilai-nilai file data, Mengubah program sehingga bertindak secara beda dan Memodifikasi pesan-pesan yang ditransmisikan pada jaringan. 
  • Fabrikasi (fabrication) : Pihak tak diotorisasi menyisipkan atau memasukkan objek-objek palsu ke sistem. Fabrikasi merupakan ancaman terhadap integritas. Contoh : Memasukkan pesan-pesan palsu ke jaringan.
Adapun jenis – jenis ancaman Sistem Keamanan Komputer, antara lain:
  • Palmtop Viruses
  • Viruses Hoaxes
  • Email Viruses
  • Viruses
  • Internet Worms
  • Trojan Horse
  • Spyware
  • Spam
3. Contoh Penyalahgunaan Internet 
         Berikut contoh penyalahgunaan Internet, adalah sebagai berikut :
  • Bom Mail : Pengiriman bom mail ke sebuah e-mail address, biasanya dimulai oleh sentimen pribadi si pemilik e-mail address (target) dengan cracker. Cracker mengirimkan e-mail sebanyak-banyaknya ke komputer target, sehingga sistem di komputer target down (hang-up) karena kepenuhan e-mail. 
  • Batu Loncatan Penyerangan : Sistem komputer dengan pengamanan lemah, tak jarang digunakan oleh cracker sebagai batu loncatan untuk menyerang target (komputer) lain, dengan maksud untuk lebih mengaburkan jejak si cracker . 
  • Pemalsuan ID : Seorang cracker hampir dapat dipastikan tidak akan pernah memakai ID (identifitas) asli yang dimilikinya. Cracker akan berusaha menggunakan ID milik orang lain, atau membuat ID palsu dalam setiap gerakannya. Untuk mendapatkan ID orang lain, cracker dapat mencari lewat penye-“trap”-an data-data yang lewat jaringan, dan menganalisanya. 
  • Pencurian File Password atau data Customer : Salah satu cara untuk mendapatkan ID milik orang lain, tak jarang seorang cracker berusaha mencuri file password dari suatu sistem, kemudian menganalisanya. Lebih dari itu, cracker secara pribadi ataupun bersindikat, berusaha mencuri data rahasia suatu perusahaan untuk dijual ke perusahaan lawan.  
  • Penggantian isi Homepage (Deface) : Untuk menangani masalah ini biasanya seorang admin web harus bekerja keras untuk bisa mengembalikan halaman websitenya kembali seperti semula. Alangkah baiknya jika seorang admin web selalu mengikuti perkembangan berita-berita yang berkaitan dengan celah-celah keamanan aplikasi yang digunakan pada web tersebut.  
  • Program Jebakan : Trojan Horse (kuda troya) sudah dikenal sebagai salah satu teknik cracker yang sangat ampuh dan sering digunakan dalam kejahatan-kejahatan di Internet. Cracker memberikan program gratis, yang feature-nya bagus (banyak fungsi-fungsi program yang bermanfaat) dan penggunaanya mudah dan enak (user friendly), tetapi di dalam program tersebut, sebenarnya si cracker ‘menanamkan’ program lain yang tidak terlihat oleh user. 
  • Shutdown Service : Seorang cracker terkadang berusaha meng-hang-up suatu sistem, dengan tujuan agar sistem target tidak dapat melayani service dari semua user. Biasanya penyebab masalah ini adalah terletak pada program server yang menangani suatu jasa/service tertentu. 

4. Contoh Kasus Penyalahgunaan Internet di Indonesia

a. Pencurian dan penggunaan account internet milik orang lain.
      Pencurian account ini berbeda dengan pencurian secara fisik karena pencurian dilakukan cukup dengan menangkap “user_id” dan “password” saja. Tujuan dari pencurian itu hanya untuk mencuri informasi saja. Pihak yang kecurian tidak akan merasakan kehilangan. Namun, efeknya akan terasa jika informasi tersebut digunakan oleh pihak yang tidak bertanggung jawab. Hal tersebut akan membuat semua beban biaya penggunaan account oleh si pencuri dibebankan kepada si pemilik account yang sebenarnya.
b. Penyerangan terhadap jaringan internet KPU
        Jaringan internet di Pusat Tabulasi Nasional Komisi Pemilihan Umum sempatdown (terganggu) beberapa kali.
c. Kejahatan yang berhubungan dengan nama domain.  
         Nama domain (domain name) digunakan untuk mengidentifikasi perusahaan dan merek dagang. Namun banyak orang yang mencoba menarik keuntungan dengan mendaftarkan domain nama perusahaan orang lain dan kemudian berusaha menjualnya dengan harga yang lebih mahal. Pekerjaan ini mirip dengan calo karcis. Istilah yang sering digunakan adalah cybersquatting. Masalah lain adalah menggunakan nama domain saingan perusahaan untuk merugikan perusahaan lain. (Kasus: mustika-ratu.com) Kejahatan lain yang berhubungan dengan nama domain adalah membuat “domain plesetan”, yaitu domain yang mirip dengan nama domain orang lain. .Istilah yang digunakan saat ini adalah typosquatting.
d. Terjadinya perubahan dalam website KPU
         Pada tanggal 17 April 2004, Dani Hermansyah melakukan deface dengan mengubah nama-nama partai yang ada dengan nama-nama buah dalam www.kpu.go.ig . Hal ini mengakibatkan keprcayaan masyarakat terhadap Pemilu yang sedang berlangsung pada saat itu menjadi berkurang. Dengan berubahnya nama partai di dalam website, maka bukan tidak mungkin angka-angka jumlah pemilih yang masuk di sana menjadi tidak aman dan bisa diubah.
e. Denial of Service (DoS) dan Distributed DoS (DDos) attack
         DoS attack merupakan serangan yang bertujuan untuk melumpuhkan target (hang,crash) sehingga dia tidak dapat memberikan layanan. Serangan ini tidak melakukan pencurian, penyadapan, ataupun pemalsuan data. Akan tetapi dengan hilangnya layanan maka target tidak dapat memberikan servis sehingga ada kerugian finansial. DoS attack dapat ditujukan kepada server (komputer) dan juga dapat ditargetkan kepada jaringan (menghabiskan bandwidth). Tools untuk melakukan hal ini banyak tersebar di Internet. DDoS attack meningkatkan serangan ini dengan melakukannya dari berberapa (puluhan, ratusan, dan bahkan ribuan) komputer secara serentak.

Sumber :
Buku : "Kriptografi untuk Keamanan Jaringan", 2012, Rifki Sadikin