Belajar PowerShell - Variables & Data Types
Episode 3 of 31

Belajar PowerShell - Variables & Data Types

Memahami cara menyimpan dan mengelola data di PowerShell: variabel dengan $nama, variabel otomatis dan preferensi, tipe data dari string, angka, boolean, datetime, array, dan hashtable, teknik casting, manipulasi string dengan interpolasi dan here-string, format operator, serta perbedaan array, ArrayList, dan generic List.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 2 kalian sudah berbicara dengan PowerShell lewat cmdlet Verb-Noun. Sekarang tiba saatnya menyentuh bahan baku semua script: data. Setiap script — sekecil apa pun — pada akhirnya membaca data, menyimpannya, memodifikasinya, lalu menampilkan hasilnya. Episode 3 ini membekali kalian dengan bahasa untuk mengelola data itu: variabel dan tipe data.

Anggap variabel sebagai kotak berlabel di meja kerja — kalian menaruh, memberi nama, dan mengambil kembali sesuatu kapan saja. Sedangkan tipe data adalah jenis isi kotak: teks, angka, daftar, atau pasangan kunci-nilai. Memahami keduanya menentukan seberapa halus kalian mengendalikan script.

Variabel

Variabel di PowerShell selalu diawali tanda dolar. Nama variabel tidak peka huruf besar/kecil$nama sama dengan $NAMA — dan tidak boleh mengandung spasi atau diawali angka. Buat dan pakai variabel pertama kalian:

Variabel pertama
$nama = "Arman"
$usia = 28
Write-Host "Halo, $nama"

Variabel Otomatis

PowerShell menyediakan variabel bawaan yang selalu ada dan diisi otomatis oleh sistem. Tiga yang paling sering kalian jumpai:

VariabelIsiContoh Penggunaan
$PSVersionTableInformasi engine PowerShellCek versi dan edisi
$_Item saat ini di pipelineParameter di Where-Object
$argsArgumen fungsi/scriptMembaca parameter posisi

$_ khususnya adalah sahabat pipeline — di episode episode fungsi dan pipeline, kalian akan memakainya terus. Sebagai latihan cepat, lihat isi $PSVersionTable.PSVersion di console kalian.

Variabel Preferensi

Variabel preferensi mengubah perilaku default sesi. Dua yang paling berpengaruh:

VariabelMengontrolNilai Umum
$ErrorActionPreferenceBagaimana error ditanganiContinue, Stop, SilentlyContinue
$VerbosePreferenceSeberapa detail pesan verboseSilentlyContinue, Continue

Misalnya, agar script berhenti segera saat error, atur $ErrorActionPreference = "Stop" di awal — perintah yang gagal akan menghentikan eksekusi.

Variabel Lingkungan

Prefix $env: membaca variabel lingkungan Windows — data yang tersedia untuk semua proses, seperti siapa pengguna yang login. Coba $env:USERNAME untuk nama pengguna aktif dan $env:PATH untuk daftar folder program — sangat berguna untuk script yang menyesuaikan path per pengguna.

Tipe Data

Setiap nilai di PowerShell memiliki tipe. Prefix dengan [tipe] memperjelas atau memaksa interpretasi:

TipeAcceleratorContoh Nilai
Teks[string]"Halo dunia"
Bilangan bulat[int]42
Bilangan besar[int64]9223372036854775807
Bilangan desimal[double]3.14
Presisi tinggi[decimal]0.99
Kebenaran[bool]$true, $false
Waktu & tanggal[datetime]2026-08-03
Daftar nilai[array]1, 2, 3
Pasangan kunci-nilai[hashtable]nama menuju nilai
Objek kustom[PSCustomObject]Objek buatan sendiri

Cek tipe sebuah nilai dengan GetType():

Memeriksa tipe data
(42).GetType().Name
(3.14).GetType().Name
("teks").GetType().Name

Casting

Casting memaksa sebuah nilai berubah tipe — penting karena perilaku operasi tergantung tipe: 1 + 2 menghasilkan 3, sedangkan "1" + "2" menghasilkan teks "12":

Casting tipe data
[int]"42"
[string]42
[int]$false
[datetime]"2026-08-03"

Casting bukan hanya konversi — ia juga validasi. [int]"abc" akan error karena "abc" bukan angka. Ini berguna untuk memvalidasi input di script nanti.

String

String adalah tipe yang paling sering dipakai, jadi kuasai cara memanipulasinya.

Concatenation dan Interpolasi

Menggabungkan string bisa dengan tanda + atau langsung menyisipkan variabel dalam tanda kutip ganda:

Concatenation vs interpolasi
$depan = "Arman"
$gabungan = $depan + " Dwi"
$selamat = "Halo, $depan"
Write-Host $gabungan
Write-Host $selamat

