Slide # 1

Slide # 1

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts Read More

Slide # 2

Slide # 2

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts Read More

Slide # 3

Slide # 3

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts Read More

Slide # 4

Slide # 4

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts Read More

Slide # 5

Slide # 5

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts Read More

Minggu, 15 Desember 2013

Enkripsi Untuk Keamanan Data Pada Jaringan


Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network.
Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem sekuriti dari sistem komputer dan network.
A. Enkripsi Konvensional.
Proses enkripsi ini dapat digambarkan sebagai berikut :
Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekrispsi -> Plain teks
User A | | User B
|———————-Kunci (Key) ——————–|
Gambar 1
Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi.
Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.
Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.
B. Enkripsi Public-Key
Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976.
Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks
User A | | User B
Private Key B —-|
|———————-Kunci (Key) ——————–|
Gambar 2
Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :
  1. Masing – masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
  2. Masing – masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
  3. Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
  4. Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.
Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing – masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.
Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :
  1. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi – enkripsi.
  2. Pengirim dan penerima harus membagi algoritma dan kunci yang sama.
Yang dibutuhkan untuk keamanan :
  1. Kunci harus dirahasiakan.
  2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
  3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.
Enkripsi Public Key
Yang dibutuhkan untuk bekerja :
  1. Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
  2. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.
Yang dibutuhkan untuk keamanan :
  1. Salah satu dari kunci harus dirahasiakan.
  2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
  3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.


Tipe-Tipe Kepemimpinan


Dalam setiap realitasnya bahwa pemimpin dalam melaksanakan proseskepemimpinannya terjadi adanya suatu permbedaan antara pemimpin yang satu denganyang lainnya, hal ini sebagaimana menurut G. R. Terry yang dikutif Maman Ukas, bahwa pendapatnya membagi tipe-tipe kepemimpinan menjadi 6, yaitu :
1.Tipe kepemimpinan pribadi (personal leadership). Dalam system kepemimpinan ini,segala sesuatu tindakan itu dilakukan dengan mengadakan kontak pribadi. Petunjuk itu dilakukan secara lisan atau langsung dilakukan secara pribadi oleh pemimpin yang bersangkutan.
2.Tipe kepemimpinan non pribadi (non personal leadership). Segala sesuatukebijaksanaan yang dilaksanakan melalui bawahan-bawahan atau media non pribadi baik rencana atau perintah juga pengawasan.
3.Tipe kepemimpinan otoriter (autoritotian leadership). Pemimpin otoriter biasanya bekerja keras, sungguh-sungguh, teliti dan tertib. Ia bekerja menurut peraturan- peraturan yang berlaku secara ketat dan instruksi-instruksinya harus ditaati.
4.Tipe kepemimpinan demokratis (democratis leadership). Pemimpin yang demokratismenganggap dirinya sebagai bagian dari kelompoknya dan bersama-sama dengankelompoknya berusaha bertanggung jawab tentang terlaksananya tujuan bersama.Agar setiap anggota turut bertanggung jawab, maka seluruh anggota ikut serta dalamsegala kegiatan, perencanaan, penyelenggaraan, pengawasan, dan penilaian. Setiapanggota dianggap sebagai potensi yang berharga dalam usahan pencapaian tujuan.
5.Tipe kepemimpinan paternalistis (paternalistis leadership). Kepemimpinan inidicirikan oleh suatu pengaruh yang bersifat kebapakan dalam hubungan pemimpindan kelompok. Tujuannya adalah untuk melindungi dan untuk memberikan arahseperti halnya seorang bapak kepada anaknya.
6.Tipe kepemimpinan menurut bakat (indogenious leadership). Biasanya timbul darikelompok orang-orang yang informal di mana mungkin mereka berlatih denganadanya system kompetisi, sehingga bisa menimbulkan klik-klik dari kelompok yang bersangkutan dan biasanya akan muncul pemimpin yang mempunyai kelemahan diantara yang ada dalam kelempok tersebut menurut bidang keahliannya di mana ia ikur  berkecimpung.

