Istilah-istilah Penting dalam Dunia IT yang harus kamu ketahui

istilah dalam dunia it

Dunia teknologi informasi punya satu kebiasaan yang kadang bikin teman-teman yang baru mulai belajar bisa garuk-garuk kepala: terlalu banyak istilah. Baru belajar programming sudah ketemu API, ORM, REST, Docker, Git, JWT. Naik sedikit ke backend ketemu Redis, Kubernetes, CI/CD, Microservices, Observability, sampai SRE.

Masalahnya, istilah-istilah tersebut sering muncul bersamaan. Akibatnya, kita tahu namanya tetapi belum tentu memahami apa sebenarnya fungsi masing-masing.

Padahal kalau dibongkar satu per satu, sebagian besar konsep tersebut sebenarnya cukup masuk akal. Bahkan beberapa di antaranya sudah sangat dekat dengan pekerjaan programmer sehari-hari.

Dalam artikel ini saya akan membahas istilah dunia IT, istilah programming, teknologi backend, database, DevOps, software architecture, security, testing, hingga project management dengan bahasa yang sederhana.

Tujuannya bukan supaya kamu hafal semua istilah IT, tetapi supaya ketika mendengar istilah tersebut dalam dokumentasi, pekerjaan, meeting, atau tutorial, kamu langsung memahami kira-kira apa yang sedang dibicarakan.

Daftar Isi

1. Serverless

Serverless adalah pendekatan menjalankan aplikasi tanpa programmer harus mengelola server secara langsung. Bukan berarti server benar-benar tidak ada. Server tetap digunakan, tetapi pengelolaannya ditangani oleh penyedia cloud.

Pada server tradisional, programmer biasanya harus memikirkan server, sistem operasi, resource, konfigurasi, deployment, dan berbagai urusan infrastruktur lainnya.

Dalam serverless, kita lebih fokus kepada kode atau fungsi yang ingin dijalankan.

Contoh konsep sederhananya:

User
  ↓
Function
  ↓
Proses
  ↓
Response

Serverless sering berhubungan dengan konsep Function as a Service atau FaaS.

Analogi sederhananya: server tradisional seperti kamu membuka restoran sendiri. Kamu harus memikirkan gedung, dapur, listrik, peralatan, dan perawatan. Serverless lebih seperti menyewa dapur yang infrastrukturnya sudah disiapkan sehingga kamu bisa lebih fokus memasak.

↑ Kembali ke Daftar Isi

2. CI/CD

CI/CD adalah singkatan dari Continuous Integration dan Continuous Delivery atau Continuous Deployment.

Konsep ini digunakan untuk mengotomatisasi proses pengembangan dan deployment aplikasi.

Misalnya seorang programmer melakukan:

git add .
git commit -m "Tambah fitur login"
git push

Setelah kode masuk repository, sistem CI/CD dapat menjalankan proses seperti:

  • Mengambil kode terbaru.
  • Menjalankan unit test.
  • Melakukan automatic testing.
  • Melakukan build.
  • Memeriksa apakah ada error.
  • Melakukan deployment.

Jadi alurnya bisa menjadi:

Developer
   ↓
Git Push
   ↓
CI/CD
   ↓
Testing
   ↓
Build
   ↓
Deploy
   ↓
Production

CI/CD sangat berguna ketika sebuah tim melakukan deployment aplikasi secara rutin.

↑ Kembali ke Daftar Isi

3. Docker

Docker adalah teknologi yang memungkinkan aplikasi dijalankan di dalam container.

Container dapat membawa aplikasi beserta lingkungan dan dependency yang dibutuhkan.

Misalnya sebuah aplikasi membutuhkan PHP versi tertentu, extension tertentu, Composer, dan konfigurasi tertentu. Dengan Docker, lingkungan tersebut dapat didefinisikan sehingga aplikasi lebih konsisten ketika dijalankan di komputer developer maupun server.

Docker juga membantu mengurangi masalah klasik:

"Di komputer saya jalan."

Karena environment aplikasi dapat dibuat lebih konsisten.

↑ Kembali ke Daftar Isi

4. Kubernetes

