Lompat ke konten Lompat ke sidebar Lompat ke footer

Fungsi Bahasa C Beserta Penjelasannya

Sebuah fungsi pada Bahasa C adalah seperangkat statement yang memerlukan nilai input, untuk melakukan suatu proses komputasi spesifik dan menghasilkan nilai output.

Sebelum memahami lebih dalam materi tentang Fungsi Bahasa C Beserta Penjelasannya, terlebih dahulu pelajari materi tentang: Input Nilai Rentang Pada Switch Case Statement Bahasa C, Keluar dari Proses Looping Bahasa C Menggunakan Break Statement, dan Melompati Proses Looping Bahasa C Menggunakan Continue Statement.

Tujuan dari penggunaan fungsi pada Bahasa C adalau untuk mengambil beberapa penugasan umum atau penugasan berulang yang dilakukan secara bersamaan, yang kemudian disimpan dalam suatu wadah yang disebut fungsi, ketimbang harus melakukan penulisan kode program yang sama secara berulang untuk jenis input yang berbeda.

Bentuk Umum Fungsi Bahasa C: return_type function_name([ arg1_type arg1_name, ... ]) { code }

Contoh: Berikut adalah program sederhana yang menggunakan Bahasa C untuk mendemonstrasikan penggunaan fungsi.

#include <stdio.h>


// Contoh fungsi yang

// mengambil dua nilai

// parameter 'x' dan 'y'

// sebagai nilai input dan

// mengembalikan nilai

// maksimal dari dua input

// nilai tersebut.

int max(int x, int y)

{

if (x > y)return x;

else return y;

}


// Fungsi main tidak menerima

// nilai parameter apapun dan

// mengembalikan nilai

// integer.

int main(void)

{

int a = 10, b = 20;


// Memanggil fungsi untuk

// menemukan nilai maksimal

// dari 'a' dan 'b'.

int m = max(a, b);

printf("m is %d", m);


return 0;

}

Output:
m is 20

Kegunaan Fungsi pada Bahasa C

Fungsi membantu programmer untuk mengurangi proses pembuatan kode program, serta mengurangi kerumitan dalam proses pembuatannya. Jika suatu fungsi Bahasa C ditampilkan atau digunakan pada beberapa perangkat lunak yang lain. Oleh karena itu, ketimbang melakukan penulisan kode program yang sama pada perangkat lunak yang lain secara berulang-ulang, jauh lebih efisien jika menggunakan satu fungsi saja, dan kemudian memanggil fungsi yang telah dibuat tersebut pada program atau perangkat lunak lain yang berbeda dengan penugasaan yang sama. Fungsi Bahasa C juga membantu dalam proses perawatan ketika dilakukan perubahan pada satu tempat atau bagian tertentu pada fungsi program.

Fungsi pada Bahasa C membuat kode lebih terstruktur, dimana beberapa baris program dapat ditulis hanya menggunakan satu fungsi saja. Fungsi Bahasa C juga membuat program menjadi lebih mudah untuk dibaca dan digunakan, jika kode-kode program tersebut dibagi ke dalam fungsi-fungsi tertentu. Fungsi bahasa C juga menyediakan bentuk abstraksi, seperti penggunaan fungsi library yang dapat digunakan tanpa haris mengkhawatirkan cara kerja internal dari fungsi library yang dipanggil tersebut.

Pendeklarasian Funsi

Proses pendeklarasian fungsi memberitahukan kompilator mengenai suatu nilai dari parameter fungsi tertentu seperti tipedata dari parameter, dan tipe return. Mengambil nama parameter dalam deklarasi fungsi adalah bersifat opsional pada proses deklarasi fungsi, tetapi hal tersebut juga dibutuhkan untuk proses pendefinisian. Berikut diperlihatkan beberapa contoh deklarasi fungsi.

Sintak:
  • Fungsi untuk mengambil dua nilai nteger sebagai nilai paramter dan mengembalikan nilai sebagai nilai integer: int max(int, int);
  • Fungsi untuk mengambil nilai pointer int dan variabel int sebagai nilai parameter dan mengambalikan sebuah nilai pointer dengan tipe int: int *swap(int*,int);
  • Fungsi untuk mengambil sebuah karakter parameter dan mengembalikan nilai referensi variabel: char *call(char b);
  • Fungsi untuk mengambil sebuah nilai char dan nilai integer sebagai parameter, dan mengembalikan nilainya sebagai nilai integer: int fun(char, int);

