Minggu, 25 Agustus 2013

Apa itu SSL ?

Pengertian Secures Socket Layer (SSL)
Secure Sockets Layer atau yang disingkat SSL adalah sebuah protokol keamanan data yang digunakan untuk menjaga pengiriman data antara web server dan pengguna situs web tersebut. SSL umumnya sudah terinstall didalam mayoritas browser web yang ada (IE, Netscape, Firefox, dll), sehingga pengguna situs web dapat mengidentifikasi tingkat keamanan situs web tersebut yang menggunakan protokol keamanan SSL ini.
Browser web secara otomatis akan mencek apakah sertifikat SSL dan identitas situs web valid dan situs tersebut terdaftar pada otoritas sertifikasi (CA) SSL (cth. Verisign). Dengan demikian, SSL ini menjadi sangat penting terutama untuk situs web yang menjalankan transaksi online.
Koneksi SSL akan memproteksi informasi vital dengan meng-enkripsi informasi yang dikirim dan diterima antara pc pengguna situs dan web server, sehingga informasi yang berjalan tidak mungkin dapat diambil ditengah jalan dan dibaca isinya. Hal ini berarti pengguna tidak perlu ragu untuk mengirim informasi vital seperti nomor kartu kredit kepada situs web yang telah memasang SSL tersertifikat ini.

Cara Kerja Secures Socket Layer (SSL)
Cara kerja Sertifikat SSL seperti gambar dibawah ini
SSL
Seorang pelanggan masuk kedalam situs anda dan melakukan akses ke URL yang terproteksi (ditandai dengan awalan https atau dengan munculnya pesan dari browser).
Server anda akan memberitahukan secara otomatis kepada pelanggan tersebut mengenai sertifikat digital situs anda yang menyatakan bahwa situs anda telah tervalidasi sebagai situs yang menggunakan SSL.
Browser pelanggan akan mengacak “session key” dengan “public key” situs anda sehingga hanya situs anda yang akan dapat membaca semua transaksi yang terjadi antara browser pelanggan dengan situs anda.
Hal diatas semua terjadi dalam hitungan detik dan tidak memerlukan aktifitas apapun dari pelanggan.

Perbedaan HTTP dan HTTPS

Berikut ini akan dijelaskan perbedaan antara HTTP (Hyper Text Transfer Protocol) dan HTTPS (Hyper Text Transfer Protocol Secure), langsung saja:

HTTP adalah dasar komunikasi data untuk World Wide Web (WWW). Setiap kali kita membuka website / halaman web kita akan menggunakan protokol ini.
Sisi client meminta sisi server untuk membuka komunikasi pada port 80, port terbuka sisi server 80 dan di sisi client port acak terbuka.
Berikut ini adalah gambar ketika aku membuka http://www.kaskus.us dan melihat port yang terbuka menggunakan netstat-an.
Seperti yang bisa kita lihat dari gambar, komputer klien membuka port lokal acak dan port terbuka 80 pada sisi server.
Apakah HTTP (Hyper Text Transfer Protocol) Aman?
Untuk menjawab pertanyaan ini, mari kita lihat eksperimen di bawah ini.
Dalam percobaan ini, ada 2 orang dalam satu jaringan nirkabel dan BadGuy NiceGuy. NiceGuy mencoba untuk membuka http://friendster.com kemudian login ke dalamnya. Di tempat berbeda, BadGuy dalam jaringan nirkabel yang sama dengan NiceGuy seperti yang ditunjukkan pada gambar di bawah:
BadGuy menggunakan Wireshark untuk menangkap data paket semua ditransmisikan ke / dari titik akses. Dalam hal ini BadGuy hanya mengumpulkan dan melihat data paket yang dikirim oleh orang lain.
Berikut adalah gambar ketika NiceGuy memasukkan username (email) dan password di friendster.com
Dan kemudian data berhasil ditangkap oleh BadGuy menggunakan Wireshark dengan Username:niceguy@yahuu.com dan password: heremypass.
Kesimpulan HTTP
Data paket yang dikirim menggunakan HTTP tidak terenkripsi, siapapun dapat melihat data dalam teks biasa seperti BadGuy lakukan. Itulah mengapa tidak menggunakan HTTP untuk perbankan atau transaksi di internet, dan juga itu tidak dianjurkan jika Anda membuka website halaman login yang menggunakan HTTP pada jaringan publik seperti area hotspot nirkabel.
HTTPS adalah kombinasi dari Hyper Text Transfer Protocol dan Secure Socket Layer protokol (SSL) / Transport Layer Security (TLS) untuk menyediakan komunikasi terenkripsi antara web server dan klien. Biasanya HTTPS digunakan untuk internet banking, transaksi pembayaran, halaman login, dll
Protokol ini menggunakan port 443 untuk komunikasi. Website yang sudah menggunakan protokol ini GMail.com, dan juga situs-situs lain seperti PayPal, Amazon, dll.
Mari kita lihat hubungan antara komputer kita dan web server ketika kita membuat koneksi menggunakan HTTPS menggunakan netstat-an.
Seperti yang bisa kita lihat dari gambar, komputer klien membuka port lokal acak dan port terbuka 443 pada sisi server.
Apakah HTTPS (Hyper Text Transfer Protocol Secure) Aman?
Untuk menjawab pertanyaan ini, mari kita lihat eksperimen di bawah ini. Dalam percobaan ini, ada 2 orang dalam satu jaringan nirkabel dan BadGuy NiceGuy.
NiceGuy mencoba untuk membuka http://gmail.com kemudian login ke dalamnya. Di tempat berbeda, BadGuy dalam jaringan nirkabel yang sama dengan NiceGuy seperti yang ditunjukkan pada gambar di bawah:
Ketika BadGuy mencoba untuk menangkap data paket semua untuk / dari titik akses, maka akan berbeda bila menggunakan koneksi HTTPS untuk NiceGuy.
Untuk keterangan lebih jelas, mari kita lihat gambar di bawah ini ketika Input NiceGuy username dan password pada halaman login Gmail.
Seperti yang dapat Anda lihat dalam gambar di atas, itu menggunakan https untuk koneksi antara klien dan server web. Kemudian kita akan melihat apa yang BadGuy lakukan setelah NiceGuy menggunakan HTTPS untuk koneksi nya.
BadGuy menyukai tools seperti Wireshark, jadi dia mencoba lagi untuk menangkap data dan berharap ada sesuatu yang menarik di sana.
BadGuy tidak menemukan data polos, setiap data kirim ke / mengirim dari server dienkripsi. Gambar di atas adalah informasi login (mungkin) data yang telah ditangkap oleh BadGuy, tapi saya pikir BadGuy tidak dapat mematahkan data dienkripsi hanya dalam beberapa hari / bulan / tahun atau mungkin kita bisa disebut “tidak mungkin” (kita masih tidak tahu kapan waktu yang mungkin untuk masuk ke dalamnya).
Kesimpulan HTTPS
Data paket dikirim menggunakan HTTPS dienkripsi, orang tidak dapat melihat data paket dalam jaringan publik. Itu sebabnya HTTPS biasanya digunakan untuk perbankan atau transaksi di internet, dan halaman juga login atau halaman lain perlu untuk mengenkripsi data.
Semoga memperjelas kita semua :)