Kubernetes atau sering disingkat K8s adalah platform untuk mengelola container, terutama ketika jumlah container dan service sudah semakin banyak.

Kalau Docker membantu menjalankan container, Kubernetes membantu mengatur container tersebut dalam skala besar.

Kubernetes dapat membantu melakukan:

  • Deployment aplikasi.
  • Scaling.
  • Restart container yang bermasalah.
  • Load balancing.
  • Rolling update.
  • Service discovery.

Analogi sederhananya:

Docker = kendaraan
Kubernetes = pengelola armada kendaraan

↑ Kembali ke Daftar Isi

5. Data Warehouse

Data Warehouse adalah sistem penyimpanan data yang dirancang terutama untuk analisis, reporting, dan Business Intelligence.

Berbeda dengan database aplikasi yang biasanya digunakan untuk transaksi sehari-hari, Data Warehouse digunakan untuk menganalisis data dalam jumlah besar dan dari berbagai sumber.

Misalnya sebuah organisasi memiliki data:

  • Data penduduk.
  • Data pendidikan.
  • Data pelayanan.
  • Data bantuan.
  • Data pajak.

Data dari berbagai sistem dapat dikumpulkan ke Data Warehouse untuk kemudian digunakan dalam dashboard dan analisis.

↑ Kembali ke Daftar Isi

6. Building for Scale

Istilah Building for Scale atau membangun sistem agar siap berkembang berarti sejak awal kita mempertimbangkan bahwa jumlah pengguna, transaksi, data, dan traffic mungkin akan bertambah.

Misalnya aplikasi hari ini hanya memiliki 100 pengguna. Kita tidak ingin desain aplikasinya langsung hancur ketika beberapa tahun kemudian jumlah pengguna menjadi 100.000.

Inilah yang berkaitan dengan konsep Scalability.

↑ Kembali ke Daftar Isi

7. Kanban

Kanban adalah metode pengelolaan pekerjaan secara visual.

Board Kanban sederhana biasanya terdiri dari:

TODO → IN PROGRESS → TESTING → DONE

Contohnya dalam pengembangan website:

  • TODO: Membuat halaman login.
  • IN PROGRESS: Membuat dashboard.
  • TESTING: Menguji API.
  • DONE: Membuat database.

Keuntungan Kanban adalah semua anggota tim dapat melihat status pekerjaan dengan cepat.

↑ Kembali ke Daftar Isi

8. Load Balancer

Load Balancer adalah komponen yang membagi request dari pengguna ke beberapa server.

Tanpa load balancer:

10.000 User
     ↓
  Server 1

Dengan load balancer:

             Load Balancer
            /      |      \
           ↓       ↓       ↓
       Server 1 Server 2 Server 3

Load balancer membantu membagi beban dan memungkinkan aplikasi menggunakan beberapa server sekaligus.

↑ Kembali ke Daftar Isi

9. Caching

Jika kamu menemukan istilah caching, jangan tertukar dengan "catching". Caching adalah teknik menyimpan data sementara agar data tersebut dapat diambil lebih cepat.

Misalnya sebuah query database membutuhkan waktu cukup lama. Jika hasil query tersebut tidak sering berubah, hasilnya dapat disimpan di cache.

Request
  ↓
Cache
  ↓
Jika tersedia → langsung dikembalikan
  ↓
Jika tidak → Database

Teknik caching sangat berguna untuk meningkatkan performa aplikasi.

↑ Kembali ke Daftar Isi

10. REST API

REST API adalah pendekatan populer untuk membuat API menggunakan konsep HTTP.

Contoh endpoint:

GET    /users
GET    /users/10
POST   /users
PUT    /users/10
DELETE /users/10

GET biasanya digunakan untuk mengambil data, POST untuk membuat data, PUT atau PATCH untuk memperbarui data, dan DELETE untuk menghapus data.

REST API banyak digunakan untuk menghubungkan frontend dan backend.

React
  ↓
REST API
  ↓
Backend
  ↓
Database

↑ Kembali ke Daftar Isi

11. Environment

Environment adalah lingkungan tempat aplikasi dijalankan.

Dalam pengembangan aplikasi biasanya dikenal:

  • Development — lingkungan untuk programmer.
  • Staging — lingkungan untuk pengujian sebelum production.
  • Production — sistem yang digunakan pengguna sebenarnya.

Misalnya konfigurasi database development dan production tentu bisa berbeda.

Karena itu aplikasi biasanya menggunakan environment variable untuk menyimpan konfigurasi.

↑ Kembali ke Daftar Isi

12. Redis

Redis adalah penyimpanan data berbasis memory yang terkenal karena kecepatannya.

Redis sering digunakan untuk:

  • Caching.
  • Session.
  • Queue.
  • Rate limiting.
  • Temporary data.
  • Pub/Sub.

Dalam aplikasi modern, Redis sering ditempatkan di antara aplikasi dan database untuk mempercepat akses data tertentu.

↑ Kembali ke Daftar Isi

13. Authentication

Authentication adalah proses untuk mengetahui dan memverifikasi identitas pengguna.

Pertanyaan sederhananya:

"Siapa kamu?"

Misalnya user memasukkan email dan password. Sistem kemudian memverifikasi apakah identitas tersebut benar.

Jangan tertukar dengan authorization.

  • Authentication: Siapa kamu?
  • Authorization: Kamu boleh melakukan apa?

↑ Kembali ke Daftar Isi

14. Raw SQL

Raw SQL berarti programmer menulis SQL secara langsung.

SELECT * FROM users
WHERE id = 10;

Raw SQL memberikan kontrol yang sangat besar terhadap query database.

Namun programmer harus memahami keamanan seperti SQL Injection dan penggunaan parameterized query.

↑ Kembali ke Daftar Isi

15. Scrum

Scrum adalah framework untuk pengembangan produk secara iteratif dan bertahap.

Dalam Scrum terdapat konsep seperti:

  • Product Owner.
  • Scrum Master.
  • Developers.
  • Product Backlog.
  • Sprint.
  • Daily Scrum.
  • Sprint Review.
  • Sprint Retrospective.

Scrum bukan hanya sekadar meeting setiap pagi. Scrum merupakan framework untuk membantu tim mengembangkan produk dalam siklus yang terstruktur.

↑ Kembali ke Daftar Isi

16. Sprint

Sprint adalah periode waktu tertentu ketika tim mengerjakan sekumpulan pekerjaan yang sudah direncanakan.

Misalnya sebuah tim menentukan Sprint selama dua minggu dengan target:

  • Login.
  • Register.
  • Dashboard.
  • User Management.

Setelah Sprint selesai, hasilnya ditinjau dan tim melakukan evaluasi sebelum melanjutkan pekerjaan berikutnya.

↑ Kembali ke Daftar Isi

17. GET Function atau GET Request

Jika istilah yang dimaksud adalah GET request, maka GET merupakan metode HTTP yang umumnya digunakan untuk mengambil data.

GET /api/users

Contoh lain:

GET /api/users/10

Artinya aplikasi meminta data user dengan ID 10.

GET berbeda dengan POST, PUT, PATCH, dan DELETE yang memiliki fungsi berbeda dalam komunikasi HTTP.

↑ Kembali ke Daftar Isi

18. Unit Testing

Unit Testing adalah pengujian terhadap bagian kecil dari program.

Misalnya terdapat fungsi:

function tambah($a, $b) {
    return $a + $b;
}

Kita dapat membuat test untuk memastikan:

tambah(2, 3) = 5

Dengan demikian programmer dapat mengetahui apakah fungsi kecil tersebut bekerja sesuai harapan.

↑ Kembali ke Daftar Isi

19. Automatic Testing

Automatic Testing adalah pengujian yang dilakukan secara otomatis oleh komputer.

Unit Testing adalah salah satu jenis automatic testing, tetapi automatic testing mempunyai cakupan lebih luas.

Contohnya:

  • Unit Test.
  • Integration Test.
  • API Test.
  • End-to-End Test.
  • Regression Test.

Automatic testing menjadi sangat berguna ketika digabungkan dengan CI/CD.

↑ Kembali ke Daftar Isi

20. Memcached

Memcached adalah sistem caching berbasis memory.

Konsep sederhananya:

Application
     ↓
Memcached
     ↓
Cached Data

Memcached dan Redis sama-sama dapat digunakan untuk caching, tetapi Redis memiliki kemampuan dan struktur data yang lebih kaya.

↑ Kembali ke Daftar Isi

21. Storage

Storage berarti tempat penyimpanan data.

Dalam aplikasi, storage dapat digunakan untuk menyimpan:

  • Foto.
  • Video.
  • Dokumen.
  • Backup.
  • File hasil upload.

Storage dapat berupa penyimpanan lokal server maupun object storage pada layanan cloud.

↑ Kembali ke Daftar Isi

22. UML

UML adalah singkatan dari Unified Modeling Language.

UML digunakan untuk memvisualisasikan dan mendokumentasikan sistem.

Beberapa diagram UML yang populer adalah:

  • Use Case Diagram.
  • Class Diagram.
  • Sequence Diagram.
  • Activity Diagram.
  • State Diagram.

UML membantu programmer dan tim memahami rancangan sistem sebelum implementasi dilakukan.

↑ Kembali ke Daftar Isi

23. GraphQL

GraphQL adalah query language untuk API.

Pada REST, client biasanya mengambil data melalui beberapa endpoint. Dengan GraphQL, client dapat menentukan data apa saja yang ingin diterima.

query {
  user(id: 10) {
    name
    posts {
      title
    }
  }
}

GraphQL banyak digunakan ketika kebutuhan pengambilan data dari client cukup kompleks.

↑ Kembali ke Daftar Isi

24. Git

Git adalah version control system.

Git digunakan untuk mencatat perubahan kode dari waktu ke waktu.

Contoh perintah Git:

git add .
git commit -m "Tambah fitur login"
git push

Dengan Git, programmer dapat melihat riwayat perubahan dan bekerja bersama anggota tim.

Perlu diingat bahwa Git berbeda dengan GitHub. Git adalah version control system, sedangkan GitHub adalah platform yang menggunakan Git untuk hosting repository dan kolaborasi.

↑ Kembali ke Daftar Isi

25. gRPC

gRPC adalah framework komunikasi antar service yang sering digunakan dalam sistem modern, terutama microservices.

Contohnya:

Order Service
      ↓
     gRPC
      ↓
Payment Service

gRPC umumnya menggunakan Protocol Buffers atau Protobuf untuk mendefinisikan struktur data dan kontrak komunikasi.

↑ Kembali ke Daftar Isi

26. Monolith

Monolith adalah arsitektur ketika berbagai fungsi aplikasi berada dalam satu aplikasi utama.

Application
 ├── Login
 ├── User
 ├── Product
 ├── Order
 ├── Payment
 └── Report

Monolith tidak otomatis berarti buruk.

Untuk aplikasi kecil dan menengah, monolith justru sering lebih sederhana untuk dikembangkan, dideploy, dan dipelihara.

↑ Kembali ke Daftar Isi

27. Microservices

Microservices adalah pendekatan arsitektur yang memecah aplikasi menjadi beberapa service yang relatif independen.

User Service
Order Service
Payment Service
Notification Service

Setiap service dapat mempunyai tanggung jawab yang berbeda.

Kelebihannya adalah service tertentu dapat dikembangkan dan di-scale secara independen.

Namun microservices juga menambah kompleksitas karena kita harus menangani networking, monitoring, deployment, komunikasi antar-service, distributed transaction, dan berbagai persoalan sistem terdistribusi lainnya.

↑ Kembali ke Daftar Isi

28. RBAC

RBAC adalah singkatan dari Role-Based Access Control.

Hak akses pengguna ditentukan berdasarkan role.

Contohnya dalam aplikasi pemerintahan:

Super Admin
Admin OPD
Operator
Viewer

Masing-masing role dapat memiliki permission yang berbeda.

↑ Kembali ke Daftar Isi

29. JWT

JWT adalah singkatan dari JSON Web Token.

JWT sering digunakan dalam authentication API.

Alur sederhananya:

Login
  ↓
Server memverifikasi user
  ↓
Server membuat JWT
  ↓
Client menerima token
  ↓
Request berikutnya membawa token

