Monday, May 25, 2015

Metode Weighted Product (WP) dalam SPK

Weigthted Product adalah metode penyelesaian dengan menggunakan perkalian untuk menghubungkan rating atribut, dimana rating harus dipangkatkan terlebih dahulu dengan bobot atribut yang bersangkutan. Proses ini sama halnya dengan proses normalisasi.



Dimana  ∑wj =  1.  wj  adalah  pangkat  bernilai  positif  untuk  atribut  keuntungan,  dan bernilai negatif untuk atribut biaya.
Preferensi relatif dari setiap alternatif, diberikan sebagai:


Contoh kasus :
Misalkan nilai setiap alternatif pada setiap atribut diberikan berdasarkan data riil yang ada seperti pada Tabel 2.1, perlu diidentifikasi terlebih dahulu jenis kriterianya, apakah termasuk kriteria keuntungan atau kriteria biaya.

Rating kecocokan dari setiap alternatif pada setiap kriteria
(Kusumadewi, Hartati, Harjoko, dan Wardoyo, 2006: 78)
Kriteria C2 (kepadatan penduduk di sekitar lokasi) dan C4 (jarak dengan gudang  yang sudah  ada)  adalah  criteria  keuntungan.  Sedangkan  kriteria  C1(jarak  dengan  pasar terdekat), C3 (jarak dari pabrik), dan C5 (harga tanah untuk lokasi) adalah kriteria biaya. Permasalahan kasus di atasakan di selesaikan dengan menggunakan metode  Weighted Product (WP). Sebelumnya akan dilakukan perbaikan bobot terlebih dahulu. Bobot awal W = (5, 3, 4, 4, 2), akan diperbaiki sehingga total bobot ∑Wj = 1, dengan cara:
Kemudian vektor S dihitung berdasarkan persamaan rumus6 dengan i = 1, 2, … ,m sebagai berikut :

Nilai  vektor  yang  akan  digunakan  untuk  perankingan  dapat  dihitung  berdasarkan persamaan
Nilai terbesar ada pada V2  sehingga alternatif A2 adalah alternatif yang terpilih sebagai alternatif  terbaik.  Dengan  kata  lain,  alternatif  A2 akan  terpilih  sebagai  lokasi  untuk mendirikan gudang baru. ( Kusumadewi, Hartati, Harjoko, dan Wardoyo, 2006: 79 )


Sumber :

Sunday, May 24, 2015

Metode SAW dalam SPK

Metode Simple Additive Weighting (SAW) sering juga dikenal istilah metode penjumlahan terbobot. Konsep dasar metode SAW adalah mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif pada semua atribut (Fishburn, 1967) (MacCrimmon, 1968). Metode SAW membutuhkan proses normalisasi matriks keputusan (X) ke suatu skala yang dapat diperbandingkan dengan semua rating alternatif yang ada. Metode ini merupakan metode yang paling terkenal dan paling banyak digunakan dalam menghadapi situasi Multiple Attribute Decision Making (MADM). MADM itu sendiri merupakan suatu metode yang digunakan untuk mencari alternatif optimal dari sejumlah alternatif dengan kriteria tertentu. Metode SAW ini mengharuskan pembuat keputusan menentukan bobot bagi setiap atribut. Skor total untuk alternatif diperoleh dengan menjumlahkan seluruh hasil perkalian antara rating (yang dapat dibandingkan lintas atribut) dan bobot tiap atribut. Rating tiap atribut haruslah bebas dimensi dalam arti telah melewati proses normalisasi matriks sebelumnya.

Langkah - Langkah Metode Penyelesaian SAW

Langkah Penyelesaian SAW sebagai berikut :
1. Menentukan kriteria-kriteria yang akan dijadikan acuan dalam pengambilan keputusan, yaitu Ci.
2. Menentukan rating kecocokan setiap alternatif pada setiap kriteria.
3. Membuat matriks keputusan berdasarkan kriteria(Ci), kemudian melakukan normalisasi matriks berdasarkan persamaan yang disesuaikan dengan jenis atribut (atribut keuntungan ataupun atribut biaya) sehingga diperoleh matriks ternormalisasi R.
4. Hasil akhir diperoleh dari proses perankingan yaitu penjumlahan dari perkalian matriks ternormalisasi R dengan vektor bobot sehingga diperoleh nilai terbesar yang dipilih sebagai alternatif terbaik (Ai)sebagai solusi.

Formula untuk melakukan normalisasi tersebut adalah :
 
Dimana :
rij = rating kinerja ternormalisasi
Maxij = nilai maksimum dari setiap baris dan kolom
Minij = nilai minimum dari setiap baris dan kolom
Xij = baris dan kolom dari matriks
Dengan rij adalah rating kinerja ternormalisasi dari alternatif Ai pada atribut Cj; i =1,2,…m dan j = 1,2,…,n.

Nilai preferensi untuk setiap alternatif (Vi) diberikan sebagai :
 
Dimana :
Vi = Nilai akhir dari alternatif
wj = Bobot yang telah ditentukan
rij = Normalisasi matriks
Nilai Vi yang lebih besar mengindikasikan bahwa alternatif Ai lebih terpilih
 
 Sumber :





 

Wednesday, May 20, 2015

Model Pengambilan Keputusan

Langkah-Langkah Dalam Proses Pengambilan Keputusan
 
Menurut Herbert A. Simon, Proses pengambilan keputusan pada hakekatnya terdiri atas tiga langkah utama, yaitu :
  • Kegiatan Intelijen = Menyangkut pencarian berbagai kondisi lingkungan yang diperlukan bagi keputusan.
  • Kegiatan Desain = Tahap ini menyangkut pembuatan pengembangan dan penganalisaan berbagai rangkaian kegiatan yang mungkin dilakukan.
  • Kegiatan Pemilihan = Pemilihan serangkaian kegiatan tertentu dari alternatif yang tersedia.

Sedangkan menurut Scott dan Mitchell, proses pengambilan keputusan meliputi :
  • Proses pencarian/penemuan tujuan
  • Formulasi tujuan
  • Pemilihan Alternatif
  • Mengevaluasi hasil-hasil
Pendekatan konperhensif lainnya adalah dengan menggunakan analisis sistem, menurut ELBING ada lima langkah dalam proses pengambilan keputusan :
  • Identifikasi dan Diagnosa masalah
  • Pengumpulan dan Analisis data yang relevan
  • Pengembangan dan Evaluasi alternative alternative
  • Pemilihan Alternatif terbaik
  • Implementasi keputusan dan Evaluasi terhadap hasil-hasil
 
