Tuesday, 1 August 2017

Stack

Dasar Teori
  • STACK atau TUMPUKAN adalah suatu struktur data yang seolah-olah terlihat seperti data yang tersusun secara ‘menumpuk’, dimana ada data yang terletak diatas data yang lainnya.
  • Bersifat LIFO (Last In First Out), berarti data yang masuk terakhir akan keluar pertama.
  • Operasi pada Stack:
IsFull : mengecek apakah STACK sudah penuh
IsEmpty : mengecek apakah STACK sudah kosong
Push :menambah data pada STACK pada tumpukan paling atas
Pop :mengambil data pada STACK pada tumpukan paling atas
Print :mencetak semua data dalam tumpukan

Binary Search dengan C++


Dalam Pencarian Binary Search, Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian. Adalah teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian. Prinsip pencarian biner adalah:

Data diambil dari posisi 1 sampai posisi akhir N Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar? Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1 Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1 Jika data sama, berarti ketemu

Sequential Search dengan C++

Perhatikan array data berikut ini: 




Terdapat 6 buah data dalam array (dari indeks 0 s/d 5) dan terdapat 1 indeks array tambahan (indeks ke 6) yang belum berisi data (disebut sentinel)
Array pada indeks ke 6 berguna untuk menjaga agar indeks data berada pada indeks 0 s/d 5 saja. Bila pencarian data sudah mencapai array indeks yang ke-6 maka berarti data TIDAK ADA, sedangkan jika pencarian tidak mencapai indeks ke-6, maka data ADA.

Metode Pemograman Algoritma Quick Sort

Quick Sort adalah metode pengurutan data yang dikemukan pertama kali oleh C.AR Hoare pada tahun 1962. Metode ini menggunakan strategi “pecah-pecah” dengan mekanisme seperti berikut : Larik L[p..r] (dengan indeks terkecil adalah p dan indeks terbesar yaitu r) disusun ulang (dipartisi) menjadi dua buah larik A[p..q] dan A[q+1..r] sehingga setiap elemen dalam A[q+1..r]. Selanjutnya kedua larik tersebut diurutkan secara rekursif. Dengan sendirinya kombinasi kedua larik tersebut membentuk larik dengan data yang telah urut.

Implementasi quick sort dapat dilihat di bawah ini.

Algoritma: 
SUBRUTIN quick_sort (L,p,r]
JIKA p <-- partisi (L,p,r)
Quick_sort (L,p,r)
Quick_sort (L,q+1,r)
AKHIR – JIKA
AKHIR – SUBRUTIN

Metode Exchange Sort dengan C++

Sekarang kita akan mempelajari tentang metode pengurutan exchange sort. Metode pengurutan excahange sort mirip dengan metode pengurutan Buble Sort *bisa di katakan bersaudara hehehe. Tapi dalam cara membandingan antar elemennya memiliki tentu memiliki perbedaan.

Exchange sort membandingkan suatu elemen dengan elemen-elemen lainnya dalam array tersebut, dan melakukan pertukaran elemen jika perlu. Jadi ada elemen yang selalu menjadi elemen pusat (pivot).

Sedangkan Bubble sort akan membandingkan elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian elemen tersebut itu akan menjadi pusat (pivot) untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu seterusnya

cara pengurutan exchange sort

Metode Pemograman Algoritma Selection Sort

Pengurutan seleksi (selection sort) mempunyai mekanisme seperti berikut: Mula-mula suatu penunjuk (diberi nama posAwal), yang menunjuk ke lokasi awal pengurutan data, diatur agar berisi indeks pertama dalam larik. Selanjutnya dicari bilangan terkecil yang terletak antara posisi sesudah yang ditunjuk oleh petunjuk tersebut hingga elemen yang terakhir dalam larik. Lokasi bilangan ini ditunjuk oleh posMin. Lalu tukarkan nilai bilangan terkecil tersebut dengan nilai yang ditunjuk posAwal. Proses seperti itu diulang dari posAwal bernilai 0 hingga n-2, dengan n menyatakan jumlah elemen dalam larik.



Metode Pemograman Algoritma Insertion Sort

Pengurutan dengan penyisipan (insertion sort) adalah suatu metode yang melakukan pengurutan dengan cara menyisipkan data yang belum urut ke dalam bagian data yang telah diurutkan. Konsep ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu baru didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu tetap terurutkan.
Mengurutkan kartu dengan metode penyisipan kartu 7 disisipkan sehingga susunan kartu yang sebelumnya sudah urut tetap urut

Metode Insertion Sort dengan C++


Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang

Metode Bubble Sort dengan C++

Metode buble merupakan metode sorting termudah. Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda. Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.

Pengurutan Ascending :Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar.

Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.

Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1.

Contoh Program Sederhana Dengan Structure Program C++ :


Contoh 1:

#include<stdio.h>
#include<conio.h>
#include<iostream.h>

main()
{
struct
{
char nim[5];
char nama[15];
float nilai;
} mahasiswa;

clrscr();
cout<<"masukan NIM = ";
cin>>mahasiswa.nim;
cout<<"masukan Nama = ";
cin>>mahasiswa.nama;
cout<<"masukan Nilai Akhir = ";
cin>>mahasiswa.nilai;

clrscr();

cout<<"NIM = "<<mahasiswa.nim<<endl;
cout<<"Nama = "<<mahasiswa.nama<<endl;
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;

getch();
}

Beberapa Contoh Program dengan Bahasa C++

Contoh program sederhana yang menggunakan bahasa C++ diantaranya :

konversi jam, menit dan detik
konversi dari cm ke km,m,cm menggunakan modulus
Konversi desimal ke hexa, biner dan oktal
Menghitung akar persamaan kuadrat
Menghitung deret fibonaci dengan looping for
Membuat huruf F dengan karakter *
Membuat huruf H
Menampilkan bilangan ganjil 1-100
Menghitung luas persegi panjang dan volume balok dengan fungsi
Menghitung luas alas, luas permukaan dan volume kerucut
Penjumlahan dan perkalian(hanya menggunakan operator +)
Menghitung luas persegi dan luas segitiga switch case
Matriks ordo 2x2, transpose dan jumlahnya
Mencari nilai mean (rata-rata) dalam array satu dimensi (panjang array 5).
Membuat dan menulis data ke dalam dua file
Membuat struct secara dinamis
Dibawah ini adalah contoh program sederhananya :

1. Konversi jam, menit dan detik

#include <iostream.h>
#include <conio.h>

void main (){
int jam =3600;
int menit =60;
int a, b, c, d, e, f;
a=4*jam+56*menit+12;
b=3*jam+21*menit+56;
c=10*jam+34*menit+1;
d=8*jam+32*menit+31;
e=6*jam+42*menit+11;
f=a+b+c+d+e;