Catatan: Selalu direkomendasikan untuk mendeklarasikan sebuah fungsi sebelum fungsi tersebut digunakan pada program Bahasa C.

Pada bahasa C, dapat dilakukan proses pendeklarasian dan pendefinisian suatu fungsi pada lokasi yang sama. Tidak hanya itu, pada Bahasa C juga dimungkinkan untuk melakukan pendeklarasian dan pendefinisian fungsi secara terpisah, ini umumnya dibutuhkan pada kondisi dimana fungsi library sedang digunakan, yang membuat fungsi library dideklarasikan pada file header dan didefinisikan pada file library.

Parameter melewatkan fungsi:
  • Parameter yang melewatkan suatu fungsi disebut parameter aktual. 
  • Parameter aktual yang diterima disebut sebagai parameter formal.

Terdapat dua cara umum yang digunakan untuk melewatkan nilai parameter:
  • Dilewatkan Menggunakan Value: pada proses ini, nilai aktual parameter akan diduplikasi ke parameter fungsi formal dan dua tipe parameter akan disimpan pada lokasi memori yang berbeda. Sehingga setiap perubahan nilai yang terjadi tidak akan memengaruhi nilai fungsi didalamnya karena nilai tersebut tidak direpleksikan ke parameter aktual dari pemanggilnya.
  • Dilewatkan Menggunakan Referensi: pada proses ini, parameter formal dan parameter aktual merujuk pada suatu lokasi penyimpanan yang sama, sehingga setiap perubahan yang terjadi di dalam fungsi akan direpleksikan hasilnya ke parameter aktual oleh pemanggilnya.

Catatan: Nilai parameter adalah selalu dilewatkan oleh value pada Bahasa C.

Contoh: Nilai dari x tidak dimodifikasi menggunakan fungsi fun().

#include <stdio.h>


void fun(int x)

{x = 30;}


int main(void)

{

int x = 20;


fun(x);


printf("x = %d", x);


return 0;

}

Output:
x = 20

Namun demikian, pada bahasa, dapat pula digunakan pointer untuk mendapatkan nilai efek dari proses melewatkan suatu fungsi menggunakan referensi.

Fungsi fun() membutuhkan sebuah pointer ptr untuk menuju ke nilai integer atau alamat dari nilai integer, yang digunakan untuk memodifikasi nilai dari nilai variabel yang telah dituju oleh pointer ptr. Operator dereference '*' digunakan sebagai akses untuk menuju ke nilai yang ini dilakukan perubahan nilainya. Pada statement '*ptr = 30', mengindikasikan bahwa nilai pada alamat ptr telah dibuah menjadi 30. Sendangkan operator alamat '&' digunakan untuk mendapatkan alamat dari sebuah variabel dengan tipe data apapun. Pada fungsi, juga dilakukan pemanggilan statement 'fun(&x)', yang berisi nilai dari alamat x untuk dilewatkan ke nilainya sehingga variabel x dapat dilakukan modifikasi atau perubahan nilai variabel melalui alamat yang telah dipanggil sebelumnya.

Contoh:

# include <stdio.h>


void fun(int *ptr)

{*ptr = 30;}


int main()

{

int x = 20;


fun(&x);


printf("x = %d", x);


return 0;

}

Output:
x = 30

Baca Juga:

Beberapa hal penting tentang fungsi bahasa C:
  • Setiap program Bahasa C memiliki sebuah fungsi yang disebut fungsi main(), yang akan dipanggil oleh sistem operasi ketika user sedang menjalankan program.
  • Setiap fungsi pada Bahasa C akan mengembalikan nila tipe return tertentu. Jika sebuah fungsi tidak mengembalikan nilai apapaun, maka fungsi yang digunakan adalah fungsi void. Tidak hanya itu, jika tipe return pada fungsi adalah void, user tetap dapat menggunakan statement return pada bagian body definisi fungsi, namun tidak diserta pendefinisi tipe konstanta, variabel, dan lain sebagainya. Dengan fungsi void, hanya dengan memanggil nilai return pada fungsi tersebut, maka statement akan mensimbolkan proses terminasi dari fungsi.
  • Pada bahasa C, fungsi dapat mengembalikan tipe nilai apapun kecuali nilai array dan nilai fungsi itu sendiri. Namun batasan ini dapat diatasi dengan cara mengembalikan nilai pointer ke array, atau pointer ke fungsi.
  • Daftar parameter kosong pada bahasa C bermakna bahwa daftar parameter tidak spesifik dan fungsi dapat dipanggil dengan parameter apapun. Pada bahasa C, tidak direkomendasikan untuk mendeklarasikan fungsi seperti fun(), dimana proses pendeklarasian tanpa menggunakan nilai parameter diharuskan menggunakan fungsi "void fun(void)". Catatan lain pula, bahwa pada C++, daftar kosong berarti sebuah fungsi hanya dapat dipanggil tanpa menggunakan nilai parameter apapun, dimana pada bahasa C++, kedua nilai void fun() dan void fun(void) adalah bernilai sama.
  • Jika pada program bahasa C terdapat sebuah fungsi yang dipanggil sebelum proses pendeklarasian fungsi itu sendiri maka kompilator secara otomatis akan mengasumsikan bahwa deklarasi dari fungsi pada proses tersebut adalah sebagai berikut.

