Selasa, 19 Mei 2026
Sumber: NASA Earth Observatory, Jesse Allen / TRMM team (Heavy Rainfall Floods Indonesia)
Mengapa Vortisitas dan Divergensi Penting untuk Indonesia
Dua kuantitas paling sering muncul dalam analisis sinoptik tropika adalah vortisitas relatif (relative vorticity) dan divergensi horizontal (horizontal divergence). Keduanya bukan sekadar abstraksi matematika — mereka adalah penanda langsung apakah suatu kolom udara sedang berotasi siklonik atau antisiklonik, dan apakah udara di permukaan sedang menyatu (konvergen) atau menyebar.
Indonesia dan Benua Maritim adalah salah satu pusat konveksi tropis terbesar di dunia. Setiap hari, thunderstorm di atas Sumatra, Kalimantan, dan Papua menyuntikkan energi dan uap air dalam jumlah masif ke sirkulasi atmosfer global. Ketika MJO (Madden-Julian Oscillation) memasuki fase aktif di atas wilayah ini, angin permukaan berkonvergensi kuat sementara angin lapisan atas berdivergent — kombinasi inilah yang mendorong gerak vertikal ke atas dan memicu curah hujan ekstrem. Januari 2008 adalah contoh nyata: fase MJO aktif yang bersamaan dengan La Niña menghasilkan curah hujan lebih dari 250 mm di sekitar Jawa dalam kurun sepekan, memicu banjir besar.
Di Kalimantan barat laut, ada satu fitur dinamik yang secara rutin memperlihatkan vortisitas tinggi: Borneo Vortex, sirkulasi siklonik skala sinoptik di lapisan 925–700 hPa yang aktif selama musim dingin boreal (Oktober–Maret). Vorteks ini terbentuk akibat shear angin antara monsun timur laut dan penghalang topografi pegunungan Borneo, dan tercatat jelas dalam data ERA5.
Tutorial ini menunjukkan cara menghitung vortisitas relatif dan divergensi horizontal langsung dari komponen angin \(u\) dan \(v\) ERA5, menggunakan finite difference dengan koreksi proyeksi yang tepat. Semua data sudah tersedia di cache lokal /data/era5/ — tidak perlu koneksi ke CDS.
Mempersiapkan Data ERA5 dari Cache Lokal
ERA5 menyimpan komponen angin zonal \(u\) dan meridional \(v\) pada dua level utama yang kita butuhkan: angin 10 m di permukaan (single-level, 6-hourly) dan angin di lapisan tekanan 850 hPa (pressure-level, harian 00 UTC). Resolusi spasial ERA5 adalah \(0{,}25°\times 0{,}25°\), setara sekitar 28 km (ERA5 documentation), yang cukup untuk meresolusi sistem skala sinoptik seperti Borneo Vortex.
Kita buka keempat file sekaligus dan periksa struktur dimensinya sebelum masuk ke perhitungan. Perhatikan nama variabel yang digunakan: u dan v untuk pressure-level, u10 dan v10 untuk surface wind.
import xarray as xr
import numpy as np
# Buka file pressure-level (500 & 850 hPa, harian)
ds_u_pl = xr.open_dataset("/data/era5/era5_u_pl500-850_indonesia_2024_d.nc")
ds_v_pl = xr.open_dataset("/data/era5/era5_v_pl500-850_indonesia_2024_d.nc")
# Buka file surface wind (10 m, 6-hourly)
ds_u10 = xr.open_dataset("/data/era5/era5_u10_indonesia_2024_6h.nc")
ds_v10 = xr.open_dataset("/data/era5/era5_v10_indonesia_2024_6h.nc")
# Seleksi 850 hPa
u850 = ds_u_pl['u'].sel(pressure_level=850)
v850 = ds_v_pl['v'].sel(pressure_level=850)
# Surface wind
u10 = ds_u10['u10']
v10 = ds_v10['v10']
print("=== 850 hPa wind (pressure-level) ===")
print(f"u850 dims : {dict(u850.sizes)}")
print(f"u850 lat : {float(u850.latitude.min()):.2f} .. {float(u850.latitude.max()):.2f} deg")
print(f"u850 lon : {float(u850.longitude.min()):.2f} .. {float(u850.longitude.max()):.2f} deg")
print(f"u850 time : {str(u850.valid_time.values[0])[:10]} .. {str(u850.valid_time.values[-1])[:10]}")
print(f"u850 shape : {u850.shape}")
print("\n=== 10 m surface wind ===")
print(f"u10 dims : {dict(u10.sizes)}")
print(f"u10 shape : {u10.shape}")
print(f"u10 time : {str(u10.valid_time.values[0])[:10]} .. {str(u10.valid_time.values[-1])[:10]}")
print(f"u10 units : {u10.attrs.get('units','m/s')}")
=== 850 hPa wind (pressure-level) ===
u850 dims : {'valid_time': 366, 'latitude': 69, 'longitude': 185}
u850 lat : -11.00 .. 6.00 deg
u850 lon : 95.00 .. 141.00 deg
u850 time : 2024-01-01 .. 2024-12-31
u850 shape : (366, 69, 185)
=== 10 m surface wind ===
u10 dims : {'valid_time': 1464, 'latitude': 69, 'longitude': 185}
u10 shape : (1464, 69, 185)
u10 time : 2024-01-01 .. 2024-12-31
u10 units : m s**-1
Output di atas memperlihatkan dimensi dan rentang waktu masing-masing dataset. Data pressure-level bersifat harian (366 time step untuk 2024), sementara surface wind tersedia 6-hourly (1464 time step). Kedua dataset memakai satuan m s\(^{-1}\).
Menghitung Vortisitas Relatif pada 850 hPa
Vortisitas relatif (relative vorticity) \(\zeta\) mengukur rotasi lokal massa udara relatif terhadap Bumi. Definisi standarnya dalam koordinat Cartesian:
$$\zeta = \frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}$$
Di mana \(u\) adalah komponen angin zonal (barat–timur) dan \(v\) adalah komponen angin meridional (selatan–utara). Vortisitas mutlak (absolute vorticity) \(\eta\) menambahkan parameter Coriolis \(f\):
$$\eta = \zeta + f, \quad f = 2\Omega \sin\varphi$$
Konvensi tanda penting dipahami sejak awal. Secara matematis, nilai \(\zeta\) positif menandakan rotasi berlawanan arah jarum jam — siklonik di Belahan Bumi Utara (BBU), tetapi antisiklonik di Belahan Bumi Selatan (BBS). Karena sebagian besar Indonesia berada di selatan ekuator, vortisitas siklonik di BBS bernilai negatif secara matematis (NOAA JetStream). Kalimantan utara dan bagian utara Sumatra berada di BBU, sehingga konvensinya berbalik. Untuk menghindari kebingungan, gunakan istilah "siklonik" dan "antisiklonik" — bukan "positif" atau "negatif" saja.
Diagram berikut merangkum alur perhitungan dari komponen angin mentah hingga interpretasi vortisitas:
Alur perhitungan vortisitas relatif dari data angin ERA5 hingga interpretasi siklonik/antisiklonik berdasarkan belahan bumi.
Pada grid reguler \(0{,}25°\), turunan \(\partial/\partial x\) tidak bisa langsung dihitung dalam derajat — perlu dikonversi ke meter dengan faktor koreksi proyeksi. Untuk arah zonal: bagi dengan \(R_{\oplus} \cos\varphi\,\Delta\lambda_{\text{rad}}\). Untuk arah meridional: bagi dengan \(R_{\oplus}\,\Delta\varphi_{\text{rad}}\).
R_earth = 6.371e6 # meter
dlat = np.deg2rad(0.25)
dlon = np.deg2rad(0.25)
# Ambil satu time slice (hari ke-14 Januari 2024, indeks 13) untuk analisis
u_slice = u850.isel(valid_time=13).values # shape (lat, lon)
v_slice = v850.isel(valid_time=13).values
lats = u850.latitude.values # 1-D array, deg
lons = u850.longitude.values # 1-D array, deg
lat_rad = np.deg2rad(lats)
# dx bervariasi dengan latitude (koreksi cos); dy konstan
# shape: (lat, 1) agar broadcasting ke (lat, lon)
dx = (R_earth * np.cos(lat_rad) * dlon).reshape(-1, 1)
dy = R_earth * dlat # skalar
# Gradient numerik (orde-2 central difference, numpy.gradient)
# np.gradient(f, axis) mengembalikan ∂f/∂(indeks); bagi dengan spacing dalam meter
dv_dx = np.gradient(v_slice, axis=1) / dx # ∂v/∂x
du_dy = np.gradient(u_slice, axis=0) / dy # ∂u/∂y
vor850_slice = dv_dx - du_dy # s^-1
vor850_day14 = xr.DataArray(
vor850_slice,
coords={"latitude": lats, "longitude": lons},
dims=["latitude", "longitude"]
)
print(f"Vortisitas 850 hPa — 14 Jan 2024")
print(f" Max (antisiklonik kuat BBU / siklonik kuat BBS): {vor850_slice.max():.3e} s^-1")
print(f" Min (siklonik kuat BBU / antisiklonik BBS) : {vor850_slice.min():.3e} s^-1")
print(f" Mean : {vor850_slice.mean():.3e} s^-1")
print(f" Std : {vor850_slice.std():.3e} s^-1")
# Lokasi nilai minimum (paling siklonik di BBU)
idx_min = np.unravel_index(np.argmin(vor850_slice), vor850_slice.shape)
lat_min = lats[idx_min[0]]
lon_min = lons[idx_min[1]]
print(f"\nGrid paling negatif: lat={lat_min:.2f}°, lon={lon_min:.2f}°, ζ={vor850_slice[idx_min]:.3e} s^-1")
# Simpan untuk snippet berikutnya
vor850 = vor850_day14
Vortisitas 850 hPa — 14 Jan 2024
Max (antisiklonik kuat BBU / siklonik kuat BBS): 1.396e-04 s^-1
Min (siklonik kuat BBU / antisiklonik BBS) : -1.703e-04 s^-1
Mean : -9.324e-06 s^-1
Std : 2.559e-05 s^-1
Grid paling negatif: lat=2.50°, lon=127.75°, ζ=-1.703e-04 s^-1
Nilai \(\zeta\) pada skala sinoptik di wilayah Indonesia umumnya berada di kisaran \(\pm 10^{-5}\) hingga \(\pm 10^{-4}\) s\(^{-1}\). Pada tanggal 14 Januari 2024, grid paling negatif jatuh di Laut Maluku (\(2{,}5°\)N, \(127{,}75°\)E) dengan \(\zeta \approx -1{,}7\times10^{-4}\) s\(^{-1}\) — di BBU, nilai ini bersifat antisiklonik (rotasi searah jarum jam). Untuk mendeteksi pusat Borneo Vortex secara spesifik, kita perlu menyaring data ke area Kalimantan barat laut, yang akan kita lakukan di bagian akhir tutorial.
Menghitung Divergensi Horizontal di Permukaan (10 m)
Divergensi horizontal (horizontal divergence) \(\nabla\cdot\mathbf{V}\) mengukur apakah aliran angin menyebar atau menyatu:
$$\nabla \cdot \mathbf{V} = \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y}$$
Nilai negatif berarti konvergensi — udara yang menyatu di permukaan dipaksa naik, memicu pembentukan awan konvektif dan hujan. Nilai positif berarti divergensi — udara menyebar keluar dan udara dari atas turun mengisi kekosongan, menekan konveksi.
Keterkaitan ini langsung terlihat saat fase MJO aktif di atas Indonesia: angin permukaan berkonvergensi kuat (divergensi negatif) sementara angin lapisan atas berdivergent. Kombinasi inilah yang mendorong kolom udara naik secara masif dan mempertebal awan konvektif. Analoginya seperti pasta gigi yang dipencet dari kedua sisi — isinya tidak bisa lenyap, satu-satunya jalan keluar adalah ke atas. Begitu juga massa udara yang menyatu di permukaan: mass continuity memaksa kolom udara naik secara vertikal.
Kita gunakan angin 10 m (surface) dan ambil rata-rata harian agar konsisten dengan pressure-level data. Koreksi proyeksi diterapkan identik dengan snippet-2.
# Rata-rata harian dari data 6-hourly (4 step per hari)
# Hari ke-14 Januari 2024 = indeks 52..55 (0-based, 4 step/hari)
day14_idx = slice(52, 56)
u10_day14 = u10.isel(valid_time=day14_idx).mean(dim="valid_time").values # (lat, lon)
v10_day14 = v10.isel(valid_time=day14_idx).mean(dim="valid_time").values
lats10 = u10.latitude.values
lons10 = u10.longitude.values
lat_rad10 = np.deg2rad(lats10)
dx10 = (R_earth * np.cos(lat_rad10) * dlon).reshape(-1, 1)
dy10 = R_earth * dlat
du_dx10 = np.gradient(u10_day14, axis=1) / dx10
dv_dy10 = np.gradient(v10_day14, axis=0) / dy10
div_surf_arr = du_dx10 + dv_dy10 # s^-1
div_surf = xr.DataArray(
div_surf_arr,
coords={"latitude": lats10, "longitude": lons10},
dims=["latitude", "longitude"]
)
print(f"Divergensi permukaan 10 m — 14 Jan 2024 (rata-rata harian)")
print(f" Max (divergensi kuat) : {div_surf_arr.max():.3e} s^-1")
print(f" Min (konvergensi kuat) : {div_surf_arr.min():.3e} s^-1")
print(f" Mean : {div_surf_arr.mean():.3e} s^-1")
# Lokasi konvergensi terkuat (nilai paling negatif)
idx_conv = np.unravel_index(np.argmin(div_surf_arr), div_surf_arr.shape)
lat_conv = lats10[idx_conv[0]]
lon_conv = lons10[idx_conv[1]]
print(f"\nKonvergensi terkuat: lat={lat_conv:.2f}°, lon={lon_conv:.2f}°")
print(f" Divergensi = {div_surf_arr[idx_conv]:.3e} s^-1")
# Tampilkan 5 grid dengan konvergensi terkuat
flat_sorted = np.argsort(div_surf_arr.ravel())[:5]
print("\nTop 5 grid konvergensi terkuat:")
for rank, flat_idx in enumerate(flat_sorted):
r, c = np.unravel_index(flat_idx, div_surf_arr.shape)
print(f" #{rank+1}: lat={lats10[r]:.2f}°, lon={lons10[c]:.2f}°, div={div_surf_arr[r,c]:.3e} s^-1")
Divergensi permukaan 10 m — 14 Jan 2024 (rata-rata harian)
Max (divergensi kuat) : 1.367e-04 s^-1
Min (konvergensi kuat) : -1.269e-04 s^-1
Mean : 1.028e-06 s^-1
Konvergensi terkuat: lat=-9.00°, lon=125.00°
Divergensi = -1.269e-04 s^-1
Top 5 grid konvergensi terkuat:
#1: lat=-9.00°, lon=125.00°, div=-1.269e-04 s^-1
#2: lat=-7.75°, lon=126.00°, div=-1.238e-04 s^-1
#3: lat=-9.75°, lon=123.75°, div=-1.167e-04 s^-1
#4: lat=-0.25°, lon=123.75°, div=-1.119e-04 s^-1
#5: lat=-3.50°, lon=132.75°, div=-1.089e-04 s^-1
Pada tanggal 14 Januari 2024, lima grid konvergensi terkuat jatuh di sepanjang Laut Flores, perairan Nusa Tenggara, dan utara Papua — bukan di sekitar Sumatra atau Jawa. Ini konsisten dengan posisi ITCZ yang bergeser ke selatan saat puncak monsun barat (Januari) dan dengan aktivitas konveksi maritim di sekitar Nusa Tenggara. Nilai divergensi pada skala sinoptik lazim berada di kisaran \(10^{-6}\) hingga \(10^{-5}\) s\(^{-1}\); nilai mendekati \(10^{-4}\) s\(^{-1}\) seperti yang muncul di output menandakan aktivitas konvektif yang sangat intens secara lokal.
Menjelajahi Kasus Studi Borneo Vortex
Borneo Vortex adalah sirkulasi siklonik skala sinoptik yang terbentuk di lapisan bawah troposfer (paling intens di 925–700 hPa) di barat laut Kalimantan selama musim dingin boreal. Pusat vorteks biasa ditemukan di sekitar koordinat \(4°\)N, \(109°\)E — tepat di mana shear antara monsun timur laut dan topografi pegunungan Borneo paling kuat. Penelitian Hardy et al. (2023) (Weather and Climate Dynamics) menggunakan ERA5 sebagai dataset utama untuk mengidentifikasi dan melacak vorteks ini, mengkonfirmasi bahwa data U/V di 850 hPa cukup untuk meresolusi sirkulasinya.
Vortisitas siklonik pada Borneo Vortex umumnya melebihi \(5 \times 10^{-6}\) s\(^{-1}\) (nilai absolut) pada puncak intensitasnya. Di BBU (\(4°\)N), nilai \(\zeta\) positif berarti siklonik. Kita ekstrak nilai vortisitas dan divergensi di koordinat pusat vorteks sepanjang Januari 2024 untuk melihat variabilitasnya.
Sumber: Hardy et al. (2023), Weather and Climate Dynamics (DOI: 10.5194/wcd-4-1019-2023) — CC BY 4.0
# Koordinat pusat Borneo Vortex (barat laut Kalimantan)
BV_LAT = 4.0 # degN
BV_LON = 109.0 # degE
# Hitung vortisitas 850 hPa untuk seluruh Januari 2024 (31 hari)
# Gunakan ds_u_pl dan ds_v_pl yang sudah dibuka di snippet-1
n_days = 31
vor_bv = np.zeros(n_days)
div_bv = np.zeros(n_days)
for day_i in range(n_days):
u_d = ds_u_pl['u'].sel(pressure_level=850).isel(valid_time=day_i).values
v_d = ds_v_pl['v'].sel(pressure_level=850).isel(valid_time=day_i).values
lats_d = ds_u_pl.latitude.values
lat_rad_d = np.deg2rad(lats_d)
dx_d = (R_earth * np.cos(lat_rad_d) * dlon).reshape(-1, 1)
dv_dx_d = np.gradient(v_d, axis=1) / dx_d
du_dy_d = np.gradient(u_d, axis=0) / (R_earth * dlat)
du_dx_d = np.gradient(u_d, axis=1) / dx_d
dv_dy_d = np.gradient(v_d, axis=0) / (R_earth * dlat)
vor_full = dv_dx_d - du_dy_d
div_full = du_dx_d + dv_dy_d
# Interpolasi nearest ke koordinat BV
lat_idx = int(np.argmin(np.abs(lats_d - BV_LAT)))
lon_idx = int(np.argmin(np.abs(ds_u_pl.longitude.values - BV_LON)))
vor_bv[day_i] = vor_full[lat_idx, lon_idx]
div_bv[day_i] = div_full[lat_idx, lon_idx]
days = np.arange(1, n_days + 1)
print(f"Vortisitas & Divergensi 850 hPa di Borneo Vortex center ({BV_LAT}N, {BV_LON}E)")
print(f"Januari 2024")
print(f"{'Tgl':>4} {'ζ (10^-5 s^-1)':>16} {'∇·V (10^-6 s^-1)':>18} {'Rotasi':>12}")
print("-" * 54)
for i in range(n_days):
rot = "Siklonik" if vor_bv[i] > 0 else "Antisiklonik"
print(f"{days[i]:>4d} {vor_bv[i]*1e5:>16.3f} {div_bv[i]*1e6:>18.3f} {rot:>12}")
print(f"\nRata-rata ζ Januari : {vor_bv.mean()*1e5:.3f} × 10^-5 s^-1")
print(f"Hari paling siklonik : hari ke-{int(np.argmax(vor_bv))+1} (ζ = {vor_bv.max()*1e5:.3f} × 10^-5 s^-1)")
print(f"Hari paling konvergen: hari ke-{int(np.argmin(div_bv))+1} (∇·V = {div_bv.min()*1e6:.3f} × 10^-6 s^-1)")
Vortisitas & Divergensi 850 hPa di Borneo Vortex center (4.0N, 109.0E)
Januari 2024
Tgl ζ (10^-5 s^-1) ∇·V (10^-6 s^-1) Rotasi
------------------------------------------------------
1 -0.610 31.286 Antisiklonik
2 -0.903 25.494 Antisiklonik
3 -3.298 17.063 Antisiklonik
4 0.082 4.637 Siklonik
5 -1.043 16.717 Antisiklonik
6 -3.372 20.183 Antisiklonik
7 -2.225 10.884 Antisiklonik
8 -2.682 21.885 Antisiklonik
9 0.520 12.415 Siklonik
10 -1.990 17.267 Antisiklonik
11 -2.932 -10.217 Antisiklonik
12 -0.187 1.754 Antisiklonik
13 0.404 9.625 Siklonik
14 1.561 7.046 Siklonik
15 -4.977 6.147 Antisiklonik
16 -0.642 9.629 Antisiklonik
17 -2.628 -14.208 Antisiklonik
18 4.251 15.175 Siklonik
19 -1.162 25.887 Antisiklonik
20 1.189 -0.871 Siklonik
21 1.311 26.835 Siklonik
22 -0.841 21.082 Antisiklonik
23 -2.945 12.107 Antisiklonik
24 -2.660 13.394 Antisiklonik
25 -2.193 2.651 Antisiklonik
26 -2.460 5.449 Antisiklonik
27 -2.205 17.158 Antisiklonik
28 -2.812 12.087 Antisiklonik
29 0.301 14.845 Siklonik
30 -1.403 -2.285 Antisiklonik
31 -0.034 0.601 Antisiklonik
Rata-rata ζ Januari : -1.180 × 10^-5 s^-1
Hari paling siklonik : hari ke-18 (ζ = 4.251 × 10^-5 s^-1)
Hari paling konvergen: hari ke-17 (∇·V = -14.208 × 10^-6 s^-1)
Output di atas memperlihatkan variasi harian vortisitas dan divergensi di pusat Borneo Vortex sepanjang Januari 2024. Pada hari-hari ketika \(\zeta\) besar dan positif (BBU, siklonik) bersamaan dengan \(\nabla\cdot\mathbf{V}\) yang negatif (konvergen), itulah saat kondisi paling mendukung untuk pembentukan awan dalam dan hujan lebat di Kalimantan barat laut. Vortex stretching — mekanisme dimana konvergensi rendah memperkuat vortisitas relatif — adalah proses utama di balik intensifikasi Borneo Vortex.
Langkah selanjutnya yang natural: visualisasi medan \(\zeta\) dan \(\nabla\cdot\mathbf{V}\) pada peta (menggunakan cartopy), atau menghubungkan time series vortisitas di titik ini dengan data curah hujan IMERG untuk mengonfirmasi korelasi dinamik–presipitasi.
Eksplorasi artikel meteorologi lainnya di meteo.my.id — kunjungi https://meteo.my.id.
Referensi
- Absolute Vorticity | NOAA JetStream — NOAA, 2023. Definisi vortisitas relatif (\(\zeta = \partial v/\partial x - \partial u/\partial y\)), konvensi tanda siklonik/antisiklonik, dan hubungan dengan adveksi vortisitas (CVA) serta gerak vertikal.
- ERA5: data documentation — ECMWF / Copernicus Climate Change Service, 2024. Dokumentasi teknis ERA5: resolusi \(0{,}25°\), 37 pressure level, variabel angin U/V, dan karakteristik grid.
- What is the MJO, and why do we care? — NOAA Climate.gov, 2021. Penjelasan MJO sebagai osilasi intra-musiman utama tropika; mekanisme konvergensi permukaan dan divergensi lapisan atas yang mendorong konveksi.
- Heavy Rainfall Floods Indonesia — NASA Earth Observatory, 2008. Studi kasus banjir Januari 2008 di Indonesia akibat kombinasi La Niña dan MJO aktif; peran Benua Maritim sebagai pusat konveksi global.
- Examining the dynamics of a Borneo vortex using a balance approximation tool — Hardy et al., Weather and Climate Dynamics (EGU/Copernicus), 2023. Analisis dinamik Borneo Vortex menggunakan ERA5; vortisitas relatif melebihi \(5\times10^{-6}\) s\(^{-1}\) pada puncak intensitas; peran vortex stretching dalam intensifikasi.
Senin, 18 Mei 2026
Sumber: NASA Earth Observatory (halaman sumber)
Kenapa siklon tropis tidak pernah terbentuk tepat di atas Indonesia, padahal SST kita rata-rata 28–30°C? Dan kalau memang tidak bisa terbentuk di sini, mengapa Siklon Seroja pada April 2021 tetap menghantam Flores dan Timor dengan angin lebih dari 125 km/jam dan menewaskan lebih dari 180 orang? Dua pertanyaan ini membuka jendela ke fisika siklon tropis: ada enam kondisi yang harus terpenuhi sekaligus, dan Indonesia secara struktural tidak memenuhi salah satu yang paling kritis. Artikel ini membahas keenam syarat tersebut, mekanisme penurunan tekanan, tahap perkembangannya, dan mengapa bagian selatan kepulauan kita tetap berada dalam zona bahaya.
Mengapa Siklon Tropis Jarang Terbentuk Tepat di Atas Indonesia
Jawabannya bukan soal suhu laut — itu sudah cukup panas. Masalahnya ada pada gaya Coriolis. Siklon tropis butuh gaya ini untuk mempertahankan pusat tekanan rendah yang terorganisasi. Di ekuator, gaya Coriolis mendekati nol; tanpa rotasi yang cukup, udara yang mengalir masuk justru langsung mengisi pusat tekanan rendah, dan sistem tidak pernah berkembang menjadi badai.
Secara kuantitatif, parameter Coriolis \(f = 2\Omega \sin\varphi\) bernilai sangat kecil di lintang rendah. Batas minimum yang diakui sekitar 500 km dari ekuator — artinya hampir seluruh daratan Indonesia, yang membentang dari \(6°\text{LU}\) sampai \(11°\text{LS}\), berada di zona eksklusif di mana cyclogenesis hampir mustahil terjadi langsung di atasnya. Bagian selatan — NTT, NTB, dan pesisir selatan Jawa — sudah cukup jauh dari ekuator untuk menjadi target langsung badai yang terbentuk di cekungan Australia, tapi genesis-nya tetap terjadi di selatan, bukan di atas tanah kita.
Enam Syarat Pembentukan Siklon Tropis
William Gray (1968) mengidentifikasi enam kondisi yang harus hadir secara bersamaan agar cyclogenesis bisa terjadi. Kita bahas satu per satu.
Keenam syarat Gray (1968) bersifat kumulatif — tidak terpenuhinya satu syarat sudah cukup menggagalkan pembentukan siklon tropis.
Pertama, SST minimal 26,5°C hingga kedalaman 50 m. Ini bahan bakar termal. Air laut hangat menyuplai uap air untuk konveksi. Lapisan hangatnya harus dalam — kalau tipis, angin badai sendiri akan mengaduk laut dan mengekspos air dingin di bawah, memotong pasokan energi.
Kedua, atmosfer yang tidak stabil. Suhu harus turun cukup cepat seiring ketinggian sehingga udara lembab yang naik terus lebih hangat dari lingkungannya — syarat agar deep convection bertahan.
Ketiga, kelembapan cukup di troposfer tengah, sekitar 5 km. Udara kering di lapisan ini melemahkan konveksi lewat evaporasi — kumulus yang naik terdisipasi sebelum mencapai ketinggian penuh.
Keempat, parameter Coriolis yang signifikan — minimal sekitar 500 km dari ekuator. Syarat yang paling sering diabaikan dalam penjelasan populer, justru paling kritis untuk konteks Indonesia.
Kelima, gangguan awal berupa sirkulasi siklonik lemah di level rendah — "bibit" yang sudah punya sedikit putaran. Siklon tropis tidak muncul dari udara kosong; ia perlu sistem terorganisasi minimal seperti gelombang ekuatorial, MCS (Mesoscale Convective System), atau palung monsun.
Keenam, wind shear vertikal rendah, kurang dari sekitar 10 m/s antara permukaan dan troposfer atas. Shear yang besar akan "memiringkan" kolom vorteks sehingga konveksi hangat di pusat terpisah dari sirkulasi permukaan — struktur berantakan dan badai gagal berkembang.
Mekanisme Penurunan Tekanan dan Umpan Balik Energi Lautan
Inti fisika siklon tropis adalah sebuah loop umpan balik positif yang, begitu teraktivasi, bisa memperkuat diri sendiri dengan kecepatan mengejutkan.
Prosesnya dimulai dari permukaan laut hangat: air menguap, memberikan uap air ke udara yang naik di menara konveksi. Saat uap air mengembun di ketinggian, ia melepaskan panas laten ke atmosfer. Pemanasan ini menaikkan tekanan udara di troposfer atas, mendorong outflow ke atas badai. Outflow mengangkut massa udara menjauhi pusat, sehingga tekanan permukaan turun. Tekanan yang lebih rendah menarik udara sekitar dengan lebih kuat, kecepatan angin meningkat, evaporasi bertambah — loop pun berulang, makin kuat.
Mekanisme ini dikenal sebagai WISHE (Wind-Induced Surface Heat Exchange): pertukaran panas laut yang diinduksi oleh angin itu sendiri. Semakin kencang angin, semakin besar fluks panas dan kelembapan dari laut ke atmosfer, semakin cepat intensifikasi. Inilah yang memungkinkan rapid intensification — peningkatan kecepatan angin lebih dari 56 km/jam dalam 24 jam.
Sumber: NASA Earth Observatory (halaman sumber)
Contoh ekstrem: Hurricane Milton, Oktober 2024. SST Teluk Meksiko saat itu melampaui 27,8°C di seluruh jalur, dengan lapisan hangat cukup dalam sehingga tidak bisa diaduk oleh angin badai sendiri. Hasilnya, dalam 24 jam (6–7 Oktober 2024), angin Milton melonjak dari 130 km/jam ke nyaris 280 km/jam — hampir tiga kali lipat ambang batas rapid intensification. Ambang 26,5°C Gray adalah minimum; di atas angka itu, semakin hangat laut, semakin agresif WISHE bekerja.
Tahap Perkembangan dan Klasifikasi Intensitas
Siklon tropis tidak muncul langsung sebagai badai. Ada empat tahap perkembangan yang diakui secara operasional.
Tropical disturbance adalah titik awal: gugusan thunderstorm dengan sirkulasi lemah tanpa pusat tekanan rendah tertutup. Sebagian besar disturbance terdisipasi sebelum berkembang lebih jauh.
Tropical depression terbentuk ketika sirkulasi menguat dan angin permukaan mencapai 37–61 km/jam dengan pusat tekanan rendah yang tertutup. Sistem sudah punya identitas, belum diberi nama.
Tropical storm adalah tahap ketiga, dengan angin 63–117 km/jam. Di sini sistem mendapat nama resmi — untuk kawasan kita, BOM (Biro Meteorologi Australia) yang mengkoordinasikan penamaan di tenggara Samudra Hindia dan Arafura.
Tropical cyclone — istilah di kawasan Australia dan Samudra Hindia Selatan, setara dengan "hurricane" di Atlantik dan "typhoon" di Pasifik Barat — adalah tahap matang dengan angin melebihi 119 km/jam. Di sini berlaku skala Saffir-Simpson (berbasis angin saja, bukan tekanan, sejak 1990-an):
- Kategori 1: 119–153 km/jam
- Kategori 2: 154–177 km/jam
- Kategori 3 (Severe): 178–208 km/jam
- Kategori 4 (Severe): 209–251 km/jam
- Kategori 5 (Severe): ≥252 km/jam
Tekanan pusat yang lebih rendah adalah konsekuensi fisik dari angin yang lebih kencang, bukan kriteria klasifikasi tersendiri.
Sumber: NASA Earth Observatory (halaman sumber)
Gambar di atas adalah citra microwave dari TROPICS CubeSat NASA, yang mampu melihat melalui awan. Mata badai (eye), eyewall sebagai zona angin terkencang, dan rainband spiral yang memanjang ke luar — semua fitur ini menandakan WISHE sedang berjalan penuh.
Konteks Indonesia dan Ancaman dari Cekungan Badai Sekitar
Sebagian besar kepulauan Indonesia berada di luar jangkauan pembentukan siklon tropis. Tapi "tidak terbentuk di sini" bukan berarti "tidak berdampak di sini."
Cekungan badai Australia — wilayah Samudra Hindia selatan Jawa, NTT, dan Laut Timor hingga Arafura — aktif antara Oktober hingga April. Siklon di sini kerap bergerak ke selatan atau barat daya menuju Australia, tapi jalurnya bisa melewati atau sangat dekat pulau-pulau terluar Indonesia. NTT, NTB, dan pesisir selatan Jawa pada lintang \(5°\)–\(11°\text{LS}\) sudah cukup jauh dari ekuator untuk menjadi target langsung.
Kasus paling jelas adalah Siklon Seroja, 5 April 2021. Seroja menghantam Flores dan Timor dengan angin lebih dari 125 km/jam, menewaskan lebih dari 180 orang, dan merusak infrastruktur di seluruh wilayah terdampak — TC terkuat yang mendarat di Indonesia sejak 2008. Jalur Seroja yang anomali ke selatan sebagian disebabkan Fujiwhara Effect — interaksi dengan sistem badai lain yang menyebabkan keduanya saling mengorbit.
Bahkan ketika badai tidak mendarat, dampaknya terasa: sirkulasi TC di selatan Indonesia menyedot kelembapan ke daratan, memicu hujan deras, gelombang tinggi, dan banjir. BMKG memantau "bibit siklon" di Laut Arafura, Laut Timor, dan Samudra Hindia selatan sepanjang tahun. Musim 2024–2025 mencatat beberapa sistem signifikan: Siklon Errol (April 2025, selatan Pulau Sumba, 100 knot, 945 hPa) dan Siklon FINA (November 2025, Laut Arafura, Kategori 1) yang memicu peringatan dini untuk NTT dan Maluku. Ketidakmampuan Indonesia "melahirkan" siklon tidak berarti kita aman dari ancamannya.
Eksplorasi artikel meteorologi lainnya di meteo.my.id — mulai dari dinamika monsun, fenomena ENSO, hingga cara membaca data reanalysis ERA5 secara langsung. Kunjungi https://meteo.my.id untuk arsip lengkap.
Referensi
- TCFAQ A15) How do tropical cyclones form? — NOAA AOML — Menjelaskan enam kondisi pembentukan siklon tropis yang diidentifikasi Gray (1968), termasuk batasan gaya Coriolis yang mencegah cyclogenesis di dekat ekuator.
- TCFAQ A16) Why do tropical cyclones require 26.5°C ocean temperatures? — NOAA AOML — Menjelaskan mekanisme termodinamika yang menghubungkan SST dengan energi siklon dan mengapa 26,5°C adalah ambang minimum yang dibutuhkan untuk mempertahankan mesin konveksi badai.
- How do hurricanes form? — NOAA Ocean Service — Menggambarkan empat tahap perkembangan siklon tropis dari tropical disturbance hingga badai penuh, dan peran wind shear dalam mengganggu atau mendukung perkembangannya.
- Seroja Slams Australia — NASA Earth Observatory — Mendokumentasikan Siklon Seroja (April 2021) yang menghantam Indonesia dan Australia sebagai demonstrasi nyata ancaman TC terhadap wilayah selatan kepulauan Indonesia.
- Fuel for Hurricane Milton — NASA Earth Observatory — Ilustrasi bagaimana SST Teluk Meksiko yang jauh di atas 26,5°C memicu rapid intensification ekstrem Hurricane Milton pada Oktober 2024, sebagai studi kasus modern mekanisme WISHE.