06_File dan Penanganan Direktori

Penanganan File dan Direktori
Aryo Pinandito, ST, M.MT
Fajar Pradana, S.ST, M.Eng
Issa Arwani, S.Kom, M.Sc

1 . PEN D AH U LUAN
1.1 Pengant ar
1.2 Tuj uan
1.3 Definisi

MODUL

2 . PEN AN GAN AN FI LE
2.1 File perm issions
2.2 File perm issions unt uk file
PHP
2.3 Fungsi- fungsi unt uk
m em baca dan m enulis file
2.4 Fungsi- fungsi sist em file dan
direkt ori


6

1 . PEN D AH ULUAN

Bagian ini berisi t ent ang fungsi- fungsi built - in PHP yang m enduplikasi
fungsi- fungsi yang t erdapat di dalam syst em . Salah sat u fungsi yang
sangat berguna ant ara lain fungsi y ang digunakan unt uk m em anipulasi
file, sepert i y ang digunak an unt uk m em baca dan m enulis file. Beberapa
fungsi- fungsi built - in PHP y ang dapat digunakan unt uk m em anipulasi file
hanya dapat digunakan secara spesifik unt uk dalam sist em operasi
berbasis Unix. Walaupun dem ik ian fungsi- fungsi dasar PHP yang
digunakan unt uk m em anipulasi file t et ap dapat digunakan dalam sist em
operasi Microsoft Windows.

1 .2 Tu j u a n
Tuj uan dalam pem belaj aran ini adalah m ahasiswa m enget ahui dan
m enggunakan fungsi- fungsi dasar dari PHP yang digunakan unt uk:
1.
2.
3.


Mem baca file
Menulis file
Menj alankan fungsi- fungsi sist em file dan direkt ori

1 .3 D e finisi
File
Sebuah file kom put er adalah sebuah infor m asi pent ing at au resource lain
yang digunakan unt uk m eny im pan inform asi, dim ana infor m asi t ersebut
t ersedia unt uk program k om put er dan pada um um nya berbasiskan suat u
m edia penyim panan y ang bersifat t ahan lam a. Sebuah file dik at ak an
t ahan lam a dalam art ian j ik a file t ersebut t et ap ada dan dapat digunakan
walaupun program y ang m enggunak an file t ersebut t elah selesai.

Halaman1

SELF-PROPAGATING ENTREPRENEURIAL EDUCATION DEVELOPMENT

1 .1 Pe n ga n t a r


Mata Kuliah / MateriKuliah

Brawijaya University

2012

D ir e k t or i ( Folde r )
Sebuahdirekt ori adalah sebuah t em pat penam pungan file virt ual dalam sebuah ant arm uk a
pengguna, dim ana sek elom pok file kom put er at au direkt ori lain disim pan dan dik elola
m enj adi sebuah st rukt ur k at alog file. I st ilah folder dan direkt ori dalam k om put er dapat
diart ik an sebagai sat u hal yang sam a.
File- file y ang saling berkait an dapat dit em pat kan dalam direk t ori y ang sam a unt uk
m em per m udah pengelolaanny a. Sebuah direkt ori yang t erdapat didalam direkt ori lainny a
dinam akan dengan subdirek t ori. Dir ek t ori yang let aknya paling at as disebut direkt ori r oot .

2 . PEN AN GAN AN FI LE
2 .1 File Pe r m ission s
File perm ission di sist em operasi Unix/ Linux dilam bangk an dengan sim bol r wx dan 3 digit
angka unt uk m engindik asik an perm ission yang diperbolehkan t erhadap suat u file. Set iap digit
angka m erepresent asik an perm ission t erhadap seorang user/ gr oup/ lainnya, r adalah