int function name(); Pada kondisi tersebut, jika nilai tipe return dari fungsi adalah berbeda dari nilai INT, maka kompilator akan menampilkan pesan error pada layar monitor.

Fungsi Main: Fungsi Main atau fungsi utama pada bahasa C merupakan sebuah fungsi spesial, dimana setiap rogram yang mengandung fungsi tersebut, akan dianggap sebagai titik acuan awal server untuk mengekskusi program.

Tipe Fungsi:
  • Fungsi main tanpa nilai parameter: int main() {.....; return 0;}
  • Fungsi main dengan nilai parameter: int main(int argc, char * const argv[]) {.....; return 0;}

Tujuan dari penggunaan nilai parameter pada fungsi main adalah memberikan suatu ijin untuk melakukan proses input dari command line. Ketika digunakan fungsi main beserta nilai parameter, maka proses dari fungsi tersebut akan menyimpan kelompok karakter yang dipisahkan tanda koma setelah nama program elemen pada array yang bernama argv. Ketika fungsi main telah mengembalikan nilai tipe dari int, maka program akan selalu mengembalikan nilai statement ke bagian kode. Nilai yang telah dikembalikan tersebut digunakan untuk menginformasikan program yang dipanggil tentang hasil dari eksekusi program. Jika nilai yang dikembalikan dari fungsi main adalah 0, maka hal tersebut mengindikasikan bahwa tidak terdapat masalah apapaun pada eksekusi progmram Bahas C.

Bahasa pemrograman C merupakan salah satu bahasa yang fundamental dalam dunia pengembangan perangkat lunak, terkenal dengan kekuatan dan fleksibilitasnya dalam mengelola sistem serta pemrosesan yang efisien. Di dalam C, fungsi memegang peran penting dalam membangun dan mengorganisasikan struktur program. Fungsi memungkinkan program untuk dipecah menjadi blok-blok kode yang dapat diakses berulang kali, mengurangi kompleksitas dan meningkatkan efisiensi program secara keseluruhan.

Fungsi dalam C dirancang dengan struktur yang sederhana namun kuat. Fungsi memiliki beberapa bagian utama, seperti deklarasi tipe kembalian, nama fungsi, parameter, dan isi tubuh fungsi yang terdiri dari perintah-perintah yang dijalankan saat fungsi tersebut dipanggil. Dalam pengembangan perangkat lunak, fungsi dapat berperan dalam berbagai skenario, mulai dari fungsi sederhana yang mengembalikan nilai tertentu hingga fungsi yang lebih kompleks yang dapat memproses data dalam jumlah besar. Penggunaan fungsi juga memungkinkan pengembang untuk membuat program yang modular dan mudah dipahami, karena setiap fungsi hanya menangani satu tugas spesifik.

Fungsi dengan Tipe Pengembalian (Return Type)

Setiap fungsi dalam C dapat memiliki tipe pengembalian yang menunjukkan jenis nilai yang akan dikembalikan setelah fungsi selesai dieksekusi. Tipe pengembalian ini bisa berupa tipe dasar seperti `int`, `float`, atau `char`, maupun tipe data lain yang lebih kompleks. Penggunaan tipe pengembalian bertujuan untuk memastikan bahwa fungsi tersebut memberikan nilai yang sesuai dengan kebutuhan program. Fungsi yang memiliki tipe pengembalian juga akan menggunakan perintah `return` untuk memberikan nilai akhir yang dihasilkan kepada pemanggil fungsi.

Misalnya, dalam pengolahan bilangan, fungsi dapat mengembalikan hasil perhitungan yang dilakukan, seperti hasil penjumlahan atau pengurangan. Tipe pengembalian pada fungsi juga berperan penting dalam memastikan bahwa proses kalkulasi atau manipulasi data memberikan hasil yang akurat dan dapat diandalkan. Selain itu, penggunaan tipe pengembalian juga membantu pengembang mengontrol aliran data dalam program, karena setiap fungsi akan menghasilkan nilai yang dapat digunakan kembali oleh fungsi lain.

