SISTEM DIRECTORI DAN
BERKAS
DASAR TEORI
Direktori adalah komponen dari sistem
berkas yang mengandung satu berkas atau lebih atau satu direktori lainnya atau
lebih, yang disebut dengan subdirektori. Batasan jumlah berkas atau
subdirektori yang dapat ditampung dalam sebuah direktori tergantung dari sistem
berkas yang digunakan, meskipun sebagian sistem berkas tidak membatasinya
(batasan tersebut disebabkan ukuran media penyimpanan di mana direktori
berada).
Beberapa sistem komputer menyimpan
banyak sekali berkas-berkas dalam disk, sehingga diperlukan suatu struktur
pengorganisasian data-data agar lebih mudah diatur.
Silberschatz, Galvin dan Gagne mengkategorikan
operasi-operasi terhadap direktori sebagai berikut:
1. Mencari Berkas
Mencari lewat struktur direktori untuk
dapat menemukan entri untuk suatu berkas tertentu. Berkas-berkas dengan nama
yang simbolik dan mirip, mengindikasikan adanya keterkaitan diantara
berkas-berkas tersebut.
2. Membuat berkas
Berkas-berkas baru perlu untuk dibuat
dan ditambahkan ke dalam direktori.
3. Menghapus berkas
Saat suatu berkas tidak diperlukan lagi,
berkas tsb perlu dihapus dari direktori.
4. Menampillkan
isi direktori
Menampilkan daftar berkas-berkas yang
ada di direktori, dan semua isi direktori dari berkas-berkas dalam daftar
tersebut.
5. Mengubah nama
berkas
Nama berkas mencerminkan isi berkas
terhadap pengguna. Oleh karena itu, nama berkas harus dapat diubah-ubah ketika
isi dan kegunaannya sudah berubah atau tidak sesuai lagi. Mengubah nama berkas
memungkinkan posisinya berpindah dalam struktur direktori.
6. Akses Sistem
berkas
Mengakses tiap direktori dan tiap berkas
dalam struktur direktori. Sangatlah dianjurkan untuk menyimpan isi dan stuktur
dari keseluruhan sistem berkas setiap jangka waktu tertentu. Menyimpan juga
dapat berarti menyalin seluruh berkas ke pita magnetik. Teknik ini membuat
suatu cadangan salinan dari berkas tersebut jika terjadi kegagalan sistem atau
jika berkas itu tidak diperlukan lagi.
Sedangkan Tanenbaum juga
menambahkan hal-hal berikut sebagai operasi yang dapat dilakukan terhadap
direktori tersebut :
· membuka
direktori
· menutup
direktori
· menambah
direktori
· mengubah
nama direktori
· menghubungkan
berkas-berkas di direktori berbeda
· menghapus
hubungan berkas-berkas di direktori berbeda.
Macam-macam struktur direktori pada
sistem berkas :
1. Direktori satu
tingkat (Single Level Directory)
Struktur Direktori ini merupakan
struktur direktori yang paling sederhana. Semua berkas disimpan dalam direktori
yang sama.
Direktori satu tingkat memiliki
keterbatasan, yaitu bila berkas bertambah banyak atau bila sistem memiliki
lebih dari satu pengguna. Hal ini disebabkan karena tiap berkas harus memiliki
nama yang unik.
2. Direktori dua
tingkat (Two Level Directory)
Pada direktori dua tingkat membuat
direktori yang terpisah untuk tiap pengguna, yang disebut User File Directory
(UFD). Ketika pengguna login, master directory berkas dipanggil. MFD memiliki
indeks berdasarkan nama pengguna dan setiap entri menunjuk pada UFD pengguna
tersebut. Maka, pengguna boleh memiliki nama berkas yang sama dengan berkas
lain.
Meskipun begitu, struktur direktori dua
tingkat ini masih memiliki kerugian, terutama bila beberapa pengguna ingin
mengerjakan tugas secara kerjasama dan ingin mengakses berkas dari salah satu
pengguna lain. Beberapa sistem secara sederhana tidak mengizinkan berkas
seorang pengguna diakses oleh pengguna lain.
3. Direktori
dengan Struktur Tree
Dalam struktur ini, setiap pengguna
dapat membuat subdirektori sendiri dan mengorganisasikan berkas-berkasnya.
Dalam penggunaan normal, tiap pengguna memiliki apa yang disebut direktori saat
ini. Direktori saat ini mengandung berkas-berkas yang baru-baru ini digunakan
oleh pengguna.
4. Direktori
dengan Struktur Graf Asiklik (Acyclic structured Directory)
Direktori dengan struktur tree melarang
pembagian berkas/direktori. Oleh karena itu, struktur graf asiklik
memperbolehkan direktori untuk berbagi berkas atau subdirektori. Jika ada
berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini
menyediakan fasilitas sharing.
5. Direktori dengan Struktur Graf Umum
Masalah yang timbul dalam penggunaan
struktur graf asiklik adalah meyakinkan apakah tidak ada siklus. Bila kita
mulai dengan struktur direktori tingkat dua dan memperbolehkan pengguna untuk
membuat subdirektori, maka kita akan mendapatkan struktur direktori tree.
Sangatlah mudah untuk mempertahankan sifat pohon, akan tetapi, bila kita
tambahkan sambungan pada direktori dengan struktur pohon, maka sifat pohon akan
musnah dan menghasilkan struktur graf sederhana.
Bila siklus diperbolehkan dalam
direktori, tentunya kita tidak ingin mencari sebuah berkas 2 kali. Algoritma
yang tidak baik akan menghasilkan infinite loop dan tidak pernah berakhir. Oleh
karena itu diperlukan skema pengumpulan sampah (garbagecollection scheme).
Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai tiap
berkas yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak ditandai
pada tempat yang kosong. Hal ini tentunya dapat menghabiskan banyak waktu.
Direktori Standar
Setelah proses instalasi, Linux
mencipatakan sistem file yang baku, terdiri atas direktori sebagai berikut :
1. /bin
Berisi binari (program) atau aplikasi
yang lebih umum dan dapat digunakan oleh semua user.seperti perintah ps, ls,
ping, grep, cp).
2. /sbin
Merupakan super binary’
(biner-binersistem yang penting), biasanya aplikasi-aplikasi bagi admin.
umumnya dicadangkan untuk superuser, memuat perintah-perintah yang digunakan
oleh super user seperti arp, halt, shutdown, route, swapon, iptables, reboot,
fdisk, ifconfig
3. /home
Merupakan direktori home bagi
masing-masing user. Pengguna biasa dapat menulis file hanya dalam direktori
mereka (/home). Keterbatasan ini melindungi sistem dari bermasalah aktivitas
pengguna.)Direktori /home merupakan direktori yang paling ‘dekat’ dengan user.
Direktori /home ini bisa berisi dari dokumen-dokumen pekerjaan user hingga
file-file hiburan
4. /usr
Merupakan direktori yang berisi aplikasi
dan berkas yang tersedia untuk digunakan untuk pengguna (users)
· /
usr / bin (Direktori berisi program executable terinstal dengan distribusi
Linux Anda. Hal ini untuk menampung ribuan program)
· /
usr / lib (shared library ini untuk program di / usr / bin)
· /
usr / local (Direktori di mana program yang tidak disertakan dengan distribusi
Anda tetapi dimaksudkan untuk seluruh sistem penggunaan diinstal. Program
disusun dari kode sumber biasanya dipasang di / usr / local / bin. Pada sistem
Linux yang baru diinstal direktori ini ada tetapi akan kosong sampai
administrator sistem menempatkan sesuatu di dalamnya.
· /
usr / sbin (Berisi program sistem administrasi lanjutan)
· /
usr / share (Derektori berisi semua data bersama yang digunakan oleh program di
/ usr / bin. Ini termasuk hal-hal seperti standar file konfigurasi, ikon, latar
belakang layar, suara file, dll)
· /
usr / share / doc (Kebanyakan paket diinstal pada sistem akan mencakup beberapa
jenis dokumentasi. Di / usr / share / doc, kita akan menemukan file dokumentasi
yang diselenggarakan oleh paket)
5. /opt
/Direktory tempat ter-install-nya
aplikasi tambahan dan dapat di akses oleh semua user. Hal ini terutama
digunakan untuk menyimpan produk perangkat lunak komersial yang dapat diinstal
pada sistem Anda)
6. /
(root)
Merupakan root atau akar dari seluruh
direktori global. Partisi dimana di letakkan / (root system) akan menjadi
direktori sistem atau partisi pokok. Merupakan direktori home-nya superuser
(root).
7. /tmp
Merupakan singkatan dari temporer adalah
direktori yang disediakan ketika dibutuhkan ruang sementara dalam melakukan
pekerjaan, beberapa konfigurasi menyebabkan direktori ini harus dikosongkan
setiap kali sistem reboot). Direktori /tmp memiliki mode yang sangat terbuka
sehingga mudah untuk ditulisi oleh siapa saja. Didalam /var/tmp juga digunakan
sebagai penyimpanan file-file sementara, bedanya /var/tmp dengan /tmp yaitu
/var/tmp tidak akan dibersihkan saat system reboot.
8. /etc
Direktori yang berisi semua seluruh
sistem file konfigurasi. Segala sesuatu dalam direktori ini harus teks yang
dapat dibaca. Contoh : /etc/resolv.conf, /etc/logrotate.conf)
9. /mnt
Direktori yang berisi informasi device
yang terpasang (mount) di dalam komputer). Pada Linux yang masih umum
menggunakan kernel 2.4.x. Untuk tempat mengumpulkan mount point berada di /mnt.
Dikarenakan pada sistem berbasis kernel 2.6.x sudah menggunakan /media, maka
/mnt ini umumnya kosong. /mnt bisa juga dijadikan mount point pada saat system
rescue atau troubleshooting.
10. /var
Merupakan kependekan dari Variable
Files. berisi berkas log dan database. berisikan file-file log sistem
(/var/log), paket dan file database (/var/lib), email (/var /mail), print
queues (/var/spool), lock files (/var/lock), temporary file yang dibutuhkan
saat reboot (/var/tmp), dll). Sangat dianjurkan /var ini untuk diletakkan di
partisi terpisah dikarenan direktori /var dapat membengkak dengan sangat cepat.
11. /boot
Direktori boot tesimpan file-file boot
loader diantaranya grub atau lilo. Juga berisi kernel Linux, RAM disk image
awal (untuk driver yang diperlukan pada saat boot), dan boot loader. Menarik
file:
* / boot / grub / grub.conf atau
menu.lst, yang digunakan untuk
mengkonfigurasi boot loader
* / boot / vmlinuz, kernel Linux)tempat
penyimpanan berkas yang di perlukan untuk mem-boot computer
/boot – file-file konfigurasi boot,
kernel, dan file lain yang dibutuhkan ketika sistem booting
12. /sys
Merupakan berkas sistem (system)
mengandung informasi mengenai sistem. Berisi informasi yang berkaitan dengan
kernel, device dan firmware.
13. /lib
Merupakan pustaka-pustaka yang
diperlukan oleh sistem. Di direktori ini juga tersimpan berbagai macam librari
yang digunakan untuk aplikasi lain. Konsep penggunaan librari bersama ini
membuat aplikasi di linux dapat menghemat ukuran.
14. /dev
Berisi file-file device (divais) seperti
/dev/tty, /dev/input/mice. Merupakan directory yang isi sebenarnya bukan
benar-benar berisi file. Isi dari /dev ini berkaitan dengan perangkat-perangkat
yang terdapat pada system. Misalkan untuk informasi port serial, port printer,
dapat di berlakukan seperti membaca file. Misalkan perangkat serial terletak di
/dev/tty01, kemudian partisi dalam harddisk di sebut sebagai /dev/sda7. dan
lain sebagainya.
15. /media
Merupakan direktori yang berisikan mount
point untuk media removable seperti sebagai USB drive, CD-ROM, dll yang sudah
terpasang secara otomatis pada saat Install. Pada distro-distro modern, sudah
memberikan fasilitas untuk menampilkan device-device yang dimount ke depan
Desktop. Sehingga pengguna tidak perlu susah-dan-repot menuju ke /media untuk
dapat mengakses flash disk-nya tapi cukup lihat ke desktop-nya dan masuk ke direktori
yang teerbuat baru di sana. Untuk workstation yang terintegrasi dengan
jaringan, pada umumnya untuk melakukan mounting storage network juga diletakkan
di /media. Dengan dikelompokkan seperti itu maka mudah untuk mengenali bahwa
semua yang berada di dalam /media merupakan media penyimpan.
16. /proc
Direktori dinamis khusus yang menangani
informasi mengenai kondisi sistem, termasuk proses-proses yang sedang berjalan.
Berisi informasi tentang proses sistem baik itu filesystem virtual dengan
informasi teks tentang sumber daya sistem maupun berisi informasi tentang
menjalankan proses.Contoh : /proc/{pid}, /proc/uptime). Isi dari /proc ini
adalah infomasi dari sistem, tetapi jika kita mengubah isi informasi dari
beberapa file /proc juga dapat mengubah sifat jalannya sistem.
LATIHAN DAN TUGAS
Latihan 1 : dirktori
1. Melihat
direktori HOME
$ pwd
$ echo
$ HOME
2. Melihat
direktori actual dan parent direktori.
$ pwd
$ cd .
$ pwd
$ cd ..
$ pwd
$ cd
Membuat suatu direktori, lebih dari satu
direktori atau sub direktori
$ pwd
$ mkdir A B C A/D A/E B/F A/D/A
$ ls -l
$ ls –l A
$ ls –l A/D
$ cd
3. Menghapus
satu atau lebih direktori hanya dapat dilakukan pada direktori kosong dan hanya
dapat dihapus oleh pemiliknya kecuali bila diberikan ijin aksesnya.
$ rmdir B (Terdapat pesan error)
$ ls –l B
$ rmdir B/F B
$ ls –l B (terdapat pesan error,
mengapa?)
4. Navigasi
direktori dengan instruksi cd untuk pindah dari satu direktori ke direktori
lain.
$ pwd
$ ls –l
$ cd A
$ pwd
$ cd ..
$ pwd
$ cd /home/<user>/C
$ pwd
$ cd /<user>/C (Terdapat
pesan error, mengapa?)
Latihan 2 : Manipulasi File
1. Perintah
cp untuk mengkopi file atau seluruh direktori.
$ cat > contoh
Membuat sebuah file
$ cp contoh contoh1
$ ls –l
$ cp contoh A
$ ls –l A
$ cp contoh contoh1 A/D
$ ls –l A/D
2. Perintah
mv untuk memindahkan file
$ mv contoh contoh2
$ ls –l
$ mv contoh1 contoh2 A/D
$ ls –l A/D
$ mv contoh contoh1 C
$ ls –l A/D
3. Perintah rm untuk menghapus file
$ rmdir contoh2
$ ls –l
$ rm –I contoh
$ rm –rf A C
$ ls -l
Latihan 3 : Symbolic Link
Membuat shortcut (file link)
$ echo “Hallo apa kabar?” >
halo.txt
$ ls -l
$ ln hallo.txt z
$ ls -l
$ cat z
$ mkdir mydir
$ ln z mydir/halo. juga
$ cat mydir/halo. Juga
$ ln –s z bye.txt
$ ls –l bye.txt
$ cat bye.txt
Latihan 4 : melihat
isi file
$ ls -l
$ file halo.txt
$ file bye.txt
Latuihan 5 : Mencari
file
1. Perintah
find
$ find /home –name “*.txt” –pront
> myerror.txt
$ cat myerror.txt
2. Perintah which
$ which ls
2. Perintah
locate
$ locate “*.txt”