MODUL 10
NAMA : FIRMAN ABDILLAH
NIM : 243305072
KELAS : TL 1C
PRAKTIKUM 10 -
FUNGSI
Pengertian Fungsi
Fungsi merupakan suatu bagian dari program C yang di maksudkan untuk
mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang
memanggilnya. Fungsi merupakan elemen utama dalam C karena Bahasa C sendiri
terbentuk dari Kumpulan fungsi-fungsi. Dalam setiap program , setidaknya terdapat satu
fungsi utama yang merupakan fungsi awal pemanggilan program yaitu fungsi main().
Fungsi Rekursif
Fungsi rekursif adalah fungsi yang memanggilnya dirinya sendiri. Kita bisa
menyebutnya Loop namun tetap sebagai suatu fungsi . Perbedaannya dengan fungsi biasa
adalah bahwa rekursif bisa memanggil dirinya sendiri, tetapi fungsi biasa harus dipanggil
lewat pemanggil prosedur atau fungsi.
Fungsi Prosedur (Void)
Prosedur adalah jenis fungsi yang berbeda lainnya dalam hal ini void. Prosedur dan
fungsi biasa adalah 2 jenis intruksi yang berbeda. Dalam prosedur tidak ada
pengembalian nilai seperti fungsi biasa. Namun prosedur dan fungsi sama sama terpisah
dari program utama.
1. Gambarkan pada lembar jawaban praktikum 10 mengenai flowchart pemrogaman
yang menggunakan fungsi khusus.
a.
Mulai (Oval):
Program mulai dieksekusi dari titik ini.
Input: Masukkan Jari-jari (r) (Jajaran Genjang):
Program meminta pengguna untuk memasukkan nilai jari-jari ( r), yang
digunakan dalam perhitungan luas lingkaran.
Masukan ini ditangkap melalui scanfkode C.
Hitung Luas = PHI * r * r (Persegi Panjang):
Langkah ini melakukan perhitungan luas lingkaran. Rumus untuk luasnya
adalah:
Daerah
=
PHI
𝑅
Bahasa Indonesia:
𝑅
Bahasa Indonesia:
Daerah=PHI :R R
Di sini, PHIdidefinisikan 3.14melalui sebuah #definearahan pada awal kode.
Perhitungan ini ditangani oleh lingkaranfungsi dalam kode C.
Output: Area Tampilan (Jajaran Genjang):
Setelah menghitung luas, program menampilkan hasilnya kepada pengguna.
Hal ini dilakukan dengan menggunakan printfkode C, yang menghasilkan area
yang diformat ke dua tempat desimal.
Ujung (Oval):
Program mengakhiri eksekusinya di sini setelah menampilkan luas area yang
dihitung. (coding 1)
b.
Mulai (Oval):
Program mulai dieksekusi.
Input: Masukkan bilangan bulat N (Jajaran Genjang):
Program meminta pengguna untuk memasukkan bilangan bulat Nuntuk
menghitung faktorialnya.
Masukan ini ditangkap dalam scanffungsi main.
Panggil fungsi faktorial(N) (Persegi Panjang):
Fungsi tersebut mainmemanggil faktorialfungsi dengan integer Nsebagai
argumennya.
Apakah N = 0? (Berlian):
Titik keputusan ini memeriksa apakah N0.
Jika N0, berarti kita telah mencapai kasus dasar perhitungan faktorial.
Ya - Kembali 1 (Persegi Panjang):
Jika N0, fungsi akan kembali 1(sebagai 0! = 1), mengakhiri pemanggilan
rekursif.
Tidak - Kembalikan N * faktorial(N - 1) (Persegi Panjang):
Jika Ntidak 0, fungsi tersebut memanggil dirinya sendiri secara rekursif
dengan N - 1.
Ia dikalikan Ndengan hasil panggilan rekursif berikutnya untuk menghitung
N!.
Output: Menampilkan hasil faktorial (Jajaran Genjang):
Setelah menghitung faktorial, program menampilkan hasilnya kepada
pengguna.
Hal ini ditangani oleh printfpernyataan di main.
Ujung (Oval):
Program berakhir setelah menampilkan hasilnya. (coding 2)
c.
Berikut adalah penjelasan dari flowchart program Anda:
1. Mulai
Program dimulai dan siap menjalankan serangkaian instruksi.
2. Deklarasi Variabel
Program mendeklarasikan dua variabel x dan y bertipe int untuk menyimpan
input dari pengguna.
3. Input x
Program meminta pengguna memasukkan nilai untuk x.
Program menampilkan pesan "X = ".
Pengguna memasukkan nilai, dan nilai tersebut disimpan dalam variabel x
menggunakan scanf("%d", &x);.
4. Input y
Program meminta pengguna memasukkan nilai untuk y.
Program menampilkan pesan "Y = ".
Pengguna memasukkan nilai, dan nilai tersebut disimpan dalam variabel y
menggunakan scanf("%d", &y);.
5. Panggil Fungsi tambah(x, y)
Setelah nilai x dan y dimasukkan, program memanggil fungsi tambah dengan
x dan y sebagai argumen.
Di dalam fungsi tambah:
Deklarasi Variabel p: Fungsi mendeklarasikan variabel p untuk menyimpan
hasil penjumlahan.
Proses Penjumlahan: Nilai p diisi dengan hasil penjumlahan a + b, di mana a
dan b adalah parameter yang mewakili x dan y.
Output Hasil Penjumlahan: Fungsi mencetak hasil penjumlahan dengan pesan
"X + Y = [hasil]", di mana [hasil] adalah nilai p.
6. Kembali ke main()
Setelah menjalankan fungsi tambah, program kembali ke main().
7. Selesai
Program selesai dan keluar dari fungsi main().
Jadi, alur flowchart ini secara keseluruhan menggambarkan proses input,
pemanggilan fungsi untuk penjumlahan, dan menampilkan hasil penjumlahan
kepada pengguna.
2. Buatlah code program menggunakan aplikasi Dev-C++ meliputi:
[Link] code program yang telah ditampilkan pada praktikum 10
a.
Analisa code
Program ini bertujuan untuk menghitung luas lingkaran berdasarkan jari-jari yang
dimasukkan. Berikut adalah alur kerjanya:
1. Deklarasi Konstanta: Program menetapkan nilai konstanta untuk pi (π), yaitu 3.14,
yang akan digunakan dalam perhitungan luas lingkaran.
2. Fungsi Penghitung Luas: Program memiliki fungsi khusus untuk menghitung luas
lingkaran. Fungsi ini menerima jari-jari sebagai input, kemudian menghitung luas
menggunakan rumus π * r * r, dan mengembalikan hasilnya.
3. Input dari Pengguna: Di dalam fungsi utama, program meminta pengguna untuk
memasukkan nilai jari-jari lingkaran.
4. Perhitungan dan Output: Setelah nilai jari-jari dimasukkan, fungsi yang
menghitung luas lingkaran dipanggil dengan jari-jari tersebut sebagai input. Hasil
perhitungan luas kemudian ditampilkan kepada pengguna dengan format dua angka
desimal.
5. Akhir Program: Program mengakhiri eksekusi setelah menampilkan hasil
perhitungan.
Program ini memisahkan logika perhitungan luas dalam fungsi tersendiri, sehingga
lebih terstruktur dan mudah dipahami.
Environtment yang dipakai
Dalam kode ini, tipe data float digunakan untuk menyimpan nilai jari-jari dan luas
lingkaran karena dapat merepresentasikan angka desimal dengan presisi yang cukup
untuk perhitungan dasar. Float menggunakan 4 byte memori, mengikuti standar IEEE
754, dan cocok untuk operasi dengan konstanta π. Output luas ditampilkan dengan
dua angka di belakang koma, cukup efisien untuk kebutuhan perhitungan luas
lingkaran tanpa memerlukan presisi tinggi seperti doubl.
b.
Analisa code
Program dimulai dengan deklarasi fungsi faktorial, yang akan digunakan untuk
menghitung faktorial secara rekursif. Fungsi utama (main) meminta pengguna untuk
memasukkan bilangan bulat N sebagai input. Setelah N dimasukkan, fungsi
faktorial dipanggil dengan N sebagai argumen, dan hasil faktorialnya dicetak ke
layar.
Fungsi faktorial memiliki logika rekursif untuk menghitung faktorial. Jika nilai N
sama dengan 0, fungsi mengembalikan 1, yang merupakan kasus dasar dalam
perhitungan faktorial (0! = 1). Jika N lebih besar dari 0, fungsi akan memanggil
dirinya sendiri dengan nilai N - 1 dan mengalikan hasilnya dengan N. Proses ini
berlanjut sampai mencapai kasus dasar (N = 0), kemudian hasil akhir dikembalikan
ke fungsi utama untuk ditampilkan.
Program ini menggunakan tipe data long int untuk menangani nilai faktorial yang
besar, karena faktorial tumbuh sangat cepat seiring bertambahnya N.
Environtment yang dipakai
Fungsi printf digunakan untuk menampilkan pesan dan hasil perhitungan di layar,
sedangkan scanf berfungsi untuk menerima input dari pengguna. Kedua fungsi ini
merupakan bagian dari pustaka standar C (stdio.h) dan mendukung interaksi input-
output dalam program, memungkinkan pengguna untuk memasukkan nilai dan
melihat hasilnya secara langsung.
c.
Analisa code
Variabel global x dan y dideklarasikan di luar fungsi manapun, yang berarti nilainya dapat
diakses oleh seluruh bagian program. Fungsi tambah menerima dua argumen, yaitu a dan b,
yang digunakan untuk menghitung penjumlahan keduanya dan menampilkan hasilnya
melalui printf.
Di dalam fungsi main, program meminta pengguna untuk memasukkan nilai untuk variabel x
dan y menggunakan scanf. Nilai-nilai tersebut kemudian diteruskan sebagai argumen ke
dalam fungsi tambah, yang akan menghitung dan menampilkan hasil penjumlahannya.
Environtment yang dipakai
Fungsi printf digunakan untuk menampilkan pesan atau hasil di layar, sementara scanf
digunakan untuk membaca input dari pengguna. Keduanya merupakan bagian dari pustaka
standar C (stdio.h) yang memungkinkan interaksi antara program dan pengguna, dengan
printf untuk output dan scanf untuk input. Fungsi void pada deklarasi fungsi menunjukkan
bahwa fungsi tersebut tidak mengembalikan nilai
B. Code program untuk menyelesaikan permasalahan
Analisa penumpang pesawat di Bandara XYZ .
Hasil compi &run dari progam
Buatlah laporan mengenai progam yang telah dibuat
Analisa code
program ini digunakan untuk menghitung dan menampilkan beberapa statistik terkait
jumlah penumpang pesawat dalam satu tahun operasional berdasarkan input bulanan.
Fungsi inputPenumpang menerima beberapa parameter, termasuk total penumpang
tahunan (t), jumlah penumpang tertinggi (tb), terendah (tk), rata-rata penumpang bulanan
(r), dan jumlah penumpang per bulan (p). Di dalam fungsi ini, variabel-variabel tersebut
diinisialisasi dengan nilai default, kemudian program meminta input jumlah penumpang
untuk setiap bulan dari 1 hingga 12.
Untuk setiap bulan, jumlah penumpang yang dimasukkan akan dijumlahkan untuk
mendapatkan total tahunan (t). Jika jumlah penumpang untuk bulan tersebut lebih tinggi
dari bulan sebelumnya, nilai tersebut akan disimpan sebagai jumlah tertinggi (tb), sementara
jika lebih rendah, nilai tersebut akan disimpan sebagai jumlah terendah (tk). Setelah semua
bulan diproses, rata-rata penumpang bulanan dihitung dengan membagi total penumpang
tahunan dengan 12.
Fungsi cout digunakan untuk menampilkan hasil perhitungan, termasuk jumlah penumpang
tertinggi, terendah, total penumpang tahunan, dan rata-rata bulanan.
Program ini menggunakan pendekatan prosedural untuk menghitung dan menyajikan data,
dan berfungsi untuk memberikan informasi statistik tentang jumlah penumpang dalam
setahun berdasarkan input yang dimasukkan pengguna.