Anda di halaman 1dari 116

DAFTAR ISI

LEMBAR PENGESAHAN...................................................................iii
KATA PENGANTAR...........................................................................v
DAFTAR ISI...................................................................................vii

BAB I SISTEM OPERASI GNU/LINUX..............................................1


1.1 Dasar Teori........................................................................1
1.1.1 Sistem Operasi...........................................................1
1.1.2 Linux.........................................................................2
1.1.3 GNU..........................................................................3
1.1.4 X Window...................................................................4
1.2 Percobaan Praktikum...........................................................5

BAB II PERINTAH DASAR DAN ADMINISTRASI USER...................13


2.1 Dasar Teori......................................................................13
2.1.1 Perintah Dasar..........................................................13
2.1.1.1 Prompt.............................................................13
2.1.1.2 Bentuk Dasar Perintah........................................13
2.1.1.3 Administrasi File................................................15
2.1.2 Konsep User dan Group..............................................18
2.1.2.1 User dan Group.................................................18
2.1.2.2 Administrasi User dan Group...............................19
2.1.2.3 Utilitas Administrasi User dan Group.....................21
2.2 Percobaan Praktikum.........................................................24
2.2.1 Membuat user...........................................................24
2.2.2 Login dengan user.....................................................24
2.2.3 Melihat identitas diri (user id dan group id)...................24
2.2.4 Mengganti prompt.....................................................24
2.2.5 Mendaftarkan user biasa untuk login sebagai root..........24
2.2.6 User biasa login sebagai root......................................25
2.2.7 Membuat alias...........................................................25
2.2.8 Menghapus nama alias...............................................25
2.2.9 Menggunakan manual................................................25
2.2.10 Menghapus user........................................................25
2.3 Studi Kasus......................................................................25

BAB III SISTEM FILE....................................................................27


3.1 Dasar Teori......................................................................27
3.1.1 Sistem File...............................................................27
3.1.2 Partisi......................................................................29
3.1.3 Struktur Direktori......................................................30
3.1.4 Properti File..............................................................32
3.1.5 Mengakses Partisi Windows.........................................35
3.1.6 Mengakses cdrom......................................................37
3.2 Percobaan Praktikum.........................................................37
3.2.1 Memeriksa sistem file.................................................37
3.2.2 Melihat partisi yang ada di harddisk.............................37
3.2.3 Melihat struktur direktori............................................37
3.2.4 Melihat properti file....................................................37
3.2.5 Mengubah hak akses file............................................37
3.2.6 Mengakses partisi NTFS..............................................38
3.2.7 Mengakses CDROM....................................................38

BAB IV KONFIGURASI LINUX.......................................................39


4.1 Dasar Teori......................................................................39
4.1.1 File konfigurasi utama................................................40
4.1.2 Boot Loader..............................................................43
4.1.3 Run Level.................................................................46
4.1.4 Tabel Sistem File.......................................................48
4.2 Percobaan Praktikum.........................................................49
4.2.1 Konfigurasi file issue..................................................49
4.2.2 Konfigurasi file motd..................................................50
4.2.3 Konfigurasi file rc.local...............................................50
4.2.4 Konfigurasi file grub.conf dan Run Level.......................51
4.2.5 Konfigurasi file fstab..................................................52

BAB V UTILITAS LINUX................................................................53


5.1 Dasar Teori......................................................................53
5.1.1 Kompresi dan Dekompresi File...................................53
5.1.2 Pengarsipan file.........................................................53
5.1.3 Instalasi Program Aplikasi...........................................54
5.1.4 Pencarian File...........................................................56
5.2 Percobaan Praktikum.........................................................56
5.2.1 Kompresi dan Dekompresi File....................................56
5.2.2 Pengarsipan File........................................................57
5.2.3 Instalasi Program Aplikasi dengan RPM.........................58
5.2.4 Instalasi Program Aplikasi dengan Source Code.............59
5.2.5 Pencarian File...........................................................60

BAB VI PROSES I/O.....................................................................61


6.1 Dasar Teori......................................................................61
6.1.1 Proses I/O................................................................61
6.1.2 Redirection...............................................................62
6.1.3 Filter........................................................................62
6.1.3.1 grep.................................................................62
6.1.3.2 sort..................................................................63
6.1.3.3 uniq.................................................................63
6.1.3.4 wc...................................................................63
6.1.3.5 cut...................................................................63
6.1.3.6 more................................................................63
6.1.3.7 tail...................................................................64
6.1.3.8 head................................................................64
6.1.3.9 Pipeline............................................................64
6.2 Percobaan Praktikum.........................................................64
6.2.1 Redirection...............................................................64
6.2.2 Percobaan Filter........................................................64
6.2.3 Percobaan Pipeline.....................................................65

BAB VII MANAJEMEN PROSES......................................................67


7.1 Dasar Teori......................................................................67
7.1.1 Multi-tasking dan multi-user.......................................67
7.1.2 Konsep Proses...........................................................67
7.1.3 Melihat Proses...........................................................68
7.1.4 Melakukan analisa setiap Proses..................................71
7.1.5 Mengendalikan Proses................................................71
7.1.5.1 Melakukan interrupt pada proses.........................71
7.1.5.2 Penjadwalan Proses............................................73
7.1.6 Percobaan Praktikum.................................................74
7.1.6.1 Membuat proses................................................74
7.1.6.2 Melihat proses...................................................75
7.1.6.3 Mengendalikan proses........................................76

BAB VIII PEMROGRAMAN SHELL 2...............................................79


8.1 Dasar Teori......................................................................79
8.1.1 Pengertian Shell........................................................79
8.2 Percobaan Praktikum.........................................................84
8.3 Studi Kasus......................................................................87

BAB IX PEMROGRAMAN SHELL 2..................................................89


9.1 Dasar Teori......................................................................89
9.1.1 Status exit................................................................89
9.1.2 Percabangan.............................................................90
9.1.3 Perulangan...............................................................95
9.1.4 Fungsi......................................................................98
9.2 LANGKAH PRAKTIKUM......................................................100
BAB I
SISTEM OPERASI GNU/LINUX
1.1 Dasar Teori
1.1.1 Sistem Operasi
Secara sederhana sistem komputer terdiri atas hardware, sistem
operasi, program aplikasi dan user yang menggunakan sistem komputer
tersebut. Secara sederhana sistem operasi dapat didefinisikan sebagai antar
muka antara user dengan hardware. Atau dengan kata lain, sistem operasi
merupakan software yang digunakan untuk mengatur kerja hardware serta
menyediakan lingkungan di mana seorang user dapat menjalankan program
aplikasi. Berdasarkan kemampuan untuk menangani user dan proses yang
dijalankan, sistem operasi dapat digolongkan menjadi sistem operasi
standalone dan sistem operasi multiuser. Pada sistem operasi standalone,
komputer hanya dapat melayani satu user pada saat yang bersamaan, tetapi
proses yang ditangani bisa lebih dari satu pada saat yang bersamaan.
Sedangkan pada sistem operasi multiuser, komputer dapat digunakan untuk
melayani proses dari banyak pemakai pada saat yang bersamaan
(multitasking).

Semua sistem operasi terdiri atas tiga bagian utama, yaitu:

 Kernel
Kernel merupakan program yang dimuat ke dalam memori ketika
komputer dinyalakan. Kernel bertanggung jawab untuk mengendalikan
hardware, menyediakan lingkungan agar program lainnya dapat
berjalan serta mengatur alokasi waktu dan memori untuk program-
program yang sedang dijalankan oleh komputer. Selain itu kernel juga
bertugas untuk mengendalikan bagaimana file dan direktori disimpan
dalam harddisk.

 Utilitas Standar
Yang dimaksud dengan utilitas standar adalah program kecil yang
digunakan untuk melakukan fungsi-fungsi sederhana seperti
menampilkan isi file, menampilkan daftar file dalam suatu direktori,
mengcopy file serta fungsi-fungsi sederhana lainnya.

 File Database Sistem


File database sistem merupakan file-file yang dibutuhkan agar sistem
operasi dapat berjalan. Contoh file database sistem adalah file
/etc/passwd, /etc/shadow pada keluarga sistem operasi UNIX.
Berikut merupakan struktur dari sistem operasi:

1.1.2 Linux
Linux dikembangkan oleh seorang mahasiswa Finlandia yang
bernama Linus Benedict Torvalds. Dulunya, Linux merupakan proyek hobi
yang diinspirasikan dari Minix, yaitu sistem UNIX kecil yang dikembangkan
oleh Andrew Tanenbaum. Linux versi 0.01 dikerjakan sekitar bulan Agustus
1991. Tanggal 5 Oktober 1991, Linus mengumumkan versi resmi Linux,
yaitu versi 0.02 yang pada saat itu hanya dapat menjalankan bash (GNU
Bourne Again Shell) dan GCC (GNU C Compiler). Istilah Linux sebenarnya
hanya mengacu pada nama sebuah kernel.
Kernel linux memiliki versinya sendiri-sendiri, sebagai contoh:
2.6.10
artinya :
 2 Menunjukan major version, atau versi utama dari kernel.
 6 menunjukan minor version, bila angka genap (2, 4, 6, dst..) maka
tergolong dalam versi produksi. Sebaliknya bila angka ganjil (1, 3, 5,
dst..) maka tergolong versi pengembangan, yang dipublikasikan
dengan tujuan pengembangan, hingga akhirnya menjadi versi yang
stabil.
 10 menunjukan angka peluncuran (release). Semakin tinggi berarti
semakin stabil dan memperbaiki dari versi yang sebelumnya.

Agar menjadi sebuah sistem operasi yang lengkap, kernel linux


kemudian digabungkan dengan berbagai program aplikasi. Maka kemudian
munculah istilah distro. Distro adalah bundel dari kernel linux beserta sistem
dasar linux, program instalasi, tools-tools standar, dan program-program lain
yang kebanyakan berlisensi GPL (General Public Lisense). Terdapat banyak
sekali distro Linux, diantaranya :
 RedHat, merupakan distribusi yang paling populer, minimal di
Indonesia. RedHat merupakan distribusi pertama yang instalasi dan
pengoperasiannya mudah.
 Debian, distribusi yang mengutamakan kestabilan dan kehandalan,
meskipun mengorbankan aspek kemudahan dan kemutakhiran
program.
 Slackware, merupakan distribusi yang pernah merajai di dunia Linux.
Hampir semua dokumentasi Linux disusun berdasarkan Slackware. Dua
hal penting dari Slackware adalah bahwa semua isinya (kernel, library
ataupun aplikasinya) adalah yang sudah teruji. Sehingga mungkin agak
tua tapi yang pasti stabil. Yang kedua adalah si pembuat distro ini
menganjurkan untuk menginstal dari source sehingga setiap program
yang kita instal teroptimasi dengan sistem kita. Ini alasan mengapa
slackware tidak menggunakan binary RPM dan sampai versi Slackware
4.0 tetap menggunakan libc5 bukan glibc2 seperti yang lain.
 SuSE, distribusi yang sangat terkenal dengan YaST (Yet another Setup
Tools) untuk mengkonfigurasi sistem. SuSE merupakan distribusi
pertama proses instalasinya dapat menggunakan bahasa Indonesia.
 Mandrake, merupakan turunan distro RedHat yang dioptimasi untuk
mesin pentium. Jika komputer kita menggunakan pentium ke atas,
umumnya Linux bisa jalan lebih cepat dengan Mandrake.
 WinLinux, distro yang dirancang untuk diinstal di atas partisi DOS
(WIndows). Jadi untuk menjalankannya bisa di-klik dari Windows.
WinLinux dibuat seakan-akan merupakan suatu program aplikasi under
Windows.

Linux memiliki berbagai kelebihan jika dibandingkan dengan sistem


operasi lainnya. Kelebihan yang dimaksud diantaranya adalah:
 Sebagai sistem operasi yang mengadopsi UNIX, linux tergolong dalam
sistem operasi yang multiuser dan multi tasking.
 Portabilitas, maksudnya linux dapat dijalankan atau bahkan
dipindahkan dari satu platform komputer ke platform lainnya.
 Linux menyertakan aplikasi dan library untuk pengembangan sistem.
 Murah, mudah didapatkan serta mendidik untuk pintar.

1.1.3 GNU
Jauh sebelum Linux dibuat tepatnya pada bulan September 1985,
Richard Stallman mendirikan Free Software Foundation(FSF). FSF adalah
sebuah yayasan yang dibuat untuk pengembangan software bebas. Proyek
mereka disebut juga GNU (GNU's Not Unix) dengan tujuan utama membuat
sistem operasi mirip UNIX namun bebas (maksud bebas di sini akan
diterangkan kemudian). Keberhasilan pertama proyek ini adalah membuat
GNU Emacs sebuah editor multifungsi. Sementara keberhasilan yang cukup
gemilang adalah GCC (GNU C Compiler), yaitu sebuah compiler untuk
bahasa C. Program-program tersebut dilisensikan di bawah bendera GNU
GPL (General Public License).
Sebagian besar software yang terdapat pada GNU/Linux, termasuk
kernel Linux itu sendiri, juga menganut lisensi GNU General Public License
(GPL). Lisensi ini disebut juga Free Software, yang sering disalahartikan
sebagai software gratis ( freeware), padahal maksud sebenarnya adalah
software bebas.
Secara garis besar GPL menjamin tiap orang yang menggunakan
program dengan lisensi GPL untuk memiliki empat macam kebebasan
sebagai berikut:
1. Bebas untuk menjalankan program komputer, untuk tujuan apa saja.
2. Bebas untuk mempelajari bagaimana cara kerja program, dan
memodifikasinya sesuai dengan kebutuhan. Akses terhadap kode
sumber(source code) merupakan hal yang dipersyaratkan.
3. Bebas untuk mendistribusikan salinan, baik gratis maupun dengan
menarik biaya.
4. Kebebasan untuk memperbaiki dan mengeluarkan perbaikan tersebut
kepada umum, sehingga mendatangkan keuntungan bagi masyarakat
secara keseluruhan. Akses terhadap kode sumber (source code)
merupakan hal yang dipersyaratkan.

Dalam rangka pendistribusian, diperkenankan untuk memungut biaya


atas penyalinan dan garansi atas program yang memiliki lisensi tersebut.
Dan satu lagi poin penting adalah program yang menggunakan lisensi GPL
mengharuskan setiap perubahan, penambahan atau perbaikan dari program
komputer tersebut dilisensikan dengan menggunakan lisensi GPL.

1.1.4 X Window
X Window Sistem adalah lingkungan grafis yang komplek untuk
sistem operasi berbasis UNIX (Unix, Linux, BSD dll) yang digunakan sebagai
interface (antarmuka) antara user sebagai pengguna dengan sistem operasi.
Diluncurkan pertama kali pada tahun 1984. Sekarang, hampir seluruh
workstation UNIX di dunia menggunakan varian X Window Sistem untuk
sistem GUI (Graphical User Interface).
Ada beberapa prinsip dan istilah yang harus anda ketahui artinya
agar dalam menggunakan X tidak menemui batu sandungan. Istilah-istilah
ini akan muncul berkali-kali dalam manual dan file-file Help. Istilah-istilah
tersebut antara lain :
 Screen adalah seluruh desktop, secara teknis dapat dijelaskan artinya
tampilan layar utama yang X lihat. Anda dapat mempunyai lebih dari 1
screen, bahkan sebenarnya anda dapat mempunyai lebih dari 1
komputer menjalankan 1 buah X server, tetapi pembahasan akan itu
merupakan pembahasan yang amat kompleks, tetapi anda harus
mengetahui akan kemungkinan ini.
 Window manager (deskstop environment) adalah interface utama
antara X Window Sistem dengan user. Tanpa window manager, sistem
akan lebih sulit digunakan dan tidak akan terlalu produktif. Window
manager menyediakan fungsi-fungsi pengontrolan dan kustomisasi
border, menu, icon, virtual desktop, button, toll bar dari X Window.

Macam – macam window manager antara lain :


1. KDE (K Desktop Environment)
2. GNOME (GNU Network object Model Environment)
3. WindowMaker
4. IceWM
5. BlackBox

Tapi untuk saat ini desktop environment yang paling banyak


digunakan adalah KDE dan GNOME.

KDE Desktop Environment adalah hasil sebuah proyek untuk


menciptakan desktop environment yang solid dan terintegrasi, bukan
hanya sebuah window manager. Utiliti KDE sangat lengkap hingga
seorang newbie dapat saja mengatakan bahwa KDE adalah sebuah
Sistem Operasi.

GNOME adalah proyek lainnya yang sama dengan KDE namun


berbeda dalam sistem dan kemampuan. GNOME tidak saja
merupakan sebuah window manager, tetapi sistem desktop yang
interoperable antar komputer dan platform.
Hampir semua distribusi Linux menyertakan kedua Desktop
Environment tersebut. Beberapa distribusi menggunakan KDE sebagai
default

1.2 Percobaan Praktikum


Pada bagian ini, kita akan melakukan proses instalasi CentOS. Hal-hal
yang perlu dipersiapkan sebelum melakukan instalasi linux antara lain:
 Mengetahui spesikasi hardware
 Rencana alokasi ruang harddisk
 Pemilihan paket software (sesuaikan dengan kegunaan komputer
tersebut nantinya)

Secara garis besar, urutan proses instalasi CentOS adalah sebagai


berikut :
1. Pemilihan Bahasa
Pilih salah satu bahasa yang akan digunakan ketika proses instalasi.
CentOS mendukung banyak bahasa, dari Inggris, Amerika sampai
Amerika Latin.

2. Modifikasi Partisi
Pilih salah satu cara untuk mengatur alokasi ruang hardisk yang
dipersiapkan untuk instalasi linux. Terdapat berbagai cara yang dapat
dipilih, yaitu:
 Mengubah secara otomatis.
 Menggunakan utiliti Disk Druid

Pada tampilan ini ada 4 opsi untuk partisi hardisk


1. Remove all partition :
opsi ini akan menghapus semua partisi yang ada pada hardisk
2. Remove linux partition :
opsi ini akan menghapus semua partisi yang terdeteksi sebagai
partisi linux
3. Use free space :
opsi ini akan secara otomatis mengalokasikan partisi yang
kosong pada hardisk
4. Create custom layout :
opsi ini akan memberikan kebebasan user untuk menentukan
partisi yang akan digunakan
**NOTE** Disarankan untuk memilih opsi Create custom layout,
karena opsi yang lain bisa menyebabkan kehilangan data.

 Kemudian buatlah file sistem swap. Pada umumnya ukuran


dari file sistem ini adalah 2x ukuran RAM fisik.
 Swap adalah alokasi memory virtual yang akan digunakan
oleh sistem jika memory fisik sudah habis terpakai untuk men-
jalankan proses

 b u a t l a h p a

diinstal.
 File sistem yang digunakan adalah ext3. Yaitu salah satu file
sistem yang dikenali oleh linux. Untuk lebih jelasnya akan dije-
laskan pada bab III.

3. Konfigurasi Boot Loader


Konfigurasi yang dilakukan diantaranya: pemberian password boot
loader serta menentukan tempat di mana boot loader akan diinstal.
Default Boot Loader dari CentOS ini adalah GRUB.

4. Konfigurasi Jaringan
Lakukan konfigurasi hanya jika terdapat kartu jaringan dalam
komputer.
5. Pemilihan Zona Waktu
Pilih zona waktu yang akan digunakan.
6. Membuat Password root
Set password untuk root, untuk authentikasi user root. Password
yang baik terdiri dari gabungan huruf, angka dan karakter. Panjang
minimal adalah 6 karakter.
7. Pemilihan Paket
Pilih opsi customize now untuk memilih paket aplikasi yang akan di
instal.

Instalasi Sistem Operasi Dual Boot


Beberapa hal yang harus diperhatikan dalam melakukan instalasi 2
Sistem Operasi(SO) atau lebih pada sebuah komputer adalah :

 Sediakan space kosong terlebih dahulu pada harddisk kita untuk


SO yang akan diinstal.
 Lakukan instalasi pada space kosong (free space) tersebut.
 Telitilah dalam membuat pratisi setiap kali ingin menambahkan
SO pada sistem kita.
 Jangan pernah mengubah/mengedit/menghapus partisi yang
sudah ada sebelumnya.
 Cermati type file sistem yang ada ketika melakukan partisi
harddisk, seperti :
o NTFS/FAT/FAT32/VFAT merupakan jenis file sistem
untuk SO Windows.
o ext2, ext3, swap, dsb merupakan jenis file sistem untuk
SO Linux.
BAB II
PERINTAH DASAR DAN ADMINISTRASI USER

2.1 Dasar Teori


2.1.1 Perintah Dasar
2.1.1.1 Prompt
Shell merupakan antar muka antara user dengan kernel. Tugas
utama shell adalah menerima perintah dari user kemudian mengirimkan
kepada kernel untuk dieksekusi. Sebagai tempat di mana user dapat
memberikan perintah, shell akan memberikan sebuah prompt. Prompt
shell juga sering digunakan untuk membedakan super user (root)
dengan user biasa (ordinary user). Bentuk dari prompt shell pada bourne
again shell yang akan kita gunakan adalah sebagai berikut:

[root@sisjarkom ~]#

Keterangannya:
Root : nama user yang sedang menggunakan shell
Localhost : nama host
~ : posisi direktori aktif
# : propt untuk menandakan super user, jika menggunakan
user biasa akan bertanda $

2.1.1.2 Bentuk Dasar Perintah


Secara umum perintah dasar yang digunakan dalam sistem Linux
mempunyai aturan penulisan sebagai berikut:

perintah [option…] [argument…]

Option merupakan pilihan yang dapat digunakan untuk memberikan


hasil tertentu dari suatu perintah.
Argument merupakan sesuatu yang akan diproses oleh perintah,
misalnya nama file atau nama direktori.

Beberapa perintah dasar yang biasa digunakan adalah:


Perintah Fungsi
Cp Menyalin file (copy)
Memindahkan file dari satu direktori ke direktori yang lain.
Selain itu perintah mv juga dapat digunakan untuk me- rename
file. Bila argumen yang kedua berupa sebuah direktori maka
Mv
mv akan memindahkan file ke direktori tersebut. Namun bila
kedua argumen berupa file maka nama file pertama akan
menimpa file kedua. (move)
rm Menghapus file (remove)
mkdir Membuat direktori (make directory)
rmdir Menghapus direktori (remove directory)
ls Melihat isi direktori
Mencetak / menampilkan current working directory
pwd ( direktori aktif tempat user berada saat mengetikkan
perintah ini)
cd Pindah direktori (change directory)
touch Membuat file kosong
cat Menampilkan isi file
more Menampilkan isi file per screen,namun tidak
mendukung scroll back
less Menampilkan isi file per screen, namun juga
mendukung tampilan per baris serta scroll back.
ln Membuat link ke sebuah file baru yang mengacu pada
file yang telah ada
locate Mencari file data ataupun file program. Locate
melakukan pencarian ke dalam database locatedb
find Mencari file ke dalam seluruh direktori yang ada dalam
sistem
history Menampilkan perintah yang telah digunakan
sebelumnya
whatis Menampilkan secara singkat kegunaan dari suatu
perintah
whereis Mendapatkan informasi letak direktori yang menyimpan
file perintah yang diinginkan
hostname Menampilkan informasi mengenai nama komputer

uname Menampilkan informasi mengenai sistem operasi yang


digunakan
id Menampilkan UID dan GID dari pemakai yang sedang
login
who Menampilkan user yang sedang login di sistem
whoami Hampir sama dengan who, hanya saja yang ditampilkan
hanya nama user saja
su Digunakan untuk login menggunakan account user
yang lain tanpa harus melakukan logout
w Menampilkan siapa saja yang sedang login
printenv Mencetak informasi environment variabel sistem
ps Menampilkan informasi status proses yang sedang
dijalankan
top Hampir sama dengan ps, hanya saja top lebih interaktif,
karena selalu terupdate
Date Menampilkan informasi waktu sistem
cal Menampilkan kalender
Man Menampilkan manual dari suatu perintah
Alias Membuat nama lain dari suatu perintah
Unalias Menghapus nama alias yang telah dibuat
Clear Membersihkan tampilan layar monitor
Login Login ke sistem
Logout Keluar dari sistem
Poweroff Mematikan komputer
Reboot merestart

Manual
Dalam sistem linux, user dapat mendapatkan informasi mengenai suatu
perintah beserta cara-cara untuk menggunakan suatu perintah dengan
cara mengetikkan:
man [opsi] [nama_perintah]

2.1.1.3 Administrasi File


Pengelolaan file dan direktori di Linux apabila menggunakan mode
grafis, sangat mudah dilakukan dan hampir sama dengan yang ada di
sistem operasi Microsoft Windows. Tetapi apabila menggunakan
command line (tampilan text), sedikit berbeda. Berikut adalah beberapa
di antaranya :
1. Melihat isi direktori
Dapat digunakan perintah dir, atau dapat juga dengan perintah ls,
diikuti nama direktori yang akan dilihat isinya. Apabila tidak diikuti
argumen apapun, maka yang akan ditampilkan adalah isi dari
direktori aktif saat itu.

[root@sisjarkom ~]# dir /root


anaconda-ks.cfg Desktop instal.log
instal.log.syslog

[root@sisjarkom ~]# ls
anaconda-ks.cfg Desktop instal.log
instal.log.syslog

2. Membuat direktori
Untuk membuat direktori, dapat digunakan perintah mkdir.
[root@sisjarkom ~]# ls
praktikum/
[root@sisjarkom ~]# mkdir latihan

[root@sisjarkom ~]# ls
latihan/ praktikum/

3. Membuat file
Dapat digunakan menggunakan perintah touch, atau dengan
menggunakan editor seperti vi. Penjelasan mengenai vi akan
dijelaskan pada bab-bab berikutnya.
[root@sisjarkom ~]# ls
latihan/ praktikum/

[root@sisjarkom ~]# touch diqa.txt

[root@sisjarkom ~]# ls
diqa.txt latihan/ praktikum/

4. Membaca file
Dapat digunakan teks editor seperti vi. Tetapi dapat juga digunakan
perintah cat.
[root@sisjarkom ~]# cat diqa.txt

5. Meng-copy file atau direktori


Dapat digunakan perintah cp, diikuti nama file asal dan nama file
tujuan.
cp [file_asal] [file_tujuan]

[root@sisjarkom ~]# ls
diqa.txt latihan/ praktikum/

[root@sisjarkom ~]# cp diqa.txt citra.txt

[root@sisjarkom ~]# ls
diqa.txt citra.txt latihan/ praktikum/

Apabila argumen terakhir adalah nama direktori, maka file tadi akan
di-copy ke direktori tersebut.
cp [direktori_file] [direktori_tujuan]

[root@sisjarkom ~]# ls
diqa.txt citra.txt latihan/ praktikum/

[root@sisjarkom ~]# ls latihan


[root@sisjarkom ~]# cp diqa.txt latihan

[root@sisjarkom ~]# ls latihan


diqa.txt

6. Mengubah nama file


Mengubah nama file dilakukan dengan perintah mv.
[root@sisjarkom ~]# ls
diqa.txt citra.txt latihan/ praktikum/

[root@sisjarkom ~]# mv citra.txt yopi.txt

[root@sisjarkom ~]# ls
diqa.txt yopi.txt latihan/ praktikum/

Apabila perintah ini diikuti nama file kemudian diikuti


nama direktori, maka file tadi akan dipindahkan ke
direktori tersebut.
[root@sisjarkom ~]# ls
diqa.txt yopi.txt latihan/ praktikum/

[root@sisjarkom ~]# mv yopi.txt latihan

[root@sisjarkom ~]# ls latihan


diqa.txt yopi.txt

[root@sisjarkom ~]# ls
diqa.txt latihan/ praktikum/

7. Menghapus file
Untuk menghapus file dapat digunakan perintah rm. Setelah perintah
ini, sistem akan menanyakan konfirmasi apakah penghapusan benar-
benar akan dilakukan. Jika tidak ingin mengaktifkan fasilitas ini,
dapat digunakan opsi –f.

[root@sisjarkom ~]# ls
diqa.txt latihan/ praktikum/

[root@sisjarkom ~]# rm –f diqa.txt

[root@sisjarkom ~]# ls
latihan/ praktikum/
8. Menghapus direktori
Untuk menghapus direktori yang kosong dapat digunakan perintah
rmdir.
[root@sisjarkom ~]# ls
latihan/ praktikum/

[root@sisjarkom ~]# rmdir latihan

[root@sisjarkom ~]# ls
praktikum/

sedangkan untuk menghapus direktori yang terdapat file di


dalamnya, maka digunakan perintah rm –rf

[root@sisjarkom ~]# rm –rf latihan

2.1.2 Konsep User dan Group


2.1.2.1 User dan Group
Seperti yang telah disampaikan sebelumnya, linux adalah sistem
operasi yang mendukung multiuser. Multiuser adalah kemampuan sistem
operasi untuk menangani banyak user dalam waktu yang bersamaan.
Dengan multiuser, sistem operasi dapat membedakan antara user yang
satu dengan user yang lain, sekaligus menjaga privasi user tersebut.
Secara umum user di sistem Linux dapat dibedakan menjadi 2,
yaitu:
 Super User (root) – Super user memiliki hak akses penuh, tidak
terbatas terhadap sistem. Dengan menggunakan super user, kita
dapat melakukan apa saja yang berhubungan dengan administrasi
sistem. Login dengan user root digunakan hanya jika bersifat
mendesak, karena tidak ada batasan keamanannya, sehingga sedikit
kelalaian dapat merusak sistem.
 Ordinary User – User tipe ini memiliki keterbatasan hak dan ijin
terhadap sistem.

Administrator sistem dapat melakukan beberapa hal penting berkaitan


dengan user dan group antara lain:
 Pendaftaran nama login
 Pembekuan nama login user
 Penghapusan nama login user
 Pembuatan group baru
 Pembagian group
 Pengaturan direktori home
 Pengamanan file-file password
Dalam sistem Linux, nama login dapat diberikan pada:
 User biasa. Contoh : shinchan, jagoan_neon, unix2008, etc
 Aplikasi. Contoh : mysql, qmail, squid
 Device. Contoh : lp
 Service. Contoh : cron, ftp

2.1.2.2 Administrasi User dan Group


Pada sistem Linux, sebuah nama login dianggap sah dalam suatu
sistem apabila :
 Data-data tercatat dalam file /etc/passwd
 Password dalam bentuk terenkripsi berada pada file /etc/shadow
 Nama login berada pada group yang terdapat di /etc/group

Berikut isi dari file /etc/passwd :

Keterangan bagian-bagian baris dalam file /etc/passwd:

Password Group ID Home direktori user


terenkripsi

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

User ID
Nama login user Keterangan user Shell user
Sedangkan isi dari file /etc/group adalah sebagai berikut:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
ntp:x:38:
gdm:x:42:
dovecot:x:97:
mysql:x:27:
screen:x:84:
postgres:x:26:
cherries:x:500:

Keterangan bagian-bagian baris dalam file /etc/group:

Untuk file /etc/shadow isinya adalah:


root:
$1$RtlNrNnw$T8M0XtnDdcjZxoWNrLOJH/:12953:0:99999
:7:::
bin:*:12953:0:99999:7:::
daemon:*:12953:0:99999:7:::
adm:*:12953:0:99999:7:::
lp:*:12953:0:99999:7:::
sync:*:12953:0:99999:7:::
shutdown:*:12953:0:99999:7:::
halt:*:12953:0:99999:7:::
mail:*:12953:0:99999:7:::
news:*:12953:0:99999:7:::
squid:!!:12953:0:99999:7:::
webalizer:!!:12953:0:99999:7:::
xfs:!!:12953:0:99999:7:::
ntp:!!:12953:0:99999:7:::
gdm:!!:12953:0:99999:7:::
dovecot:!!:12953:0:99999:7:::
mysql:!!:12953:0:99999:7:::
postgres:!!:12953:0:99999:7:::
cherries:$1$l/MKhqNR$lodlyU/
c2N1.LUPxydCM.:12953:0:99999:7:::

Karakter yang diacak di atas adalah password dari user cherries yang
telah dienkripsi, namun masih bersifat read-able.

2.1.2.3 Utilitas Administrasi User dan Group


Dengan menambah, merubah atau menghapus data-data pada file-
file diatas maka kita telah dapat menambah, merubah atau manghapus
user atau group. Namun untuk memudahkan pekerjaan, linux telah
menyiapkan beberapa utilitas yang digunakan untuk memudahkan
administrasi user dan group.
Utilitas tersebut adalah:
 useradd - digunakan untuk menambahkan sebuah user
 userdel - digunakan untuk menghapus user
 usermod - digunakan untuk memodifikasi data-data user
 passwd - digunakan untuk merubah password sebuah user
 groupadd - digunakan untuk menambah sebuah group
 groupdel - digunakan untuk menghapus sebuah group
 groupmod - digunakan untuk memodifikasi data-data group

useradd
Letak file : /usr/sbin/useradd
Fungsi utilitas ini adalah untuk menambahkan user ke sistem. Secara
otomatis menambah user sistem berdasarkan informasi yang ada di
dalam file konfigurasi /etc/adduser.conf. perintah adduser secara
otomastis akan menentukan UID (User Identification) dan GID (Group
Identification). Karena penambahan user ini akan memodifikasi file
konfigurasi penting yaitu: /etc/passwd, maka perintah ini hanya bisa
dijalankan oleh user tertinggi yaitu: root.

Sintaksnya:
adduser [--sistem [--home directory] [--group]]
[--quiet]
[--force-badname] [--help] [--version] [--debug]
username

Atau
adduser [--quiet] [--force-badname] [--help]
[--version]
[--debug] username group

Atau
adduser [--group] [--quiet] [--force-badname]
[--help] [--version] [--debug] group

Atau
useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k
template]] [-f inactive] [-e expire ] [-p passwd]
name

Keterangan:
u : nomor UID (User ID)
g : nomor GID (Group ID)
G : group tambahan
d : direktori home untuk user, kalo tidak diberikan opsi ini maka
secara user akan diberikan direktori home
(/home/namauser). Tapi ini juga harus didasarkan pada file
konfigurasi /etc/useradd.conf
s : default shell (biasanya /bin/bash)
c : info atau deskripsi nama login
m : direktori home akan diciptakan bila belum ada
k : bersama -m memberi isi direktori home
f : jumlah hari sebelum account tersebut kedaluarsa (password
lewat masa berlakunya)
e : tanggal nama login beakhir atau kedaluarsa (expired)
p : password yang telah di enkripsi
D : menetapkan konfigurasi default
Name : nama login
--sistem :menciptakan user sistem. User ini secara otomatis akan
diberikan shell /bin/false dan diberikan password yang
ditandai dengan tanda bintang.
--force-badname : secara default, nama user dan group harus dimulai
dengan huruf kecil lalu kemudian diikuti dengan
huruf kecil lagi atau angka. Dengan opsi ini, maka
penambahan nama user yang keliru akan tetap
diterima.
--help : menampilkan informasi singkat tentang penggunaan
adduser
--version : menampilkan informasi versi dan copyright
--debug : menampilkan inforamsi proses debugging.

Ketika menambahkan sebuah user ke dalam sistem Linux, maka secara


otomatis user tersebut akan diberikan ID. Pemberian ID dari sistem
maintaner diatur menurut:
Range ID Dialokasikan untuk
< 100 Daemon, program dasar sistem
101 – 1000 User sistem dan group. Angka 1000 itu adalah
angka default dari /etc/adduser.conf
> 1000 Cadangan user dan group

userdel
Letak file : /usr/sbin/userdel
Fungsi utilitas ini untuk menghapus user dari sistem. Sintaks :

userdel [-r] username

Keterangan:
r : bila parameter ini disertakan, maka direktori home user
akan turut di hapus.
Username : nama user yang akan dihapus

passwd
Letak file : /usr/sbin/passwd
Fungsi utilitas ini untuk merubah password user. Sintaks:

passwd [username]

Keterangan:
name : nama login user yang ada di dalam sistem. Jika username yang
diberikan tidak terdaftar di dalam sistem, maka Linux akan
menampilkan pesan error seperti dibawah ini:

“user not found”

Untuk penggunaan utilitas lain seperti usermod, groupadd, groupdel,


dapat melihat manual utilitas tersebut dengan cara mengetikkan:

man [nama_utilitas]

2.2 Percobaan Praktikum


2.2.1 Membuat user
Untuk membuat dan menghapus user di Linux, anda harus login
terlebih dahulu dengan user root, kemudian jalankan perintah:

[root@sisjarkom ~]# useradd [username]

Contoh :
[root@sisjarkom ~]# useradd cnlab

Setelah membuat user, maka buat password untuk user


tersebut:
[root@sisjarkom ~]# passwd [username]

Contoh:
[root@sisjarkom ~]# passwd cnlab

2.2.2 Login dengan user


Silakan login dengan user yang dibuat dengan pindah ke terminal lain
(Ctrl + Alt + F1/F2/F3/dst) atau ketikkan perintah:
[root@sisjarkom ~]# login

Kemudian akan muncul prompt login. Dalam prompt


login tersebut, silakan login dengan user yang barusan
anda buat:
localhost login: praktikan
Password:

2.2.3 Melihat identitas diri (user id dan group id)


[praktikan@sisjarkom ~]$ id
uid=500(praktikan) gid=500(praktikan)
groups=500(praktikan)

2.2.4 Mengganti prompt


Untuk mengganti prompt di Linux, jalankan perintah:
[praktikan@sisjarkom ~]$ PS1=”$”
2.2.5 Mendaftarkan user biasa untuk login sebagai root
Login sebagai root :
[root @sisjarkom ~]# visudo

cari baris
## Allow root to run any commands anywhere

tambahkan
praktikan ALL=(ALL) ALL

2.2.6 User biasa login sebagai root


[praktikan@sisjarkom ~]$ sudo su

2.2.7 Membuat alias


membuat alias perintah ls
[praktikan@sisjarkom ~]$ alias lihat=ls

2.2.8 Menghapus nama alias


[praktikan@sisjarkom ~]$ unalias ls

2.2.9 Menggunakan manual


Coba jalankan perintah berikut dan pelajari
[cnlab@sisjarkom ~]$ man ls
[cnlab@sisjarkom ~]$ man man
[cnlab@sisjarkom ~]$ man -k file
[cnlab@sisjarkom ~]$ man 5 passwd

2.2.10 Menghapus user


Untuk menghapus user di Linux, jalankan perintah:
[root@sisjarkom ~]# userdel [username]

Contoh:
[root@sisjarkom ~]# userdel praktikan

2.3 Studi Kasus

1. Membuat user baru dan menambahkan password untuk user


