SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Spesifikasi:
                                          Ukuran: 14x21 cm
                                            Tebal: 225 hlm
                                           Harga: Rp 32.800
                                     Terbit pertama: Februari 2005
                                           Sinopsis singkat:

Struktur data merupakan salah satu ilmu fundamental untuk mempelajari pemrograman. Mahasiswa TI
dan orang yang mempelajari TI pasti pernah mempelajarinya, terutama di masa-masa awal perkenalan
                                    dengan dunia pemrograman.
  Seperti buku struktur data lainnya, buku ini akan menjelaskan poin-poin utama dalam struktur data
seperti pointer, linked list, stack, queue, tree, sorting, dan lain-lain. Akan tetapi buku ini ditulis dengan
                      lebih berani dan tampil beda dari buku struktur data lainnya.
9
                                               FUNGSI




9.1     Fungsi
Apabila program yang Anda buat sudah terlalu panjang, Anda akan
kesulitan membaca dan mengerti jalannya program tersebut. Untuk
itu ada baiknya Anda memecahnya menjadi beberapa bagian
(modul) yang tentunya akan lebih memudahkan Anda untuk mencari
kesalahan program dan memperbaikinya serta membuat
dokumentasinya. Untuk membuat modul, C++ menyediakan fungsi.
Fungsi berguna untuk     mengumpulkan statement yang dapat
dijalankan menjadi satu dalam suatu blok dan menjalankannya
kembali hanya dengan menuliskan nama fungsi yang
menampungnya.
Selain itu, fungsi juga banyak dipakai untuk menampung baris-baris
perintah yang sering dipakai dalam sebuah program.
Deklarasi fungsi dapat dilakukan dengan dua cara, yaitu:
   Header fungsi tanpa parameter.
   Header fungsi dengan parameter.



                                                               97
9.1.1       Header Fungsi Tanpa Parameter

Bentuk umum:
     tipeData namaFungsi()

Contoh:
     int JumlahIsi()
     double Random()
     char* Nama()
     void Clear()

Penulisan header fungsi tanpa parameter diawali dengan tipe data
dan diikuti dengan nama fungsi, kurung buka, dan kurung tutup
(‘( )’). Jika fungsi tidak mengembalikan nilai, tipe data yang
digunakan adalah void.
Berikut ini digambarkan struktur blok fungsi tanpa parameter.




            Gambar 9.1 Struktur blok fungsi tanpa parameter


Contoh Soal:

prg0901.cpp                                             Output:
                                                        x = 1
     1   #include <iostream>                            y = 2
     2   using namespace std;                           x+y = 3
     3
                                                        xy = 2
     4   int x;
     5   int y;
     6




98
7     int Tambah()
  8      {
  9        return x + y;
 10      };
 11
 12     int Kali()
 13      {
 14        return x * y;
 15      };
 16
 17     int main()
 18      {
 19        cout << "x = ";
 20        cin >> x;
 21        cout << "y = ";
 22        cin >> y;
 23
 24       cout << "x+y = " << Tambah() << endl;
 25       cout << "xy = " << Kali() << endl;
 26
 27       return 0;
 28      };




9.1.2      Header Fungsi dengan Parameter

Bentuk umum:
   tipeData namaFungsi ( <Daftar_parameter> )

Contoh:
   int Jumlahkan(int a, int b)
   double ArcCos(double x)
   void List(int n, char* header)

Penulisan header fungsi dengan parameter hampir sama dengan
fungsi tanpa parameter, yaitu diawali dengan tipe data, lalu nama
fungsi, dan diikuti dengan parameter-parameter (yang berada di
dalam kurung) yang masing-masing dipisahkan dengan koma
beserta dengan tipenya.
Berikut ini digambarkan struktur blok fungsi dengan parameter.




                                                                 99
Gambar 9.2 Struktur blok fungsi dengan parameter


Contoh Soal:

prg0902.cpp                                           Output:
                                                      x = 1
    1   #include <iostream>                           y = 2
    2   using namespace std;                          x+y = 3
    3                                                 xy = 2
    4   int Tambah(int a, int b)
    5    {
    6      return a + b;
    7    };
    8
    9   int Kali(int a, int b)
   10    {
   11      return a * b;
   12    };
   13
   14   int main()
   15    {
   16      int x, y;
   17
   18     cout << "x = ";
   19     cin >> x;
   20     cout << "y = ";
   21     cin >> y;
   22
   23     cout << "x+y = " << Tambah(x, y) << endl;
   24     cout << "xy = " << Kali(x, y) << endl;
   25
   26     return 0;
   27    };




9.2     Parameter Formal dan Aktual
Jika sebuah fungsi memiliki parameter yang berada di dalam kurung
( ), parameter tersebut disebut sebagai parameter formal, sedangkan



100
parameter yang terdapat pada baris perintah pemanggil fungsi
tersebut disebut sebagai parameter aktual.
Untuk lebih jelasnya, perhatikan penjelasan di bawah ini.

   void Hitung(char a, char b, int &c)
   {                                         a, b dan c adalah
    …                                        Parameter Formal
   };

   int hasil;                             3, 7, dan hasil
                                          adalah Parameter
   Hitung(3, 7, hasil);                   Aktual
   …

