Minggu, 30 Oktober 2011

Tower of Hanoi

Soal Quiz
  •  himpunan kandidat pada menara di bawah adalah 1,4,3,5,4,6,2
  • himpunan solusinya adalah semua balok yang akan dipindahkan ke C dapat memenuhi syarat tersusunnya menara hanoi
  • fungsi seleksinya adalah penyusunan balok hanoi dari besar ke kecil
  • fungsi kelayakannya tidak boleh meletakkan balok diatas balok yang kecil sehingga balok tersebut layak di letakkan ke tiang C
  • dan fungsi objektifnya adalah hasil akhir dari menara hanoi harus berada di tiang C dan secara tersusun dari besar ke kecil.
 


 Penyelesaian nya :

1.    .  Pindahkan 1 ke B
2.
       Pindahkan 4 ke C
3.
       Pindahkan 3 ke C
4.
       Pindahkan 1 ke C
5.
       Pindahkan 5 ke B
6.
       Pindahkan 4 dari A ke B
7.
       Pindahkan 1 ke B
8.
       Pindahkan 3 ke A
9.
       Pindahkan 1 ke A
10.
   Pindahkan 4 dari C ke B
11.
   Pindahkan 1 ke C
12.
   Pindahkan 3 ke B
13.
   Pindahkan 1 ke B
14.
   Pindahkan 6 ke C
15.
   Pindahkan 1 ke A
16.
   Pindahkan 3 ke C
17.
   Pindahkan 1 ke B
18.
   Pindahkan 2 ke C
19.
   Pindahkan 1 ke C
20.
   Pindahkan 4 ke A
21.
   Pindahkan 4 ke A
22.
   Pindahkan 1 ke A
23.
   Pindahkan 2 ke B
24.
   Pindahkan 1 ke B
25.
   Pindahkan 3 ke A
26.
   Pindahkan 1 ke C
27.
   Pindahkan 2 ke A
28.
   Pindahkan 1 ke A
29.
   Pindahkan 5 ke C
30.
   Pindahkan 1 ke B
31.
   Pindahkan 2 ke C
32.
   Pindahkan 1 ke C
33.
   Pindahkan 3 ke B
34.
   Pindahkan 1 ke A
35.
   Pindahkan 2 ke B
36.
   Pindahkan 1 ke B
37.
   Pindahkan 4 ke C
38.
   Pindahkan 4 ke C
39.
   Pindahkan 1 ke C
40.
   Pindahkan 2 ke A
41.
   Pindahkan 1 ke A
42.
   Pindahkan 3 ke C
43.
   Pindahkan 1 ke B
44.
   Pindahkan 2 ke C
45.
   Pindahkan 1 ke C

The End.

Rabu, 28 September 2011

Contoh Notasi Algoritmik

Notasi Algoritmik

Sebuah komposisi musik di tulis kedalam bentuk sebuah notasi sehingga bisa dimainkan oleh pemain musik, begitu pula dengan algoritma layaknya sebuah komposisi musik algoritma memiliki notasi yang dikenal dengan sebutan notasi algoritmik yaitu rancangan yang berisi urutan langkah-langkah solusi yang ditulis dalam notasi (cara penulisan khusus). Perlu diketahui bahwa notasi algoritmik bukanlah notasi bahasa pemrograman.  Siapapun dapat membuat notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah di baca dan dimengerti. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalankannya.

Beberapa notasi dalam penulisan algoritma :

1. Notasi Deskriptif

Notasi deskriptif yaitu notasi yang menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif dan dapat dijelaskan dengan bahasa yang jelas. Notasi ini baik digunakan untuk algoritma yang pendek, namun untuk masalah yang besar notasi ini tidak mungkin dipakai. Selain itu, konversi dari notasi algoritma ke bahasa pemrograman cenderung relatif sukar.

contoh:
 *  menghitung luas dan keliling Persegi Panjang
Algoritma Hitung_Luas_dan_Keliling_Persegi Panjang
DESKRIPSI:
• Masukkan panjang persegi panjang (p)
• Masukkan lebar  persegi panjang (l)
• Hitung luas persegi dengan rumus L = p * l
• Hitung keliling persegi panjang dengan rumus K = 2 * (p + l)
• Tampilkan luas persegi panjang
• Tampilkan keliling persegi panjang

2.Notasi Psuedo-Code

Notasi psuedo-code yaitu notasi algoritma yang serupa dengan bahasa pemrograman tingkat tinggi . Banyak sekali notasi pseudo-code yang digunakan oleh para ahli komputer dan berbeda-beda sehingga tidak ada aturan baku dalam penulisan pseudo-code ini.

3. Notasi Flowchart (Bagan Alir)

Notasi flowchart (bagan alir) merupakan representasi secara grafik dari suatu algoritma atau prosedur untuk menyelesaikan suatu masalah. Disamping itu, flowchart juga berguna sebagai fasilitas untuk berkomunikasi di antara pemrogram yang bekerja dalam tim suatu proyek. Flowchart terbagi dalam dua macam yaitu :


  • Flowchart Sistem
Yaitu diagram alir yang menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data dan hubungan antar peralatan tersebut. Flowchart sistem, digunakan  untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk. simbol yang digunakan :





contoh flowchart sistem :




  • Flowchart Program
Yaitu bagian yang menggambarkan urutan logika dari suatu prosedur pemecah masalah.

Simbol yang digunakan adalah American National Standard Inc. :

Minggu, 25 September 2011

