• Tidak ada hasil yang ditemukan

06_File dan Penanganan Direktori

N/A
N/A
Protected

Academic year: 2017

Membagikan "06_File dan Penanganan Direktori"

Copied!
9
0
0

Teks penuh

(1)

Penanganan File dan Direktori

Bagian ini berisi t ent ang fungsi- fungsi built - in PHP y ang m enduplik asi fungsi- fungsi y ang t erdapat di dalam sy st em . Salah sat u fungsi y ang sangat berguna ant ara lain fungsi y ang digunak an 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 digunak an unt uk m em anipulasi file hany a dapat digunak an secara spesifik unt uk dalam sist em operasi berbasis Unix . Walaupun dem ik ian fungsi- fungsi dasar PHP y ang digunak an unt uk m em anipulasi file t et ap dapat digunak an dalam sist em operasi Microsoft Window s.

1 .2 Tu j u a n

Tuj uan dalam pem belaj aran ini adalah m ahasisw a m enget ahui dan m enggunak an fungsi- fungsi dasar dari PHP y ang digunak an unt uk :

1. Mem baca file 2. Menulis file

3. Menj alank an fungsi- fungsi sist em file dan direk t ori

1 .3 D e finisi

File

Sebuah file k om put er adalah sebuah infor m asi pent ing at au resource lain y ang digunak an 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 ny a berbasisk an suat u m edia peny im 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 digunak an w alaupun program y ang m enggunak an file t ersebut t elah selesai.

(2)

D ir e k t or i ( Folde r )

Sebuahdirek t ori adalah sebuah t em pat penam pungan file v irt ual dalam sebuah ant arm uk a pengguna, dim ana sek elom pok file k om put er at au direk t ori lain disim pan dan dik elola m enj adi sebuah st rukt ur k at alog file. I st ilah folder dan direk t ori dalam k om put er dapat diart ik an sebagai sat u hal y ang sam a.

File- file y ang saling berk ait an dapat dit em pat k an dalam direk t ori y ang sam a unt uk m em per m udah pengelolaanny a. Sebuah direk t ori y ang t erdapat didalam direk t ori lainny a dinam ak an dengan subdirek t ori. Dir ek t ori y ang let ak ny a paling at as disebut direk t 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 w x dan 3 digit angk a unt uk m engindik asik an perm ission y ang diperbolehk an t erhadap suat u file. Set iap digit angk a m erepresent asik an perm ission t erhadap seorang user/ gr oup/ lainny a, r adalah perm ission unt uk operasi baca ( read) , w unt uk operasi t ulis ( w rit e) , dan x unt uk operasi ex ecut e. Digit y ang pert am a m erepresent asik an perm ission unt uk ow ner ( pem ilik file) , digit y ang k edua m erepresent asik an perm ission unt uk k elom pok user ( group) , dan digit y ang k et 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 enu lis, dan m enj alank an file y ang dim ilik i oleh seluruh user y ang t erdaft ar dalam k om put er.

Set iap digit m eru pak an represent asi k ode biner dar i per m ission y ang 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 hany a dapat dit ulis dan diubah isiny a oleh pem ilik file t ersebut selain dari user root . Sebuah file dengan per m ission 7 77 ( rw x rw x w rx ) at au seringk ali disebut dengan w orld

w rit 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 direk t ori y ang digunak an oleh PHP dapat dibagi m enj adi dua, y ait u:

1. Perm ission 644 ( rw - r- - r- - ) unt uk seluruh file PHP, k ecuali ada alasan lain unt uk m enggunak an perm ission selain 644 .

2. Unt uk direkt ori, gunak an perm ission 751 ( rw x - r- x - - x ) at au 755 ( rw x r- x r- x ) , kecuali ada alasan lain unt uk m enggunak an perm ission selain 751/ 755.

Perm ission file PHP t idak perlu unt uk diset sebagai ex ecut able. File PHP y ang ak an dij alank an oleh w ebserv er hany a perlu m em ilik i perm ission sedem ik ian rupa sehingga file PHP t ersebut dapat dibaca oleh user y ang m enj alank an w eb serv er, dalam hal ini Apache. User y ang

m enj alank an Apache w eb serv er biasany a nobody, httpd, at au apache.

Ca t a t a n

(3)

2 .3 Fu n gsi- fu n gsi U n t u k M e m ba ca da n M e nu lis File

PHP m em ilik i sek um pulan set fungsi y ang dapat digunak an unt uk m em anipulasi file dan direk t ori. Diant ara fungsi- fungsi t ersebut , fungsi- fungsi y ang sering digunak an ant ara lain fungsi- fungsi unt uk m engubah at ribut file, m em baca dan m enam pilk an isi dari suat u direk t ori, m engubah per m issions suat u file, m em baca isi sebuah file dan m engubahny a m enj adi st ruk t ur dat a y ang lain, sert a m encari suat u file dengan k rit eria pencarian t ert ent u.

Fungsi- fungsi built - in PHP y ang t ersedia sangat berm anfaat unt uk m eny im 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 enggunak an sebuah sist em basis dat a. Penggunaan sist em basis dat a m em ang m enaw ark an fit ur pengelolaan dat a y ang j auh lebih baik daripada file. Nam un sist em basis dat a m em erluk an resource y ang lebih besar daripada sist em file biasa.

Sebuah operasi m anipulasi file um u m ny a m elibat k an langk ah- langk ah berik ut :

1. Mem buk a file unt uk operasi baca at au t ulis,

2. Mem baca isi file

3. Melak uk an operasi t erhadap isi file

4. Menulisk an hasil operasi k e dalam file

5. Menut up file

Set iap langk ah dari operasi m anipulasi file t ersebut m em ilik i k orespondensi fungsi sist em file dalam PHP secara t ersendiri.

M e m ba ca File

Sebagai langk ah aw al, m isalk an t erdapat sebuah proses m em buk a sebuah file unt uk dibaca isiny a dan dit am pilk an dalam sebuah halam an w eb. Sebagai cont oh, script PHP berik ut

m em perlihat k an sebuah operasi m em baca suat u file. Nilai v ariabel $filename y ang t erdapat

di aw al script PHP dapat disesuaik an dengan pat h dan nam a file lain y ang ak an dibaca isiny a.

<?php// filename: read.php

// file yang akan dibaca $filename = “data.txt”;

// buka file

$fd = fopen($filename, “r”)

or die(“Can’t open file $filename”);

// baca isi file

$fstring = fread($fd, filesize($filename));

// tutup file fclose($fd);

// tampilkan isi file echo $fstring;

?>

(4)

1. Mem buk a file dan m eny im pan resource y ang dihasilk an 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 y ang pert am a berisi pat h dan nam a file y ang ak an dibuk a.

Argum en k edua adalah m ode operasi y ang ak an dilak uk 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 ak a script ak an berhent i dan m enam pilk an

pesan k esalahan.

// buka file

$fd = fopen($filename, “r”)

or die(“Can’t open file $filename”);

2. File handle y ang diper oleh dari fu ngsi fopen() digunak an sebagai argum en fungsi

fread(). Fungsi fread() selain m enerim a ar gum en handler, j uga m en erim a argum en k edua y ang digunak an unt uk m enent uk an j um lah byt e y ang ak an dibaca. Jik a seluruh

isi file ak an dibaca, inform asi j um lah by t e ini dapat diperoleh dari fungsi filesize()

y ang m enghasilk an j um lah by t e dar i file. I si file y ang 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 bebask an penggunaan m em ory y ang

t elah digunak an oleh file handler. Fu ngsi ini bersifat opsional.

// tutup file fclose($fd);

Sebagai alt ernat if unt uk m em baca file dengan PHP adalah dengan m enggunak an fungsi

file(). Fungsi file() t ersebut ak an m enghasilk an sebuah array , dim ana set iap elem en array y ang dihasilk an berisi set iap baris y ang ada dalam file y ang dibaca. Unt uk m enam pilk an

isi file y ang dibaca dengan m enggunak an fungsi file() cuk up m elak uk an it erasi dengan

m enggunak an perulangan foreach() t erhadap v ariabel array y ang dihasilk an oleh fungsi

file() dan m enam pilk an t iap elem en ( baris) - ny a.

Berik ut ini adalah cont oh script PHP y ang m em per lihat k an penggunaan fungsi file() unt uk

m em baca isi dari sebuah file:

<?php// filenamefile.read.php

// file yang akan dibaca $filename = “data.txt”;

// bacaisi file

$lines = file( $filename ) or die( “Could not read file” );

// tampilkan isi file

foreach ($lines as $line) { echo $line;

}

(5)

M e n u lis File

Langk ah- langk ah y ang digunak an unt uk m enulisk an dat a k e dalam sebuah file serupa dengan m em baca file y ak ni:

1. Mem buk a file,

2. Menulisk an dat a, dan

3. Menut up file.