tersebut.
2. Login dengan user tersebut.
3. Daftarkan ke visudo.
BAB III
SISTEM FILE
3.1 Dasar Teori
3.1.1 Sistem File
Pada proses komputasi, sistem file merupakan metode untuk
penyimpanan dan pengorganisasian data-data dalam komputer, agar data-
data tersebut dapat dengan mudah ditemukan serta diakses. Sistem file
banyak digunakan dalam media penyimpanan seperti hard disk atau CD-
ROM dan meliputi perawatan lokasi fisik sebuah file, sampai dengan metode
akses untuk data virtual pada data dalam sebuah jaringan.
Sistem file pertama yang berjalan pada sistem operasi Unix yang
merupakan cikal bakal Linux saat ini dibuat pada tahun 1972 oleh Bell Labs.
Sistem file tersebut bernama V6FS, yang diperuntukkan untuk Unix versi 6.
Dan beberapa sistem file yang ada saat ini antara lain:
a. Second extended (ext2)
Merupakan salah satu sistem file yang paling ampuh dan menjadi
dasar dari segala distribusi Linux. Ext2 mendefinisikan topologi sistem
file dengan memberikan arti bahwa setiap file pada sistem diasosiasiakan
dengan struktur data inode. Inode adalah kerangka dasar yang memban-
gun Ext2. Sebuah inode menunjukkan blok mana dalam suatu file yang
menyimpan hak akses setiap file, waktu modifikasi file, dan tipe file.
Ketika terjadi kegagalan sumber daya, "unclean shutdown", atau
kerusakan sistem, sistem file Ext2 harus melalui proses pengecekan den-
gan program e2fsck. Proses ini dapat membuang waktu sehingga proses
booting menjadi sangat lama, khususnya untuk disk besar yang mengan-
dung banyak sekali data. Ketika menjalani proses ini, semua data tidak
dapat diakses.
b. Third extended (ext3)
Ext3 menjamin adanya integritas data setelah terjadi kerusakan
atau "unclean shutdown". Ext3 memungkinkan kita memilih jenis dan
tipe proteksi dari data. Jurnal yang disediakan oleh Ext3 menyebabkan
tidak perlu lagi dilakukan pengecekan data setelah kegagalan sistem.
Ext3 hanya dicek bila ada kerusakan hardware seperti kerusakan hard
disk, tetapi kejadian ini sangat jarang.
Waktu yang diperlukan Ext3 sistem file setelah terjadi "unclean
shutdown" tidak tergantung dari ukuran sistem file atau banyaknya file,
tetapi tergantung dari besarnya jurnal yang digunakan untuk menjaga
konsistensi. Besar jurnal default memerlukan waktu kira-kira sedetik un-
tuk pulih, tergantung kecepatan hardware. Kita dapat berpindah dari
Ext2 ke sistem Ext3 tanpa melakukan format ulang.
c. Fourth extended (ext4)
Ext4 merupakan perkembangan dari sistem file ext3. Pada 28 Juni
2006 Theodore Ts'o, maintainer ext3 mengumumkan rencana pengem-
bangan yang baru. Persiapan pengembangan ext4 tersebut terdapat
pada Linux kernel versi 2.6.19 yang telah dirilis pada 29 November 2006.
Sistem file ext4 dapat men-support volume sampai ukuran 1 exabyte.
sistem file ext4 kompatible dengan sistem file ext3 dan dapat di-mount
sebagai partisi ext3.
Pada ext3 jumlah subdirektori yang ada pada suatu direktori maksi-
mal sampai 32000. Pada ext4, jumlah subdirektori dapat melebihi 32000.
Selain itu pada ext4, unallocated block groups dan sections dari sebuah
tabel inode ditandai serupa, hal ini memungkinkan pengecekan file sis-
tem dapat berjalan lebih cepat.
d. File Allocation Table (FAT)
Merupakan sistem file yang memiliki hak paten yang dikem-
bangkan oleh Microsoft untuk sistem operasi MS-DOS, dan ini meru-
pakan sistem file utama untuk para konsumen pengguna Microsoft Win-
dows versi MS-DOS keatas, termasuk Windows Me.
Sistem File FAT masih dianggap sangat rumit, berakibat
didukung oleh seluruh sistem operasi virtual pada PC. Karena tersebar
dimana-mana, sistem file ini memiliki format ideal untuk pengorganisas-
ian data pada floopy disk dan memory card, serta sangat cocok digu-
nakan untuk mendukung pertukaran data antara dua sistem operasi
berbeda yang terinstal dalam sebuah komputer (dual boot environment).
e. New Technology File Sistem (NTFS)
Merupakan standard sistem file pada Windows NT dan turunan-
nya: Windows 2000, Windows XP, Windows Server 2003 dan Windows
Vista. NTFS menggantikan sistem file milik Microsoft yang sebelumnya
yaitu FAT. NTFS memiliki banyak kemajuan dibandingkan FAT seperti
lebih mendukung untuk metadata dan digunakan untuk strutur data
tingkat lanjut untuk peningkatan performance, tahan uji, serta adanya
keamanan access control list dan jurnal pada sistem file.
f. Hierarchical File Sistem (HFS)
Sistem file yang dikembangkan oleh Apple Komputer yang digu-
nakan untuk komputer bersistem operasi MacOS. Didesign khusus untuk
memanajemen data pada floopy dan hard disk, dapat juga ditemukan
dalam read-only media seperti CD-ROM. HFS sering juga disebut dengan
Mac OS Standart atau Mac OS Extended.
g. ISO 9660
Dirilis oleh International Organization for Standardization (ISO),
dikhususkan bagi sistem file pada CD-ROM. Ini bertujuan untuk men-
dukung komputer yang memiliki sistem operasi yang berbeda seperti
Microsoft Windows, Mac OS serta berbasis Unix.
h. Be File Sistem (BFS atau BeFS)
Merupakan sistem file asli untuk sistem operasi BeOSf. BFS
telah dikembangkan oleh Dominic Giampaolo dan Cyril Meurillon pada
1996. Lebih dari periode 10 bulan digunakan untuk mensinkronkan BeOS
dengan jurnal sistem file modern 64-bi. Ini case sensitif dan sangat am-
puh digunakan pada floppy, hard disk dan media read-only seperti CD-
ROM.
i. Google File Sistem
Merupakan sistem file berbasis Linux dan dikembangkan oleh
Google untuk penggunaan aplikasi mereka. Ini tidak ditunjukkan kepada
public sebagaimana fungsi sebuah sistem file tersebut dibangun, serta
tidak memiliki legalitas hukum seperti ext3 atau berlisensi sebagai open
soure pada Linux. Sehingga sistem file ini tidak memiliki syarat legal un-
tuk didistribusikan.
j. New Implementation of a Log-structured File Sistem
(NILFS)
NILFS 1.0 (New Implementation of a Log-structured File Sistem) ini
sudah disediakan oleh NTT Labs (Nippon Telegraph and Telephone's Cy-
ber Space Laboratories). Sistem file berstruktur log, menuliskan semua
data dalam format mirip log yang ditulis berkelanjutan, dan dalam
penulisannya hanya menambahkan baris-baris yang baru ditulis, bukan-
nya ditulis ulang (overwritten) dari awal secara keseluruhan. Pendekatan
ini dikatakan dapat mengurangi waktu pencarian data, selain itu juga
meminimalisasi seperti halnya kehilangan data yang sering terjadi pada
sistem file Linux yang konvensional. Contohnya, pada sistem file ext3
ketika terjadi crash sistem saat melakukan kegiatan penulisan data.
Ketika sistem melakukan reboot, jurnal akan mencatatkan bahwa
penulisan yang sudah dilakukan tidak lengkap, dan segala bagian data
yang ditulis telah hilang.

Untuk melihat perbandingan fitur dan kapabilitas file sistem yang


lebih lengkap, salah satu referensinya dapat dilihat pada alamat berikut
http://en.wikipedia.org/wiki/Comparison_of_file_sistems.

3.1.2 Partisi
Linux sebenarnya dapat berjalan dengan satu partisi saja, yaitu “/”
(baca : root), selain tentunya partisi swap yang merupakan salah satu
keunggulan Linux dibandingkan sistem operasi yang lain. Tetapi dapat juga
dibuat partisi lain untuk memudahkan perbaikan dan perawatan sistem
(maintenance).
Penamaan partisi di dalam Windows berbeda dengan Linux. Pada
Windows partisi diberi nama dengan huruf, yaitu A:\ dan B:\ untuk floppy
drive, diikuti C:\ untuk partisi pertama pada harddisk, D:\ untuk partisi
kedua, dan seterusnya, termasuk device-device penyimpanan lain selain
harddisk. Sedangkan pada Linux aturan penamaan partisi harddisk adalah
sebagai berikut:

/dev/XdYZ
Keterangan:
1. Semua device termasuk harddisk dibaca dari direktori /dev/.
2. X adalah tipe harddisk.
Huruf h digunakan untuk tipe harddisk IDE (biasa digunakan oleh
PC) dan huruf s digunakan untuk tipe harddisk SCSI (biasa digu-
nakan oleh laptop).
3. Y adalah penomoran harddisk secara fisik.
Huruf a digunakan untuk harddisk pertama, b digunakan untuk hard-
disk kedua dan seterusnya.
4. Z adalah angka partisi.
Partisi primary maksimal 4, misalnya pada harddisk IDE pertama dim-
ulai dari /dev/hda1 sampai /dev/hda4.
Partisi logical dimulai dari angka 5, misalnya pada harddisk IDE per-
tama dimulai dari /dev/hda5, /dev/hda6, dan seterusnya.

Berikut contoh penamaan partisi harddisk dan media penyimpanan


lainnya:
 Harddisk IDE pertama : /dev/sda
 Harddisk IDE pertama partisi kedua : /dev/sda2
 Floppy disk pertama : /dev/fd0
 CD-ROM pertama :tergantung dari penempatan
kabel cdrom pada motherboard (dapat berupa hdc, hdd, dst).

3.1.3 Struktur Direktori


Sebutan direktori dalam Linux dapat dianalogikan sebagai folder
dalam Windows. Konsep Linux/UNIX tidak mengenal istilah drive seperti
dalam Windows/DOS. Sistem file Linux/UNIX memperlakukan semua file,
direktori, dan device (harddisk, floppy, CD-ROM, mouse, keyboard, dsb)
sebagai file. Terminologi ini dikenal sebagai Everything is file dalam Linux
dan UNIX.
Sistem file pada Linux menyerupai pepohonan (tree), Direktori paling
atas atau yang tertinggi adalah root yang dilambangkan dengan tanda slash
(/), kemudian terdapat direktori dan subdirektori. Kita dapat menciptakan
file dan direktori mulai dari root ke bawah. Direktori adalah file khusus, yang
berisi nama file dan inode (pointer yang menunjuk ke data/isi file tersebut).
Secara logika, direktori dapat berisi file dan direktori lagi (disebut juga
subdirektori).
Secara default, setelah sistem operasi Linux terinstalasi, maka akan
terbentuk direktori-direktori default di bawah direktori /. Direktori-
direktori tersebut adalah:
Direktori Deskripsi
Berisi perintah-perintah (file-file binary) standar yang
dapat digunakan oleh seluruh user, baik ordinary user
/bin
(user biasa) maupun super user (root). File binary sama
seperti file .exe dalam Windows.

Berisi file-file yang digunakan untuk melakukan proses


/boot
booting Linux termasuk image kernel.

Berisi sistem file khusus yang merupakan representasi


/dev
dari hardware device yang telah dikenali sistem.

Berisi file-file konfigurasi sistem, yang secara default


/etc
hanya dapat diubah oleh super user (root).
Berisi direktori-direktori home (utama) dari masing-
masing ordinary user dan biasanya digunakan untuk
menyimpan file, semacam My Documents pada
/home
Windows. Ketika membuat sebuah ordinary user, maka
secara otomatis sistem akan membuatkan direktori
/home untuk user yang baru dibuat tersebut.
Direktori yang digunakan untuk mendukung proses
/initrd
booting.
Berisi file-file binary yang digunakan untuk mendukung
/lib
kerja kernel.
Direktori yang disediakan sebagai direktori tujuan
/mnt
mounting device/storage (media penyimpanan) seperti
dan /media
CD-ROM, flash disk, dan floppy disk.
Direktori option, biasanya berisi aplikasi tambahan
/opt (“add-on”) seperti Netscape Navigator, kde, gnome,
applix, dll.
Berisi sistem file khusus yang menunjukkan data kernel
/proc
setiap saat.
/root Direktori home khusus yang disediakan untuk root.
Sama seperti direktori /bin, tetapi sebaiknya hanya root
yang menggunakan perintah-perintah (file-file binary)
/sbin
tersebut karena fungsi perintah dalam direktori ini
adalah untuk perawatan sistem (maintenance).
Berisi file-file temporary (sementara) yang biasanya
/tmp
hanya dibutuhkan oleh suatu aplikasi pada saat berjalan
saja.
Berisi library, binary, dokumentasi, dan file lain hasil
/usr
instalasi.
Tempat penyimpanan file-file log (catatan hasil output
program) seperti file mailbox, dan data aplikasi, file ini
/var
dapat membengkak dan perlu dimonitor
perkembangannya.

Jadi, apabila pada sistem operasi Microsoft Windows dikenal adanya


partisi C:\ dan direktori-direktori di bawahnya seperti Program Files,
Windows, Documents and Settings, maka di sistem operasi Linux ada partisi
/ dengan direktori-direktori di bawahnya seperti /root, /home, /bin,
/sbin, dan lain sebagainya.

3.1.4 Properti File


Untuk melihat properti file secara lengkap dapat dilihat dengan
perintah ls diikuti opsi – l :
[root@sisjarkom ~]$ ls –l

a. Tipe file.
Menentukan tipe dari file, keterangannya sebagai berikut:
Karakter Arti
- File biasa
d Direktori
l Symbolic link
b Block special file
c Character special file
s Socket link
p FIFO

b. Hak akses
Merupakan perizinan bagi user untuk dapat menggunakan suatu file
maupun direktori. Terdiri dari tiga jenis operasi yaitu r untuk read, w
untuk write, dan x untuk execute.
Pada file berarti :
r (read) : izin untuk membaca file tersebut
w (write) : izin untuk mengubah file
x (execute) : izin untuk menjalankan file/program

Pada direktori berarti :


r (read) : izin untuk membaca daftar file dalam direktori
w (write) : izin untuk mengubah/membuat file dalam direktori
x (execute) : izin untuk mengakses direktori

Hak akses juga terbagi untuk tiga jenis user, yaitu user (pemilik file),
group (grup pemilik file), dan other (user selain pemilik dan grup
pemilik file). Untuk lebih jelasnya, mari kita lihat gambar di bawah
ini.
-rw-r--r--
user group other

tipe file
Pada contoh di atas, file tersebut bertipe file biasa dengan hak akses
user pemilik dapat membaca dan menulisi file tersebut, sedangkan
group pemilik dan other hanya dapat membaca, tanpa dapat menulisi
atau memodifikasi file tersebut.
Untuk mengubah hak akses suatu file, dapat digunakan perintah
chmod (change mode). Ada dua cara yang dapat digunakan untuk
mengubah hak akses suatu file atau direktori, yaitu:

 Letter Coding Sistem


Sistem ini menggunakan format sebagai berikut :

chmod [u/g/o/a] [+/-/=] [r/w/x][namafile/direktori]

Dimana u untuk user, g untuk group, o untuk others, dan a un-


tuk all (user, group, dan others). Tanda “+” untuk menambah
hak (read, write, atau execute), tanda “-“ untuk mencabut hak
(read, write, atau execute), dan tanda “=” untuk menetapkan
hak (read, write, atau execute).
Misalnya hak akses rwxr-xr-x milik file coba.txt akan diubah men-
jadi rwxrwxrwx.
[root@sisjarkom ~]# ls –l
-rwxr-xr-x 1 root root 4096 Jul 08 00:30 coba.txt
ada banyak cara yang dapat kita lakukan. Contohnya
dengan langkah di bawah ini
[root@sisjarkom ~]# chmod go+w coba.txt

yang berarti menambah hak write pada group dan oth-


ers. Atau bisa juga dengan cara
[root@sisjarkom ~]# chmod a=rwx coba.txt

yang berarti menetapkan hak read, write, dan execute


pada semua (all = user, group, dan others). Atau
[root@sisjarkom ~]# chmod ugo=rwx coba.txt

yang berarti menetapkan hak read, write, dan execute pada user,
group, dan others.
Setelah melakukan salah satu dari cara di atas, bila kita
cek lagi hak aksesnya akan menjadi:
[root@sisjarkom ~]# ls –l
-rwxrwxrwx 1 root root 4096 Jul 08 00:30 coba.txt

Untuk contoh lainnya, silakan lakukan percobaan pada langkah


praktikum.

 Numeric Coding Sistem


Sistem ini menggunakan bilangan okta sebagai berikut :
0 : Tidak memiliki hak akses
1 : Execute
2 : Write
3 : Write + Execute 2+1
4 : Read
5 : Read + Execute 4+1
6 : Read + Write 4+2
7 : Read + Write + Execute  4 + 2 + 1

Tips mudah menghafal

Execute : 2º =1
Write : 2¹ =2
Read : 2² =4
Write + Execute = 21 + 20 = 3
Read + Execute = 22 + 20 = 5
dst.
Selanjutnya, setelah perintah chmod, ketikkan angka untuk user,
lalu angka untuk group, lalu angka untuk others. Misalnya file
cobalagi.txt yang akan diubah hak aksesnya dari r--rwxr-- men-
jadi r---wx---.
[root@sisjarkom ~]# ls –l
-r--rwxr-- 1 root root 4096 Jul 08 00:45
cobalagi.txt

Lakukan perintah berikut:


[root@sisjarkom ~]# chmod 430 cobalagi.txt

yang berarti memberi hak read (angka 4) untuk user, memberi


hak write dan execute (angka 7) untuk group, lalu tidak
memberi hak akses (angka 0) untuk others. Perhatikan
bahwa properti file tersebut akan menjadi:
[root@sisjarkom ~]# ls –l
-r---wx--- 1 root root 4096 Jul 08 00:45 cobalagi.txt

c.Jumlah link
Adalah jumlah link untuk file yang bersangkutan. Link dimaksudkan
seperti shortcut pada Microsoft Windows.
d. User pemilik
Adalah user yang memiliki file tersebut.
e. Group pemilik
Adalah group yang memiliki file tersebut.
f. Ukuran file
Adalah ukuran penyimpanan file tersebut di media penyimpanan
dalam satuan byte.
g. Waktu pembuatan
Adalah waktu yang menunjukkan kapan file itu dibuat atau terakhir
kali dimodifikasi.
h. Nama file
Adalah nama file yang dimaksud untuk membedakannya dengan file
lain. Dalam satu direktori tidak boleh ada file yang memiliki nama dan
ekstensi sama persis.

3.1.5 Mengakses Partisi Windows


Bila kita menginstal dua atau lebih sistem operasi (misalnya Windows
Vista dan CentOS) biasanya mengalami kendala dalam pengaksesan data
lintas sistem operasi. Hal ini dikarenakan sistem file yang digunakan masing-
masing sistem operasi berbeda. Untuk partisi yang menggunakan sistem file
lain seperti FAT32 atau NTFS yang digunakan Windows/DOS, agar bisa
dibaca dari Linux harus di- mount terlebih dahulu. Mount bisa berarti
“dikenali”. Linux sudah menyediakan tempat untuk pembacaan device-
device dan partisi-partisi lain ini dalam direktori /mnt. Tapi kita bisa juga
meletakkan direktori untuk mount ini di direktori lain selain /mnt. Sebagai
catatan, distro-distro lain seperti Ubuntu telah melakukan proses mounting
partisi secara otomatis, sehingga tidak perlu melakukan proses mount lagi.
Hal ini berbeda jika menggunakan distro seperti RedHat, sebelum dapat
mengakses partisi Windows/DOS, maka harus dilakukan proses mount
terlebih dahulu.

Berikut contoh melakukan mounting partisi Windows:


Pertama, kita lihat partisi mana yang akan di-mount dengan perintah
[root@sisjarkom ~]# fdisk –l

Misalnya tampil output sebagai berikut


/dev/sda1 63 33559784 16779861 7 HPFS/NTFS
/dev/sda2 33559785 67119569 16779892+ 7 HPFS/NTFS
/dev/sda3 67119570 100679354 16779892+ 7 HPFS/NTFS

Setelah itu lihat sistem file-nya, bila NTFS atau FAT32, maka partisi itu
adalah partisi dari Windows. Biasanya partisi yang pertama adalah drive
C:\ selanjutnya D:\, begitu seterusnya. Lalu bila ingin me- mount partisi
D:\ ke direktori /mnt maka perintahnya adalah
[root@sisjarkom ~]# mount /dev/sda2 /mnt

Bila ingin me-mount partisi ini pada direktori lain maka direktori tujuan
mounting harus dibuat terlebih dahulu. Setelah selesai maka lakukan
proses umount.
[root@sisjarkom ~]# umount /dev/sda2

Setelah perintah umount di atas dijalankan, maka isi partisi tidak dapat
dibaca lagi dari direktori tujuan mount sebelumnya. Pada saat
melakukan mount ada kalanya menemui pesan-pesan
kesalahan. Berikut adalah beberapa contoh pesan-pesan
kesalahan yang sering muncul dan penjelasannya.
mount: mount point
/mnt/win_e does not exist

Berarti direktori tujuan mount tidak ditemukan. Oleh karena


itu, buat dulu direktori tujuan, baru setelah itu lakukan
proses mount yang ditujukan ke direktori yang baru saja
dibuat. Sedangkan bila melakukan proses umount, dan
tampil pesan seperti di bawah ini :
umount: /mnt/win_e
device is busy
Berarti direktori tujuan umount tidak ada, atau memang sedang
berada pada direktori yang akan di-umount, atau direktori yang akan di-
umount sedang dipakai untuk melakukan suatu proses, atau file yang
ada di dalam direktori itu sedang digunakan. Oleh karena itu pastikan
direktori aktif saat itu tidak sedang berada pada direktori yang akan di-
umount, atau tunggu sampai proses yang menggunakan direktori
tersebut selesai.

3.1.6 Mengakses cdrom


Di dalam sistem operasi linux, cdrom direpresentasikan sebagai file di
dalam direktori /dev/dvd atau /dev/cdrom

3.2 Percobaan Praktikum


3.2.1 Memeriksa sistem file
1. Login sebagai root
2. Periksa sistem file-nya dengan perintah :
[root@sisjarkom ~]# fsck /dev/fd0

3.2.2 Melihat partisi yang ada di harddisk


Ketikkan perintah :
[root@sisjarkom ~]# fdisk –l

3.2.3 Melihat struktur direktori


Ketikkan perintah :
[root@sisjarkom ~]# ls –l /

3.2.4 Melihat properti file


Ketikkan perintah :
[root@sisjarkom ~]# ls –l

3.2.5 Mengubah hak akses file


1. Buatlah sebuah file
[root@sisjarkom ~]# touch file1

2. Lihat propertinya
[root@sisjarkom ~]# ls –l
3. Ubah hak aksesnya menjadi rwxrwxrwx dengan letter coding
[root@sisjarkom ~]# chmod a=rwx file1

Lihat propertinya lagi


[root@sisjarkom ~]# ls –l

4. Ubah hak aksesnya menjadi rwxr--r-- dengan numeric


coding
[root@sisjarkom ~]# chmod 744 file1

5. Lihat propertinya
[root@sisjarkom ~]# ls –l

3.2.6 Mengakses partisi NTFS


1. Cek partisi yang ada pada harddisk
[root@sisjarkom ~]# fdisk –l

2. Buat direktori tujuan mounting


[root@sisjarkom ~]# mkdir /mnt/Win

3. Mount partisi windows yang ada di komputer masing-


masing
[root@sisjarkom ~]# mount /dev/sda2 /mnt/Win

4. Untuk melihat isi file yang berada di dalam Windows


[root@sisjarkom ~]# ls /mnt/Win

5. Bila telah selesai lakukan proses umount


[root@sisjarkom ~]# umount /dev/sda2

3.2.7 Mengakses CDROM


1. mount cdrom ke direktori tujuan
[root@sisjarkom ~]# mount /dev/cdrom /mnt

2. untuk melihat isi file yang berada pada cdrom


[root@sisjarkom ~]# ls /mnt

2. Bila telah selesai lakukan proses umount


[root@sisjarkom ~]# umount /dev/cdrom
BAB IV
KONFIGURASI LINUX
4.1 Dasar Teori
Linux memiliki banyak sekali utilitas dan aplikasi yang dapat digunakan,
setiap utilitas atau aplikasi pasti memiliki file konfigurasi masing-masing.
Oleh karena itu pengenalan terhadap file-file konfigurasi menjadi sangat
penting.
Pada bab ini kita hanya akan membahas file-file konfigurasi utama,
konfigurasi boot loader, run level, dan tabel sistem file yang terdapat dalam
Linux. File konfigurasi itu sendiri merupakan file text yang dapat diubah
menggunakan editor text biasa (seperti Vim, Emac, Pico). Fungsi dari file
konfigurasi ini untuk melakukan setting terhadap suatu utilitas atau aplikasi
agar berjalan seperti yang kita inginkan. Konfigurasi biasanya dilakukan
untuk mengoptimumkan kerja dari utilitas atau aplikasi tersebut.
Didalam file konfigurasi biasanya terdapat komentar yang diawali
dengan tanda “#”, komentar ini dapat dipakai pedoman untuk melakukan
konfigurasi pada file tersebut. File-file konfigurasi biasanya selalu berada
dibawah direktori /etc/.

Pengenalan Editor
Pada Linux terdapat puluhan jenis editor yang dapat dijalankan di
shell. Berikut adalah daftar editor yang tersedia di Linux:

Nama Deskripsi
Axe X11 text editor
crisplite Editor untuk programmer CRiSP
Ed Editor baris
Edy Editor text (Jerman)
ee, easyedit Emacs dalam mode yang lebih sederhana
elvis, xelvis Bentuk cloning dari editor Vi
jed, xjed Editor untuk console dan X11 bagi programmer
joe, jmacs Editor Joe dan variannya
kedit Text editor bawaan K Desktop
Nvi Bentuk kloning dari editor vi Berkeley
Pico Editor text (distribusi program email pine)
Red Editor baris yang bersifat read-only
Sed Stream editor
starwriter StarOffice word processor
Uemacs MicroEMACs text editor
Vim ViIMproved

Editor vi
Pada praktikum kali ini hanya membahas penggunaan Vi. Sebuah
editor yang terdapat hampir diseluruh distribusi Linux. Sebenarnya
saat ini yang beredar bukan lagi Vi tapi Vim (Vi Improved). Namun
cara pemanggilannya sama. Saat ini Vi juga terdapat pada X window
yaitu Gvim.
Salah satu kelebihan vi adalah syntax highlighting. Yaitu suatu fitur
dalam pembuatan shell script dimana vi secara otomatis membaca
suatu file kemudian memberikan warna tersendiri pada reserved word
(kata-kata yang digunakan bahasa pemrograman, contoh echo, case,
dan for), variael, operator, dsb.
Sehingga memudahkan dalam membuat suatu script. Pada editor vi
terdapat dua buah mode. Yang pertama, mode perintah, dimana tiap
karakter yang dimasukan diinterpretasikan sebagai perintah. Contoh
perintah seperti mencari kata, text, undo, paste, cut,paste, dsb. Yang
kedua, mode edit, dimana terdapat suatu dokumen yang dapat
diketikan sebuah script yang akan dibuat. Ketika pertama kali
memasuki vi secara otomatis kita masuk ke mode perintah.

Perintah editing
i atau insert Masuk ke mode edit. Untuk kembali ke mode perintah
tekan Esc
x Menghapus/meng-cut satu huruf di sebelah kanan kursor
dw Menghapus/meng-cut satu kata di sebelah kanan kursor
dd Menghapus/meng-cut satu baris di tempat kursor berada
yy Meng-copy satu baris di tempat kursor berada
p Mem-paste baris yang di-copy atau di-cut

Perintah operasi pada file


:w Menyimpan
:w namafile Menyimpan dengan nama namafile (SaveAs)
:wq Menyimpan dan keluar dari vi
:wq namafile Menyimpan dengan nama namafile dan keluar dari vi
:q! Keluar tanpa menyimpan

4.1.1 File konfigurasi utama


Ada 4 buah file konfigurasi utama dalam Linux yaitu:

a. File /etc/issue
File ini berisi pesan untuk ditampilkan pada login prompt (hanya
dapat dilihat di terminal (Ctrl+alt+1/2/3/../6)). Kita dapat
menampilkan pesan untuk user disini sebelum user tersebut login ke
sistem. Hak akses untuk merubah isi dari file /etc/issue ini hanya
diberikan kepada user root (super user).
Berikut contohnya :
Di dalam file /etc/issue diisikan seperti berikut :

CentOS Linux release 5.2 (Final)


Kernel \r on an \m

Penjelasan :
1. Di login prompt akan muncul tulisan “CentOS”
2. \r dan \m adalah karakter squence, sebagai berikut :
 \r : adalah versi kernel
 \m : adalah tipe CPU

Sehingga outputnya adalah :

CentOS Linux release 5.2 (Final)


Kernel 2.6.18-92 on an i686

Sebagai Root (Super User), kita dapat menampilkan pesan apa saja
untuk ditampilkan kepada user sebelum mereka login ke sistem, yaitu
dengan cara memodifikasi isi dari file ini.

b. File /etc/motd
Isi dari file motd ini akan ditampilkan setelah user sukses melakukan
login. Secara default biasanya file ini kosong, namun kita bisa
menggantinya dengan ucapan “Selamat Datang” atau ucapan lain
yang disukai.
c. File /etc/profile
File ini berisi shell script yang berlaku untuk seluruh pengguna
sistem, file ini akan dijalankan pada saat user login ke sistem.
Berikut contoh isi dari file /etc/profile :
# /etc/profile

# Sistem wide environment and startup programs, for login


setup
# Functions and aliases go in /etc/bashrc

pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}

# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi

pathmunge /usr/X11R6/bin after

unset pathmunge

# No core files by default


ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then


INPUTRC=/etc/inputrc
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
File tersebut merupakan shell script, penjelasan lebih lanjut
mengenai shell script ada pada praktikum pemrograman shell.

d. File konfigurasi /etc/rc.local


File ini merupakan file yang akan di load setelah file /etc/rc.sysinit.
File /etc/rc.sysinit sendiri merupakan file konfigurasi yang
dieksekusi pertama kali oleh CPU ketika Linux melakukan proses
booting. Isi dari file /etc/rc.local adalah perintah-perintah
tambahan yang hendak dijalankan ketika komputer pertama kali
booting.

Berikut contoh isi dari file /etc/rc.local :


#!/bin/sh
#
# This script will be executed *after* all the other init
scripts.
# You can put your own initialization stuff in here if you
don't
# want to do the full Sys V style init stuff.

echo 1 > /proc/sys/net/ipv4/ip_forward


service network start
service httpd start

Pada contoh file /etc/rc.local di atas terdapat 3 buah perintah,


urutan eksekusinya akan dijalankan mulai dari baris perintah yang
paling atas. Jadi perintah-perintah yang akan dieksekusi pada file
/etc/rc.local diatas adalah :

echo 1 > /proc/sys/net/ipv4/ip_forward


service network start
service httpd start

4.1.2 Boot Loader


Boot loader merupakan aplikasi yang digunakan untuk memilih
sistem operasi yang akan dijalankan, fungsi dari boot loader ini baru akan
terlihat jika kita menggunakan lebih dari satu sistem operasi pada satu
komputer (misalnya terdapat Windows dan Linux dalam satu komputer).
Contoh dari boot loader ini diantaranya : BootMagic dari Powerquest,
OSSelector, boot loadernya Windows NT/2000/XP (ntloader), boot loadernya
Linux ( Grub, lilo, mylo ), dan boot loader lainnya. Kali ini yang akan kita
bahas adalah GRUB, karena boot loader ini yang digunakan oleh distro
CentOS.
Sebelum masuk ke file konfigurasinya, akan dijelaskan sedikit
mengenai GRUB itu sendiri. GRUB adalah GRand Unified Bootloader,
merupakan boot loader yang powerfull yang dapat me-load berbagai macam
sistem operasi, selain itu Grub juga fleksibel, Grub mengerti sistem-sistem
file, dan format kernel yang executable.

File konfigurasi boot loader Grub terdapat pada file g rub.conf, dan
berikut ini adalah file konfigurasinya:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun Grub after making
changes to # # this file
# NOTICE: You have a /boot partition. This means
that
# all kernel and initrd paths are relative to /boot/,
eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/Grub/splash.xpm.gz
title CentOS(2.6.18-92.e15)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.e15 ro root=LABEL=/
initrd /initrd-2.6.18-92.e15.img
title Windows XP
map (hd0,0) (hd0,2)
map (hd0,2) (hd0,0)
rootnoverify (hd0,2)
chainloader +1
title DOS Boot Disk
map (hd0,0) (hd0,2)
map (hd0,2) (hd0,0)
chainloader (fd0)+1

Penjelasan dari file konfigurasi Grub di atas:


1. default
Bagian ini berisi pilihan sistem yang akan diload jika user tidak
menekan tombol apapun ketika proses booting berjalan, pada file
konfigurasi di atas default=0, berarti sistem yang akan di- load
adalah sistem dengan urutan yang pertama, 0 berarti yang
pertama, 1 berarti yang kedua. Yang pertama di contoh diatas
adalah “title CentOS (2.6.18-92.e15)” berarti yang di-load
default adalah sistem Linux. Jika ingin merubah yang di- load
secara default adalah Windows, maka ganti dengan default=1.
2. timeout
Bagian ini berisi waktu, dalam satuan detik, yang dibutuhkan oleh
Grub untuk meload sistem operasi default jika user tidak
menekan tombol apapun ketika proses booting berjalan, pada
contoh diatas timeout=10, berarti jika dalam 10 detik user tidak
menekan tombol apapun maka Grub akan me- load sistem operasi
default-nya, dalam contoh me-load “CentOS”.
3. Splashimage
Bagian ini merupakan konfigurasi file gambar yang akan
ditampilkan di background menu Grub, contoh diatas
menampilkan gambar splash.xpm.gz yang berada di direktori
Grub yang berada di harddisk pertama, partisi pertama.
4. title
Adalah teks yang ditampilkan di pilihan menu Grub, dibawahnya
berisi konfigurasi untuk masing-masing sistem operasi yang akan
di-load. Pada contoh diatas terdapat 3 title untuk 3 sistem operasi
yang berbeda.
5. root
Root menandakan lokasi penyimpanan kernel sistem. Contoh
diatas root (hd0,0), berarti kernel sistem berada di harddisk
pertama pada partisi pertama.
6. kernel …… root….
“Kernel….” Adalah untuk konfigurasi letak dari kernel, dan
“root...” adalah konfigurasi dimana sistem Linux berada contoh
diatas : kernel /vmlinuz-2.6.18-92.e15 ro root=LABEL=/,
berarti kernel berada pada file “/vmlinuz-2.6.18-92.e15” dan
sistem Linux berada pada direktori “/”.
7. initrd
Arti dari : initrd /initrd-2.6.18-92.e15.img, adalah untuk
memberitahukan letak init ram disk berada pada file “/initrd-
2.6.18-92.e15.img”.
8. map
Digunakan untuk memapping partisi agar windows XP dapat
dijalankan, jika salah melakukan konfigurasi pada bagian ini,
maka komputer tidak akan mau booting, dan ada kemungkinan
partisi akan rusak.
9. rootnoverify
Digunakan untuk memberitahu Grub untuk me- load Windows
tanpa melakukan mounting.
10. chainloader+1
Digunakan untuk memberitahu Grub agar melanjutkan ke
bootloader-nya Windows untuk me-load Windows

Setelah konfigurasi selesai, Grub tidak akan berubah sampai komputer


direstart, maka Grub akan langsung membaca file konfigurasi yang
baru.

Note : penamaan harddisk dan partisi di grub agak berbeda dengan


penamaan harddisk dan partisi di Linux itu sendiri. Penjelasan
mengenai file sistem ada pada praktikum mengenai sistem file.

4.1.3 Run Level


Run level adalah tingkatan level dimana sistem operasi Linux
berjalan, mulai dari run level 0 sampai 6. Lebih jelasnya seperti ini, anda
pasti tahu pilihan startup pada windows dengan penekanan tombol F8
sewaktu “starting windows…”. Setelah F8 ditekan akan muncul pilihan
starting windows mulai dari normal mode, save mode, dos prompt only,
dst.
Jika dipilih save mode, maka windows hanya akan me- load driver-
driver standar dan penting saja, jika dipilih dos prompt only maka windows
hanya akan masuk ke mode console. Mekanisme ini hampir sama seperti
pilihan run level pada sistem Linux.
Di setiap run level terdapat daftar-daftar apa saja yang di load di run
level tersebut. Daftar-daftar ini di simpan di direktori /etc/ dan /etc/rc.d,
bukalah direktori tersebut, maka akan terdapat direktori rc0.d, rc1.d
sampai rc6.d. Berikut penjelasan masing-masing run level :
1. run level 0
Pada run level ini tidak ada satu pun proses yang berjalan dan sistem
akan berhenti atau mati (halt).
2. run level 1
adalah mode single user, tidak bisa menjalankan lebih dari 1 user.
Biasanya digunakan untuk reparasi. Seperti save mode di windows.
3. run level 2
adalah mode yang sudah multiuser tetapi belum mendukung NFS,
NFS adalah Network File Sistem, jika user tidak membutuhkan
fasilitas jaringan.
4. run level 3
adalah mode full multiuser, ini adalah run level default. Semua proses
standar di load di run level ini kecuali sistem Xwindow.
5. run level 4
run level ini tidak dipakai.
6. run level 5
ini adalah run level yang paling lengkap, multiuser + sistem
Xwindow.
7. run level 6
pada run level ini sistem akan melakukan rebooting. Atau restart
ulang sistem.

Setelah mengerti mengenai run level, berikut contoh konfigurasi run


level, yaitu terdapat pada file /etc/inittab :

#
# inittab This file describes how the INIT process
should set up
# the sistem in a certain run-level.
#
# Author: Miquel van Smoorenburg,
<miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and
Donnie Barnes

#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not
have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# Sistem initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few
minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd instaled and
your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; Sistem
Shutting Down"

# If power was restored before the shutdown kicked in, cancel


it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored;
Shutdown Cancelled"

# Run gettys in standard runlevels


1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5


x:5:respawn:/etc/X11/prefdm –nodaemon

Penjelasan :
 Perhatikan baris id:3:initdefault:, ini berarti sewaktu Linux
booting, maka akan langsung menuju ke run level 3. anda dapat
merubah angka 3 disini menjadi 5 misalnya, sehingga Linux akan
langsung masuk ke sistem Xwindow.
 Setelah baris Sistem Initialization : sebelum sistem
menjalankan run level yang dipilih, sistem akan menjalankan dulu
script rc.sysinit, baru setelah eksekusi rc.sysinit selesai,
sistem akan mengeksekusi run level pilihan.
 Jika diganti menjadi 0, maka ketika komputer melakukan proses
booting, sistem akan langsung mati, dan jika diganti menjadi 6 maka
sistem akan terus-menerus melakukan restart.

4.1.4 Tabel Sistem File


Pada sistem Linux, partisi-partisi di mount atau mudahnya
ditempatkan di dalam direktori-direktori. Tidak seperti pada DOS/Windows,
yang partisi ditempatkan pada drive-drive, misalnya seperti berikut :
Terdapat sebuah harddisk dan berisi dua buah partisi, yang pertama
primary untuk sistem Windows, yang kedua logical untuk data-data,
maka Windows secara default akan me-mount partisi pertama di drive
C:/ dan partisi kedua di drive D:/
Pada sistem Linux tidak seperti itu, misal terdapat dua buah partisi yang
pertama primary untuk keseluruhan sistem Linux, kemudian partisi yang
kedua berisi windows. Maka partisi pertama akan dimount di sebuah
direktori root atau “/” dan partisi kedua yaitu windows diletakkan di
direktori “/mnt/windows” misalnya. Perhatian Tanda “/” paling kiri
pada “/mnt/windows”, hal tersebut menandakan bahwa partisi kedua
di-mount di dalam direktori “/” yang direktori “/” itu sendiri adalah
partisi pertama. Berarti partisi kedua seolah-olah berada di dalam partisi
pertama.
Anda tidak perlu bingung dengan hal ini, setelah anda pelajari lebih
jauh maka akan mudah. Sebenarnya di windows 2000 juga ada mekanisme
lain untuk melakukan mount sebuah partisi di dalam sebuah direktori, dapat
anda coba di bagian “komputer management”.
File yang berisi daftar-daftar partisi yang akan dimount setiap kali
Linux booting adalah file ‘fstab’ yang terletak pada /etc/fstab. Daftar-
daftar di file ini bersifat statis, jika anda melakukan perubahan partisi, maka
perubahan tersebut harus dimasukkan ke file ini secara manual.

Untuk lebih jelasnya mengenai fstab, berikut diberikan contoh salah


satu baris yang ada :

/dev/cdrom /mnt auto defaults 0 0

Contoh tersebut untuk cdrom:


 cdrom di Linux diberi nama dengan cdrom di bawah direktori /dev,
cdrom.
 Hardware-hardware dalam sistem Linux diibaratkan file-file dan
diletakkan di dalam direktori /dev.
 Pembacaan isi cd tidaklah langsung dari /dev/cdrom karena di
dalamnya hanya berisi informasi hardware cd, bukan data dari
cd. Untuk itu perlu dilakukan mounting isi cd.
 Pada contoh diatas tempat mountingnya adalah /mnt. Berarti
kita dapat membaca isi disket dari direktori /mnt tersebut.
Pilihan file sistemnya auto, sehingga sistem Linux akan
mendeteksi file sistem pada disket secara otomatis

4.2 Percobaan Praktikum


Petunjuk percobaan :
 Sebelum melakukan percobaan, silahkan login ke sistem komputer
masing-masing dengan user root.
 Lakukan backup terlebih dahulu pada setiap file yang akan diedit.
 Percobaan dilakukan di komputer-masing-masing.

4.2.1 Konfigurasi file issue


Percobaan untuk memberikan pesan kepada user bahwa kita sedang
melakukan praktikum sistem operasi , berikut langkah-langkahnya :

1. Backup file issue dengan nama issue.backup


[root@sisjarkom ~]# cp /etc/issue /etc/issue.backup

2. Edit file /etc/issue


[root@sisjarkom ~]# vi /etc/issue

3. Kemudian ganti isi dari file issue menjadi


Praktikum Sistem Operasi tahun ajaran 2009/2010
Lab. Sistem dan Jaringan Komputer
FTI/Teknik Informatika
Universitas Islam Indonesia
4. Simpan file dan keluar dari vi
5. Kemudian reboot ulang sistem
6. Baca pesan yang muncul sebelum login

4.2.2 Konfigurasi file motd


Percobaan yang dilakukan untuk memberikan pesan kepada user
yang telah berhasil login ke dalam sistem. Langkah-langkahnya :
1. backup file motd dengan nama motd.backup
[root@sisjarkom ~]# cp /etc/motd /etc/motd.backup

2. Edit file motd


[root@sisjarkom ~]# vi /etc/motd

3. kemudian isi dengan kalimat di bawah ini


“Anda telah berhasil melakukan login user”

4. simpan file dan keluar dari vi

5. logout dengan perintah


[root@sisjarkom ~]# logout

6. coba login kembali


4.2.3 Konfigurasi file rc.local
Percobaan berikut untuk membuat file baru bernama ‘satu.txt’ secara
otomatis setelah sistem booting.
Langkah-langkahnya :
1. backup file rc.local dengan nama rc.local.backup
[root@sisjarkom ~]# cp /etc/rc.local /etc/rc.local.backup

2. Edit file rc.local


[root@sisjarkom ~]# vi /etc/rc.local

3. kemudian tambahkan di baris berikut di akhir file


touch satu.txt

4. simpan file dan keluar dari vi


5. jika berhasil, maka setelah komputer melakukan restart file ‘satu.txt’
akan terbuat secara otomatis.

4.2.4 Konfigurasi file grub.conf dan Run Level


Percobaan berikut untuk mengubah waktu yang dibutuhkan oleh
sistem untuk menunggu sebelum melakukan auto boot pada sistem operasi
defaultnya. Berikut langkah-langkahnya :
1. Backup file grub.conf dengan nama grub.conf.backup
[root@sisjarkom ~]# cp /etc/grub.conf
/etc/grub.conf.backup

2. buka file grub.conf


[root@sisjarkom ~]# vi /etc/grub.conf

3. edit file grub.conf pada baris yang bertuliskan


timeout=10
dengan nilai berapapun(>0)

4. simpan file dan keluar dari vi

Percobaan berikut untuk mengubah default run level 5 ke run level 3


setiap kali booting. Berikut langkah-langkahnya
1. backup file inittab dengan nama inittab.backup
[root@sisjarkom ~]# cp /etc/inittab /etc/inittab.backup
2. edit file inittab
[root@sisjarkom ~]# vi /etc/inittab
ubahlah baris : id:5:initdefault
menjadi : id:3:initdefault

3. simpan file dan keluar dari vi

4. lakukan restart
[root@sisjarkom ~]# reboot

5. amati perbedaan pada saat booting

4.2.5 Konfigurasi file fstab


Percobaan ini untuk merubah tempat mounting pembacaan CD yang
defaultnya di direktori /mnt/cdrom, diganti dengan direktori /isicd.
Berikut langkah-langkah yang perlu dilakukan :

1. backup file fstab dengan nama fstab.backup


[root@sisjarkom ~]# cp /etc/fstab /etc/fstab.backup

2. buatlah direktori /isicd untuk tempat mounting cd :


[root@sisjarkom ~]# mkdir /isicd

3. buka file fstab


vi /etc/fstab

4. tambahkan baris
/dev/cdrom /isicd auto defaults 0 0

5. simpan file dan keluar dari vi


6. reboot ulang sistem
7. masukkan CD dan mount dengan perintah :
[root@sisjarkom ~]# mount /dev/cdrom

8. lihat direktori /isicd


[root@sisjarkom ~]# ls /isicd
Note : untuk partisi cdrom masing-masing komputer dapat berbeda,
tergantung dari penempatan kabel cdrom pada motherboard (dapat berupa
hda, hdb, hdc, dst).
BAB V
UTILITAS LINUX

5.1 Dasar Teori


5.1.1 Kompresi dan Dekompresi File
Kompresi file (file compression) adalah suatu metode untuk
memperkecil ukuran file dengan cara mengubah format suatu file menjadi
format yang lain. Sedangkan dekompresi file (file decompression) adalah
metode pembalik dari kompresi file. Dekompresi mengembalikan format dan
ukuran asli suatu file yang sudah terkompresi, sehingga file tersebut dapat
dibaca, ditulisi, maupun dieksekusi oleh aplikasi yang menangani file
tersebut. Tetapi tidak semua tipe file akan efektif untuk di kompres. File-file
yang bertipe sound, aplikasi, dan video tidak akan banyak berpengaruh
apabila di kompresi.
Jika di Windows dapat dijumpai file kompresi dengan ekstensi .zip
(WinZip), .rar (WinRAR), .ace (WinAce), maka di Linux dapat dijumpai file
kompresi dengan ekstensi .gz, .Z, .bz2, .tgz, dan lain-lain.
Utilitas kompresi dan dekompresi yang sering digunakan di Linux
adalah gzip dan gunzip. Kedua utilitas ini merupakan aplikasi kompresi dan
dekompresi yang menggunakan Lempel-Ziv coding (LZ77) sebagai format
kompresi. Ekstensi file yang dihasilkan adalah .gz ataupun juga .z.
Sintaks penggunaan dua utilitas tersebut adalah seperti berikut:

[root@sisjarkom ~]# gzip [opsi] nama_file


[root@sisjarkom ~]# gunzip [opsi] nama_file

Opsi yang digunakan:


-c Menuliskan hasil operasi pada output standar dan menyimpan
file aslinya
-d Mengekstrak file kompresi
-l Menampilkan informasi file terkompres
-n Tidak menyimpan file aslinya
-v Menampilkan persentase kompresi atau dekompresi file

5.1.2 Pengarsipan file


Pengarsipan file adalah suatu metode untuk mengumpulkan
banyak file ke dalam sebuah file yang disebut archive. Agar dapat digunakan
kembali dengan normal, file harus dikembalikan dalam bentuk aslinya
semula/individual. Proses seperti inilah yang disebut sebagai ekstraksi.
Utilitas yang digunakan untuk pengarsipan file adalah tar.
Sintaks penggunaan tar adalah sebagai berikut:

 Untuk mengarsipkan file yang berjumlah banyak


[root@sisjarkom ~]# tar [opsi] file_arsip file_1 file_2

 Untuk mengarsipkan banyak yang berjumlah banyak ke dalam


direktori
[root@sisjarkom ~]# tar [opsi] file_arsip direktori

keterangan:
file_arsip : nama arsip dengan ekstensi tar atau tar.gz
file_1, file_2 : nama file 1, nama file 2, dst. yang akan
diarsipkan
direktori : nama direktori yang akan diarsipkan

Opsi yang tersedia:


-c Membuat file arsip baru
-f Menggunakan file yang ada sebagai arsip
-r Menambahkan file-file lain dalam arsip
-t Menampilkan daftar isi dari file arsip
-x Melakukan ekstraksi dari file arsip
-z Mengkompresi atau mengekstrak file arsip dengan gzip

5.1.3 Instalasi Program Aplikasi


Dalam sistem operasi Linux, instalasi suatu aplikasi dapat dilakukan
dengan berbagai cara. Dalam praktikum ini akan dibahas dua cara yang
paling umum digunakan. Cara pertama adalah menggunakan file binary
yang telah disediakan untuk suatu distribusi tertentu, seperti .rpm untuk
turunan Red Hat dan .deb untuk turunan Debian. Cara kedua adalah
menggunakan file source code, yang dapat digunakan pada semua
distribusi.

1. RPM
RPM adalah kependekan dari Red Hat Package Manager.
Pertama kali dikembangkan oleh Red Hat. RPM hanya digunakan pada
semua distro keturunan Red Hat saja. RPM dapat digunakan untuk
membangun paket, melakukan instalasi, mencari informasi paket dalam
sistem, memeriksa keabsahan paket, melakukan update ataupun
menghapus paket tertentu.
Cara menggunakan RPM:
[root@sisjarkom ~]# rpm [opsi] nama_paket.rpm
Opsi dasar RPM:
-i instal : menginstal
-e erase : menghapus
-U Upgrade : meng-upgrade
-q query : mencari
-V Verify : memeriksa

Opsi tambahan untuk menginstal paket ( rpm –i ):


