Cara Menghubungkan MongoDB Dengan Laravel Untuk CRUD Sederhana

MongoDB mungkin tidak populer digunakan didalam laravel, pada pemilik website mungkin memilih SQL...
Penulis
Admin
Kategori
Tutorial
Estimasi
4 menit baca
Dilihat
377
Posting
19 Sep 2022
Cara Menghubungkan MongoDB Dengan Laravel Untuk CRUD Sederhana MongoDB mungkin tidak populer digunakan didalam laravel, pada pemilik website mungkin memilih SQL sebagai tempat penyimpanan data mereka, justru mongodb lebih populer disandingkan dengan NodeJS platform. Cara Menghubungkan MongoDB Dengan Laravel Untuk CRUD Sederhana
2022-11-25

Database merupakan temapat penyimpanan data yang sangat penting untuk digunakan saat ini, mungkin terdapatbanyak pilihan tersedia seperti MySQL, Postgree, SQL Server, mongodb dll, pada kesempatan kali ini, kita akan membahas bagaimana cara integrasi aplikasi berbasis framework laravel dengan mongodb sebagai tempat penyimpanan data atau databasenya. MongoDB merupakan aplikasi berbasis open-source yang berfokus pada document oriented NoSQL database yang cocok digunakan untuk menyimpan data dengan high-volume. 

MongoDB mungkin tidak populer digunakan didalam laravel, pada pemilik website mungkin memilih SQL sebagai tempat penyimpanan data mereka, justru mongodb lebih populer disandingkan dengan NodeJS platform, namun jika anda sedang mencari informasi bagaimana cara untuk menghubungkan mongodb kedalam aplikasi berbasis laravel, kami akan membahasnya disini.

 

Cara Menghubungkan MongoDB Dengan Laravel

 

 

1. Bagaimana cara menggunakan Laravel dengan MongoDB

Terdapat berbagai macam cara untuk menghubungkan Laravel dengan MongoDB, yaitu dengan menggunakan library dari jenssegers/mongodb, sebelum masuk kedalam inti tutorial, kamu perlu menyiapkan beberapa komponen yang diperlukan yaitu mengkonfigurasikan database MongoDB didalam platform windows kalian, yaitu dengan mengaktifkan driver mongodb. Kamu bisa mendownload package MongoDB untuk windows dengan mengunjungi link berikut ini: https://pecl.php.net/package/mongodb/1.3.0/windows

Download dan extract zip file, lalu copy pastekan semua file .dll kedalam directory ext didalam webserver kalian. Jika kalian menggunakan XAMPP, bisa mengcopy paste file-file tersebut didalam directory C:\xampp\php\ext, pastikan file php_mongodb.dll sudah tersimpan didalam directory tersebut.

Setelah itu kalian bisa membuka file php.ini dan menambahkan beberapa baris tambahan yaitu extension=php_mongodb.dll, jika extension=php_mongodb.dll sudah terdapat didalam isi file php.ini, silahkan hapus titik koma untuk mengaktifkan MongoDB, setelah itu save dan restart webserver kalian.

Sekarang kamu sudah bisa menggunakan MongoDB sebagai database aplikasi laravel, selanjutnya adalah menginstall dan mengkonfigurasikannya kedalam framework laravel.

 

2. Menginstall framework Laravel

Jika anda sedang membuat aplikasi CRUD dengan menggunakan Laravel dan MongoDB, anda perlu menginstall library tambahan untuk mempermudah kamu dalam mengelola data, pertama-tama kamu install dulu framework laravelnya dengan perintah

composer create-project --prefer-dist laravel/laravel laramongo

dan library yang dibutuhkan yaitu

composer require jenssegers/mongodb

Tunggu hingga proses installasi selesai, setelah selesai kamu bisa masuk kedalam konfigurasi selanjutnya yaitu mengatur atau mengkonfigurasikan database MongoDB.

 

3. Konfigurasi database MongoDB

Setelah proses installasi selesai, selanjutnya adalah mengatur env databasenya, untuk nama database sesuaikan saja dengan project kamu, yaitu:

MONGO_DB_HOST=127.0.0.1
MONGO_DB_PORT=27017
MONGO_DB_DATABASE=mongolaracrud
MONGO_DB_USERNAME=
MONGO_DB_PASSWORD=

Selanjutnya untuk mengaktifkan MongoDB itu sendiri kamu perlu mengatur beberapa perintah didalam file database.php untuk dihubungkan kedalam file .env

'connections' => [
    ...
    'mongodb' => [
        'driver'   => 'mongodb',
        'host'     => env('MONGO_DB_HOST', 'localhost'),
        'port'     => env('MONGO_DB_PORT', 27017),
        'database' => env('MONGO_DB_DATABASE'),
        'username' => env('MONGO_DB_USERNAME'),
        'password' => env('MONGO_DB_PASSWORD'),
        'options'  => []
    ],
]

 

