Keyword Return
Modul ini ngajak kita udahan lebih awal agar tidak tersakiti
Keyword Return pada C++
Sebelumnya kita udah tau kalau fungsi mengembalikan nilai, sedangkan prosedur gak. Nah, di C++ ada keyword return
yang bisa kita gunain buat mengembalikan nilai dari fungsi. Keyword ini juga bisa kita gunain di prosedur, tapi bukan buat ngembaliin nilai melainkan buat keluar dari fungsi atau prosedur.
Metode Early Return
Metode ini adalah salah satu cara agar membuat fungsi atau prosedur kita lebih rapih. Dengan metode ini, kita bisa langsung keluar dari fungsi atau prosedur saat kondisi tertentu terpenuhi.
Contoh tanpa Early Return:
#include <iostream>
using namespace std;
void cekAngka(int angka) {
if (angka > 0) {
if (angka % 2 == 0) {
if (angka > 100) {
cout << "Angka lebih dari 100 dan genap.\\n";
} else {
cout << "Angka positif dan genap.\\n";
}
} else {
if (angka > 100) {
cout << "Angka lebih dari 100 dan ganjil.\\n";
} else {
cout << "Angka positif dan ganjil.\\n";
}
}
} else {
if (angka < 0) {
cout << "Angka negatif.\\n";
} else {
cout << "Angka nol.\\n";
}
}
}
int main() {
cekAngka(120);
cekAngka(75);
cekAngka(-5);
cekAngka(0);
return 0;
}
Iyuuhh banget gak sih? Susah bet ngebacanya. Nah, sekarang kita coba pake Early Return:
#include <iostream>
using namespace std;
void cekAngka(int angka) {
if (angka == 0) {
cout << "Angka nol.\\n";
return;
}
if (angka < 0) {
cout << "Angka negatif.\\n";
return;
}
if (angka > 100) {
cout << "Angka lebih dari 100 dan " << (angka % 2 == 0 ? "genap.\\n" : "ganjil.\\n");
return;
}
cout << "Angka positif dan " << (angka % 2 == 0 ? "genap.\\n" : "ganjil.\\n");
}
int main() {
cekAngka(120);
cekAngka(75);
cekAngka(-5);
cekAngka(0);
return 0;
}
Hasilnya tetap sama:
Angka lebih dari 100 dan genap.
Angka positif dan ganjil.
Angka negatif.
Angka nol.
Lebih rapih kan? Dengan metode Early Return, kita bisa langsung keluar dari fungsi atau prosedur saat kondisi tertentu terpenuhi. Jadi, kita gak perlu nge-ngecek kondisi yang lainnya lagi dengan nested if yang brutal.
Source:
- https://www.w3schools.com/cpp/cpp_function_return.asp;
- https://medium.com/swlh/return-early-pattern-3d18a41bba8
- [https://www.huzefril.com/posts/refactoring/return_early_pattern/#:~:text=Apa itu Return Early%2FEarly,ada kondisi yang tidak cocok.](https://www.huzefril.com/posts/refactoring/return_early_pattern/#:~:text=Apa itu Return Early%2FEarly,ada kondisi yang tidak cocok.)