-v Memeriksa RPM apa yang sedang diproses dengan
menampilkan ke layar
-h atau -hash Mencetak tanda hash (#) ke layar untuk
menunjukkan persentase selesainya suatu proses
instalasi
--excludesdocs Tidak menginstal paket dokumentasi
--force Memaksa instalasi paket
--includesdocs Menginstal paket dokumentasi
--nodeps Tidak memeriksa ketergantungan (dependency)
terhadap file lain
--oldpackage Memungkinkan paket yang lama mengganti yang
baru
--percent Menampilkan seberapa banyak persentase proses
instalasi
--replacefiles Mengganti file-file yang telah diinstal dengan yang
baru
--replacepkgs Mengganti paket yang diinstal dengan yang baru
--test Melakukan tes instalasi, apakah suatu paket dapat
terinstal dengan baik atau tidak

Opsi tambahan untuk query/pencarian ( rpm –q ) :


-c Menampilkan file-file konfigurasi
-d Menampilkan file-file dokumentasi
-i Menampilkan keterangan lengkap paket
-l Menampilkan semua file pada paket
-s Menampilkan status file pada paket

2. Instalasi Program Aplikasi dengan Source Code


Dalam setiap aplikasi open source, source code dari aplikasi tersebut
juga diedarkan secara bebas. Source code ini dapat digunakan sebagai
instaler aplikasi untuk distro apapun. Biasanya source code beredar
dalam bentuk *.tar.gz (file tarball).
Hal yang pertama dilakukan dalam menginstal suatu aplikasi dari
source code adalah mengekstrak file source code tersebut yang biasanya
berupa *.tar.gz ke dalam suatu direktori tertentu.
Setelah mengekstrak, biasakan untuk membaca terlebih dahulu
dokumentasi yang telah disediakan pada direktori hasil ekstraksi source
code tadi, karena langkah selanjutnya dijelaskan pada dokumentasi
tersebut.

5.1.4 Pencarian File


Dalam Linux terdapat banyak sekali perintah untuk pencarian file.
Dalam praktikum kali ini akan dibahas 3 perintah yang paling sering
digunakan.
a. find
Berguna untuk mencari file berdasarkan kriteria seperti
nama, ukuran, dan lain-lain. Bila find digunakan tanpa
argumen apapun, hasilnya berupa daftar seluruh file dalam
seluruh direktori yang ada termasuk dari subdirektori. Cara
penggunaannya:
[root@sisjarkom ~]# find [path] [opsi]

b. locate
Mencari file berdasarkan database yang di-update secara periodik.
Perintah updatedb akan membuat sebuah database yang akan
digunakan oleh locate. Cara penggunaannya:
[root@sisjarkom ~]# locate [opsi] [str1 str2]

c. whereis
Perintah ini digunakan untuk mencari letak file binary, halaman
manual (man pages), dan source suatu perintah atau aplikasi yang
terinstal dalam sistem. Cara penggunaannya:
[root@sisjarkom ~]# whereis [opsi] nama_perintah

Opsi utama whereis:


-b Hanya mencari file binary-nya saja
-m Hanya mencari file manual-nya saja
-v Hanya mencari file source-nya saja

5.2 Percobaan Praktikum


5.2.1 Kompresi dan Dekompresi File
1. Login sebagai root.
2. Buat sebuah direktori bernama KLSx (x=sesuai nama kelas)
sebagai tempat penyimpanan file percobaan.
[root@sisjarkom ~]# mkdir /home/KLSx

3. Pindah ke dalam direktori tersebut.


[root@sisjarkom ~]# cd /home/KLSx

salah
4. Buat sebuah file, minimal berisi satu paragraf atau copy
satu file konfigurasi dari sistem. Maksudnya di sini,
agar dapat mengamati perbedaan ukuran file yang
terkompres dengan yang tidak terkompres.
[root@sisjarkom KLSx]# cp /etc/passwd passwd
[root@sisjarkom KLSx]# ls –l

5. Untuk mengkompres file ketik perintah:


[root@sisjarkom KLSx]# gzip -c passwd > kompres1.gz
Tanda “>” adalah Output Redirection (selanjutnya dipelajari
pada Bab 6 mengenai Proses I/O). Output file “passwd” yang
dikompres dimasukkan ke dalam sebuah file bernama
“kompres1.gz”. Apabila tanda “>“ tidak digunakan, maka output
akan ditampilkan dalam karakter aneh.

6. Lihat hasilnya. File terkompres akan berwarna merah.


[root@sisjarkom KLSx]# ls -l
Cermati ukuran filenya dan bandingkan dengan file asal.

7. Untuk mengkompres file dengan menampilkan


persentase kompresi, maka ketikkan perintah berikut:
[root@sisjarkom KLSx]# gzip -cv passwd > kompres2.gz

8. Agar file asal yang akan dikompres tidak disimpan, maka dapat
digunakan opsi -n seperti berikut:
[root@sisjarkom KLSx]# gzip -n passwd

9. Untuk dekompres file ketik perintah:


[root@sisjarkom KLSx]# gunzip kompres1.gz

Dapat juga menggunakan utilitas gzip, namun menggunakan opsi -


d seperti berikut:
[root@sisjarkom KLSx]# gzip -d kompres2.gz
Cermati ukuran file hasil dekompres dan bandingkan dengan file asal.
5.2.2 Pengarsipan File
1. Buat sebuah file arsip bernama “arsip1.tar” yang berisi file-file
“passwd”, ”kompres1”, dan “kompres2”.

[root@sisjarkom KLSx]# tar -cf arsip1.tar passwd kompres1 kompres2

Opsi -f harus digunakan dalam utilitas tar agar fungsi utilitas tar ini
dapat berjalan dengan baik. Opsi -f digunakan untuk merujuk file
yang akan dilibatkan dalam pengarsipan.

2. Untuk menampilkan file-file yang diarsipkan, maka


tambahkan opsi -v seperti berikut:
[root@sisjarkom KLSx]# tar -cvf arsip2.tar passwd kompres1 kompres2

3. Untuk melihat isi file arsip, maka ketikkan perintah


berikut:
[root@sisjarkom KLSx]# tar -tvf arsip1.tar

4. Untuk mengkompres file arsip dapat digunakan perintah


berikut:
[root@sisjarkom KLSx]# gzip -c arsip1.tar > arsip1.tar.gz

Atau:
[root@sisjarkom KLSx]# tar -czvf arsip2.tar.gz passwd kompres1
kompres2

Bandingkan ukuran file “arsip2.tar” dan “arsip2.tar.gz” yang sama-


sama berisi file “passwd”, “kompres1”, dan “kompres2”.

5. Untuk melihat isi file arsip terkompres, ketik perintah:


[root@sisjarkom KLSx]# tar -tzvf arsip2.tar.gz passwd kompres1
kompres2

6. Untuk melakukan ekstraksi file arsip, hapus terlebih


dahulu file asal, yaitu “passwd”, “kompres1”, dan
“kompres2”.
[root@sisjarkom KLSx]# rm -rf passwd kompres1 kompres2
[root@sisjarkom KLSx]# tar -xvf arsip1.tar
[root@sisjarkom KLSx]# ls -l
7. Untuk melakukan ekstraksi file terkompres, hapus lagi
file asal, yaitu file “passwd”, “kompres1”, dan
“kompres2”.
[root@sisjarkom KLSx]# rm -rf passwd kompres1 kompres2
[root@sisjarkom KLSx]# tar -xzvf arsip2.tar.gz
[root@sisjarkom KLSx]# ls -l
Khusus utilitas tar yang digunakan untuk kompresi dan dekompresi
file arsip, maka selalu gunakan opsi -z.

5.2.3 Instalasi Program Aplikasi dengan RPM


1. Instal paket aplikasi.
[root@sisjarkom ~]# rpm –ivh nama_paket.rpm
Pemilihan direktori tempat file instalasi tidak perlu dilakukan karena
sistem akan meletakkannya secara default.

2. Menghapus paket (erase) program yang terinstal dalam komputer


dengan RPM.
[root@sisjarkom ~]# rpm –e nama_paket
3. Melakukan tes terhadap paket aplikasi yang telah diinstal
apakah sudah berjalan dengan benar atau tidak.
[root@sisjarkom ~]# rpm –V nama_paket

4. Menampilkan informasi dari suatu paket yang telah


terinstal.
[root@sisjarkom ~]# rpm –q nama_paket

5. Menampilkan semua paket .rpm yang telah terinstal dalam


sistem.
[root@sisjarkom ~]# rpm –qa

6. Menampilkan paket pemilik file.


[root@sisjarkom ~]# rpm –qf nama_paket.rpm

7. Menampilkan informasi detail dari suatu file rpm.


[root@sisjarkom ~]# rpm –qilp nama_paket.rpm

8. Menampilkan file konfigurasi dari suatu paket.


[root@sisjarkom ~]# rpm –qc nama_paket
5.2.4 Instalasi Program Aplikasi dengan Source Code
1. Ekstrak file source yang berekstensi .tar.gz yang disediakan oleh
asisten.
[root@sisjarkom ~]# tar -xzvf nama_paket.tar.gz
Ekstraksi file source yang biasa disebut dengan file .tarball akan
menghasilkan sebuah direktori.

2. Pindah direktori.
[root@sisjarkom ~]# cd nama_paket

3. Lakukan compile source.


[root@sisjarkom ~]# ./configure

4. Buat file binary dari source yang sudah tercompile


[root@sisjarkom ~]# make

5. Instalasi (eksekusi file binary)


[root@sisjarkom ~]# make install

5.2.5 Pencarian File


1. Pencarian semua file termasuk direktori dan subdirektori di dalam
direktori (path) /home dilakukan dengan mengetikkan
perintah find seperti berikut:
[root@sisjarkom ~]# find /home

2. Apa arti perintah berikut?


[root@sisjarkom ~]# find / -ctime 2

Bacalah manual pages untuk perintah find dan cari opsi -ctime.
[root@sisjarkom ~]# man find

3. Pencarian berdasarkan nama file menggunakan perintah


locate. Pertama, buat sebuah file kosong bernama
cobalocate.
[root@sisjarkom ~]# touch cobalocate

Lakukan pencarian terhadap file cobalocate.


[root@sisjarkom ~]# locate cobalocate
Apakah file cobalocate dapat ditemukan? Jawabannya tidak, karena
sistem belum meng-update database-nya. Sedangkan database di-
update setiap 8 hari sekali. Oleh karena itu, perlu melakukan update
database sebelum melakukan pencarian dengan perintah
locate.
[root@sisjarkom ~]# updatedb
[root@sisjarkom ~]# locate cobalocate

4. Pencarian file binary, manual, dan source dari suatu perintah


menggunakan perintah whereis.
[root@sisjarkom ~]# whereis -b useradd

Perintah di atas untuk melakukan pencarian file binary terhadap


perintah “useradd”. Kombinasikan perintah whereis dengan opsi
yang lain, seperti –m.
BAB VI
PROSES I/O
6.1 Dasar Teori
6.1.1 Proses I/O
Sebuah proses dalam suatu sistem selalu terkait dengan dua hal
yaitu : INPUT dan OUTPUT. Hal tersebut juga berlaku pada Sistem Operasi
Linux. Hal tersebut dapat digambarkan sebagai berikut :

Sebuah perintah/instruksi pada Linux akan membaca


masukan/input dan akan menghasilkan keluaran/output. Dan setiap
kali instruksi diberikan maka sistem operasi linux akan menciptakan sebuah
proses dengan memberikan suatu identitas yang berupa nomor proses
(PID-Process Identity).

File Descriptor
Dijelaskan pada diatas (sub bab 1.2.1) bahwa suatu proses
membutuhkan input dan akan menghasilkan output. Dan piranti-piranti
yang digunakan untuk melakukan input dan menampilkan output untuk
kemudian disebut sebagai standar input dan standar output.
Adapun standar input pada linux adalah keyboard dan standar
outputnya adalah monitor.
Sistem Operasi Linux berkomunikasi melalui file (Everything is
Files,tidak membedakan antara hardware dan file, linux memanipulasi
hardware sama dengan file), melalui file descriptore, yang direpresentasikan
dengan :
FILE
DESCRIPTORS USE EXAMPLE
NUMBER
0 Standar Input Keyboard
1 Standar Layar Monitor
Output
2 Standar Error Layar Monitor

Atau dapat digambarkan sebagai berikut :

6.1.2 Redirection
Redirection adalah istilah yang digunakan untuk mengalihkan
sumber input dan output dari standar yang semestinya (keyboard dan
monitor). Berikut simbol yang digunakan :

Simbol Sintaks Keterangan


0<
atau perintah < fileinput pengganti standar input
<
1>
atau perintah > fileoutput pengganti standar output
>
>> perintah >> fileoutput pengganti standar output
dan output akan
ditambahkan pada bagian
terakhir fileoutput
(append)
2> perintah 2> fileerror pengganti standar error

6.1.3 Filter
Filter adalah utilitas yang dapat memproses standar input dan
menampilkan hasilnya ke standar output.

6.1.3.1 grep
Perintah ini digunakan untuk menyaring atau mencari isi dari suatu
file yang bertipe string dan menampilkan baris-baris sesuai
dengan pola yang ditentukan. sintaksnya :
[root@sisjarkom ~]# grep [options] “yyy” namafile

Keterangan:
yyy : string yang akan dicari

6.1.3.2 sort
Perintah yang digunakan untuk mengurutkan isi dari suatu file
berdasarkan urutan nomor ASCII dari karakter.
sintaksnya :
[root@sisjarkom ~]# sort [options] namafile

Opsi yang biasa digunakan :


-r : mengurutkan dari yang terbesar ke terkecil atau sebaliknya
-n : mengurutkan data numerik

6.1.3.3 uniq
Perintah ini digunakan untuk menghilangkan baris-baris yang
berurutan pada isi sebuah file yang mengalami duplikasi.
Sintaksnya:
[root@sisjarkom ~]# uniq [options] namafile

6.1.3.4 wc
Perintah ini digunakan untuk menghitung jumlah baris, kata dan
karakter dalam sebuah file teks. Sintaksnya :
[root@sisjarkom ~]# wc [options] namafile

Opsi yang biasa digunakan :


-l : menghitung jumlah baris
-w : menghitung jumlah kata
-c : menghitung jumlah karakter

6.1.3.5 cut
Perintah ini digunakan untuk mengambil kolom tertentu pada baris-
baris dari suatu file teks. sintaksnya :
[root@sisjarkom ~]# cut [options] namafile

Opsi yang biasa digunakan :


-d: mendefinisikan tanda pemisah antar field, default pemisah
adalah tab
-f : menampilkan nomor field yang ingin ditampilkan (setiap field
harus dipisahkan oleh <tab>
-c : menampilkan data dari selang nomor karakter dalam setiap
baris yang terdapat file

6.1.3.6 more
Perintahini digunakan untuk menampilkan teks
perhalaman satu layar penuh pada satu waktu. sintaksnya
[root@sisjarkom ~]# more [options] namafile

6.1.3.7 tail
Perintah ini digunakan untuk menampilkan 10 baris terakhir isi dari
sebuah file teks.
[root@sisjarkom ~]# tail [options] namafile

6.1.3.8 head
Perintah ini adalah kebalikan dari perintah tail, karena perintah ini
akan menampilkan 10 baris awal dari isi suatu file teks .
[root@sisjarkom ~]# head [options] namafile

6.1.3.9 Pipeline
Pipeline ( | ) adalah fasilitas pada shell Linux yang berfungsi
untuk menjadikan output dari suatu proses dan menggunakannya
sebagai input pada proses selanjutnya. Mekanisme ini digunakan
sebagai alat komunikasi antar proses. contoh :
[root@sisjarkom ~]# Proses 1 | Proses 2

6.2 Percobaan Praktikum


6.2.1 Redirection

Standar output
[root@sisjarkom ~]# date > date.txt
Perintah date akan menampilkan tanggal dan jam saat perintah
dieksekusi. Tetapi karena ada tanda redirection output, maka hasil
perintah tersebut tidak akan ditampilkan pada layar melainkan
dialihkan kedalam file date.txt

Standar input
[root@sisjarkom ~]# wc < date.txt
Perintah wc akan menghitung jumlah kata, karakter, dan baris dari
input yang berupa isi file date.txt

Standar error
[root@sisjarkom ~]# slh 2> inierror.txt
Pesan kesalahan untuk perintah slh (perintah yang salah) tidak akan
ditampilkan ke layar monitor tetapi dialihkan ke dalam file inierror.txt

6.2.2 Percobaan Filter


Buatlah dua buah file, yaitu file angka.txt dan nama.txt
 untuk file angka.txt isikan dengan angka menurun mulai dari
satu(1) s/d duapuluh(20)

 untuk file nama.txt isikan dengan:


yopi
citra
rangga
bithana
diqa

Mencari baris yang mengandung string “bithana”


[root@sisjarkom ~]# grep “bithana” nama.txt

Mencari baris yang diawali dengan huruf “d”


[root@sisjarkom ~]# grep “^d” nama.txt

Mencari baris yang diakhiri dengan huruf “i”


[root@sisjarkom ~]# grep “i$” nama.txt

Menghitung jumlah baris dan jumlah kata yang ada dalam


file nama.txt
[root@sisjarkom ~]# wc –lc nama.txt

Mengurutkan berdasarkan urutan nomor ASCII


[root@sisjarkom ~]# sort angka.txt

Mengurutkan data numeric


[root@sisjarkom ~]# sort –n angka.txt

Menampilkan 10 baris terkahir dari file angka.txt


[root@sisjarkom ~]# tail angka.txt

Menampilkan 10 baris awal dari file angka.txt.


[root@sisjarkom ~]# head angka.txt

6.2.3 Percobaan Pipeline


Tanpa Pipeline :
[root@sisjarkom ~]# rpm –qa > file1.txt
[root@sisjarkom ~]# grep “zip” file1.txt

Dengan Pipeline :
[root@sisjarkom ~]# rpm –qa | grep zip
Tanpa pipeline , output dari perintah rpm –qa terlebih dahulu akan
disimpan ke dalam file file1.txt, setelah itu file1.txt dijadikan input
pada perintah grep.
Dengan mekanisme pipeline output dari perintah rpm –qa akan
langsung dijadikan input bagi perintah grep.
BAB VII
MANAJEMEN PROSES
7.1 Dasar Teori
7.1.1 Multi-tasking dan multi-user
Saat ini user lebih senang menggunakan tampilan grafis (GUI)
daripada menjalankan sebuah sistem operasi dengan tampilan command
(CLI). Hal tersebut membuat user tidak memaksimalkan komunikasi yang
dapat dilakukan pada sistem. sekarang saatnya user memahami mengenai
proses lebih detail. Tidak setiap perintah yang dijalankan merupakan proses
tunggal. Beberapa perintah pada saat dieksekusi menjalankan serangkaian
proses yang saling terkait, contohnya monzilla, contoh lainnya perintah ls
yang berupa proses tunggal.
Linux merupakan sebuah sistem operasi yang multi-tasking dan
multi-user, yaitu banyak user dapat menjalankan beberapa proses
sekaligus pada waktu yang sama dan pada sistem yang sama.

7.1.2 Konsep Proses


Setiap proses yang dijalankan memiliki PID (Process ID) yang
bersifat unique. Proses ID di linux tercatat dalam bentuk bilangan angka.
Setiap proses yang berjalan pada sistem dapat diamati memory yang
dipakai, user yang menjalankannya (process owner), lamanya proses
tersebut di jalankan, dan lain sebagainya. Proses yang berlangsung dapat
berupa daemon (proses server yang berjalan secara terus-menerus dalam
kondisi background sampai ada permintaan), aplikasi pengguna, utilitas, dan
lain lain. PID dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses
berikutnya (terdaftar dalam konfigurasi /etc/inittab). Linux mengijinkan kita
untuk melihat proses-proses yang ada di komputer. Seperti yang telah
disampaikan di atas, setiap proses memiliki PID (Process ID), PPID (Parent
PID) untuk child process, owner (pemilik proses), prioritas, dan statistik
lainnya. Jika suatu sistem operasi tidak melakukan manajemen proses yang
baik, maka biasanya komputer akan mudah sekali menjadi hang, begitu
suatu program mengalami gangguan. Oleh karena itu, stabilitas suatu sistem
dipengaruhi manajemen proses.
Suatu proses bisa berada pada dua kondisi:
 foreground
Pada kondisi ini, secara umum, kita bisa berinteraksi dengan proses
tersebut. Sebagai contoh, ketika menggunakan vim untuk mengetik,
maka vim sedang berada di foreground
 background
Untuk masuk ke modus ini, kita menekan <CTRL-Z>, sedangkan
untuk mengembalikan ke foreground, kita menggunakan
perintah:
[root@sisjarkom ~]# fg
Untuk mengetahui proses apa saja yang berjalan pada
kondisi background gunakan perintah:
[root@sisjarkom ~]# jobs

7.1.3 Melihat Proses


Berikut utilitas-utilitas yang dapat digunakan untuk melihat proses
yang sedang berjalan:
1. Ps
Adalah utilitas yang digunakan untuk melihat daftar proses yang
sedang berjalan pada sebuah sistem.
Untuk membaca Manual dari perintah man:
[root@sisjarkom ~]# man ps

Contoh penggunaan :
[root@sisjarkom ~]# ps aux

Outputnya:
2. Pstree
Fungsi dari utilitas ini sama dengan perintah ps, hanya saja data
disajikan seperti struktur pohon untuk memperjelas hubungan proses
child dengan parentnya..
untuk membaca manual dari perintah pstree :
[root@sisjarkom ~]# man pstree

contoh penggunaan :
[root@sisjarkom ~]# pstree

Output:
3. Top
Utilitas top secara mendasar fungsinya sama seperti ps, hanya saja
top lebih aktual, karena informasi proses yang sedang berjalan,
ditampilkan secara realtime. Top juga lebih spesifik dalam
menjelaskan keadaan sistem. Kelemahannya adalah proses top ini
lebih banyak memakan memory.

Untuk membaca manual dari perintah top:


[root@sisjarkom ~]# man top

Contoh penggunaan :
[root@sisjarkom ~]# top

Output:
Untuk keluar dari proses top, tekan “q”

Keterangannya:
USER : pemilik proses.
PID : proces ID (Nomor Proses).
%CPU : penggunaan CPU oleh proses.
%MEM : penggunaan Memory (dalam KB) oleh proses.
VSZ/VIRT : penggunaan virtual memory dalam proses.
RSS : penggunaan memory yang resident oleh proses.
TTY : terminal (tty),tempat asal proses tsb dijalankan.
STAT : keadaan suatu proses.
- R : proses dalam kondisi Running.
- S : proses dalam kondisi Sleeping.
- I : proses dalam kondisi idle.
- Z : proses Zombie. Proses zombie adalah suatu
proses (biasanya proses anak) yang telah
mati/dimatikan tetapi tetap ada. Hal ini
dikarenakan proses ibunya(parent process)
tidak mematikan proses anaknya dengan
sempurna. Proses zombie ini akan mati apabila
parent prosesnya mati.
- D : uninterruptible sleep (biasanya I/O).
- < : proses dengan prioritas tinggi.
- N : proses dengan prioritas rendah.
- dan lain lain
START : saat proses dijalankan.
TIME : lama proses dijalankan.
COMMAND : Baris perintah yang dijalankan.

7.1.4 Melakukan analisa setiap Proses


Untuk mengetahui waktu yang diperlukan ketika menjalankan sebuah
proses, dapat menggunakan perintah time. Fungsinya untuk memeriksa
apakah kinerja dari sebuah perintah yang dieksekusi sudah optimal.
Contoh penggunaan time:
[root@sisjarkom ~]# time service network restart

Output:

Keterangan:
real :mengukur waktu total yang dimulai dari saat pertama
aplikasi dijalankan sampai selesai
user :mengukur waktu yang dibutuhkan CPU untuk
menjalankan aplikasi
sys :mengukur waktu yang dibutuhkan CPU untuk
menjalankan sistem atau kernel

7.1.5 Mengendalikan Proses


7.1.5.1 Melakukan interrupt pada proses
Mengirim sinyal dianggap sebagai bentuk komunikasi antar proses,
yaitu memberitahukan suatu tindakan kepada proses yang sedang
berjalan. Tindakan tersebut bisa berupa penghentian atau
menyembunyikan sebuah proses. Berdasarkan sinyal yang dikirim,
maka proses dapat bereaksi, dan administrator dapat
menentukan reaksi tersebut. Untuk mengirim sinyal
gunakan instruksi:
kill PID
atau
kill [-nomor sinyal] PID

Sebelum mengirim sinyal, kita harus menentukan nomer PID


tujuan, dengan menggunakan perintah untuk melihat status.
Selain perintah kill, pada linux juga terdapat perintah killall.
Perintah ini digunakan untuk mematikan suatu proses, tidak dengan
menggunakan PID, tapi dengan menggunakan nama proses.
Perintahnya :

killall [nama proses]


atau
killall [-nomor sinyal] [nama proses]

No Sinyal Nama Deskripsi


Membunuh dan segera menjalankan kembali
1 SIGHUP proses, berguna untuk pembacaan kembali file
konfigurasi,
2 SIGINT Signal interrupt melalui ^C
Mengirim signal TERMINATE kepada proses
15 SIGTERM (signal default, jika [-nomor sinyal] tidak
dimasukkan)
(bagian
3 dari )
SIGQUIT Mengirim signal QUIT kepada proses
digunakan untuk
perintah Mengirim signal KILL kepada proses, secara
[perintah]
9 SIGKILL menjalankan
teori, tidak perintah
ada proses pada yang
kondisibisa
foreground
melawan
[perintah] & menjalankan
apabila signal ini perintah
dikenakan pada
kepadanya. kondisi
background (mode terminal)
jobs melihat perintah yang dijalankan dalam kondisi
background (Suspend)
Suspend (berhenti, tetapi tidak quit)
Ctrl+Z digunakan pada proses yang berjalan pada
kondisi foreground (suspend).
Ctrl+C Interrupt (terminate dan quit) digunakan pada
proses yang berjalan pada kondisi foreground.
setiap proses pada kondisi background
memiliki nomor yang berbeda. Dengan
%n menggunakan ekspresi ‘%’ dapat memanggil
proses dengan nomor tesebut, contoh kill -9
%2, atau fg %2
mengaktifkan program yang dalam kondisi
bg suspend sehingga berjalan sebagai
background process.
fg mengembalikan proses ke kondisi foreground
kill atau menghentikan proses sesuai dengan sinyal
killall yang dikirimkan.
sleep delay untuk waktu yang telah ditentukan.
7.1.5.2 Penjadwalan Proses
Penjadwalan proses salah satu bagian yang terpenting dalam
melakukan manajemen proses. Untuk melakukan optimasi pada sistem
terkadang kita harus mematikan/menjalankan proses-proses tertentu
pada waktu-waktu yang tepat.
Dengan menggunakan penjadwalan seorang admin tidak harus
berada di depan sistem untuk melakukan hal tersebut karena proses-
proses tersebut sudah dijadwalkan. Untuk melakukan penjadwalan
proses digunakan perintah at dan batch.

Format standar :
at HH:MM

Contoh :
[root@sisjarkom ~]# at 09:30
at> touch file1.txt
at> <EOT>
Selain format waktu diatas (HH:MM) juga terdapat format lain.
Penjelasan lebih lengkap dapat dilihat pada manual perintah at

Untuk menghentikan input pada saat menambahkan penjadwalan


digunakan <Ctrl+D>. Untuk melihat jobs yang sudah dijadwalkan
digunakan perintah atq sedangkan untuk menghapus jobs digunakan
perintah atrm diikuti nomor jobs. Seperti contoh dibawah ini :

7.1.6 Percobaan Praktikum


7.1.6.1 Membuat proses
Untuk membuat proses dalam keadaan foreground dapat dilakukan
dengan menjalankan sebuah, perintah contoh :

[root@sisjarkom ~]# ping 127.0.0.1


[root@sisjarkom ~]# vi hello.txt

Untuk membuat proses dalam keadaan background namun dalam


kondisi aktif dapat dilakukan dengan menjalankan perintah dengan
diikuti parameter &. Contoh:
[root@sisjarkom ~]# ping 127.0.0.1 &
[root@sisjarkom ~]# vi hello.txt &

Dengan menggunakan <Ctrl+Z> kita dapat mengirim sinyal


suspend (pada kondisi background namun tidak aktif). Seperti contoh:

[root@sisjarkom ~]# ping 127.0.0.1


<Ctrl+Z>

Untuk melihat proses yang sedang dalam kondisi background dapat


menggunakan perintah jobs. contoh :

Tanda ‘+’ berarti proses tersebut berada di urutan paling atas dari
queue (antrian), sedangkan tanda ‘-’ proses tersebut setelah proses
yang menpunyai tanda ‘+’. Yang perlu diperhatikan antrian
menggunakan konsep LIFO (Last In First Out).

Proses dapat dikembalikan ke proses foreground dengan perintah


fg atau langsung saja dipanggil urutannya dengan ekspresi %.

[root@sisjarkom ~]# fg

Jika perintah fg dijalankan tanpa parameter maka akan memanggil


proses dengan urutan teratas. Atau dengan number yang dapat
diketahui dengan perintah jobs.

[root@sisjarkom ~]# fg 2
[root@sisjarkom ~]# %2

7.1.6.2 Melihat proses


Gunakan perintah ps untuk melihat process status. Perintah ini
mempunyai namyak opsi coba jalankan perintah-perintah dibawah dan
lihat perbedaannya.

[root@sisjarkom ~]# ps
[root@sisjarkom ~]# ps u
[root@sisjarkom ~]# ps a
[root@sisjarkom ~]# ps x
[root@sisjarkom ~]# ps aux
[root@sisjarkom ~]# ps r

Perintah lain untuk melihat status proses adalah pstree dan top.

[root@sisjarkom ~]# pstree


[root@sisjarkom ~]# top
7.1.6.3 Mengendalikan proses
A. Analisa proses
Untuk melihat berapa lama sebuah servis network di
restart dapat dilakukan dengan perintah :
[root@sisjarkom ~]# time service network restart

B. Mengelola sinyal
Buat file prog.sh
[root@sisjarkom ~]# vi prog.sh

Isi dengan :
#!/bin/sh
echo “Program berjalan …”
while :
do
echo “X”
sleep 3
done

Jalankan program tersebut. Karena program melakukan looping,


maka stop dengan mengirim sinyal interrupt (^C).
[root@sisjarkom ~]# chmod +x prog.sh
[root@sisjarkom ~]# ./prog.sh

Jalankan program tersebut sebagai background. Catat


nomor PID proses, tekan Enter untuk ke foreground dan
periksa melalui instruksi ps.
[root@sisjarkom ~]# ./prog.sh &
[root@sisjarkom ~]# ps

Kirimkan sinyal terminasi sebagai berikut


[root@sisjarkom ~]# kill [Nomor PID]

atau
[root@sisjarkom ~]# kill -15 [Nomor PID]

Bisa juga dengan menggunakan killall :


[root@sisjarkom ~]# killall sh

Atau
[root@sisjarkom ~]# killall -9 sh

Ubahlah program prog.sh dengan instruksi trap untuk


menangkap sinyal yang dikirim.
#!/bin/sh
trap “ “ 1 2 3 15
echo “Program berjalan …”
while :
do
echo “X”
sleep 3
done

Jalankan program tersebut sebagai background. Coba


lakukan kill dengan nomor PID proses tersebut.
[root@sisjarkom ~]# ./prog.sh &

Lihat PID proses yang berjalan :


[root@sisjarkom ~]# ps

Matikan proses dengan perintah berikut :


[root@sisjarkom ~]# kill [Nomor PID]

Atau
[root@sisjarkom ~]# kill –1 [Nomor PID]

Atau
[root@sisjarkom ~]# kill –2 [Nomor PID]
Atau
[root@sisjarkom ~]# kill –15 [Nomor PID]

Perintah kill diatas tidak akan menghentikan proses


karena dihalangi dengan perintah trap. Cobalah
menggunakan Nomor sinyal 9.
[root@sisjarkom ~]# kill –9 [Nomor PID]

C. Penjadwalan
Untuk melakukan penjadwalan, kita gunakan perintah at.
Contoh
berikut kita akan melakukan penjadwalan untuk
melakukan restart sistem pada 2 hari ke depan.
[root@sisjarkom ~]# at now + 2 days
at>init 6
at><EOT>
<EOT> dapat dilakukan dengan menekan <Ctrl+D>.

Untuk melihat antrian jadwal job, gunakan perintah atq


[root@sisjarkom ~]# atq

Untuk menghapus jadwal job, gunakan perintah atrm diikuti nomor


antriannya. Hasil dari penjadwalan biasanya berupa mail yang
dikirimkan oleh sistem kepada user dengan subject “Output from your
job”. Penjadwalan juga dapat dilakukan dengan perintah batch,
format batch sama dengan format perintah at.
BAB VIII
PEMROGRAMAN SHELL 2
Dasar Teori
8.1 Dasar Teori
8.1.1 Pengertian Shell
Shell adalah nama sebuah program yang berfungsi agar anda dapat
berinteraksi dengan sistem operasi melalui suatu baris perintah. Shell
menerima perintah dari user dan menjalankannya. Pada keluarga Linux
terdapat lebih dari 400 perintah standar UNIX yang disebut dengan tools.
Dengan shell inilah kita bisa menjalankan atau mengkombinasikan perintah-
perintah tersebut.
Shell juga dapat menjalankan kumpulan perintah yang terdapat pada
suatu file yang disebut shell script. Shell script ini ditulis menggunakan
bahasa pemrograman shell. Dari shell ini kita dapat membuat sebuah script
yang mengkombinasikan beberapa perintah dasar menjadi sebuah program
yang berguna atau bahkan merusak.

Macam-macam shell
Terdapat beberapa macam shell yang tersedia di pasaran diantaranya:
1. Bourne Shell (sh) – Shell sederhana , belum dilengkapi oleh fitur.
2. C Shell (csh) - Biasa disertakan bersama keluarga BSD. Sudah mulai
dilengkapi fasilitas job control (membuat proses berhenti sementara,
foreground, background, dsb), alias (membuat nama lain perintah)
dan history mechanism (menyimpan sejarah perintah yang telah
dijalankan).
3. Korn Shell (ksh) - Merupakan pengembangan dari kedua shell
sebelumnya.
4. Bourne Again Shell (bash) - Diciptakan oleh Brian Fox dan Chet
Ramey, adalah salah satu shell yang popular di dunia Linux. Terdiri
dari 48 built-in command dan selusin opsi command line. Fasilitasnya
antara lain: menyediakan help command dan auto-completion.
Hampir semua distribusi Linux saat ini menggunakan shell jenis ini.
Menggabungkan kelebihan C Shell dan Korn Shell
5. Z shell (Zsh) - Kompatibel dengan csh, ksh, dan sh.

Ketika kita bekerja dengan shell, maka sebenarnya kita sedang


bekerja dalam sebuah environment (lingkungan kerja) yang terdiri dari
environment variables. Environment variables adalah nilai atau nama
path yang sudah ditentukan sebelumnya dan disimpan dalam sebuah
file. Dalam praktikum kita kali ini , shell yang kita gunakan adalah shell
default bawaan Linux yaitu: bash.
Scripting dan Shell Script
Scripting adalah proses pembuatan program menggunakan script
atau teks, yang di dalamnya berisi kumpulan perintah-perintah.
Kumpulan perintah dalam script tersebut terkenal dengan istilah shell
script. Shell Script sebenarnya tidak dikompilasi menjadi program yang
executable, namun hanya akan diinterpretasi dan dijalankan
menggunakan interpreter. Shell adalah interpreter untuk
menginterpretasikan dan manjalankan shell script. Dengan kata lain shell
dapat dikatakan sebagai bahasa pemrograman.
Untuk membuat shell script kita dapat melakukannya dengan 2 cara.
Cara yang pertama adalah cara tradisional, yaitu membuat file kosong,
kemudian menambahkan baris perintah satu persatu (dengan
menggunakan I/O redirection). Cara yang kedua adalah menggunakan
text editor. Mengenai teks editor yang terdapat pada linux, telah dibahas
pada bab sebelumnya.

Output, Variable, Input


Dalam pembuatan shell script alangkah baiknya jika dibiasakan
mengetikkan:
#! /bin/bash
di awal setiap script yang kita buat, untuk memberitahu kernel jenis
script yang dijalankan. Tanda # juga dapat digunakan untuk memberikan
komentar, contoh:

# Ini komentar, tidak akan dijalankan oleh shell

Sebelum kita belajar output, variable dan input maka ada baiknya
jika kita membahas dulu tentang tanda petik.

Quote / Tanda Petik


Penggunaan tanda petik sangat menentukan apakah script kita
menghasilkan keluaran yang diinginkan atau tidak. Kesalahan
penggunaan akan menyebabkan arti yang berbeda pula pada script shell
kita. Kita akan banyak bekerja dengan quote ini, jadi perhatikan baik –
baik !
Ada 3 macam quote yang sering digunakan pada shell programming,
yaitu:

Single quote ' Tanda petik tunggal, digunakan untuk string, tapi
tidak bisa digunakan untuk pengambilan nilai variable
Double " Tanda petik ganda, digunakan untuk string, bisa
quote digunakan untuk pemanggilan nilai variabel
Back quote ` Tanda petik balik, digunakan pada operasi
matematika, digunakan untuk pemanggilan nilai
variabel
Output
Echo adalah salah satu perintah yang digunakan untuk menampilkan
keluaran.

[root@sisjarkom]# echo 'Hello World'

Adanya tanda kutip dikarenakan terdapat spasi diantara kata “hello”


dan “world”, jika string yang akan ditampilkan hanya satu kata maka
tidak perlu dikurung oleh tanda kutip.

Seperti pada contoh berikut:


[root@sisjarkom]# echo Hai

Dan jikakita ingin menampilkannya dalam satu baris,


maka dilakukan perubahan sebagai berikut:
[root@sisjarkom]# echo -n Hai

Untuk lebih jelasnya anda dapat mengetikkan man echo pada shell.

Variabel
Seperti halnya bahasa pemrograman yang lain, maka
pada shell programming dikenal juga variable. Pada shell
script, tipe variabel hanya string, sehingga kita tidak perlu
mendeklarasikannya tipenya. Sintaks penulisan variabel
adalah sebagai berikut:
nama_variabel=isi_variabel

contoh:
[root@sisjarkom]# nama=cristiano_ronaldo
[root@sisjarkom]# umur=28

Penulisan variabel haruslah diawali dengan huruf, tidak boleh diawali


dengan angka atau simbol, tidak dipisahkan oleh spasi, dan bersifat case
sensitive (huruf kecil dan besar dibedakan). Contoh:
[root@sisjarkom]# Kesebelasan=portugal

berbeda dengan:
[root@sisjarkom]# kesebelasan=portugal
Bila variabel berupa string yang terdiri lebih dari satu
kata, maka harus berada dalam tanda petik, contoh:
[root@sisjarkom]# praktikum="Sistem Operasi"

Atau:
[root@sisjarkom]# praktikum=’Sistem Operasi’

Untuk menampilkan isi variabel kita gunakan perintah


echo. Bedanya kali ini kita tambahkan tanda $ di depan
nama variabel, untuk menunjukkan bahwa string tersebut
adalah variabel, contoh:
[root@sisjarkom]# nama="Cristiano Ronaldo"
[root@sisjarkom]# echo $nama

Input

[root@sisjarkom]# read nama

Perintah read diatas akan meminta masukkan dari user, setelah user
menekan enter, maka masukkan tersebut akan disimpan dalam variable
nama.

Parameter Input
Sebuah program shell dapat menerima sederet masukan yang
biasanya berfungsi sebagai opsi atau argumen. Sederet masukan ini
dimasukkan dalam variabel parameter yang sudah terdapat pada shell.
 Variabel parameter adalah $1 sampai $9
 $0 adalah nama dari program itu sendiri
 $# adalah jumlah dari parameter yang dimasukkan
 $* adalah parameter - parameter yang dimasukkan
 $$ adalah nomor proses yang sedang dijalankan
Contoh perintah:
[root@sisjarkom]# ls –l /home/Chaca
Maka:
$0=ls
$1=-l
$2=/home/Chaca
Operator
Operator Aritmatika
Pada pemrograman shell, untuk melakukan operasi aritmatika, kita
harus menggunakan perintah expr, contoh:
[root@sisjarkom]# bil=5
[root@sisjarkom]# echo `expr $bil + 1`

**INGAT** Tanda petik yang digunakan adalah petik tunggal


terbalik (back quote), pada keyboard letaknya persis dibawah
tombol Esc. Perhatikan juga spasi !!

Beberapa operator aritmatika yang sering digunakan,


diantaranya :
Operator Deskripsi
+ Penambahan
- Pengurangan
\* Perkalian
/ Pembagian
% Sisa hasil bagi (mod)

Contoh pemakaiannya:
[root@sisjarkom]# sebelas=`expr 5 + 6`
[root@sisjarkom]# enam=`expr 3 \* 2`

Operator Perbandingan
Seringkali kita harus membandingan dua bilangan, terutama jika kita
menggunakan perintah if atau case (akan dijelaskan kemudian).
Berikut beberapa operator perbandingan:
Operator Deskripsi Simbol
-eq Equal, sama dengan =
-ge Greater equal, lebih besar sama dengan >=
-gt Greater than, lebih besar >
-le Less equal, lebih kecil sama dengan <=
-lt Less than, lebih kecil <
-ne Not equal, tidak sama dengan !=

Contoh pemakaiannya:
if [ $bil1 –gt $bil2 ]; then

Operator Logika
Operator logika yang terdapat pada pemrograman shell
ada tiga, NOT, AND dan OR. Berikut tandanya:
Operator Deskripsi
! NOT
-a AND
-o OR

Contoh pemakaiannya :
if [ $bil1 –eq 5 -o $bil2 -eq 10 ]; then

8.2 Percobaan Praktikum


Percobaan 1 : Mengetahui shell
1. Untuk mengetahui nama shell yang sedang kita gunakan sekarang,
maka gunakan perintah berikut:
[root@sisjarkom]# fgrep username_kamu /etc/passwd

Example:
[root@sisjarkom]# fgrep budi /etc/passwd
budi:x:500:500:budi:/home/budi:/bin/bash

Shell yang sedang kita pakai ditunjukkan pada akhir baris keluaran,
pada contoh diatas kita sedang menggunakan /bin/bash.

2. Melihat jenis – jenis shell yang tersedia di linux:


[root@sisjarkom]# cat /etc/shells
/bin/sh
/bin/bash
/bin/nologin
/bin/tcsh
/bin/csh
/bin/ksh

3. Mengganti shell aktif:


[root@sisjarkom]# chsh
Changing shell for root
New shell [/bin/bash]: /bin/csh
Shell changed

Atau bisa juga dengan perintah:


[root@sisjarkom]# chsh –s /bin/csh
Changing shell for root
Shell changed

**NOTE** Shell yang akan digunakan harus diketikkan dalam


bentuk absolute path (penulisan lokasi file secara lengkap) sesuai
dengan yang ada di dalam file /etc/shells ! Jika tidak, maka
akan muncul pesan error berikut:
chsh: “/bin/[shell_masukan]” does not exist.

Sekarang kita cek, apakah shell untuk root sudah terganti,


ketikkan:
[root@sisjarkom]# fgrep root /etc/passwd
root:x:0:0:root:/root:/bin/csh
operator:x:11:0:operator:/root:/sbin/nologin

4. Melihat environment variables


[root@sisjarkom]# printenv
SSH_AGENT_PID=4957
HOSTNAME=localhost.domain
DESKTOP_STARTUP_ID=
TERM=xterm
SHELL=/bin/bash
....

Percobaan 2 : Quote
Lakukan percobaan berikut dan amati keluarannya!
[root@sisjarkom]# angka=13
[root@sisjarkom]# echo ‘expr $angka+1’
[root@sisjarkom]# echo “expr $angka+1”
[root@sisjarkom]# echo `expr $angka+1`
[root@sisjarkom]# echo `expr $angka + 1`

Percobaan 3 : Membuat script output


1. Buatlah file script1.sh dengan editor vi
#! /bin/bash
echo "This is UNIX world"

2. Keluar dan simpan.


3. Jalankan dengan menggunakan . (dot atau titik) di depan
nama file yang akan dijalankan, dengan satu spasi.
[root@sisjarkom]# . script1.sh
4. Cara kedua menjalankan script adalah dengan mengetikkan sh atau
bash didepan nama script.
[root@sisjarkom]# sh script1.sh

5. Cara ketiga adalah dengan menggunakan dot slash,


namun dengan cara ini maka hak akses suatu file yang
ingin dieksekusi harus diubah dulu, caranya:
[root@sisjarkom]# chmod 777 script1.sh
[root@sisjarkom]# ./script1.sh

Percobaan 4 : Variabel pada shell


1. Ketiklah perintah berikut pada shell
[root@sisjarkom]# tempat=Jogja
[root@sisjarkom]# echo $tempat

2. Menggabungkan beberapa variable


[root@sisjarkom]# tanggal="19 Oktober 2010"
[root@sisjarkom]# gab="$tempat, $tanggal"
[root@sisjarkom]# echo $gab

3. Membuat variabel yang berisi perintah


[root@sisjarkom]# lihat="ls -l"
[root@sisjarkom]# $lihat

Percobaan 5 : Membuat script input


1. Ketikkan pada shell
[root@sisjarkom]# read jurusan
informatika
[root@sisjarkom]# echo $jurusan

2. Membaca masukkan “nama” dan “asal” dengan menggunakn script


buatlah file script2.sh
#! /bin/bash
echo -n "Siapa nama anda ? "
read nama
echo -n "Darimana asal anda ? "
read asal
echo
echo "Jadi anda adalah $nama dari $asal"
3. Jalankan script tersebut
[root@sisjarkom]# sh script2.sh

Percobaan 6 : Parameter Input


1. Buatlah file dengan nama script3.sh, kemudian isikan sebagai
berikut:
#! /bin/bash
echo "Anda menjalankan program $0"
echo "Parameter pertama adalah $1"
echo "Parameter kedua adalah $2"
echo "Parameter ketiga adalah $3"
echo "Anda memasukkan parameter sebanyak $#"
echo “parameter yang Anda masukkan adalah $*”
echo "Proses berjalan dengan PID $$"

2. Jalankan disertai opsi berikut:


[root@sisjarkom]# sh script3.sh
[root@sisjarkom]# sh script3.sh satu
[root@sisjarkom]# sh script3.sh satu dua
[root@sisjarkom]# sh script3.sh satu dua tiga
Percobaan 7 : Operator Aritmatika
1. Ketikkan pada shell
[root@sisjarkom]# expr 10 + 9
[root@sisjarkom]# expr 88 \* 8
[root@sisjarkom]# bil=100
[root@sisjarkom]# expr $bil / 25

2. Buatlah file dengan nama script4.sh, kemudian isikan sebagai


berikut:
#! /bin/bash
echo -n "Bilangan 1 = "
read bil1
echo -n "Bilangan 2 = "
read bil2
jumlah=`expr $bil1 + $bil2`
kali=`expr $bil1 \* $bil2`
echo "Jumlah kedua bilangan adalah $jumlah"
echo "Perkalian kedua bilangan adalah $kali"

3. Jalankan script tersebut


[root@sisjarkom]# sh script4.sh

8.3 Studi Kasus


Soal:
1. Buatlah sebuah script dengan nama cari.sh untuk pencarian
string/kata apa saja dari sebuah file teks.
Petunjuk :
 Pakailah perintah fgrep, atau kombinasi cat dan grep
Contoh ketika file dijalankan :
[root@sisjarkom ~]# sh cari.sh
kata yg dicari : root
dari file : /etc/passwd
hasil pencarian adalah sbb :
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

masih untuk
2. Buatlah sebuah script lagi dengan nama cari2.sh
pencarian string/kata sebuah file teks, hanya saja
program tersebut dijalankan dengan format :
sh cari2.sh<spasi>kata_yg_dicari<spasi>dari_file

Contoh :
[root@sisjarkom ~]# sh cari2.sh root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
BAB IX
PEMROGRAMAN SHELL 2
Dasar Teori
9.1 Dasar Teori
9.1.1 Status exit
Setelah suatu instruksi dieksekusi, maka instruksi tersebut akan
memberikan keluaran berupa nilai yang merepresentasikan apakah instruksi
tersebut memberikan nilai benar/true/sukses atau salah/false/gagal.
Indikasinya sebagai berikut:
 Nilai tersebut disimpan dalam variable ?
 Jika instruksi berakhir benar/sukses/true, maka variable ? bernilai 0
 Jika instruksi berakhir salah/gagal/false, maka variable ? bernilai 1

Variable ? itulah yang disebut status exit. Untuk melihat nilai dari
status exit dapat dilihat melalui instruksi echo $?.
[root@sisjarkom ~]# echo $?

Test
Instruksi test digunakan untuk memeriksa kondisi dari
suatu ekspresi, dan hasil status exit dapat dilihat melalui
variable ?, sintaksnya:
test ekspresi

Dimana ekspresi dapat diisi dengan membandingkan dua buah nilai


atau variable (dengan operator perbandingan). Table – table operator
dapat dilihat pada BAB IX, Pemrograman Shell Bagian 1.
Contoh :
nama=sugi
test $nama = sugi
echo $?
test $nama = sugiarto
echo $?

Note: Perhatikan spasi! Test akan memberikan nilai status exit (?)
dengan nilai 0 atau true.

Untuk memudahkan pembacaan , test dapat ditulis


dengan
test [ekspresi]
Note : perhatikan spasi! Akhir ekspresi harus dipisahkan dengan
spasi. Kita akan banyak bekerja dengan test pada if then dst.

9.1.2 Percabangan
Percabangan digunakan sebagai kontrol seleksi yang memungkinkan
program untuk menjalankan suatu perintah berdasarkan kondisi tertentu.

If then
Merupakan percabangan yang paling sederhana.
Sintaksnya adalah sbb:
if [ ekspresi ]; then
Perintahjikabenar_1
Perintahjikabenar_2
Perintahjikabenar_n
fi

Dengan percabangan ini, maka Perintahjikabenar_1 sampai


Perintahjikabenar_n akan dieksekusi jika ekspresi bernilai benar.
Sebaliknya jika ekspresi bernilai salah maka Perintahjikabenar1 sampai
Perintahjikabenarn tidak akan pernah dijalankan dan tidak akan
menjalankan perintah lain dalam percabangan if tersebut.

Berikut ini adalah contoh penggunaan percabangan if


then:
#! /bin/bash
#simpan dengan nama ifthen.sh
nama=”irwan”
echo –n ”masukkan nama: ”
read masukan
if [ $masukan = $nama ]; then
echo ”nama masukan benar”
fi
Penjelasan contoh :
 Skrip setelah tanda # adalah komentar dan tidak akan dieksekusi.
Kecuali pada baris pertama #! /bin/bash , komentar ini akan
menyebabkan sistem mengaktifkan shell bash. Jika sudah berada
dalam mode shell bash maka kita tidak perlu untuk mengetikkan
komentar tersebut. Komentar itu juga menunjukkan bahwa script
akan dieksekusi oleh shell bash.
 Baris nama adalah untuk memberikan nilai “irwan” kepada variable
nama.
 Instruksi echo digunakan untuk menampilkan tulisan (defaultnya
ke layar) . Parameter –n digunakan cursor tidak berpindah baris
setelah perintah tersebut.
 Instruksi read digunakan untuk membaca masukan / input dari
user. Dalam contoh diatas, masukan user disimpan dalam sebuah
variable bernama $masukan
 Perhatikan instruksi if then , disini dilakukan pencocokan isi
variable input dengan isi variable nama. jika masukan sama maka
sistem akan mengeluarkan kalimat “nama masukan benar “. Jika
masukan salah , maka sistem akan mengabaikan perintah didalam
if then.
 fi digunakan untuk menutup if then
 Perhatikan spasi dibagian ekspresi if then , jika Anda tidak
memberikan spasi maka program akan error.
 Perhatikan juga bahwa tidak ada spasi pada pemberian nilai
variable. Jika diberi spasi, maka program akan error.

If then else
Percabangan if then else memberikan pilihan jika kondisi bernilai
false. Sintaksnya adalah sbb:
if [ ekspresi ]; then
perintahjikabenar_1
perintahjikabenar_2
perintahjikabenar_n
else
perintahjikasalah_1
perintahjikasalah_2
perintahjikasalah_n
fi

Dengan percabangan ini, perintahjikabernar_1 sampai


perintahjikabenar_1 hanya akan dijalankan jika apa yang diinginkan
di ekspresi menghasilkan keluaran yang benar. Jika menghasilkan
keluaran salah, maka yang akan dieksekusi adalah perintah – perintah
setelah else.

Contoh:
#! /bin/bash
#simpan dengan nama ifthenelse.sh
nama=”irwan”
echo –n ”masukkan nama : ”
read masukan
if [ $masukan = $nama ]; then
echo ”nama masukan benar”
else
echo ”nama masukan salah”
fi

Penjelasan :
Script ini hampir sama dengan contoh yang pertama.
Perbedaannya adalah pada else, jika user memasukkan nama
salah, maka akan keluar kalimat “nama masukan salah”

If then elif
Percabangan ini memberikan pilihan lebih dari 2 kondisi untuk
dibandingkan. Sintaksnya:
if [ ekspresi1 ]; then
instruksi 1.1
instruksi 1.2
elif [ ekspresi2 ]; then
instruksi 2.1
intruksi 2.2
else
instruksi 3.1
instruksi 3.2
fi

Jika ekspresi1 benar maka sistem akan menjalankan instruksi 1.x,


namun jika salah maka sistem akan membandingkan ekspresi2, jika
nilainya benar, maka sistem akan menjalankan instruksi 2.x. jika tidak
ada satupun ekspresi yang bernilai benar maka sistem akan menjalankan
instruksi 3.x
Contoh:
#! /bin/bash
# simpan dengan nama ifthenelif.sh
nama1=”rangga”
nama2=”depi”
echo –n “masukkan nama : “
read masukan
if [ $masukan = $nama1 ]; then
echo “nama pertama benar”
elif [ $masukan = $nama2 ]; then
echo “nama kedua benar”
else
echo “nama masukan salah”
fi

Penjelasan :
 Pertama kali , sistem akan melakukan pengecekan apakah nama1
sama dengan masukan user (apakah ekspresi1 bernilai true), jika
benar maka sistem akan menampilkan pesan “nama pertama
benar”
 Jika ekpresi pertama bernilai false maka sistem akan melakukan
pengecekan apakah nama2 sama dengan masukan user, jika
benar sistem akan menampilkan pesan “nama kedua benar”
 Jika ternyata kedua ekspresi tersebut bernilai false, maka sistem
akan langsung manampilkan pesan “nama masukan salah”

Untuk selanjutnya, Anda bisa mengembangkan sendiri percabangan if


then.

Case
Konstruksi case ini digunakan untuk menyederhanakan pemakaian if
yang berantai atau kompleks, sehingga dengan menggunakan case ,
kondisi dapat dikelompokkan secara logis dan lebih mudah dan jelas
dalam penulisannya.
Sintaksnya:
case variable in
match_1}
instruksi 1.1
instruksi 1.2
…………..
;;
Match_2)
instruksi 2.1
instruksi 2.2
…………..
;;
Match_n)
instruksi n.1
instruksi n.m
…………..
;;
*)

instruksi *.1
instruksi *.n
…………..
;;
Esac

Penjelasan:
 Variable adalah nilai yang akan dibandingkan dengan match_1
sampai match_n
 Misalkan jika nilai dari variable sama dengan nilai match_1 maka
sistem akan mengeksekusi instruksi 1.x.
 Setiap kelompok instruksi diakhiri dengan tanda ;;
 Di dalam *) adalah instruksi – instruksi yang dijalankan jika dari
match_1 sampai match_n tidak ada yang bernilai true.
 Case diakhiri dengan perintah esac.

Contoh:
#! /bin/bash
#simpan dengan nama case.sh
echo “pilih perintah : ”
echo “1. Lihat isi direktori”
echo “2. Siapakah aku?”
echo “3. Melihat tanggal hari ini”
echo “4. Melihat direktori kerja”
echo –n “Pilihan anda : “
read pil
case $pil in
1)
echo “Isi direktori: “
ls
;;
2)
echo “aku adalah `whoami`”
;;
3)
echo “Sekarang tanggal: `date`“
;;
4)
echo “Direktori sekarang adalah `pwd`”
;;
*)
echo “Tidak ada dalam pilihan !”
;;
esac
Penjelasan:
Pertama kali sistem akan membaca masukan dari user dan
menyimpannya dalam variable pil.
Kemudian pil dibandingkan , jika isi dari variable pil adalah 3 maka
perintah “echo “Sekarang tanggal:“ date akan dieksekusi.

Select
Select bukan merupakan percabangan murni, karena menggunakan
percabangan lain yaitu if then atau case. Biasanya select digunakan
untuk membuat daftar menu pilihan pada script di dalam select berisi
pola – pola yang mencakup keseluruhan daftar pilihan.
Untuk lebih jelasnya, mari kita perhatikan contoh berikut:
#! /bin/bash
#simpan dengan nama select.sh
PILIHAN=”Halo Keluar”
select opt in $PILIHAN; do
if [ $opt = “Keluar” ]; then
echo “selesai terus keluar”
exit
elif [ $opt = “Halo” ]; then
echo “halo juga”
else
clear
echo “gak ada dalam pilihan”
fi
done

Penjelasan:
 Variable PILIHAN digunakan oleh select untuk menyimpan
seluruh nilai dari variable opt
 Dengan select, selama belum ada perintah exit dan masih berada
di dalam select, maka program tidak akan pernah keluar.
 Select harus diakhiri dengan done

9.1.3 Perulangan
Perulangan digunakan untuk mengeksekusi perintah – perintah yang
berada di dalamnya secara berulang – ulang selama kondisi yang telah
ditentukan.

For
For digunakan sebagai sintak perulangan dengan menggunakan var
yang ada pada setiap pengulangan akan diganti dengan nilai yang
berada pada daftar.
Sintaks:
for var in str_1 str_2 ……str_n
do
instruksi_1
instruksi_2
…………
Instruksi_n
done
Perulangan ini agak berbeda dengan perulangan yang ada pada
bahasa pemrograman lain, karena perulangan dilakukan berdasarkan
nilai – nilai yang ada dalam daftar. Sehingga perulangan ini tidak
dilakukan untuk bilangan integer melainkan string.

 Str_1, str_2,…, sampai str_n adalah daftar nilai – nilai yang akan
diulang. Bisa juga diisi dengan instruksi lain yang menghasilkan
daftar nilai – niali seperti ls , misalnya.
 Instruksi1 hingga instruksi_n adalah instruksi yang akan diulang
berdasarkan daftar.
 Perulangan diawali dengan do dan diakhiri dengan done

Untuk lebih jelasnya perhatikan perintah berikut:


#! /bin/bash
#simpan dengan nama for.sh
for i in $(ls); do
echo isi direktori: $i
done

Penjelasan contoh:
Daftar – daftar nilai disini diambil dari perintah ls yang
menghasilkan daftar – daftar file pada direktori aktif. Disimpan
dalam variable i. Perintah perulangannya adalah menampilkan kata
“isi direktori : “ diikuti dengan nilai dari variable i.

Jika Anda ingin melakukan perulangan yang berbentuk seperti


bilangan atau integer pada bahasa pemrograman lain. Gunakan skrip
berikut :

#! /bin/bash
#simpan dengan nama for1.sh
for i in $(seq 1 10); do
echo perulangan ke : $i
done
Penjelasan:
 Perulangan dilakukan dari 1 sampai 10
 Memanfaatkan perintah seq untuk men-generate string 1 sampai
10

While
While digunakan untuk perulangan instruksi , yang umumnya dibatasi
dengan suatu kondisi. Selama kondisi tersebut bernilai true, maka
pengulangan terus dilakukan. Pengulangan akan berhenti , bila kondisi
bernilai False atau program keluar dari blok while melalui perintah
break atau exit. Variable yang ingin diulang harus terlebih dahulu
diberikan nilai awal (inisialisasi)

Sintaksnya:
while kondisi
do
instruksi_1
instruksi_2
………….
Instruksi_n
done

Penjelasan:
 Jika kondisi selalu benar , maka instruksi_1 hingga instruksi_n
akan terus dilakukan
 Jika kondisi berubah jadi salah, maka instruksi dihentikan.
 Jika terdapat instruksi exit atau break , maka perulangan juga
dihentikan.
 Perulangan while diawali dengan do diakhiri dengan done

Untuk lebih jelasnya perhatikan contoh berikut:


#! /bin/bash
#simpan dengan nama while.sh
KOUNTER=0
while [ $KOUNTER –lt 10 ]; do
echo kounternya : $KOUNTER
let KOUNTER=KOUNTER+1
done

Penjelasan:
 KOUNTER diinisialisasi dengan nilai awal 0
 Kondisi pengulangan adalah selama nilai KOUNTER lebih kecil dari
10
 let KOUNTER=KOUNTER+1 digunakan untuk mengganti nilai
KOUNTER dengan KOUNTER+1, sehingga nilai KOUNTER akan
bertambah 1 setiap kali perulangan (proses iterasi).

Until
Perulangan until hampir sama dengan perulangan while,
perbedaannya terdapat pada kondisi perulangan. Perulangan akan
dilakukan selama kondisi bernilai false/salah.

Sintaksnya:
until kondisi
do
instruksi_1
instruksi_2
………….
Instruksi_n
Done

Penjelasan:
 Selama kondisi False maka dilakukan instruksi1 hingga
instruksi_n
 Perulangan dimulai dengan do dan diakhiri dengan done

Contoh :
#! /bin/bash
KOUNTER=20
until [ $KOUNTER –lt 10 ]; do
echo kounternya : $KOUNTER
let KOUNTER-=1
done

9.1.4 Fungsi
Dalam script shell juga terdapat fungsi. Fungsi dipanggil oleh
program lainnya dengan menggunkan notasi NamaFungsi(). Fungsi
memberikan exit status($?) yang dinyatakan dengan return nr , atau nilai
0 sebagai default.
Variable dalam fungsi dapat didefinisikan sebagai variable local atau
global. Hal yang perlu dipertimbangkan , nama variable yang digunakan
dalam sebuah fungsi , jangan sampai bentrok atau sama dengan nama
variable yang ada diluar fungsi , sehinga tidak terjadi perubahan nilai atau
isi dari variable tersebut.
Jenis-jenis fungsi

1. Fungsi tanpa parameter


Fungsi ini tidak memiliki parameter. Pembuatannya diawali dengan
nama fungsi lalu kemudian blok program yang dinyatakan dalam
{………}.
Sintaksnya:
namafungsi {
instruksi_1
instruksi_2
………….
Instruksi_n
}

Contohnya:
#! /bin/bash
#contoh program fungsi tanpa parameter
#simpan dengan nama fungsi1.sh
function tampil {
tampil=$nama
echo “Nama Anda adalah $tampil”
}
echo -n “masukkan nama : “
read nama
tampil
Penjelasan:
o Dalam script tersebut terdapat 1 buah fungsi yaitu fungsi tampil
o Fungsi tampil digunakan untuk menampilkan nama ke monitor
o Variable nama sendiri di dapat dari inputan user

2. Fungsi dengan parameter


Fungsi tanpa parameter bersifat statis, sehingga tidak mampu
mengakomodasi jika kita ingin suatu fungsi itu bersifat dinamis.
Untuk itu kita membutuhkan suatu fungsi yang mampu merespon
masukan dari user ataupun suatu nilai variable yang berubah – ubah.
Dengan adanya fungsi dengan parameter , maka efek sebuah
masukan terhadap suatu fungsi dapat diamati.
Sintaksnya:
namafungsi {
instruksidenganparameter_1
instruksidenganparameter_2
………….
Instruksidenganparameter_n
}

Untuk lebih jelasnya perhatikan contoh berikut :


#! /bin/bash
#contoh program fungsi dengan parameter
#simpan dengan nama fungsi2.sh
function tampil {
tampil=$1
echo “Nama Anda adalah $tampil”
}
tampil $1

Penjelasan:
o Hampir sama seperti fungsi tanpa parameter yang berbeda adalah
saat menjalankan program
o Parameter 1 di inputkan setelah nama program
o Contoh menjalankan program : sh tampil.sh ucup

9.2 LANGKAH PRAKTIKUM

Percobaan ifthen
#! /bin/bash
#program hitung upah
#simpan dengan nama upah1.sh
echo –n “jam kerja : “
read jamkerja
echo –n “upah per jam : “
read upahperjam
upah=`expr $jamkerja \* $upahperjam`
echo “upah yang diterima sebesar : $upah”
if [ $jamkerja –gt 40 ]; then
jamkerja=`expr $jamkerja – 40`
upah=`expr $jamkerja \* $upahperjam + $upah`
echo “upah total yang diterima sebesar $upah”
fi
Percobaan if then else
#! /bin/bash
#program hitung upah2
#simpan dengan nama upah2.sh
echo –n “jam kerja : “
read jamkerja
echo –n “upah per jam : “
read upahperjam
upah=`expr $jamkerja \* $upahperjam`
if [ $jamkerja –le 40 ]; then
echo “upah yang diterima sebesar : $upah”
echo “Tidak ada bonus”
else
jamkerja=`expr $jamkerja – 40`
upah=`expr $jamkerja \* $upahperjam + $upah`
echo “upah total yang diterima sebesar $upah”
fi

Percobaan if then elif


#! /bin/bash
#program hitung upah3
#simpan dengan nama upah3.sh
echo –n “jam kerja : “
read jamkerja
echo –n “upah per jam : “
read upahperjam
upah=`expr $jamkerja \* $upahperjam`
if [ $jamkerja –lt 40 ]; then
echo “upah yang diterima sebesar : $upah”
echo “Tidak ada bonus”
elif [ $jamkerja –eq 40 ]; then
upah=`expr $upah + 10`
echo “Upah yang diterima sebesar : $upah”
else
jamkerja=`expr $jamkerja – 40`
upah=`expr $jamkerja \* $upahperjam + $upah`
echo “upah total yang diterima sebesar $upah”
fi
Percobaan case
#! /bin/bash
#program asosiasi hari
#simpan dengan nama hari.sh
echo –n “hari ke : “
read hari
case $hari in
1)
echo “Ahad”
;;
2)
echo “Senin”
;;
3)
echo “Selasa”
;;
4)
echo “Rabu”
;;
5)
echo “Kamis”
;;
6)
echo “Jum’at”
;;
7)
echo “Sabtu”
;;
Esac
Percobaan select
#! /bin/bash
#program menghitung maks, jumlah dan hasil kali 2
buah angka
#simpan dengan nama angka.sh
echo –n “masukkan angka pertama : “
read ang1
echo –n “masukkan angka kedua : “
read ang2
DAFTAR=”maks sum mul”
select pil in $DAFTAR; do
if [ $pil = “maks” ]; then
if [ $ang1 –gt $ang2 ]; then
echo “maks = $ang1”
else echo “maks = $ang2”
fi
elif [ $pil = “sum” ]; then
echo “jumlah = `expr $ang1 + $ang2`”
elif [ $pil = “mul” ]; then
echo “hasil kali = `expr $ang1 \* $ang2`”
else
clear
echo “ tidak ada dalam pilihan !”
exit
fi
done

Percobaan for
#! /bin/bash
#program cari rata - rata
#simpan dengan nama cariratarata.sh
echo -n "masukkan angka integer positif : "
read n
jum=0
for i in $(seq 1 $n); do
echo -n "masukkan angka:"
read angka
jum=`expr $jum + $angka`
done
rata2=`expr $jum / $n`
echo "rata - ratanya adalah $rata2"
Percobaan while
#! /bin/bash
#program jumlah integer dengan while
#simpan dengan nama jumlah.sh
ulang="yes"
while [ $ulang = yes ]; do
echo -n "masukkan angka integer positif : "
read batas
hasil=0
i=0
if [ $batas -lt 0 ]; then
echo "negative number is not allowed!"
else
while [ $i -lt $batas ]; do
let i+=1
let hasil+=$i
done
fi
echo "jumlah bilangan integer dari 1 sampai $batas
= $hasil"
echo -n "ulangi program ini (yes / no) ?"
read ulang
done

Percobaan until
#! /bin/bash
until [ $jwb = s –o $jwb = b –o $jwb = s –o $jwb =
b ]; do
echo “ sudah sholat blum ?”
read jwb
done

if [ $jwb = s –o $jwb = s ]; then


echo “anak hebat!”
else
echo “cepat sholat!”
fi
Percobaan fungsi tanpa parameter
#! /bin/bash
#program kurs tanpa parameter
#simpan dengan nama nilai1.sh
function nilai {
nilai=`expr $1 / $2`
echo “Rp.$1 = $nilai euro”
}
echo –n “jumlah rupiah : “
read 1
echo –n “ kurs 1 euro : “
read 2
nilai

Percobaan fungsi dengan parameter


#! /bin/bash
#program kurs dollar dengan parameter
#simpan dengan nama nilai2.sh
function nilai {
nilai=`expr $1 / $2`
echo “Rp.$1 = $nilai euro”
}
nilai $1 $2
echo “parameter pertama : $1”
echo “parameter kedua : $2”
echo “jumlah parameter input : $#”
ket : $1 adalah nilai rupiah
$2 adalah nilai kurs uero
cara menjalankan : sh nilai2.sh 50000 15000

Anda mungkin juga menyukai