JWT umumnya memiliki tiga bagian:

Header.Payload.Signature

JWT sering digunakan pada aplikasi web, mobile application, dan REST API.

Namun menggunakan JWT tidak otomatis membuat aplikasi aman. Sistem tetap membutuhkan HTTPS, validasi signature, expiry, pengelolaan token, dan mekanisme keamanan lainnya.

↑ Kembali ke Daftar Isi

30. Indexing

Indexing dalam database adalah teknik membuat indeks agar pencarian data dapat dilakukan lebih efisien.

Misalnya tabel users memiliki kolom email dan aplikasi sering melakukan pencarian berdasarkan email.

SELECT * FROM users
WHERE email = 'armin@example.com';

Kolom email dapat diberikan index agar database lebih mudah menemukan data yang dicari.

Namun index bukan berarti semakin banyak semakin baik. Index membutuhkan storage dan dapat menambah biaya pada operasi INSERT dan UPDATE.

↑ Kembali ke Daftar Isi

31. ORM

ORM adalah singkatan dari Object-Relational Mapping.

ORM memungkinkan programmer berinteraksi dengan database melalui model atau object.

Contohnya pada Laravel:

User::where('email', $email)->first();

Daripada menulis SQL secara langsung untuk setiap operasi.

ORM dapat membuat kode aplikasi lebih nyaman dibaca dan meningkatkan produktivitas programmer.

↑ Kembali ke Daftar Isi

32. Query Builder

Query Builder adalah cara membangun query database melalui API pemrograman.

Contohnya:

DB::table('users')
    ->where('status', 'active')
    ->get();

Secara konsep Query Builder berada di antara Raw SQL dan ORM.

Raw SQL
   ↓
Query Builder
   ↓
ORM

Namun ketiganya bukan berarti harus dipilih salah satu secara mutlak. Dalam proyek nyata, ketiganya bisa digunakan sesuai kebutuhan.

↑ Kembali ke Daftar Isi

33. Scalability

Scalability adalah kemampuan sistem untuk menangani pertumbuhan beban.

Misalnya aplikasi berkembang:

100 user
   ↓
1.000 user
   ↓
10.000 user
   ↓
100.000 user

Ada dua pendekatan scaling yang umum.

Vertical Scaling

Server diperbesar.

2 CPU → 8 CPU
4 GB RAM → 32 GB RAM

Horizontal Scaling

Server ditambah.

Server 1
Server 2
Server 3
Server 4

Horizontal scaling biasanya berkaitan erat dengan load balancer dan arsitektur aplikasi yang dapat dijalankan pada beberapa instance.

↑ Kembali ke Daftar Isi

34. Observability

Observability adalah kemampuan untuk memahami kondisi internal sebuah sistem berdasarkan data yang dihasilkan oleh sistem tersebut.

Tiga komponen yang sangat umum adalah:

  • Logs — catatan kejadian dalam aplikasi.
  • Metrics — angka atau statistik sistem.
  • Traces — perjalanan sebuah request melalui berbagai service.

Contohnya ketika sebuah API terasa lambat, observability membantu menjawab:

"Bagian mana yang sebenarnya membuat request menjadi lambat?"

↑ Kembali ke Daftar Isi

35. Site Reliability dan SRE

Jika istilah yang dimaksud adalah Site Reliability, biasanya kita akan bertemu dengan istilah SRE atau Site Reliability Engineering.

SRE berfokus pada bagaimana menjaga sistem tetap reliable, available, performant, dan mampu menangani pertumbuhan.

Hal-hal yang sering berkaitan dengan SRE antara lain:

  • Monitoring.
  • Alerting.
  • Incident Response.
  • Automation.
  • Capacity Planning.
  • Reliability.

↑ Kembali ke Daftar Isi

36. Full Request

Full Request bukan satu istilah teknis dengan definisi tunggal. Dalam konteks HTTP, istilah tersebut dapat digunakan untuk menyebut keseluruhan detail sebuah HTTP request.

Misalnya:

POST /api/users HTTP/1.1

Host: example.com
Authorization: Bearer xxx
Content-Type: application/json

{
    "name": "Armin"
}

