fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-fungsi.pdf · fungsi •...

25
Fungsi PHP function, what’s your PHP function, what’s your function? function?

Upload: others

Post on 29-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Fungsi

PHP function, what’s your PHP function, what’s your function?function?

Page 2: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Fungsi

• Definisi: fungsiadalah satu blokcode yang memiliki

00

code yang memilikiinput dan output dan dapat di-reuse.

• Suatu blok kodeyang menyembunyikandetil dariimplementasi 1111

Page 3: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Kategori Fungsi

• Fungsi ada 2:

• Built-in function

• User defined function• User defined function

Page 4: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Built-in Function

• Merupakan fungsi bawaan dari PHP yang tinggal dipakai sesuai keperluan.

• Contoh:• Contoh:• phpinfo();

• echo (“”Open the door!);

• $encrypted = md5($password);

• $nospasi = trim(“ teks berspasi ”);

• $kuadrat = sqrt(9);

• $waktu = time();

Page 5: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

User Defined Function

• Fungsi yang dibuat sendiri.

• Syntax fungsi:function namaFungsi($param1, …)function namaFungsi($param1, …)

{

return ($returnValue);

}

• Syntax pemanggilan fungsi:$returnVal = namaFungsi($p1, …);

Page 6: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Contoh Fungsi Buatan Sendiri

<?phpfunction isLeapYear( $year ){

if (((($year % 4) == 0) &&(($year % 100) != 0)) ||(($year % 400) == 0))(($year % 400) == 0))

$result = TRUE;else

$result = FALSE;

return( $result );}

$yr = 2000;printf( "Year %d ", $yr );

$status = isLeapYear( $yr ) ?"is" : "is not";

printf( "%s a leap year",$status );

?>

Page 7: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Latihan

• Buat fungsi yang mengkonversi suhuFahrenheit ke Celcius.

• Rumus: • Rumus:

Page 8: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Fungsi dengan Parameter Default

<?phpfunction myLog( $exp, $base = 10 ){

return( log( $exp, $base ) );}}

$result = myLog( 1000 );

printf( "log10(1000): %.0f<br />",$result );

$result = myLog( 8, 2 );

printf( "log2(8): %d<br />",$result );

?>

Page 9: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Variable Static

<?phpfunction birthday(){

// initialize oncestatic $age = 0;

Variable static tidakakan hilangwalaupunpemanggilan fungsi

static $age = 0;return( ++$age );

// same results?// return( $age++ );

}

for ( $i = 0 ; $i < 5 ; $i++ ){

printf( "Age: %d<br />",birthday() );

}?>

pemanggilan fungsitelah selesai.

Nilainya akan tetaptersimpan hinggabrowser ditutup.

Page 10: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pass by Value vsPass by Reference

Page 11: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Passing Variables: The Inside Story

• Apa yang sebenarnya terjadipada variable yang pada variable yang dikirim ke suatufungsi?

Page 12: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pass by Value

• Pass by Value membuat variable lokal yang hanyaberlaku di dalam fungsi.

• Sesudah keluar dari fungsi, variable dan nilai didalamnya dibersihkan. Jika nilainya diperlukan makadalamnya dibersihkan. Jika nilainya diperlukan makaperlu dikembalikan via statemen return.

$x

1005

123

Name:Address:

Data:

$y

1010

123

Name:Address:Data:

function()

value value copiedcopied

12

Page 13: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Contoh Pass by Value

<?phpfunction passByValue( $y ){

$y = 321; // function valueprintf( "%s Inside: %d<br />",printf( "%s Inside: %d<br />",

str_repeat( "&nbsp;", 3 ),$y );

}

$x = 123; // initial valueprintf( "Before: %d<br />", $x );passByValue( $x );printf( "After: %d<br />", $x );

?>

Page 14: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Kelebihan - Kekurangan

• Kelebihan: kode program menjadi lebihter-enkapsulasi.

• Kekurangan:• Kekurangan:

• Memerlukan memory lebih banyak

• Lebih lambat untuk dataset yang besar

• Hanya satu variable saja yang bisa di-return.

Page 15: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pass by Reference

• Pass by Reference mengcopy lokasi memori. Bertindak sebagai pointer.

• Sesudah keluar dari fungsi, alamat hasil copy • Sesudah keluar dari fungsi, alamat hasil copy dibersihkan namun data asal masi tetap ada.

$x

1005

123

Name:Address:

Data:

&$y

1010

1005

Name:Address:Data:

addressaddresscopiedcopied

Page 16: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Contoh Pass by Reference

<?phpfunction passByRef( &$y ){

$y = 321;printf( "%sInside: %d<br />",printf( "%sInside: %d<br />",

str_repeat( "&nbsp;", 3 ),$y );

}

$x = 123;printf( "Before: %d<br />", $x );passByRef( $x );printf( "After: %d<br />", $x );

?>

Page 17: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Kelebihan - Kekurangan

• Kelebihan:

• Lebih cepat karena nilai tidak perlu dicopy

• Ideal untuk dataset besar• Ideal untuk dataset besar

• Dapat mengembalikan banyak nilai

• Kekurangan: fungsi menjadi kurang ter-enkapsulasi.

Page 18: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Latihan

• Buat fungsi yang dapat menukar (swap) 2 nilai. Gunakan pass by reference untuk mengembalikan nilai.untuk mengembalikan nilai.

Page 19: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Including Files

Page 20: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pernyataan include

• Mirip seperti #include pada C.

• Membolehkan fungsi dibuat dalam file phptersendiri sehingga dapat di-reuse dantersendiri sehingga dapat di-reuse dandipanggil bila perlu.

• Syntax:• include( ‘namafile’ );

• Jika ada error:

• Warning message ditampilkan dan proses tetapdilanjutkan.

Page 21: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Contoh include

functions.php

<?phpfunction add($a, $b){{

return($a + $b);}

?>callInclude.php

<?phpinclude('functions.php');

echo add( 2, 3 );?>

Page 22: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pernyataan include_once

• Hampir sama seperti include namun tidakakan memasukkan file yang telah pernah di-include sebelumnya.include sebelumnya.

• Syntax:• include_once( ‘namafile’ );

• Jika ada error:

• Warning message ditampilkan dan prosesdilanjutkan.

Page 23: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Contoh include_oncemisc.php

<?phpfunction wonderful(){

...}

?>

math.php<?php

include('misc.php');?>

html.php ?>html.php<?php

include('misc.php');?>

db.php<?php

include('misc.php');?>

include_once.php

<?phpinclude_once(‘math.php’);include_once(‘html.php’);include_once(‘db.php’);?>

Page 24: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pernyataan require

• Mirip seperti include namun berbedadari segi penanganan error

• Syntax:• Syntax:• require( ‘namafile’ );

• Jika ada error:

• Warning message ditampilkan danprogram berhenti.

Page 25: Fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-Fungsi.pdf · Fungsi • Definisi: fungsi adalah satu blok code yang memiliki 0 input dan output dan dapat

Pernyataan require_once

• Mirip seperti require namun file yang telah ter-include sebelumnya tidak akandimasukkan lagi.dimasukkan lagi.

• Syntax:• Require_once( ‘namafile’ );

• Jika ada error:

• Warning message ditampilkan danprogram berhenti.