Pada contoh di atas, fungsi Hitung memiliki parameter a, b, dan c
yang disebut sebagai parameter formal. Fungsi hitung tersebut
dipanggil pada program utama dengan parameter 3, 7, dan hasil.
Parameter 3, 7, dan hasil dikenal dengan sebutan parameter aktual.
Kemudian, parameter aktual 3, 7, dan hasil tersebut masing-masing
ditransfer kepada parameter formal a, b, dan c sesuai dengan
urutannya sehingga procedure hitung a bernilai 3, b bernilai 7, dan c
berisi variabel penampung hasil.
Transfer parameter akan dijelaskan lebih lanjut pada bagian
berikutnya.


9.3     Transfer Parameter
Saat kita memanggil suatu fungsi dengan parameter, sebenarnya
telah terjadi pengiriman parameter dari parameter aktual (yang
terdapat pada pemanggil fungsi) ke parameter formal (yang terdapat
pada fungsi tersebut). Pengiriman parameter tersebut dapat dilakukan
dengan dua cara, yaitu:
    Transfer paramater by value (secara nilai).
    Transfer parameter by location/reference (secara acuan).


9.3.1     Transfer Parameter by Value
Nilai yang tersimpan dalam parameter dikirim ke fungsi untuk diolah,
tetapi hasil olahan tersebut tidak diminta untuk dikembalikan. Dalam


                                                                 101
mode ini, terjadi aliran 1 arah, yaitu dari pemanggil procedure ke
procedure itu.

Contoh Soal:

prg0903.cpp                                                   Output:
                                                              x = 1
  1        #include <iostream>                                y = 2
                                                              (1, 2)
   2       using namespace std;
   3
   4
   5       void Tampil(int a, int b)
   6        {
   7          cout << "(" << a << ", " << b << ")" << endl;
   8        };
   9
  10       int main()
  11        {
  12          int x, y;
  13
  14         cout << "x = ";
  15         cin >> x;
  16         cout << "y = ";
  17         cin >> y;
  18
  19         Tampil(x, y);
  20
  21
  22        return 0;
  23        };




9.3.2         Transfer Parameter by Location
Transfer paramenter by location sering dikenal juga dengan transfer
parameter by reference (secara acuan). Dalam kasus ini, yang
ditransfer hanya lokasinya saja (dapat berisi data atau kosong) untuk
diolah, lalu hasil olahan tersebut dikembalikan dan disimpan pada
lokasi yang telah ditransfer tersebut. Dalam mode ini, dapat terjadi
aliran 2 arah dari pemanggil fungsi ke fungsi itu dan sebaliknya.

Contoh Soal:

prg0904.cpp
       1    #include <iostream>
       2    using namespace std;


102
3
    4     void Tukar(int &a, int &b)                Output:
    5      {                                        x = 1
    6        int temp;                              y = 2
    7                                               Sekarang x = 2
    8       temp = a;                               Sekarang y = 1
    9       a = b;
   10       b = temp;
   11      };
   12
   13     int main()
   14      {
   15        int x, y;
   16
   17       cout << "x = ";
   18       cin >> x;
   19       cout << "y = ";
   20       cin >> y;
   21
   22       Tukar(x, y);
   23
   24
   25       cout << "Sekarang x = " << x << endl;
   26       cout << "Sekarang y = " << y << endl;
   27
   28       return 0;
   29      };




9.4       Fungsi Rekursif
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi
rekursif dipakai karena memiliki kelebihan, yaitu penulisan baris
program dapat menjadi lebih singkat. Akan tetapi, fungsi ini juga
memiliki kekurangan, yaitu membutuhkan banyak memori karena
setiap kali program bagian dipanggil oleh dirinya sendiri, dibutuhkan
sejumlah ruang memori tambahan.

Contoh Soal:

prg0905.cpp
                                 Output:
      1   #include <iostream>    15 bilangan Fibonacci pertama:
      2   using namespace std;   0, 1, 1, 2, 3, 5, 8, 13, 21,
      3
                                 34, 55, 89, 144, 233, 377




                                                                     103
4
    5
    6   int Fibo(unsigned int n)
    7    {
    8      switch (n)
    9       {
   10       case 0:
   11         return 0;
   12       case 1:
   13         return 1;
   14       default:
   15         return Fibo(n - 1) + Fibo(n - 2);
   16       };
   17    };
   18
   19   int main()
   20    {
   21      int i;
   22
   23     cout << "15 bilangan fibonacci pertama: " << endl;
   24
   25     for (i = 0; i < 15; i++)
   26      {
   27        if (i > 0)
   28          cout << ", ";
   29        cout << Fibo(i);
   30      };
   31
   32     cout << endl;
   33
   34     return 0;
   35    };




9.5     Latihan Soal
1. Buatlah fungsi yang akan menghitung jumlah deretan bilangan
   (deret.cpp).
   Contoh input dan output fungsi tersebut dengan parameter
   pertama untuk menunjukkan banyaknya bilangan dan parameter
   kedua untuk menunjukkan array penampung bilangan:

   Bilangan[0]   =   41
   Bilangan[1]   =   22
   Bilangan[2]   =   72
   Bilangan[3]   =   44

   jumlah(4, Bilangan) = 179

2. Buatlah program untuk menampilkan bilangan prima dari 2
   sampai dengan jumlah yang diberikan melalui parameter
   program. Gunakan fungsi sesuai kebutuhan (tprima.cpp).

104
E:> tprima 7
  7 bilangan prima pertama:
  2 3 5 7 11 13 17

               Gambar 9.3 Contoh tampilan soal nomor 2