Daniel Goleman, ahli di bidang EQ, melakukan penelitian tentang tipe-tipekepemimpinan dan menemukan ada 6 (enam) tipe kepemimpinan. Penelitian itumembuktikan pengaruh dari masing-masing tipe terhadap iklim kerja perusahaan,kelompok, divisi serta prestasi keuangan perusahaan. Namun hasil penelitian itu jugamenunjukkan, hasil kepemimpinan yang terbaik tidak dihasilkan dari satu macam tipe.Yang paling baik justru jika seorang pemimpin dapat mengkombinasikan beberapa tipetersebut secara fleksibel dalam suatu waktu tertentu dan yang sesuai dengan bisnis yang 

Senin, 11 November 2013

Pengertian Danau dan Jenisnya


Definisi Danau

Danau adalah sejumlah air (tawar atau asin) yang terakumulasi di suatu tempat yang cukup luas, yang dapat terjadi karena mencairnya gletser, aliran sungai, atau karena adanya mata air. Biasanya danau dapat dipakai sebagai sarana rekreasi, dan olahraga.
Danau adalah cekungan besar di permukaan bumi yang digenangi oleh air bisa tawar ataupun asin yang seluruh cekungan tersebut dikelilingi oleh daratan. Kebanyakan danau adalah air tawar dan juga banyak berada di belahan bumi utara pada ketinggian yang lebih atas.
Jenis-Jenis Danau

Jenis-Jenis Danau
Berdasarkan proses terbentuknya, danau dibedakan menjadi tujuh macam, yaitu sebagai berikut.:
a.       Danau Tektonik yaitu danau yang terjadi akibat adanya proses tektonik yang mengakibatkan dislokasi lapisan batuan, seperti lipatan, dan patahan. Pada bagian muka Bumi yang mengalami pemerosotan diisi oleh air. Contoh danau tektonik yang terdapat di Indonesia antara lain Danau Poso, Towuti, Singkarak, Tempe, dan Takengon.


b.      Danau Vulkanik yaitu jenis danau yang terletak pada bekas lubang kepundan (kawah) sebuah gunungapi, seperti Danau Kelimutu, Kerinci, Rinjani, Telaga Warna, dan Danau Batur.


c.    Danau Tekto-vulkanik merupakan jenis danau yang terbentuk dari gabungan proses tektonik dan vulkanik, misalnya Danau Toba.


d.    Danau Karst (Dolina) yaitu danau yang biasa dijumpai di wilayah berbatu gamping sebagai akibat pelarutan batu kapur yang membentuk cekungan-cekungan yang terisi air. Contoh danau di daerah Gunung Kidul , Yogyakarta.

e.     Danau Glasial yaitu jenis danau yang terbentuk akibat erosi oleh gletser. Jenis danau glasial banyak dijumpai di wilayah sekitar kawasan iklim kutub. Contoh danau glasial antara lain Danau Ontario, Danau Superior, Danau Mc. Kanzie, Danau Michigan, dan Danau St. Laurence di sekitar Amerika Serikat dan Kanada.


f.    Cirques yaitu danau yang airnya berasal dari pencairan es.Cirques banyak dijumpai di wilayah pegunungan tinggi yang sebagian tubuhnya tertutup massa es.

g.      Danau Buatan atau sering disebut Bendungan (Waduk).
Danau buatan adalah danau yang secara sengaja dibuat oleh manusia untuk memenuhi kebutuhan air pertanian, perikanan darat, air minum, dan lain sebagainya. Contoh : Waduk Jatiluhur di Jawa Barat.



Konsep Perangkat Lunak


Desain
Menurut E. S. Taylor Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau sistem yang direkayasa. Desain dapat didefinisikan sebagai proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya.
Tujuan desainer adalah untuk menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun. Proses dimana model dikembangkan, menggabungkan intuisi dan penilaian berdasarkan pengalaman dalam membangun entitas yang sama, serangkaian prinsip dan atau heuristik yang menuntun cara dimana model disusun, serangkaian kriteria yang memungkinkan penilaian terhadap kualitas dan terhadap suatu proses iterasi yang membawa kepada suatu representasi nilai akhir.

Desain Perangkat Lunak
Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan, maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik – desain, pembuatan kode dan pengujian yang diperlukan untuk membangun dan menguji perangkat lunak. Persyaratan perangkat lunak, yang dimanifestasi oleh data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan :
a.       desain data
b.      desain arsitektur
c.       desain interface
d.      desain prosedural

