Mengenal Pemrograman Berorientasi Objek | Method with Parameter | Setter

Method 😁

Urusan panjang ini, dalam object oriented programming materi ini perlu di ulas lebih jauh. Mari gaskan 🚀

Pada artikel yang lalu, kita telah berkenalan dengan dasarnya sebuah method. Secara singkat, method merupakan sebuah fungsi yang berada di dalam sebuah class.

Method sendiri dalam sebuah class dituliskan dengan format :

         function namaMethod() {

        }

Pembuatan sebuah method bisa diawali dengan salah satu dari modifier :

public

private

protected

Sehingga menjadi :

         public function namaMethod() {

        }


         private function namaMethod() {

        }


         protected function namaMethod() {

        }

Mudah kan!? 😎

Nah terkait dengan judul artikel kali ini "Method with Parameter", pembahasan kita pertama akan dimana si peletakan parameter ini ?

Parameter kita letakkan di dalam kurung () setelah nama method. Parameter ini harus diawali dengan tanda $. Contoh :

         public function namaMethod($contohParameter) {

        }

Begitulah cara membuat sebuah parameter di dalam sebuah method.

Setelah paham tentang konsep dasar penulisan method dan pemberian parameter, mari kita coba terapkan ke dalam sebuah class. Kita ambil contoh class Buku {}, seperti yang telah kita buat di artikel ini pada waktu lalu.

Baca artikel tersebut agar bisa lebih memahami terkait materi Pemrograman Berorientasi Objek di artikel ini, di artikel tersebut kita telah membahas pemberian nilai / value dengan memanggil properti langsung

<?php
    class Buku {
        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  
    }
?>

Kita memiliki empat buah properti ya di dalam class tersebut.

Dari sini, kita akan membuat sebuah method atau fungsi untuk memberikan nilai pada salah satu properti ( ambil contoh $nama ).

Langsung saja kita buat method dengan nama setNama().

        public function setNama() {
       
        }

Berikan parameternya, yaitu $nama sehingga bentuk class kita menjadi :

<?php
    class Buku {
        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  

        public function setNama($nama) {
       
        }
    }

?>

Di dalam method setNama($nama) {} kita berikan perintah untuk memberikan nilai kepada properti var $nama dari $nama yang ada di dalam kurung method. Tambahkan baris kode :

        public function setNama($nama) {
            $this->nama = $nama;
        }

What!? Kok samaaa 😗

Penjelasannya adalah $this->nama merupakan kode kita memanggil properti var $nama. Penggunakan $this gunanya untuk membedakan antara parameter yang ada di dalam kurung method dan properties milih class. Sedangkan $nama setelah sama dengan merupakan variabel yang ada di dalam kurung dari method.

Lebih singkat bisa dikatakan bahwa $this->nama adalah cara kita memanggil variabel global ( properti dari class ) dan variabel di kanan sama dengan adalah variabel lokal yang hanya bisa di akses dalam scoop method tersebut saja.

Dalam PBO / OOP jangan lupa tentang objek ya!

Buat objeknya, kita ambil perumpamaan objek $bukuSejarah :

    $bukuSejaran = new Buku();

Jadi, kode lengkap kita :

<?php
    class Buku {
        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  

        public function setNama($nama) {
            $this->nama = $nama;
        }
    }

    $bukuSejaran = new Buku();

?>

Method yang kita buat ( setNama ) merupakan cara untuk memberikan sebuah nilai ke dalam properti $nama. Jadi selanjutnya jangan langsung akses dari objek langsung ke properti

Sebelumnya, kita mengakses langsung  properti $nama. Sekarang kita ganti dengan mengakses method setNama(). Tambahkan kode berikut di bawah objek kita :

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama();

Oiya, dalam method setNama kita tambahkan perintah echo sebelum $this->nama. Sehingga kode kita menjadi :

<?php
    class Buku {
        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  

        public function setNama($nama) {
            echo $this->nama = $nama;
        }
    }

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama();

?>

Jalankan ya, lihat di browser. Apa hasilnya ? 

Wow! Error 👀

Solusinya adalah soal parameter, kita lupa bahwa dalam method setNama() ada satu parameter yaitu $nama. Maka dari itu, wajib pula dalam pemanggilannya kita memberikan nilai / value. Tidak cukup hanya dengan $bukuSejaran->setNama();

Kode pengaksesan atau pemanggilan method harus diisi sebuah value :

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama("Sejarah Komputer Awal");

Sekarang coba jalankan kembali ( refresh browser ) :

Yaay, sudah tidak error ✌😁
Paham sampai sini ? Mangatz terus yah

Method ini juga dinamakan dengan method setter. Kita menggunakan sebuah method / fungsi untuk memberikan nilai pada properties class. 

Apakah ada pertanyaan ?

"Bagaimana kalau kita ingin parameternya lebih dari satu !?!"

Dalam class Buku {}, terdapat lebih dari satu properti yaitu :

        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  

Parameter kita yang ada di dalam method masing-masing dipisahkan dengan tanda koma ( , ). Format penulisan parameter yang lebih dari satu :

        function namaMethod($param1, $param2, $param3, ... $paramN) {
            // kode dalam method
        }

Method kita selanjutnya menjadi :

        public function setNama($nama, $penulis, $penerbit, $tahunTerbit) {
           
        }

Kemudian untuk isi dari method kita yaitu mengisikan properties milik class dengan parameter dari method kita :

        public function setNama($nama, $penulis, $penerbit, $tahunTerbit) {
            echo $this->nama = $nama; // mengisikan nilai properti dengan parameter $nama milik method, kemudian tampilkan hasilnya dengan 'echo'
            echo $this->penulis = $penulis;
            echo $this->penerbit = $penerbit;
            echo $this->tahunTerbit = $tahunTerbit;
        }

Jangan lupa pula, dalam pemanggilan method dengan objek kita lakukan pula perubahan. Tadinya kode kita :

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama("Sejarah Komputer Awal");

Ubah dengan penambahan value sesuai dengan jumlah parameter :

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama("Sejarah Komputer Awal", "Ahmad Istakim", "Divapress", "2025");

Cipp deh, cakep kode kita. Sekarang coba jalankan dan apa hasilnya 😎 

But wait!
Tulisan gandeng semua, nggak enak dilihat...

Ya tinggal kita tambahkan spasi atau tanda tag <br> jika ingin dengan baris baru, lihat kode dibawah :
        public function setNama($nama, $penulis, $penerbit, $tahunTerbit) {
            echo $this->nama = $nama; // mengisikan nilai properti dengan parameter $nama milik method, kemudian tampilkan hasilnya dengan 'echo'
            echo "<br>".$this->penulis = $penulis;
            echo "<br>".$this->penerbit = $penerbit;
            echo "<br>".$this->tahunTerbit = $tahunTerbit;
        }

Yups, refresh lagi browser kita!
Horey! 😎
Selanjutnya mari kita lengkapi agar tampilan menjadi lebih baik...
Ubah kode kita dengan penambahan seperti berikut :
<?php
    class Buku {
        var $nama;
        var $penulis;
        var $penerbit;
        var $tahunTerbit;  

        public function setNama($nama, $penulis, $penerbit, $tahunTerbit) {
            echo "DATA BUKU BARU<br>";
            echo "Nama Buku : ".$this->nama = $nama; // mengisikan nilai properti dengan parameter $nama milik method, kemudian tampilkan hasilnya dengan 'echo'
            echo "<br>Penulis : ".$this->penulis = $penulis;
            echo "<br>Penerbit : ".$this->penerbit = $penerbit;
            echo "<br>Tahun Terbit : ".$this->tahunTerbit = $tahunTerbit;
        }
    }

    $bukuSejaran = new Buku();
    $bukuSejaran->setNama("Sejarah Komputer Awal", "Ahmad Istakim", "Divapress", "2025");

?>

Tanda titik merupakan sebuah operator untuk menggabungkan dua buah string dalam php. Tag-tag dalam HTML juga bisa berfungsi dalam php jika diletakkan di dalam apitan tanda petik dua  "--kode html--"
Refresh lagi gaes. Apa hasilnya :) 
Horeyyyyy.....
Berhasil untuk menampilkannya dengan tertib dan rapi :)

Sekarang cobalah buat sebuah class lain, berikan properties yang sesuai dan lakukan hal yang sama dengan artikel ini. Tambahkan data dengan menggunakan parameter satu atau lebih. Lakukan sampai bisa memahami. Mangats :)


Ahmad Istakim

Alumni dari jurusan Manajemen Informatika di Universitas Sains Al-Qur'an (UNSIQ ) Wonosobo. Tertarik dalam bidang pendidikan, teknologi komputasi dan disiplin ilmu keislaman ( Tafsir, Hadits, Arudl, Nahwu-Sharaf, Fiqh maupun Aqidah ) - https://s.id/blog-islamQ. Pernah juga mengenyam pendidikan di beberapa pesantren yang ada di Kab. Wonosobo dan Kab. Purworejo

Posting Komentar

Lebih baru Lebih lama