Model-Model Pengambilan Keputusan

Model Perilaku Pengambilan keputusan
Model Ekonomi, yang dikemukakan oleh ahli ekonomi klasik dimana keputusan orang itu rasional, yaitu berusaha mendapatkan keuntungan marginal sama dengan biaya marginal atau untuk memperoleh keuntungan maksimum
Model Manusia Administrasi, Dikemukan oleh Herbert A. Simon dimana lebih berprinsip orang tidak menginginkan maksimalisasi tetapi cukup keuntungan yang memuaskan
Model Manusia Mobicentrik, Dikemukakan oleh Jennings, dimana perubahan merupakan nilai utama sehingga orang harus selalu bergerak bebas mengambil keputusan
Model Manusia Organisasi, Dikemukakan oleh W.F. Whyte, model ini lebih mengedepankan sifat setia dan penuh kerjasama dalam pengambilan keputusan
Model Pengusaha Baru, Dikemukakan oleh Wright Mills menekankan pada sifat kompetitif
Model Sosial, Dikemukakan oleh Freud Veblen dimana menurutnya orang seringb tidak rasional dalam mengambil keputusan diliputi perasaan emosi dan situsai dibawah sadar.
Model Preskriptif dan Deskriptif
Fisher mengemukakan bahwa pada hakekatnya ada 2 model pengambilan keputusan, yaitu :
  • Model Preskriptif = Pemberian resep perbaikan, model ini menerangkan bagaimana kelompok seharusnya mengambil keputusan.
  • Model Deskriptif = Model ini menerangkan bagaimana kelompok mengambil keputusan tertentu.
Model preskriptif berdasarkan pada proses yang ideal sedangkan model deskriptif berdasarkan pada realitas observasi.
Disamping model-model diatas (model linier) terdapat pula model Spiral dimana satu anggota mengemukakan konsep dan anggota lain mengadakan reaksi setuju tidak setuju kemudian dikembangkan lebih lanjut atau dilakukan “revisi” dan seterusnya.

Teknik-Teknik Pengambilan Keputusan

  • Teknik Kreatif, Brainstorming. Berusaha untuk menggali dan mendapatkan kreatifitas maksimum dari kelompok dengan memberikan kesempatan para anggota untuk melontarkan ide-idenya.
  • Synectics. Didasarkan pada asumsi bahwa proses kreatif dapat dijabarkan dan diajarkan, dimaksudkan untuk meningktakan keluaran (output) kreatif individual dan kelompok.
  • Teknik Partisipatif. Individu individu atau kelompok dilibatkan dalam proses pengambilan keputusan.
  • Teknik Modern
  • Teknik Delphi
  • Teknik Kelompok Nominal
Contoh Kasus :
Metode pengambilan keputusan ini seringkali digunakan oleh para pemimpin otokratik atau dalam kepemimpinan militer. Metode ini memiliki beberapa keuntungan, yaitu cepat, dalam arti ketika kelompok tidak mempunyai waktu yang cukup untuk memutuskan apa yang harus dilakukan. Selain itu, metode ini cukup sempurna dapat diterima kalau pengambilan keputusan yang dilaksanakan berkaitan dengan persoalan-persoalan rutin yang tidak mempersyaratkan diskusi untuk mendapatkan persetujuan para anggotanya.
Namun demikian, jika metode pengambilan keputusan ini terlalu sering digunakan, ia akan menimbulkan persoalan-persoalan, seperti munculnya ketidak percayaan para anggota kelompok terhadap keputusan yang ditentukan pimpinannya, karena mereka kurang bahkan tidak dilibatkan dalam proses pengambilan keputusan. Pengambilan keputusan akan memiliki kualitas yang lebih bermakna, apabila dibuat secara bersama-sama dengan melibatkan seluruh anggota kelompok,daripada keputusan yang diambil secara individual.

Tipe-Tipe Proses Pengambilan Keputusan

Tipe Pengambilan keputusan ( Decision making) : adalah tindakan manajemen dalam pemilihan alternative untuk mencapai sasaran.
Keputusan dibagi dalam 3 tipe :
  • Keputusan terprogram/keputusan terstruktur : keputusan yg berulang2 dan rutin, sehingga dapt diprogram. Keputusan terstruktur terjadi dan dilakukan terutama pd manjemen tkt bawah. Co:/ keputusan pemesanan barang, keputusan penagihan piutang,dll.
  • Keputusan setengah terprogram / setengah terstruktur : keputusan yg sebagian dpt diprogram, sebagian berulang-ulang dan rutin dan sebagian tdk terstruktur. Keputusan ini seringnya bersifat rumit dan membutuhkan perhitungan2 serta analisis yg terperinci. Co:/ Keputusan membeli sistem komputer yg lebih canggih, keputusan alokasi dana promosi.
  • Keputusan tidak terprogram/ tidak terstruktur : keputusan yg tidak terjadi berulang-ulang dan tidak selalu terjadi. Keputusan ini terjadi di manajemen tingkat atas. Informasi untuk pengambilan keputusan tdk terstruktur tdk mudah untuk didapatkan dan tdk mudah tersedia dan biasanya berasal dari lingkungan luar.
 
Faktor-faktor yang mempengaruhi pemecahan masalah antara lain :

1)     Trial & error : Coba dan salah. Cara ini merupakan metode yang paling rendah tingkatannya, dilakukan oleh orang yang belum pernah mengalami/ mengenal dan belum tahu sama sekali. Dalam keperawatan ini sangat berbahaya dan tidak boleh dilakukan.
Contohnya : ada klien panas, dicoba diurut, dicoba diberi makan, dicoba ditiup, tdk berhasil dicoba diberi minum, dibuka baju, diberi kompres sampai berhasil panasnya turun, dll.
2)     Intuisi : penyelesaian masalah dengan intuisi atau naluri/ bisikan hati. Penyelesaian dengan cara ini kurang dianjurkan dalam metode ilmiah, karena tidak mempunyai dasar ilmiah.   Kadang-kadang metode ini juga dapat memberikan jalan keluar bila intuisi ini berdasarkan analisis atau pengalaman, dan pengetahuan yang dimiliki.
3)     Nursing process : Proses keperawatan merupakan suatu langkah penyelesaian masalah yang sistematis dan didukung oleh rasionalisasi secara ilmiah meliputi : pengkajian, perencanaan, implementasi dan evaluasi yang merupakan suatu siklus untuk mengatasi masalah yang terjadi pada klien.
4)     Scientifik methode/Research Process  : Proses riset/ penelitian merupakan suatu penyelesaian masalah berdasarkan hasil penelitian dengan menggunakan logika, dengan pendekatan yang sistematis

Sumber :

Pengantar SIstem Pendukung Keputusan

Pengertian Keputusan
 

Salah satu aspek dalam Sistem Pendukung Keputusan (SPK) adalah keputusan itu sendiri. Keputusan merupakan suatu pilihan dari berbagai macam alternatif yang diambil berdasarkan kriteria dan alasan yang rasional. Proses pengambilan keputusan sering disebut juga sebagai penyelesaian suatu masalah. Vercellis (2009: 24) menggambarkan proses pengambilan keputusan atau penyelesaian masalah dengan diagram alir berikut ini.
Gambar 1 : Diagram Alir Proses Pengambilan Keputusan (Vercellis, 2009: 24)

Berdasarkan diagram tersebut dapat dijelaskan bahwa suatu keputusan diambil berdasarkan alternatif yang ada dengan berpatokan pada kriteria yang telah ditentukan.


Pengertian Sistem Pendukung Keputusan (SPK)
 

Sistem Pendukung Keputusan (SPK) merupakan aplikasi interaktif berbasis komputer yang mengkombinasikan data dan model matematis untuk membantu proses pengambilan keputusan dalam menangani suatu masalah. Hal yang harus ditekankan adalah SPK bukanlah suatu sistem untuk mengambil keputusan secara langsung, akan tetapi sebagai pendukung pemegang keputusan dalam proses pengambilan keputusan. Vercellis (2009: 36) menyebutkan bahwa ada tiga aspek utama dalam SPK yaitu data, model matematis dan antarmuka pengguna.

Aspek pertama yaitu data. Data yang digunakan dalam SPK adalah data yang diambil dari data warehouse pada organisasi tersebut. Terkadang data yang dipakai berupa data mart, yakni data dari data warehouse yang telah dikategorikan berdasarkan kebutuhan organisasi. Hal tersebut secara tidak langsung menegaskan bahwa data warehouse merupakan fondasi dalam SPK. 



 Gambar 2 : Struktur Utama SPK (Vercellis, 2009: 36)
 


Aspek kedua yaitu model matematis, merupakan bagian untuk menganalisis data yang berada di data warehouse. Model matematis ini dapat berupa analisis statistika yang biasa digunakan dalam mengolah data. Model matematis ini berfungsi untuk merubah data menjadi informasi dan knowledge yang berguna untuk pengambilan keputusan.
Aspek ketiga adalah antarmuka pengguna (user interface). Aspek ini merupakan aspek yang secara langsung dilihat dan berinteraksi dengan end user atau dalam hal ini pemegang keputusan. Data yang ditampilkan harus memberikan informasi yang valid, reliable, dan dapat mendukung untuk pengambilang keputusan. Agar dapat memudahkan dalam pengambilan keputusan, data yang ditampilkan biasanya menggunakan berbagai jenis grafik, animasi, atau peta yang berguna untuk melengkapi data yang ada.

Jenis-Jenis SPK

Untuk memahami lebih komperhensif mengenai suatu masalah, akan semakin mudah jika masalah terserbut dikategorikan berdasarkan beberapa kriteria. SPK dapat diklasifikasikan berdasarkan beberapa jenis kriteria yaitu berdasarkan hubungannnya dengan pengguna, berdasarkan cakupannya, berdasarkan tujuan, berdasarkan jenis pengguna, berdasarkan komponen yang dominan dan pengendali pendukung keputusan, serta masih banyak lagi.

Dalam pembahasan ini akan dibahas sekilas mengenai jenis SPK berdasarkan teknologi dominan yang digunakan untuk menyediakan dan memfasilitasi dukungan pengambilan keputusan. Power (Mora, 2002: 23) mengemukakan bahwa ada lima kategori SPK berdasarkan hal tersebut yaitu : communication-driven, data-driven, document-driven, knowledge-driven, dan model-driven.


Sumber dan Referensi :

Sunday, December 8, 2013

Latihan Listview Perhitungan Penjualan Barang

Kasus Pemrograman : latihan listview perhitungan penjualan barang.

Design Form seperti gambar di bawah



Ketentuan :
-    Kode barang menentukan nama barang dan merk
-    2 digit karakter dari sebelah kiri menentukan merk barang.
-    3 digit karakter dari sebelah kanan adalah menentukan nama barang.
-    Total harga muncul ketika terjadi penekanan Enter di jumlah beli.
-    Total Harga = Harga * Jumlah Beli

Contoh : Kode Barang = TS001, Merk = Toshiba, Nama Barang = Flashdisk 4GB.

Kode Barang = TS002, Merk = Toshiba, Nama Barang = Flashdisk 2GB.
Kode Barang = VG001, Merk = V-Gen, Nama Barang = Flashdisk 4GB.
Kode Barang = VG002, Merk = V-Gen, Nama Barang = Flashdisk 2GB.

Ketentuan Harga :


Kode Barang
001
002
TS
105000
75000
VG
90000
60000


NB : Agar tampilan program diatas lebih keren bisa anda
memasukkan image ke button pada vb net.

Created By : Tutorial Program VB Net