Metode desain
Desain digambarkan sebagai proses multi-langkah dimana representasi struktur data, struktur program, karakteristik interface dan detail prosedur disintesis dari persyaratan informasi. Menurut Freman Desain adalah sebuah aktivitas berkaitan dengan pembuatan keputusan mayor, sering bersifat Struktural. Desain juga memperhatikan abstraksi dari representasi informasi dan urutan pemrosesan, tetapi dengan tingkat detail yang berbeda. Desain membangun representasi program yang koheren serta direncanakan dengan baik, yang berkonsentrasi pada interrelasi dari bagian-bagian dari tingkat yang lebih tinggi dan operasi logis yang dilibatkan pada tingkat yang lebih rendah.
Desain merupakan informasi yang terkendali, metode desain perangkat lunakditarik dari pertimbanganyang masing-masing terdiri dari tiga domain model analisis. Domain data, fungsi dan perilaku yang berfungsisebagai panduan pembuatan desain.
Metode yang dibutuhkan untuk membuat masing-masing lapisan model desain adalah untuk memberikan suatu pendekatan sistematis bagi penarikan desain – cetak biru yang dari sana  perangkat lunak di produksi.
1.      Desain Data
Desain data adalah aktivitas pertama dari empat aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Pengaruh struktur data pada struktur programdan kompleksitas prosedural menyebabkan desain data berpengaruh penting terhadap kualitas perangkat lunak, konsep penyembunyian informasi dan abstraksi data memberi dasar pendekatan terhadap desain data.
Tanpa melihat teknik desain yang akan digunakan, data yang di desain dengan baikdapat membawa kepada struktur programdan modularitas yang lebih baik, serta mengurangikompleksitas prosedural.
Wasserman mengusulkan  Serangkaian prinsip yang dapat digunakan untuk menentukan dan mendesain data. Pada Kenyataannya desain data dimulai selama pembuatan model analis. Karena analisis persyaratan perangkat lunak dan desain seringkali overlap. Serangkaian prinsip untuk spesifikasi data :
a.       Prinsip analisis sistematik yang diaplikasikan pada fungsi dan perilaku seharusnya diaplikasikan juga pada data. Representasi dari objek data, hubungan, aliran data, dan isi juga harus dikembangkan dan dikaji, organisasi data alternatif harus dipertimbangkan dan pengaruh permodelan data pada desain perangkat lunak harus dievaluasi.
  1. Semua struktur data dan operasi yang akan dilakukan pada masing – masing struktur data harus diidentifikasi. Desain dari sebuah struktur data yang efisien harus mencakup operasi yang akan dilakukanpada struktur data.
  2. Kamus data harus dibangun dan digunakan untuk menentukan baik data maupun desain program. Algoritma yang harus memanfaatkan hubungan khusus dapat lebih mudah ditetapkan jika ada spesifikasi data yang menyerupai kamus.
  3. Keputusan desain data tingkat rendah harus ditunda sampai akhir proses desain. Proses penyaringan stepwise dapat digunakan untuk desain basis data, yaitu keseluruhan organisasi data dapat ditetapkan selama analisis persyaratan, disaring selama pengerjaan, desain pendahuluan, dan ditentukan secara detail selama pengerjaaan pendahuluan dan itersasi desain selanjutnya.
  4. Representrasi struktur data hanya boleh diketahui oleh modul-modul yang harus menggunakan secar langsung data yang diisikan didalam struktur tersebut. Konsep penyembunyian informasi dan konsep yang berkaitan mengenai perangkaian, memberikan wawasan yang penting mengenai kualitas desain perangkat lunak.
  5. Pustaka struktur data dan operasi yang berna yang dapat diaplikasikan pada struktur data tersebut harus dikembangkan. Struktur dan operasi data harusdi pandang sebagai sumber daya untuk desain perangkat lunak. Struktur data dapat didesain untuk dapat digunakan kembali. Tipe data abstrak dapat mengurangi baik spesifikasi maupun desain data.
  6. Desain perangkat lunak dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe-tipe data abstrak. Implementasi struktur data yang canggih sangat sulit dilakukanjika tidak ada alat untuk spesifikasi langsung terhadap struktur yang ada.

