Perbandingan Eloquent dan Query Builder Pada Laravel

Dipublikasikan oleh El Cicko pada

perbandingan eloquent dan query builder pada laravel

Pada artikel kali ini saya ingin membahas tentang perbandingan Eloquent dan Query Builder pada Laravel. Yups, Framework Laravel mempunyai dua buah metode untuk berinteraksi dengan database sehingga interaksi dengan database menjadi lebih mudah.

Eloquent ORM

Eloquent ORM pada Laravel menyediakan implementasi Active Record yang berarti bahwa setiap model yang kita buat dalam struktur MVC kamu sesuai dengan tabel dalam database kita. Misalkan, jika saya membuat model dengan nama ‘Post’, maka model tersebut akan sesuai dengan table ‘post’ pada database. Jadi, saya dapat mengakses data dalam tabel ‘post’ sebagai berikut.

Ada banyak fungsi pada Eloquent ORM pada Laravel yang memudahkan pengerjaan script kita.

Query Builder

Seperti namanya, Query Builder pada Laravel menyediakan antarmuka untuk membuat dan menjalankan query dalam database. Query Builder menggunakan PDO parameter binding untuk untuk melindungi aplikasi kita dari serangan injeksi SQL jadi kita tidak perlu lagi melakukan filter string sebagai binding. Contoh query dari Query Builder adalah sebagai berikut :

get();                       // Menampilkan semua data dalam table post
DB::table('posts')->where('id',$id)->first();    // Menampilkan data dalam table post yang sesuai dengan parameter
DB::table('posts')->where('id',$id)->delete();   // Menghapus data
?>

Nah, itu dia definisi dari Eloquent ORM dan Query Builder, sekarang kita bakal coba menguji coba keduanya.

Perbandingan Performa

OK, pada kasus ini saya ingin menginsert data sebanyak 1000 data dalam table ‘country’. Sekarang kita uji coba performa keduanya

Eloquent ORM (Execution time : 1.41 s, Queries Executed : 1000)

label=$i." Row";
         $t->save();
    }
});

?>

 Query Builder (Execution time : 938 ms, Queries Executed : 1000)

insert(["label"=>$i." Row"]);
    }
});
?>

Dari hasil test diatas jelas bahwa Eloquent melakukan proses sedikit lebih lama dibandingan dengan Query Builder jadi pada masalah performa, Query Builder lebih baik dari Eloquent ORM.

Perbandingan Syntax

Nah, sekarang kita akan coba membandingkan keduanya dari segi penulisan syntax.

Eloquent ORM

Query Builder

where('id',$id)->get();
?>

Dilihat dari perbandingan syntax diatas, Eloquent ORM lebih singkat dan lebih mudah diketik daripada Query Builder.

Perbandingan Fungsionalitas

Sebenarnya Eloquent ORM adalah extensi dari Query Builder, jadi kita bisa menggunakan syntax Query Builder didalam Eloquent. Sebaliknya, kita tidak bisa mengakses syntax dari Eloquent jika kita menggunakan Query Builder. Contohnya dari Eloquent adalah sebagai berikut :

with('comments','tags','categories')->get();
?>

Kesimpulan

Dari perbandingan diatas, saya asumsikan bahwa Eloquent sedikit lebih baik dari segi fungsi dan efisiens ketimbang Query Builder namun dengan kekurangan bahwa proses query menjadi lebih lambat daripada Query Builder. Kamu bisa menggunakan keduanya sesuai dengan kebutuhan aplikasimu.

Segitu saja dulu bahasan kita tentang perbandingan Eloquent dan Query Builder Pada Laravel. Semoga bermanfaat. 😀


El Cicko

Nama saya Riky Fahri Hasibuan, Saya yang biasa nulis di blog ini. Blog ini adalah sarana dokumentasi dari apa yang saya kerjakan dan tidak ada salahnya juga saya sebarkan. Jika artikel di blog bermanfaat, kamu bisa memberikan apresiasi pada blog ini dengan memberikan donasi pada blog ini.

6 Komentar

Asep Dadan · Maret 10, 2016 pada 12:00 pm

mantaaps tutorial nya semangaat untuk belajar laravel

Tirta · Agustus 11, 2016 pada 8:45 am

Perbantingannya simple sekali. Hanya 2 tabel saja. Coba dibandingkan dengan 4 tabel dengan relasi 1 to many, many to 1, many to many, pake group by, order by, having,

    dickyabdillah · Agustus 12, 2016 pada 2:26 pm

    boleh juga nih perbandingannya lebih banyak.
    biar lebih tahu lagi seberapa cepat masing-masing keduanya.

Ridwan Fauzan · Agustus 11, 2016 pada 5:30 pm

terimakasih gan artikelnya sangat membantu, jadi tau perbedaan tentang Eloquent ORM sama Query Builder.

Donny Kurnia · Agustus 14, 2016 pada 11:41 am

Tulisan spt ini udah cukup banyak memakan korban, membuat pemula Laravel jadi tidak pakai Eloquent model demi performansi semu…

cloud server · Agustus 22, 2017 pada 6:56 pm

terimaksih arikelny sangat membantu dan bermanfaat

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *