The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Definisi fungsi
Sekarang setelah kita membahas beberapa contoh, mari kita lihat bentuk umum definisi fungsi:
void function-name() {
Deklarasi variabel, dll.
Ekspresi...
//tidak perlu pernyataan return eksplisit.
}
Suatu fungsi tidak mengembalikan nilai khusus, ataupun parameter masuk.
void function-name(data-type variable) {
Deklarasi variabel, dll.
Ekspresi...
//tidak perlu pernyataan return eksplisit.
Jika Anda menginginkan beberapa variabel, Anda cukup menggunakan "," sebagai pembatas
Suatu fungsi tidak mengembalikan nilai khusus, tetapi dengan satu parameter.
void nama-fungsi(variabel-tipe-data, variabel-tipe-data, dll.) {
Deklarasi variabel, dll.
Ekspresi...
//tidak perlu pernyataan return eksplisit.
}
Suatu fungsi tidak mengembalikan nilai khusus, tetapi dengan lebih dari satu parameter.
void nama-fungsi(variabel-tipe-data, variabel-tipe-data, dll.) {
Deklarasi variabel, dll.
Ekspresi...
kembalikan nilai kembalian
}
Suatu fungsi mengembalikan nilai tipe data tertentu, dan dengan input lebih dari satu parameter.
Tipe pengembalianreturndari suatu fungsi harus sama dengan tipe data dari nilai kembalian yang dikembalikan oleh fungsi tersebut. Nilai kembalianbisanilai konstan atau variabel. Harus diawali dengan kata kunci “return.”
Aturan berikut mengatur jenis pengembalian:
- Hampir tidak ada batasan pada tipe pengembalian, kecuali array. (Array adalah topik lain yang lebih maju mengenai cara membuat data Anda. Hal itu di luar cakupan artikel ini dan tidak akan dibahas di sini.
- Menentukan bahwa tipe pengembalian “void” berarti tidak diperlukan nilai pengembalian. Klausa “kembali” tersirat. Artinya Anda harus secara eksplisit menyatakan “return” di akhir fungsi “void”.
Apakah sebaiknya membuat fungsi sebelum main() atau setelahnya?
Kompiler membaca berkas Anda dari atas ke bawah. Jadi, urutannya penting.
Mari kita ambil fungsi Penyebut Umum Terbesar (FPB) yang sederhana sebagai contoh. Anda akan mendapatkan kesalahan:penggunaan pengidentifikasi yang belum dideklarasikan 'getGCD'
Sebenarnya hal ini berlaku baik dari main() maupun blok fungsi pemanggil lainnya, yaitu “blok fungsi yang dipanggil” harus mendahului “blok fungsi pemanggil.”
Dua kemungkinan solusi:
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
Pindahkan “fungsi yang dipanggil” ke atas “blok fungsi pemanggil”, dalam contoh "main()."
int getGCD(int, int);
int main() {
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Letakkan prototipe (juga disebut tanda tangan) fungsi sebelum “blok fungsi pemanggil.”
Bagaimana jika Anda ingin memodularisasi fungsi-fungsi dalam file yang berbeda?
Langkah 1: Buat file header, dan masukkan prototipe fungsi ke dalam file ini.
misalnya membuat file bernama “myFuncs.h”
Anda perlu “menambahkan” file header ini ke dalam proyek Anda sebelum mengompilasi kode Anda. Hal ini memungkinkan IDE VEXcode Pro V5 “untuk mengetahui” penyertaan file header baru ini sebelum mulai membangun proyek Anda.
Begini caranya:



Dalam file header ini “common.h” (Anda dapat memberi nama apa pun yang Anda inginkan, asalkan berupa alfanumerik tanpa spasi.)
Langkah 2: Buat file cpp terpisah, misalnya, bernama common.cpp

//ini adalah file common.cpp
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Pindahkan fungsi getGCD(...) ke dalam file ini
#include "vex.h"
#include "common.h"
using namespace vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
Sekarang, semua yang Anda miliki di file cpp utama akan terdiri dari yang berikut ini
Referensi:https://api.vexcode.cloud/v5/html/namespacevex.html
Topik-topik mendatang akan dibahas di bagian-bagian lanjutan dari Perpustakaan VEX di masa mendatang:
- Lewati nilai vs. lewati referensi
- Melewati array
- Lulus dalam suatu struktur