Minggu, 28 Juli 2013

Mengapa SUHOSIN Penting Bagi Pengamanan Situs Kita

SUHOSIN adalah bagian dari projek Hardened PHP, yaitu projek untuk membuat PHP lebih aman. Suhosin berupa extension PHP yang akan mengecek berbagai hal seperti input yang mencurigakan (untuk mendeteksi SQL injection misalnya), mencegah terjadinya bug pada Zend engine, membuat setting default PHP menjadi lebih secure (misalnya mematikan fitur remote include by default), dsb. Keterangan lebih detil mengenai fitur dan cara penggunaan Suhosin bisa dibaca di homepage Suhosin.

Sebenarnya butuh tidaknya kita pada Suhosin sangat tergantung dengan bagaimana penggunaan PHP pada situs kita. Jika kita menggunakan PHP hanya untuk server kita sendiri dan didalamnya hanya terdiri dari script dan aplikasi kita sendir, maka kita tidak perlu ekstensi Suhosin.

Namun jika tidak, maka kita sangat membutuhkan Suhosin demi keamanan situs kita, karena sebagian besar fitur Suhosin itu dimaksudkan untuk melindungi server terhadap teknik pemrograman rentan. Perlu diingat, PHP adalah bahasa pemrograman yang sangat kompleks dengan banyak jebakan yang sering terlupakan selama pengembangan aplikasi. Bahkan programmer PHP yang sudah pakar sekalipun sering kelupaan menulis kode yang tidak aman dari waktu ke waktu, karena mereka banyak yang tidak tahu tentang perangkap PHP. Oleh karena itu selalu merupakan ide yang baik untuk memiliki Suhosin sebagai jaring pengaman Anda.

Suhosin dilengkapi dengan fitur Perlindungan Zend Engine yang melindungi server anda dari bufferoverflows yang mungkin terjadi dan kerentanan terkait dalam Zend Engine. Sejarah telah menunjukkan bahwa beberapa bug ini selalu ada di versi PHP sebelumnya.

