Fungsi Dalam Bahasa C - AP


Selama ini, kalian telah sering bertemu dengan fungsi. Di Matematika, kalian membuat suatu persamaan menggunakan fungsi seperti y = f(x) = x + 1. Fungsi f(x) menerima sebuah masukan x yang disebut fungsi daerah dan menghasilkan nilai y yang merupakan fungsi wilayah. Fungsi sangat berhubungan dengan kemampuan abstraksi yang telah kalian pelajari di berpikir komputasional sehingga program yang kalian tulis dapat ditulis dengan lebih baik.

Sejauh ini, kalian juga telah menggunakan beberapa fungsi dalam berlatih pemrograman. Pada Diagram Alir, kalian telah mengenal sebuah simbol subprogram untuk memberikan abstraksi dari suatu proses lain yang kalian gunakan dalam solusi kalian. Pada program bahasa C, struktur main merupakan sebuah fungsi yang akan dieksekusi oleh sistem operasi ketika program dijalankan. Selain itu, kalian pun telah menggunakan fungsi seperti printf dan scanf.

Pada hakikatnya, fungsi pada program melambangkan suatu kumpulan pernyataan yang memiliki tujuan tertentu. Tujuan tersebut direpresentasikan oleh nama dari fungsi tersebut. Misalnya, scanf yang memiliki fungsi untuk membaca (scan) nilai dari pengguna. Fungsi juga dapat menerima parameter-parameter, dan juga dapat mengembalikan suatu nilai. Dengan membungkus kumpulan instruksi tadi ke dalam suatu fungsi, kalian dapat menggunakan kembali fungsi tersebut di berbagai lokasi dalam program kalian. 

$ads={1}

Membuat Fungsi

Saat membuat suatu fungsi baru, kalian perlu menentukan tiga hal tersebut: nama fungsi yang merepresentasikan tujuan dari fungsi, parameter yang dimasukkan ke dalam fungsi, serta nilai yang dikembalikan. Ketiga informasi ini disebut prototipe dari fungsi. Adapun pernyataan-pernyataan yang ada di dalam fungsi tersebut disebut implementasi dari fungsi.

Misal, kalian akan membuat sebuah fungsi untuk menghitung luas lingkaran. Maka, kalian perlu menetapkan ketiga hal tersebut dan menghasilkan prototipe fungsi berikut. Dari prototipe tersebut, kalian dapat melihat bahwa fungsi hitungLuasLingkaran memerlukan sebuah parameter dengan tipe data float yang merupakan radius dari lingkaran. Saat dipanggil, fungsi ini akan mengembalikan sebuah nilai float yang merupakan luas lingkaran.

float hitungLuasLingkaran(loat radius);

Jika dituliskan lengkap dengan implementasinya, fungsi tersebut dapat ditulis menjadi:

float hitungLuasLingkaran(float radius) {
    float luas;
    luas = 3.14 * radius * radius;
    return luas;
}

Pada kode program tersebut, kata kunci return digunakan untuk mengakhiri fungsi dan mengembalikan suatu nilai. Dalam hal ini, nilai yang dikembalikan ialah luas lingkaran.

Perlu diingat bahwa prototipe dari fungsi-fungsi berikut akan dianggap sebagai fungsi yang berbeda karena memiliki parameter yang berbeda dari tipe data. Hal ini disebut overloading.

float hitungLuasLingkaran(float radius);
float hitungLuasLingkaran(int radius);

Kalian juga dapat membuat fungsi dengan jumlah parameter lebih dari satu. Misalnya, untuk menghitung luas persegi panjang berikut:

float hitungLuasPersegiPanjang(float panjang, float lebar);

Tentunya, kalian juga dapat membuat fungsi yang tidak memiliki parameter masukan, seperti yang kalian lakukan pada saat membuat fungsi main() pada program.

Memanggil Fungsi

Setelah dibuat, fungsi dapat dipanggil (function call) di dalam kode program. Perhatikan kode program berikut yang akan memanggil fungsi hitungLuasLingkaran yang telah dibuat.

/* Program Hitung Luas Lingkaran */
#include <stdio.h>
float hitungLuasLingkaran(float radius) {
    float luas;
    luas = 3.14 * radius * radius;
    return luas;
}

int main() {
    float radius, luas;
    scanf("%f", &radius);
    luas = hitungLuasLingkaran(radius);
    printf("%f\n", luas);
}

Kalian juga dapat memanggil suatu fungsi di fungsi lain yang kalian buat. Misalnya, kalian ingin membuat fungsi untuk menghitung luas permukaan bola. Kalian dapat menulisnya menjadi:

/* Program Hitung Luas Bola */
float hitungLuasBola(float radius) {
    float luas;
    luas = 4.0 * hitungLuasBola(radius);
return luas;
}

int main() {
    float radius, luasBola;
    scanf("%f", &radius);
    luasBola = hitungLuasBola(radius);
    printf("%f\n", luasBola);
return 0;
}

Variabel Lokal pada Fungsi

Pada contoh-contoh di atas, kalian akan menemukan adanya deklarasi variabel dengan identifier yang sama. Misalnya, variabel luas kalian temukan di dalam fungsi hitungLuasLingkaran dan hitungLuasBola. Kedua variabel tersebut disimpan pada alamat memori yang berbeda yang hanya bisa diakses di dalam fungsi tempat variabel tersebut berada. Dengan kata lain, keduanya ialah variabel lokal yang tidak saling berhubungan.

Praktik Baik Pemrograman