Berikut Listing Programnya :

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        kode_brg.Items.Add("TS001")
        kode_brg.Items.Add("TS002")
        kode_brg.Items.Add("VG001")
        kode_brg.Items.Add("VG002")
        ListView1.Columns.Add("No", 30, HorizontalAlignment.Center)
        ListView1.Columns.Add("Kode Barang", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Nama Barang", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Merk", 50, HorizontalAlignment.Center)
        ListView1.Columns.Add("Harga Barang", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Jumlah Beli", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Total Harga", 100, HorizontalAlignment.Center)
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
        ListView1.View = View.Details
    End Sub

    Private Sub kode_brg_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles kode_brg.SelectedIndexChanged
        Dim x As String
        x = Microsoft.VisualBasic.Left(kode_brg.Text, 2)
        If x = "TS" Then
            merk.Text = "Toshiba"
        ElseIf x = "VG" Then
            merk.Text = "V-Gen"
        End If
        x = Microsoft.VisualBasic.Right(kode_brg.Text, 3)
        If x = "001" Then
            nama_brg.Text = "Flashdisk 4GB"
        ElseIf x = "002" Then
            nama_brg.Text = "Flashdisk 2GB"
        End If
        If kode_brg.Text = "TS001" Then
            harga.Text = "105000"
        ElseIf kode_brg.Text = "TS002" Then
            harga.Text = "75000"
        ElseIf kode_brg.Text = "VG001" Then
            harga.Text = "90000"
        ElseIf kode_brg.Text = "VG002" Then
            harga.Text = "60000"
        End If
    End Sub

    Private Sub jumlah_beli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles jumlah_beli.KeyPress
        If e.KeyChar = Chr(13) Then
            total_hrg.Text = jumlah_beli.Text * harga.Text
        End If
    End Sub

    Private Sub btn_hps_pilih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_hps_pilih.Click
        ListView1.Items.Remove(ListView1.SelectedItems(0))
    End Sub

    Private Sub btn_simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_simpan.Click
        Dim simpan As New ListViewItem
        simpan.Text = no_pembelian.Text
        simpan.SubItems.Add(kode_brg.Text)
        simpan.SubItems.Add(nama_brg.Text)
        simpan.SubItems.Add(merk.Text)
        simpan.SubItems.Add(harga.Text)
        simpan.SubItems.Add(jumlah_beli.Text)
        simpan.SubItems.Add(total_hrg.Text)
        ListView1.Items.Add(simpan)
    End Sub

    Private Sub btn_hps_semua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_hps_semua.Click
        ListView1.Items.Clear()
    End Sub

    Private Sub btn_bersih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_bersih.Click
        no_pembelian.Text = ""
        kode_brg.Text = ""
        nama_brg.Text = ""
        merk.Text = ""
        harga.Text = ""
        jumlah_beli.Text = ""
        total_hrg.Text = ""
    End Sub

    Private Sub btn_keluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_keluar.Click
        End
    End Sub
End Class

Tuesday, December 3, 2013

Macam - Macam Sistem Operasi

Sistem operasi atau dalam bahasa Inggris: operating system atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web.

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi.

Sistem Operasi secara umum terdiri dari beberapa bagian :

1.Mekanisme Boot, yaitu meletakan kernel ke dalam memory kernel, kernel dapat dikatakan sebagai inti dari Sistem Operasi.

2.Command Interpreter atau Shell, bertugas untuk membaca input berupa perintah dan menyediakan beberapa fungsi standar dan fungsi dasar yang dapat dipanggil oleh aplikasi/program maupub piranti lunak lain. Contoh dari Shell adalah : Command Prompt pada Windows XP (DOS pada Windows 98), XTerm dan Konsole di Mesin Linux (Unix).

3.Driver untuk berinteraksi dengan hardware sekaligus mengontrol kinerja hardware.

4.Resource Allocator. Sistem Operasi bertugas mengatur dan mengalokasikan sumber daya dari perangkat.

5.Handler. Handler berperan dalam mengendalikan sistem perangkat agar terhindar dari kekeliruan (error) dan penggunaan sumber daya yang tidak perlu.

Sekarang kita akan menilik sejarah dan perkembangan Sistem Operasi.

Menurut Tanebaum, Sistem Operasi mengalami perkembangan yang dapat dibagi ke dalam 4 generasi.

1.Generasi Awal

Perkembangan awal Sistem Operasi masih dilakukan secara manual dalam artian belum muncul adanya Sistem Operasi yang secara otomatis artinya belum mendukung layanan pekerjaan yang dapat dilakukan dalam 1 rangkaian.

2.Generasi Kedua

Di generasi ini sudah diperkenalkannya perkejaan yang dapat dilakukan dalam 1 rangkaian atau biasa disebut dengan Batch Proccessing System.

3.Generasi Ketiga

Pada generasi ketiga, Sistem Operasi sudah mendukung layanan Multi-User, Multi-Programming dan Batch Proccessing System (Multi-Task).

4.Generasi Keempat

Di masa ini, sudah diperkenankannya GUI (Graphical User Interface) yang artinya Sistem Operasi memiliki tampilan dan dengan bermodalkan mouse, End-User dapat menjalankan aplikasi/porgram atau piranti lunak.

5.Generasi Selanjutnya

Pada generasi selanjutnya diperkenalkan Sistem Operasi yang berada dalam sebuah Sistem Operasi, ini adalah contoh sebuah Sistem Operasi berbasikan Website yang berkerja di dalam sebuah Sistem Operasi. Dan generasi selanjutnya diperkenalkanlah Sistem Operasi bergerak (Mobile) pada perangkat bergerak seperti : PDA, Poket PC, dan lain sebagainya. Di generasi selanjutnya diperkenalkan juga teknologi Sistem Operasi jaringan yang sifatnya virtual, sehingga dalam 1 jaringan hanya diinstal 1 buah Sistem Operasi pada Perangkat yang bertugas menjadi Server. Selain itu, diperkenalkan pula Cross Platform Operating System yang artinya dapat menggabungkan 2 Sistem Operasi berbeda seperti : Linux dan Windows.

Dewasa ini, hampir seluruh manusia memiliki PC dan Mobile PC. Dikarenakan faktor harga yang selalu berubah dan kebutuhan manusia akan perangkat otomatis seperti : PC, maka manusia menjadikan PC sebagai kebutuhan utama. Seiring dengan perkembangan teknologi PC pun dibuat ringkas agar dapat dijadikan sebagai piranti otomatisasi yang bergerak (Bisa digunakan kapan saja, di mana saja dan oleh siapa saja). Contoh PC bergerak adalah : Laptop, Notebook dan NetBook, ketiga piranti tersebut juga memiliki Sistem Operasi layaknya PC. Dan sekarang saatnya kita bahas Sistem Operasi yang ada di PC.

Mircorost Windows atau biasa kita sapa dengan sebutan Windows adalah Sistem Operasi yang dikembangkan oleh Microsoft Corporation yang menggunakan antarmuka dengan berbasikan GUI (Graphical User Interface) atau tampilan antarmuka bergrafis.

Awalnya Windows bermula dari Ms-Dos (Microsoft Disk Operating System) yaitu sebuah Sistem Operasi yang berbasiskan teks dan Command-Line interpreter. Windows Versi pertama, Windows Graphic Environmnet 1.0 merupakan perangkat lunak yang bekerja atas arsitekstur 16-Bit dan bukan merupakan Sistem Operasi dan berjalan atas MS-DOS, sehingga untuk menjalankannya membutuhkan MS-DOS. MS-DOS sendiri sebenarnya dibuat oleh perusahaan pembuat komputer Seattle Computer Products dan barulah kemudian direkrut oleh Microsoft yang selanjutnya dibeli lisensinya.

Kemudian berkembang menjadi Windows 1.0 versi pertama Sistem Operasi dalam dunia Sistem Operasi yang berbasiskan GUI (Graphical User Interface) dan mendukung Multi-Tasking atau dapat mengerjakan banyak pekerjaan secara simultan. Setelah itu Windows 1.0 berkembang menjadi Windows 2.0, Windows 2.0 ini berbasis GUI dan mendukung penggunaan VGA (Video GraphicsArray) dan juga mendukung Multi-Tasking. Windows 2.0 juga support terhadap penggunaan Processor Intel 80286 dimana Processor Intel 80286 adalah Processor pertama dengan kemampuan untuk memproteksi area memory.

Kemudian dilanjutkan dengan generasi Windows 3.0 dimana Windows 3.0 memiliki kemampuan yang sama dengan Windows sebelumnya dan ditambah dukungan kartu grafis SVGA atau XGA dan juga icon yang lebih baik. Dalam era tersebut, Microsoft juga menyediakan SDK (Software Development kit) sehingga para developer piranti lunak dapat mengembangkan aplikasi/programnya agar mampu berjalan di Windows 3.0 ini. Windows 3.0 juga memperkenalkan adanya Virtual Device Driver (VXD) dimana dapat berguna untuk meminimalisasi ketergantungan pada setiap driver pada perangkat keras tertentu. Windows 3.0 kemudian berevolusi menjadi Windows 3.1 yang sudah diperkenalkan dengan fitur Multimedia dan True Type Font selain itu juga memudahkan End-User karena adanya fitur Drag and Drop dan akhirnya Windows versi 3 ini berkembang menjadi Sistem Operasi yang sudah mengenal NetWorking (Windows 3.11).

Setelah berkembang cukup lama akhirnya Microsoft memperkenalkan Sistem Operasi hibrida 16-Bit/32-Bit yang dikenal dengan nama Windows 95. Banyak perubahan dari Windows versi sebelumnya, yaitu : Windows 95 memiliki GUI yang lebih menarik dan atraktif, mendukung Plug and Play, mendukung penamaan yang panjang, memiliki beberapa fasilitas seperti : Browser yang terintegrasi dan Windows Explorer untuk menjelajah Windows. Selain itu juga Windows 95 memiliki fitur untuk memanajemen daya (APM) dan diperkenalkannya juga Client-Server.

Generasi penerus dari Windows 95 adalah Windows 98 dimana Windows 98 sudah mendukung VGA berbasis AGP, serta mendukung media penyimpanan ringkas seperti USB, diperkenalkannya NAT untuk berbagi koneksi Internet dan digantikannya Virtual Device Driver dengan Windows Driver Model. Ada juga beberapa fitur tambahan berupa aplikasi Microsoft Office dan Internet Explorer versi 5. Windows 98 juga sudah memiliki kemampuan-kemampuan untuk memainkan Game dan menjalankan aplikasi Multimedia.

Perkembangan selanjutnya adalah Windows ME, tidak ada yang spesial dari Windows ME selain transisi dukungan grafis dari 16-Bit ke 32-Bit dan pada era Windows ME sudah banyak pengguna rumahan yang memakainya. Windows ME pun akhrinya digantikan dengan Windows NT yang sudah mendukung arsitekstur x86 (80×86) , Intel IA64 dan AMD64 (x64) serta mendukung grafis 32-Bit. Windows NT sebenarnya dibangun dari pengembangan IBM OS/2 dan Windows NT juga banyak digunakan dalam jaringan komputer. Windows NT juga memperkenalkan File System NTFS yang lebih baik dari FAT maupun FAT-32.

Selanjutnya Windows NT berkembang menjadi Windows 2000 banyak fitur tambahan diantaranya : Active Directory, Image Preview, Browser Internet Explorer v6, DirectX dan Open GL, Plug and Play dan Windows Driver Model yang lebih baik performanya dibanding sebelumnya. Setelah generasi Windows NT munculah Windows XP yang menawarkan banyak perubahan, mempunyai banyak fitur dan performa yang semakin mengingkat. Bisa dikatakan Windows XP merupakan Windows yang paling laris dan digandrungi oleh pengguna PC maupun perangkat PC bergerak (Mobile). Seiring dengan kebutuhan akan networking maka Microsoft Corporation mengeluarkan Sistem Operasi yang berkonsentrasi pada jaringan, yaitu : Windows Server 2003. Bisa dibilang Windows Server 2003 adalah reinkarnasi dari Windows NT.

Banyak sekali fitur yang ditawarkan pada Windows Server 2003 ini salah satunya adalah diperkenalkannya platform .Net. Diperkenalkan juga fitur Domain Controller Server, PKI (Public Key Infrastructure) Server, Domain Name System (DNS), Dynamic Host Configuration Protocol (DHCP), Windows Internet Name Service (WINS), Microsoft IIS, dan lain sebagainya. Microsoft pun melanjutkan perkembangan Sistem Operasi dengan Windows Vista (Longhorn), ini merupakan revolusi dari Windows XP. Windows Vista lebih mengutamakan interface atau penampilan grafis antarmuka dibandingkan dengan performa, dibuktikan dengan adanya fitur : AERO, Sidebar, dan lain sebagainya.

Windows Vista juga menawarkan tingkat keamanan yang lebih baik dibandingkan dengan Windows XP, karena pada Windows Vista diperkenalkan adanya Windows Firewall with Advanced Security, Windows Defender, Parental Control, User Account Control (UAC), BitLocker Drive Encryption, ASLR. Windows Vista juga sudah mengenal IPv6, DirectX versi terbaru, dan arsitekstur 64-Bit. Perkembangan selanjutnya adalah transisi dari Windows Server 2003 menjadi Windows Home Server yang ditujukan sebagai File Server untuk rumahan. Windows Server juga mengenalkan beberapa teknologi yaitu : Headless Operation (Server tidak membutuhkan monitor atau keyboard untuk memanjemen perangkat), Kontrol jarak jauh, Pemantauan kesehatan komputer, Sharing dan Streaming.

