Senin, 22 Oktober 2018

Contoh 5 Algoritma


1. Program menentukan ganjil atau genap

    Algoritma menentukan_ganjil_genap

    Deklarasi:
    bilangan : integer

    Pseudocode:
    read bilangan
      if bilangan mod 2 = 0
    then
      print"output genap"
    else
      print"output ganjil"
    end if

2. Program menentukan grade nilai

    Algoritma menentukan_grade_nilai

    Deklarasi:
    nilai : integer

    Pseudocode:
    read(nilai)
      input nilai
      if nilai >=85 then
          cetak "A"
      else if nilai >=75 then
          cetak "B"
      else if nilai >=65 then
          cetak "C"
      else if nilai >=55 then
          cetak "D"
      else
          cetak "E"
    end

3. Program menentukan terbesar terkecil rata-rata dari 3 bilangan
 
    Algoritma menentukan_terbesar_terkecil_ratarata_dari_3_bilangan

    Deklarasi:
    a,b,c : integer
    terbesar : integer
    terkecil : integer
    rerata : integer

    Pseudocode:
    read(a,b,c)
    if (A>B) and (A>C) then
        print "A paling besar"
    if (B>A) and (B>C) then
        print "B paling besar"
    else
        print "C terkecil"
    end if
    jumlah = A+B+C
    rerata = jumlah/3
    output rerata

4. Program menghitung luas segitiga

    Algoritma menghitung_luas_segitiga

    Deklarasi:
    alas : integer
    tinggi : integer
    luas : real

    Pseudocode:
    read (alas)
    read (tinggi)
    luas segitiga<-0.5*alas*tinggi
    write ('Luas Segitiga')
    end

5. Program looping

    Algoritma membuat pengulangan sebanyak 5 baris

    Deklarasi:
    i : integer

    Pseudocode:
    i ← 1
    for i<=1000 do
    writeln('contoh algoritma pengulanan atau looping')
    i ← i+1
    endfor

Rabu, 17 Oktober 2018

Stack and Queue

Stack (Tumpukan)

A. Pengertian Stack (Tumpukan)

     Stack (Tumpukan) adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linear. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu posisi ATAS (TOP) tumpukan. Tumpukan digunakan dalam algoritma pengimbas (parsing), algoritma penilaian (evaluation) dan algoritma penjajahan balik (backtrack). Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.

     Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Tumpukan disebut juga "Push Down Stack" yaitu penambahan elemen baru (PUSH) dan penghapusan elemen dari tumpukan (POP). Contoh pada PDA (Push Down Automaton). Sistem pada pengaksesan pada tumpukan menggunakan system LIFO (Last In First Out), artinya elemen yang terakhir masuk itu yang akan pertama dikeluarkan dari tumpukan (Stack). Ilustrasi tumpukan (Stack) dapat digambarkan seperti tumpukan CD atau tumpukan sate. Stack merupakan suatu susunan koleksi data dimana dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan Top Of Stack.

     Sebelum struktur data tumpukan ini bisa digunakan, harus dideklarasikan dahulu dalam kamus data. Ada beberapa cara pendeklarasian struktur data ini, salah satunya dengan menggunakan tata susunan linear (larik) dan sebuah variable, yang dikemas dalam tipe data record. Stack(tumpukan) adalah struktur data bertipe record yang terdiri dari field elemen, bertipe larik/array dengan indek dari 1 sampai dengan MaksTum (Maksimum Tumpukan), atas, bertiper integer berkisar dari 0 (saat kosong) sampai dengan MaksTum (Maksimum Tumpukan).