Fungsi Tanpa Tipe Pengembalian (Void Function)

Selain fungsi yang mengembalikan nilai, terdapat juga fungsi yang tidak memiliki tipe pengembalian atau dikenal sebagai `void function`. Fungsi tanpa tipe pengembalian digunakan untuk menjalankan serangkaian perintah tanpa perlu mengembalikan nilai apapun. Biasanya, fungsi jenis ini digunakan untuk tugas yang lebih sederhana atau yang tidak memerlukan hasil akhir untuk diproses lebih lanjut. Contoh penggunaan fungsi `void` ini adalah ketika program membutuhkan prosedur untuk mencetak data, memodifikasi variabel, atau melakukan aksi tertentu yang tidak melibatkan pengembalian nilai.

Keuntungan dari fungsi tanpa tipe pengembalian adalah kemudahan dalam pelaksanaannya. Karena tidak perlu memproses nilai pengembalian, fungsi ini dapat fokus pada tugas yang perlu dijalankan tanpa tambahan beban untuk memikirkan hasil akhirnya. Fungsi `void` sering dimanfaatkan untuk mengeksekusi serangkaian instruksi seperti menampilkan pesan, mengatur variabel, atau bahkan mengelola aliran kontrol dalam program. Fleksibilitas fungsi `void` ini mempermudah proses pengembangan program yang melibatkan banyak aksi berulang atau fungsi-fungsi non-komputasional.

Parameter dan Argumen pada Fungsi

Fungsi dalam bahasa C dapat menerima parameter, yang merupakan variabel sementara yang digunakan untuk menerima data saat fungsi dipanggil. Parameter memungkinkan fungsi untuk dipersonalisasi sesuai dengan nilai yang diterima, sehingga fungsi tersebut dapat memberikan hasil yang spesifik berdasarkan input yang diberikan. Parameter ini biasanya dinyatakan dalam deklarasi fungsi dan akan digunakan dalam tubuh fungsi untuk memproses data.

Argumen yang diberikan pada saat pemanggilan fungsi akan disesuaikan dengan parameter yang diterima oleh fungsi. Jika fungsi menerima dua parameter, maka pemanggilan fungsi juga harus memberikan dua argumen yang sesuai. Keberadaan parameter dan argumen memungkinkan satu fungsi untuk memiliki hasil yang beragam, tergantung pada nilai yang diterima. Sebagai contoh, dalam fungsi yang menghitung luas, panjang dan lebar objek yang diberikan sebagai parameter dapat memberikan hasil luas yang berbeda setiap kali fungsi dipanggil dengan argumen yang berbeda.

Fungsi Rekursif

Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri dalam tubuhnya, memungkinkan pengembang untuk membuat algoritma yang efisien dan seringkali lebih sederhana untuk masalah-masalah yang memiliki sifat berulang atau terstruktur secara hierarkis. Dalam C, penggunaan rekursi dapat membantu menyelesaikan masalah seperti menghitung faktorial, memecahkan algoritma pembagian, atau melakukan traversal pada struktur data yang kompleks seperti pohon atau graf.

Penggunaan rekursi perlu dilakukan dengan hati-hati, karena fungsi rekursif yang tidak dirancang dengan baik dapat menyebabkan program mengalami kesalahan atau bahkan mencapai batas memori. Setiap fungsi rekursif harus memiliki kondisi dasar yang jelas untuk menghentikan proses rekursi, sehingga tidak terjadi pemanggilan fungsi secara terus-menerus yang mengakibatkan stack overflow. Meskipun demikian, fungsi rekursif menawarkan solusi yang sangat elegan untuk beberapa jenis permasalahan yang sulit diselesaikan dengan pendekatan iteratif.

Fungsi dengan Parameter Berdasarkan Tipe Data

Dalam C, parameter yang diterima oleh fungsi dapat berbentuk berbagai tipe data, seperti integer, karakter, string, dan bahkan array atau pointer. Tipe data dari parameter sangat mempengaruhi cara fungsi tersebut memproses data dan menghasilkan hasil akhir. Misalnya, dalam pengolahan teks, fungsi dapat menerima string sebagai parameter untuk melakukan manipulasi atau pencarian karakter tertentu.

