alexa-tracking

master OOP PHP masuk donk ane mau tanya....

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/540668f5a4cb179e668b4574/master-oop-php-masuk-donk-ane-mau-tanya
master OOP PHP masuk donk ane mau tanya....
halo agan master semua. ane mau tanya nih.. kemaren ceritanya ane abis sidang skripsi trus aplikasi yang ane pake dalam pembuatan skripsi tersebut adalah php dengan konsep OOP (bukan framework yahh....) nah trus semua script ane di salahin karna katanya itu bukan OOP kurang lebih scriptnya gini perumpamaannya gan

class koneksi (){

function buka_koneksi(){
echo "ini buka koneksi";
}
}

trus kali mau panggil jadi
$panggil_class=new koneksi();

kurang lebihnya gitulah gan.. trus kan kalo di view di panggil tuh nama class itu kan gan, sebagai objek dan functon sebagai method?? menurut master OOP PHP semua emang itu ga masuk OOP ya gan.. trus ada pernyataan dari si penguji yang bilang "menggunakan class dalam PHP belum tentu OOP lho" script kamu itu terstruktrur buka OOP. nah yang ane mau tanyain emang bener ya kalo menggunakan class dalam PHP itu bukan OOP dan menerut agan master semua script ane itu udah OOP belum sih... soalnya kalo kemaren konteksnya bukan sidang udah mau ane ajak debat....emoticon-Mad (S)

mohon pencerahannya dari agan master semua....
Ya emang bener kok, sekedar pake kelas belum tentu OOP emoticon-Malu (S)

Kalo cuma 1 kelas doang ya belum keliatan
Apakah di kodingan situ udah menerapkan ini:
- Object/Class (ini kayanya situ udah tau)
- Information Hiding, macem penggunaan private, protected, public method n variable
- Inheritance
- Interface
- Polymorphysm

Bakalan panjang n akademis kalo dibahas disini
Sebaiknya situ tanya sama penguji atau pembimbing, seharusnya OOP itu seperti apa, ciri-cirinya apa aja

CMIIW
Sumber: http://en.wikipedia.org/wiki/Object-...ented_concepts
Quote:


sebelum ngajak debat dosen, agan cek dulu diri agan seberapa jauh agan paham tentang oop emoticon-Cape d... (S)

plajarin aja apa itu oop, fungsinya apa dan keunggulannya gmn
trus implementasiin di program yang agan buat

misal untuk class database, variabel yang sifatnya share bisa di deklarasiin di atas. kalau mau bisa diakses dari luar bisa tambahin setter getter nya.
kalau perlu pas di konstrutor bsia ditambahin passing variable.
pokoknya yang gitu2lah.

perlakukan objek sebagai objek, kalo cuma numpang naruh fungsi ya wajar dosen bilang kayak gitu emoticon-Cape d... (S)
KASKUS Ads
Quote:


bener nih kata agan ini, apalagi yg ane bold..
jangan cuma panggil method aja


konsep OOPnya coba dipelajarin dulu
buat model, dao, impl, service, controller
konsepnya dulu dipahamin gan..
oke gan kalo misal konsep oop kan mengandung

- Inheritance
- Interface
- Polymorphysm

apakah semua harus terpenuhi baru bisa di katakan oop? atau salah satu aja cukup?
yang bikin ane kesel itu si dosen ga bisa kasih contoh bagaimana OOP yang bener menurut dia.
OOP nanti bisa di implentasikan ke design pattern.

Berikut artikel yang bisa di baca/dipahami

http://sourcemaking.com/design_patterns
Quote:


Itu dia kenapa ane bilang situ coba tanya ke penguji maupun pembimbing, supaya tau OO yang dimaksud harusnya seperti apa, minimal harus ada apa aja

Menurut ane sih semuanya harus ada
Apalagi mengingat agan membuat aplikasi, jadi seharusnya semuanya bisa diterapin
Lain halnya kalo agan cuma bikin library yang isinya cuma beberapa kelas

Coba liat framework2 php yang udah OOP, macem Aura2, Symfony2, Laravel4, Zend2
Kalo CI setau ane belum sepenuhnya OOP, karena code base-nya masih PHP4/PHP5 awal, dimana OOP di PHP belum populer

CMIIW
Kalo bisa liat kode yang lengkap baru bisa bilang oop atau gak. Dari kode agan, masih belum jelas walaupun make objek.

Program tidak selalu harus dioopin bila memang tidak perlu. Tapi pada situasi tertentu, oop itu perlu. Jadi ane rasa perlu lihat penerapan oopnya.

Mungkin ini maksud pengujinya "menggunakan class dalam PHP belum tentu OOP lho".
Quote:


Ngga perlu semua lah.. Tergantung kebutuhan. Tapi kalau misalnya agan cuman pake buat jalanin procedur aja ya bukan OOP..
Contoh
Code:

class X {
public function add($a, $b) {
return $a+$b;
}
public function mul($a, $b) {
return $a*$b;
}
}

Itu bukan OOP

Tapi ini OOP
Code:

class X {
private $a, $b;
public function setA($a) {
$this->a = $a;
}
public function setB($b) {
$this->b = $b;
}
public function add() {
return $this->a + $this->b;
}
public function multiply() {
return $this->a * $this->b;
}
}
Quote:


Bener gan,

Penguasaan OOP dimulai dengan memahami bahwa objek itu terdiri dari atribut dan method (data dan operasi) yang digabungkan dalam suatu entitas emoticon-Big Grin

Jadi kalau penggunaannya cuma data only, atau operasi only dalam suatu class, berarti belum benar-benar OOP.

emoticon-Blue Guy Cendol (L) emoticon-Rate 5 Star Cheers
--
Cek thread share IT ane: http://kask.us/hnalI
Terima murid privat IT emoticon-Smilie
Quote:


nah ane emang pake itu gan... tapi kenapa kata dosen penguji itu bukan OOP ya katanya itu ter struktur??emoticon-Bingung (S) ane juga udah konsul ama dosen pembimbing ane katanya yang ane bikin itu OOP tapi pas di sidang katanya bukan OOP. kalo gitu yang salah sapa gan?? ane mau sidang juga kan sebelumnya udah di cek ama pembimbing ane.. dan oke katanya...
Quote:


Tolong di paste kodenya gan, satu halaman full yg kata ente menggunakan konsep "OOP" emoticon-Smilie, biar coba kita review secara objektif.

Quote:


Setuju sama Oom ini

Kalo cuma 1 - 2 kelas doang, cuma nerapin Object/Class dan Information Hiding doang mungkin cukup buat dibilang OOP
Tapi kalo 1 flow aplikasi, mungkin lain lagi ceritanya...

CMIIW
Tapi lebih meyakinkan lagi kalo ts tanya sama pengujinya langsung emoticon-Hammer (S)
Code:

class konek{
var $konek;
var $selectDb;
var $query ;
var $result ;
var $row;
var $jumlah ;

function konek()
{
$nameSer = "localhost"; //Nama Host
$username ="root"; //username Host
$pass = ""; //Passwrod Host
$dbname = "koperasi"; //Database Name
$koneksi = mysql_connect($names,$username,$pass)or die('error'.mysql_errno());

$this->selectDb = mysql_select_db($dbname,$koneksi);
if ( !$this->selectDb )
{
echo "gagal";
}
}

function query($query){
$this->result = mysql_query($query);

}
function tampil(){
$this->row=mysql_fetch_array($this->result);
return $this->row;
}
function view()//fungsi menampilkan data
{
$this->row = mysql_fetch_object($this->result);
return $this->row;
}

function tampil_row()//fungsi menampilkan jumlah data
{
$this->jumlah = mysql_num_rows($this->result);
return $this->jumlah;
}

function get($table)//fungsi select
{
$this->result = mysql_query("SELECT * FROM ".$table);
}
function cari($table , $where)//fungsi cari
{
$this->result = mysql_query("SELECT * FROM ".$table." WHERE ".$where);
}
function notalin($field , $as , $table , $where){
$this->result = mysql_query("select sum".$field."as".$as."from".$table."where".$where);
}

function getJumlahFromTable($table)
{
$this->get($table);
return $this->getJumlah();
}

function insert( $database , $data)//fungsi insert
{
$row = array();
$nilai = array();
foreach ( $data as $kolom =>$value )
{
$row[] = $kolom;
$nilai[] = "'".$value."'";
}

$this->result = $this->query("INSERT INTO ". $database."(". implode(',' ,$row) .")
VALUES (". implode(',' , $nilai) .")");
}

function update($table , $data , $where)//fungsi update
{
foreach ( $data as $kolom => $row )
{
$set[]= $kolom."='".$row."'" ;
}
$set = implode(',',$set);
$query = "UPDATE ".$table." SET ".$set." WHERE ".$where ;
$this->query($query);
}

function delete($table , $where)//fungsi delete
{
$this->query("DELETE FROM ".$table." WHERE ".$where);
}

}


class login extends konek{//fungsi login..
function masuk ($user , $pass){
$this->result = mysql_query("select * from daftar_anggota where nip = '$user' and pass ='$pass'");
}
}


apakah itu sudah oop gan master semua. biar ane ga penasaran.. ama statmen penguji ane..
Quote:


Mungkin secara teknis udah OOP (udah pake Class + Information Hiding), namun secara penggunaan masih kurang pas emoticon-Peace

Dari contoh kode agan:
PHP Code:
class login extends konek
{
    function 
masuk ($user ,  $pass)
    {
        
$this->result mysql_query("select * from daftar_anggota where nip = '$user' and pass ='$pass'");
    }



Pertama, nama kelasnya Konek, namun isinya banyakan operasi DB, sebaiknya nama kelasnya Database aja (ini ga penting2 amat sih)

Kedua, udah ada kelas Konek (atau Database), tapi kok ujung2nya kita masih manggil mysql_query di dalem kelas Login?

Ketiga, kelas Login harusnya manggil kelas Konek, bukan extends dari kelas Konek, karena memang konteksnya dia bukan "anak" dari Konek

Mungkin sebaiknya begini:
PHP Code:
class Login
{
    
    private 
$db;
    
    public function 
__construct()
    {
        
$this->db = new Db();
    }
    
    public function 
masuk($username$password)
    {
        
$user $db->query('SELECT * FROM user WHERE username = :username AND password = :password', array(
            
':username' => $username,
            
':password' => $password
        
));
        
        if (! 
$user) {
            throw new 
LoginException('Invalid Username and/or Password');
        }
        
        return 
$user;
    }
    



Dan daripada susah payah bikin kelas Konek, sebaiknya agan pelajari dan pake kelas PDO bawaan PHP, yang jelas2 kodingannya udah OOP emoticon-Big Grin

CMIIW
Quote:


Mau ngajak debat? emoticon-EEK!
Kalo ada nilai Z, udah dikasi kali buat ente tuh emoticon-EEK!
Quote:


Nambahin komentar,

Class/Object intinya adalah sebuah benda/thing, jadi namanya harus berbentuk kata benda/noun.

Penamaan Class Konek/Login adalah ciri2 belum memahami konsep diatas,
kata Konek/connect/melakukan koneksi adalah sebuah kata kerja/verb, yaitu proses melakukan koneksi.

Nama yang lebih cocok adalah: Database, atau Koneksi, DbLayer, etc.

Sedangkan kata kerja/verb digunakan utk menamakan method (fungsi yang beroperasi terhadap objek)

Contoh:
$db=new Database();
$db->connect();
$hasil=$db->query($sql);
$db->close();

Dan prinsip oop adalah "information hiding", maksudnya apa, kalau sekilas kita liat di contoh diatas, kita terima jadi Class Database, yang akan melakukan urusan koneksi db, query, dll.

Yang dihide apa ?? Ya operasi yang dilakukan didalamnya (mysql_query, mysql_connect, mysq_close, dll).

Jadi hati2 juga, kalau sudah kita hide, ya jangan sampai hal-hal yang pengen kita hide itu terlihat juga dari luar class (mysql_query, mysql_connect, mysq_close, dll),

ini namanya "bocor keluar" emoticon-Big Grin

Dengan OOP kita jg bisa membuat yang dinamakan ABSTRAKSI baru yaitu gimana membuat "Apa yang kita pingin" tapi berdasarkan "Apa yang kita punyai", dengan tujuan lebih menyederhanakan masalah.

Contoh diatas, koneksi DB di PHP tampaknya ribet karena melibatkan berbagai fungsi, connect, query, close, dll, belum lagi menghapal parameter2nya -> "Apa yang kita punyai"

Tapi dengan cara membuat abstraksi baru "Class Database", kita anggap kita punya objek baru, yang cuma terdiri dari beberapa tahap dan mudah dimengerti, yaitu connect, query dan close.
Parameter2 yg teknis/ribet pun sudah dibungkus didalam class. Sehingga kita tinggal mengisikan parameter yg bener2 penting yaitu SQL yang akan diquery. -> "Apa yang kita pingin"

emoticon-Blue Guy Cendol (L) emoticon-Rate 5 Star Cheers
--
Cek thread share IT ane: http://kask.us/hnalI
Terima murid privat IT emoticon-Smilie
skripsi gak usah pake OOP lah kalo emang kagak ngerti-ngerti amat.

Yang utama program jalan sesuai tujuan awal.

Kode kamu itu bisa dibuat procedural semua...

Quote:


Dan setelah tamat kuliah, ngga ada yang mau nerima kerja emoticon-Ngakak
Quote:

terserah apa kata mu deh, gaji pertama gw 3 juta tahun 2009 fresh graduate loh, ada yg mau nerima gw walaupun persyaratan kerja itu bukan buat fresh graduate. Dari semua pelamar yg total nya 25 orang, gw satu-satunya yg fresh graduate. dan cuma 2 orang aja yg diterima, salah satunya gw.