Prinsip- prinsip tersebut membentuk basis bagi pendekatan desain data yang dapat diintegrasikan ke dalam fase definisi dan pengembangan proses rekayasa perangkat lunak. Definisi yang jelas mengenai informasi sangatlah penting bagi keberhasilan pengembangan perangkat lunak.
2.      Desain Arsitektur
Sasaran utama desain arsitektur adalah untuk mengembangkan struktur program modular dan merepresentasikan hubungan kontrol antar modul. Desain arsitektur juga membentuk struktur program dan struktur data dengan menentukan interface yang memungkinkan data mengalir melalui program.
Langkah – langkah desain:
1.       Jadilah model sistem yang  fundamental
2.       Kaji dan saringlah diagram aliran data untuk perangkat lunak.
3.       Tentukan apakah DFD memiliki karakteristik aliran transaksi formasi dan transaksi.
4.       Isolasi pusat informasi dengan mengkhususkan batas aliran masuk dan keluar.
5.       Lakukan “pemfaktoran tingkat pertama.”
6.       Lakukan “pemfaktoran tingkat kedua.”
7.       Saringlah struktur protram iterasi pertama dengan  menggunakan heuristik desain.
3.      Desain Interface
Desain interface memfokuskan diri pada tiga area perhatian :
1.       Desain interface antara modul –modul perangkat lunak.
  1. Desain interface antara perangkat lunak dan prosedur dan konsumen informasi bukan yang lainnya.
3.       Desain interface seorang manusia (user) dan komputer.

4.       Desain procedural
Desain prosedural terjadi setelah data, desain arsitektur dan interface dibangun. Dalam dunia yang ideal, spesifikasi prosedural diperlukan untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa ibu, seperti bahasa inggris.  Desain prosedural harus menentukan detail desain prosedural tanpa ada ambiguitas.
Ciri – ciri program yang baik/ terstruktur :
1.      Dapat dijalankan dengan baik dan benar.
  1. Dapat dijalankan secara efektif dan efisien dengan tidak banyak menggunakan syntaks yang tidak perlu.
  2. Mudah di baca dan dipahami oleh orang lain maksud dan tujuan objek yang akan ditampilkan.
4.      Mudah diperbaiki jika terjadi kesalahan.
5.      Biaya pengujian yang dibutuhkan rendah.
6.      Memiliki dokumentasi yang baik.
7.      Biaya perawatan dan dokumentasi yang dibutuhkan rendah.
  1. Program hanya terdiri dari tiga struktur kontrol. Yaiut struktur urut, struktur seleksi, dan sturkutr repetisi atau reiterasi.

Prinsip Desain
Desain perangkat lunak berupa model dan proses. Proses desain adalah serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua aspek perangkat lunak yang dibangun. Model desain adalah ekivalen rencana arsitek untuk sebuah “rumah”, yang dimulai dengan menyajikan totalitas dari hal yang akan dibangun. Prinsip desain dasar memungkinkan perekayasa perangkat lunak untuk mengendalikan proses desain.
·      Proses desain tidak boleh menderita karena “tunnel vision”. Desainer yang baik harus memperhatikan pendekatan – pendekatan alternatif, menilai masing-masing pendekatan berdasarkan persyaratan masalah,
·      Desain harus dapat ditelusuri sampai model analisis.
·      Desain tidak boleh berulang. Sistem dibangun dengan menggunakan serangkain pola desain, beberapa diantaranya kemungkinan telah ditemukan sebelumnya.
·      Desain harus “meminimalkan kesenjangan intelektual” di antara perangkat lunak dan masalah yang ada di dunia nyata. Ini menyatakan bahwa struktur desain perangkat lunak harus mencerminkan struktur domain permasalahan.
·      Desain harus mengungkap keseragaman dan integrasi.desain seragam bila desain memperlihatkan bahwa satu orang mengembangkankeseluruhannya.
·      Desain harus terstruktur untuk mengakomodasi perubahan.
·      Desain harus terstruktur untuk berdegradasi dengan baik, bahkan pada saat data dan event-event menyimpang, atau menghadapi kondisi operasi. Program komputer yang telah dirancang dengan baik seharusnyatidak pernah “Meledak”
·      Desain bukanlah pengkodean, dan pengkodean bukanlah desain. Bahkan bila dibuat desain prosedural detail bagi komponen – komponen program.
·      Desain harus dinilai kualitasnya pada saat desain dibuat, bukan setelah jadi. Ada berbagai konsep desaindan pengukuran desain untuk membantu desainer menilai kualitas.
·      Desain harus dikaji untuk meminimalkan kesalahan- kesalahan konseptual (semantik). Kadang – kadang ada kecendrungan untuk memfokuskan pada hal-hal yang remehpada saat desain dikaji, sehingga hal yang lebih penting luput dari perhatian. Desainer harus memastikan bahwa elemen-elemen konseptual mayor dari desain (penghilangan, ambiguitas, inkonsistensi) telah ditekankan sebelum mengkhawatirkan sintaks model desain.
Konsep Desain
1.      Abstraksi
Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah.
Terdapat 3 macam bentuk abstraksi, yaitu :
·         Abstraksi prosedural.
Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas.
·         Abstraksi data.
Kumpulan data yang bernama yang menggambarkan obyek data.
·         Abstraksi kontrol.
Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detail-detail Internal