NOTASI ALGORITMIK

Adalah Teks Algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Pada umumnya teks algoritma terdiri dari 3 blok yaitu Kepala Algoritma, Deklarasi , Deskripsi

Bentuk Teks Algoritma
ALGORITMA nama_algoritma
{ Penjelasan tentang algoritma, yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma}
DEKLARASI
{ semua nama yang dipakai, meliputi nama tipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi yang didefinisikan di sini }
DESKRIPSI
{ semua langkah/aksi algoritma dituliskan di sini }

Contoh Algoritma
• ALGORITMA Menghitung_Nilai_Penjumlahan
{ menghitung nilai penjumlahan antara dua bilangan bulat yang dibaca dari piranti masukan}
DEKLARASI
B1 : integer {peubah data bilangan bulat pertama}
B2 : integer {peubah data bilangan bulat kedua}
Jumlah : integer {jumlah dua bilangan bulat}

DESKRIPSI
read (B1)
read (B2)
Jumlah = B1 + B2
write (jumlah)

• ALGORITMA Ucapan_Selamat_Datang
{ Menampilkan ucapan Selamat Datang}
DEKLARASI
DESKRIPSI
write (‘Selamat Datang’)
write (‘Pada Mata Kuliah Algoritma Pemrograman dan Struktur data’)


TIPE DATA
Tipe Data dan Variabel
• Di dalam program, selalu dibutuhkan suatu tempat untuk menyimpan nilai yang disebut identifier.
• Suatu identifier harus diberi nama yang unik dan memiliki tipe data.
Identifier dibagi menjadi 2 jenis, yaitu:
1. Konstanta
Konstanta adalah identifier yang nilainya tetap selama program berjala (dieksekusi).
Cara untuk mengubah nilai konstanta adalah hanya melalui source code.
2. Variabel
Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan (dieksekusi).
• Identifier juga dapat disebut sebagai nama suatu elemen dalam program, misalnya nama function, nama procedure, nama tipe data dan lain-lain.
• Tipe data adalah jenis data yang dapat digunakan di dalam komputer. Pada banyak bahasa pemrograman pada umumnya, dikenal tipe data yang rata-rata hampir sama.

Macam-macam Tipe Data
A. Tipe Dasar Yaitu tipe yang lansung dapat dipakai
a. Bilangan Logika
1. Nama Tipe : Boolean
2. Ranah Nilai :
- True atau 1
- False atau 0

b. Bilangan Bulat
1. Nama Tipe : integer
2. Ranah Nilai :

c. Bilangan Riil
1. Nama Tipe : real
2. Ranah Nilai

d. Karakter
1. Nama Tipe : char
2. Ranah Nilai :
- huruf a…z, A..Z
- angka 0 .. 9
- tanda baca
- operator aritmatik
- karakter khusus


B. Tipe Bentukan
Tipe Bentukan Yaitu bentukan dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan.
1. String
String merupakan dereten karakter dengan panjang tertentu.
Karakter รจ string dengan panjang 1
a. Nama tipe : string
b. Ranah nilai : deretan karakter yang telah didefinisikan pada ranah karakter

Contoh Penggunaan String dalam Algoritma
ALGORITMA Penggunaan_String
{Menginput masukan berupa data String dari Keybord}
DEKLARASI
Nama : String
Alamat : String
DESKRIPSI
Write(‘Nama Anda : ‘)
Read(nama)
Write(Alamat Sekarang :’)
Read(alamat)

2. Tipe Dasar Yang Diberi Nama Tipe Baru
Kata kunci yang digunakan untuk membuat tipe baru adalah type
Contoh
type Bilbulat : integer
Contoh penggunaan pada Algoritma
ALGORITMA penggunaan_type
{contoh penggunaan type pada algoritma}
DEKLARASI
Type Bilbulat : Integer
Bil1, Bil2, Bil3 : Bilbulat
DESKRIPSI
Read (Bil1)
Read (Bil2)
Bil3 = Bil1 + Bil2
Write (Bil3)

3. Rekaman (Record)
Rekaman disusun oleh satu atau lebih field. Tiap field mempunyai data dari tipe data tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.

Kata kunci untuk rekaman adalah record
Gambar Logik Rekaman dengan N buah Field



Misalkan terdapat rekaman NilMhs sbb:

Cara menuliskan record tipe NilMhs dalam Algoritma
type NilMhs : record

C. Peubah (Variabel) dan Tetapan (Constanta)
1. Peubah (Variabel)
Peubah adalah tempat penyimpanan di memori yang isinya dapat diubah
Contoh
DEKLARASI
x, nilai_ujian, jumlah : real
k : integer
c : char

Contoh penggunaan Peubah (variabel) dalam Algoritma
ALGORITMA penggunaan_peubah
{contoh penggunaan peubah dalam algoritma}
DEKLARASI
a, b : integer
DESKRIPSI
a = 10
b = 5
b = 2 * a * b
read(a)
b = 2 * a * b
write(b)

2. Tetapan (Constanta)
Tetapan adalah tempat penyimpanan di dalam memori yang isinya tetap pelaksanaan program dan tidak dapat diubah.
Notasi untuk menyatakan tetapan adalah const
Contoh
DEKLARASI
const phi = 3.14
const Namks = 100
const sandi = ‘xyz’

Contoh penggunaan Constanta dalam Algoritma
ALGORITMA penggunaan_constanta
DEKLARASI
const a = 10
const b = 5
c : integer
DESKRIPSI
c = a + b
write(c)