Rabu, 18 Mei 2011

LINEAR LINKED LIST

Salah satu di antara struktur berkait tersebut adalah yang disebut sebagai linear linked list atau one-way list. Selain itu dikenal pula beberapa jenis struktur berkait yang lain seperti linked-stack, linked-queue, doubly linked-list, linked-generalized list dan sebagainya.
Struktur singly linked-list atau singkatnya linked list. Linked-list, yang kerap kali disebut pula one-way List, adalah koleksi linear dari elemen data yang disebut simpul atau node. Cara melinearkan urutan, adalah dengan menggunakan penuding atau pointer. Dalam hal ini, setiap simpul terdiri atas dua bagian. Bagian pertama berisi informasi data tersebut, sedangkan bagian kedua merupakan field, link, atau nextpointer. Link inilah yang menghubungkan satu elemen data ke elemen data lainnya, sehingga urutan elemen data tersebut membentuk suatu linear list. Field link ini berisi alamat dari simpul berikutnya
dalam list. Ia bernilai 0 bila link tersebut tidak menuding ke data (simpul) lainnya. Penuding ini disebut penuding nol.
Gambar ini  merupakan diagram secara skematik dari sebuah linked list dengan 6 buah simpul. Setiap Simpul digambarkan sebagai dua kotak, Kotak kiri menyajikan bagian informasi (dapat berupa sebuah field NAMA, ataupun field NOMOR-POKOK, ataupun dapat pula berupa sebuah record). Kotak kanan menyajikan field nextpointer. Dari kotak kanan ini tergambar panah mengarah ke simpul berikut. Penuding nol adalah penuding ke simpul akhir dari list yang disajikan dengan tanda X.
 
Linked list juga mengandung sebuah variabel penuding list, yang biasanya diberi nama START, yang berisi alamat dari simpul pertama dalam list. Di sini tergambar panah dari START mengarah ke simpul pertama tersebut. Hal khusus dapat terjadi, yakni list tidak mengandung sebuah simpulpun. List
semacam itu disebut list hampa atau list nol. List ini disajikan dengan menempatkan penuding nol pada variabel START.

Sumber : Buku Pengantar Struktur Data

QUEUE (ANTREAN)

Jenis lain dari daftar linear, yakni queue atau antrean. Struktur data antrean atau queue adalah suatu bentuk khusus dari linear list, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisi belakang (REAR), dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi lainnya, yang disebut sisi depan (FRONT), dari list.
Sebagai contoh dapat kita lihat antrean (Q1, Q2,...,QN). Kita notasikan bagian depan dari antrean Q sebagai FRONT(Q) dan bagian belakang sebagai REAR(Q).
Jadi untuk antrean Q = [Q1, Q2, …, QN] :
FRONT(Q) = Q1 dan REAR(Q) = QN
Kita menggunakan notasi NOEL(Q) untuk menyatakan jumlah elemen di dalam antrean Q. NOEL(Q) mempunyai harga integer. Untuk antrean Q = [Q1,Q2,…, QN], maka NOEL(Q) = N.
Ada 4 operasi dasar yang dapat dilakukan pada struktur data antrean, yakni :
1.       CREATE(antrean)
2.        ISEMPTY(antrean)
3.        INSERT(elemen,antrean)
4.       REMOVE(antrean)

Pandang misalnya antrean Q = [Q1, Q2, …, QNOEL], maka :
CREATE(antrean) :
CREATE(Q) adalah suatu operator untuk membentuk dan menunjukkan suatu antrean hampa Q.
Berarti :
NOEL(CREATE(Q)) = 0
FRONT(CREATE(Q)) = tidak terdefinisi
REAR(CREATE(Q)) = tidak terdefinisi

ISEMPTY(antrean)
ISEMPTY(Q) adalah operator yang menentukan apakah antrean Q hampa atau tidak. Operand dari operator ini merupakan antrean, sedangkan hasilnya merupakan tipe data boolean.
Di sini :
ISEMPTY(antrean)           = true, jika Q hampa, yakni jika NOEL(Q)=0
= false, dalam hal lain.
Maka, ISEMPTY(CREATE(Q)) = true.

INSERT(elemen, antrean)
INSERT(E,Q) adalah operator yang memasukkan elemen E ke dalam antrean Q. Elemen E ditempatkan di bagian belakang dari antrean. Hasil dari operasi ini adalah antrean yang lebih panjang.
REAR(INSERT(E,Q)) = E
QNOEL adalah E
ISEMPTY(INSERT(E,Q)) = false

REMOVE(antrean)
REMOVE(Q) adalah operator yang menghapus elemen bagian depan dari Antrean Q. Hasilnya merupakan antrean yang lebih pendek. Pada setiap operasi ini, harga dari NOEL(Q) berkurang satu, dan elemen kedua dari Q menjadi elemen terdepan.
Jika NOEL(Q) = 0, maka REMOVE(Q) memberikan suatu kondisi error, yakni suatu underflow. Jelas bahwa REMOVE(CREATE(Q)) juga memberikan kondisi underflow error.

