Senin, 15 April 2019

BELAJAR PEMROGRAMAN (FUNCTION)

FUNCTION
Ehh bertemu lagi nih guys, gimana kabarnya?? Semoga kita senantiasa diberi kesahatan agar bisa melakukkan kegitan sehari-hari kita dengan baik, aminn. Baik temen-temen pada kesempatan kali ini kita akan belajar bareng tentang Function. Kita akan belajar bareng tentang apa itu function, bagaimana bentuknya, dan kita akan belajar tentang soal-soal tentang function. Ok let’s go …
·        Deskripsi Function



Dalam suatu pengaturan organisasi,  biasanya perlu dibentuk semacam bagian-bagian kerja atau divisi yang spesifik kerjanya. Sebagai contoh misalkan dalam suatu organisasi ada divisi humas yang tugasnya spesifik mengurusi masalah kehumasan, divisi HRD yang khusus menangani masalah SDM dan pengembangannya, serta divisi-divisi yang lain.

Mengapa  dalam  pengaturan  organisasi  perlu dibentuk  divisi  atau suborganisasi  yang lebih  kecil  dalam  kinerjanya?  Ya…  tujuannya  adalah  efisiensi  kerja.  Dalam  hal  ini, seorang ketua atau manajer pastilah akan repot bila semua kegiatan harus dibebankan kepadanya. Selain itu apabila dilihat dari efektifitas, jelas akan efektif karena dengan dibentuknya suborganisasi maka seorang ketua organisasi lebih mudah memberikan komando. Sebagai contoh misalkan ketika sang ketua butuh informasi tentang kehumasan, maka dia tinggal menyuruh divisi humas untuk bekerja dan memberikan informasi. Informasi tersebut nantinya akan digunakan sang ketua untuk menentukan kebijakan organisasi dalam proses selanjutnya.

Nah..   mengadopsi   hal   di   atas,   konsep   pembentukan   suborganisasi   ini  juga  bisa diterapkan  ke  dalam  suatu  script  atau  program.  Dalam  hal  ini,  sebuah  program ibaratnya sebuah organisasi besar. Sedangkan Anda (programmer) sebagai ketua organisasinya. Dengan dibuatnya suatu subprogram yang memiliki tugas atau kerja yang spesifik maka dapat membawa ke efisiensi dan efektifitas kerja dari program atau script tersebut. Sekaligus, Anda pun akan lebih mudah dalam mengatur proses programnya. Kesimpulannya, function adalah suatu subprogram yang bisa dipanggil/digunakan secara berulang-ulang




Perhatikan contoh script berikut ini yang digunakan untuk menghitung operasi

Dalam PHP sebenarnya terdapat perintah untuk menghitung pangkat bilangan. Namun di   sini   diasumsikan   kita   tidak   menggunakan   perintah   tersebut   melainkan   harus membuat program sendiri.

Untuk menghitung n pangkat m, kita bisa menggunakan program berikut ini

$hasil = 1;
for ($i = 1; $i <= m; $i++)
{
     $hasil = $hasil * n;
}

Konsep program di atas didasarkan pada ide nm  = n x n x n x … x n (sejumlah m kali perkalian)
Nah… bila program di atas kita terapkan ke dalam kasus yang kita hadapi maka script atau program PHP akan menjadi seperti ini:

<?php
// menghitung 3 pangkat 4
$hasil_a = 1;
for ($i = 1; $i <= 4; $i++)
{
     $hasil_a = $hasil_a * 3;
}
// menghitung 10 pangkat 3
$hasil_b = 1;
for ($i = 1; $i <= 3; $i++)
{
     $hasil_b = $hasil_b * 10;
}
// menghitung 4 pangkat 5
$hasil_c = 1;
for ($i = 1; $i <= 5; $i++)
{
     $hasil_c = $hasil_c * 4;
}
// hitung hasil terakhir
$hasil = $hasil_a * $hasil_b / $hasil_c;
echo $hasil;
?>

Wah… ternyata panjang juga ya. Bila kita perhatikan  bahwa dalam script di atas ada beberapa pekerjaan yang dilakukan secara berulang-ulang yaitu ‘menghitung pangkat’. Nah…  mungkin  untuk  keperluan  efisiensi  dan  efektifitas,  bagaimana  seandainya  kita buat ‘Divisi Perpangkatan‘ dalam program yang tugasnya khusus menghitung pangkat bilangan ☺

