You are on page 1of 11

Bab 14.

Struktur Direktori
Daftar Isi Pendahuluan Atribute dan Struktur Direktori Operasi Direktori Direktori Bertingkat Direktori Berstruktur Pohon Direktori Berstruktur Graf Mounting Berbagi Berkas Rangkuman Rujukan

Pendahuluan
Direktori atau folder merupakan suatu entitas dalam sebuah sistem berkas yang mengandung berkas atau direktori lain. Pada hakikatnya, berkas atau direktori lain tersebut terdapat didalam disk, sedangkan direktori hanya menyediakan link atau mengarahkan pada berkas yang ada. Dapat dikatakan bahwa, direktori digunakan sebagai sarana untuk pengorganisasian berkas pada suatu system computer. Dengan adanya direktori, setiap berkas dapat dikelompok-kelompokkan. Sebuah direktori dapat berisi berkas maupun direktori lain, sehingga direktori dapat juga disebut sebagai berkas istimewa. Dalam pengorganisasian sebuah berkas, sistem operasi dapat mempartisi disk menjadi beberapa direktori atau menjadikan dua disk menjadi sebuah direktori.

Rujukan
[Silberschatz2002] Abraham Silberschatz, Peter Galvin, dan Greg Gagne. 2002. Applied Operating Systems. Sixth Edition. John Wiley & Sons. [Stallings2001] William Stallings. 2001. Operating Systems: Internal and Design Principles. Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey. [Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating Systems Design and Implementation. Second Edition. Prentice-Hall. [WEBArpaciD2005] Andrea C Arpaci-Dusseau dan Remzi H Arpaci-Dusseau. 2005. CS 537: Introduction to Operating Systems – File System: User Perspective – http://www.cs.wisc.edu/ ~remzi/ Classes/ 537/ Fall2005/ Lectures/ lecture18.ppt . Diakses 8 Juli 2006.

[WEBBabicLauria2005] G Babic dan Mario Lauria. 2005. CSE 660: Introduction to Operating Systems – Files and Directories – http://www.cse.ohio-state.edu/ ~lauria/ cse660/ Cse660.Files.04-08-2005.pdf . Diakses 8 Juli 2006. [WEBCarter2004] John Carter. 2004. CS 5460 Operating Systems – Lecture 19: File System Operations and Optimizations – http://www.cs.utah.edu/ classes/ cs5460/ lectures/ lecture19.pdf . Diakses 29 Mei 2006. [WEBChung2005] Jae Chung. 2005. CS4513 Distributed Computer Systems – File Systems – http://web.cs.wpi.edu/ ~goos/ Teach/ cs4513-d05/ slides/ fs1.ppt . Diakses 7 Juli 2006. [Nana Langstedt] Nana Langstedt. 2005. How to mount partitions and file-systems in Linux – http://www.tuxfiles.org/linuxhelp/mounting.html . Diakses 27 April 2007. [Mayang Sarup] Mayang Sarup. 2001. The Linux Filesystem explained – http://www.freeos.com/articles/3102/ . Diakses 27 April 2007.

Atribute dan Struktur Direktori
Atribut Direktori
Atribut atau informasi dalam suatu direktori dapat berbeda-beda tergantung pada sistem operasi yang digunakan. Sebagai sebuah berkas, direktori bisa memiliki beberapa atribut, antara lain: a. b. c. d. Nama, merupakan nama dari direktori itu sendiri. Alamat, merupakan alamat dari direktori tersebut. Tanggal, berisi keterangan mengenai tanggal pembuatan direktori tersebut. Ukuran, merupakan besarnya ukuran suatu direktori, biasanya dalam satuan byte, KiloByte, MegaByte, GigaByte. Dimana ukuran tersebut merupakan ukuran dari berkas-berkas yang ada dalam direktori. Batas maksimum dari suatu direktori bergantung pada sistem berkas yang digunakan. e. Proteksi, berguna sebagai perlindungan. Hal ini mencakup siapa saja yang berhak mengakses, penyembunyian file, read-only, dan lain-lain. Dalam Unix, proteksi berguna untuk mengubah atribut berkas dengan menggunakan perintah "chmod". Atribut-atribut pada direktori di-design sewaktu pembuatan sistem operasi, sehingga atribut yang ada tergantung pada pembuat sistem operasi tersebut. Atribut-atribut diatas merupakan atribut yang umum dan sering digunakan.

Struktur Direktori
Mempelajari struktur direktori, memberikan kita pemahaman bagaimana menyusun sebuah direktori dalam suatu sistem berkas. Ada beberapa tujuan yang ingin dicapai dalam menyusun sebuah direktori dalam suatu sistem. Masalah penamaan berkas,

pengelompokan berkas dan berbagi berkas (file sharing) merupakan beberapa contoh masalahnya. Ada 3 struktur direktori yang dikenal, antara lain:
• • •

Struktur Direktori Bertingkat, dimana direktori ini dibagi menjadi direktori satu tingkat (Single Level Directory) dan direktori dua tingkat (Two Level Directory). Direktori berstruktur pohon (Tree-Structured Directories). Direktori berstruktur graf, dimana direktori ini dibagi menjadi struktur graf asiklik (Acyclic-structured Directory) dan struktur graf sederhana (General-graph Directory).

Bentuk-bentuk direktori tersebut mempunyai nilai historis tersendiri. Misalnya direktori bertingkat satu, dimasa-masa awal perkembangan komputer terdahulu, kapasitas dari secondary storage masih terbatas. Besarnya hanya berkisar beberapa MegaByte saja. Oleh karena itu, struktur direktori bertingkat satu sudah mencukupi untuk kebutuhan penggunaan komputer sehari-hari. Namun, seiring berkembangnya zaman direktori satu tingkat tersebut dirasakan kurang mencukupi dikarenakan berbagai keterbatasan yang dimilikinya. Setelah itu, Muncullah direktori dua tingkat dan seterusnya. Hal-hal itulah yang akan kita lihat dalam beberapa pembahasan selanjutnya mengenai struktur direktori.

Operasi Direktori
Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap direktori sebagai berikut: a. Mencari berkas: Bila suatu saat seorang user atau sebuah aplikasi ingin melakukan suatu operasi terhadap suatu berkas, tentu berkas tersebut harus dibuka terlebih dahulu. Untuk itu, sebuah direktori harus mencari entri yang bersesuaian dengan file tersebut dengan menelusuri struktur dari direktori yang bersangkutan. b. Membuat berkas: Saat sebuah berkas baru dibuat, maka sebuah entri akan ditambahkan ke direktori. c. Menghapus berkas: Ketika suatu berkas tidak dibutuhkan lagi, maka berkas tersebut bisa dihapus dari direktori. d. Menampilkan isi Direktori: Menampilkan seluruh atau sebagian daftar berkasberkas yang ada di direktori dan atribut dari berkas-berkas dalam direktori tersebut (misal, information access control, type, usage information). e. Mengubah nama berkas: Nama suatu berkas merepresentasikan isi berkas terhadap user. Oleh karena itu, nama berkas harus bisa diubah-ubah ketika isi dan kegunaannya sudah berubah atau tidak sesuai lagi. Mengubah nama suatu berkas memungkinkan berpindahnya posisi berkas didalam struktur direktori. f. Akses sistem berkas: User bisa mengakses setiap direktori dan setiap berkas yang berada dalam struktur direktori. g. Update direktori: Karena sebagian atribut dari berkas disimpan dalam direktori, maka perubahan yang terjadi terhadap suatu berkas akan berpengaruh terhadap atribut dari berkas yang bersangkutan di direktori tersebut.

Direktori Bertingkat
Direktori Satu Tingkat (Single Level Directory)
Direktori Satu Tingkat (Single Level Directory) merupakan suatu struktur direktori yang paling sederhana. Semua berkas yang ada disimpan dalam direktori yang sama. Direktori Satu Tingkat ini memiliki keterbatasan, yaitu bila berkas bertambah banyak atau bila system memiliki lebih dari satu user. Jumlah berkas yang terlalu banyak dalam sebuah direktori dapat menyebabkan ketidaknyamanan. Hal ini mungkin saja terjadi karena user hanya dapat menyimpan berbagai berkas (misal: games, video, surat) dalam sebuah direktori saja. Gambar 14.1. Single Level Directory

Direktori Dua Tingkat (Two Level Directory)
Pada Direktori Satu Tingkat (Single Level Directory), sering terjadi kesulitan dalam menentukan nama file dari dua user yang berbeda. Penyelesaian umumnya adalah dengan membuat direktori terpisah untuk tiap user yang dikenal dengan User File Directory (UFD). Di Struktur Direktori Dua Tingkat (Two Level Directory), setiap user mempunyai User File Directory (UFD) masing-masing. Ketika user melakukan login, maka Master File Directory (MFD) dipanggil. Indeks yang dimiliki oleh MFD didasarkan pada username atau account number, dan setiap entry menunjuk pada UFD user tersebut. Sehingga, user bisa mempunyai nama berkas yang sama dengan berkas lain. Gambar 14.2. Two Level Directory

Direktori Berstruktur Pohon
Gambar 14.3. Tree-Structured Directories

Pada Tree-Structured Directories, setiap user dapat membuat subdirectory sendiri dan mengorganisasikan berkas-berkas yang dimiliki. Dalam penggunaan yang normal, setiap user memiliki direktori saat ini (current directory). Current directory ini terdiri dari berkas-berkas yang baru-baru ini digunakan oleh user. Nama lintasan (Path Name) bisa digolongkan menjadi dua jenis, yaitu:
• •

Lintasan mutlak (absolute path): merupakan lintasan (path) yang dimulai dari root directory. Lintasan relatif (relative path): merupakan lintasan (path) yang dimulai dari direktori saat ini (current directory).

Gambar 14.4. Path

Misalkan kita sedang berada pada direktori bahan, maka penulisan lintasan (path) dari berkas slide: 1. absolute path. yaitu "/Kuliah/OS/bahan/slide". 2. relative path. yaitu "../bahan/slide". Dengan sistem Tree-Structured Directories, users bisa mengakses dan menambahkan file user lain kedalam file mereka. Sebagai contoh, user B bisa mengakses berkas-berkas user A melalui spesifikasi nama lintasannya. Dengan alternatif lain, user B bisa mengubah current directory-nya menjadi directori yang dimiliki oleh user A dan mengakses berkasberkas tersebut melalui file names-nya. Sebuah lintasan (path) ke sebuah berkas didalam Tree-Structured Directories bisa lebih panjang daripada lintasan (path) didirektori dua tingkat (two-level directory).

Direktori Berstruktur Graf
Direktori dengan Struktur Pohon (Tree-Structured Directories) tidak memperbolehkan adanya pembagian berkas/direktori. Sedangkan Struktur Graf Asiklik (Acyclic-structured Directory) memperbolehkan direktori untuk berbagi berkas atau subdirektori. Jika ada berkas yang ingin diakses oleh dua user atau lebih, maka struktur ini menyediakan fasilitas sharing. Sehingga Acyclic-structured Directory bisa mengatasi permasalahan pada direktori dengan struktur pohon (Tree-Structured Directories). Permasalahan yang timbul dalam penggunaan struktur graf asiklik adalah meyakinkan apakah tidak ada siklus. Bila kita mulai dengan struktur direktori dua tingkat (Two Level Directory) dan memperbolehkan user untuk membuat subdirektori, maka kita akan mendapatkan struktur direktori pohon. Mempertahankan sifat pohon bukan suatu hal yang sulit, tetapi bila kita menambahkan sambungan pada direktori dengan struktur

pohon, maka sifat pohon akan hilang dan menghasilkan struktur graf sederhana (General-graph Directory). Gambar 14.5. Acyclic-structured Directory

Bila siklus diperbolehkan dalam direktori, tentunya kita tidak ingin mencari sebuah berkas dua kali. Algoritma yang tidak baik akan menghasilkan infinite loop dan tidak akan pernah berakhir. Oleh karena itu, diperlukan skema pengumpulan sampah (garbage-collection scheme). Skema ini berhubungan dengan pemeriksaan seluruh sistem berkas dengan menandai tiap berkas yang dapat diakses. Kemudian mengumpulkan apapun yang tidak ditandai pada tempat yang kosong. Hal ini tentunya dapat menghabiskan banyak waktu. Gambar 14.6. General-graph Directory

Pada direktori dengan struktur pohon, setiap user dapat membuat direktori sendiri sehingga dalam UFD akan terdapat direktori yang dibuat oleh user dan didalam direktori tersebut dapat dibuat direktori lain (subdirectory), begitu seterusnya. Hal ini tentu akan

memudahkan user dalam pengelompokan dan pengorganisasian berkas. Masalah yang muncul adalah ketika user ingin menggunakan suatu berkas secara bersama-sama. Hal ini timbul dikarenakan system tidak mengizinkan seorang user mengakses direktori pengguna lain. Pada General-graph Directory, sebuah direktori me-link pada direktori yang me-link nya. Dengan kata lain, jika direktori A berisi/me-link direktori B maka ketika direktori B dibuka akan terdapat direktori A (ada siklus).

Mounting
Mounting adalah proses mengkaitkan sebuah sistem berkas yang baru ditemukan pada sebuah piranti ke struktur direktori utama yang sedang dipakai. Piranti-piranti yang akan di-mount dapat berupa CD-ROOM, disket atau sebuah zip-drive. Tiap-tiap sistem berkas yang di-mount akan diberikan mount point, atau sebuah direktori dalam pohon direktori sistem yang sedang anda akses. Gambar 14.7. Existing File System

Daftar sistem berkas yang di-mount dapat dilihat kapan saja dengan menggunakan perintah mount. Karena izinnya hanya diatur read-only di berkas fstab, maka tidak perlu khawatir user lain akan mencoba mengubah atau menulis mount point yang baru. Seperti biasa, saat ingin mengubah-ubah berkas konfigurasi seperti mengubah isi berkas fstab, pastikan untuk membuat berkas cadangan untuk mencegah terjadinya kesalahan teknis yang dapat menyebabkan suatu kekacauan. Kita dapat melakukannya dengan cara menyediakan sebuah disket atau recovery-disc dan mem-back-up berkas fstab tersebut sebelum membukanya di editor teks untuk diubah-ubah. Semua ruang kosong yang tersedia di disk diatur dalam sebuah pohon direktori tunggal. Dasar sistem ini adalah root directory yang dinyatakan dengan sebuah garis miring. Pada LINUX, isi sebuah sistem berkas dibuat nyata tersedia dengan menggabungkan sistem berkas ke dalam sebuah sistem direktori melalui sebuah proses yang disebut mounting.

Sistem berkas dapat di-mount maupun di-umount yang berarti sistem berkas tersebut dapat tersambung atau tidak dengan struktur pohon direktori. Perbedaannya adalah sistem berkas tersebut akan selalu di-mount ke direktori root ketika sistem sedang berjalan dan tidak dapat di-umount. Sistem berkas yang lain di-mount seperlunya, contohnya yang berisi hard drive berbeda dengan floppy disc atau CD-ROM. Mounting adalah memasukkan sistem berkas ke struktur direktori utama, baik ke dalam direktori kosong maupun ke dalam direktori yang sudah berisi. Hanya kalau dimasukkan ke direktori yang berisi, isi dari direktori itu tidak bisa diakses selama sistem berkas masih di-mount. Selama sistem berkas masih di-mount, isi yang akan terlihat saat membuka direktori itu adalah isi dari sistem berkas. Ketika sistem berkas telah diumount, barulah isi sesungguhnya dari direktori itu dapat terlihat. Sebenarnya setiap akan memproses suatu sistem berkas (read and write) kita harus memount sistem berkas itu terlebih dahulu. Sistem operasi menyediakan fasilitas mounting secara otomatis pada saat sistem operasi dijalankan. Pada beberapa sistem operasi, ada device-device tertentu yang harus di-mount terlebih dahulu secara manual untuk memproses sistem berkas didalamnya. Untuk me-mount suatu sistem berkas, sistem operasi memerlukan data tentang device yang membawakan sistem berkas tersebut dan mount point tempat sistem berkas itu hendak diletakkan. Mount point adalah direktori tempat dimana akan meletakkan sistem berkas tesebut. Kalau kita ingin me-mount sistem berkas berupa direktori, maka mount point-nya harus berupa direktori. Sebaliknya, jika yang hendak kita mount adalah file, maka mount pointnya juga harus berupa file.

Berbagi Berkas
Saat sebuah sistem memutuskan untuk menyediakan fasilitas berbagi berkas, maka tantangan yang muncul adalah memperluas file-sharing agar dapat diakses oleh berbagai sistem berkas. Hal lain yang menjadi perhatian adalah konflik yang mungkin muncul akibat berbagi berkas, misalnya beberapa user melakukan operasi penulisan terhadap suatu berkas secara bersama-sama.

Multiple User
Ada tiga isu penting saat suatu sistem mengakomodasi banyak pengguna (multiple users), yaitu berbagi berkas, penamaan berkas, dan proteksi berkas. Dalam pengimplementasian berbagi berkas dan proteksi berkas di multiple user system, suatu sistem perlu untuk memberikan tambahan pada atribut dari suatu berkas atau direktori. Pendekatan yang umum dilakukan adalah dengan konsep owner dan group. Dalam bahasa Indonesia, kata owner berarti pemilik. Istilah pemilik dalam suatu sistem yang menerapkan berbagi berkas dapat diartikan sebagai seorang user yang mempunyai hak penuh atas suatu berkas atau subdirektori. Owner tersebut dapat melakukan apa saja terhadap berkas miliknya, termasuk memberikan hak akses tertentu kepada user lain terhadap berkas tersebut.

Konsep dari owner ini diimplemetasikan oleh beberapa sistem dengan memanfaatkan daftar dari nama pemakai dan diasosiasikan dengan user identifiers atau user IDs. Tentu saja ID ini bersifat unik, tidak akan ada dua user yang memiliki ID yang sama. Selanjutnya untuk setiap proses dan thread yang dijalankan oleh seorang user , maka proses dan thread tersebut akan dikaitkan dengan user ID tadi. Sekumpulan user dapat membentuk suatu group yang mempunyai group identifier dan akan dikaitkan dengan setiap proses dan thread yang dijalankan oleh group tersebut. Saat seorang user melakukan operasi pada suatu berkas, maka user ID dari user tersebut akan dicocokkan dengan atribut dari pemilik berkas tersebut. Proses tersebut dilakukan untuk mengetahui hak apa saja yang diberikan oleh pemilik berkas kepada user lain. Hal itu juga berlaku pada group.

Remote File System
Seiring berkembangnya jaringan dan teknologi berkas, mekanisme berbagi berkas juga mengalami perubahan. Di masa-masa awal, cara yang digunakan dalam file-sharing adalah dengan aplikasi seperti File Transfer Protocol, disingkat FTP. Selanjutnya, berkembang apa yang disebut dengan Distributed File Systems, disingkat DFS. Dengan DFS, sebuah remote-directories dapat diakses dari local-machine. Cara lainnya adalah melalui World Wide Web (www), merupakan pengembangan dari metode FTP. Mekanisme file-sharing memungkinkan seorang user dapat mengakses sebuah sistem berkas yang ada di komputer lain yang terhubung ke jaringan atau biasa disebut remote machine. Ada dua kemungkinan saat seorang user terhubung ke remote machine. Pertama, ia harus melakukan proses autentifikasi atau proses identifikasi bahwa ia telah terdaftar sebagai seorang pengguna yang mempunyai hak akses tertentu terhadap remote machine tersebut. Kedua, ia cukup dikenali sebagai Anonymous user yang bisa jadi mempunyai hak akses tidak seluas dibandingkan dengan user yang telah terautentifikasi. Client-Server Model Remote File System mengijinkan suatu komputer untuk me-mounting beberapa sistem berkas dari satu atau lebih remote machine. Dalam kasus ini, komputer yang menyediakan berkas-berkas yang diakses oleh komputer-komputer lain disebut dengan server dan komputer yang mengakses berkas-berkas yang di-sharedisebut dengan client. Yang menjadi isu dalam model ini adalah masalah keamanan, pengaksesan suatu sistem oleh seseorang yang tidak mempunyai hak, unauthorized user. Failure Modes Suatu local system dapat mengalami failure atau crash yang menyebabkan sistem tersebut tidak dapat berfungsi sebagaimana mestinya karena berbagai hal. Teknologi Redundant Arrays of Inexpensive Disk, disingkat dengan RAID cukup membantu hal

ini. Namun demikian, penjelasan lebih detil tentang RAID akan dibahas dalam topiktopik lainnya, terutama yang berkaitan dengan storage. Remote File System bukan tanpa gangguan. Kompleksitas dari sistem jaringan dan juga adanya interaksi antara remote machine memberi peluang lebih besar akan terjadinya kegagalan dalam sistem tersebut.

Rangkuman
Direktori atau folder merupakan suatu entitas dalam sebuah sistem berkas yang mengandung berkas atau direktori lain. Mempelajari struktur direktori, memberikan kita pemahaman bagaimana menyusun sebuah direktori dalam suatu sistem berkas. Ada 3 struktur direktori yang diketahui, yaitu: direktori bertingkat, direktori berstruktur pohon dan direktori berstruktur graf. Mounting adalah proses mengkaitkan sebuah sistem berkas yang baru ditemukan pada sebuah piranti ke struktur direktori utama yang sedang dipakai. Piranti-piranti yang akan di-mount dapat berbentuk CD-ROOM, disket atau sebuah zip-drive. Tiap-tiap sistem berkas yang di-mount akan diberikan mount point atau sebuah direktori dalam pohon direktori sistem yang sedang diakses. Mount point adalah direktori tempat dimana akan meletakkan sistem berkas tersebut. Kalau kita ingin me-mount sistem berkas berupa direktori, maka mount point-nya harus berbentuk direktori. Sebaliknya, jika yang ingin di-mount adalah file, maka mount point-nya harus berbentuk file