Sebagai cont oh, script PHP berik ut ak an m enulisk an sebuah k alim at k e dalam sebuah file:

<?php // filename: write.php

// file yang akan ditulis $filename = “data.txt”;

// buka file

$fd = fopen($filename, “w”)

or die(“Can’t open file $filename”);

// isi file yang akan dituliskan $content = “Hello, World!”;

// tulis isi file $fwrite($fd, $content)

or die(“Can’t write to file $filename”);

// tutup file fclose($fd);

?>

Sebagai alt ernat if, fungsi file_put _cont ent s( ) dapat digunak an m ulai PHP v ersi 5.0 unt uk m enulisk an baris st ring k e dalam sebuah file dengan hany a sebuah fungsi. Cont oh:

<?php // filename: putcontents.write.php // requires PHP 5.0

// file yang akan ditulis $filename = “data.txt”;

// isi file yang akan dituliskan $content = “Hello, World!”;

// buka file Ca t a t a n

Fungsi fopen(), fread(), dan fclose() adalah fungsi y ang bersifat binary - safe, sehingga

am an digunak an unt uk m em baca file binary ( selain file t ek s) t anpa perlu k uat ir ak an m erusak isiny a.

Fungsi die() adalah sebuah fungsi prim it if y ang sering digunak an unt uk m enam pilk an

(6)

$file_put_contents($filename, $content) or die(“Can’t open file $filename”);

?>

M ode - m ode Ope r a si File

File dapat dibuk a dengan 6 m acam alt ernat if m ode operasi. Jik a m ode operasi y ang digunak an t idak sesuai at au t idak diperbolehk an oleh perm ission file y ang ak an dibuk a, m ak a fungsi fopen( ) ak an gagal dij alank an . Mode- m ode operasi t ersebut ant ar a lain:

Read- only ( “ r” ) .

Read dan w r it e, j ik a file sudah ada ( “ r+ ” ) , penulisan dat a ak an dit aruh dibagian aw al

file y ang dibuk a.

Writ e- only ( “ w ” ) ak an m em buat file dengan nam a file y ang diberik an j ik a file y ang

dit ent uk an belum ada. Mode operasi ini ak an m enghapus seluruh isi file y ang dit ent uk an dalam argu m en fungsi fopen( ) sebelum m enulisk an dat a yang baru. Mode ini hany a dapat digunak an unt uk m enulis file dan t idak dapat digunak an 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 bah k an dat a di bagian ak hir dari file. Tidak dapat

digunak an unt uk m em baca isi file.

Read- append ( “ a+ ” ) digunak an unt uk m em baca, m enulis, dan/ at au m enam bahk an

dat a di bagian ak hir dari file.

Khusus unt uk m ode “ w ” dan “ w + ” perlu diperhat ik an secara lebih k husus unt uk m enghindari hilangny a dat a, k arena k edua m ode t ersebut ak an m enghapus seluruh isi file sebelum m enulisk an dat a y ang baru.

2 .4 Fu n gsi- Fu n gsi Sist e m File da n D ir e k t or i

Selain fungsi- fungsi y ang dapat digunak an unt uk m em baca dan m enulis file, PHP j uga m eny ediak an fungsi- fungsi y ang dapat digunak an 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 fun gsi- fungsi sist em file di PHP dapat dilihat pada Tabel 2.1.

Tabel 2.1 Fungsi- fungsi sist em file PHP

Fu n gsi D e sk r ipsi

file_exists() Mem berik an nilai boolean y ang m engindik asik an adany a file

Pe r h a t ia n

(7)

is_dir() Mem berik an nilai boolean y ang m engindik asik an argum en y ang

diberik an adalah sebuah direk t ori at au buk an.

is_file() Mem berik an nilai boolean y ang m engindik asik an argum en y ang

diberik an adalah sebuah file at au bu k an

is_link() Mem berik an nilai boolean y ang m engindik asik an argum en y ang

diberik an adalah sebuah sy m bolic link at au buk an

is_executable() Mem berik an nilai boolean y ang m engindik asik an file dapat diek sek usi

at au t idak

is_readable() Mem berik an nilai boolean y ang m engindik asik an file dapat dibaca at au

t idak

is_writable() Mem berik an nilai boolean y ang m engindik asik an file dapat dit ulisi at au

t idak

filesize() Mem berik an nilai uk uran file dalam sat uan by t es

filemtime() Mem berik an w ak t u m odifik asi t erak hir t erhadap file