Antrean dapat disajikan di dalam komputer dalam berbagai cara. Biasanya dengan menggunakan one-way-list (linear linked list) ataupun menggunakan array. Kalau tidak disebutkan lain, maka antrean kita sajikan dalam array QUEUE, dengan dilengkapi dua variabel penunjuk. FRONT, berisi lokasi dari elemen DEPAN antrean dan REAR, berisi lokasi dari elemen BELAKANG antrean. Nilai FRONT = NULL menunjukkan bahwa antrean adalah hampa.
 
Gambar ini menunjukkan bagaimana menyajikan suatu antrean dalam sebuah array QUEUE dengan N elemen. Gambar itu juga menunjukkan bagaimana melakukan pemasukan dan penghapusan elemen antrean.

Peran Organisasi Dalam Perusahaan


Dengan melakukan pemilihan serta penentuan struktur organisasi yang tepat dan sesuai dengan situasi dan kondisi dalam perusahaan maka pencapian tujuan perusahan akan lebih terarah. Selain itu denga struktur organisasi yang jelas dan baik maka akan dapat diketahui sampai dimana wewenang dan tanggung jawab yang dimiliki oleh seseorang dalam menjalankan tugasnya.
Ada beberapa jenis struktur organisasi dan perusahaan harus memilih mana yang terbaik sesuai dengan kebutuhannya.
1.       Struktur Tradisional, berdasarkan fungsi divisi dan departemen. Ini adalah jenis struktur yang mengikuti aturan dan prosedur organisasi. Dicirikan dengan memberikan garis otoritas yang jelas di seluruh level manajemen.
2.       Struktur Lini adalah jenis struktur yang memiliki lini perintah yang sangat spesifik. Persetujuan dan perintah dari jenis struktur ini berasal dari atas ke lini yang bawah. Struktur ini sesuai untuk organisasi yang kecil seperti kantor akunting atau kantor hukum. Jenis struktur seperti ini memudahkan pengambilan keputusan, dan bersifat informatif. Mereka memiliki departemen yang lebih sedikit, yang membuat seluruh organisasi sangat desentralisasi.
3.        Struktur Lini dan Staff . Meskipun struktur lini sesuai untuk kebanyakan organisasi, khususnya organisasi yang kecil, tapi tidak efektif untuk organisasi yang lebih besar. Dimana struktur organisasi lini dan staff memainkan perannya. Lini dan struktur menggabungkan struktur lini dimana informasi dan persetujuan berasal dari atas ke bawah, dengan dukungan dan spesialisasi staf departemen. Stuktur organisasi lini dan staff lebih terpusat. Manajer lini dan staff memiliki otoritas pada bawahannya. Pada jenis stuktur organiasai ini, proses pengambilan keputusan menjadi lebih lambat karena lapisan dan panduan yang tipikal, dan jangan melupakan formalitas didalamnya.
4.        Struktur fungsional,  mengelompokkan orang berdasarkan fungsi yang mereka lakukan dalam kehidupan profesional atau menurut fungsi yang dilakukan dalam organisasi. Bagan organisasi untuk organisasi berbasis fungsional terdiri dari Vice President, Sales department, Customer Service Department, Engineering atau departemen produksi, departemen Akunting dan Administratif .


PERAN ORGANISASI DI DALAM PERUSAHAAN BERDASARKAN STRUKTUR ORGANISASI
Pertama, menciptakan bayangan kesuksesan untuk bisnis kita, dengan memiliki Struktur Organisasi kita telah berimajinasi seperti apa bisnis kita dimasa mendatang. Divisi – divisi dan posisi – posisi apa saja yang nanti akan ada bisa tergambar dengan jelas saat ini.
Kedua, memudahkan pengembangan Sumber Daya Manusia, dengan Struktur Organisasi kita mampu melihat bagian-bagian perusahaan mana saja yang nantinya membutuhkan SDM, Struktur Organisasi juga bisa menjadi alat pada saat kita melakukan perekrutan atau penambahan karyawan nantinya. Dengan adanya Struktur Organisasi kita akan berusaha untuk mendapatkan SDM yang berkualitas pada posisi-posisi yang saat ini masih kosong atau rangkap jabatan. Bagi karyawan Struktur Organisasi ini juga akan menjadi motivasi tersendiri untuk naik jabatan pada posisi diatasnya, tanpa Struktur Organisasi karyawan tidak/ belum mengetahui apakah ada jabatan diatas posisinya saat ini.
Ketiga,  fungsi delegasi, dengan Struktur Organisasi kita bisa dengan mudah memisah fungsi delegasi antar setiap bagian pekerjaan, sekalipun rangkap jabatan masih ada setidaknya akan diketahui pada posisi mana kita sedang bekerja. Hal ini akan sangat terasa ketika kita telah memiliki karyawan, kadangkala kita melimpahkan pekerjaan pada karyawan tetapi hal itu tidak sesuai dengan lingkup pekerjaannya, sehingga hasil pekerjaan tersebut menjadi tidak maksimal, jika sejak awal kita telah menempatkan karyawan tadi pada suatu posisi tertentu dalam Struktur Organisasi maka kita bisa melihat apakah pekerjaan yang didelegasikan sudah sesuai dengan posisi dan lingkup pekerjaan karyawan tersebut. Dari Struktur Organisasi ini pula kita akan mengetahui posisi – posisi mana saja yang sudah waktunya untuk di delegasikan.