Interpolasi dengan kutip ganda hanya terjadi jika variabel berada di dalam kutip ganda; kutip tunggal menganggap semuanya teks mentah.

Here-String: Teks Banyak Baris

Untuk teks panjang dengan banyak baris, here-string adalah jawabannya — bentuknya dibuka dan ditutup tiga kutip. Buka dan tutup dengan kutip ganda jika kalian ingin variabel diinterpolasi, atau kutip tunggal jika semuanya harus dianggap teks literal:

Here-string dengan interpolasi
$nama = "Arman"
$surat = @"
Halo $nama,
 
Ini isi surat yang panjang.
Variabel $nama akan diinterpolasi di sini.
"@
 
Write-Host $surat

Varian kutip tunggal (dibuka dan ditutup @' dan '@) bekerja identik, kecuali satu hal: $nama di dalamnya dibaca sebagai teks biasa, bukan variabel. Pilih sesuai kebutuhan — interpolasi untuk template, literal untuk kode yang ingin ditampilkan apa adanya.

Method dan Format

Setiap string punya method bawaan .NET untuk manipulasi: .ToUpper() mengubah ke huruf besar, .Replace() mengganti potongan teks, .Trim() membuang spasi di pinggir, dan .Length memberi tahu panjang teks:

Method string
$kata = "PowerShell"
$kata.ToUpper()
$kata.Replace("Shell", "Awan")
"  rapi  ".Trim()
$kata.Length

Operator format -f menyisipkan nilai ke posisi yang sudah ditentukan — alternatif yang bersih untuk interpolasi yang rumit:

Operator format
$tahun = 2026
"Belajar {0} dimulai tahun {1}" -f "PowerShell", $tahun

Perbandingan String

Perbandingan string di PowerShell tidak peka huruf besar/kecil secara default — "Powershell" -eq "powershell" bernilai $true. Jika kalian butuh pembandingan yang sensitif, tambahkan huruf c: -ceq. Detail ini mencegah bug klasik saat memfilter data.

Array

Array adalah koleksi nilai berurutan. Buat, indeks, dan hitung isinya:

Array dasar
$buah = @("Apel", "Mangga", "Pisang")
$buah[0]
$buah.Count
$buah[0..1]

Indeks dimulai dari nol: $buah[0] mengambil elemen pertama. Operator .. membuat rentang, sehingga $buah[0..1] mengambil dua elemen pertama sekaligus.

Menambah Elemen

Array standar bersifat tetap panjang, jadi menambah elemen berarti membuat array baru:

Menambah elemen array
$buah = @("Apel", "Mangga")
$buah += "Pisang"
$buah.Count

Sintaks += sederhana, tapi untuk penambahan ribuan kali, menyalin ulang seluruh array menjadi lambat. Untuk skenario itu, gunakan ArrayList atau generic List:

ArrayList untuk penambahan massal
$daftar = [System.Collections.ArrayList]::new()
[void]$daftar.Add("Apel")
[void]$daftar.Add("Mangga")
$daftar.Count

Aturan praktisnya: array @(...) untuk koleksi statis, ArrayList/List untuk koleksi yang tumbuh dinamis. [void] di depan .Add() menekan output method agar tidak memenuhi layar.

Note

[hashtable] dan [PSCustomObject] akan dibedah dalam di episode episode pipeline dan object manipulation. Konsep kuncinya sejak sekarang: array untuk daftar berurutan, hashtable untuk pencarian cepat berdasar kunci, dan objek kustom untuk membentuk data dengan properti bernama yang rapi.

Penutup

Episode 3 ini memberi kalian kendali atas data: variabel $nama, variabel otomatis dan preferensi, tipe data dari string hingga hashtable, casting untuk konversi dan validasi, seni manipulasi string dengan interpolasi, here-string, method, dan format operator, serta array dengan segala variannya.

Inti yang harus kalian bawa:

  • Variabel adalah kotak berlabel; $_, $PSVersionTable, dan $env: adalah yang paling sering kalian temui.
  • Tipe menentukan perilaku — casting [int] dan [string] mengubah cara operasi bekerja.
  • Interpolasi hanya terjadi di kutip ganda; here-string untuk teks banyak baris.
  • Perbandingan string tidak peka huruf besar/kecil secara default.
  • Array @(...) untuk koleksi statis; ArrayList/List untuk koleksi yang tumbuh.

Di episode 4 selanjutnya kita mempelajari operators & expressions — aritmatika, perbandingan, logika, assignment, redirection, dan operator khusus seperti dot-sourcing, range, serta format. Ini adalah "mesin" yang menggerakkan data yang baru saja kalian kuasai. Sampai jumpa di episode 4!