fileatime() Mem berik an w ak t u ak ses t erak hir 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 y ang m endem onst rasik an beberapa fungsi sist em file PHP. Nilai v ariabel $file dapat disesuaik an dengan pat h dan nam a file y ang ak an diperik sa st at usny a.

<?php // filename: file.check.php

// file yang akan diperiksa $file = “data.txt”;

// menampilkan ukuran file dalam bytes

echo 'File size: ' . filesize($file) . ' bytes';

// menampilkan jenis file

echo 'File type: ' . filetype($file);

// memeriksa apakah file ada atau tidak

echo file_exists($file) ? 'File ada' : 'File tidak ada';

// memeriksa apakah file dapat dieksekusi

echo is_executable($file) ? 'File dapat dieksekusi' : 'File tidak dapat dieksekusi';

// memeriksa apakah file dapat dibaca


echo is_readable($file) ? 'File dapat dibaca' : 'File tidak dapat dibaca';

// memeriksa apakah file dapat ditulisi

(8)

?>

M e n a m pilk a n I si Su a t u D ir e k t or i

Seringk ali k ebut uhan m engenai operasi pada sist em file t idak hany a berkait an dengan sebuah file t unggal, nam un j uga berk ait an dengan bany ak file dan bany ak direk t ori. Hal t ersebut m enim bulk an sebuah t ugas t am bahan m engit erasi dan m engolah dat a beberapa direk t ori dan file- file y ang t erdapat didalam n y a.Unt uk dapat m eny elesaik an t ugas t ersebut , PHP m eny ediak an beberapa fungsi unt uk m em anipulasi direk t ori sehingga file- file y ang t erdapat dalam beberapa direk t ori dapat disusun dan diolah secara sek aligus.

Berik ut ini adalah cont oh script PHP sederhana y ang berfungsi unt uk m enam pilk an isi dari sebuah direk t ori dan m enam pilk an j um lah file y ang t erdapat di dalam direk t ori t ersebut :

<?php // filename: list.dir.php

// inisialisasi counter $count = 0;

// menentukan nama direktori yang akan diperiksa $dir = "/data";

// periksa apakah $dir adalah direktori if (is_dir($dir))

{

// buka direktori yang ditentukan if ($handler = opendir($dir))

{

// dan lakukan iterasi untuk setiap file yang ada didalammnya while (($filename = readdir($handler)) !== false)

{

// selain file dengan nama “.” dan “..” if (($filename != ".") && ($filename != "..")) {

// hitung file $count++;

// dan tampilkan nama filenya echo $dir . "/" . $filename . "\n"; }

}

// tutup directory closedir($handler); }

}

// tampilkan jumlah file yang ditemukan

echo "-- Ditemukan $count file dalam direktori $dir --";

(9)

REFEREN SI

Vasw ani, Vik ram . 2005. How t o do Ev ery t hing w it h PHP & My SQL. McGraw - Hill/ Osborne. New York

Conv erce, Tim ; Park , Joy ce; Morgan Clark . 2004. PHP5 and My SQL Bible. Wiley Publishing, I nc., I ndianapolis, I ndian a

PROPAGASI

A. La t ih a n da n D isk u si ( Pr opa ga si V e r t ik a l da n H or iz on t a l)

Buat lah sebuah form buk u t am u dengan k et ent uan sebagai berik ut :

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

2. Form y ang 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 asuk an y ang diberik an pada for m .

Nilai y ang dim asuk k an m elalui form buk u t am u disim pan k e dalam sebuah file t eks dengan posisi penam bahan dat a di ak hir.

4. Nam a file y ang digunak an unt uk m eny im pan dat a adalah “ dat a.dat ”

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

B. Tu ga s ( Ev a lu a si m a n dir i)

1. Jelask an apa y ang dim ak sud dengan file, direk t ori, dan sist em file!

2. Apa beda sist em file dalam sist em operasi Window s dan Unix / Linux ? Jelask an pengaruhny a t erhadap pem rogram an PHP!

C. Pe n ga y a a n Kom pe t e n si ( Ev a lu a si m a n dir i)

1. Dari program y ang dibuat pada lat ihan A, berik an 2 field t am bahan pada form y ang digunak an unt uk m enerim a m asuk an dari pengunj ung berupa alam at dan nom or t elepon!

2. Lak uk an peny esuaian pada file process.php unt uk m engak om odasi k ebut uhan

t erhadap 2 field t am bahan t ersebut !

3. Buat sebuah file t am pil.php y ang digunak an unt uk m enam pilk an isi dari file “ dat a.dat ” dalam bent uk t abel!

Referensi

Dokumen terkait