Secara sederhana, HTTP request dapat memiliki:

  • Method.
  • URL atau endpoint.
  • Headers.
  • Body.

Jadi ketika developer mengatakan "show me the full request", biasanya maksudnya adalah menampilkan seluruh detail request, bukan hanya URL atau data body.

↑ Kembali ke Daftar Isi

Bagaimana Semua Istilah IT Ini Saling Berhubungan?

Bagian ini sebenarnya jauh lebih penting daripada menghafalkan definisi masing-masing istilah.

Bayangkan kita sedang membangun aplikasi modern.

                    USER
                      │
                      ▼
               LOAD BALANCER
                      │
          ┌───────────┴───────────┐
          ▼                       ▼
      SERVER 1                SERVER 2
          │                       │
          └───────────┬───────────┘
                      ▼
                    API
                      │
          ┌───────────┴───────────┐
          ▼                       ▼
        REDIS                  DATABASE
       CACHING                     │
                                   ▼
                            DATA WAREHOUSE

Pada sisi development:

Developer
    │
    ▼
   Git
    │
    ▼
  CI/CD
    │
    ├── Unit Testing
    ├── Automatic Testing
    │
    ▼
 Docker
    │
    ▼
Kubernetes

Pada sisi arsitektur, aplikasi dapat menggunakan pendekatan:

Monolith
    atau
Microservices

Komunikasi antar aplikasi atau service dapat menggunakan:

  • REST API.
  • GraphQL.
  • gRPC.

Keamanannya dapat menggunakan:

Authentication
      ↓
JWT
      ↓
RBAC

Sementara sisi database dapat menggunakan:

Raw SQL
Query Builder
ORM
Indexing

Dan ketika aplikasi semakin besar, kita mulai membutuhkan:

Scalability
     ↓
Load Balancer
     ↓
Horizontal Scaling
     ↓
Observability
     ↓
Site Reliability / SRE

↑ Kembali ke Daftar Isi

Kesimpulan

Kalau kamu baru mulai masuk lebih serius ke dunia backend, DevOps, cloud, atau software architecture, jangan mencoba menghafalkan semua istilah IT sekaligus.

Lebih baik pahami hubungan antar konsepnya.

Misalnya:

  • Git digunakan untuk version control.
  • CI/CD mengotomatisasi proses testing dan deployment.
  • Docker digunakan untuk menjalankan aplikasi dalam container.
  • Kubernetes membantu mengelola banyak container.
  • Redis dapat digunakan untuk caching dan kebutuhan data cepat.
  • Load Balancer membagi traffic ke beberapa server.
  • REST API, GraphQL, dan gRPC digunakan untuk komunikasi antar aplikasi atau service.
  • ORM dan Query Builder membantu programmer berinteraksi dengan database.
  • Indexing membantu mempercepat pencarian database.
  • JWT dan RBAC berkaitan dengan authentication dan authorization.
  • Unit Testing dan Automatic Testing membantu memastikan software bekerja sesuai harapan.
  • Observability dan SRE membantu menjaga sistem tetap dapat dipantau dan reliable.
  • Scalability berkaitan dengan kemampuan sistem menghadapi pertumbuhan.

Yang menarik, semakin dalam kamu masuk ke dunia programming, semakin terasa bahwa programming sebenarnya bukan cuma soal menulis kode.

Menulis:

if
else
for
function
class

itu baru sebagian kecil dari pekerjaan software engineering.

Ketika aplikasi mulai digunakan banyak orang, kita mulai berhadapan dengan database, caching, security, testing, deployment, monitoring, scaling, architecture, dan reliability.

Itulah alasan mengapa istilah-istilah seperti Docker, Kubernetes, Redis, CI/CD, REST API, Microservices, ORM, JWT, RBAC, Scalability, dan Observability semakin sering muncul dalam dunia kerja IT modern.

Dan menurut saya, cara terbaik mempelajarinya bukan dengan menghafalkan definisinya, tetapi dengan membangun sebuah aplikasi dan melihat sendiri kapan masing-masing teknologi tersebut benar-benar dibutuhkan.

↑ Kembali ke Daftar Isi

Diskusi & Komentar