NasNes

IT Dan Kesehatan

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Rabu, 07 Januari 2015

STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA

STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA

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.


STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA

Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan tersusun secara LIFO (Last In First Out).
karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. 
Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.

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
left;"> INISIALISASI STACK
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG.!
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!

Ilustrasi stack pada saat inisialisasi

Fungsi IsFull
Untuk memeriksa apakah stack sudah penuh?
Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full
Ilustrasi
Semoga apa yang saya posting sore ini bermanfaat bagi teman teman yang membutuhkan., dan semoga berhasil pada matakuliah struktur data yang sedang anda tempuh.. see you.. ( '_' )

Pengertian Struktur Data dan Tipe Data


Pengertian Struktur Data dan Tipe Data

1. Apa yang dimaksud dengan Struktur Data?

Struktur Data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis.

2. Sebutkan minimal 5 Tipe Data?

a. Integer ( Bilangan Bulat )
Integer merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadecimal. Tipe data numerik yang termasuk integer adalah sebagai berikut :
- Byte : Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori
- Short : Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori
- Int : Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori
-Long : Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan menempati 8 bytes ( 64 bits ) di memori.

b. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ).

c. String
Merupakan urutan-urutan dari karakter yang terletak di antara tanda petik tunggal. Nilai data string akan menempati memori sebesar banyaknya karakter string ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah 255 karakter.

d. Real
Nilai konstanta numeric real berkisar dari 1E-38 sampai 1E+38. E menunjukkan nilai 10 pangkat, dan tipe data ini menempati memori sebesar6 byte.

e. Boolean
Tipe data boolean terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program..
 
 
Sekian dulu dan semoga bermanfaat

Menghitung Average Waiting Time dalam Algoritma Penjadwalan Shortest Job First (SJF)

Pada postingan sebelumnya saya sudah membahas tentang bagaimana cara menghitung Average Waiting Time dalam algorima penjadwalan First Come First Served (FCFS), pada postingan kali ini saya masih membahas tentang cara mencari Average waiting time dari sebuah algoritma penjadwalan namun kali ini mencarinya dengan cara Shortest Job First (SJF).

SJF adalah salah satu bentuk algoritma penjadwalan yang dipengaruhi oleh waktu tunggu dari sebuah proses. Apabila suatu proses memiliki waktu tunggu paling sedikit dalam pemrosesannya maka proses tersebut yang akan di kerjakan terlebih dahulu. Pada SJF tidak ada penyelaan karena SJF ini bersifat Non Preemtive

Sudah paham tentang bagaimana cara kerja SJF? Kalau belum, baca kembali pengertian di atas agar anda lebih paham. Mempersingkat waktu, saya akan lanjutkan tentang pembahasan soal tentang mencari average waiting time dengan SJF. Soalnya masih sama dengan postingan sebelumnya dengan table yang sama.
Dari table di atas tentukan average waiting time dengan algoritma penjadwalan SJF!
Penyelesaian:
  • Hal yang pertama dilakukan sama seperti postingan sebelumnya, yaitu membuat Gantt Chart, berikut gambarnya:
Awalnya ketika CPU tidak melakukan aktifitas apapun alias lagi nganggur, datang sebuah proses yang bernama P1 untuk diproses yaitu pada titik 0. Pada saat itu P1 membutuhkan waktu proses sejumlah 8. Namun baru berjalan sejumlah 2, tiba-tiba datang P2 meminta untuk di proses, tapi hal ini tidak akan di izinkan oleh CPU karena dalam SJF tidak diizinkan sebuah penyelaan, proses yang sudah di proses akan di kerjakan hingga selesai. Maka dengan itu P1 akan di proses sampai selesai pada titik 8.
Pada titik 8, sudah terlihat bahwa P2 dan P3 sedang menunggu untuk di proses. Pada saat ini CPU kembali mengecek jumlah waktu tunggu dari ke dua proses tersebut. dan dapat di lihat bahwa P2 memiliki waktu pengerjaan lebih sedikit dibandingkan dengan P3. Maka P2 lah yang dikerjakan terlebih dahulu. Begitu seterusnya, setiap CPU menyelesaikan proses dia akan melakukan pengecekan dari waktu tunggu proses yang sedang menunggu, yang terkecil akan di proses lebih awal.
Ingat: SJF tidak ada proses penyelaan (Non Preemtive)
  • Hal kedua yang dilakukan untuk menghitung average waiting time yaitu dengan menghitung berapa lama waktu tunggu yang dihasilkan oleh proses tersebut. Untuk menhitungnya dapat dilakukan dengan cara mengurangkan waktu eksekusi dengan waktu datang. 
 
  •  Hal ketiga dan juga hal yang terakhir yang harus dilakukan yaitu menghitung Average Waiting Time dari semua proses tersebut, yaitu dengan cara sebagai berikut:

 