2.      Penyaringan
Penyaringan stepwise (dengan serangkaian langkah) adalah strategi desain top-down yang diusulkan oleh Wiklaus Wirth. Kajian dari konsep tersebut adalah “Pada setiap langkah (penyaringan), satu atau beberapa instruksi dari program yang diberikan didekomposisi ke dalam instruksi-instruksi yang lebih detail. Dekomposisi berurutan atau penyaringan spesifikasi berhenti bila semua instruksi diekspresikan dalam bentuk bahasa pemrograman atau komputer yang mendasar. Jika tugas-tugas disaring, maka data harus disaring juga, didekomposisi atau distruktur, dan adalah wajar untuk menyaring program dan spesifikasi data secara paralel” . Abstraksi dan penyaringan adalah konsep kompementer. Kedua konsep tersebut membantu desainer dalam menciptakan suatu model desain lengkap jika desain berkembang.

3.      Modularitas
Modularitas merupakan atribut tunggal dari perangkat lunak yang memungkinkan sebuah program untuk dikelola secara intelektual. Meyer menyebutkan 5 kriteria yang memungkinkan kita untuk mengevaluasi suatu metode desain dengan merujuk pada kemampuannya untuk menentukan sistem modular yang efektif.
a. Dekomposisi modular.
b. Komposabilitas modular.
c. Kemampuan pemahaman modular.
d. Kontinuitas modular.
e. Proteksi modular.
4.      Arsitektur Perangkat Lunak
Arsitektur perangkat lunak mencakup “struktur keseluruhan perangkat lunak dan cara dimana struktur memberikan integrasi konseptual bagi suatu sistem”. Shaw dan Garlan menjelaskan sekumpulan properti yang seharusnya ditetapkan sebagai bagian dari desain arsitektural :
a. Properti struktural. Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi satu dengan yang lain.
b. Properti ekstra-fungsional. Menekankan pada bagaimana arsitektur desain memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain.
c. Keluarga dari sistem yang berhubungan. Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut.
5.      Hirarki Kontrol
Hirarki kontrol, disebut juga struktur program merepresentasikan organisasi komponen program serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi.

6.      Partisi Struktural
Struktur progam harus dipartisi baik secara horizontal maupun vertikal. Partisi horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap fungsi program mayor. Keuntungannya :
a. menghasilkan perangkat lunak yang lebih mudah diuji.
b. Membawa kepada perangkat lunak yang lebih mudah dipelihara.
c. Menghasilkan penyebaran efek samping yang lebih sedikit.
d. Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas. Partisi vertical menyatakan bahwa kontrol dan kerja harus didistribusikan secara top-down dalam arsitektur program.
7.      Struktur Data
Struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual.

8.      Prosedur Perangkat Lunak
Prosedur perangkat lunak berfokus pada detail-detail pemrosesan dari masing-masing modul secara individual. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup urutan event, poin-poin keputusan nyata, operasi repetitif, dan organisasi struktur data.

