Tampilkan postingan dengan label Tugas Desain dan Analisis Algoritma. Tampilkan semua postingan
Tampilkan postingan dengan label Tugas Desain dan Analisis Algoritma. Tampilkan semua postingan

Jumat, 19 Oktober 2018

5 contoh Algoritma

5 Contoh Algoritma

1. Looping
membuat pengulangan sebanyak 5 baris

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

2. Pengulangan While Do
Format Penulisan:

While kondisi do
pernyataan
inrement /decrement
endwhile

Contoh Kasus:
Buat algoritma untuk mencetak tulisan "Contoh pengulangan dengan kondisi di awal" sebanyak 100 buah.

Jawab:
algoritma looping_awal
deklarasi
i : integer
algoritma:
i  ← 1
while i <= 100 do
writeln('Contoh pengulangan dengan kondisi di awal')
i  ← i + 1

endwhile

3. Buatlah algoritma untuk mencetak tulisan "Pengulangan kondisi akhir" sebanyak 70 baris"

algoritma kondisi_akhir
deklarasi
i : integer
algoritma:
i  ← 1
repeat
writeln ('Pengulangan kondisi akhir')
i  ← i+1
until i=70

4. Menampilkan tulisan Test sebanyak 5 kali dengan fungsi While-Do
Deklarasi
      i = 1
algoritma
      While i <= 5 Do
                writeln  (' Test  ' )
                i = i + 1
      End While
End

Game Logika dan Algoritma

GAME LOGIKA & ALGORITMA

1. Petani, anjing, domba dan sayuran

Seorang Petani akan berpergian ke kota dengan
membawa seekor kambing, Anjing dan Rumput Yang ketiganya memliki berat yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu persatu bawaannya . Ditanya: berapa kali petani tersebut harus melalui jembatan dengan memperhatikan bahwa kambing makan rumput, anjing
makan kambing ?

Cara Menyelasaikannya adalah . . .

1. Sebrangkan domba

2. Setelah di sebrang, keluarkan dombanya lalu nyebrang lagi

3. Sebrangkan sayuran

4. Setelah di sebrang, Keluarkan sayurnya masukkan dombanya lalu nyebrang lagi

5. Keluarkan dombanya, masukkan serigala, nyebrang lagi

6. Keluarkan serigala, nyebrang lagi

7. Masukkan dombanya, nyebrang lagi lalu keluarkan


Petani dan muatannya (anjing,domba dan sayuran) akan menyeberang dengan menggunakan perahu.Peraturannya : anjing tidak boleh ditinggal bersama domba dan sayuran tidak boleh ditinggal bersama domba.

2. Pendeta dan Kanibal

Bagaimana caranya untuk menyeberangkan
tiga orang rahib yang sedang dikejar oleh Tiga
orang kanibal ke sisi pulau yang ada
diseberangnya
Dengan catatan :
Bila misionarisnya Lebih sedikit dari dari
kanibal, maka misionaris tersebut akan
dimakannya.
M1 = Misionaris 1
M2 = Misionaris 2
M3 = Misionaris 3
K1 = Kanibal 1
K2 = Kanibal 2

K3 = Kanibal 3
Cara Menyelesaikannya adalah . . .






1. Sebrangkan K1 dan K2 terlebih dahulu










2. Setelah sampai disebrangkan, keluarkan K1













3. Lalu sebrangkan K2 dan masukkan K3 lalu sebrangkan mereka









4. Keluarkan K2 sebrangkan K3









5. Keluarkan K3 sebrangkan M1 dan M2









6. Keluarkan M1 masukkan K1, lalu sebrangkan mereka









7. Keluarkan K1 masukkan M3, lalu sebrangkan mereka












8. Keluarkan M2 dan M3, lalu sebrangkan K2
Setelah itu biarkan Si kanibal disebrang sana.













9. Masukkan K1, untuk menyebrangkan mereka















10 Keluarkan K1, sebrangkan K2













11 Masukkan K3 lalu sebrangkan,









3 Pendeta dan 3 Kanibal semuanya harus menyeberangi sungai (lagi-lagi sungai, hehe) dengan menggunakan perahu. Peraturannya : jumlah Kanibal tidak boleh lebih banyak dari jumlah Pendeta baik saat mau menyeberang maupun saat sudah diseberangkan.








3. Keluarga Menyebrangi Jembatan Kayu

Ada sebuah keluarga terdiri dari 5 orang akan
menyeberang melewati jembatan pada malam
hari dengan bantuan lampu yang hanya bisa
bertahan 30 detik
Dengan catatan :
Setiap orang mempunyai kecepatan yang
berbeda-beda ( 1,3,6,8 dan 12 detik). Apabila
yang melewati jembatan ada 2 orang maka
kecepatannya akan dihitung berdasarkan yang
paling lambat.




1. Posisi awal : detektif, polisi, ibu, paman, dan profesor di sisi kanan







2. Detektif menyebrang bersama ibu ke sisi kiri dengan waktu 6 detik







3. Detektif kembali ke sisi kanan dengan waktu 1 detik








4. Detektif menyebrang bersama polisi ke sisi kiri dengan waktu 3 detik







5. Detektif kembali ke sisi kanan dengan waktu 1 detik








6. Paman menyebrang bersama profesor ke sisi kiri dengan waktu 12 detik







7. Polisi kembali ke sisi kanan dengan waktu 3 detik








8. Polisi menyebrang bersama detektif ke sisi kiri dengan waktu 3 detik








9. Posisi akhir : detektif, polisi, ibu, paman, dan profesor  di sisi kiri












Desain dan Analisis Algoritma

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)ndan penghapusan elemen dari tumpukann(POP). Contoh pada PDA (Push Down Automaton). Sistem pada pengaksesan pada tumpukan menggunakn 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, bertipe interger 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 menembah 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 masimum 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.
Ilustrasi Stack pada saat Inisialisasi
Ilustrasi Stack pada saat full
Contoh Codingnya
Stack1

Hasilnya
stack2

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 bebeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagian belakang (Rear). Elemen-elemen di dalam 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. Sedang 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 Codingnya
Queue1

Hasilnya
Queue2
Sumber : https://furqonubd.wordpress.com/2013/05/20/stack-and-queue/

Perilaku Jujur

Pengertian Jujur Assalamu’alaikum wr.wb Pada artikel ini saya akan menjelaskan Apa itu Jujur? Jujur adalah kesesuaian sikap antara perkataan...