Senin, 25 Mei 2015

Struktur Data STACK



TREE
Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hirarki (hubungan one to many) antara elemen-elemen. Bentuk tree
menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling
berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Sehingga tree bisa
didefinisikan sebagai kumpulan simpul atau node dengan elemen khusus yang disebut root
atau akar. Contoh data yang dapat direpresentasikan dengan menggunakan tree adalah silsilah keluarga, hasil pertandingan yang berbentuk turnamen, atau struktur organisasi dari sebuah perusahaan. berikut adalah contoh struktur organisasi yang menerapkan struktur data tree.



Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang
memiliki node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu
node induk. Sesuai konvensi ilmu komputer, tree bertumbuh ke bawah, tidak seperti pohon di
dunia nyata yang tumbuh ke atas. Dengan demikian node anak akan digambarkan berada di
bawah node induknya. Node yang berada di pangkal tree disebut node root (akar), sedangkan
node yang berada paling ujung tree disebut node leaf (daun).

Bab 3 Tugas Logika dan Algoritma



1. Tipe data biasanya digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu variabel, umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang terstruktur. Apabila kita membutuhkan tipe data yang belum tersedia, kita dapat mendefinisikan sendiri tipe data baru yang disebut enumerated type.
2. Jenis-Jenis Tipe Data

1.  Tipe Data Sederhana.

Merupakan tipe data dasar yang sering dipakai oleh program, meliputi:

a.  Integer (Bilangan Bulat).
Penggolongan tipe data integer tersebut dimaksudkan untuk membatasi alokasi memori yang dibutuhkan. Misalkan untuk suatu perhitungan dari suatu variabel bilangan diperkirakan nilai maksimumnya 32767 kita cukup mendeklarasikan variabel bilangan sebagai integer (2 byte), daripada sebagai longint(4 byte). Didalam kompilernya, Pascal menyediakan konstanta untuk bilangan Integer yaitu: MaxInt and MaxLongInt, pemrogram bisa menggunakannya didalam programnya tanpa harus terlebih dahulu mendefinisikannya. Contoh bilangan integer adalah: 34 6458 -90 0 1112.
B. Real (Bilangan Pecahan). 
Bilangan real atau nyata merupakan jenis bilangan pecahan, dapat dituliskan secara biasa atau model scientific . Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2.

d. Boolean (Logika)
Merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah). Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu: Boolean,WordBool, dan LongBool. Tipe Boolean memakai memori paling kecil, sedangkan WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan lingkungan Windows.

3. Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.

4. Variabel adalah suatu tempat untuk menampung data yang nilainya selalu berubah. Sedangkan, Konstanta adalah suatu tempat untuk menampung data yang nilainya selalu tetap dan tidak pernah berubah.
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya sepanjang program berjalan tidak berubahubah, maka sebuah varibel lebih baik diperlakukan sebagai konstanta.

5. Variabel adalah nama yang mewakili suatu elemen data seperti jenkel untuk jenis kelamin dan sebagainya.  sedangkan Konstanta adalah suatu nilai yang tetap didalam program

6. Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karna array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks.


7. Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. 
Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP 

OPERASI-OPERASI/FUNGSI STACK Push : digunakan untuk menambah item pada stack pada tumpukan paling atas 
Pop       : digunakan untuk mengambil item pada stack pada tumpukan paling atas 
Clear     : digunakan untuk mengosongkan stack 
IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong 
IsFull     : fungsi yang digunakan untuk mengecek apakah stack sudah penuh 

 8. Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front). 

Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out). 
Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll. Contoh lain dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.

Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear). 
Karakteristik Queue atau antrian : 
1. elemen antrian 
2. front (elemen terdepan antrian) 
3. tail (elemen terakhir) 
4. jumlah elemen pada antrian 
5. status antrian Operasi pada Queue atau antrian 

1. tambah(menambah item pada belakang antrian) 
2. hapus (menghapus elemen depan dari antrian) 
3. kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak) 

9. Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hirarki (hubungan one to many) antara elemen-elemen, contoh penerapannya adalah ketika menggambar bagan silsilah keluarga, atau struktur organisasi