9.      Penyembunyian Informasi
Prinsip penyembunyian informasi menyatakan bahwa bahwa modul ditandai dengan keputusan desain tersembunyi dari semua desain lain.
Model Desain
Prinsip dan konsep desain disini dimaksudkan membangun sebuah fondasi untuk pembuatan model desain yang mencakup representasi data, arsitektur, interface, dan prosedural. Seperti model analisis sebelumnya. Pada model desain, masing-masing representasi desain diikatkan dengan yang lainnya, dan semua dapat ditelusuri balik ke persyaratan perangkat lunak.
Banyak pemrogram terus menerus mendesain secara implisit, dengan melakukan desain prosedural pada saat dikodekan. Hal itu sama dengan mengambil desain piramid dan mendirikannya pada titiknya, hasil desain yang sangat tidak stabil. Perubahan yang paling kecil dapat menyebabkan piaramid tersebut (dan program) tumbang

Desain Modular Afektif

1.      Independensi fungsional
Merupakan hasil pertumbuhan langsung dari modularitas dan konsep abstraksi dan penyembunyian informasi. Independensi fungsional dicapai dengan mengembangkan modul dengan fungsi “single-minded” dan suatu “aversi” ke interaksi eksesif dengan modul yang lain.
2.      Kohesi
Kohesi adalah suatu ekstensi natural dari konsep penyembunyian informasi. Modul kohesi melakukan suatu tugas tunggal pada suatu prosedur perangkat lunak yang memerlukan sedikit interaksi dengan prosedur yang sedang dilakukan di bagian lain dari suatu program.
3.      Perangkaian
Perangkaian adalah pengukuran interkoneksi diantara modul-modul pada sebuah struktur progam. Perangkaian tergantung pada kompleksitas interface diantara modul-modul, titik dimana entri atau referensi dibuat untuk sebuah modul dan data yang dilewatkan pada interface tersebut.

Minggu, 10 November 2013

Konsep memory cache



Pengertian Memori Cache
Cache beasal dari kata cash. Dari istilah tersebut cache adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut cache memori adalah tempat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat.Cache memori ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.
Level Memori Cache
Cache memori ada tiga level yaitu L1,L2 dan L3. Cache memori level 1 (L1) adalah cache memori yang terletak dalam prosesor (cache internal). Cache ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb.Cache level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun cache L2 ini memiliki kecepatan yang lebih rendah dari cache L1. Cache L2 terletak terpisah dengan prosesor atau disebut dengan cache eksternal. Sedangkan cache level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari cache L2 dari masing-masing inti prosesor.
Cara Kerja Memori Cache
Jika prosesor membutuhkan suatu data, pertama-tama ia akan mencarinya pada cache. Jika data ditemukan, prosesor akan langsung membacanya dengan delay yang sangat kecil. Tetapi jika data yang dicari tidak ditemukan,prosesor akan mencarinya pada RAM yang kecepatannya lebih rendah. Pada umumnya, cache dapat menyediakan data yang dibutuhkan oleh prosesor sehingga pengaruh kerja RAM yang lambat dapat dikurangi. Dengan cara ini maka memory bandwidth akan naik dan kerja prosesor menjadi lebih efisien. Selain itu kapasitas memori cache yang semakin besar juga akan meningkatkan kecepatan kerja komputer secara keseluruhan.
Dua jenis cache yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi.
Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis SDRAM yang berkecepatan tinggi. Sedangkan implementasi disk cachingmenggunakan sebagian dari memori komputer.
[sunting]Stuktur sistem cache
Memori utama terdiri dari sampai dengan 2n word beralamat, dengan masing-masing word mempunyai n-bit alamat yang unik. Untuk keperluan pemetaan, memori ini dinggap terdiri dari sejumlah blok yang mempunyai panjang K word masing-masing bloknya. Dengan demikian, ada M = 2n/K blok. Cache terdiri dari C buah baris yang masing-masing mengandung K word, dan banyaknya baris jauh lebih sedikit dibandingkan dengan banyaknya blok memori utama (C << M). Di setiap saat, beberapa subset blok memori berada pada baris dalam cache. jika sebuah word di dalam blok memori dibaca, blok itu ditransfer ke salah satu baris cache. karena terdapat lebih banyak blok bila dibanding dengan baris, maka setiap baris tidak dapat menjadi unik dan permanen untuk dipersempahkan ke blok tertentu mana yang disimpan. Tag biasanya merupakan bagian dari alamat memori utama.
[sunting]Elemen rancangan cache
Elemen-elemen penting dari rancangan memory cache adalah sebagai berikut:
§  Ukuran cache, disesuaikan dengan kebutuhan untuk membantu kerja memori. Semakin besar ukuran cache semakin lambat karena semakin banyak jumlah gerbang dalam pengalamatan cache.
§  Fungsi Pemetaan (Mapping), terdiri dari Pemetaan Langsung, Asosiatif, Asosiatif Set.Pemetaan langsung merupakan teknik yang paling sederhana, yaitu memetakkan masing-masing blok memori utama hanya ke sebuah saluran cache saja. Pemetaan asosiatif dapat mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache.Hal ini menurut artikel dari Yulisdin Mukhlis, ST., MT
§  Algoritma Penggantian, terdiri dari Least Recently Used (LRU), First in First Out (FIFO), Least Frequently Used (LFU), Acak. Algoritma penggantian digunakan untuk menentukan blok mana yang harus dikeluarkan dari cache untuk menyiapkan tempat bagi blok baru. Ada 2 metode algoritma penggantian yaitu Write-through dan Write-back.Write-through adalah Cache dan memori utama diupdate secara bersamaan waktunya. Sedangkan Write-back melakukan update data di memori utama hanya pada saat word memori telah dimodifikasi dari cache.
§  Ukuran blok, blok-blok yang berukuran Iebih besar mengurangi jumlah blok yang menempati cache. Setiap pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih setelah blok itu diambil. Dengan meningkatnya ukuran blok, maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta,sehingga menjadi lebih kecil kemungkinannya untuk di perlukan dalam waktu dekat.(Dikutip dari artilek milik Yulisdin "Mukhlis, ST., MT")
§  Line size, Jumlah cache, Satu atau dua dua tingkat, kesatuan atau terpisah