Sekian dulu semoga bermanfaat.

Menghitung Average Waiting Time dalam Algoritma Penjadwalan Round Robin

Dalam algoritma penjadwalan proses Round Robin, proses akan diberikan porsi waktu pengerjaan yang sama dari tiap-tiap prosesnya. Algoritma Round Robin ini disebut dengan algoritma yang adil. Untuk memahami dari cara kerja algoritma penjadwalan Round Robin ini,mari kita kerjakan soal berikut :
Hitunglah Average Waiting Times proses di atas dengan menggunakan algoritma penjadwalan Round Robin dengan QT = 5ms!
Penyelesaian:
  • Seperti halnya algoritma penjadwalan sebelumnya, langkah pertama untuk mencari AWT dengan Algoritma penjadwalan Round Robin dilakukan dengan membuat Gantt Chart prosesnya. Berikut gambarnya:
 
Dari Gantt Chart di atas terlihat bahwa setiap proses dikerjakan menurut waktu yaitu setiap proses di proses sebesar 5. Awalnya P1 akan di kerjakan sebanyak 5 langkah, kemudian, P2 sebanyak 5 langkah, dan begitupun selanjutnya hingga P5. Proses yang sudah di proses menurut porsi waktu yang diberikan akan kembali menunggu dan berada paling belakang dari antrian proses yang ada. Contohnya P1 dikerjakan di awal, kemudian ada P2, P3,P4,dan P5 yang mengantri di belakangnya. Jika P1 selesai di proses menurut porsi waktunya maka P1 akan di pindahkan ke belakang, sehingga urutannya menjadi P2, P3, P4, P4, P1. begitupun seterusnya.
  • Setelah mendapatkan Gantt Chartnya, sekarang kita menghitung waiting timesnya, lihat gambar di bawah:
  •  Dari Waiting Times di atas dapat kita tentukan AWTnya yaitu dengan cara :

Menghitung Average Waiting Time dalam Algoritma penjadwalan proses first come first served (FCFS)

Postingan saya kali ini mengenai bagaimana cara menghitung average waiting time daripada kriteria penjadwalan FCFS yang saya dapatkan di sekolah. Untuk lebih jelasnya saya berikan contoh kasus dan penyelesaiannya.

Dari tabel di atas, tentukan average waiting time dengan menggunakan prinsip FCFS!
Saya jelaskan sedikit disini, Arrival Times adalah waktu ketika proses berada di memori utama, sebelum proses tersebut mulai dikerjakan oleh CPU. Burst Times adalah waktu yang dibutuhkan untuk menyelesaikan keseluruhan proses.
Nah.. setelah mengetahui apa maksud daripada tabel di atas, barulah kita mulai mengerjakan soalnya.
  • Hal pertama yang harus dilakukan yaitu menggambarkan kronologi eksekusi proses di atas dengan Gantt Chart. Berikut gambarnya:
Penjelasan:
Mengenai penjelasan dari Gantt Chart di atas akan saya bahas satu per satu di bagian ini. Ketika CPU tidak mengerjakan sesuatu atau dalam posisi 0 datang sebuah proses yang dinamakan P1 yang membutuhkan waktu penyelesaian yang berjumlah 8. Karena FCFS ini melakukan proses menurut kapan proses itu datang atau yang bisa kita katakan sebagai proses antrian, maka proses selanjutnya akan di kerjakan setelah proses yang berada di depannya selesai untuk di kerjakan. Tadi proses P1 selesai di kerjakan di 8, sementara itu ada P2,P3,dan P4 yang sedang menunggu untuk di kerjakan selanjutnya.
Ketika  P1 selesai dikerjakan di 8, maka akan di lanjutkan dengan pengerjaan P2 yang memiliki waktu pengerjaan sebesar 7, sehingga proses P2 akan selesai di kerjakan pada posisi 15. P1 dan P2 sudah selesai pengerjaannya, tinggal menunggu pengerjaan daripada P3 dan P4. Dan begitupun selanjutnya sampai P4 selesai untuk di proses. Saya ingatkan di sini, FCFS dalam prosesnya tidak mengizinkan sebuah penyelaan dari segi apapun, walaupun proses yang menunggu memiliki prioritas yang lebih tinggi.
  • Hal kedua yang dilakukan untuk menghitung average waiting time yaitu dengan menghitung berapa lama waktu tunggu yang dihasilkan oleh proses tersebut. Untuk menhitungnya dapat dilakukan dengan cara mengurangkan waktu eksekusi dengan waktu datang.
 Jadi lama waktu tunggu dari keseluruhan proses tersebut berjumlah 28.
  • Hal ketiga dan juga hal yang terakhir yang harus dilakukan yaitu menghitung Average Waiting Time dari semua proses tersebut, yaitu dengan cara sebagai berikut:
Semoga Bermanfaat