perm ission unt uk operasi baca ( read) , w unt uk operasi t ulis ( writ e) , dan x unt uk operasi
execut e. Digit y ang pert am a m erepresent asikan perm ission unt uk owner ( pem ilik file) , digit
yang kedua m erepresent asik an perm ission unt uk kelom pok user ( group) , dan digit y ang
ket iga m erepresent asik an perm ission unt uk user lain y ang t idak t erm asuk ke dalam gr oup
user pem ilik suat u file. Seorang superuser ( root ) dapat m elihat , m enulis, dan m enj alank an
file yang dim iliki oleh seluruh user y ang t erdaft ar dalam kom put er.
Set iap digit m erupak an represent asi kode biner dar i per m ission yang dim ilik i oleh sebuah file.
Sebagai cont oh, sebuah file dengan perm ission 644 ( rw- r- - r- - ) dapat dibaca oleh sem ua user,
nam un hanya dapat dit ulis dan diubah isinya oleh pem ilik file t ersebut selain dari user root .
Sebuah file dengan per m ission 777 ( rwxrwxwrx) at au seringkali disebut dengan world
writ eable perm issionsberart i file t ersebut dapat dibaca, dit ulis, dan diek sekusi oleh seluruh
user.

2 .2 File Pe r m ission s u n t u k file PH P
Secara spesifik , perm issions unt uk file dan direkt ori yang digunakan oleh PHP dapat dibagi
m enj adi dua, yait u:
1. Perm ission 644 ( rw- r- - r- - ) unt uk seluruh file PHP, kecuali ada alasan lain unt uk
m enggunak an perm ission selain 644.
2. Unt uk direkt ori, gunak an perm ission 751 ( rwx - r- x - - x ) at au 755 ( rwx r- x r- x ) , kecuali
ada alasan lain unt uk m enggunakan perm ission selain 751/ 755.

Perm ission file PHP t idak perlu unt uk diset sebagai execut able. File PHP yang akan dij alank an
oleh webserver hany a perlu m em ilik i perm ission sedem ikian rupa sehingga file PHP t ersebut
dapat dibaca oleh user y ang m enj alankan web server, dalam hal ini Apache. User y ang
m enj alankan Apache web serv er biasanya nobody, httpd, at au apache.
Ca t a t a n
Unt uk sist em file Windows ( NTFS/ FAT32) dim ana pada sist em operasi t ersebut berj alan
sebuah web serv er, pada dasarny a sebuah file dan folder m em iliki perm ission read dan
writ e, sehingga t idak perlu diubah lagi perm issionnya. Kecuali j ika t erdapat kebut uhan lain
yang m engharusk an suat u file dan/ at au direkt ori diat ur per m ission- nya, cont oh: read- only .

Halaman60

Mata Kuliah / MateriKuliah

Brawijaya University

2012

2 .3 Fu n gsi- fu n gsi Un t u k M e m ba ca da n M e nu lis File
PHP m em iliki sek um pulan set fungsi yang dapat digunakan unt uk m em anipulasi file dan

direkt ori. Diant ara fungsi- fungsi t ersebut , fungsi- fungsi yang sering digunakan ant ara lain
fungsi- fungsi unt uk m engubah at ribut file, m em baca dan m enam pilkan isi dari suat u
direkt ori, m engubah per m issions suat u file, m em baca isi sebuah file dan m engubahny a
m enj adi st rukt ur dat a y ang lain, sert a m encari suat u file dengan krit eria pencarian t ert ent u.
Fungsi- fungsi built - in PHP y ang t ersedia sangat berm anfaat unt uk m enyim pan suat u dat a
at au inform asi k e dalam sebuah file. Terlebih lagi j ik a inform asi y ang disim pan t erlalu k ecil
dan t ersebar sehingga perlu m enggunakan sebuah sist em basis dat a. Penggunaan sist em
basis dat a m em ang m enawarkan fit ur pengelolaan dat a yang j auh lebih baik daripada file.
Nam un sist em basis dat a m em erluk an resource yang lebih besar daripada sist em file biasa.
Sebuah operasi m anipulasi file um um ny a m elibat k an langk ah- langkah berikut :
1. Mem buka file unt uk operasi baca at au t ulis,
2. Mem baca isi file
3. Melakukan operasi t erhadap isi file
4. Menuliskan hasil operasi k e dalam file
5. Menut up file
Set iap langkah dari operasi m anipulasi file t ersebut m em ilik i korespondensi fungsi sist em file
dalam PHP secara t ersendiri.
M e m ba ca File
Sebagai langkah awal, m isalk an t erdapat sebuah proses m em buka sebuah file unt uk dibaca
isinya dan dit am pilkan dalam sebuah halam an web. Sebagai cont oh, script PHP berikut

m em perlihat kan sebuah operasi m em baca suat u file. Nilai v ariabel $filename yang t erdapat
di awal script PHP dapat disesuaik an dengan pat h dan nam a file lain yang akan dibaca isinya.


Script PHP t ersebut di at as m em perlihat kan t iga langkah dasar unt uk m em baca dat a yang
t erdapat dalam sebuah file. Langkah- langkah t ersebut ant ara lain:

Halaman 61

Mata Kuliah / MateriKuliah

Brawijaya University

2012

1. Mem buka file dan m eny im pan resource y ang dihasilkan k e dalam sebuah file handle.
PHP m em erluk an sebuah file handle unt uk m em baca dat a dari dalam sebuah file. File
handle t ersebut dapat diperoleh dari fungsi fopen().Fungsi fopen()m enerim a dua
argum en. Argum en yang pert am a berisi pat h dan nam a file yang akan dibuk a.
Argum en k edua adalah m ode operasi y ang akan dilakuk an t erhadap file, dim ana ‘r’

adalah m ode operasi unt uk m em baca. Jik a file berhasil dibuk a, m ak a $fd ak an berisi
handler unt uk file $filename, j ik a t idak, m aka script akan berhent i dan m enam pilkan
pesan kesalahan.
// buka file
$fd = fopen($filename, “r”)
or die(“Can’t open file $filename”);

2. File handle y ang diper oleh dari fungsi fopen() digunakan sebagai argum en fungsi
fread(). Fungsi fread() selain m enerim a ar gum en handler, j uga m enerim a argum en
kedua yang digunak an unt uk m enent ukan j um lah byt e yang ak an dibaca. Jika seluruh
isi file akan dibaca, inform asi j um lah by t e ini dapat diperoleh dari fungsi filesize()
yang m enghasilk an j um lah by t e dar i file. I si file yang dibaca disim pan dalam v ariabel
$fstring.
// baca isi file
$fstring = fread($fd, filesize($filename));

3. Menut up file dengan fungsi fclose() unt uk m em bebaskan penggunaan m em ory y ang
t elah digunak an oleh file handler. Fungsi ini bersifat opsional.
// tutup file
fclose($fd);


Sebagai alt ernat if unt uk m em baca file dengan PHP adalah dengan m enggunakan fungsi
file(). Fungsi file() t ersebut ak an m enghasilkan sebuah array, dim ana set iap elem en
array yang dihasilkan berisi set iap baris yang ada dalam file yang dibaca. Unt uk m enam pilkan
isi file yang dibaca dengan m enggunakan fungsi file() cukup m elakukan it erasi dengan
m enggunakan perulangan foreach() t erhadap variabel array yang dihasilkan oleh fungsi
file() dan m enam pilk an t iap elem en ( baris) - nya.
Berik ut ini adalah cont oh script PHP y ang m em per lihat kan penggunaan fungsi file() unt uk
m em baca isi dari sebuah file:


Halaman 62

Mata Kuliah / MateriKuliah

Brawijaya University

2012

Ca t a t a n

Fungsi fopen(), fread(), dan fclose() adalah fungsi yang bersifat binary - safe, sehingga
am an digunakan unt uk m em baca file binary ( selain file t eks) t anpa perlu kuat ir ak an
m erusak isinya.
Fungsi die() adalah sebuah fungsi prim it if yang sering digunakan unt uk m enam pilk an
pesan kesalahan y ang m enj adi argum ennya j ika t erj adi sebuah fat al- error dan m engak hiri
pem rosesan script PHP.
M e nulis File
Langkah- langkah y ang digunak an unt uk m enuliskan dat a ke dalam sebuah file serupa dengan
m em baca file yak ni:
1. Mem buka file,
2. Menuliskan dat a, dan
3. Menut up file.
Sebagai cont oh, script PHP berik ut ak an m enuliskan sebuah kalim at ke dalam sebuah file:


Sebagai alt ernat if, fungsi file_put _cont ent s( ) dapat digunakan m ulai PHP versi 5.0 unt uk
m enuliskan baris st ring k e dalam sebuah file dengan hanya sebuah fungsi. Cont oh:


Pe r ha t ia n

Selalu diperhat ik an bahwa direk t ori dim ana file yang akan dim anipulasi dengan PHP berada
harus ada sebelum file t ersebut dapat dit ulisi. Kesalahan pat h dan nam a file yang ak an
dim anipulasi unt uk dit ulis dapat berakibat m unculny a pesan k esalahan script at au ak ibat
fat al lain, yakni hilangny a dat a.

M ode - m ode Ope r a si File
File dapat dibuka dengan 6 m acam alt ernat if m ode operasi. Jik a m ode operasi y ang
digunakan t idak sesuai at au t idak diperbolehkan oleh perm ission file yang akan dibuk a, m ak a
fungsi fopen( ) akan gagal dij alankan. Mode- m ode operasi t ersebut ant ar a lain:










Read- only ( “ r” ) .
Read dan wr it e, j ik a file sudah ada ( “ r+ ” ) , penulisan dat a ak an dit aruh dibagian awal
file y ang dibuka.
Writ e- only ( “ w” ) ak an m em buat file dengan nam a file yang diberikan j ika file y ang
dit ent ukan belum ada. Mode operasi ini akan m enghapus seluruh isi file y ang
dit ent ukan dalam argum en fungsi fopen( ) sebelum m enuliskan dat a yang baru. Mode
ini hanya dapat digunak an unt uk m enulis file dan t idak dapat digunakan unt uk
m em baca isi file.
Writ e dan read ( “ w+ ” ) serupa dengan m ode “ w” , nam un m ode ini m engizink an file
unt uk dibaca isiny a.
Append ( “ a” ) , m enulis/ m enam bahkan dat a di bagian akhir dari file. Tidak dapat
digunakan unt uk m em baca isi file.
Read- append ( “ a+ ” ) digunak an unt uk m em baca, m enulis, dan/ at au m enam bahkan
dat a di bagian ak hir dari file.

Khusus unt uk m ode “ w” dan “ w+ ” perlu diperhat ikan secara lebih khusus unt uk m enghindari
hilangnya dat a, k arena k edua m ode t ersebut akan m enghapus seluruh isi file sebelum
m enuliskan dat a y ang baru.
2 .4 Fungsi- Fungsi Sist e m File dan D ir e k t or i
Selain fungsi- fungsi y ang dapat digunakan unt uk m em baca dan m enulis file, PHP j uga
m enyediakan fungsi- fungsi y ang dapat digunakan unt uk m enget es st at us dari suat u file.
Beberapa diant arany a adalah fungsi unt uk m enget ahui ukuran file, m enget ahui apak ah file
sudah ada at au belum , m enget ahui j enis file, dan lain- lain.Beberapa fungsi- fungsi sist em file
di PHP dapat dilihat pada Tabel 2.1.
Tabel 2.1 Fungsi- fungsi sist em file PHP

Fungsi

D e sk r ipsi

file_exists()

Mem berik an nilai boolean yang m engindikasikan adany a file

Halaman 64

Mata Kuliah / MateriKuliah

Brawijaya University

2012

is_dir()

Mem berik an nilai boolean yang m engindikasikan argum en yang
diberik an adalah sebuah direkt ori at au bukan.

is_file()

Mem berik an nilai boolean yang m engindikasikan argum en yang
diberik an adalah sebuah file at au bukan

is_link()

Mem berik an nilai boolean yang m engindikasikan argum en yang
diberik an adalah sebuah sym bolic link at au bukan

is_executable()

Mem berik an nilai boolean yang m engindikasikan file dapat dieksek usi
at au t idak

is_readable()

Mem berik an nilai boolean yang m engindikasikan file dapat dibaca at au
t idak

is_writable()

Mem berik an nilai boolean yang m engindikasikan file dapat dit ulisi at au
t idak

filesize()

Mem berik an nilai ukuran file dalam sat uan byt es

filemtime()

Mem berik an wak t u m odifikasi t erakhir t erhadap file

fileatime()

Mem berik an wak t u akses t erakhir t erhadap file

fileowner()

Mem berik an pem ilik file

filegroup()

Mem berik an group file

fileperms()

Mem berik an nilai perm issions suat u file

filetype()

Mem berik an j enis file

Berik ut ini adalah cont oh script PHP yang m endem onst rasikan beberapa fungsi sist em file
PHP. Nilai variabel $file dapat disesuaik an dengan pat h dan nam a file yang akan diperik sa
st at usny a.


M e na m pilk a n I si Sua t u D ir e k t or i
Seringkali kebut uhan m engenai operasi pada sist em file t idak hanya berkait an dengan sebuah
file t unggal, nam un j uga berk ait an dengan banyak file dan banyak direkt ori. Hal t ersebut
m enim bulkan sebuah t ugas t am bahan m engit erasi dan m engolah dat a beberapa direkt ori dan
file- file y ang t erdapat didalam nya.Unt uk dapat m enyelesaikan t ugas t ersebut , PHP
m enyediakan beberapa fungsi unt uk m em anipulasi direkt ori sehingga file- file y ang t erdapat
dalam beberapa direkt ori dapat disusun dan diolah secara sekaligus.
Berik ut ini adalah cont oh script PHP sederhana yang berfungsi unt uk m enam pilkan isi dari
sebuah direkt ori dan m enam pilk an j um lah file yang t erdapat di dalam direkt ori t ersebut :


Halaman 66

Mata Kuliah / MateriKuliah

Brawijaya University

2012

REFEREN SI
Vaswani, Vikram . 2005. How t o do Every t hing wit h PHP & My SQL. McGraw- Hill/ Osborne.
New York
Converce, Tim ; Park, Joyce; Morgan Clark . 2004. PHP5 and My SQL Bible. Wiley
Publishing, I nc., I ndianapolis, I ndiana

PROPAGASI
A. La t iha n da n D isk usi ( Pr opa ga si Ve r t ik a l da n H or izont al)
Buat lah sebuah form buk u t am u dengan ket ent uan sebagai berikut :
1.

Jum lah field input y ang t erdapat dalam form t ersebut dalam bent uk t ext dan
t ext area berj um lah 3 input . I nput t ersebut digunakan unt uk m enerim a m asuk an
nam a, em ail, dan pesan dari pengunj ung.

2.

Form yang dibuat m enggunak an m et hod GET dengan nilai at ribut act ion adalah file
process.php

3.

File process.php digunak an unt uk m engolah m asukan yang diberikan pada for m .
Nilai yang dim asuk k an m elalui form buku t am u disim pan ke dalam sebuah file t eks
dengan posisi penam bahan dat a di akhir.

4.

Nam a file y ang digunakan unt uk m enyim pan dat a adalah “ dat a.dat ”

5.

Set elah dat a berhasil disim pan, t am pilkan seluruh isi file “ dat a.dat ” t ersebut !

B.

Tuga s ( Eva lua si m a ndir i)

1.
2.

Jelaskan apa y ang dim ak sud dengan file, direkt ori, dan sist em file!
Apa beda sist em file dalam sist em operasi Windows dan Unix/ Linux? Jelaskan
pengaruhnya t erhadap pem rogram an PHP!

C.

Pe nga ya a nKom pe t e nsi ( Eva luasi m a ndir i)

1.

Dari program yang dibuat pada lat ihan A, berik an 2 field t am bahan pada form yang
digunakan unt uk m enerim a m asukan dari pengunj ung berupa alam at dan nom or
t elepon!
Lakukan peny esuaian pada file process.php unt uk m engakom odasi kebut uhan

2.
3.
4.

t erhadap 2 field t am bahan t ersebut !
Buat sebuah file t am pil.php y ang digunakan unt uk m enam pilkan isi dari file
“ dat a.dat ” dalam bent uk t abel!
Tam bahk an fasilit as unt uk m engosongkan isi dari file “ dat a.dat ”

Halaman67