B. Operasi - operasi pada Stack (Tumpukan)

    Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan Pop. Operasi - operasi yang dapat diterapkan adalah sebagai berikut :

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. Create Stack : membuat tumpukan baru S, dengan jumlah elemen kosong.
5. MakeNull : mengosongkan Tumpukan S, jika ada elemen maka semua elemen dihapus.
6. IsEmpty : fungsi yang digunakan untuk mengecek apakah Stack sudah kosong.
7. Isfull : fungsi yang digunakan untuk mengecek apakah Stack sudah penuh.

     Pada proses Push, tumpukan (Stack) harus diperiksa apakah jumlah elemen sudah mencapai maksimum atau tidak. Jika sudah mencapai maksimum maka OVERFLOW, artinya tumpukan penuh tidak ada elemen yang dapat dimasukkan ke dalam tumpukan. Sedangkan pada proses Pop, Tumpukan harus diperiksa apakah ada elemen yang hendak dikeluarkan atau tidak. Jika tidak ada maka UNDERFLOW, artinya tumpukan kosong tidak ada elemen yang dapat diambil.

C. Macam - macam Stack

1. Stack dengan Array
Sesuai dengan sifat stack, pengambilan atau penghapusan elemen dalam stack harus dimulai dari elemen teratas.

2. Double Stack dengan Array
Metode ini adalah teknik khusus yang dikembangkan untuk menghemat pemakaian memori dalam pembuatan dua stack dengan array. Intinya adalah penggunaan hanya sebuah array untuk menampung dua stack.

Contoh Coding


Hasilnya



Queue (Antrian)

A. Definisi Queue (Antrian)

     Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang berbeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagian belakang (Rear). Elemen-elemen didalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.

     Tumpukan disebut juga "Waiting Line" yaitu penambahan elemen baru dilakukan pada bagian belakang dan penghapusan elemen dilakukan pada bagian depan. Sistem pada pengaksesan pada Queue menggunakan sistem FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue. Queue jika diartikan secara harfiah, queue berarti antrian. Queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat anda mengantri diloket untuk membeli tiket.

     Istilah yang cukup sering dipakai apabila seseorang masuk dalam sebuah antrian adalah enqueue. Sedangkan istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue.

B. Operasi - operasi pada Queue

1. Create Queue (Q) : membuat antrian baru Q, dengan jumlah elemen kosong.
2. Make NullQ (Q) : mengosongkan antrian Q, jika ada elemen maka semua elemen dihapus.
3. EnQueue : berfungsi memasukkan data kedalam antrian.
4. DeqQueue : berfungsi mengeluarkan data terdepan dari antrian.
5. Clear : menghapus seluruh antrian
6. IsEmpty : memeriksa apakah antrian kosong.
7. IsFull : memeriksa apakah antrian penuh.

Contoh Coding



Hasilnya




Kamis, 11 Oktober 2018

Game Logika Algoritma : Sayur, Domba dan Serigala

Assalamualaikum

Disini saya akan membahas game logika tentang cara menyebrangkan sayur, domba dan serigala ke pulau seberang.


Jadi, ada soalnya begini :

Di daratan B terdapat sayur, domba dan serigala. Serta ada nelayan. Nelayan ini harus membawa sayur, domba dan serigala untuk menyebrangi sungai menuju pulau A. Ia diperintahkan untuk membawa semuanya ke pulau seberang dalam keadaan baik.

Aturan Mainnya ialah :
1. Domba tidak makan sayur
2. Serigala bisa memakan domba jika ditinggalkan berdua di pulau yang sama
3. Serigala tidak bisa makan sayur
4. Perahu hanya mampu menampung 2 orang (termasuk nelayan) dalam satu kali menyebrang.

Cara Penyelesaiannya :
1. Domba dan nelayan menyebrang pulau A
2. Dan nelayan kembali ke pulau B untuk membawa kubis ke pulau A
3. Setelah itu nelayan membawa domba dari pulau A ke pulau B
4. Setelah nelayan membawa domba ke pulau B nelayan menyebrangkan serigala ke pulau B ke A
5. Setelah itu nelayan kembali ke pulau B untuk membawa domba ke pulau A

Begitulah cara menyebrangkan sayur, domba dan serigala dari pulau B ke Pulau A. Semoga bermanfaat. Terima kasih.
Wassalamualaikum

Contoh 5 Algoritma

1. Program menentukan ganjil atau genap     Algoritma menentukan_ganjil_genap     Deklarasi:     bilangan : integer      Pseudocode:...