3. Buatlah fungsi yang mengembalikan bilangan Fibonacci ke-n
   (fibon.cpp).
   Contoh input dan output fungsi tersebut:

   fibo(0) = 0
   fibo(1) = 1
   fibo(5) = 5
   fibo(9) = 34
   fibo(11) = 89

4. Buatlah program yang menampilkan animasi karakter bergerak
   ke kanan, berhenti, kemudian kembali dengan menerapkan
   gerak lurus berubah beraturan. Setiap kali karakter menabrak
   batas kiri, karakter akan dipantulkan dengan kecepatan yang
   berkurang sesuai dengan deret geometrik. Program berhenti jika
   karakter tidak lagi bergerak (geom.cpp).

  E:> geom
                          O


               Gambar 9.4 Contoh tampilan soal nomor 4

5. Buatlah program yang menampilkan gambar bintang dengan
   panjang sisi diberikan lewat parameter program (bintang.cpp).

  E:> bintang 4
            *
           * *
         *     *
  *****          *****
   *                  *
     *              *
       *          *
     *              *
   *                  *
  *****          *****
         *     *
           * *
            *

               Gambar 9.5 Contoh tampilan soal nomor 5



                                                            105
6. Buatlah program untuk membuat piramida angka seperti pada
   contoh di bawah. Tinggi piramida diberikan lewat parameter
   program (batasi bilangan dari 0 hingga 9) (pirangka.cpp).

  E:> pirangka 7
        1
       121
      12321
     1234321
    123454321
   12345654321
  1234567654321


             Gambar 9.6 Contoh tampilan soal nomor 6

7. Buatlah fungsi untuk mencari FPB dari banyak bilangan
   (fpb.cpp)
8. Buat program untuk menampilkan segitiga pascal menggunakan
    fungsi rekursif (pascal.cpp).

  E:> pascal 3
         1
       1   1
     1   2   1
   1   3   3    1



             Gambar 9.7 Contoh tampilan soal nomor 8

9. Buat program untuk memberikan solusi masalah menara hanoi
    menggunakan fungsi rekursif (hanoi.cpp).
10. Dari suatu himpunan, misalnya {a, b, c, d} dapat dibuat
    kombinasi dua-dua, sehingga menghasilkan {ab, ac, ad, bc, bd,
    cd}, kombinasi tiga-tiga {abc, abd, acd, bcd}, dan seterusnya.
    Buatlah fungsi untuk menghasilkan string kombinasi berdasarkan
    himpunan huruf tertentu (kombhrf.cpp).

   kombinasi(“abcd”,   2,   0)   =   “ab”
   kombinasi(“abcd”,   2,   1)   =   “ac”
   kombinasi(“abcd”,   2,   2)   =   “ad”
   kombinasi(“abcd”,   3,   3)   =   “bcd”




106

Mais conteúdo relacionado

Mais procurados

C programming language notes (4)
C programming language notes (4)C programming language notes (4)
C programming language notes (4)nakomuri
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortLapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortAdy Achirul
 
Lapopran praktikum struktur data pertemuan 1 Tipe Data
Lapopran praktikum struktur data pertemuan 1  Tipe DataLapopran praktikum struktur data pertemuan 1  Tipe Data
Lapopran praktikum struktur data pertemuan 1 Tipe DataAdy Achirul
 
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)Herbert Abdillah
 
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQL
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQLCenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQL
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQLBuyut Rivai
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman TerstrukturKelinci Coklat
 
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"idsecconf
 
Matlab tutor sns77_utama
Matlab tutor sns77_utamaMatlab tutor sns77_utama
Matlab tutor sns77_utamastaffpengajar
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algoSTMIK AKAKOM
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program rKhair Norrasid
 
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTF
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTFMuhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTF
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTFidsecconf
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa Ranom0164
 
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Putra Andry
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutIndividual Consultants
 
[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdfFariz Darari
 

Mais procurados (20)

C programming language notes (4)
C programming language notes (4)C programming language notes (4)
C programming language notes (4)
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortLapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
 
Lapopran praktikum struktur data pertemuan 1 Tipe Data
Lapopran praktikum struktur data pertemuan 1  Tipe DataLapopran praktikum struktur data pertemuan 1  Tipe Data
Lapopran praktikum struktur data pertemuan 1 Tipe Data
 
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
Pengantar Pointer untuk Pembelajaran Struktur Data (Java)
 
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQL
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQLCenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQL
Cenadep.org - Tutorial Penomoran Transaksi Otomatis Dengan Delphi Dan MySQL
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
Bab8.array
Bab8.array Bab8.array
Bab8.array
 
Galeri PythonTeX
Galeri PythonTeXGaleri PythonTeX
Galeri PythonTeX
 
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"
Muhammad Abrar Istiadi - “How to hack #IDSECCONF2016 ctf online challenge"
 
Matlab tutor sns77_utama
Matlab tutor sns77_utamaMatlab tutor sns77_utama
Matlab tutor sns77_utama
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algo
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program r
 
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTF
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTFMuhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTF
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTF
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa R
 
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
 
Fungsi dan Prosedur
Fungsi dan ProsedurFungsi dan Prosedur
Fungsi dan Prosedur
 
Praktikum
PraktikumPraktikum
Praktikum
 
[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf
 

Destaque

Bs menganalisis data spasial dg arc view gis 3.3 untuk pemula
Bs menganalisis data spasial dg arc view gis 3.3 untuk pemulaBs menganalisis data spasial dg arc view gis 3.3 untuk pemula
Bs menganalisis data spasial dg arc view gis 3.3 untuk pemulaIlan Surf ﺕ
 
Cara ampuh menguasai macromedia flash mx 2004
Cara ampuh menguasai macromedia flash mx 2004Cara ampuh menguasai macromedia flash mx 2004
Cara ampuh menguasai macromedia flash mx 2004Ilan Surf ﺕ
 
Cara pintar menguasai macromedia free hand mx
Cara pintar menguasai macromedia free hand mxCara pintar menguasai macromedia free hand mx
Cara pintar menguasai macromedia free hand mxIlan Surf ﺕ
 
101 tip & trik ms power point 2003
101 tip & trik ms power point 2003101 tip & trik ms power point 2003
101 tip & trik ms power point 2003Ilan Surf ﺕ
 
Membuat animasi alam dengan corel bryce
Membuat animasi alam dengan corel bryceMembuat animasi alam dengan corel bryce
Membuat animasi alam dengan corel bryceIlan Surf ﺕ
 
Membangun media belajar_berbasis_ict
Membangun media belajar_berbasis_ictMembangun media belajar_berbasis_ict
Membangun media belajar_berbasis_ictResky Flexter
 
Membuat em4 dan aplikasinya
Membuat em4 dan aplikasinyaMembuat em4 dan aplikasinya
Membuat em4 dan aplikasinyaIlan Surf ﺕ
 
Announcements 03 30-14
Announcements 03 30-14Announcements 03 30-14
Announcements 03 30-14everno
 
Simplifying development-short - Mirco Dotta (Typesafe)
Simplifying development-short - Mirco Dotta (Typesafe)Simplifying development-short - Mirco Dotta (Typesafe)
Simplifying development-short - Mirco Dotta (Typesafe)Scala Italy
 
Basoa murala
Basoa muralaBasoa murala
Basoa muralaiddam
 
παραδείγματα σύννεφα ετικετών
παραδείγματα  σύννεφα ετικετώνπαραδείγματα  σύννεφα ετικετών
παραδείγματα σύννεφα ετικετώνakanagni
 
Sp teknik pencahayaan
Sp teknik pencahayaanSp teknik pencahayaan
Sp teknik pencahayaanIlan Surf ﺕ
 
Math Honors Paper - Tu Nguyen - 2015
Math Honors Paper - Tu Nguyen - 2015Math Honors Paper - Tu Nguyen - 2015
Math Honors Paper - Tu Nguyen - 2015Tu Nguyen
 
Hip hop moodboard
Hip hop  moodboardHip hop  moodboard
Hip hop moodboardmonaderulo
 
Ekim - Iletisim Trendleri Raporu
Ekim - Iletisim Trendleri RaporuEkim - Iletisim Trendleri Raporu
Ekim - Iletisim Trendleri RaporuBegüm Akın
 
Sp membuat web album foto
Sp membuat web album fotoSp membuat web album foto
Sp membuat web album fotoIlan Surf ﺕ
 
Digital Media Trends
Digital Media TrendsDigital Media Trends
Digital Media TrendsDatalicious
 
International job assignment job order for the Executive positioning @ projec...
International job assignment job order for the Executive positioning @ projec...International job assignment job order for the Executive positioning @ projec...
International job assignment job order for the Executive positioning @ projec...Somajian-Deepak Sawant
 

Destaque (20)

Bs menganalisis data spasial dg arc view gis 3.3 untuk pemula
Bs menganalisis data spasial dg arc view gis 3.3 untuk pemulaBs menganalisis data spasial dg arc view gis 3.3 untuk pemula
Bs menganalisis data spasial dg arc view gis 3.3 untuk pemula
 
Cara ampuh menguasai macromedia flash mx 2004
Cara ampuh menguasai macromedia flash mx 2004Cara ampuh menguasai macromedia flash mx 2004
Cara ampuh menguasai macromedia flash mx 2004
 
Cara pintar menguasai macromedia free hand mx
Cara pintar menguasai macromedia free hand mxCara pintar menguasai macromedia free hand mx
Cara pintar menguasai macromedia free hand mx
 
101 tip & trik ms power point 2003
101 tip & trik ms power point 2003101 tip & trik ms power point 2003
101 tip & trik ms power point 2003
 
Membuat animasi alam dengan corel bryce
Membuat animasi alam dengan corel bryceMembuat animasi alam dengan corel bryce
Membuat animasi alam dengan corel bryce
 
Membangun media belajar_berbasis_ict
Membangun media belajar_berbasis_ictMembangun media belajar_berbasis_ict
Membangun media belajar_berbasis_ict
 
Membuat em4 dan aplikasinya
Membuat em4 dan aplikasinyaMembuat em4 dan aplikasinya
Membuat em4 dan aplikasinya
 
Announcements 03 30-14
Announcements 03 30-14Announcements 03 30-14
Announcements 03 30-14
 
Simplifying development-short - Mirco Dotta (Typesafe)
Simplifying development-short - Mirco Dotta (Typesafe)Simplifying development-short - Mirco Dotta (Typesafe)
Simplifying development-short - Mirco Dotta (Typesafe)
 
Basoa murala
Basoa muralaBasoa murala
Basoa murala
 
παραδείγματα σύννεφα ετικετών
παραδείγματα  σύννεφα ετικετώνπαραδείγματα  σύννεφα ετικετών
παραδείγματα σύννεφα ετικετών
 
Sp teknik pencahayaan
Sp teknik pencahayaanSp teknik pencahayaan
Sp teknik pencahayaan
 
Math Honors Paper - Tu Nguyen - 2015
Math Honors Paper - Tu Nguyen - 2015Math Honors Paper - Tu Nguyen - 2015
Math Honors Paper - Tu Nguyen - 2015
 
Otap ltb
Otap ltbOtap ltb
Otap ltb
 
Hip hop moodboard
Hip hop  moodboardHip hop  moodboard
Hip hop moodboard
 
Ekim - Iletisim Trendleri Raporu
Ekim - Iletisim Trendleri RaporuEkim - Iletisim Trendleri Raporu
Ekim - Iletisim Trendleri Raporu
 
Sp membuat web album foto
Sp membuat web album fotoSp membuat web album foto
Sp membuat web album foto
 
Digital Media Trends
Digital Media TrendsDigital Media Trends
Digital Media Trends
 
International job assignment job order for the Executive positioning @ projec...
International job assignment job order for the Executive positioning @ projec...International job assignment job order for the Executive positioning @ projec...
International job assignment job order for the Executive positioning @ projec...
 
Cyberterapi
CyberterapiCyberterapi
Cyberterapi
 

Semelhante a Asyiknya belajar struktur data di planet c++

Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1Budi Yono
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1kua
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1Budi Yono
 
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...desiyu
 
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
Manfaat Aplikasi Program Komputer dalam Pembelajaran FisikaManfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisikahabno
 
Praktikum fix 2
Praktikum fix 2Praktikum fix 2
Praktikum fix 2inggar tri
 
pertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptpertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptnafilarifki1
 
Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfgunturwijaya7
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++Akmal Fajar
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++farizky berian
 

Semelhante a Asyiknya belajar struktur data di planet c++ (20)

Function
FunctionFunction
Function
 
Cc++
Cc++Cc++
Cc++
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1
 
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
File header adalah sebuah file yang digunakan untuk mendefinisikan beberapa f...
 
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
Manfaat Aplikasi Program Komputer dalam Pembelajaran FisikaManfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
Manfaat Aplikasi Program Komputer dalam Pembelajaran Fisika
 
Function c++
Function c++Function c++
Function c++
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Topik 10 Fungsi
Topik 10 FungsiTopik 10 Fungsi
Topik 10 Fungsi
 
E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3
 
Praktikum fix 2
Praktikum fix 2Praktikum fix 2
Praktikum fix 2
 
pertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptpertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).ppt
 
Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdf
 
Rangkuman soal TI SMK
Rangkuman soal TI SMKRangkuman soal TI SMK
Rangkuman soal TI SMK
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++
 
Desain Top Down
Desain Top DownDesain Top Down
Desain Top Down
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++
 

Mais de Ilan Surf ﺕ

Membangun sistem akuisisi data berbasis database dengan delphi
Membangun sistem akuisisi data berbasis database dengan delphiMembangun sistem akuisisi data berbasis database dengan delphi
Membangun sistem akuisisi data berbasis database dengan delphiIlan Surf ﺕ
 
Buku latihan maya unlimited 5.0 untuk pemula
Buku latihan maya unlimited 5.0 untuk pemulaBuku latihan maya unlimited 5.0 untuk pemula
Buku latihan maya unlimited 5.0 untuk pemulaIlan Surf ﺕ
 
Auto cad 2004 2d jilid 1 msm
Auto cad 2004 2d jilid 1 msmAuto cad 2004 2d jilid 1 msm
Auto cad 2004 2d jilid 1 msmIlan Surf ﺕ
 
123 tip & trik action script flash mx 2004
123 tip & trik action script flash mx 2004123 tip & trik action script flash mx 2004
123 tip & trik action script flash mx 2004Ilan Surf ﺕ
 
101 tip & trik ms word 2003
101 tip & trik ms word 2003101 tip & trik ms word 2003
101 tip & trik ms word 2003Ilan Surf ﺕ
 
101 tip & trik ms excel 2003
101 tip & trik ms excel 2003101 tip & trik ms excel 2003
101 tip & trik ms excel 2003Ilan Surf ﺕ
 
25 kreasi corel draw12
25 kreasi corel draw1225 kreasi corel draw12
25 kreasi corel draw12Ilan Surf ﺕ
 
87 teknik profesional photoshop cs2
87 teknik profesional photoshop cs287 teknik profesional photoshop cs2
87 teknik profesional photoshop cs2Ilan Surf ﺕ
 
101 tip & trik adobe photoshop cs
101 tip & trik adobe photoshop cs101 tip & trik adobe photoshop cs
101 tip & trik adobe photoshop csIlan Surf ﺕ
 
101 tip & trik access project
101 tip & trik access project101 tip & trik access project
101 tip & trik access projectIlan Surf ﺕ
 
95 tip & trik registry win xp
95 tip & trik registry win xp95 tip & trik registry win xp
95 tip & trik registry win xpIlan Surf ﺕ
 
36 jbk borland delphi 7
36 jbk borland delphi 736 jbk borland delphi 7
36 jbk borland delphi 7Ilan Surf ﺕ
 
20 kreasi buah dgn corel draw 12
20 kreasi buah dgn corel draw 1220 kreasi buah dgn corel draw 12
20 kreasi buah dgn corel draw 12Ilan Surf ﺕ
 
20 kreasi binatang laut dgn corel draw 12
20 kreasi binatang laut dgn corel draw 1220 kreasi binatang laut dgn corel draw 12
20 kreasi binatang laut dgn corel draw 12Ilan Surf ﺕ
 
Menggambar dan membuat pcb rangkaian elektronika dengan trax maker
Menggambar dan membuat pcb rangkaian elektronika dengan trax makerMenggambar dan membuat pcb rangkaian elektronika dengan trax maker
Menggambar dan membuat pcb rangkaian elektronika dengan trax makerIlan Surf ﺕ
 
Sp menggambar & animasi karakter
Sp menggambar & animasi karakterSp menggambar & animasi karakter
Sp menggambar & animasi karakterIlan Surf ﺕ
 
Sp membuat efek khusus matrix
Sp membuat efek khusus matrixSp membuat efek khusus matrix
Sp membuat efek khusus matrixIlan Surf ﺕ
 

Mais de Ilan Surf ﺕ (20)

BUDAYA DEMOKRASI
BUDAYA  DEMOKRASIBUDAYA  DEMOKRASI
BUDAYA DEMOKRASI
 
Membangun sistem akuisisi data berbasis database dengan delphi
Membangun sistem akuisisi data berbasis database dengan delphiMembangun sistem akuisisi data berbasis database dengan delphi
Membangun sistem akuisisi data berbasis database dengan delphi
 
Buku latihan maya unlimited 5.0 untuk pemula
Buku latihan maya unlimited 5.0 untuk pemulaBuku latihan maya unlimited 5.0 untuk pemula
Buku latihan maya unlimited 5.0 untuk pemula
 
Auto cad 2004 2d jilid 1 msm
Auto cad 2004 2d jilid 1 msmAuto cad 2004 2d jilid 1 msm
Auto cad 2004 2d jilid 1 msm
 
123 tip & trik action script flash mx 2004
123 tip & trik action script flash mx 2004123 tip & trik action script flash mx 2004
123 tip & trik action script flash mx 2004
 
101 tip & trik ms word 2003
101 tip & trik ms word 2003101 tip & trik ms word 2003
101 tip & trik ms word 2003
 
101 tip & trik ms excel 2003
101 tip & trik ms excel 2003101 tip & trik ms excel 2003
101 tip & trik ms excel 2003
 
25 kreasi corel draw12
25 kreasi corel draw1225 kreasi corel draw12
25 kreasi corel draw12
 
87 teknik profesional photoshop cs2
87 teknik profesional photoshop cs287 teknik profesional photoshop cs2
87 teknik profesional photoshop cs2
 
101 tip & trik adobe photoshop cs
101 tip & trik adobe photoshop cs101 tip & trik adobe photoshop cs
101 tip & trik adobe photoshop cs
 
101 tip & trik access project
101 tip & trik access project101 tip & trik access project
101 tip & trik access project
 
95 tip & trik registry win xp
95 tip & trik registry win xp95 tip & trik registry win xp
95 tip & trik registry win xp
 
36 jbk borland delphi 7
36 jbk borland delphi 736 jbk borland delphi 7
36 jbk borland delphi 7
 
20 kreasi buah dgn corel draw 12
20 kreasi buah dgn corel draw 1220 kreasi buah dgn corel draw 12
20 kreasi buah dgn corel draw 12
 
Pengenalan komputer
Pengenalan komputerPengenalan komputer
Pengenalan komputer
 
20 kreasi binatang laut dgn corel draw 12
20 kreasi binatang laut dgn corel draw 1220 kreasi binatang laut dgn corel draw 12
20 kreasi binatang laut dgn corel draw 12
 
Menggambar dan membuat pcb rangkaian elektronika dengan trax maker
Menggambar dan membuat pcb rangkaian elektronika dengan trax makerMenggambar dan membuat pcb rangkaian elektronika dengan trax maker
Menggambar dan membuat pcb rangkaian elektronika dengan trax maker
 
Sp menggambar & animasi karakter
Sp menggambar & animasi karakterSp menggambar & animasi karakter
Sp menggambar & animasi karakter
 
Sp membuat web blog
Sp membuat web blogSp membuat web blog
Sp membuat web blog
 
Sp membuat efek khusus matrix
Sp membuat efek khusus matrixSp membuat efek khusus matrix
Sp membuat efek khusus matrix
 

Asyiknya belajar struktur data di planet c++

  • 1. Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp 32.800 Terbit pertama: Februari 2005 Sinopsis singkat: Struktur data merupakan salah satu ilmu fundamental untuk mempelajari pemrograman. Mahasiswa TI dan orang yang mempelajari TI pasti pernah mempelajarinya, terutama di masa-masa awal perkenalan dengan dunia pemrograman. Seperti buku struktur data lainnya, buku ini akan menjelaskan poin-poin utama dalam struktur data seperti pointer, linked list, stack, queue, tree, sorting, dan lain-lain. Akan tetapi buku ini ditulis dengan lebih berani dan tampil beda dari buku struktur data lainnya.
  • 2. 9 FUNGSI 9.1 Fungsi Apabila program yang Anda buat sudah terlalu panjang, Anda akan kesulitan membaca dan mengerti jalannya program tersebut. Untuk itu ada baiknya Anda memecahnya menjadi beberapa bagian (modul) yang tentunya akan lebih memudahkan Anda untuk mencari kesalahan program dan memperbaikinya serta membuat dokumentasinya. Untuk membuat modul, C++ menyediakan fungsi. Fungsi berguna untuk mengumpulkan statement yang dapat dijalankan menjadi satu dalam suatu blok dan menjalankannya kembali hanya dengan menuliskan nama fungsi yang menampungnya. Selain itu, fungsi juga banyak dipakai untuk menampung baris-baris perintah yang sering dipakai dalam sebuah program. Deklarasi fungsi dapat dilakukan dengan dua cara, yaitu: Header fungsi tanpa parameter. Header fungsi dengan parameter. 97
  • 3. 9.1.1 Header Fungsi Tanpa Parameter Bentuk umum: tipeData namaFungsi() Contoh: int JumlahIsi() double Random() char* Nama() void Clear() Penulisan header fungsi tanpa parameter diawali dengan tipe data dan diikuti dengan nama fungsi, kurung buka, dan kurung tutup (‘( )’). Jika fungsi tidak mengembalikan nilai, tipe data yang digunakan adalah void. Berikut ini digambarkan struktur blok fungsi tanpa parameter. Gambar 9.1 Struktur blok fungsi tanpa parameter Contoh Soal: prg0901.cpp Output: x = 1 1 #include <iostream> y = 2 2 using namespace std; x+y = 3 3 xy = 2 4 int x; 5 int y; 6 98
  • 4. 7 int Tambah() 8 { 9 return x + y; 10 }; 11 12 int Kali() 13 { 14 return x * y; 15 }; 16 17 int main() 18 { 19 cout << "x = "; 20 cin >> x; 21 cout << "y = "; 22 cin >> y; 23 24 cout << "x+y = " << Tambah() << endl; 25 cout << "xy = " << Kali() << endl; 26 27 return 0; 28 }; 9.1.2 Header Fungsi dengan Parameter Bentuk umum: tipeData namaFungsi ( <Daftar_parameter> ) Contoh: int Jumlahkan(int a, int b) double ArcCos(double x) void List(int n, char* header) Penulisan header fungsi dengan parameter hampir sama dengan fungsi tanpa parameter, yaitu diawali dengan tipe data, lalu nama fungsi, dan diikuti dengan parameter-parameter (yang berada di dalam kurung) yang masing-masing dipisahkan dengan koma beserta dengan tipenya. Berikut ini digambarkan struktur blok fungsi dengan parameter. 99
  • 5. Gambar 9.2 Struktur blok fungsi dengan parameter Contoh Soal: prg0902.cpp Output: x = 1 1 #include <iostream> y = 2 2 using namespace std; x+y = 3 3 xy = 2 4 int Tambah(int a, int b) 5 { 6 return a + b; 7 }; 8 9 int Kali(int a, int b) 10 { 11 return a * b; 12 }; 13 14 int main() 15 { 16 int x, y; 17 18 cout << "x = "; 19 cin >> x; 20 cout << "y = "; 21 cin >> y; 22 23 cout << "x+y = " << Tambah(x, y) << endl; 24 cout << "xy = " << Kali(x, y) << endl; 25 26 return 0; 27 }; 9.2 Parameter Formal dan Aktual Jika sebuah fungsi memiliki parameter yang berada di dalam kurung ( ), parameter tersebut disebut sebagai parameter formal, sedangkan 100
  • 6. parameter yang terdapat pada baris perintah pemanggil fungsi tersebut disebut sebagai parameter aktual. Untuk lebih jelasnya, perhatikan penjelasan di bawah ini. void Hitung(char a, char b, int &c) { a, b dan c adalah … Parameter Formal }; int hasil; 3, 7, dan hasil adalah Parameter Hitung(3, 7, hasil); Aktual … Pada contoh di atas, fungsi Hitung memiliki parameter a, b, dan c yang disebut sebagai parameter formal. Fungsi hitung tersebut dipanggil pada program utama dengan parameter 3, 7, dan hasil. Parameter 3, 7, dan hasil dikenal dengan sebutan parameter aktual. Kemudian, parameter aktual 3, 7, dan hasil tersebut masing-masing ditransfer kepada parameter formal a, b, dan c sesuai dengan urutannya sehingga procedure hitung a bernilai 3, b bernilai 7, dan c berisi variabel penampung hasil. Transfer parameter akan dijelaskan lebih lanjut pada bagian berikutnya. 9.3 Transfer Parameter Saat kita memanggil suatu fungsi dengan parameter, sebenarnya telah terjadi pengiriman parameter dari parameter aktual (yang terdapat pada pemanggil fungsi) ke parameter formal (yang terdapat pada fungsi tersebut). Pengiriman parameter tersebut dapat dilakukan dengan dua cara, yaitu: Transfer paramater by value (secara nilai). Transfer parameter by location/reference (secara acuan). 9.3.1 Transfer Parameter by Value Nilai yang tersimpan dalam parameter dikirim ke fungsi untuk diolah, tetapi hasil olahan tersebut tidak diminta untuk dikembalikan. Dalam 101
  • 7. mode ini, terjadi aliran 1 arah, yaitu dari pemanggil procedure ke procedure itu. Contoh Soal: prg0903.cpp Output: x = 1 1 #include <iostream> y = 2 (1, 2) 2 using namespace std; 3 4 5 void Tampil(int a, int b) 6 { 7 cout << "(" << a << ", " << b << ")" << endl; 8 }; 9 10 int main() 11 { 12 int x, y; 13 14 cout << "x = "; 15 cin >> x; 16 cout << "y = "; 17 cin >> y; 18 19 Tampil(x, y); 20 21 22 return 0; 23 }; 9.3.2 Transfer Parameter by Location Transfer paramenter by location sering dikenal juga dengan transfer parameter by reference (secara acuan). Dalam kasus ini, yang ditransfer hanya lokasinya saja (dapat berisi data atau kosong) untuk diolah, lalu hasil olahan tersebut dikembalikan dan disimpan pada lokasi yang telah ditransfer tersebut. Dalam mode ini, dapat terjadi aliran 2 arah dari pemanggil fungsi ke fungsi itu dan sebaliknya. Contoh Soal: prg0904.cpp 1 #include <iostream> 2 using namespace std; 102
  • 8. 3 4 void Tukar(int &a, int &b) Output: 5 { x = 1 6 int temp; y = 2 7 Sekarang x = 2 8 temp = a; Sekarang y = 1 9 a = b; 10 b = temp; 11 }; 12 13 int main() 14 { 15 int x, y; 16 17 cout << "x = "; 18 cin >> x; 19 cout << "y = "; 20 cin >> y; 21 22 Tukar(x, y); 23 24 25 cout << "Sekarang x = " << x << endl; 26 cout << "Sekarang y = " << y << endl; 27 28 return 0; 29 }; 9.4 Fungsi Rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi rekursif dipakai karena memiliki kelebihan, yaitu penulisan baris program dapat menjadi lebih singkat. Akan tetapi, fungsi ini juga memiliki kekurangan, yaitu membutuhkan banyak memori karena setiap kali program bagian dipanggil oleh dirinya sendiri, dibutuhkan sejumlah ruang memori tambahan. Contoh Soal: prg0905.cpp Output: 1 #include <iostream> 15 bilangan Fibonacci pertama: 2 using namespace std; 0, 1, 1, 2, 3, 5, 8, 13, 21, 3 34, 55, 89, 144, 233, 377 103
  • 9. 4 5 6 int Fibo(unsigned int n) 7 { 8 switch (n) 9 { 10 case 0: 11 return 0; 12 case 1: 13 return 1; 14 default: 15 return Fibo(n - 1) + Fibo(n - 2); 16 }; 17 }; 18 19 int main() 20 { 21 int i; 22 23 cout << "15 bilangan fibonacci pertama: " << endl; 24 25 for (i = 0; i < 15; i++) 26 { 27 if (i > 0) 28 cout << ", "; 29 cout << Fibo(i); 30 }; 31 32 cout << endl; 33 34 return 0; 35 }; 9.5 Latihan Soal 1. Buatlah fungsi yang akan menghitung jumlah deretan bilangan (deret.cpp). Contoh input dan output fungsi tersebut dengan parameter pertama untuk menunjukkan banyaknya bilangan dan parameter kedua untuk menunjukkan array penampung bilangan: Bilangan[0] = 41 Bilangan[1] = 22 Bilangan[2] = 72 Bilangan[3] = 44 jumlah(4, Bilangan) = 179 2. Buatlah program untuk menampilkan bilangan prima dari 2 sampai dengan jumlah yang diberikan melalui parameter program. Gunakan fungsi sesuai kebutuhan (tprima.cpp). 104
  • 10. E:> tprima 7 7 bilangan prima pertama: 2 3 5 7 11 13 17 Gambar 9.3 Contoh tampilan soal nomor 2 3. Buatlah fungsi yang mengembalikan bilangan Fibonacci ke-n (fibon.cpp). Contoh input dan output fungsi tersebut: fibo(0) = 0 fibo(1) = 1 fibo(5) = 5 fibo(9) = 34 fibo(11) = 89 4. Buatlah program yang menampilkan animasi karakter bergerak ke kanan, berhenti, kemudian kembali dengan menerapkan gerak lurus berubah beraturan. Setiap kali karakter menabrak batas kiri, karakter akan dipantulkan dengan kecepatan yang berkurang sesuai dengan deret geometrik. Program berhenti jika karakter tidak lagi bergerak (geom.cpp). E:> geom O Gambar 9.4 Contoh tampilan soal nomor 4 5. Buatlah program yang menampilkan gambar bintang dengan panjang sisi diberikan lewat parameter program (bintang.cpp). E:> bintang 4 * * * * * ***** ***** * * * * * * * * * * ***** ***** * * * * * Gambar 9.5 Contoh tampilan soal nomor 5 105
  • 11. 6. Buatlah program untuk membuat piramida angka seperti pada contoh di bawah. Tinggi piramida diberikan lewat parameter program (batasi bilangan dari 0 hingga 9) (pirangka.cpp). E:> pirangka 7 1 121 12321 1234321 123454321 12345654321 1234567654321 Gambar 9.6 Contoh tampilan soal nomor 6 7. Buatlah fungsi untuk mencari FPB dari banyak bilangan (fpb.cpp) 8. Buat program untuk menampilkan segitiga pascal menggunakan fungsi rekursif (pascal.cpp). E:> pascal 3 1 1 1 1 2 1 1 3 3 1 Gambar 9.7 Contoh tampilan soal nomor 8 9. Buat program untuk memberikan solusi masalah menara hanoi menggunakan fungsi rekursif (hanoi.cpp). 10. Dari suatu himpunan, misalnya {a, b, c, d} dapat dibuat kombinasi dua-dua, sehingga menghasilkan {ab, ac, ad, bc, bd, cd}, kombinasi tiga-tiga {abc, abd, acd, bcd}, dan seterusnya. Buatlah fungsi untuk menghasilkan string kombinasi berdasarkan himpunan huruf tertentu (kombhrf.cpp). kombinasi(“abcd”, 2, 0) = “ab” kombinasi(“abcd”, 2, 1) = “ac” kombinasi(“abcd”, 2, 2) = “ad” kombinasi(“abcd”, 3, 3) = “bcd” 106