Introduction
Ketika gue pegang project CPAR Audit gue menemukan banyak data yg double seperti gambar berikut.

Saya ingin yg kolom nya sama harusnya tampil 1x saja. Caranya yaitu menggunakan json.data.filter di Datatable
Implementasi
function table(filter_dept, filter_reference, filter_issued_date){
let seen = new Set();
$("#table").DataTable({
serverSide: true,
bDestroy: true,
ordering: false,
ajax: {
type: "GET",
url: "/cpar-audit/dcc/internal/checklist-cpar/getData",
data: {
filter_dept, filter_reference, filter_issued_date
},
dataSrc: function(json) {
return json.data.filter(function(item) {
const key = JSON.stringify([
item.iso,
item.dept,
item.internal?.creator_nik,
item.internal?.creator_nama,
moment(item.created_at).format("YYYY-MM-DD")
]);
if(seen.has(key)) {
return false;
}
seen.add(key);
return true;
});
}
},
columns: [
{ data: "iso" },
{ data: "dept" },
{ data: "internal.creator_nik" },
{ data: "internal.creator_nama" },
{
data: "created_at",
render: function(data, type, row){
return moment(data).format("YYYY-MM-DD");
}
},
{
render: function(data) {
return `
<button class="btn btn-success"><i class="fas fa-eye"></i></button>
`;
}
}
]
});
} table(filter_dept, filter_reference, filter_issued_date);Penjelasan:
dataSrc: Fungsi ini memodifikasi respons dari server sebelum DataTable render.seen = new Set(): Membantu melacak key unik untuk tiap baris.- Key dibuat berdasarkan kombinasi:
item.isoitem.deptitem.internal.creator_nikitem.internal.creator_namacreated_atdiformat keYYYY-MM-DD
Date: 15-05-2025