Environment Variable dalam Pemrograman: Fungsi dan Cara Menggunakannya

Ketika membuat sebuah aplikasi, programmer sering berhadapan dengan berbagai informasi yang dibutuhkan oleh program agar dapat berjalan. Contohnya adalah alamat database, API key, port server, nama aplikasi, hingga konfigurasi tertentu.

Informasi tersebut sebaiknya tidak selalu ditulis langsung di dalam source code. Salah satu cara yang umum digunakan untuk menyimpan konfigurasi tersebut adalah menggunakan environment variable.

Bagi developer yang baru belajar pemrograman, istilah ini mungkin terdengar cukup teknis. Padahal, konsepnya cukup sederhana dan banyak digunakan dalam pengembangan aplikasi modern.

Apa Itu Environment Variable?

Environment variable adalah sebuah nilai yang disimpan pada lingkungan tempat sebuah program dijalankan dan dapat dibaca oleh aplikasi ketika dibutuhkan.

Contohnya, sebuah aplikasi membutuhkan alamat database:

DATABASE_URL=localhost

Daripada menulis konfigurasi tersebut langsung di source code, aplikasi dapat mengambil nilainya dari environment variable.

Dengan pendekatan ini, konfigurasi aplikasi dapat dipisahkan dari kode program.

Mengapa Environment Variable Digunakan?

Ada beberapa alasan mengapa environment variable sering digunakan dalam pengembangan software.

1. Memisahkan Konfigurasi dari Source Code

Bayangkan sebuah aplikasi memiliki konfigurasi seperti:

const databaseHost = "localhost";

Jika aplikasi dipindahkan ke server production, konfigurasi tersebut mungkin perlu diubah.

Dengan environment variable, kode program tidak harus diubah. Nilainya dapat disesuaikan berdasarkan lingkungan tempat aplikasi dijalankan.

Contohnya:

DATABASE_HOST=localhost

Pada server production, nilainya dapat berbeda:

DATABASE_HOST=production-server

Source code tetap dapat menggunakan nama variabel yang sama.

2. Mengurangi Risiko Membagikan Data Sensitif

Aplikasi terkadang membutuhkan informasi yang tidak seharusnya ditulis langsung di source code, seperti:

  • API key
  • Database password
  • Secret key
  • Access token
  • Credential tertentu

Contohnya:

API_KEY=xxxxxxxx

Kemudian aplikasi mengambil nilai tersebut melalui environment variable.

Meskipun demikian, environment variable bukan berarti otomatis membuat credential aman. Developer tetap perlu memperhatikan bagaimana credential disimpan dan siapa yang memiliki akses terhadap environment tempat aplikasi berjalan.

Environment Variable pada Node.js

Node.js menyediakan objek process.env untuk membaca environment variable.

Misalnya:

const port = process.env.PORT || 3000;

console.log(`Server berjalan di port ${port}`);

Jika environment variable PORT tersedia, aplikasi akan menggunakan nilai tersebut.

Jika tidak tersedia, program menggunakan nilai 3000.

Contohnya ketika menjalankan aplikasi:

PORT=5000 node server.js

Server kemudian dapat membaca nilai:

process.env.PORT

dan mendapatkan:

5000

Menggunakan File .env

Dalam banyak project JavaScript dan Node.js, developer juga sering menggunakan file .env untuk menyimpan konfigurasi lokal.

Contohnya:

PORT=3000
DATABASE_URL=localhost
API_KEY=contoh_api_key

Aplikasi kemudian dapat membaca nilai tersebut menggunakan library seperti dotenv.

Contoh instalasi:

npm install dotenv

Kemudian pada aplikasi:

require("dotenv").config();

console.log(process.env.PORT);

Jika file .env berisi:

PORT=3000

maka program dapat mengambil nilai tersebut melalui:

process.env.PORT

Jangan Sembarangan Mengunggah File .env

Salah satu kesalahan yang cukup sering terjadi pada project pemula adalah memasukkan file .env ke repository Git.

Misalnya file .env berisi:

DATABASE_PASSWORD=password123
API_KEY=abcdef123456

Jika file tersebut ikut diunggah ke repository publik, informasi tersebut berpotensi diketahui oleh orang lain.

Karena itu, file .env biasanya dimasukkan ke dalam .gitignore.

Contohnya:

.env

Dengan begitu Git tidak memasukkan file .env ke dalam repository.

Environment Variable untuk Development dan Production

Salah satu manfaat environment variable adalah mempermudah penggunaan konfigurasi berbeda untuk setiap lingkungan.

Misalnya aplikasi memiliki tiga lingkungan:

Development

API_URL=http://localhost:3000

Testing

API_URL=http://testing-server

Production

API_URL=https://api.example.com

Kode aplikasi tetap dapat menggunakan:

const apiUrl = process.env.API_URL;

Tanpa harus mengubah source code setiap kali aplikasi berpindah lingkungan.

Environment Variable pada Frontend

Environment variable tidak hanya digunakan pada backend.

Framework frontend seperti React, Next.js, dan berbagai tools JavaScript juga memiliki mekanisme untuk menggunakan konfigurasi berdasarkan environment.

Namun, developer harus berhati-hati.

Jika sebuah environment variable digunakan dalam kode frontend dan akhirnya dikirim ke browser, nilainya bukan lagi rahasia.

Jadi jangan menyimpan password database atau secret credential di environment variable yang memang akan diekspos ke browser.

Contoh Penggunaan dalam Project

Misalnya kita membuat REST API menggunakan Node.js.

Struktur sederhananya:

project/
├── server.js
├── package.json
├── .env
└── .gitignore

Isi .env:

PORT=3000
DATABASE_URL=localhost

Isi .gitignore:

node_modules/
.env

Kemudian server.js:

require("dotenv").config();

const port = process.env.PORT;

console.log(`Server berjalan pada port ${port}`);

Ketika aplikasi dijalankan, Node.js akan membaca konfigurasi dari environment yang tersedia.

Dengan cara ini, konfigurasi tidak perlu ditulis langsung di dalam source code.

Kesalahan yang Sering Dilakukan Pemula

Ada beberapa kesalahan yang perlu diperhatikan ketika menggunakan environment variable.

Menulis Secret Langsung di Source Code

Contoh:

const apiKey = "123456789";

Cara seperti ini sebaiknya dihindari untuk credential yang bersifat sensitif.

Lupa Menambahkan .env ke .gitignore

File .env yang berisi credential dapat ikut masuk ke repository jika tidak dikecualikan.

Salah Menulis Nama Variable

Misalnya .env berisi:

DATABASE_URL=localhost

Tetapi kode menggunakan:

process.env.DB_URL

Hasilnya tentu tidak sesuai karena nama variabel berbeda.

Menganggap Semua Environment Variable Rahasia

Tidak semua environment variable bersifat rahasia.

Nilai seperti:

APP_NAME=MyApp
PORT=3000

tidak sama tingkat sensitivitasnya dengan password atau private key.

Yang penting adalah memahami apakah nilai tersebut nantinya dapat diakses oleh pengguna atau tidak.

Kesimpulan

Environment variable merupakan konsep penting dalam pengembangan software karena membantu memisahkan konfigurasi aplikasi dari source code.

Teknologi ini dapat digunakan untuk menyimpan berbagai konfigurasi seperti port server, alamat API, konfigurasi database, hingga credential tertentu.

Penggunaan environment variable juga membantu ketika aplikasi memiliki beberapa lingkungan seperti development, testing, dan production.

Namun, environment variable tetap harus digunakan dengan benar. Credential sensitif tidak boleh dimasukkan ke repository publik, file .env sebaiknya dikecualikan melalui .gitignore, dan developer perlu memahami apakah suatu variable akan terekspos ke client atau tidak.

Dengan memahami konsep ini sejak awal, developer dapat membangun project yang lebih mudah dikonfigurasi dan dikelola ketika aplikasi berkembang.

https://ngodingdaily.my.id

Leave a Reply

Your email address will not be published. Required fields are marked *