10. graph adalah struktur yang menggambarkan relasi antar obyek dari sebuah koleksi obyek. Contoh penerapannya adalah Contohnya informasi topologi dan jarak antar kota di suatu pulau

Bab 1 Tugas Logika dan Algoritma



Bab 1

1. Pengertian algoritma sangat lekat dengan kata logika, yaitu kemampuan seorang
manusia untuk berfikir dengan akal tentang suatu permasalahan menghasilkan sebuah
kebenaran, dibuktikan dan dapat diterima akal, logika seringkali dihubungkan dengan
kecerdasan, seseorang yang mampu berlogika dengan baik sering orang menyebutnya sebagai pribadi yang cerdas. Dalam menyelesaikan suatu masalahpun logika mutlak diperlukan
2.   Perbedaan Algoritma dan Program
Sebagaimana telah diuraikan di sub bab sebelumnya bahwa algoritma adalah urutan
langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan menyelesaikan suatu masalah tertentu. Sementara program adalah kumpulan instruksi berupa pernyataan yang ditulis dengan menggunakan bahasa pemrograman yang melibatkan pemilihan struktur data. Beberapa pakar komputer menyatakan program dengan formula Program = Algoritma + Bahasa Pemrograman.

3. Runtunan = Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan     secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan. Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah maka mungkin juga hasil akhirnya berubah. Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3)*7=49, tetapi bila urutan aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25.
Pemilihan yaitu instruksi yang dikerjakan dengan kondisi tertentu.
Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Satu atau beberapa instruksi hanya dilaksanakan apabila kondisi bernilai benar, sebaliknya apabila salah maka instruksi tidak akan dilaksanakan.
Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama
sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan.

   4. membuat program adalah belajar tentang strategi atau cara menyelesaikan suatu masalah, yang diungkapkan dalam bentuk algoritma yang mudah dibaca dan dipahami yang selanjutnya dituangkan dalam bahasa pemrograman.
bahasa pemrograman adalah belajar mengenai tata cara atau tata aturan penulisan pernyataan atau statement untuk membuat program dalam bahasatertentu saja
        
      5. Proses mengirim surat :
1.      Mulai Menulis Surat
2.      Masukan surat dalam amplop
3.      Tempelkan perangko pada amplop
4.      Tuliskan alamat tujuan dan pengirim surat
5.      Pergi ke kantor Pos dengan membawa surat
6.      Masukan surat pada Bis Surat.
7.      Selesai.


      6.    Algoritma Mengambil Uang di ATM
1.      Pergi ke ATM
2.      Memasukkan kartu ATM ke mesin ATM
3.      Memilih bahasa yang digunakan
4.      Memasukkan kode PIN
5.      Memilih jenis transaksi : 1. Tarik Tunai
6.      Memilih jumlah uang yang akan di ambil
7.      Mengambil struk dan kartu ATM

       7. Algoritma Membuat Kopi
1. Mulai
2. Siapkan air, panci, cangkir, kopi, dan gula.
3. masukan air kedalam panci.
4. Rebus air didalam panci hingga mendidih.
5. Setelah air mendidih masukan kopi kedalam cangkir.
6. Tambahkan gula secukupnya sesuai selera.
7. Masukan air mendidih kedalam cangkir.
8. Aduk kopi hingga merata dengan gula
9. Secangkir kopi manis siap disajikan
10.    Selesai

      8. Algoritma Menghitung Luas Segitiga
1.      Mulai
2.      Masukkan Alas
3.      Masukkan Tinggi
4.      Luas segitiga=0.5*alas*tinggi
5.      Tampilkan hasil luas segitiga
6.      Selesai
      9. Algoritma Kegiatan dari pagi sampai malam