Gunakan fungsi untuk melakukan abstraksi. Kumpulkan fungsi-fungsi yang telah kalian buat agar dapat digunakan kembali untuk membuat program dengan lebih cepat. Kumpulan fungsi ini dapat kalian satukan menjadi sebuah pustaka atau library. Apabila pustaka tersebut memiliki manfaat yang besar dan dibutuhkan oleh banyak orang, kalian dapat membuat pustaka tersebut menjadi publik.


Ayo, Kita Berlatih 7: Latihan Fungsi

  1. Buatlah kode program dari Diagram Alir 1 pada bagian algoritma, yaitu menghitung luas permukaan kubus.
  2. Buatlah sebuah fungsi untuk menghitung luas dan keliling bangun datar, seperti persegi panjang, lingkaran, dan segitiga.
  3. Buatlah sebuah fungsi untuk menghitung luas permukaan bangun ruang seperti balok, kerucut, bola, dan limas.

Jawablah pertanyaan berikut dalam Lembar Refleksi pada Buku Kerja. Jangan lupa mencatat kegiatan dalam Jurnal.

  1. Pada bagian ini, kalian mendapatkan banyak konsep baru tentang program. Seperti apa perasaan kalian saat ini?
  2. Apakah kalian bereksperimen dengan contoh-contoh yang diberikan di buku? Jika ya, pengetahuan paling menarik apa yang kalian temukan dari hasil eksperimen tersebut?
  3. Apakah kalian telah merasakan manfaat dari penggunaan fungsi?
  4. Kesalahan apa yang sering kalian lakukan saat membuat fungsi?

Penutup: Coding dan Pemrograman

Pada bagian-bagian sebelumnya, kalian telah melaksanakan beberapa kegiatan latihan untuk mempelajari cara menuliskan program menggunakan bahasa C. Apakah ini berarti kalian telah menguasai pemrograman? Belum tentu karena kompetensi utama yang kalian pelajari ialah kemampuan menulis kode program yang disebut coding.

Pada Tabel berikut, kalian dapat melihat perbedaan antara coding dan pemrograman dari berbagai aspek. Dengan memperhatikan tabel tersebut, kalian akan menyadari bahwa kemampuan yang kalian latih selama ini ialah kemampuan coding. Kalian juga dapat melihat hal-hal yang harus kalian pelajari lebih lanjut untuk menguasai pemrograman. Walaupun demikian, karena unit ini disusun dengan adanya aktivitas menyelesaikan permasalahan, kalian telah menyentuh beberapa aspek pemrograman seperti merancang algoritma, menguji kode program, dan memberikan solusi sederhana pada suatu permasalahan yang diberikan. Perlu diingat juga, bahwa permasalahan diberikan pada kalian dalam bentuk spesifikasi program yang telah terstruktur. Pada pemrograman, kalian sendirilah yang harus merancang spesifikasi program tersebut.

Tabel Perbedaan antara Coding dan Pemrograman

Aspek Coding Pemrograman
Definisi Kegiatan menulis kode program dengan menggunakan bahasa pemrograman tertentu. Proses mengembangkan sebuah solusi program untuk menyelesaikan masalah tertentu.
Perangkat yang Digunakan Editor teks sudah cukup. Perangkat analisis, desain, editor, dan pengujian.
Keahlian yang Dibutuhkan Kemampuan membaca dan mengetik (menuliskan) sintaks bahasa pemrograman dengan benar. Kemampuan berpikir komputasional, merancang algoritma, memodelkan permasalahan, dan manajemen proyek.
Hasil Kode sederhana dengan banyak batasan. Program yang siap digunakan oleh pengguna.

Pada unit PLB, kalian akan merasakan kegiatan pemrograman langsung untuk menyelesaikan permasalahan di sekitar kalian. Untuk mempersiapkan kalian mengikuti kegiatan PLB tersebut, di akhir unit ini, ada beberapa permasalahan yang diberikan untuk kalian kerjakan. Spesifikasi program tidak diberikan sehingga kalian perlu memanfaatkan kemampuan berpikir komputasional kalian dengan lebih maksimal.

Ayo, Kita Berlatih 8: Latihan Pemrograman

Pada bagian ini, kalian akan diberikan beberapa problem yang harus kalian selesaikan melalui pemrograman. Gunakan kemampuan berpikir komputasional kalian untuk menganalisis permasalahan yang diberikan. Rancanglah strategi dalam bentuk algoritma untuk menyelesaikan permasalahan tersebut. Kemudian, implementasikan algoritma tersebut ke dalam bentuk program menggunakan bahasa C.

Problem 1. Mencetak Faktor Prima (Tingkat Kesulitan: ****)

Kalian pasti telah mengenal faktor prima dari suatu bilangan. Misalnya, 20 akan memiliki faktor prima 2 dan 5. Rancang dan buatlah sebuah program untuk mencetak faktor prima dari sebuah bilangan bulat yang diberikan.

Problem 2. Mengecek Bilangan Prima (Tingkat Kesulitan: ****) 

Apakah 713 merupakan bilangan prima? Rancang dan buatlah sebuah program yang dapat kalian gunakan untuk mengecek keprimaan suatu bilangan bulat yang diberikan.

Problem 3. Mengecek Tanggal (Tingkat Kesulitan: ****)

Menulis tanggal tidak boleh sembarang. Ada aturan-aturan yang berlaku. Misalnya, ada aturan tahun kabisat serta jumlah hari dalam suatu bulan yang telah ditentukan. Pada problem ini, tugas kalian ialah merancang dan membuat sebuah program yang dapat memeriksa apakah sebuah tanggal dengan format yang kalian rancang, saat diberikan oleh pengguna dinyatakan benar. 

Apa Komentarmu?

Komentar yang dirasa merugikan situs ini akan dihapus. Terima kasih telah berkunjung

Lebih baru Lebih lama