tupen - modul 1 - fungsi rekursif

Upload: wizz

Post on 06-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    1/9

    PRAKTIKUM ALGORITMA STRUKTUR DATA

    TUGAS PENDAHULUAN

    MODUL 1 FUNGSI REKURSIF

    Sesi : D1

    Nama Praktikan :

    OKTYAAN ADITYA !1"#$"1"1%#&

    ASISTEN :

    Min Umami !"'#$"1"1((&

    D)*+ Herr+ant, !"'#$"1"1("&

    LA-ORATORIUM PEMROGRAMAN KOMPUTER

    .URUSAN TEKNIK INFORMATIKA

    FAKULTAS TEKNOLOGI INDUSTRI

    UNI/ERSITAS PEM-ANGUNAN NASIONAL 0/ETERAN .AA TIMUR

    2"11

    LEM-AR PENGESAHAN

    Telah diperiksa dan disetujui Tugas Pendahuluan :

    Praktikum : Algoritma Struktur Data

    Modul : 1

    Judul : FUNGS !"#U!SF

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    2/9

    !om$ongan : D

    Group : 1

    Sura$a%a& Selasa '( Maret ')11

    Men%etujui&

    Asisten Penguji

    !333333333333333333&

    NPM:

    TUGAS PENDAHULUAN ! TUPEN&

    M,*)4 1 F)n5si Rek)rsi6

    I7 Dasar Te,ri

    Fungsi rekursi* adalah *ungsi %ang memanggil dirin%a sendiri+ Fungsi ini akan terus $erjalan

    sampai kondisi $erhenti terpenuhi& oleh karena itu dalam se$uah *ungsi rekursi* perlu

    terdapat ' $lok penting& %aitu $lok %ang menjadi titik $erhenti dari se$uah proses rekursi dan

    $lok %ang memanggil dirin%a sendiri+

    ,ontoh - .ontoh penerapan rekursi* :

    1+ Fungsi .etak ke la%ar

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    3/9

    Fungsi ini men.etak nilai dari paremeter %ang dilempar kepadan%a+ Jika nilai dari

    parameter terse$ut / )& *ungsi akan men.etak nilai dari parameter terse$ut dan kemudian

    memanggil dirin%a lagi& jika tidak& program $erhenti+

    '+ Fungsi pangkat

    Fungsi ini digunakan untuk menghitung nilai: 0n

    dengan n $erupa $ilangan $ulat positi*+Solusi dari persoalan ini:

    J#A n 1 MA#A 0n 0

    S"2AN TU: 0n 0 3 0n41

    Se$agai .ontoh diam$il nilai 05 dengan n6& pelukisan proses peme.ahann%a:

    7erikut adalah *ungsi pangkat dengan menggunakan solusi di atas:

    a adalah $ilangan %ang dipangkatkan& sedangkan $ adalah $ilangan pemangkatn%a+ Jikanilai dari $ adalah 1& return a& lainn%a return a dikali dengan *ungsi pangkat dengan

    parameter a dan $41+ Untuk le$ih jelas& terapkan dalam program+

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    4/9

    6+ Fungsi *aktorial

    Faktorial dapat di$uat dengan menerapkan rekursi*+ 7erikut ini adalah *ungsi *aktorial

    rekursi* dari se$uah program+

    Fungsi *aktorial diatas akan melakukan rekursi selama nilain%a / 1+ Se$agai .ontoh:

    89& pelukisan pen%elesaiann%a:

    II7 S,a4

    1+ 7uatlah program untuk melakukan operasi perkalian antara $e$erapa $ilangan %ang

    di*aktorialkan999

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    5/9

    III7 A45,ritma

    1+ Mulai+

    '+ Telah di inisialisasi $aha ; int *aktorial& ? ;int *aktorial : @

    8+ 7ilangan dari nilai > %ang telah di inputkan akan di *aktorialkan+

    5+ ,etak hasil *aktorial dari nilai >+

    + nputkan $ilangan untuk *aktorial dari nilai % : @

    B+ 7ilangan dari nilai % %ang telah di inputkan akan di *aktorialkan+

    C+ ,etak hasil *aktorial dari nilai %+

    (+ Telah disimpan nilai *aktorial dari kedua nilai >& ? %+

    1)+ Tekan "nter& untuk melanjutkan+

    11+ Maka hasil $ilangan dari kedua nilai >& ? % akan dikalikan+ Seperti %ang telah di inisialisasikan

    $aha = int kali= memiliki proses : kali *aktorialE 3 *aktorial

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    6/9

    16+ Telah di inisialisasikan $aha ;.har %es= untuk melakukan proses pengulangan program+

    18+ Apakah ingin mengulang programTE@ Jika inputan H%III kem$ali ke langkah ke41+

    15+ Namun jika inputan HtIITI kerjakan langkah ke41+

    1+ Selesai+

    I/7 F4,89art

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    7/9

    /7 S,)r9e ;,*e

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    8/9

    #include#include#include

    int faktorial_a(int);

    int faktorial_b(int);

    int faktorial_a(int a){

    if(a == 1)return(1);elsereturn(a*faktorial_a(a-1));

    int faktorial_b(int b){

    if(b == 1)

    return(1);elsereturn(b*faktorial_b(b-1));

    !oid "ain(){

    char es;do{sste"($cls$);int %;

    &rintf($''=============================================''n$);&rintf($'' ** +, +raktiku" ./.0 /esi 01 ** ''n$);&rintf($''=============================================''n$);&rintf($'' encari ilai 2aktorial dari %3 ''n$);&rintf($''---------------------------------------------''n$);&rintf($ => asukkan nilai % (bil. bulat &ositif)4 $);scanf($5d$6 7%);&rintf($ ==> 2aktorial dari 5d adalah4 5dn$6 %6 faktorial_a(%));

    int ;&rintf($''=============================================''n$);&rintf($'' encari ilai 2aktorial dari 3 ''n$);&rintf($''---------------------------------------------''n$);

    &rintf($ => asukkan nilai (bil. bulat &ositif)4 $);scanf($5d$6 7);&rintf($ ==> 2aktorial dari 5d adalah4 5dn$6 6 faktorial_b());&rintf($''=============================================''n$);&rintf($''================8ekan ,nter9================''nn$);:etch();

    int kali;kali=faktorial_a(%)*faktorial_b();

    &rintf($''

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%''n$);&rintf($'' +,/ +,? (%) ''n$);&rintf($''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%''n$);

    &rintf($ => @asil &erkalian dari (5d%5d) = 5dn$6faktorial_a(%)6

    faktorial_b()6kali);&rintf($''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%''n$);

  • 7/21/2019 TUPEN - Modul 1 - Fungsi Rekursif

    9/9

    fflush(stdin);&rintf($ n:in "en:ulan: &ro:ra"AA (BC) 4 $);scanf($5c$67es);while(es == DD'' es == DBD);&rintf($''%%%%%%%%%%%%%%%{eri"a asih3%%%%%%%%%%%%%%%''nn$);

    /I7 O)t& ? %: