Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

KONSEP PEMROGRAMAN
REKURSI

DISUSUN OLEH :
VIGO AGMEL SADEWA
M0519081

ASISTEN :
1. IMANUEL BUDI KURNIAWAN (M0518024)
2. RIFQI EKA HARDIANTO (M0518046)

PROGRAM STUDI INFORMATIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
SURAKARTA
KAMIS, 31 OKTOBER 2019
Penjelasan Kerja Program

1. Problem B. Faktorial Ganjil-Genap

Program ini berisi input berupa suatu bilangan bulat positif dan outputnya
berupa faktorial ganjil-genap dari bilangan input.

Contoh : input : 4

Output : 4/2 x 3 x 2/2 x 1

= 6

2. Problem C. Komposisi Fungsi II

Program ini berisi input empat buah bilangan bulat A, B, K, dan x dan output
rekursi (A*f(X, K-1) + B), A dan B konstan, K adalah jumlah pengulangan fungsi,
dan x adalah nilai variabel x.
3. Problem D. Kasur Rusak

Program ini, digunakan untuk mengecek suatu kata palindrome atau tidak.
User menginput suatu kata atau kalimat, dan program akan menampilkan string “YA”
jika palindrome, dan string “BUKAN” jika tidak palindrome.

4. Problem E. Konversi Biner

Program ini berisi input sebuah bilangan desimal integer dan output berupa
bilangan biner dari
ANALISIS PROGRAM

Problem B. Faktorial Ganjil-Genap

 Baris 3, membuat fungsi int Faktorial, lalu mengassign input ke int number dan
masuk ke dalam fungsi perbandingan. if, jika number = 0 atau number = 1, maka akan
return 1, sesuai dengan logika faktorial karena 1 dan 0 ! nilainya 1. Lalu jika number
modulo 2 = 0, maka, deklarasi number = number/2 * Faktorial(number-1). Ini akan
membuat nilai dari faktorial genap dibagi 2 dan dikalikan dengan nilai rekursi number
- 1 yang diulangi kembali. Jika perbandingan tidak ada yang terpenuhi, masuk ke
perbandingan else dan deklarasi number * Faktorial(number-1), mirip dengan fungsi
else if kedua.
 Baris ke 18 masuk ke fungsi main, deklarasi int N. Lalu mengassign input ke var. N
dan memanggil fungsi Faktorial(N).
Problem C. Komposisi Fungsi II

 Deklarasi int A,B


 Baris 5, deklarasi int fungsi(int X, int K). Lalu masuk ke perbandingan if jika k = 0,
maka return X. Jika if tidak terpenuhi, masuk ke else, sehingga fungsi me-return nilai
mutlak dari (A*fungsi(X,K-1)+B). Nilai A dan B di sini konstan, dan rekursi akan
berulang sampai nilai K = 0.
 Baris 14, masuk ke fungsi main. Deklarasi int K dan X di dalam fungsi main. Lalu
input 4 integer yang diassign masing-masing ke var A, B, K dan X. Lalu, program
akan print integer yang diambil dari pemanggilan fungsi(X,K) dan \n.
Problem D. Kasur Rusak

 Program ini menggunakan library string.h untuk menggunakan fungsi strlen


 Baris 4, deklarasi typedef char podo[1000] indeks, sehingga array podo menjadi nama
lain dari type data char.
 Baris 5, memasuki fungsi int palindrome(podo kata, int i, int y). Lalu, deklarasi int k
=y/2. Dan masuk ke perbandingan if, jika y = k, maka printf “YA\n”. Jika tidak
terpenuhi masuk ke else if, jika kata[i] != kata[y], maka printf “BUKAN”. Jika suatu
kata bukan palindrome, otomatis saat huruf yang dibandingkan beda, akan masuk ke
fungsi else if ini dan rekursi berhenti.
 Baris 13, jika perbandingan tidak ada yang terpenuhi, masuk ke else sehingga return
palindrome(kata,i+1,y-1). Rekursi akan terus berulang sampai huruf yang
dibandingkan ada yang beda, dan jika tidak ada yang beda sampai nilai y = k, maka
kata itu dianggap palindrome
 Baris 18, masuk ke fungsi main, deklarasi podo kata (char kata dengan indeks 1000).
gets(kata) untuk mengassign input string ke array kata. Deklarasi int i, k = 0 untuk
digunakan ke fungsi palindrome. Lalu deklarasi i = strlen(kata). Strlen digunakan
untuk menghitung jumlah karakter. Lalu panggi fungsi palindrome(kata,k,i-1). i
dikurangi 1 karena untuk diassign sebagai indeks yang dimulai dari 0 sedangkan
strlen dimulai dari 1.
Problem E. Konversi Biner

 Deklarasi fungsi int biner(int x), lalu masuk ke perbandingan if, jika x = 1, maka
return printf (“1”). Jika x modulo 2 == 0, masuk ke else if, sehingga return biner(x/2)
+ printf 0. Ini akan membuat rekursi program berulang sekaligus printf (“0”). Jika
kondisi perbandingan tidak ada yang terpenuhi, masuk ke else, sehingga return biner
(x/2) sekaligus printf(“1”).
 Baris ke 15 memasuki fungsi main. Deklarasi int a, lalu input suatu int diassign ke
var. a. Memanggil fungsi biner(a), sekaligus printf \n
Keterangan:

*include

suatu syntax untuk memberitahu kepada compiler bahwa program yang kita buat akan
menggunakan file-file yang didaftarkan. Tanda ‘< >’ berfungsi agar file header dianggap
pada direktori default yang telah yang telah ditentukan oleh compiler. Stdio.h merupakan
singkatan dari “standar input/output header” yang berisi definisi makro, konstanta, dan
deklarasi fungsi dari dua jenis yang digunakan untuk berbagai standar input output operasi.

* main()
berfungsi sebagai fungsi pertama yang dieksekusi saat program dijalankan. int didepan main
adalah tipe data yang akan dikembalikan.
*printf()

Berfungsi untuk menampilkan output program dengan bermacam bentuk.

*scanf()

Berfungsi untuk membaca inputan dan memasukkannya sebagai nilai suatu parameter.

*char

Tipe data pengenal untuk karakter.

*int

Tipe data pengenal untuk bilangan bulat.

*unsigned int

Tipe data integer positif dan 0.

*float

Tipe data pengenal untuk bilangan desimal.

*double

Tipe data mirip *float, tapi menampung data yang lebih besar.

*Kurung kurawal buka

Berfungsi sebagai pembuka perintah suatu fungsi.


*Kurung kurawal tutup

Berfungsi sebagai penutup perintah suatu fungsi.

*Titik koma

Berfungsi sebagai akhir suatu perintah.

*gets

Menampilkan hasil keluaran berupa string yang bisa diberi spasi.

*if()

Berfungsi untuk membandingkan sebuah pernyataan atau parameter, jika kondisi sesuai,
maka akan menjalankan statement di dalamnya.

*else if()

Berfungsi untuk membandingkan sebuah pernyataan atau parameter, jika kondisi if


sebelumnya tidak sesuai, jika sudah sesuai, maka akan menjalankan statement di dalamnya.

*else

Berfungsi untuk menjalankan statement di dalamnya, apabila kondisi perbandingan sebelum-


sebelumnya tidak ada yang sesuai.

*while()

Berfungsi untuk menerapkan perulangan yang belum diketahui jumlahnya.

*for

Berfungsi untuk melakukan perulangan yang jumlahnya pasti.

*EOF

Bagian dari perulangan while untuk menghentikan loop begitu user menekan tombol Ctrl+z.

*\n

Membuat output mencetak 1 enter.

*\t

Membuat output mencetak 1 tab.


*while

Perintah untuk perulangan dalam bahasa c selama suatu kondisi terpenuhi.

*array

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang
menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik disebut dengan elemen-
elemen larik. Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu
index.