Return Value
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah halaman ini, kamu dapat membuat function dengan return value dan menggunakan hasil tersebut di bagian lain program.
Pendahuluan
Section titled “Pendahuluan”Function tidak hanya bisa menampilkan sesuatu — ia juga bisa mengembalikan nilai yang bisa disimpan, dihitung, atau dikirim ke tempat lain. Kemampuan ini disebut return value.
Penjelasan Materi
Section titled “Penjelasan Materi”Kata kunci return melakukan dua hal sekaligus:
- Menentukan nilai yang dikembalikan dari function.
- Menghentikan eksekusi function — kode setelah
returntidak dijalankan.
function tambah(a: number, b: number): number { return a + b // mengembalikan hasil penjumlahan // kode di bawah ini tidak akan pernah dijalankan console.log("Ini tidak akan muncul")}Analogi Kehidupan Sehari-hari
Section titled “Analogi Kehidupan Sehari-hari”Jus yang Keluar dari Mesin
Section titled “Jus yang Keluar dari Mesin”[Masukkan mangga dan apel] │ ▼[Mesin memproses] │ ▼return [jus campuran] ← nilai yang dikembalikan │ ▼[Kamu menerima dan minum jus]return seperti pintu keluar mesin. Nilai yang dikembalikan bisa kamu gunakan seperti kamu mau.
Visual Illustration
Section titled “Visual Illustration”function hitungLuas(p: number, l: number): number { return p * l} ▲ │ └── Nilai ini dikembalikan ke tempat function dipanggil
const luas = hitungLuas(5, 3) └─────────────┘ 20 dikembalikan dan disimpan di 'luas'Mari Mencoba
Section titled “Mari Mencoba”Buat src/bab4/return-value.ts:
function hitungLuasPersegiPanjang(panjang: number, lebar: number): number { return panjang * lebar}
function konversiSuhu(celsius: number): number { return (celsius * 9) / 5 + 32}
function formatRupiah(nominal: number): string { return `Rp${nominal.toLocaleString("id-ID")}`}
function tentukannStatus(nilai: number): string { if (nilai >= 90) return "Sangat Baik" if (nilai >= 75) return "Baik" if (nilai >= 60) return "Cukup" return "Perlu Bimbingan"}
// Gunakan return valueconst luas = hitungLuasPersegiPanjang(8, 5)console.log(`Luas: ${luas} m²`)
const fahrenheit = konversiSuhu(36.5)console.log(`36.5°C = ${fahrenheit}°F`)
const harga = formatRupiah(125000)console.log(`Harga: ${harga}`)
const nilai = 83console.log(`Nilai ${nilai}: ${tentukannStatus(nilai)}`)
// Gunakan return value langsung dalam ekspresiconst luasGanda = hitungLuasPersegiPanjang(4, 3) * 2console.log(`Luas ganda: ${luasGanda} m²`)Jalankan:
tsx src/bab4/return-value.tsOutput
Section titled “Output”Luas: 40 m²36.5°C = 97.7°FHarga: Rp125.000Nilai 83: BaikLuas ganda: 24 m²Penjelasan Baris per Baris
Section titled “Penjelasan Baris per Baris”return panjang * lebar— menghitung dan langsung mengembalikan hasilnya.return (celsius * 9) / 5 + 32— rumus konversi Celsius ke Fahrenheit langsung di-return.tentukannStatus— memiliki beberapareturndi dalam percabangan. Begitu salah satu kondisi terpenuhi, function langsung berhenti.
Early Return
Section titled “Early Return”Multiple return di dalam function bisa digunakan untuk “early return” — keluar lebih awal jika kondisi tertentu terpenuhi:
function bagi(a: number, b: number): number { if (b === 0) { return 0 // early return: hindari pembagian nol } return a / b}Kesalahan yang Sering Terjadi
Section titled “Kesalahan yang Sering Terjadi”function hitungKeliling(sisi: number): number { const keliling = sisi * 4 // Lupa return! // TypeScript: Function lacks ending return statement}Jika tipe return bukan void, setiap jalur kode harus berakhir dengan return.
Latihan
Section titled “Latihan”- Buat function
fahrenheitKeCelsius(f)dengan rumus(f - 32) × 5/9. - Buat function
volumeKubus(sisi)yang mengembalikan volume. - Buat function
kategoriUmur(umur)yang mengembalikan"Anak","Remaja", atau"Dewasa".
Ringkasan
Section titled “Ringkasan”returnmengembalikan nilai dan menghentikan eksekusi function.- Return value bisa disimpan, dicetak, atau digunakan dalam ekspresi.
- Multiple
returnberguna untuk early return berdasarkan kondisi. - Function yang return bukan void wajib punya
returndi setiap jalur.