Demi keamanan yang lebih baik, di server hosting biasanya instalasi PHP diperlengkapi dengan Suhosin.
PHP diperlengkapi Suhosin bukanlah "silver bullet" atau solusi menyeluruh yang sudah sempurna. Faktor terpenting menjaga keamanan tetaplah berada di tangan Anda sebagai programer/developer untuk tetap melakukan programming secara secure dan memasang aplikasi/library PHP yang up to date.
mungkin ada yang nanya apa proteksi apa aja yg di lakukan SUHOSIN ini, antara lainnya ini:
•    cookie enkripsi
•    session ekripsi
•    mencegah session hijack
•    bisa memfilter inputan dari form hanya ASCII saja
•    dapat membatasi jumlah variabel (post, get) yang terima system
•    dapat membatasi jumlah upload dalam sekali request
•    dan masih banyak lagi (selangkapnya di : http://www.hardened-php.net/suhosin/a_feature_list.html)

Senin, 01 April 2013

Proteksi Folder agar tidak bisa Open, Delete dan Rename dengan CMD

Menyimpan file/dokumen pribadi di komputer yang sering dipakai banyak orang memang sangat riskan, apalagi jika data/dukument tersebut adalah data-data penting. banyak alternatif untuk proteksi folder dengan menggunakan software, kali ini kita coba untuk memproteksi folder dengan bermodalkan script cmd yang nanti kita akan menjadikannya file BAT
skenarionya dengan menciptakan sebuah folder misalkan “loker”
 ============================================================
CHO OFF
title Folder loker
if EXIST “loker$” goto UNLOCK
if NOT EXIST loker goto MDLOCKER
:CONFIRM
PERINTAH dengan opsi pilihan
:LOCK
PERINTAH untuk mengunci folder
:UNLOCK
PERINTAH unlock folder
:FAIL
PERINTAH jika eksekusi gagal
:MDLOCKER
PERINTAH untuk membuat folder loker
:INFO
Menampilkan info
:ULANG
PERINTAH mengulang eksekusi jika kondisi tidak terpenuhi
:End
 ============================================================
Skenarionya :
terletak pada
if EXIST “loker$” goto UNLOCK
if NOT EXIST loker goto MDLOCKER

yang artinya jika ada folder dengan nama “loker$” makan akan diarahkan ke variable  UNLOCK tetapi jika tidak ada akan akan menuju ka variabel MDLOCKER

pada variabel :LOCK  kita masukan perintah ============================================================
ren loker “loker$”
cacls loker$ /e /c /d %username%

============================================================
yang artinya kita akan merename folder loker menjadi folder loker$ dan kemudian mengubah ownership (kepemilikan) folder loker$

pada variabel:UNLOCK kita masukan perintah untuk mengembalikan keadaan pada variabel :LOCK
============================================================
cacls loker$ /e /c /g %username%:f
ren “loker$” loker
============================================================
dan kita bisa sisipkan parameter untuk memasukan password sebelum baris script di atas, maka menjadi:
set/p “pass=>”
if NOT %pass%== 123456 goto FAIL

Berikut contoh script lengkapnya, copas di notepad >save as type dengan ekstensi .BAT
ECHO OFF
cls
title Folder loker
if EXIST "loker$" goto UNLOCK
if NOT EXIST loker goto MDLOCKER
:CONFIRM
echo *******************************************
echo * MASUKIN INPUT KETIK "Yes" ATAU "No"     *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo = Jenengan yakin mau ngunci folder loker(Yes/No?)=
set/p "cho=>"
if %cho%==Yes goto LOCK
if %cho%==yes goto LOCK
if %cho%==YES goto ULANG
if %cho%==No goto INFO
if %cho%==no goto INFO
if %cho%==NO goto ULANG
cls
echo *******************************************
echo *          SALAH MASUKIN INPUT            *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo >>>>       Pilihan Jenengan salah.     <<<<<<<
pause
goto CONFIRM
:LOCK
ren loker "loker$"
cacls loker$ /e /c /d %username%
cls
echo *******************************************
echo *         SUKSES MENGUNCI FOLDER          *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo   Folder loker Jenengan telah dikunci
pause
goto INFO
:UNLOCK
cls
echo *******************************************
echo * UMPETIN FOLDER ENTE DARI TANGAN JAHIL   *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo == masukin pasword ente tuk kunci folder ==
set/p "pass=>"
if NOT %pass%== 123456 goto FAIL
cacls loker$ /e /c /g %username%:f
ren "loker$" loker
cls
echo *******************************************
echo * HILANGIN PROTEKSI FOLDER UDAH KELAR     *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo ======Folder loker udah tidak dikunci============
pause
goto INFO
:FAIL
cls
echo *******************************************
echo *    KESALAHAN JENENGAN MASUKIN PASSWORD   *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo             pasword jenengan salah
pause
goto END
:MDLOCKER
md loker
echo loker created successfully
goto INFO
:INFO
cls
echo *******************************************
echo *     Locker sederhane ini dibuat         *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
pause
goto end
:ULANG
cls
echo *******************************************
echo *         CAPS LOCK JENENGAN NYALA        *
echo *     lukmanmultimedia@gmail.com          *
echo *-----------------------------------------*
echo *        http://lukman.web.id/            *
echo *          copyright @2013                *
echo *                                         *
echo *******************************************
echo    MATIIN CAPS LOCK TRUS COBA LAGI
pause
cls
goto CONFIRM
:End

Berikut screen image ketika program dijalankan:









Jawab Yes untuk mengunci Folder loker.









Muncul pesan: "Folder loker Jenengan telah dikunci"
Dengan demikian folder Anda telah terkunci tidak bisa open, delete atau rename.
Ketika open folder loker maka akan muncul message box berikut:











Dan ketika coba delete/rename folder loker maka  muncul message box berikut:













Ketika Anda klik "Try Again" tidak akan bisa delete/rename, Anda hanya bisa memilih "Cancel".
Untuk membuka folder loker menjadi normal kembali cukup jalankan file kunci.bat lalu isi password: 123456
Selamat Mencoba !

Autentifikasi User dengan Dreamweaver

Apa itu Autentikasi ?
Autentikasi adalah proses dalam rangka validasi user pada saat memasuki sistem, nama dan password dari user di cek melalui proses yang mengecek langsung ke daftar mereka yang diberikan hak untuk memasuki sistem tersebut. Autorisasi ini di set up oleh administrator, webmaster atau pemilik situs (pemegang hak tertinggi atau mereka yang ditunjuk di sistem tersebut. Untuk proses ini masing-masing user akan di cek dari data yang diberikannya seperti nama, password serta hal-hal lainnya yang tidak tertutup kemungkinannya seperti jam penggunaan, lokasi yang diperbolehkan.

Mekanisme
  • User memasukan username beserta password di form login
  • Sistem akan mengecek apakah username dan password ada di database
  • Apabila username dan password cocok sesuai dengan yang ada di database maka user tersebut akan di arahkan ke halaman yang dimaksud dan sebaliknya apabila tidak maka user akan di arahkan ke halaman pendaftaran user
Pertama kita buat database user di mysql atau cara gampangnya di Phpmyadmin
============================================================
CREATE TABLE USER ( username varchar(15),
password varchar(15),
PRIMARY KEY (username)
)

Jangan lupa buat koneksi d
ari database ke PHP $hostname_conection = "localhost"; $database_conection = "user"; $username_conection = "root"; $password_conection = "";
$conection = mysql_pconnect($hostname_conection, $username_conection, $password_conection) or trigger_error(mysql_error(),E_USER_ERROR);
?>
============================================================  
Pada langkah pembuatan database dan pembuatan koneksi anda bisa menggunakan phpmyadmin dan dreamweaver. Setelah pembuatan database beres, pembuatan koneksi juga dianggap selesai maka saatnya pembuatan form login, halaman yang di tuju misal halaman admin dengan logout, dan membuat restrict untuk user yang nakal dengan dreamweaver. Membuat form login masuk ke editor author dreamweaver
Sebelum membuat form login buatlah dua halaman misal login.php dan admin.php Setelah dua halaman terbentuk kemudian buka halaman login.php

pilih insert > form > form



Jangan lupa untuk actionnya mengarah ke halaman admin.php (karena halaman ini yang nantinya di tuju apabila username dan password dimasukan secara benar)
Kemudian buatlah table dengan jumlah baris 3 dan kolom 2 yang nantinya digunakan untuk meletakan textfield username, texfield password dan button submit yitu dengan cara pilih insert > table (ctrl+alt+t)
Temudian isilah table table tersebut dengan texfied username, textfield password dan button submit
    • Setelah form login jadi tinggal bagaimana caranya supaya form login itu dapat berfungsi artinya ketika tombol submit di klik kata yang di texfiled username & password dikirim ke database unruk di di autentifikasi, apabila sama maka user tersebut legal... atau dengan kata lain user tersebut dapat masuk ke halaman admin.php atau sebaliknya kalu berbeda maka user tersebut akan dilempar ke halaman login.php kembali untuk mengisi username dan password sampai mengisi dengan benar
    • pilih insert > aplication object > user authentication > log in user

      • Isikan parameter2 mulai dari form login yang tadi di buat, kemudian nama koneksinya
      • sedangkan untuk parameter yang lain adalah apabila username dan password cocok maka akan diarahkan ke halaman admin.php dan apabila tidak cocok maka akan mengarah kembali ke halaman login.php (lihat gambar)
      Untuk membuat logout, maka ketika login sukses di halaman admin.php, di halaman admin.php di beri perintah untuk logout tentunya, langkahnya hampir sama dengan pembuatan login user di halaman login.php
      • Masuk ke halaman admin.php yang telah dibuat diatas
      • Pilih insert > aplication object> user authentication > log out user
        • terlihat pada gambar diatas ketika link log out di klik maka akan mengarah ke halaman admin.php
        Pada tahap ini sebenarnya sudah selesai, tetapi bagaimana kalau ada user yang tau lokasi admin.php dan masuk langsung tanpa melalui halaman login.php padahala biasanya halaman-halaman yang membutuhkan autentifikasi adalah halaman yang penting dan tidak semua orang diijinkan untuk mengaksesnya, makanya diperlukan teknik restrict, agar user-user nakal tidak akan bisa masuk ke halaman yang terlarang sebelum mereka menjadi legal user, dalam hal ini adalah halaman admin.php, dan ternyata dreamweaverpun menyediakan fitur ini dan langkahnya cukup mudah
        • masih di halaman admin.php
        • Pilih insert > aplication object> user authentication >restrict access to page
        • isikan parameter berdasakan username dan password jangan lupa arahkan ke halaman login.php
        Mudah mudahan bermanfaat, Selamat Mencoba !

        Rabu, 27 Maret 2013

        Virtual File System

        Sistem operasi modern harus mampu mengimplementasikan berbagai sistem berkas dengan tipe yang berbeda dalam waktu yang bersamaan. Salah satu teknik yang digunakan sebagai solusinya adalah dengan menggunakan virtual file system (VFS). VFS saat ini banyak digunakan oleh berbagai sistem operasi. Ide dari VFS adalah meletakkan informasi di kernel untuk merepresentasikan keseluruhan tipe sistem berkas, dan juga terdapat sebuah fungsi untuk setiap operasi yang dimiliki sistem berkas. Sehingga, untuk setiap system call seperti fungsi read(), write(), open(), dan lainnya, kernel akan mensubstitusikannya menjadi actual function yang dimiliki oleh setiap sitem berkas dengan berbagai tipe.
        VFS menggunakan konsep object oriented dalam mengimplementasikan sistem berkas. Di dalam VFS terdapat sebuah berkas yang merepresentasikan seluruh tipe sistem berkas yang ada, berkas ini dinamakan common file model. Berkas inilah yang menggunakan konsep object oriented, yang di dalamnya terdapat struktur data dan method yang diimplementasikan.
        Terdapat empat objek di dalam common file model, diantaranya :
        1. Superblock object Objek ini menyimpan informasi tentang mounted file system atau sistem berkas secara keseluruhan.
        2. Inode object Objek ini menyimpan informasi umum tentang file tertentu (individual file).
        3. File object Objek ini menyimpan informasi tentang file yang sedang dibuka.
        4. Dentry object Objek ini menyimpan informasi tentang link-link dari sebuah entry directory file.

        Struktur data dan method yang diimplementasikan, digunakan untuk menyembunyikan implementasi detail dari actual function pada sistem berkas dengan system call yang mengaksesnya. Oleh karena itu, dalam mengimplementasikan sistem berkas, terdapat tiga layer utama, seperti pada Gambar 16.5, “Virtual File System Layer.
        Gambar 16.5. Virtual File System Layer
        Virtual File System Layer

        Lapisan yang pertama adalah file system interface. Contohnya adalah beberapa system call seperti read(), write(), open() dan lainnya. System call ini tidak berhubungan langsung dengan sistem, namun terhubung melalui sebuah lapisan abstrak yaitu virtual file system.
        Lapisan yang Kedua adalah VFS Interface. Virtual file system memiliki dua fungsi penting, yaitu:
        1. Memisahkan operasi-operasi file system generic dari implementasi detailnya, dengan cara mendefinisikan virtual file system interface.
        2. Virtual file system interface didasarkan pada struktur representasi berkas yang disebut vnode, yang memiliki numerical designator yang unik untuk setiap network file.
        Lapisan yang ketiga adalah sistem berkas dengan berbagai tipe. Secara umum, terdapat tiga macam tipe sistem berkas, yaitu:
        1. Disk-based file system Sistem berkas ini mengatur ruang memori yang tersedia di dalam partisi disk lokal. Misalnya, Ext2 (Second Extended file system), Ext3 (Third Extended file system), dan Reiser file system yang tedapat di Linux.
        2. Network file system Sistem berkas ini terdapat di network, misalnya NFS.
        3. Special file system Sistem berkas ini tidak terdapat di disk space, baik lokal maupun network, misalnya /proc file system.

        Kamis, 21 Maret 2013

        Operasi Berkas


        2Sebuah berkas adalah jenis data abstrak. Untuk mendefinisikan berkas secara tepat, kita perlu melihat operasi yang dapat dilakukan pada berkas tersebut. Sistem operasi menyediakan system calls untuk membuat, membaca, menulis, mencari, menghapus, dan sebagainya. Berikut dapat kita lihat apa yang harus dilakukan sistem operasi pada keenam operasi dasar pada berkas.
        •    Membuat sebuah berkas: Ada dua cara dalam membuat berkas. Pertama, tempat baru di dalam sistem berkas harus di alokasikan untuk berkas yang akan dibuat. Kedua, sebuah direktori harus mempersiapkan tempat untuk berkas baru, kemudian direktori tersebut akan mencatat nama berkas dan lokasinya pada sistem berkas.
        •    Menulis pada sebuah berkas: Untuk menulis pada berkas, kita menggunakan system call beserta nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada berkas.  Ketika diberi nama berkas, sistem mencari ke direktori untuk mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk tulis pada berkas dimana penulisan berikut akan ditempatkan. Penunjuk tulis harus diperbaharui setiap terjadi penulisan pada berkas.
        •    Membaca sebuah berkas: Untuk dapat membaca berkas, kita menggunakan system call beserta nama berkas dan di blok memori mana berkas berikutnya diletakkan. Sama seperti menulis, direktori mencari berkas yang akan dibaca, dan sistem menyimpan penunjuk baca pada berkas dimana pembacaan berikutnya akan terjadi. Ketika pembacaan dimulai, penunjuk baca harus diperbaharui.Sehingga secara umum, suatu berkas ketika sedang dibaca atau ditulis, kebanyakan sistem hanya mempunyai satu penunjuk, baca dan tulis menggunakan penunjuk yang sama, hal ini menghemat tempat dan mengurangi kompleksitas sistem.
        •    Menempatkan kembali sebuah berkas: Direktori yang bertugas untuk mencari berkas yang bersesuaian, dan mengembalikan lokasi berkas pada saat itu. Menempatkan berkas tidak perlu melibatkan proses I/O. Operasi sering disebut pencarian berkas.
        •    Menghapus sebuah berkas: Untuk menghapus berkas kita perlu mencari berkas tersebut  di  dalam  direktori.  Setelah  ditemukan  kita  membebaskan  tempat  yang dipakai   berkas   tersebut   (sehingga   dapat   digunakkan   oleh   berkas   lain)   dan menghapus tempatnya di direktori.
        •    Memendekkan berkas: Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas tetap sama tetapi ingin menghapus isi dari berkas tersebut. Fungsi ini mengizinkan semua atribut tetap sama tetapi panjang berkas menjadi nol, hal ini lebih baik dari pada memaksa pengguna untuk menghapus berkas dan membuatnya lagi.
        Enam  operasi  dasar  ini  sudah  mencakup  operasi  minimum  yang  di  butuhkan. Operasi umum lainnya adalah menyambung informasi baru di akhir suatu berkas, mengubah nama suatu berkas, dan lain-lain.
        Operasi dasar ini kemudian digabung untuk melakukan operasi lainnya. Sebagai contoh misalnya kita menginginkan salinan dari suatu berkas, atau menyalin berkas ke peralatan I/O lainnya seperti printer, dengan cara membuat berkas lalu membaca dari berkas lama dan menulis ke berkas yang baru.
        Hampir semua operasi pada berkas melibatkan pencarian berkas pada direktori. Untuk menghindari pencarian yang lama, kebanyakan sistem akan membuka berkas apabila berkas tersebut digunakan secara aktif. Sistem operasi akan menyimpan tabel kecil  yang  berisi  informasi  semua  berkas  yang  dibuka  yang  disebut  ”tabel  berkas terbuka”. Ketika berkas sudah tidak digunakan lagi dan sudah ditutup oleh yang menggunakan, maka sistem operasi mengeluarkan berkas tersebut dari tabel berkas terbuka.
        Beberapa sistem terkadang langsung membuka berkas ketika berkas tersebut digunakan dan otomatis menutup berkas tersebut jika program atau pemakainya dimatikan.  Tetapi  pada  sistem  lainnya  terkadang  membutuhkan  pembukaan  berkas secara tersurat dengan system call (open) sebelum berkas dapat digunakan.
        Implementasi dari buka dan tutup berkas dalam lingkungan dengan banyak perngguna seperti UNIX, lebih rumit. Dalam sistem seperti itu pengguna yang membuka berkas mungkin lebih dari satu dan pada waktu yang hampir bersamaan. Umumnya sistem operasi menggunakan tabel internal dua level. Ada tabel yang mendata proses mana saja yang membuka berkas tersebut, kemudian tabel tersebut menunjuk ke tabel yang lebih besar yang berisi informasi yang berdiri sendiri seperti lokasi berkas pada disk,   tanggal akses dan ukuran berkas. Biasanya tabel tersebut juga memiliki data berapa banyak proses yang membuka berkas tersebut.
        Jadi, pada dasarnya ada beberapa informasi yang terkait dengan pembukaan berkas yaitu:
        •    Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari  system  call  baca  dan  tulis,  sistem  tersebut  harus  mengikuti  posisi  dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
        •    Penghitung    berkas   yang    terbuka:    Setelah    berkas    ditutup,    sistem   harus mengosongkan kembali tabel berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel. Penghitung ini mencatat banyaknya  berkas  yang  telah  dibuka  dan  ditutup,  dan  menjadi  nol  ketika  yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel.
        •    Lokasi  berkas  pada  disk:  Kebanyakan  operasi  pada  berkas  memerlukan  sistem untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar  menghindari  banyak  pembacaan pada disk untuk setiap operasi.
        Beberapa sistem operasi menyediakan fasilitas untuk memetakan berkas ke dalam memori pada sistem memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. Operasi baca dan tulis pada memori dengan alamat tersebut dianggap sebagai operasi baca dan tulis pada berkas yang ada di alamat tersebut. Menutup berkas mengakibatkan semua data yang ada pada alamat memori  tersebut  dikembalikan  ke  disk  dan  dihilangkan  dari  memori  virtual  yang digunakan oleh proses.
        Penggunaan Berkas Secara Bersama-sama
        Konsistensi semantik adalah parameter yang penting untuk evaluasi sistem berkas yang mendukung penggunaan berkas secara bersama. Hal ini juga merupakan karakterisasi dari sistem yang menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara bersama-sama. Lebih khusus, semantik ini seharusnya dapat menspesifikasi kapan
        suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain.
        Terdapat  beberapa  macam  konsistensi  semantik.  Di  bawah  ini  akan  dijelaskan kriteria yang digunakan dalam UNIX.
        Berkas sistem UNIX mengikuti konsistensi semantik:
        •    Penulisan  ke  berkas  yang  dibuka  oleh  pengguna  dapat  dilihat  langsung  oleh pengguna lain yang sedang mengakses ke berkas yang sama.
        •    Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi ke berkas tersebut. Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya

        Proteksi Berkas


        1Saat sebuah informasi disimpan di komputer, kita menginginkan agar informasi tersebut aman dari kerusakan fisik (ketahanan) dan akses yang tidak semestinya (proteksi).
        Ketahanan biasanya disediakan dengan duplikasi dari berkas. Banyak komputer yang mempunyai program sistem yang secara otomatis menyalin berkas dari disk ke tape dalam interval tertentu (misalnya sekali dalam sehari, atau seminggu, atau sebulan) untuk menjaga copy -an berkas agar tidak rusak secara tidak disengaja. Sistem berkas dapat rusak karena masalah hardware (seperti error dalam membaca atau menulis), mati listrik, debu, suhu yang ekstrim, atau perusakan dengan sengaja. Bug dalam software sistem berkas juga dapat mengakibatkan isi dari dokumen hilang.
        Ketika kita menyimpan informasi dalam sebuah sistem komputer, ada dua hal yang harus menjadi perhatian utama kita. Hal tersebut adalah:
        1.   Reabilitas dari sebuah sistem
        Maksud dari reabilitas sistem adalah kemampuan sebuah sistem untuk melindungi informasi yangtelah disimpan agar terhindar dari kerusakan, dalam hal ini adalah perlindungan  secara  fisik  pada  sebuah  berkas.  Reabilitas  sistem  dapat  dijaga dengan membuat cadangan dari setiap berkas secaramanual atau pun otomatis, sesuai dengan layanan yang dari sebuah sistem operasi. Reabilitas Sistemakan dibahas lebih lanjut pada Bagian 6.10.
        2.   Proteksi (Perlindungan) terhadap sebuah berkas
        Perlindungan terhadap berkas dapat dilakukan dengan berbagai macam cara. Pada bagian ini, kita akan membahas secara detil mekanisme yang diterapkan dalam melindungi sebuah berkas.
        1. Tipe-tipe akses. Kebutuhan untuk mengamankan berkas berhubungan langsung dengan kemampuan untuk mengakses berkas. Kita bisa menyediakan proteksi secara menyeluruh dengan pelarangan akses. Kita juga dapat menyediakan akses bebas tanpa proteksi. Kedua pendekatan tersebut terlalu ekstrem untuk penggunaan umum, sehingga yang kita butuhkan adalah akses yang terkontrol.
        Mekanisme proteksi menyediakan akses yang terkontrol dengan membatasi tipe dari akses terhadap berkas yang dapat dibuat. Akses diizinkan atau tidak tergantung pada beberapa faktor, salah satunya adalah tipe dari akses yang diminta. Beberapa tipe operasi yang bisa dikontrol:
        • Read. membaca dari berkas.
        • Write. menulis atau menulis ulang berkas.
        • Execute. me-load berkas ke memori dan mengeksekusinya..
        • Append. menulis informasi baru di akhir berkas.
        • Delete. menghapus berkas dan mengosongkan spacenya untuk kemungkinan digunakan kembali.
        • List. mendaftar nama dan atribut berkas.
        2.  Kontrol akses.  Pendekatan paling umum dalam masalah proteksi adalah untuk membuat akses tergantung pada identitas pengguna. Pengguna yang bervariasi mungkin membutuhkan tipe akses yang berbeda atas suatu berkas atau direktori. Skema yang paling umum untuk mengimplementasikannya adalah dengan mengasosiasikan setiap berkas dan direktori pada sebuah list kontrol akses, yang menspesifikasikan user name dan tipe akses yang diperbolehkan untuk setiap user. Saat seorang pengguna meminta untuk mengakses suatu berkas, sistem operasi akan mengecek daftar akses yang berhubungan dengan berkas tersebut. Apabila pengguna tersebut ada di dalam daftar, maka akses tersebut diizinkan. Jika tidak, terjadi pelanggaran proteksi, dan pengguna tidak akan diizinkan untuk mengakses berkas tersebut.
        Masalah utama dengan pendekatan ini adalah panjang dari daftar yang harus dibuat. Tapi dapat dipecahkan dengan cara menggunakan daftar dalam versi yang di- condense. Untuk itu, pengguna dapat diklasifikasikan ke dalam tiga kelas:
        • Owner. pengguna yang membuat berkas tersebut.
        • Group. sekelompok pengguna yang berbagi berkas dan memiliki akses yang sama.
        • Universe. semua pengguna yang lain.
        3. Pendekatan lain.  Pendekatan lain dalam masalah proteksi adalah dengan memberikan kata kunci untuk setiap berkas.

        Metode Akses

        a.      Akses Secara Berurutan
        3Ketika digunakan, informasi penyimpanan berkas harus dapat diakses dan dibaca ke dalam memori komputer. Beberapa sistem hanya menyediakan satu metode akses untuk berkas.
        Pada sistem yang lain, contohnya IBM, terdapat banyak dukungan metode akses yang berbeda. Masalah pada sistem tersebut adalah memilih yang mana yang tepat untuk digunakan pada satu aplikasi tertentu.
        Sequential Access merupakan metode yang paling sederhana. Informasi yang disimpan dalam berkas diproses berdasarkan urutan. Operasi dasar pada suatu berkas adalah tulis dan baca. Operasi baca membaca berkas dan meningkatkan pointer berkas selama di jalur lokasi I/O. Operasi tulis menambahkan ke akhir berkas dan meningkatkan ke akhir berkas yang baru. Metode ini didasarkan pada tape model sebuah berkas, dan dapat bekerja pada kedua jenis device akses (urut mau pun acak).
        b.      Akses Langsung
        Direct Access merupakan metode yang membiarkan program membaca dan menulis dengan cepat pada berkas yang dibuat dengan fixed-length logical order tanpa adanya urutan. Metode ini sangat berguna untuk mengakses informasi dalam jumlah besar. Biasanya database memerlukan hal seperti ini. Operasi berkas pada metode ini harus dimodifikasi untuk menambahkan nomor blok sebagai parameter.
        Pengguna menyediakan nomor blok ke sistem operasi biasanya sebagai nomor blok relatif, yaitu indeks relatif terhadap awal berkas. Penggunaan nomor blok relatif bagi sistem operasi adalah untuk memutuskan lokasi berkas diletakkan dan membantu mencegah pengguna dari pengaksesan suatu bagian sistem berkas yang bukan bagian pengguna tersebut.
        c.        Akses Dengan Menggunakan Indeks
        Metode ini merupakan hasil dari pengembangan metode direct access. Metode ini memasukkan indeks untuk mengakses berkas. Jadi untuk mendapatkan suatu informasi suatu berkas, kita mencari dahulu di indeks, lalu menggunakan pointer untuk mengakses berkas dan mendapatkan informasi tersebut. Namun metode ini memiliki kekurangan, yaitu apabila berkas-berkas besar, maka indeks berkas tersebut akan semakin besar. Jadi solusinya adalah dengan membuat 2 indeks, indeks primer dan indeks sekunder.
        Indeks primer memuat pointer ke indeks sekunder, lalu indeks sekunder menunjuk ke data yang dimaksud.

        Struktur Berkas


        4Disk merupakan tempat penyimpanan sekunder dimana sistem berkas disimpan. Ada dua karakteristik dalam penyimpanan banyak berkas, yaitu:
        1. Sebuah disk dapat ditulis kembali, memungkinkan untuk membaca, memodifikasi, dan menulis blok kembali pada tempat yang sama.
        2. Sebuah blok yang menyimpan informasi yang kita cari, dapat diakses secara langsung. Dalam aplikasinya, kita dapat mengakses berkas secara random maupun sequential.
        Sistem operasi menyediakan satu atau lebih sistem berkas untuk menyimpan dan mengambil data dengan mudah. Struktur berkas itu sendiri terdiri dari beberapa layer.
        Setiap level menggunakan feature-feature dari lapisan di bawahnya untuk digunakan sebagai feature baru bagi lapisan di atasnya. Level terbawah adalah I/O control yang terdiri dari beberapa device driver dan penanganan interupsi untuk memindahkan informasi antara memori utama dan disk system. Device driver dapat dianggap sebagai penerjemah. Inputnya terdiri dari perintah-perintah high level, misalkan “ambil blok 123″. Outputnya berupa instruksi-instruksi hardware yang lebih spesifik. Instruksi ini digunakan oleh pengendali hardware yang menghubungkan I/O device dengan sistem lainnya.
        Basic file system bertugas dalam hal menyampaikan perintah-perintah generic ke device driver yang dituju untuk membaca dan menulis blok-blok fisik pada disk. Masing-masing blok fisik diidentifikasi dengan alamat disknya.
        File organization modul adalah lapisan dalam sistem berkas yang mengetahui tentang berkas, blok-blok logis, dan blok-blok fisik. Dengan mengetahui tipe dan lokasi dari berkas yang digunakan, file organization modul dapat menerjemahkan alamat blok logis ke alamat blok fisik untuk selanjutnya diteruskan ke lapisan basic file system. File organization modul juga mengandung free space manager yang mencatat jejak blok-blok yang tidak dialokasikan dan menyediakannya ke file organization modul ketika dibutuhkan.
        Lapisan yang terhubung dengan program aplikasi yaitu logical file system yang bertugas dalam mengatur informasi metadata. Metadata meliputi semua struktur dari sistem berkas, kecuali data sebenarnya (isi dari berkas). Lapisan ini juga mengatur struktur direktori untuk menyediakan informasi yang dibutuhkan file organization modul. Struktur dari sebuah berkas ditentukan oleh lapisan ini dengan adanya file control block.
        Berkas-berkas tertentu harus mempunyai struktur yang dimengerti oleh sistem operasi. Contohnya, sistem operasi mungkin mensyaratkan bahwa sebuah berkas executable harus mempunyai struktur yang spesifik sehingga dapat ditentukan dimana berkas tersebut dapat di-load dari memori dan dimana lokasi dari instruksi pertama. Berkas dapat distruktur dalam beberapa cara. Cara yang pertama adalah sebuah urutan bytes yang tidak terstruktur. Akibatnya sistem operasi tidak tahu atau peduli apa yang ada dalam berkas, yang dilihatnya hanya bytes. Ini menyediakan fleksibilitas yang maksimum. User dapat menaruh apapun yang mereka mau dalam berkas, dan sistem operasi tidak membantu, namun tidak juga menghalangi.
        Cara yang kedua adalah dengan record sequence. Dalam model ini semua berkas adalah sebuah urutan dari rekaman-rekaman yang telah ditentukan panjangnya, masing-masing dengan beberapa struktur internal. Artinya bahwa sebuah operasi read membalikkan sebuah rekaman dan operasi write menimpa atau menambahkan suatu rekaman.
        Cara yang ketiga, adalah menggunakan sebuah tree. Dalam struktur ini sebuah berkas terdiri dari sebuah tree dari rekaman-rekaman tidak perlu dalam panjang yang sama, tetapi masing-masing memiliki sebuah field key dalam posisi yang telah diterapkan dalam rekaman tersebut. Tree ini di-sort dalam field key dan mengizinkan pencarian yang cepat untuk sebuah key tertentu.
        Kita juga dapat menggunakan jenis berkas untuk mengidentifikasi struktur dalam dari berkas. Berkas berupa source dan objek memiliki struktur yang cocok dengan harapan program yang membaca berkas tersebut. Suatu berkas harus memiliki struktur yang dikenali oleh sistem operasi. Sebagai contoh, sistem operasi menginginkan suatu berkas yang dapat dieksekusi memiliki struktur tertentu agar dapat diketahui dimana berkas tersebut  akan  ditempatkan  di  memori  dan  di  mana  letak  instruksi  pertama  berkas tersebut.   Beberapa sistem operasi mengembangkan ide ini sehingga mendukung beberapa struktur berkas, dengan beberapa operasi khusus untuk memanipulasi berkas dengan struktur tersebut.
        Kelemahan memiliki dukungan terhadap beberapa struktur berkas adalah: Ukuran dari sistem operasi dapat menjadi besar, jika sistem operasi mendefinisikan lima struktur berkas yang berbeda maka ia perlu menampung kode untuk yang diperlukan untuk mendukung  semuanya.  Setiap  berkas  harus  dapat  menerapkan  salah  satu  struktur berkas  tersebut.  Masalah  akan  timbul  ketika  terdapat  aplikasi  yang  membutuhkan struktur informasi yang tidak didukung oleh sistem operasi tersebut.
        Beberapa  sistem  operasi  menerapkan  dan  mendukung  struktur  berkas  sedikit struktur berkas. Pendekatan ini digunakan pada MS-DOS dan UNIX. UNIX menganggap setiap berkas sebagai urutan 8-bit byte, tidak ada interpretasi sistem operasi terhadap dari bit-bit  ini.  Skema tersebut  menawarkan  fleksibilitas  tinggi tetapi  dukungan  yang terbatas. Setiap aplikasi harus menambahkan sendiri kode untuk menerjemahkan berkas masukan ke dalam struktur yang sesuai. Walau bagaimana pun juga sebuah sistem operasi harus memiliki minimal satu struktur berkas yaitu untuk berkas yang dapat dieksekusi sehingga sistem dapat memuat berkas dalam memori dan menjalankannya.
        Sangat berguna bagi sistem operasi untuk mendukung struktur berkas yang sering digunakan  karena  akan  menghemat  pekerjaan  pemrogram.  Terlalu  sedikit  struktur berkas yang didukung akan mempersulit pembuatan program, terlalu banyak akan membuat sistem operasi terlalu besar dan pemrogram akan bingung
        Lukman Alfasiry © 2008. Design by :vio Templates Sponsored by: gold bola