Array sebagai parameter memungkinkan fungsi untuk mengakses dan memproses beberapa elemen data sekaligus. Pada situasi tertentu, pointer digunakan untuk mengakses atau memodifikasi nilai variabel di luar fungsi. Penggunaan parameter berdasarkan tipe data ini memberikan fleksibilitas tinggi pada fungsi, memungkinkan pembuatan program yang dapat bekerja dengan data yang lebih kompleks.

Manfaat Modularitas dalam Penggunaan Fungsi

Penggunaan fungsi dalam C memberikan keuntungan modularitas, di mana program dapat dibagi menjadi beberapa bagian yang lebih kecil dan saling terpisah. Dengan cara ini, setiap bagian program, atau modul, dapat fokus pada tugas spesifik tanpa harus saling tergantung. Modularitas ini memudahkan pemeliharaan, pengujian, dan pengembangan program, karena setiap modul dapat diuji dan dikembangkan secara independen. Fungsi yang telah dibuat dan diuji dapat dipanggil kapan saja dalam program tanpa harus menuliskan kembali kode tersebut.

Selain itu, modularitas membantu dalam meminimalisir kesalahan, karena perubahan atau perbaikan yang dilakukan pada satu bagian tidak akan berpengaruh pada bagian lain. Setiap fungsi hanya perlu ditulis satu kali dan dapat dipanggil berulang kali, mengurangi kemungkinan duplikasi kode dan memastikan konsistensi dalam program.

Fungsi Standar dan Fungsi Buatan Pengguna

Dalam C, terdapat fungsi standar yang disediakan oleh pustaka, seperti fungsi untuk input-output, manipulasi string, dan perhitungan matematika. Fungsi-fungsi ini siap pakai dan mempermudah pengembang dalam melakukan operasi-operasi dasar tanpa harus menulis kode dari awal. Di sisi lain, fungsi buatan pengguna adalah fungsi yang didefinisikan sendiri oleh pengembang sesuai dengan kebutuhan spesifik program yang sedang dibuat. Dengan adanya fungsi buatan pengguna, pengembang memiliki kontrol penuh terhadap bagaimana suatu tugas dilakukan dalam program.

Fungsi standar mempercepat proses pengembangan karena sebagian besar fungsi dasar telah tersedia, namun penggunaan fungsi buatan pengguna sering kali diperlukan untuk keperluan yang lebih spesifik. Hal ini memberikan kebebasan kepada pengembang untuk menciptakan fungsi yang unik dan sesuai dengan persyaratan aplikasi yang sedang dikembangkan.

Fungsi Sebagai Dasar Abstraksi dalam Pemrograman

Fungsi juga memberikan tingkat abstraksi dalam pemrograman, di mana pengembang tidak perlu memahami secara mendalam detail implementasi suatu tugas saat memanggil fungsi. Misalnya, pemanggilan fungsi pengurutan tidak mengharuskan pemanggil untuk mengetahui bagaimana elemen diurutkan, cukup mengetahui bahwa fungsi tersebut akan mengembalikan hasil dalam urutan tertentu. Dengan demikian, fungsi memberikan lapisan yang menyederhanakan alur logika program.

Tingkat abstraksi ini memungkinkan pengembang untuk fokus pada struktur utama program tanpa terjebak dalam detail teknis yang rumit, meningkatkan produktivitas dan mengurangi kemungkinan kesalahan.

Artikel ini didedikasikan kepada: Yosie Paksi Vidiyuananta, Achmad Syamsul, Ahmad Arizal Syahida, Alif Wahyu Prasetyo, dan Alifia Hena Hamida.

5 komentar untuk "Fungsi Bahasa C Beserta Penjelasannya"

  1. Apa yang dimaksud dengan fungsi pada Bahasa C?

    BalasHapus
    Balasan
    1. Fungsi pada bahasa C merupakan blok bangunan dasar dari suatu program.

      Hapus
    2. Fungsi merupakan sekumpulan pernyataan yang diapit dalam tanda kurung kurawal yang mengambil input, melakukan komputasi, dan menyediakan output yang dihasilkan.

      Hapus
    3. Fungsi pada bahasa C dapat dipanggil berkali-kali, sehingga memungkinkan penggunaan kembali dan modularitas dalam pemrograman C.

      Hapus
    4. Fungsi merupakan blok kode program yang hanya berjalan ketika dipanggil. Fungsi dapat digunakan untuk meneruskan data, yang dikenal sebagai parameter, ke dalam suatu fungsi. Fungsi digunakan untuk melakukan tindakan tertentu.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -