Kekokohan (ilmu komputer)Dalam ilmu komputer, kekokohan adalah kemampuan dari sistem komputer untuk menangani eror dalam eksekusi[1] dan masukan yang bermasalah.[2] Kekokohan dapat meliputi berbagai area dalam ilmu komputer, seperti pemrograman kokoh, pemelajaran mesin kokoh, dan keamanan jaringan kokoh. Teknik formal seperti fuzz testing, sangat penting untuk menunjukkan kekokohan karena pengujian tipe ini melibatkan masukan tidak sah dan tidak tertuga. Selain itu, injeksi kesalahan juga dapat digunakan. Berbagai produk komersial melakukan pengujian analisis kekokohan perangkat lunak.[3] PengenalanSecara umum, sulit untuk membangun sistem yang kokoh dan meliputi seluruh titik kelemahan karena jumlah kombinasi masukan dan luaran amat banyak.[4] Pengujian terhadap semua kombinasi masukan dan luaran memakan terlalu banyak waktu dan para pengembang tidak mungkin melaksanakannya satu-persatu. Karena itu, mereka mengelompokan kasus-kasus yang serupa.[5] Sebagai contoh, bayangkan anda memasukkan beberapa nilai integer. Beberapa masukan tersebut mungkin berupa bilangan negatif, nol, atau bilangan positif. Untuk menguji perangkat lunak, pengembang menggunakan hanya tiga bilangan tersebut untuk menguji seluruh set bilangan riil. Cara ini lebih efisien, tapi lebih riskan pula. Pengelompokan kasus uji adalah satu dari banyak cara untuk menangani kegagalan, khususnya kegagalan karena masukan tidak sah. Secara umum, sistem juga dapat gagal karena alasan-alasan lain, seperti terputus dari jaringan. Sistem yang kompleks harus dapat menangani semua eror dengan mulus, bagaimanapun caranya. Ada banyak contoh sistem yang sukses dan kokoh. Beberapa sistem paling kokoh dapat berevolusi dan diadaptasi pada situasi baru dengan mudah.[4] TantanganProgram dan perangkat lunak adalah alat untuk melakukan sebuah tugas yang spesifik, sehingga tidak fleksibel.[4] Meskipun begitu, dengan mengamati sistem internet dan sistem biologis, kita dapat menemukan cara adaptasi mereka terhadap lingkungannya. Salah satu cara sistem biologis beradaptasi terhadap lingkungan adalah menggunakan redundansi.[4] Banyak organ di tubuh kita (manusia) bersifat redundan. Ginjal salah satunya. Umumnya, manusia hanya membutuhkan satu ginjal, tetapi memiliki ginjal kedua memberikan ruang kegagalan atau room for failure. Prinsip ini dapat diterapkan pada perangkat lunak, tetapi ada beberapa tantangan. Ketika menerapkan prinsip redundansi pada ilmu komputer, tidak disarankan menambahkan kode dengan semena-mena. Penambahan kode secara asal akan mengenalkan lebih banyak eror kepada sistem, membuat sistem menjadi lebih kompleks , dan sulit dimengerti.[6] Kode baru yang tidak menguatkan kode yang sudah ada tidak diinginkan. Sebaliknya, kode baru harus memiliki kegunaan yang setara. Sehingga, jika suatu fungsi tidak bekerja, fungsi lain yang melakukan hal yang sama dapat menggantikannya. Dapat dikerjakan dengan keragaman perangkat lunak manual atau otomatis. Untuk itu, kode baru harus tau kapan dan bagaimana menangani titik kegagalan.[4] Berarti, lebih banyak logika dibutuhkan dalam sistem tersebut. Tetapi, seiring penambahan logika dalam sistem, komponen dan ukurannya bertambah dan menjadikannya lebih kompleks. Secara singkat sistem yang lebih redundan pasti lebih kompleks. Pengembang harus mempertimbangkan keseimbangan antara redundansi dan kompleksitas. Dewasa ini, ilmu komputer dalam prakteknya tidak terlalu mementingkan membangun sistem yang kokoh.[4] Sebaliknya, mereka lebih terfokus pada skalabilitas dan efisiensi. Salah satu alasannya adalah sulit untuk membangun kekokohan secara umum.[4] WilayahPemrograman kokohPemrograman kokoh adalah satu ragam pemrograman yang terfokus pada penanganan penghentian dan aksi tak terduga.[7] Hal ini membutuhkan kode untuk menangani aksi dan penghentian tak terduga ini secara anggun dengan menampilkan pesan eror yang akurat dan jelas. Pesan eror ini memungkinkan pengguna untuk men-debug program dengan lebih mudah. Prinsip
Pemelajaran mesin kokohPemelajaran mesin kokoh biasanya merujuk pada kekokohan algortime pemelajaran mesin. Untuk sebuah algoritme pemelajaran mesin dianggap kokoh, eror pada pengujian konsiten dengan eror pada pelatihan, atau performa tetap stabil ketika kebisingan ditambah pada dataset.[8] Akhir-akhir ini konsisten dengan naiknya popularitas jejaring saraf, minat terhadap kekokohannya juga meningkat. Khususnya pada kerentanannya pada serangan. Desain jejaring kokohDesain jejaring kokoh adalah studi terhadap desain jejaring yang dihadapkan dengan permintaan tidak pasti dan beragam.[9] Dalam artian, kekokohan dalam desain jejaring bentuknya luas seperti kekokohan pada desain perangkat lunak karena amat banyaknya kemungkinan perubahan atau masukan. Algoritme kokohAlgoritme yang mentoleransi eror dalam masukan.[10] Lihat juga
Referensi
|
Portal di Ensiklopedia Dunia