Kamis, 12 Maret 2015

Pengaplikasian struktur data stack pada kehidupan nyata



Dalam memecahkan suatu masalah, terkadang kita membutuhkan algoritma yang hanya memperbolehkan insertion dan deletion pada akhir data saja, contohnya adalah algoritma backtracking (runut balik ) dsb. Untuk memecahkan masalah semacam itu kita dapat menerapkan konsep stack.

Pengertian stack
Stack adalah sebuah abstract data type (ADT) yang berisi koleksi data item yang hanya dapat diakses pada akhir bagian stack tersebut, atau biasa disebut top. Bahwa didalam sebuah stack kita dapat memasukan (insert) dan menghapus (delete) item hanya dari posisi top tersebut. Item terakhir yang kita masukkan kedalam sebuah stack adalah item yang paling pertama harus kita keluarkan. Itulah mengapa stack disebut sebagai Last-In-First-Out (LIFO) data structure. Kalimat sederhana yang dapat menjelaskan konsep tersebut adalah kalimat “Masuk belakangan keluar duluan”.

Contoh pengaplikasian stack pada kehidupan nyata :
1 .  



2 .



3.


Karakteristik yang dimiliki oleh stack :
1.     Data hanya dapat di-insert pada posisi top stack.
2.       Data hanya dapat di-delete pada posisi top stack.
3.       Data tidak dapat di-delete dari tengah-tengah stack tanpa memindahkan item yang ada di
4.       bagian atasnya terlebih dahulu.


Operasi-operasi/fungsi stack :
1.       Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
2.       Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
3.       Clear : digunakan untuk mengosongkan stack
4.       IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
5.       IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh

penulis Agus Santoso dan M. Agus Fikry

Jumat, 24 Oktober 2014

Fungsi Dalam Bahasa Pemprograman C++

A. Pengertian Fungsi

          Fungsi merupakan elemen utama dalam bahasa C++ karena bahasa 
C++ sendiri terbentuk dari kumpulan fungsi-fungsi. Tujuan pembuatan 
fungsi adalah memudahkan dalam pengembangan program. Ini merupakan 
kunci dalam pembuatan program yang terstruktur. Menghemat ukuran 
program. Dalam setiap program bahasa C++, minimal terdapat satu fungsi 
yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program 
C++ yang terstruktur.

B. Jenis-jenis fungsi pada C++
Ada dua jenis fungsi yaitu :

