Kamis, 04 Juni 2015

STACK


  • STACK  berarti (tumpukan) suatu kumpulan data yang seolah-olah ada data yang diletakan di atas data yang lain.
  • Konsep STACK digunakan dalam struktur data.












  • Dalam Struktur Stack digunakan istilah :
    PUSH : Simpan,Masuk,Insert,Tulis
    POP
    : Ambil,Keluar,Delete,Baca
  • Operasi dasar Stack
    1. Create
      Operator create berfungsi untuk membuat sebuah stack kosong. 
    2. Isempty
      Operator Isempty berfungsi untuk menentukan apakah suatu stack merupakan stack kosong.
    3.  Push
      Operator push berfungsi untuk menambahkan suatu elemen ke dalam stack. 
    4. Pop
      Operator pop berfungsi untuk mengeluarkan satu elemen dari dalam stack.
  • STACK ada 2 jenis :
    1. Single Stack 
    2. Double Stack
  • Single Stack 

    dapat direpresentasikan menggunakan array satu dimensi.














  • Prinsip dan Konsep Proses Single StackPrinsip proses Single Stack adalah : LIFO (Last In First Out)
  • Proses pada Single Stack :
    1. AWAL (Inisialisasi)
    2. PUSH (Insert, Masuk, Simpan, Tulis) 
    3. POP (Delete, Keluar, Ambil, Baca/Hapus)

Contoh Program Single Stack

Program  
#include<iostream.h>
#define n 10
void main()

{
    int S[n];
    int x,top;

    top=-1;

    while (top<=n-1)
    {
        cout<<"Inputkan isi stack : ";
        cin>>x;
        top=top+1;
        S[top]=x;
    }

    cout<<"Isi stack : "<<endl;
    while (top>=0)
    {
        x=S[top];
        cout<<x<<" ";
        top=top-1;
    }

}


  • Double Stack


  • Prinsip proses :LIFO (Last In First Out) baik untuk Stack1 maupun untuk Stack2
  • Proses pada Double Stack :
    1. AWAL (Inisialisasi) 
    2. PUSH1 (Push untuk Stack1) 
    3. POP1 (Pop untuk Stack1) 
    4. PUSH2 (Push untuk Stack2) 
    5. POP2 (Pop untuk Stack2)

Contoh Program Double Stack

Program
#include<iostream.h>
#define n 10

int S[n], x,top;
void push(int y)

{
        top=top+1;
        S[top]=y;
}
int pop()
{
        int y;
        y=S[top];
        top=top-1;
        return y;
}
void main()
{
    top=-1;
    while (top<=n-1)
    {
        cout<<"Inputkan isi stack : ";
        cin>>x;
        push(x);
    }
    cout<<"Isi stack : "<<endl;
    while (top>=0)
    {
        x=pop();
        cout<<x<<" ";
    }

}

Refrensi : 
10 Langkah Belajar  logika dan algoritma, menggunakan bahasa c dan c++
 


ARRAY

Array adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe yang sama. Suatau array mempunyai jumlah komponen yang tetap. Banyaknya komponen dalam satu array ditunjukkan oleh suatau indeks yang berfungsi untuk membedakan variabel yang satu dengan variabel lainnya.

  • Array 1 Dimensi
                Variabel dalam array satu dinemsi harus di deklarasikan terlebih dahulu. Cara mendeklarasikan variabel array sama seperti mendeklarasikan variabel yang lain, hanya saja diikuti oleh suatu indeks yang menunjukan jumlah maksimum data yang disediakan.
Pendeklarasian array 1 dimensi
Tipe_data Nama_variabel[ukuran]

Inisialisasi array
                Suatu variabel array dapat diinisialisasikan secara langsung pada saat deklarasi.
Contoh di atas array memiliki 5 buah elemen jadi bentuk inisialisasi langsungnya:                            
 int nilai[5]={4,5,3,3,6};
Mengakses nilai array
Nama_array [indeks];
Contoh: Array memiliki 5 buah elemen yang masing-masing berisi data.












Untuk memberi nilai 50 pada elemen ke 1, pernyataannya adalah:
Index[1]=50;

Contoh Program array 1 Dimensi
Program 1

#include<iostream.h>

void main()
{
    int A[10];
    int i,jml,max;

    //isi data
    jml=0;
    for(i=0;i<=9;i++)
    {
        cout<<"Inputkan data ke-"<<i<<":";
        cin>>A[i];
        jml=jml+A[i];
    }

    //tampilkan data
    for(i=0;i<=9;i++)
    {
        cout<<A[i]<<" ";
    }
    cout<<endl;
    for(i=0;i<=9;i++)
    {
        cout<<&A[i]<<" ";
    }

    cout<<endl;
    cout<<"Hasil penjumlahan = "<<jml<<endl;

    max=A[0];
    for(i=1;i<=9;i++)
    {
        if (A[i]>max)
            max=A[i];
    }
    cout<<"Bilangan terbesar = "<<max<<endl;

}



Program 2
# include <iostream.h>

# include <conio.h>
main()
{
float a[5],jumlah=0,rata_rata;
int j;

for (j=0;j<5;j++)
{
   cout<<"Masukkan nilai : ";
   cout<<"A ["<<j<<"] = ";
   cin>>a[j];
   jumlah = jumlah + a[j];
}
rata_rata = jumlah/5;
cout<<endl;
cout<<"Nilai rata-rata = "<<rata_rata;
getch();
} 


  • Array 2 Dimensi
                Array berdimensi 2 sering digambarkan sebagai sebuah matriks. Dimana array berdimensi 1 hanya terdiri dari satu baris dan banyak kolom, sedangkan array berdimensi 2 terdiri dari banyak baris dan banyak kolom yang bertipe sama.

Pendeklarasian array 2 Dimensi
                Tipe_data Nama_array[jumlah_baris] [jumlah_kolom];
Dimana Tipe_data menyatakan jenis tipe data elemen array (int,char,float). Nama_array menyatakan nama variabel yang dipakai. Jumlah_baris menunjukan jumlah maksimal baris. Jumlah_kolom menunjukan jumlah maksimal kolom.

Inisialisasi array
                Memberikan nilai awal trhadap suatu variabel.
Tipe_data Nama_array[jumlah_elemen] = (nilai_array)
Contoh: int data [2][5]={{2.3.4.5.6},{4,5,3,6,7}};










Contoh program array 2 Dimensi
Program 1

#include<iostream.h>

void main()
{
    int A[10];
    int i,jml,max;

    //isi data
    jml=0;
    for(i=0;i<=9;i++)
    {
        cout<<"Inputkan data ke-"<<i<<":";
        cin>>A[i];
        jml=jml+A[i];
    }

    //tampilkan data
    for(i=0;i<=9;i++)
    {
        cout<<A[i]<<" ";
    }
    cout<<endl;
    for(i=0;i<=9;i++)
    {
        cout<<&A[i]<<" ";
    }

    cout<<endl;
    cout<<"Hasil penjumlahan = "<<jml<<endl;

    max=A[0];
    for(i=1;i<=9;i++)
    {
        if (A[i]>max)
            max=A[i];
    }
    cout<<"Bilangan terbesar = "<<max<<endl;

}



Program 2


#include<iostream.h>

#include<conio.h>

void main()

{

  int matrix[3][4]={{5,10,1,11},{4,7,67,-9},{9,0,45,3}};

   for(int i=0;i<3;i++)

   {

     for (int j=0;j<4;j++)

     {

      cout<<matrix[i][j]<<"  ";

      }

      cout<<endl;

   }

     getch();

}


Refrensi : 
10 Langkah Belajar  logika dan algoritma, menggunakan bahasa c dan c++