Pelajari Dapper: Integrasi Praktis dengan ASP.NET Core
Daftar Isi
1. Pengantar Dapper dan ASP.NET Core
Dapper adalah sebuah micro ORM (Object-Relational Mapper) yang sangat ringan dan cepat untuk .NET. Dapper memudahkan pengembang dalam melakukan operasi database dengan cara yang efisien dan mudah dipahami, tanpa mengorbankan performa.
ASP.NET Core adalah framework open-source dari Microsoft untuk membangun aplikasi web modern, API, dan layanan backend. Integrasi Dapper dengan ASP.NET Core memungkinkan Anda membuat aplikasi yang cepat dan efisien dalam mengakses database.

2. Persiapan Proyek ASP.NET Core
Sebelum mulai menggunakan Dapper, kita perlu menyiapkan proyek ASP.NET Core terlebih dahulu. Anda bisa menggunakan Visual Studio, Visual Studio Code, atau CLI .NET.
- Buka terminal atau command prompt.
-
Jalankan perintah berikut untuk membuat proyek web API baru:
dotnet new webapi -n DapperDemo
-
Masuk ke folder proyek:
cd DapperDemo
- Buka proyek di editor favorit Anda.

3. Instalasi dan Konfigurasi Dapper
Untuk menggunakan Dapper, kita perlu menambahkan paket NuGet Dapper ke dalam proyek.
-
Jalankan perintah berikut di terminal untuk menginstal Dapper:
dotnet add package Dapper
-
Pastikan juga Anda memiliki paket untuk database yang digunakan, misalnya
Microsoft.Data.SqlClient
untuk SQL Server:dotnet add package Microsoft.Data.SqlClient
- Setelah instalasi selesai, Anda bisa mulai menggunakan Dapper di dalam kode Anda.

4. Membuat Koneksi Database dengan Dapper
Dapper menggunakan
IDbConnection
untuk berinteraksi dengan database. Berikut contoh membuat koneksi ke database SQL Server:
using System.Data; using Microsoft.Data.SqlClient; public class DatabaseHelper { private readonly string _connectionString; public DatabaseHelper(string connectionString) { _connectionString = connectionString; } public IDbConnection CreateConnection() { return new SqlConnection(_connectionString); } }
Anda bisa menyimpan connection string di
appsettings.json
dan membacanya melalui konfigurasi ASP.NET Core.

5. Operasi CRUD dengan Dapper
Berikut contoh operasi CRUD (Create, Read, Update, Delete) menggunakan Dapper.
a. Create (Insert)
using (var connection = CreateConnection()) { var sql = "INSERT INTO Products (Name, Price) VALUES (@Name, @Price)"; var result = connection.Execute(sql, new { Name = "Produk A", Price = 10000 }); }
b. Read (Select)
using (var connection = CreateConnection()) { var sql = "SELECT * FROM Products WHERE Id = @Id"; var product = connection.QueryFirstOrDefault<Product>(sql, new { Id = 1 }); }
c. Update
using (var connection = CreateConnection()) { var sql = "UPDATE Products SET Price = @Price WHERE Id = @Id"; var result = connection.Execute(sql, new { Price = 12000, Id = 1 }); }
d. Delete
using (var connection = CreateConnection()) { var sql = "DELETE FROM Products WHERE Id = @Id"; var result = connection.Execute(sql, new { Id = 1 }); }

6. Contoh Kode Lengkap
Berikut contoh lengkap controller ASP.NET Core yang menggunakan Dapper untuk mengelola data produk.
using Microsoft.AspNetCore.Mvc; using System.Data; using Microsoft.Data.SqlClient; using Dapper; using System.Collections.Generic; namespace DapperDemo.Controllers { [ApiController] [Route("api/[controller]")] public class ProductsController : ControllerBase { private readonly string _connectionString; public ProductsController(IConfiguration configuration) { _connectionString = configuration.GetConnectionString("DefaultConnection"); } private IDbConnection CreateConnection() => new SqlConnection(_connectionString); [HttpGet] public IEnumerable<Product> Get() { using var connection = CreateConnection(); var sql = "SELECT * FROM Products"; return connection.Query<Product>(sql); } [HttpGet("{id}")] public Product Get(int id) { using var connection = CreateConnection(); var sql = "SELECT * FROM Products WHERE Id = @Id"; return connection.QueryFirstOrDefault<Product>(sql, new { Id = id }); } [HttpPost] public IActionResult Post(Product product) { using var connection = CreateConnection(); var sql = "INSERT INTO Products (Name, Price) VALUES (@Name, @Price)"; var result = connection.Execute(sql, product); if (result > 0) return Ok(); return BadRequest(); } [HttpPut("{id}")] public IActionResult Put(int id, Product product) { using var connection = CreateConnection(); var sql = "UPDATE Products SET Name = @Name, Price = @Price WHERE Id = @Id"; var result = connection.Execute(sql, new { product.Name, product.Price, Id = id }); if (result > 0) return Ok(); return NotFound(); } [HttpDelete("{id}")] public IActionResult Delete(int id) { using var connection = CreateConnection(); var sql = "DELETE FROM Products WHERE Id = @Id"; var result = connection.Execute(sql, new { Id = id }); if (result > 0) return Ok(); return NotFound(); } } public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } }

7. Sumber Belajar dan Channel Pembelajaran
Berikut beberapa sumber dan channel yang dapat membantu Anda mempelajari Dapper dan ASP.NET Core lebih dalam:
- Dapper Tutorial (dapper-tutorial.net) - Tutorial lengkap dan dokumentasi Dapper.
- Dokumentasi ASP.NET Core (Microsoft Docs) - Panduan resmi ASP.NET Core.
- Tim Corey (YouTube) - Channel YouTube dengan tutorial .NET dan Dapper.
- dotNET (YouTube Official) - Channel resmi Microsoft untuk .NET.
- GitHub Dapper - Repositori resmi Dapper.

8. Kesimpulan
Dapper adalah pilihan tepat untuk pengembang yang menginginkan akses database yang cepat dan ringan di aplikasi ASP.NET Core. Dengan integrasi yang mudah dan performa tinggi, Dapper memungkinkan Anda membangun aplikasi yang efisien tanpa kompleksitas ORM yang berat.
Mulailah dengan menyiapkan proyek ASP.NET Core, instal Dapper, dan praktikkan operasi CRUD sederhana. Jangan lupa untuk memanfaatkan sumber belajar yang tersedia agar pemahaman Anda semakin mendalam.