1.      Memulai dengan Bangun pagi kemudian membersihkan kamar tidur.
2.      Melaksanakan sholat shubuh lalu mandi pagi.
3.      Melanjutkan sarapan pagi lalu berangkat ke kampus.
4.      Setibanya di kampus menerima materi mata kuliah kemudian diberi tugas.
5.      Melanjutkan untuk istirahat dan makan siang.
6.      Kemudian sholat dzuhur dan masuk kembali ke kelas.
7.      Masuk kelas kembali dan menerima materi mata kuliah.
8.      Selesai menerima mata kuliah lalu pulang ke rumah.
9.      Setibanya di rumah, mandi dan sholat ashar.
10.  Melanjutkan menyicil mengerjakan tugas yang diberikan dosen tadi pagi.
11.  Kemudian sholat maghrib dan menunggu waktu isya.
12.  Melanjutkan shalat isya dan makan malam.
13.  Menyudahi makan malam lalu belajar untuk mata kuliah besok dan memmpersiapkannya.
14.  Mengakhiri belajar lalu tidur dengan nyenyak.






      10.  Algoritma Mengurutkan 3 Bilangan Acak
1.      Mulai
2.      Tentukan bilangan a (bilangan pertama).
3.      Masukkan bilangan a.
4.      Tentukan bilangan b (bilangan kedua).
5.      Masukkan bilangan b.
6.      Tentukan bilangan c (bilangan ketiga).
7.      Masukkan bilangan c.
8.      Apakah anda ingin mengurutkan secara ascending?
9.      Bila anda ingin mengurutkan secara ascending, maka :
10.  Bandingkan bilangan a dengan bilangan b.
11.  Bila a lebih besar daripada b, maka b sama dengan a (b=a) dan a sama dengan b (a=b).
12.  Bila a lebih kecil daripada b, maka a dan b bernilai tetap atau a sama dengan a (a=a) dan b sama dengan b (b=b).
13.  Bandingkan bilangan b dengan bilangan c
14.  Bila b lebih besar daripada c, maka c sama dengan b (c=b) dan b sama dengan c (b=c).
15.  Bila b lebih kecil daripada c, maka b dan c bernilai tetap atau b sama dengan b (b=b) dan c sama dengan c (c=c).
16.  Bandingkan apakah ketiga bilangan tersebut sudah urut secara ascending atau bilangan a lebih kecil dari bilangan b, dan bilangan b lebih kecil dari bilangan c (a<b<c).
17.  Bila bilangan a sudah lebih kecil daripada bilangan b dan bilangan b sudah lebih kecil daripada bilangan c, maka langsung ke langkah 13).
18.  Bila bilangan a belum lebih kecil daripada bilangan b dan bilangan b belum lebih kecil daripada bilangan c, maka kembali ke langkah 11.a).
19.  Bila anda tidak mengurutkan secara ascending, maka :
20.  Bandingkan bilangan a dengan bilangan b.
21.  Bila a lebih kecil daripada b, maka b sama dengan a (b=a) dan a sama dengan b (a=b).
22.  Bila a lebih besar daripada b, maka a dan b bernilai tetap atau a sama dengan a (a=a) dan b sama dengan b (b=b).
23.  Bandingkan bilangan b dengan bilangan c
24.  Bila b lebih kecil daripada c, maka c sama dengan b (c=b) dan b sama dengan c (b=c).
25.  Bila b lebih besar daripada c, maka b dan c bernilai tetap atau b sama dengan b (b=b) dan c sama dengan c (c=c).
26.  Bandingkan apakah ketiga bilangan tersebut sudah urut secara descending atau bilangan a lebih besar dari bilangan b, dan bilangan b lebih besar dari bilangan c (a>b>c).
27.  Bila bilangan a sudah lebih besar daripada bilangan b dan bilangan b sudah lebih besar daripada bilangan c, maka langsung ke langkah 13).
28.  Bila bilangan a belum lebih kecil daripada bilangan b dan bilangan b belum lebih kecil daripada bilangan c, maka kembali ke langkah 12.a).
29.  Cetak output ( bilangan a, b, c ) secara urut.
30.  Apakah anda masih ingin mengurutkan 3 bilangan acak lagi?
31.  Bila anda masih ingin mengurutkan 3 bilangan acak lagi, maka kembali ke langkah 4).
32.  Bila anda tidak ingin lagi mengurutkan 3 bilangan acak, maka proses pengurutan selesai.