§  Cache hit, jika data yang diminta oleh unit yang lebih tinggi dan ada dalam cache disebut "hit". Permintaan dapat dilayani dengan cepat. Maksud urutan unit dari rendah hingga tinggi yaitu: Streamer - Hardisk Memori - Second Level - First level - CPU cache.
§  Cache miss, bila data yang diminta tidak ada dalam cache, harus diambil dari unit dibawahnya yang cukup memakan waktu. Ini disebut miss (gagal)
§  Burst mode, dalam modus cepat ini cache mengambil banyak data sekaligus dari unit dibawahnya. Ia mengambil lebih dari yang dibutuhkan dengan asumsi, data yang diminta berikutnya letaknya berdekatan.
§  LRU (Least Recently Used) adalah algoritma penggantian cache.
§  COASTCache on the stick adalah bentuk khusus L2, yang dapat diganti-ganti seperti RAM dan ditempatkan pada modul.
§  DRAM, memori dinamik (''Dynamic Random Access Memory) adalah bentuk yang paling umum. DRAM hanya menggunakan sebuah kapasitor untuk menyimpan, sehingga kecil dan murah untuk kapasitas besar. Kekurangannya: kecepatannya tidak begitu tinggi.
§  SRAM, memori statik (Static RAM) ini menggunakan sakelar elektronik (flip-flop) untuk menyimpan. secara teknis flip-flop pada RAM lebih rumit dari kapasitor pada DRAM. Karena lebih cepat, SRAM biasanya digunakan untuk cache L1 atau L2.
§  SDRAM, memori dinamik tersinkronisasi (Synchronous DRAM) merupakan perkembangan lebih lanjut dari DRAM. Akses pada memori disinkronkan dengan frekuensi sistim prosesorsehingga menghemat waktu. Pada motherboard modern, SDRAM berfungsi sebagai pengganti langsung DRAM.
§  First level cache (L1), ini tingkat cache teratas dalam hirarki, dengan kapasitas memori terkecil, termahal dan tercepat.
§  Second level cache (L2), cache level dua ini memiliki kapasitas lebih besar dari L1, tetapi lebih lambat dan murah. Cache L2 masih lebih cepat dibandingkan dengan RAM.
§  Write back (WB), cache digunakan tidak hanya saat membaca, tetapi juga dalam proses menulis.
§  Write through (WT), mementingkan keamanan: cache hanya digunakan saat membaca, sedangkan untuk menulis ditunggu hingga memori yang dituju selesai menulis.