Generasi berikutnya ditandai dengan munculnya penggabungan Sistem Operasi Windows Vista dengan Windows Server, yaitu Windows Server 2008. Fitur Windows Vista dan Windows Server digabung menjadi satu padu untuk meningkatkan keamanan dan kenyamanan End-User. Selanjutnya Windows Server 2008 berkembang menjadi Windows Server 2008 R2. Versi terakhir Sistem Operasi besutan Windows adalah Windows 7, Windows 7 dirilis untuk menggantikan kekurangan Windows XP dan kelebihan Windows Vista. Boleh dikatakan jikalau Windows 7 adalah fusi dari Windows XP dan Windows Vista, tidak seperti pada Windows Vista, Windows 7 memiliki performa yang lebih baik dari Windows Vista.

- UNIX
UNIX adalah Sistem Operasi yang diciptakan oleh Ken Thompson dan Dennis Ritchie, dikembangkan oleh AT&T Bell Labs. UNIX didesain sebagai Sistem Operasi yang portabel, Multi-Tasking dan Multi-User. Sistem Operasi UNIX lebih menekankan diri pada Workstation dan Server, Karena faktor ketersediaan dan kompatibilitas yang tinggi menyebabkan UNIX dapat digunakan, disalin dan dimodifikasi sehingga UNIX pun dikembangkan oleh banyak pihak dan menyebabkan banyak sekali varian dari UNIX ini.

UNIX sendiri ditulis dalam bahasa C sehingga UNIX pun mirip dengan DOS yaitu Line/Text Command Based selain itu UNIX pun merupakan Sistem Operasi yang secure dibanding dengan Sistem Operasi lain, karena setiap file, direktori, user dan group memiliki set izin tersendiri untuk diakses. Karena adanya dukungan Proyek GNU, maka selanjutnya UNIX berkembang menjadi LINUX (Salah satu varian UNIX).

- LINUX
Awalnya dikembangkan oleh Linus Torvalds yang pada mulanya sekedar emulasi terminal yang dibutuhkan untuk mengakses server UNIX di Universitasnya. Linux merupakan kloningan dari MINIX (Salah satu varian UNIX), peralatan sistem dan pustakanya umumnya berasal dari Sistem Operasi GNU. Linux memiliki banyak disain yang berasal dari disain dasar UNIX, Linux menggunakan Kernel Monilitik yaitu Kernel Linux yang menangani kontrol prosses, jaringan, periferal, dan pengaksesan sistem berkas. Sama seperti UNIX, Linuxpun dapat dikendalikan oleh satu atau lebih antarmuka baris perintah (Command Line Interface/CLI) berbasis teks, antarmuka pengguna grafis (Graphical User Interface/GUI) yang merupakan konfigurasi bawaan untuk versi dektop.

Pada komputer Desktop, GNOME, KDE dan Xfce merupakan antarmuka pengguna yang paling populer diantara varian antarmuka pengguna lainnya. Sebuah sistem Linux menyediakan antarmuka baris perintah lewat sebuah Shell (Konsole). Perbedaan utama antara Linux dan Sistem Operasi Populer lainnya terletak pada Kernel Linux dan komponen-komponennya yang bebas dan terbuka. Sama seperti pada UNIX, Linux berkonsentrasi pada Workstation dan Server banyak Workstation dan Server yang mengandalkan Linux karena Linux sangat stabil digunakan untuk jangka waktu lama dan Linuxpun kebal terhadap Malware.

Satu hal yang membedakan Linux terhadap Sistem Operasi lainnya adalah harga. Harga Linux ini kebanyakan Gratis walaupun ada juga yang berbayar (Lisensi). Linux dapat didistribusikan tanpa harus memberikan royalty kepada seseorang. Linux disusun berdasarkan standard Sistem Operasi POSIX yang diturunkan dari UNIX itu sendiri. Ada beberapa macam Distro Linux, seperti : Debian, Lycoris, Xandros, Lindows, Linare, Linux-Mandrake, Red Hat Linux, Slackware, Knoppix, Fedora, Suse, Ubuntu.

- IBM OS/2
Sistem Operasi IBM OS/2 ini dibuat secara bersama-sama oleh International Bussiness Machine Corporation dan Microsoft Corporation, untuk digunakan pada komputer IBM sebagai pengganti Sistem Operasi DOS. Kata OS/2 adalah singkatan dari Operating System/2, Sistem Operasi ini didesain agar dapat menggunakan kemampuan penuh dari Mikroprosessor Intel 80286 , termasuk diantaranya adalah Modus terproteksi (Protected Mode), mampu menjalankan tugas secara Simultan, serta mendukung Memori Virtual, dengan tetap mempertahankan kompatibilitas dengan banyak perangkat lunak MS-DOS yang beredar saat itu,

- MAC OS (MACINTOSH OPERATING SYSTEM)
MAC OS atau Macintosh Operating System adalah Sistem Operasi yang dibuat oleh Apple Computer khusus untuk komputer Macintosh dan tidak kompatibel dengan komputer berbasis IBM. MAC OS merupakan Sistem Operasi pertama yang menggunakan antarmuka pengguna grafis (Graphical User Interface/GUI). Sistem Operasi Macintosh dibagi menjadi 2 jenis :




1.MAC OS Klasik

Tidak memiliki sembarang Command Line (Baris perintah), menggunakan User Interface (UI) sepenuhnya dan menggunakan Cooperative Multitasking

2.MAC OS X

MAC OS X memasukkan unsur-unsur BSD Unix, One Step, dan MAC OS X memiliki memori ala-Unix dan Pre-Emptive Multitasking.

Kelebihan MAC OS :

1.Stabil, karena menggunakan UNIX.

2.Multitasking.

3.Tampilan (UI) sangat bagus.

4.Aman dari Malware.

MAC OS X adalah garis komputer Sistem Operasi yang dikembangkan, dipasarkan oleh Apple Inc, MAC OS X adalah penerus dari MAC OS (Klasik). MAC OS X dibangun di atas XNU kernel, dengan fasilitas standar Unix tersedia dari antarmuka baris perintah.

- FREE BSD
FreeBSD adalah Sistem Operasi bertipe UNIX bebas yang diturunkan dari UNIX AT&T. FreeBSD berjalan di atas sistem intel x86. FreeBSD sendiri kali pertama muncul pada tahun 1993 oleh David Greenman. Tujuan dari FreeBSD adalah menyediakan software yang dapat digunakan untuk berbagai kepentingan. FreeBSD sendiri dikembangkan dari 386BSD sebuah proyek pengembangan BSD OS yang berjalan di atas Chip Intel.