1. Void ( Fungi tanpa nilai balik ) 
 Fungsi yang void sering disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut. 

    Ciri-ciri dari jenis fungsi Void adalah sebagai berikut: 
    • Tidak adanya keyword return.
    • Tidak adanya tipe data di dalam deklarasi fungsi.
    • Menggunakan keyword void.
    • Tidak dapat langsung ditampilkan hasilnya.
    • Tidak memiliki nilai kembalian fungsi
    •  Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
    • Void : void tampilkan_jml (int a, int b) 
    2. NonVoid (fungsi dengan nilai balik)
    Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .

    Ciri-ciri dari jenis fungsi non void adalah sebagai berikut:
    •  Ada keyword return
    •  Ada tipe data yang mengawali fungsi
    •  Tidak ada keyword void
    • Memiliki nilai kembalian .  
    • Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu 
    •  Sehingga dapat langsung ditampilkan hasilnya  
    • Non-void : int jumlah (int a, int b)
    C. PARAMETER FUNGSI
    Parameter fungsi ada 2, yaitu : parameter formal dan parameter actual. 
    1. Parameter Formal 
        Parameter yang dideklarasikan dibagian blok fungsi. 
    2. Parameter Aktual 
        Parameter yang sebenarnya / parameter yang dilewatkan saat fungsi 
        dipanggil. 

    Bentuk penulisan Parameter Formal dan Parameter Aktual.
    1. Pemanggilan dengan nilai ( Call by Value )
    Pemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh fungsi buatan yang telah dibahas didepan. Pada pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis keparameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah. Contoh Program :
    /* ———————— */
    /* Penggunaan Call By Value */
    /* Program Pertukaran Nilai */
    /* ———————— */
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    tukar(int x, int y);
    main()
    {
    int a, b;
    a = 88; b = 77;
    clrscr();
    cout<<”Nilai Sebelum Pemanggilan Fungsi”;
    cout<<”\na = “<<a<<” b = “<<b;
    tukar(a,b);
    cout<<”\nNilai Setelah Pemanggilan Fungsi”;
    cout<<”\na = “<<a<<” b = “<<b;
    getch();
    } tukar(int x, int y)
    {
    int z;
    z = x; x = y; y = z;
    cout<<”\n\nNilai di dalam Fungsi Tukar()”;
    cout<<”\nx = “<<x<<” y = “<<y;
    cout<<endl;
    }
    1. Pemanggilan dengan Referensi (Call by Reference)
    Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi. Contoh :
    /* Penggunaan Call By Reference */
    /* Program Pertukaran Nilai */
    /* —————————- */
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    tukar(int *x, int *y);
    main()
    {
    int a, b;
    a = 88; b = 77;
    clrscr();
    cout<<”Nilai Sebelum Pemanggilan Fungsi”;
    cout<<”\na = “<<a<<” b = “<<b;
    tukar(&a,&b);
    cout<<endl;
    cout<<”\nNilai Setelah Pemanggilan Fungsi”;
    cout<<”\na = “<<a<<” b = “<<b;
    getch();
    }
    tukar(int *x, int *y)
    {
    int z;
    z = *x; *x = *y; *y = z;
    cout<<endl;
    cout<<”\nNilai di Akhir Fungsi Tukar()”;
    cout<<”\nx = “<<*x<<” y = “<<*y;
    }

    D. Beberapa fungsi dalam c++
    1. Fungsi Operasi String (tersimpan dalam header file "srting.h") 

       1. Strcpy()
    • Berfungsi untuk menyalin suatu string asal ke variable string tujuan
    • Bentuk umum : strcpy(tujuan,asal);
       2. strlen()
    • Berfungsi untuk memperoleh jumlah karakter dari suatu string
    • Bentuk umum : strlen(string);
       3. Fungsi strcat()
    • Digunakan untuk menambah string sumber ke bagian akhir dari string tujuan
    • Bentuk umum : strcat(tujuan,sumber);

       4. Fungsi strupr()
    • Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf
      kapital
    • Bentuk umum : strupr(string);
       5. Fungsi strlwr()
    • Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil
    • Bentuk umum : strcat(tujuan,sumber);
       6. Fungsi strcmp()
    • Digunakan untuk membandingkan dua buah string
    • Hasil dari fungsi ini bertipe integer dengan nilai:
                     > Negatif, jika string pertama kurang dari string kedua
                     > Nol, jika string pertama sama dengan string kedua
                     > Positif, jika string pertama lebih besar dari string kedua
    • Bentuk umum : strcmp(string1,string2);
    2.  Fungsi Operasi Karakter (tersimpan dalam header file “ctype.h”)
          
      1. Tolower()
    •  Fungsi akan mengubah huruf kapital menjadi huruf kecil
    • Bentuk umum : tolower(char);
      2. Toupper()
    • Fungsi akan mengubah huruf kecil menjadi huruf kapital.
    • Bentuk umum : toupper(char);

    Referensi:
    1staff.uny.ac.id/.../Bab%20II%20Keg%20Pembel%207_%20Fungsi.pdf
    2http://belajarohbelajar.blogspot.com/2012/04/jenis-jenis-fungsi-pada-c.html
    3. materiandreas.blogspot.com/2013/02/fungsi-dalam-c.html
    4. yytsunda.blogspot.com/.../pengertian-fungsi-dalam-pemograman-c.html
    5. fauzyriza.blogspot.com/2013/05/parameter-fungsi-c.html