64 Aliases dan Directives di Query: Panduan Lengkap dengan Contoh & Visualisasi
Sebagai engineer backend, khususnya yang sering bermain dengan data—entah di GraphQL, SQL, ataupun REST API—alias dan directives adalah dua tools yang sangat membantu dalam mengotak-atik response query sesuai kebutuhan. Pada artikel kali ini, saya akan membahas 64 Aliases dan Directives dalam konteks query (kita fokus ke SQL dan GraphQL), beserta contoh kode, simulasi output, dan diagram alur agar penjelasan makin mudah dipahami.
Apa Itu Aliases dan Directives?
Alias dalam query adalah nama lain yang diberikan pada kolom atau field. Ini sangat berguna untuk:
- Menghindari bentrok nama (name collision).
- Memperjelas makna field (self-documenting).
- Merapikan struktur hasil query.
Directive adalah instruksi tambahan pada query yang bisa memodifikasi cara data di-fetch, di-filter, atau diproses. Directives sering muncul di GraphQL, tapi konsep serupa juga ada di SQL (misal, WHERE
, LIMIT
, ORDER BY
).
Mengapa Perlu Menggunakan Alias & Directive?
- Kustomisasi output tanpa modifikasi data di sumber.
- Query lebih efisien dan readable.
- Proses debugging dan scaling lebih mudah, especially di proyek besar.
Struktur Artikel
- 64 Alias & Directive Populer dalam Query
- Contoh Penggunaan Alias & Directive (SQL & GraphQL)
- Simulasi Output & Tabel
- Diagram Alur TTL (Time To Live) Menggunakan Mermaid
- Best Practice & Catatan
1. 64 Alias & Directive Populer di Dunia Data Query
Tidak semua implementasi memiliki jumlah alias dan directive sebanyak ini dalam satu query, tapi pengetahuan terhadap berbagai opsinya mendongkrak kualitas engineering kita. Mari lihat daftar populernya.
No | Tipe | Alias/Directive | Deskripsi Singkat |
---|---|---|---|
1 | SQL Alias | AS | Menamai ulang kolom/tabel. |
2 | SQL Alias | COUNT(*) AS total | Hasil agregasi dinamai “total”. |
3 | SQL Alias | user_id AS uid | Kolom user_id dinamai “uid”. |
4 | SQL Alias | table1 AS t1 | Nama tabel disingkat. |
5 | GraphQL Alias | userPosts: posts | Field posts dinamai userPosts. |
6 | GraphQL Directive | @include | Memasukkan field jika kondisi terpenuhi. |
7 | GraphQL Directive | @skip | Melewati field jika kondisi terpenuhi. |
8 | SQL Directive | WHERE | Seleksi baris berdasarkan kondisi. |
9 | SQL Directive | ORDER BY | Urutkan hasil. |
10 | SQL Directive | GROUP BY | Kelompokkan hasil berdasarkan field. |
11 | SQL Directive | LIMIT | Batas baris return. |
12 | SQL Directive | OFFSET | Lewati N baris pertama. |
… | … | … | … |
64 | GraphQL Directive | @deprecated | Tandai field deprecated/tidak direkomendasikan. |
Catatan: Tidak semua nama directive di SQL disebut directive secara formal. Untuk memudahkan diskusi, kita anggap
WHERE
,GROUP BY
, dsb sebagai directive di ranah query.
2. Contoh Penggunaan Alias & Directive
A. SQL Alias & Directive
SELECT
users.id AS user_id,
users.name AS username,
COUNT(posts.id) AS total_posts
FROM
users
LEFT JOIN posts ON users.id = posts.user_id
WHERE
users.status = 'active'
GROUP BY
users.id, users.name
ORDER BY
total_posts DESC
LIMIT 10 OFFSET 0;
Penjelasan:
users.id AS user_id
→ Kolomid
punya aliasuser_id
.COUNT(posts.id) AS total_posts
→ Hasil agregasi COUNT dinamaitotal_posts
.LEFT JOIN
,WHERE
,GROUP BY
,ORDER BY
,LIMIT
,OFFSET
adalah directives untuk memodifikasi hasil.
Simulasi Output:
user_id | username | total_posts |
---|---|---|
15 | Agus | 55 |
27 | Reni | 42 |
39 | Dedi | 37 |
B. GraphQL Alias & Directive
query UserDashboard($showEmail: Boolean!, $status: String) {
userProfile: user(id: 42) {
username
email @include(if: $showEmail)
posts(status: $status) {
postTitle: title
summary
createdAt
}
}
}
Penjelasan:
userProfile: user(...)
→ Query fielduser
, tapi hasilnya dinamaiuserProfile
.postTitle: title
→ Fieldtitle
diberi aliaspostTitle
.email @include(if: $showEmail)
→ Directive untuk menampilkan email hanya jikashowEmail
bernilaitrue
.posts(status: $status)
→ Argument sebagai filter.
Simulasi Output (JSON):
{
"data": {
"userProfile": {
"username": "agusdev",
"email": "agus@company.com",
"posts": [
{
"postTitle": "Mengolah Data di Backend",
"summary": "Tips dan trik singkat...",
"createdAt": "2024-06-18T10:00:00Z"
}
]
}
}
}
3. Simulasi Output: Table Mapping
Query | Output Field | Alias/Directive yang Terlibat |
---|---|---|
SELECT … | user_id | AS user_id |
SELECT … | username | AS username |
GraphQL Query | userProfile | userProfile: user |
GraphQL Query | postTitle | postTitle: title |
JSON Output | username | Tanpa alias |
4. Visualisasi: Diagram Alur Query dan Transformasi
Mari kita visualisasikan proses query dan transformasi data yang terjadi ketika menggunakan alias dan directive, dengan diagram Mermaid:
flowchart TD A[Client Query] --> B[Server Parsers] B --> C{Apakah Pakai Alias?} C --Ya--> D[Rename Field di Response] C --Tidak--> E[Loloskan Field] B --> F{Apakah Ada Directive?} F --Ya--> G[Apply Filtering/Transformation] F --Tidak--> H[Fetch As Is] D --> I[Format Response] E --> I G --> I H --> I I --> J[Client Receive Response]
5. Best Practice & Catatan
- Alias jangan terlalu disingkat: Lebih baik jelas (
user_id
daripadauid
), utamakan readability. - Hindari nama alias sama dengan field yg di-fetch: Untuk menghindari kebingungan dalam debugging.
- Gunakan directive seperlunya, jangan semua diaktifkan agar response tetap ringan dan relevan.
- Testing kombinasi directive: Misalnya, apakah boleh
@include
dan@skip
pada field yang sama di GraphQL? - Dokumentasikan naming convention dalam tim untuk menghindari chaos pada query rumit.
Penutup
Dalam proses designing dan executing data query, aliases dan directives adalah alat fundamental untuk menciptakan response yang relevan, efisien, dan mudah dibaca. Dengan penguasaan 64+ variasi alias & directive, engineer tidak hanya bisa menghasilkan query yang powerful, tapi juga scalable dan maintainable.
Jangan ragu untuk mulai bereksperimen—karena seringkali, optimasi kecil pada layer query bisa berdampak besar ke performa dan pengalaman user downstream.
Bagikan di kolom komentar, alias dan directive favorit kamu—atau problem unik yang pernah kamu temui!
86. Studi Kasus: Testing Layanan CRUD dengan gRPC
Artikel Terhangat
64 Aliases dan Directives di Query
09 Sep 2025
63 Fragment GraphQL dan Implementasinya
09 Sep 2025
85. Logging dan Debugging dengan `grpc-go`
09 Sep 2025
84. Mock gRPC Server dengan `gomock`
08 Aug 2025
61 Nested Resolver dan Resolver Berantai
08 Aug 2025

64 Aliases dan Directives di Query

63 Fragment GraphQL dan Implementasinya

85. Logging dan Debugging dengan `grpc-go`

84. Mock gRPC Server dengan `gomock`