Dengan kehadiran divisi tersebut, kita dapat dengan cepat menghitung pangkat bilangan karena  urusan   memangkatkan   bilangan   kita   serahkan   ke   divisi   tersebut.   Dalam programming, divisi ini kita namakan function atau subprogram.

OK…  sejenak  kita  tinggalkan  kasus  di  atas.  Sekarang  kita  lanjutkan  dahulu  tentang bagaimana membuat function.

Secara umum, bentuk function adalah seperti di bawah ini

function nama_function(parameter)
{
     ..
     ..
     return variabel;
}

Keterangan:
Setiap function pasti  dan harus  memiliki  nama function.  Nama function ini nantinya akan dipanggil oleh program utama bila akan digunakan. Parameter di sini sifatnya optional (boleh ada, boleh tidak). Parameter ini ibaratnya input yang akan diolah oleh function.

Sedangkan   return   variabel   merupakan   perintah   untuk   memberikan   hasil   setelah dikerjakan oleh function. Dalam hal ini perintah return variabel ini juga bersifat optional (boleh ada, boleh tidak).

Kapan return variabel ini digunakan? Dan kapan tidak perlu digunakan? return variabel ini perlu digunakan bila hasil dari pengolahan function ini akan digunakan untuk proses yang lain dalam program. Sedangkan bila hasil dari function tidak akan digunakan oleh program, maka tidak perlu diberikan perintah ini.
Contoh:

<?php
function jumlah($a, $b)
{
     $c = $a + $b;
     return $c;
}
echo "Hasil penjumlahannya = ".jumlah(3, 5);
?>

Script  di  atas  menunjukkan  penggunaan  function  untuk  menjumlahkan  dua  buah bilangan. Apabila dikembangkan lagi untuk kasus menghitung (3 + 5) ditambah (7 + 6), maka scriptnya dapat berbentuk seperti di bawah ini

<?php
function jumlah($a, $b)
{
     $c = $a + $b;  
     return $c;
}
$hasil = jumlah(3, 5) + jumlah(7, 6);
echo "Hasil penjumlahannya = ". $hasil;
?>

Atau

<?php
function jumlah($a, $b)
{
     $c = $a + $b; 
     return $c;
}
$hasil = jumlah(jumlah(3, 5), jumlah(7, 6));
echo "Hasil penjumlahannya = ". $jumlah;
?>

Sedangkan  berikut  ini  contoh  function  yang tidak  perlu  menggunakan  return.  Script berikut ini hanya sekedar menampilkan suatu string melalui sebuah function.

<?php
function tulis($x)
{
     echo "Anda menampilkan ". $x . "<br>";
}
tulis("Hello World..");
tulis("Apa kabar?");
?>

Nah… kembali lagi ke kasus semula, yaitu mencari hasil dari

Maka  kita   bisa  membuat  script  yang   lebih   sederhana menggunakan function
daripada sebelumnya

<?php
function pangkat($m, $n)
{
     $hasil = 1;
     for ($i = 1; $i <= $n; $i++)
     {
           $hasil = $hasil * $m;
      }
       return $hasil;
}
$jwb = pangkat(3, 4) * pangkat(10, 3) / pangkat(4, 5);
echo "Hasilnya adalah : ".$jwb;
?>

Anda  juga  bisa  membuat  beberapa  function  dalam file  tersendiri,  semacam daftar cukup sering function.  Selanjutnya  setiap  kali  butuh  suatu  function  dalam  daftar  tersebut, meng-include-kan  saja  nama  file  nya,  lalu  panggil  nama  functionnya.  Trik  ini digunakan   oleh   para  programmer   handal   dalam   membuat   aplikasi.   Berikut   ini contohnya:

functions.php
<?php
function jumlah($a, $b)
{
     $hasil = $a + $b;
     return $hasil;
}
function kurang($a, $b)
{
     $hasil = $a - $b;
     return $hasil;
}
function kali($a, $b)
{
     $hasil = $a * $b;
     return $hasil;
}
function bagi($a, $b)
{
     $hasil = $a / $b;
     return $hasil;
}
?>

jumlah.php
<?php
include "functions.php";
$bil1 = 103;
$bil2 = 192;
echo "Hasil ".$bil1." + ".$bil2. " = " . jumlah($bil1, $bil2) ;
?>

kurang.php
<?php
include "functions.php";
$bil1 = 103;
$bil2 = 192;
echo "Hasil ".$bil1." - ".$bil2. " = " . kurang($bil1, $bil2) ;
?>

kali.php
<?php
include "functions.php";
$bil1 = 103;
$bil2 = 192;
echo "Hasil ".$bil1." x ".$bil2. " = " . kali($bil1, $bil2) ;
?>

bagi.php
<?php
include "functions.php";
$bil1 = 103;
$bil2 = 192;
echo "Hasil ".$bil1." / ".$bil2. " = " . bagi($bil1, $bil2) ;
?>

Built in Functions dalam PHP 

Sebuah function dapat kita create sendiri seperti halnya di atas, namun dapat pula kita langsung gunakan karena sudah disediakan oleh PHP. Function yang sudah disediakan oleh PHP ini selanjutnya disebut built in functions.

Berikut ini beberapa built in functions yang sudah ada dalam PHP berdasarkan kategori penggunaannya.

Mathematics Built in Functions

Untuk menghitung nilai mutlak atau absolute
Contoh:
<?php
$bil = -10;
echo abs($bil);  // menghasilkan 10
?>


Untuk membulatkan ke atas suatu bilangan real
Contoh:
<?php
$bil = 19.1;
echo ceil($bil);  // menghasilkan 20
?>


Untuk membulatkan ke bawah suatu bilangan real
Contoh:
<?php
$bil = 19.5;
echo floor($bil);  // menghasilkan 19
?>


Mencari nilai terbesar dari suatu data bertipe array
Contoh:
<?php
$data = array(19, 23, 11, 45);
$max = max($data);
echo "Nilai max = ".$max;  // menghasilkan 45
?>


Mencari nilai minimum dari suatu data bertipe array


Untuk menghasilkan bilangan bulat random antara x s/d y.
Contoh:
<?php
$random = mt_rand(4, 10); // menghasilkan bilangan random antara 4 s/d 10 echo $random;
?>


Digunakan untuk mencari hasil x pangkat y.
Contoh:
<?php
$hasil = pow(4, -5); // menghitung 4 pangkat -5
echo $hasil;
?>

Membulatkan bilangan real ke bawah bila desimal di belakang komanya kurang dari 0.5, dan  membulatkan  ke  atas  bila  desimal  di  belakang  komanya  lebih dengan 0.5. dari  atau  sama
Contoh:
<?php
echo round(10.23);  // menghasilkan 10
echo round(10.6);  // menghasilkan 11
echo round(-10.2);  // menghasilkan -10
?>
Array Built in Functions 
Berikut  ini  beberapa  function  yang  bisa  digunakan  untuk  mengolah array
data  berbentuk


Digunakan  untuk  mensorting  beberapa  array  terkait  sekaligus.  Bisa untuk mensorting dalam sebuah array saja.

Sintaks dari penggunaan array_multisort() adalah

array_multisort(x, metode, a, b, c, …);

dengan ‘x’ adalah array yang digunakan sebagai acuan dalam sorting, ‘metode’ adalah metode yang digunakan sorting (ascending atau descending), dan a, b, c,… adalah array lain yang ikut disorting.

Contoh:
Script berikut ini akan mengurutkan data mahasiswa (NIM dan NAMA) berdasarkan NIM dari 2 buah array yang bersesuaian secara ascending.

<?php
$nim = array("M0197002","M0197004","M0197001","M0197008","M0197003");
$nama = array("Amir","Joko","Budi","Siti","Agus");
array_multisort($nim, SORT_ASC, $nama);
for ($i = 0; $i <= count($nim)-1; $i++)
{
     echo $nim[$i]. " " .$nama[$i]. "<br>";
}
?>

Keterangan:
Untuk sorting secara descending, gunakan parameter SORT_DESC
Digunakan untuk mengambil salah satu elemen dari array secara random

Contoh:
<?php
$bil = array(3, 1, 4, 5, 2, 6);
$ambilAcak = array_rand($bil);
echo $ambilAcak;
?>

Digunakan untuk membalik urutan data dalam array
Contoh:

<?php
$data = array("mangga","jambu","jeruk","apel");
$balik = array_reverse($data);
foreach($balik as $index => $buah)
{
     echo $buah. "<br>"; // menampilkan apel, jeruk, jambu, mangga
}
?>

Digunakan untuk mencari nomor urut elemen tertentu dalam array (dimulai dari 0)
Contoh:
Script berikut ini akan mencari nomor urut elemen dari data ‘jambu’ dalam array buah

<?php
$data = array("mangga","jambu","jeruk","apel");
$no = array_search("jambu", $data);
echo $no;  // akan menampilkan 1 (nomor urut elemen dalam array)
?>

Digunakan untuk menghitung jumlah elemen yang ada dalam suatu array.
String Built in Functions

Digunakan untuk memecah suatu string ke dalam array berdasarkan karakter tertentu.
Contoh:

<?php
$date = "20-01-2009";
$pecah = explode("-", $date);   // memecah string berdasarkan karater ‘-’
echo "Tanggal : ". $pecah[0]; // menampilkan 20
echo "Bulan : ". $pecah[1];  // menampilkan 01
echo "Tahun : ". $pecah[2];  // menampilkan 2009
?>

Soal-soal tentang function
1. Di  SMA  tentu  Anda  telah  mengenal  rumus  kombinasi  C(m,  n)  kan?  C(m,  n) dirumuskan dengan

Simbol ! menunjukkan faktorial.Sebagai contoh, 5! = 5 x 4 x 3 x 2 x 1 = 120.
Nah.. buatlah script PHP untuk menghitung nilai C(m, n) dengan m dan n nya suatu input, dimana m ≥ n.
Dalam  hal  ini  buatlah  sebuah  function  yang  khusus  untuk  menghitung  nilai faktorial   suatu   bilangan.   Selanjutnya   gunakanlah   function   tersebut   untuk menghitung C(m, n).
Script
<?php
    function kombinasi ($s)
    {
        $h=1;
        for ($i=1; $i<=$s; $i++)
        {
            $h= $h*$i;
        }
        return $h;
    }

?>
<form method= "POST" action= "">
Masukan angka anda <input type= "text" name= "ang1"><br>
Masukan angka anda <input type= "text" name= "ang2"><br>
<input type= "submit" value= "PROSES">
<input type= "reset" value= "RESET">
</form>

<?php
    $n= $_POST[ang1];
    $t= $_POST[ang2];
    $a= $n-$t;
    $akhir= kombinasi ($n)/ (kombinasi($t)* kombinasi($a));
    echo "kombinasi dari $n dan $t adalah $akhir"
?>


Output program

2. Buatlah script untuk menghitung jumlah bilangan ganjil antara 10 dan 123456. Gunakan  function  untuk  mengecek  apakah  suatu  bilangan  termasuk  bilangan ganjil atau tidak.
Script
<?php
function ganjil ($r)
{
    if ($r%2==1)
    return 1;
    else
    return 0;
}
for ($a=10; $a<=123456; $a++)
{
    $akhir= $akhir + ganjil ($a);
}
echo "Jumlah bilangan ganjil adalah $akhir";

?>

Output program

3. Buatlah script untuk mencari selisih jumlah detik dari dua waktu yang berbeda. Format input waktu harus dalam bentuk hh:mm:ss
Contoh:
Waktu 1 = 12:03:10 Waktu 2 = 13:03:20
Selisih kedua waktu adalah 3610 detik.
Petunjuk: Anda dapat gunakan function explode() untuk memecah waktu ke dalam satuan jam, menit dan detik untuk perhitungan.
Script
<html>
<head>
    <title> function (Tugas3) </title>
</head>
<body>
    <form method= "POST" action= "">
    Masukan Waktu 1 <input type= "text" name= "jam1"><br>
    Masukan Waktu 2 <input type= "text" name= "jam2"><br>
    <input type= "submit" value= "PROSES">
    <input type= "reset" value= "RESET">
    </form>
    <?php
    function selisihjam ($waktu)
    {
        $pisah= explode(":", $waktu);
        $sejam= $pisah[0]*3600;
        $semenit= $pisah[1]*60;
        $sedetik= $pisah[2];
        $semua= $sejam+ $semenit+ $sedetik;
        return ($semua);
    }
    $jam1= $_POST[jam1];
    $jam2= $_POST[jam2];
    $hasil= selisihjam($jam1)- selisihjam($jam2);
    echo "Selisih waktu antara $jam1 dan $jam2 adalah $hasil detik";
    ?>