-SOLARIS

Sistem Operasi Solaris adalah sebuah Sistem Operasi yang berdasarkan UNIX system yang diperkenankan oleh Sun Microsystems oada tahun 1992 sebagai pendukung SunOS. Solaris terkenal karena kestabilannya, khususnya pada sistem SPARC (Scalable Processor Architecture), Solaris disertifikasi dalam Spesifikasi UNIX walaupun pada awal pengembangannya berdasarkan kepemilikan pribadi, dan kebanyakan kode dasarnya sekarang ini merupakan Software OpenSource yang biasa dikenal dengan OpenSolaris. OpenSolaris adalah OpenSource versi Sistem Operasi Sun Solaris, tetapi Sun Solaris terdiri dari lebih beberapa kode yang tidak hanya inti dari Sistem Operasi misalnya : Source untuk Installer, Desktop, Software.

Open Solaris memiliki banyak fitur yang menjadikan OpenSolaris bisa digunakan untuk skala penggunaan yang besar dari penggunaan untuk desktop pC atau Mobile PC. Konsep Open Solaris adalah sebagai berikut :

1.Free Redistribution : Didistribusi secara bebas.

2.Source Code : Sumber (Source) harus tersedia untuk semua distribusi.

3.Derived Works : Setiap orang bisa mengubah kode dan mendisrtibusikan kembali.

4.No Discrimination : Kode harus disediakan untuk seseorang untuk dikembagkan.

Beberapa kelebihan OpenSolaris dibandingkan dengan Sistem Operasi lain :

1.ZFS : System Rstore.

2.DTrace L : Dapat mengamati dimana aplikasi banyak menggunakan waktunya dan berapa lama.

3.Manajemen Kegagalan : Mencegah, mendiagnosa dan memperbaiki error.

4.Zona : Mengimplementasikan sebuah abstraksi Sistem Operasi yang memungkinkan beberapa aplikasi berjalan secara terisolasi satu dengan lainnya di perangkat keras fisik yang sama.

5.Multimedia.

- Chrome OS
Chrome OS adalah Sistem Operasi besutan Google yang ringan dan berbasis Linux dan standard web untuk personal computer PC. Google Chrome bekerja dengan metode Windowing atau switching (Multi-Tasking). Google Chrome OS menggunakan standard web HTML 5, yang merupakan pengembangan software di browser yang berbasis Sistem Operasi. Jika dilihat-lihat, Chrome OS ini merupakan gabungan dari Linux dan Windows Vista. Chrome OS dirilis pada pertengahan 2010.

Banyak sekali berbagai Macam Sistem Operasi Komputer yang terus berkembang, Tidak ada Sistem Operasi yang sempurna karena masing-masing Sistem Operasi memiliki daya dan ciri khas tersendiri. Walaupun ada Sistem Operasi yang berbayar, kenapa tidak kita coba Sistem Operasi yang Free alias gratis? Gratis bukan berarti buruk, baik atau buruknya sebuah Sistem Operasi bergantung pada End-Usernya sendiri. Sehingga kita harus cermat dalam memilih Sistem Operasi yang digunakan.

Sumber : http://wikipedia.org dan http://wartawarga.gunadarma.ac.id

TUMPUKAN & ANTRIAN (STACK & QUEUE)

STACK (TUMPUKAN)


Stack (tumpukan) sebenarnya secara mudah dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack.

Dengan melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan pertama kali diambil atau dilayani. Salah satu analogi yang dapat dikemukakan di sini adalah tumpukan piring atau barang lain. Pada saat kita hendak menumpuk piring-piring tersebut tentulah yang kita lakukan adalah meletakkan piring pertama pada tempatnya, selsnjutnya meletakkan piring kedua di atas piring pertama dan demikian seterusnya. Pada saat kita hendak mengambil satu piring dari tumpukan tersebut, tentu yang diambil adalah piring teratas (yang terakhir kali ditaruh), bukan yang terbawah (yang pertama kali diletakkan).