4. Menambahkan atau mendefinisikan provider baru didalam konfigurasi laravel

Karena kita sudah menginstall library tambahan untuk mengaktifkan database mongodb, kamu perlu meregistrasikan MongodbServiceProvider didalam app.php didalam file config, buka folder config lalu cari app.php, buka, cari dan tambahkan beberapa baris kode pada bagian berikut:

'providers' => [
    Jenssegers\Mongodb\MongodbServiceProvider::class,
]

 

5. Integrasi MongoDB kedalam Models

Anggaplah anda sudah memiliki model atau membuat file model, untuk menghubungkannya dengan MongoDB anda perlu menambahkan namespace dari library yang sudah diinstall yaitu:

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

Sebagai contoh, kami memiliki file model Books.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Books extends Eloquent
{
    protected $connection = 'mongodb';
    protected $collection = 'books';
    
    protected $fillable = [
        'name', 'type', 'price'
    ];
}

SQL bekerja dengan table sedangkan NoSQL bekerja dengan collection, jadi agar mongodb bekerja dengan sempurna, kami menambahkan varable $connection. Perlu dicatat bahwa primary key tidak dapat diatur melalui $primaryKey dan auto incrementing tidak disediakan. Namun tenang saja, MongoDB secara otomatis akan menetapkan primary key kedalam dokumen. Untuk mengakses primary key kamu harus menggunakan nama atribut yang sama seperti yang ada didalam model dasar, misalnya:

echo 'ID book: ' . $book->id; // atau
echo 'ID book: ' . $book->_id;

Gunakan find() untuk mengunakan primary key dan mendapatkan hasil.

Didalam NoSQL, biasanya tidak memiliki schema untuk didefinisikan, namun kita dapat menggunakan dan memanfaatkan migrasi untuk menentukan index, unique field dan field mongodb lainnya.

Schema::create('books', function ($collection) {
    $collection->index('blabla');
    $collection->unique('blabla');
});

Untuk menjalankan migrasi, pastikan bahwa driver default sudah disetel kedalam mongodb didalam variable DB_CONNECTION (file .env)

php artisan migrate

 

6. Menampilkan data didalam database MongoDB

Untuk menampilkan data dengan menggunakan MongoDB, kamu menggunakan method all, contoh:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Books;

public function index()
{
    $books = Books::all();
    return view('index', compact('books'));
}

Dan tampilkan variable book kedalam view seperti biasa:

@foreach($books as $book)
<tr>
    <td>{{ $book->id }}</td>
    <td>{{ $book->name }}</td>
    <td>{{ $book->type }}</td>
    <td>{{ $book->price }}</td>
</tr>
@endforeach

 

7. Menyimpan data kedalam database MongoDB

Kita membutuhkan beberapa kode untuk mengatur penyimpanan data kedalam database, contoh:

public function store(Request $request)
{
    $book = new Books();
    $book->name = $request->get('name');
    $book->type = $request->get('type');
    $book->price = $request->get('price');        
    $book->save();

    return redirect('index')->with('success', 'Buku baru sdah berhasil disimpan!');
}

 

8. Merubah data didalam database MongoDB

Jika anda membutuhkan fitur untuk merubah data, kamu bisa menambahkan function baru untuk mengelola data yang akan dirubah, misalnya:

public function edit($id)
{
    $books = Books::find($id);
    return view('book_edit', compact('cars', 'id'));
}

Selanjutnya tinggal mengatur data tersebut didalam file view laravel kamu sesuai yang diinginkan. Selanjutnya bisa membuat function baru untuk menghandle data dan memasukkannya kedalam database.

public function update(Request $request, $id)
{
    $book= Books::find($id);
    $book->name = $request->get('name');
    $book->type = $request->get('type');
    $book->price = $request->get('price');        
    $book->save();
    return redirect('index')->with('success', 'Buku sudah berhasil diupdate!');
}

 

9. Fitur menghapus data didalam database MongoDB

Untuk membuat fitur hapus data sebenarnya tidak terlalu sulit, kamu hanya perlu menambahkan method delete() saja, misalnya:

public function destroy($id)
{
    $book = Books::find($id);
    $book->delete();
    return redirect('index')->with('success', 'Buku berhasil dihapus!');
}

 

Penutup

Untuk menghandle traffic yang cukup tinggi, MongoDB sangat disarankan untuk digunakan, banyak yang membuktikan bahwa MongoDB ini sangat cepat dan reliable. Rata-rata MongoDB mengkonsumsi 4GB ram dengan 600 juta dokumen data dengan beberapa method seperti read, write, delete. Namun perlu diperhatikan juga jangan menggunakan caching karena dapat menimbulkan penumpukan data didalam memory yang akan membuat aplikasi menjadi lambat. Jika aplikasi kalian sudah diupload kedalam hosting, diharuskan untuk mengaktifkan extension mongodb didalam php extension didalam panel. 

Share