</body>
</html>
Output program

4. Misalkan  dalam  suatu  kelas  terdapat  5  orang  siswa  dengan  nama  dan  NIS sebagai berikut
NIS      Nama Siswa
A001   Agus
A002   Budi
A003   Amir
A004   Acong
A005   Siti

Buatlah  sebuah  form  untuk  memasukkan  nilai  ujian  1  dan  ujian  2  pelajaran Matematika kelima siswa tersebut. Selanjutnya tampilkan data NIS, Nama Siswa dan Rata-rata Ujiannya, dan urutkan berdasarkan Rata-rata Ujiannya mulai dari yang paling tinggi sampai yang paling rendah.
Contoh Tampilan Form Input Nilai

Petunjuk
Data NIS dan Nama Siswa disimpan dalam array, begitu pula dengan nilai rata- ratanya. Selanjutnya sort berdasarkan nilai rata-rata (gunakan array_multisort()) lalu tampilkan.
Script
1.
<html>
<head>
    <title> FUNCTION (Tugas4) </title>
</head>
<body>
    <?php
    $jeneng = array ("Agus", "Budi", "Amir", "Acong", "Siti");
    $nis= array ("A001", "A002", "A003", "A004", "A005");
    echo "<table border=1>";
    echo "<tr>
            <td> NIS </td>
            <td> NAMA </td>
            <td><center> NILAI UJIAN 1 </center></td>
            <td><center> NILAI UJIAN 2 </center></td>
          </tr>";
    echo "<form method= \"POST\" action= \"hitung.php\">";
    for ($a=0; $a<count($jeneng); $a++)
    {
        echo "<tr>
              <td> $nis[$a] </td>
              <td> <center> $jeneng[$a] </center> </td>
              <td> <input type= \"text\" name= \"nilai[$a]\"> </td>
              <td> <input type= \"text\" name= \"biji[$a]\"> </td>
              <tr>";
    }
   echo "</table>";
   echo "<input type= \"submit\" value= \"PROSES\">";
   echo "<input type= \"reset\" value= \"RESET\">";
    ?>
</body>
</html>


2.
<?php
function tarata ($hit)
{
    for ($i=0; $i<count($hit); $i++)
    {
        $hasil= $hit[$i]+$hasil;
        $b=$b+1;
    }
    return ($hasil/$b);
}
$jeneng = array ("Agus", "Budi", "Amir", "Acong", "Siti");
$nis= array ("A001", "A002", "A003", "A004", "A005");
$hitung= array ($_POST["nilai10"], $_POST["nilai11"], $_POST["nilai12"], $_POST["nilai13"],$_POST["nilai14"]);
$hitung1= array ($_POST["biji20"], $_POST["biji21"], $_POST["biji22"], $_POST["biji23"], $_POST["biji24"]);
$agus= array ($_POST["nilai10"],$_POST["biji20"] ) ;
$budi= array ($_POST["nilai11"],$_POST["biji21"] ) ;
$amir= array ($_POST["nilai12"],$_POST["biji22"] ) ;
$acong= array ($_POST["nilai13"],$_POST["biji23"] ) ;
$siti= array ($_POST["nilai4"],$_POST["biji24"] ) ;
$tarata= array (tarata($agus), tarata($budi), tarata ($amir), tarata ($acong), tarata ($siti));
echo "<table border= 1>";
echo "<tr>
            <td> NIS </td>
            <td> NAMA </td>
            <td><center> NILAI UJIAN 1 </center></td>
            <td><center> NILAI UJIAN 2 </center></td>
            <td><center> RATA-RATA </center></td>
    </tr>";
array_multisort($tarata, SORT_ASC, $jeneng, $nis, $hitung, $hitung1);
for ($c=0; $c<count($tarata); $c++)
{
    echo "<tr>
            <td> $nis [$c]</td>
            <td> $jeneng [$c] </td>
            <td><center> $hitung [$c] </center></td>
            <td><center> $hitung1 [$c] </center></td>
            <td> $tarata [$c]</td>
          </tr>";
}
echo "</table>"
?>