Dua operasi dasar pada stack adalah PUSH (operasi pemasukan elemen ke dalam stack) dan POP (operasi pengambilan satu elemen dari dalam stack). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
(Untuk mempermudah penulisan, di bawah ini isi stack tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan:
elemen paling kanan adalah elemen yang ada pada TOS (Top Of the Stack)
stack yang dipakai bernama S
PUSH(S,B) berarti memasukkan elemen B ke dalam stack S
POP(B,S) berarti mengambil elemen dari stack S dan menaruhnya ke dalam variabel B
Operasi yang dilakukan Isi Stack Keterangan
Kondisi Awal kosong -
PUSH('A',S) A -
PUSH('B',S) AB -
PUSH('C',S) ABC -
POP(Data,S) AB Variabel Data berisi 'C'
PUSH('D',S) ABD -
POP(Data,S) AB Data berisi 'D'
POP(Data,S) A Data berisi 'B'

IMPLEMENTASI STACK DALAM BAHASA PASCAL


Implementasi dalam bahasa Pascal dapat dilakukan dengan memanfaatkan struktur data record dan array. Array dipergunakan untuk menyimpan elemen-elemen yang dimasukkan. Selain itu diperlukan pula suatu variabel untuk mencatat banyaknya elemen yang adadi dalam array yang sekaligus menunjukkan TOS. Pada implementasi di bawah ini:
konstanta maxelm menyatakan banyaknya elemen maksimum yang dapat ditampung oleh stack
typeelemen adalah tipe data yang akan disimpan di dalam stack (bisa integer, word, real, boolean, char , string atau lainya)
banyak adalah field yang menyatakan banyaknya elemen dalam stack saat itu, yang sekaligus menyatakan TOS

Deklarasi tipe untuk tumpukan (stack):
type tumpukan = record
banyak :0..maxelm;
elemen : array[1..maxelm] of typeelemen;
end;



Selain prosedur untuk POP dan PUSH, kita dapat pula menambahkan sejumlah fungsi untuk membantu penanganan kesalahan diantaranya adalah fungsi PENUHS (untuk mengecek apakah stack penuh) fungsi KOSONGS (untuk mengecek apakah stack kosong) dan fungsi SIZES (untuk mengetahui banyaknya elemen di dalam stack). Masing-masing sub program di atas dapat disajikan pseudocode-nya sebagai berikut:

Procedure Inisialisasi(var S : tumpukan);
begin
S. banyak¬ 0
end;

Function PENUHS(S : tumpukan): boolean;
begin
Jika S.banyak = maxelm maka PENUHS ¬ true
else PENUHS ¬false
end;

Function KOSONGS(S : tumpukan):boolean;
begin
If S.banyak = 0 then KOSONGS ¬ true
else KOSONGS¬false
end;

Procedure PUSH(data : tipeelemen; var S : tumpukan);
begin
If not KOSONGS(S) then
begin

S.banyak ¬ S.banyak +1
S.elemen[S.banyak]¬data

end
else
Tampilkan pesan kesalahan "Stack Penuh"
end;

Procedure POP(var S : tumpukan; var data : typeelemen);
begin
If not KOSONGS(S) then
begin

data¬S.elemen[S.banyak]
S.banyak ¬ S.banyak - 1


end
else
Tampilkan pesan kesalahan "Stack kosong"
End;


QUEUE (ANTRIAN)



Queue atau antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan.

Seperti pada stack, operasi-operasi dasar pada queue adalah operasi penambahan elemen ( sebut "ADDQ") dan operasi pengambilan elemen (sebut DELQ). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
(Untuk mempermudah penulisan, di bawah ini isi queue tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan:
elemen paling kanan adalah elemen yang ada pada ujung belakang (yang terakhir kali masuk)
queue yang dipakai bernama Q
ADDQ(Q,B) berarti memasukkan elemen B ke dalam queue Q
DELQ(B,Q) berarti mengambil elemen dari queue Q dan menaruhnya ke dalam variabel B
Operasi yang dilakukan Isi Queue Keterangan
Kondisi Awal kosong -
ADDQ('A',Q) A -
ADDQ('B',Q) AB -
ADDQ('C',Q) ABC -
DELQ(Data,Q) BC Variabel Data berisi 'A'
ADDQ('D',Q) BCD -
DELQ(Data,Q) CD Data berisi 'B'
POP(Data,S) D Data berisi 'C'



IMPLEMENTASI QUEUE DALAM BAHASA PASCAL

Implementasi dalam bahasa Pascal dapat dilakukan dengan memanfaatkan struktur data record dan array. Array dipergunakan untuk menyimpan elemen-elemen yang dimasukkan. Selain itu diperlukan pula suatu variabel untuk mencatat banyaknya elemen yang ada di dalam array. Pada implementasi di bawah ini:
konstanta maxelm menyatakan banyaknya elemen maksimum yang dapat ditampung oleh queue
typeelemen adalah tipe data yang akan disimpan di dalam queue(bisa integer, word, real, boolean, char , string atau lainya)
banyak adalah field yang menyatakan banyaknya elemen dalam queue saat itu
queue diimplementasikan sebagai array linier dengan memandang bahwa elemen terdepan selalu berada pada sel pertama (implementasi fisik), sehingga bila terjadi pengambilan satu elemen maka semua elemen di belakang elemen terambil (bila ada) harus digeser ke depan satu langkah

Deklarasi tipe untuk antrian (queue):
type antrian= record
banyak :0..maxelm;
elemen : array[1..maxelm] of typeelemen;
end;



Selain prosedur untuk ADDQ dan DELQ, kita dapat pula menambahkan sejumlah fungsi untuk membantu penanganan kesalahan diantaranya adalah fungsi PENUHQ (untuk mengecek apakah antrian penuh) fungsiKOSONGQ (untuk mengecek apakah antrian kosong) dan fungsi SIZEQ (untuk mengetahui banyaknya elemen di dalam queue). Masing-masing sub program di atas dapat disajikan pseudocode-nya sebagai berikut:

Procedure Inisialisasi(var q : antrian);
begin
Q. banyak ¬ 0
end;

Function PENUHQ(q : antrian): boolean;
begin
Jika Q.banyak = maxelm maka PENUHQ ¬ true
else PENUHQ¬false
end;

Function KOSONGQ(q : antrian):boolean;
begin
If Q.banyak = 0 then KOSONGQ ¬ true
else KOSONGQ ¬ false
end;

Procedure ADDQ(data : tipeelemen; var q : antrian);
begin
If not PENUHQ(Q) then
begin

Q.banyak¬ Q.banyak+1
Q.elemen[Q.banyak] ¬ data

end
else
Tampilkan pesan kesalahan "Antrian Penuh"
end;

Procedure DELQ(var q : antrian; var data : typeelemen);
begin
If not KOSONGS(Q) then
begin

data ¬Q.elemen[1]
for i:= 2 to Q.banyak
Q.elemen[i-1] ¬ Q.elemen[i]
Q.banyak ¬ Q.banyak- 1


end
else
Tampilkan pesan kesalahan "Antrian kosong"
End;


Dengan melihat implementasi di atas kita dapat merasakan adanya ketidakefisienan, yaitu bahwa untuk mengambil satu elemen dari queue kita harus menggeser sisa elemen yang sebenarnya tidak menjadi perhatian kita. Untuk data yang sedikit mungkin ini tidak terasa, tetapi untuk data yang banyak maka ketidakefisienan ini akan tampak jelas.

Untuk mengatasi permasalahan di atas kita dapat menggunakan implementasi queue berputar, yaitu dengan membiarkan sel tetap kosong bila elemen pada sel tersebut baru saja diambil. Bagaimanakah implementasi queue berputar? Perhatikan implementasi di bawah ini.


type antrian_putar= record
depan,belakang,banyak :0..maxelm;
elemen : array[1..maxelm] of typeelemen;
end;

Field depan dan belakang masing-masing adalah untuk mencatat lokasi elemen terdepan (yang akan diambil berikutnya) dan lokasi elemen paling belakang (elemen terakhir kali masuk)

Procedure ADDQ(data : tipeelemen; var q : antrian_putar);
begin
If not PENUHQ(Q) then
begin

Q.belakang ¬ (Q.belakang mod maxelm)+1
Q.elemen[Q.belakang] ¬ data

end
else
Tampilkan pesan kesalahan "Antrian Penuh"
end;

Procedure DELQ(var q : antrian_putar; var data : typeelemen);
begin
If not KOSONGS(Q) then
begin

data ¬ Q.elemen[Q.depan]
Q.banyak ¬ Q.banyak- 1

Q.depan ¬ (Q.depan mod maxelm)+1

end
else
Tampilkan pesan kesalahan "Antrian kosong"
End;