Output program

5.   Suatu   perusahan   X,  terdapat   10  orang   karyawan   dengan   NIK  dan  Nama Karyawannya sebagaimana tampak pada tabel berikut ini
Perhatikan  kode  NIK  di  atas.  Digit  ke  2  dan  3  menunjukkan  posisi  karyawan dalam perusahaan. ‘01’ berarti di bagian keuangan, ‘03’ di bagian HRD dan ‘04’ di bagian maintenance.

Buatlah script PHP untuk menampilkan gaji setiap karyawan dengan ketentuan sbb:

Jika  karyawan  di  bagian  keuangan,  maka  gaji  pokoknya:  Rp.  2.000.000,-.  Di bagian HRD gaji pokoknya Rp. 1.900.000,- dan di maintenance gaji pokoknya Rp. 1.950.000,-.

Selain itu masih ditambah tunjangan sesuai masa kerjanya.

Jika  masa kerja  > 15 tahun  maka  tunjangannya  Rp. 500.000,-  Sedangkan  jika masa kerja 10 s/d 15 tahun, tunjangannya Rp. 300.000,-. Dan jika masa kerjanya di bawah 10 tahun tunjangannya Rp. 100.000,-

Untuk format tampilan, gunakan tabel berikut ini
Catatan: Gunakan format angka gaji sesuai format Rp. XXX.XXX.XXX,-

Script
<?php
$nik= array("K01001", "K01002", "K03001","K03002", "K03003", "K04001", "K04002","K04003","K04004","K04005");
$nama= array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$masakerja= array(20, 18, 12, 12, 10, 8, 11, 9, 7, 14);
for($i=0; $i<count($nik); $i++){
    $ujinik[$i]=substr($nik[$i], 1,2);
}
function gaji($z,$a){
    if($z==01 && $a<10)
    $hasil=2000000 + 100000;
    else if ($z==03 && $a<10)
    $hasil=1000000+1900000;
    else if ($z==04 && $a<10)
    $hasil=100000 + 1950000;
    else if($z==01 && $a>=10 && $a<=15)
    $hasil= 300000 + 2000000;
    else if ($z==03 && $a>=10 && $a<=15)
    $hasil= 300000 + 1900000;
    else if ($z==04 && $a>=10 && $a<=15)
    $hasil= 300000 + 1950000;
    else if($z==01 && $a>15)
    $hasil= 2000000 + 500000;
    else if ($z==03 && $a>15)
    $hasil= 5000000+1900000;
    else if ($z==04 && $a>15)
    {$hasil= 500000 + 1950000;}
    return $hasil;
   
}
for ($i=0; $i<count($nama); $i++){
    $gajikaryawan[$i]= gaji($ujinik[$i], $masakerja[$i]);
}
echo $ujinik[1];
echo gaji($ujinik[1],$masakerja[1]);
echo "<table border=1>";
echo "<tr><td>NIK</td>
<td>NAMA</td>
<td>MASA KERJA </td>
<td>GAJI </td>
</tr>";
for($i=0; $i<count($nik); $i++)
{
    echo "<td>$nik[$i]</td>
<td>$nama[$i]</td>
<td>$masakerja[$i]</td>
<td>$gajikaryawan[$i] </td>
</tr>";
}

?>


Output program

     Yak jadi seperti itu temen-temen penjelasan dan contoh soal tentang FUNCTION. Saya kira cukup belajar bareng untuk kali ini. Semoga apa yang kita pelajari kali ini bisa berguna untuk sekarang, besok dan kapanpun, amin. Jika ada saran, komentar, kritik, pertanyaan dan  request bisa temen-temen tulis di kolom komentar.  Oke guys sampai bertemu di pembahasan selanjutnya.


  
-byee

#SalamOrangBodo
                                          



Tidak ada komentar:

Posting Komentar

CARA MEMBUAT LINE TRACER ANALOG MUDAH

CARA MEMBUAT LINE TRACER ANALOG Oke temen-temen sudah lama tak jumpa nih, apa kabaar? Semoga tetap sehat yaa. Kali ini saya kembali hadi...