SINOPSIS PIRATES OF SILICON VALLEY

Pirates of Silicon Valley merupakan suatu film tentang perseteruan Steve Jobs & Bill Gates (Apple & Machintos). Diceritakan bagaimana Gates dan Steve memulai segalanya dari bawah. Pada 1975, Gates dan rekannya Paul Allen mendirikan Microsoft. Dan pada 1976, Jobs dan rekannya Steve Wozniac mendirikan Apple Inc.
Dari sinilah Microsoft mulai dikenal. Steve Jobs pun tak tinggal diam, untuk bisa terus menyalip IBM di pasar komputer ia butuh lebih dari sekadar inovasi biasa. Untuk tetap bisa menguasai pasar Apple menerbitkan Lisa, sebuah komputer yang ia beri nama seperti nama anak pertamanya. Lalu dengan geniusnya Jobs memanfaatkan proyek gagal dari perusahaan Xerox berupa teknologi mouse dan GUI (Graphic User Interface). Ia menggagas pembuatan komputer pribadi yang ia beri nama Macintosh. Mengetahui komputer keluaran terbaru dari Apple yaitu Lisa, Bill Gates pun tak bisa diam. Dia mengambil langkah berani dengan mengajak Jobs bekerja sama dengan tujuan utama mempelajari teknologi Grafis dan Sistem Operasinya, sungguh beruntung Bill Gates dan rekan-rekannya, niatnya hanya menginginkan Lisa, namun Macintosh pun didapatnya, Microsoft mendapatkan 3 prototype dari Apple.

Akhirnya Microsoft yang saat itu belum seberapa besar dibandingkan Apple dapat sesuka hati mengutak-atik prototype Macintosh Apple yang baru akan diliris setahun kemudian, hal ini disebabkan karena pengakuan Bill Gates bahwa IBM selaku saingan Apple menginginkan produk dari Microsoft, sehingga Steve pun harus sedikit khawatir dengan IBM dan akhirnya menerima Microsoft tanpa memikirkan resiko yang akan timbul seperti pada kenyataannya. Bill Gates diam-diam mengutak-atik sistem operasi dan teknologi Macintosh dan meluncurkan apa yang kita kenal sekarang sebagai Windows, padahal saat itu Macintosh belum diluncurkan.Tapi karena kelihaiannya Bill Gates dapat mengelabui Apple. Dari situlah Microsoft bekembang pesat dan jutru menjadi saingan berat bagi Apple.

Sementara di pihak Apple sendiri justru terjadi persaingan antara Macintosh Developers dan Apple II Developers, namun Steve Jobs malah menganggap hal ini sebagai sesuatu yang hebat dan dia menganggap macintosh adalah yang terbaik diantara pendahulunya yaitu Lisa dan Apple II. Bagi orang pada umumnya saat itu dapat dikata bahwa Apple menghancurkan dirinya sendiri.

KONSEP PROSES PADA LINUX

Proses merupakan konsep pokok pada sistem operasi, karena salah satu tugas utama sistemoperasi adalahbagaimana mengatur proses – proses yang berjalan di sistem. Sebenarnya apakah Proses itu?Berikut beberapa definisi proses pada sistem operasi adalah :

1. Program yang sedang dalam keadaan dieksekusi.

2. Unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan olehsistemoperasi.

Sistem operasi mengolah seluruh proses yang ada di sistem dan bertugasmengalokasikan sumber daya –sumber daya ke proses yang membutuhkan sesuai dengankebijaksanaan tertentu. Sumber daya yang dibutuhkan proses diantaranya CPU, memori, fileserta I/O device.

Beberapa tipe proses :

•Foreground : Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog)

•Batch : Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). ProseBatch tidak diasosiasikan (berinteraksi) dengan terminal.

•Daemon : Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankantugas sesuai dengan permintaan tersebut. Bila tidak ada request, maka program iniakan berada dalam kondisi “idle” dan tidak menggunakan waktu hitung CPU.Umumnya nama proses daemon di UNIX berakhiran d, misalnya inetd, named, popd dll

Keadaan/ Status Proses :

Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian keadaan yang merupakan bagian dari aktivitasnya. Keadaan proses ini disebut sebagai status proses yang terdiri dari:

•Status New yaitu status dimana proses sedang dibuat.

•Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU belum tersediakarena sedang mengerjakan proses lain.

•Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian tertentu.Misalnya sedang menunggu operasi I/O selesai, menunggu signal dari proses lain,tersedianya memori, dsb.

•Status Running yaitu status dimana proses dieksekusi. Pada status ini CPU sedangmengeksekusi instruksi – instruksi pada proses.

•Status Terminated yaitu status dimana proses diakhiri

Konsep Pembuatan Proses
Konsep pembuatan Proses pada sistem operasi linux :
a.Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification atau PID berupa angka integer unik.
b.Jika proses selesai maka semua sumber daya yang digunakan termasuk PID dibebaskan kembali.
c.Proses dibuat menggunakan sistem call fork() yang sering disebut forking proses.
d.System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu:
•Proses pemanggil disebut PARENT
•Proses hasil kopian disebut CHILD
e.Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
f.Setelah proses baru berhasil dibuat eksekusi dilanjutkan secara normal di masing-masing proses pada baris setelah pemanggilan call fork().
g.Proses pemanggil dapat melakukan forking proses lebih dari satu kali sehingga memnugkinkan terdapat banyak proses CHILD yang dieksekusi.
h.Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat terbentuk struktur pohon proses.

Identifikasi Proses
Untuk melihat PID setiap proses di sistem, dapat digunakan perintah ps seperti
terlihat pada gambar berikut:


Gambar 1. Output ps
Pustaka GNU C telah menyediakan beberapa tipe dan fungsi untuk membaca ID proses, diantaranya:
-Tipe Data : pid_t
Tipe yang merepresentasikan ID proses, tipe data pid_t merupakan signed integer, dalam pustaka GNU tipe ini adalah int.
-Fungsi : pid_t getpid (void)
Fungsi ‘getpid’ mengembalikan ID proses aktif dan tidak membutuhkan argumen
-Fungsi : pid_t getppid (void)
Fungsi `getppid’ (get parent pid) mengembalikan ID parent proses aktif dan tidak membutuhkan argumen
Untuk menggunakan tipe data dan fungsi diatas perlu disertakan file header types.h dan unistd.h Berikut contoh program yang yang membaca ID proses aktif dan ID proses parent-nya.
/* contoh1.c */
#include /* standard I/O */
#include /* getpid(), getppid() */
#include /* pid_t */
main() {
pid_t mypid, myparentpid; /* deklarasi variabel penampung */
mypid=getpid(); /* ambil ID proses ini */
myparentpid=getppid(); /* ambil ID parent proses ini */
/* tampilkan ID proses ini */
printf(“PID Saya = %d\n”,mypid);
/* tampilkan ID parent */
printf(“PID PARENT Saya = %d\n”,myparentpid);
}

Lakukan proses kompilasi dan Link program contoh1.c
gcc contoh1.c –o contoh1

Apabila proses kompilasi dan link sukses eksekusi program
./contoh1

PID Saya = 1028
PID PARENT Saya = 1027
Jika anda mencoba program ini maka output diatas tentunya dapat saja berbeda dengan output sistem anda. Pemanggilan fungsi pada bahasa C dapat disederhanakan dengan cara berikut:

printf(“PID Saya = %d\n”,getpid()); /* tampilkan PID proses ini */
printf(“PID PARENT Saya = %d\n”,getppid()); /* tampilkan PID parent */

Membuat Proses
Untuk membuat proses baru di sistem, GNU C menyediakan sistem call fork() yang disertakan pada pustaka unistd.h dengan bentuk prototype sebagai berikut :
pid_t fork (void);

fork() mengembalikan suatu besaran bertipe pidt_t yang dapat bernilai :
-1 menandakan pembuatan proses baru (child) gagal
0 menandakan proses child
selain itu merupakan proses parent dan jika variabel PID diakses berisi PID child.
Apabila operasi sukses akan terdapat 2 proses yang dieksekusi yaitu proses parent dan proses child, eksekusi akan dilanjutkan pada kedua proses setelah fork() sampai selesai. Seperti yang telah dijelaskan bahwa proses parent dan child dapat membuat proses parent dan child dapat membuat proses-proses baru yang lain sehingga terdapat banyak proses yang berjalan pada waktu bersamaan (multitasking). Berikut contoh program yang melakukan forking sebuah proses tanpa memeriksa nilai yang dikembalikan.

/* contoh2.c */
#include /* standard I/O */
#include /* fork() */
#include /* pid_t */
int main() {
printf(“Hello\n”); /* tampilkan Hello */
fork(); /* buat proses child */
printf(“Bye-Bye\n”); /* dieksekusi oleh parent dan child */
}

gcc contoh2.c –o contoh2

./contoh2
Hello
Bye-Bye
Bye-Bye

String “Hello” di tampilkan oleh parent sedangkan “Bye-Bye” masing- masing dieksekusi oleh parent dan child. Biar lebih jelas lagi sobat-sobat semua, ini dia ilustrasi forking proses pada program contoh2.c di atas.

Setelah menampilkan string “Hello” kelayar, eksekusi berikutnya adalah statement fork() yang akan membuat proses child, jika statement ini sukses dieksekusi maka akan terdapat 2 proses yang identik dengan PID yang berbeda. Seperti gambar berikut.

Eksekusi proses PARENT dan proses CHILD dilanjutkan di baris sesudah statement fork(), yaitu masing – masing parent dan child menampilkan string “Bye-Bye “. Demikian seterusnya sampai seluruh statement pada parent dan child dieksekusi dan kedua proses berakhir. Berikut contoh program pembuatan proses baru yang melakukan pemeriksaan nilai kembalian dari fork().

/* contoh3.c */
#include /* standard I/O */
#include /* standard library */
#include /*fork(), getpid(), getppid() */
#include /* pid_t */

int main(){
pid_t pid;
pid=fork(); /* buat proses child */
if (pid==-1){
print(“Fork gagal\n”);
exit(EXIT_FAILURE); /* exit jika gagal */
}
if (pid==0){
/* proses child */
print(“CHILD: Ini proses Child\n”);
print(“CHILD: PID saya = %d\n”,getpid());
print(“CHILD: PID parent saya = %d\n”,getppid());
} else {
/* proses parent */
print(“PARENT: Ini proses Parent\n”);
print(“PARENT: PID saya = %d\n”,getpid());
print(“PARENT: PID parent saya = %d\n”,getppid());
print(“PARENT: PID child saya = %d\n”,pid);
}
}

Blok if dapat digantikan dengan struktur switch case seperti berikut :
switch(pid) {
case -1 : print(“Fork gagal\n”);
exit(EXIT_FAILURE); /* exit jika gagal */
case 0 : /* proses child */
print(“CHILD: Ini proses Child\n”);
print(“CHILD: PID saya = %d\n”,getpid());
print(“CHILD: PID parent saya = %d\n”,getppid());
exit(EXIT_SUCCESS); /* child berakhir */
default : /* proses parent */
print(“PARENT: Ini proses Parent\n”);
print(“PARENT: PID saya = %d\n”,getpid());
print(“PARENT: PID parent saya = %d\n”,getppid());
print(“PARENT: PID child saya = %d\n”,pid);
exit(EXIT_SUCCESS); /* parent berakhir */
}

Setelah dikompilasi dan link didapat output berikut:
./contoh3

PARENT: Ini proses Parent
PARENT: PID saya = 1021
PARENT: PID parent saya = 1019
PARENT: PID child saya = 1022
CHILD : Ini proses Child
CHILD : PID saya = 1022
CHILD : PID parent saya = 1021

Output diatas memperlihatkan forking proses sukses dilakukan, sehingga terdapat 2 proses yang dieksekusi, pada proses parent variabel pid berisi PID child, sedangkan fungsi getppid() pada parent menghasilkan PID parent-nya yaitu PID dari program tempat contoh3 dieksekusi yaitu prompt shell bash. Output diatas dapat saja tidak berurutan dikarenakan quantum time suatu proses telah habis. Sistem operasi linux menggunakan quantum time untuk membatasi setiap proses yang dieksekusi. Ini terkait erat dengan algoritma penjadwalan yang digunakan yaitu Round Robin.

PENJADWALAN

Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU timeuntuk tasks yang berbeda-beda dalam sistem operasi. Untuk linux ada aspek lain yangpenting dalam penjadwalan: seperti menjalankan dengan berbagai kernel tasks.Linux mempunyai dua algoritma penjadwalan yaitu :

•Algoritma time-sharing untuk penjadwalan preemptive yang adil diantara sekianbanyak proses.

•Algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.

KONSEP THREAD

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set,danstack  . Sebuah thread  berbagi code section, datasection, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh prosesyang sama dan Thread juga sering disebut lightweight process.

Keuntungan Thread :

  • Responsif
  • Berbagai sumber daya
  • Ekonomis
  • Utilisasi arsitektur multiprosessor

Thread kernel :

  • Thread kernel didukung langsung oleh sistem operasi. Pembuatan,penjadwalan, dan manajemen thread  dilakukan oleh kernel pada kernel space
  • Thread diatur  oleh  kernel,  karena  itu  jika  sebuah thread menjalankan blocking system call  maka kernel dapat menjadwalkan thread lain diaplikasi untuk melakukan eksekusi.
  • Pada lingkungan multiprocessor, kernel dapat menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.

Thread Cancellation :

Thread cancellation adalah pemberhentian thread sebelum tugasnya selesai.Pemberhentian target

thread dapat terjadi melalui dua cara yang berbeda:

1. Asynchronous cancellation : suatu thread seketika itu juga memberhentikan target thread

2. Defered cancellation : target thread secara perodik memeriksa apakah dia harusberhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendirisecara terurut.

Thread Kernel Linux :

Linus Torvalds mendefinisikan bahwa sebuah thread adalah Context of Execution (COE),yang berarti bahwa hanya ada sebuah Process Control Block (PCB) dan sebuahpenjadwal yang diperlukan. Linux tidak mendukung multithreading, struktur data yangterpisah, atau pun rutin kernel.

Linux menyediakan 2 system call yaitu :

1.Fork  memiliki fungsi untuk menduplikasi proses dimana proses anak yang dihasilkanbersifat

Independent.

2. Clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dariproses induk.

usaha kreatif

Istilah kata penjahit sudah tidak asing di telinga orang-orang. Sulis, salah seorang penjahit yang bertermpat tinggal di Mantup. Ia tidak hanya menjahit saja, tapi ia juga bisa mendesain pakaian jika orang yang akan menjahitkan baju tidak mempunyai ide baju model yang bagaimana yang akan di buatnya.

Setelah model baju sudah selesai di rancang, lalu Sulis mengukur tubuh pelanggan sesuai dengan model baju yang akan dibuat. Setelah selesai mengukur, ia lalu membuat pola baju yang akan dibuat.

Pola sudah jadi, kain siap dipotong dan di jahit. Tetapi kain itu tidak hanya dijahit, tetapi juga diobras akan potongan menjadi rapi dan tidak gampang rusak jahitannya.Ia juga bisa membuat baju kebaya. mulai bordir, desain semuanya di kerjakan sendiri.

ia dulunya menjahit hanya sekedar tetangga, tetapi lama kelamaan yang menjahitkan baju di rumahnya semakin banyak. hal itu disebabkan desainnya yang bagus serta jahitannya yang rapi dan tidak cepat rusak. ia juga biasa menjahitkan seragam anak sekolah.

Sistem Operasi pada komputer “ LINUX”

Sejarah Linux

Sistem operasi Unix dikembangkan dan diimplementasikan pada tahun 1960-an dan pertama kali dirilis pada 1970. Faktor ketersediaannya dan kompatibilitasnya yang tinggi menyebabkannya dapat digunakan, disalin dan dimodifikasi secara luas oleh institusi-institusi akademis dan pada pebisnis.

Linux pada awalnya dibuat oleh seorang mahasiswa Finlandia yang bernama Linus Torvalds. Dulunya Linux merupakan proyek hobi yang diinspirasikan dari Minix, yaitu sistem UNIX kecil yang dikembangkan oleh Andrew Tanenbaum. Linux versi 0.01 dikerjakan sekitar bulan Agustus 1991. Kemudian pada tanggal 5 Oktober 1991, Linus mengumumkan versi resmi Linux, yaitu versi 0.02 yang hanya dapat menjalankan shell bash (GNU Bourne Again Shell) dan gcc (GNU C Compiler). Saat ini Linux adalah sistem UNIX yang sangat lengkap, bisa digunakan untuk jaringan, pengembangan software dan bahkan untuk pekerjaan sehari-hari. Linux sekarang merupakan alternatif sistem operasi yang jauh lebih murah jika dibandingkan dengan sistem operasi komersial (misalnya Windows 9.x/NT/2000/ME). Linux mempunyai perkembangan yang sangat cepat. Hal ini dapat dimungkinkan karena Linux dikembangkan oleh beragam kelompok orang. Keragaman ini termasuk tingkat pengetahuan, pengalaman serta geografis. Agar kelompok ini dapat berkomunikasi dengan cepat dan efisien, internet menjadi pilihan yang sangat tepat. Karena kernel Linux dikembangkan dengan usaha yang independent, banyak aplikasi yang tersedia, sebagai contoh, C Compiler menggunakan gcc dari Free Software Foundation GNU’s Project. Compiler ini banyak digunakan pada lingkungan Hewlett-Packard dan Sun. Sekarang ini, banyak aplikasi Linux yang dapat digunakan untuk keperluan kantor seperti untuk spreadsheet, word processor, database dan program editor grafis yang memiliki fungsi dan tampilan seperti Microsoft Office, yaitu Star Office. Selain itu, juga sudah tersedia versi Corel untuk Linux dan aplikasi seperti Matlab yang pada Linux dikenal sebagai Scilab. Linux bisa didapatkan dalam berbagai distribusi (sering disebut Distro). Distro adalah bundel dari kernel Linux, beserta sistem dasar linux, program instalasi, tools basic, dan program-program lain yang bermanfaat sesuai dengan tujuan pembuatan distro.

 

MINIX

MINIX, sebuah sistem bertipe Unix yang ditujukan untuk penggunaan akademis dirilis oleh Andrew S. Tanenbaum pada tahun 1987. Kode sumber MINIX 1.0 tercantum dalam bukunya Operating Systems: Design and Implementation. Walaupun dapat secara mudah didapatkan, modifikasi dan pendistribusian ulang tidak diperbolehkan pada saat itu. Hak cipta dari kode sumbernya termasuk ke dalam hak cipta dari bukunya yang dipublikasikan oleh Prentice Hall. Sebagai tambahan, disain versi 16-bit dari MINIX kemudian tidak secara baik diadaptasikan kepada versi 32-bit dari arsitektur Intel 386 yang murah dan populer yang digunakan secara luas di komputer pribadi.

Tahun 1991, Torvalds mulai bekerja untuk membuat versi non-komersial pengganti MINIX sewaktu ia belajar di Universitas Helsinki.[9] Hasil kerjaannya itu yang kemudian akan menjadi kernel Linux.

Pada tahun 1992, Tanembaum menulis sebuah artikel di Usenet, mengklaim bahwa Linux sudah ketinggalan zaman. Dalam artikelnya, ia mengkritik Linux sebagai sebuah sistem operasi dengan rancangan monolitik dan terlalu terpaku dengan arsitektur x86 sehingga tidak bersifat portable, di mana digambarkannya sebagai sebuah “kesalahan mendasar”.[10] Tanenbaum menyarankan bahwa mereka yang menginginkan sebuah sistem operasi modern harus melihat kepada sebuah rancangan yang berdasarkan kepada model mikrokernel. Tulisan tersebut menekankan tanggung jawab Torvalds yang berujung kepada sebuah debat tentang rancangan kernel monolitik dan mikrokernel.[10]

Sekarang ini Linux telah digunakan di berbagai domain, dari sistem benam[11] sampai superkomputer,[12] dan telah mempunyai posisi yang aman dalam instalasi server web dengan aplikasi LAMP-nya yang populer.[13] Pengembangan kernel Linux masih dilanjutkan oleh Torvalds, sementara Stallman mengepalai Yayasan Perangkat Lunak Bebas yang mendukung pengembangan komponen GNU. Selain itu, banyak individu dan perusahaan yang mengembangkan komponen non-GNU. Komunitas Linux menggabungkan dan mendistribusikan kernel, komponen GNU dan non-GNU dengan perangkat lunak manajemen paket dalam bentuk distribusi Linux.

 

Perbandingan Linux Terhadap Sistem Operasi Lainnya

Linux disusun berdasarkan standard sistem operasi POSIX, yang sebenarnya diturunkan berdasarkan fungsi kerja UNIX. UNIX kompatibel dengan Linux pada level system call, ini berarti sebagian besar program yang ditulis untuk UNIX atau Linux dapat direkompilasi dan dijalankan pada sistem lain dengan perubahan yang minimal. Secara umum dapat dikatakan Linux berjalan lebih cepat dibanding Unix lain pada hardware yang sama. Dan lagi UNIX memiliki kelemahan, yaitu tidak bersifat free. MS-DOS memiliki kemiripan dengan Linux, yaitu file sistem yang bersifat hirarkis. Tetapi MS-DOS hanya dapat dijalankan pada prosesor x86, dan tidak mendukung multi-user dan multi-tasking, serta tak bersifat free. Juga MS-DOS tidak memiliki dukungan yang baik agar dapat berinteroperasi dengan sistem operasi lainnya, termasuk tidak tersedianya perangkat lunak network, program pengembang, dan program utilitas yang ada dalam Linux. Microsoft Windows menawarkan beberapa kemampuan grafis yang ada pada Linux termasuk kemampuan networking, tetapi tetap memiliki kekurangan yang telah ada pada MS-DOS.

Windows NT yang juga tersedia untuk Digital Alpha dan juga prosesor x86 juga memiliki beberapa kekurangan yang telah ada pada MS-DOS. Waktu untuk menemukan suatu bug dalam suatu sistem operasi ini tak sebanding dengan harga yang harus dibayar.
Sistem operasi Apple untuk Macintosh hanya dapat berjalan di sistem Mac. Juga memiliki kekurangan dari sisi ketersediaan perangkangkat bantu pengembang (development tool), dan juga kurang dapat secara mudah untuk berinteroperasi dengan sistem operasi lainnya. Apple juga telah memungkinkan Linux dapat dijalankan pada PowerMac.

 

Struktur Sistem Operasi Pada Linux

Sistem operasi Linux terdiri atas kernel(inti), program sistem, dan beberapa program aplikasi. Kernel merupakan inti dari sistem operasi. Program sistem dan semua program-program lainnya yang berjalan di atas kernel disebut user mode. Perbedaan antara program sistem dan program aplikasi adalah program sistem butuhkan agar suatu sistem operasi dapat berjalan sedangkan program aplikasi adaah program yang dibutuhkan untuk menjalankan suatu aplikasi tertentu.

Sistem Linux terdiri atas tiga badan kode utama, dengan isi pada barisnya merupakan implementasi UNIX paling tradisional :

 

  1. Kernel

Kernel Linux adalah potongan orisinil dari perangkat lunak yang dibuat dari serpihan oleh komunitas Linux. Sedangkan sistem Linux merupakan gabungan dari komponen-komponen. Sistem Linux basic adalah lingkungan standar untuk aplikasi dan program user.

Kernel Linux terdiri atas kode tertulis dari nol yang dibuat spesifik untuk proyek Linux, sedangkan perangkat lunak yang mendukung sistem Linux tidak terikat secara ekslusif pada Linux, tapi umumnya dapat bekerja pada sistem operasi seperti UNIX .

Kernel bertanggung jawab untuk mengatur dan menjaga seluruh abstraksi penting dari sistem operasi, termasuk hal-hal seperti virtual memori dan proses. Kernel Linux membentuk inti dari keseluruhan sistem operasi Linux. Kernel menyediakan semua fungsionalitas yang diperlukan untuk menjalankan proses, dan menyediakan servis sistem untuk melindungi akses terhadap sumber daya perangkat keras. Kernel mengimplementasikan seluruh fitur yang dibutuhkan untuk terkualifikasi sebagai sistem operasi.

  1. System libraries

System libraries mendefinisikan set standar dari fungsi untuk melewatkan aplikasi agar dapat berinteraksi dengan kernel. Implementasi dari fungsi- fungsi ini sedikit banyak ada pada fungsionalitas sistem operasi yang tidak membutuhkan hak keseluruhan atas kode kernel.

System libraries menyediakan banyak tipe dari fungsionalitas. Pada level paling sederhana, system libraries mengijinkan aplikasi untuk membuat permintaan kernel-system-service. System libraries juga menjaga dan mengoleksi argumen system call dan jika diperlukan mengatur argumen-argumen tersebut ke dalam suatu bentuk khusus untuk melakukan system call.

  1. System utilities

System utilities adalah program yang menunjukkan tugas manajemen yang individual dan terspesialisasi. Beberapa system utilities dapat dilibatkan hanya sekali saja untuk menginisialisasi dan mengatur beberapa aspek dari sistem; dan yang lainnya – biasa disebut daemon pada terminologi UNIX- berlangsung secara permanen, memegang tugas seperti merespon pada koneksi jaringan yang masuk, menerima permintaan logon dari terminal, dan memperbaharui file log.

Sistem Linux termasuk di dalamnya bermacam-macamuser-mode program, baik system utilities maupun user utilities. Pada system utilities terdapat seluruh program yang dibutuhkan untuk menginisialisasi sistem.

Kernel Linux merupakan monolithic kernel, dimana driver dan tambahan kernel berjalan di kernel space, sehingga kernel dapat mengakses hardware secara penuh meskipun ada beberapa bagian yang berjalan di user space. Ini bertujuan untuk meningkatkan performansi karena seluruh kode kernel dan struktur data disimpan pada single address space. Tidak adacontext switch yang diperlukan ketika sebuah proses memanggil fungsi sistem operasi atau saat perangkat lunak melakukan interrupt

Manfaat Linux

Linux adalah sebuah Unix-jenis sistem operasi awalnya dibuat oleh Linus Torvalds dengan bantuan dari pengembang di seluruh dunia. Dikembangkan di bawah GNU General Public License, kode sumber untuk Linux tersedia secara bebas untuk semua orang.Ada banyak Varian dari Linux yang di kembangkan di seluruh dunia sebagai Sistem operasi yang Free dan Open source yang sering di kenal dengan Istilah FOSS (Free/Open Source Software).Foss adalah Konsep berbagi , merdeka dan terbuka.

  • Anda tidak perlu membeli Linux OS dan mengeluarkan Uang yang mahal untuk membeli CD Windows yang Original.
  • Anda tidak Perlu takut Untuk di Sweeping atau di Razia Software karena Linux Free.
  • Anda telah membantu mengurangi Pembajakan Software dan tidak perlu membeli Licensi Key/ Keygen.
  • Apakah Anda suka internet? The TCP / IP protokol dibangun pada UNIX komputer (Linux)

sedangkan Windows hanya embraced TCP / IP sebagai protokol asli dari Windows 2000.

  • Sobat tidak perlu defragment Linux Selalu untuk selamanya..^_^
  • Linux lebih aman karena Linux memiliki filosofi menjalankan proses pada tingkat

terendah yang diperlukan akses.

  • lebih dari 80% dari atas 500 supercomputers di dunia menjalankan Linux
  • Jika anda memerlukan sebuah kantor suite Anda dapat men-download Open Office (Free)
  • Anda tidak menderita vendor lock-in dengan Linux.
  • Linux OS dapat menjalankan distribusi yang sama persis pada sistem 32-bit, 64-bit sistem sedangkan Windows Bajakan yang sering digunakan di Indonesia adalah Windows 32 Bit.
  • Komunitas linux adalah orang yang berlimpah dengan keinginan untuk saling membantu memecahkan masalah apapun pengalaman serta berbagi tips dan ide untuk kreativitas.
  • Linux tidak crash tanpa alasan jelas sewaktu di Jalankan.
  • Linux tidak dapat membuat sistem anda unusable seperti yang sering di temukan di Windows.
  • Pada Sistem Operasi Windows ketika selesai Update Antivirus dan Instal software seringnya meminta untuk Restart/reboot bahkan kadang Restart secara Otomatis (Windows Maksa Bro biar systemnya Update).Tetapi Linux tidak reboot dengan sendirinya (Otomatis)
  • Linux dapat membaca dengan baik lebih dari seratus berbagai jenis file system. Read more…

TUGAS 2. KONSEP MANAJEMEN PROSES DI SISTEM OPERASI

  • Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
  • Atas permintaan proses induk.
  • Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

Keberadaan sistem operasi dalam sistem komputer adalah sebagai perangkat lunak yang mempunyai tugas mengendalikan dan mengkoordinasikan seluruh hardware dan software sebagai sumber daya komputer sekaligus memberikan pelayanan kepada program aplikasi dan pemrogram untuk memudahkan pemanfaatan sumber dayanya. Proses sebagai suatu entitas yang dinamis mengandung sejumlah instruksi, data, program counter, kumpulan register serta stack yang berisi alamat memori. Proses juga dapat dikatak sebagai program yang sedang dieksekusi (program aplikasi / sistem operasi). Proses dapat dikatakan sebagai unit kerja terkecil yang secara individu memiliki sumber daya – sumber daya dan dijadwalkan oleh sistem operasi.
Dengan demikian sistem operasi mempunyai kegiatan yang sangat kompleks dalam mengelola seluruh sumber daya dan memberikan pelayanan terhadap proses – proses sesuai kebutuhan. Kegiatan tersebut menjadikan sistem operasi membutuhkan suatu manajemen proses.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.

Tahapan – Tahapan Status Proses :

  1. Proses yang baru diciptakan akan mempunyai kondisi status ready
  2. Proses ready menjadi running saat pemroses siap
  3. Proses running menjadi blocked saat sumber sedang melaksanakan tugas lain atau berhenti.
  4. Proses running menjadi ready karena waktu untuk proses sudah habis tapi tugas belum selesai  (terjadi time out).
  5. Proses blocked menjadi ready saat sumber daya sudah ada atau kerja dari perangkat I/O sudah selesai

Status Proses

Saat proses dieksekusi maka setiap proses akan mengalami perubahan status / kondisi. Jika dikelompokkan, maka perubahan status proses ada lima tahapan yaitu :

  1. New yaitu proses yang sedang dibuat.
  2. Running yaitu proses yang dapat dieksekusi karena CPU tidak ada tugas atau tugas selesai.
  3. Ready yaitu proses menuggu jatah waktu dari processor.
  4. Waiting yaitu proses sedang menunggu beberapa event.
  5. Terminated yaitu proses yang sudah selesai dieksekusi.

Process Control Block (PCB)

Sistem operasi dalam melaksanakan tugas pengendalian dan pelayanan proses (sebagai manajer dan pelayan) terhadap kerja sistem komputer memerlukan sejumlah informasi yang akurat. Informasi yang diperlukan sistem operasi tersedia dalam bentuk Process Control Block (PCB). Informasi dalam PCB dikelompokkan dalam tiga macam :

  1. . identifikasi proses yang menciptakan identifikasi pemakai
  2. Informasi status pemroses yaitu informasi tentang isi register yang berisi data saat running.
    register yang digunakan (AX,BX,CX,EAX,EBX).
    Register kendali dan status (program counter, PSW).
    Pointer stack
  3. Informasi kendali proses yaitu informasi yang diperluakan sistem operasi untuk manajemen proses. Informasi penjadwalan dan status [ prioritas dan kejadian ]
    manajemen memori.

Create and Destroyed Process

  1. 1. Pembuatan Proses (Create)

Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.

Penciptaan proses melibatkan banyak aktivitas, yaitu :

  1. Menamai (memberi identitas) proses.
  2. Menyisipkan proses pada senarai proses atau tabel proses.
  3. Menentukan prioritas awal proses.
  4. Menciptakan PCB.
  5. Mengalokasikan sumber daya awal bagi proses.
    1. 2. Penghancuran Proses (Destroyed)

Penghancuran proses terjadi karena :

  • Selesainya proses secara normal.
  • Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
  • Batas waktu telah terlewati.
  • Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) .
  • Memori tidak tersedia.
  • Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
  • Pelanggaran terhadap batas memori.
  • Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
  • Terjadi kesalahan karena pelanggaran proteksi.
  • Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
  • Terjadi kesalahan aritmatika.
  • Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W.
  • Waktu telah kadaluwarsa.
  • Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik.
  • Terjadi kegagalan masukan/keluaran.
  • Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer).
  • Intruksi yang tidak benar.
  • Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut).
  • Terjadi usaha memakai instruksi yang tidak diijinkan.
  • Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
  • Kesalahan penggunaan data.
  • Bagian data adalah tipe yang salah atau tidak diinisialisasi.
  • Diintervensi oleh SO atau operator.
  • Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock).
  • Berakhirnya proses induk.
  • Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
  • Atas permintaan proses induk.
  • Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

Threads

Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.

agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

1.  Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).

2. Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.

3. Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori yang cukup.

Implementasi Proses :

  • Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
  • Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.
  1. Penjadwalan Proses

Kriteria untuk mengukur dan optimasi kinerja penjadwalan :

a)      Adil (fairness)

Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu  pemroses yang sama dan tak ada proses  yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.

b)      Efisiensi (eficiency)

Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu

sibuk pemroses.

c)       Waktu tanggap (response time)

Waktu tanggap berbeda untuk :

1)      Sistem interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.

2)           Sistem waktu nyata

Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.

d)      Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.

e)      Throughput

Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu

SEJARAH SISTEM OPERASI

Sistem operasi adalah sebuah sistem yang diperlukan untuk dapat menjalankan semua aplikasi program atau software yang ada di komputer, misalnya MS-OFFICE. Macam-macam Sistem operasi adalah Windows, UNIX/LINUX, DOS, OS/2.

Sistem operasi yang umum digunakan oleh kebanyakan komputer, terdiri dari 3 keluarga atau 3 kelompok, yaitu keluarga Microsoft Windows, keluarga Unix, dan keluarga Mac OS.

Sedangkan untuk komputer mainframe dan super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya turunan dari sitem UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX,dll.

 

  1. a. Sistem Operasi Berbasis Windows

QDOS (Quick and Dirty Operating Sistem) merupakan asal usul dari windows. QDOS ditulis oleh Tim Paterson dari Seattle Computer pada tahun 1980. QDOS dibuat dari OS terkenal pada masa itu, QDOS dirancang untuk prosesor intel 8086. kemudian Bill Gates dari Microsoft membeli lisensi QDOS untuk dikembangkan dan menjualnya lagi ke berbagai perusahaan computer. Pada tahun 1981 microsoft memberi nama MS-DOS, sedangkan yang jual ke perusahaan computer IBM diberi nama PC-DOS oleh IBM. MS.DOS inilah yang terus berkembang hingga menjadi Windows Vista.

  1. b. Sistem Operasi Berbasis Linux

Linux adalah nama yang diberikan sistem komputer bertipe UNIX. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas terbuka dan sumber utama terbuka.

Jika asal usul MSDOS/Windows berasal dari pengembangan QDOS yang dilakukan Bill Gates, maka unix merupakan salah satu sistem operasi yang mengawali lahirnya libux. Pada tahun 1965, para ahli membuat sistem operasi bernama Multics. Sistem ini awalnya didesain dengan harapan akan menciptakan beberapa keunggulan, seperti multiuser, multiprosesor dan multilevel filesistem. Namun, pada tahun 1969 pembuatan program ini dihentikan karena sistem ini sudah tidak memenuhi tujuan semula.

Pada tahun 1991 di Finlandia, seorang mahasiswa ilmu computer bernama Linus Tovald berhasil mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama linux. Pada bulan Agustus 1991, lahirlah Linux 0.01 oprekan Linus dan pada tanggal 5 Oktober 1991 secara resmi Linus mengumumkan Linux 0.02 yang hanya dapat menjalankan BASH dan gcc compiler.

Selain itu, Linus juga mempublikasikan sistem operasi buatannya tersebut lengkap dengan ditemui, computer yang tiba-tiba hang dan harus menekan tombol Ctrl-Alt-Del atau Restart untuk mengakhiri kejadian tersebut.

Hingga saat ini linux telah berkembang pesat, karena OS-nya yang free, Linux juga sebagai satu-satunya OS yang berbasis Open Source yang dapat dimodifikasi oleh siapa saja yang ingin mengembangkan linux. Hingga lahirlah berbagai OS berbasis linux, seperti Fedora Core, Ubuntu, Mandrake, dll. Bahkan pada tahun 2002 di Indonesia sendiri juga lahir berbagai OS buatan anak negeri berbasi Linux bermunculan, diantaranya Trustix Merdeka, WinBI, RimbaLinux, Komura.

  1. c. Sistem Operasi Berbasis Macintosh

Macintosh Operating System (MAC OS) merupakan sistem operasi komputer yang dibuat oleh Apple. Apple yang sebelumnya bernama Apple komputer, Inc adalah sebuah perusahaan silicon valley yang bergerak di bidang computer.

MAC OS merupakan OS yang pertama menggunakan sistem GUI(Graphical User Interface). Para pemakai komputer begitu takjub melihat macintosh yang snagat ramah melayani pemakai. Pemakai tidak perlu banyak menulis perintah, cukup menunjuk gambar yang ada. Mac OS dibuat khusus untuk computer Macintosh dan tidak kompatibel dengan PC berbasis IBM. Diperkenalkan pada tahun 1984, Mac OS sejak tahun 2006 telah memiliki kompabilitas dengan arsitektur PowerPC maupun X86.

Versi terakhir Mac OS saat ini adalah Mac Os X yang diluncurkan pada tahun 2000. Mac OS X Server juga dirilis pada tahun 2001. Pada dasarnya versi Server ini mirip dengan versi standardnya, dengan perbedaan bahwa versi Server mencakup piranti lunak untuk keperluan manajemen dan administrasi workgroup dalam komputer berskala besar. Contoh fitur tambahan yang tersedia untuk versi ini adalah piranti lunak untuk menjalankan fungsi-fungsi seperti SMTP, SMB, LDAP dan DNS. Selain itu cara melisensinya juga berbeda. Mac OS X adalah sistem operasi yang menggunakan kernel BSD sehingga beberapa kalangan mengatakan bahwa Mac OS X termasuk dalam keluarga Unix. Hal yang menarik dari OS ini adalah keindahan tampilannya sehingga menjadikannya panutan bagi pengembang desktop lain.

kisah pegawai

sulastri adalah seorang karyawan di sbuah pabrik. ia bekerja sebagai penjahit. ia tak pernah mengeluh akan hasil yang diprolehnya meskipun untuk hidup pun pas-pasan. tapi ia tetap berjuang untuk menghidupi keluarganya. karena ketekunana dan keuletan dia dalam bekerja, ia direkomendasikan seabagai pengawas di pabrik iu. ia mengawasi pekearjaan karyawan-karyawan  yang tidak memenuhi standar.

dan lagi-lagi ia direkomendasi bosnya untuk mengurusi jaryawan-karyawan serta memantau barang yang masuk dan keluar. ia sejarang dapat hidup lebih baik lagi, dan dapat mnyekolahkan anaknya sampai perguruan tinggi. dan ikini ia membuka tojo kecil-kecilan untuk menambah penghasilan.

dari cerita ini dapat saya simpulkan bahwa menjadi sukses itu butuh perjuangan yang besar dan usaha yang gigih untuk mencapai semua itu.

DIBALIK KESUKSESAN PENGUSAHA BATIK

Kesuksesan seorang ibu rumah tangga yang bernama Isti Nurhayati, SIP. Kisah ini berawal dari dia menjadi seorang karyawan di sebuah home industri di tempat dia tinggal yang dimiliki oleh ibu H. ibu Isti bekerja sebagai marketing di home industri tersebutb. Bu H adalah seorang pengusaha tas batik yang dibilang sukses. Tetapi ibuH tidak terlalu memperhatikan karyawan-karyawannya, karena dia hanya beantusias mendapatkan banyak uang dari usahanya. Karena hanya mementingkan diri sendiri, karyawan-karyawan ibu H keluar satu persatu kecuali ibu Isti. tetapi akhirnya ibu Isti keluar dari pekerjaannya itu.

Tetapi ibu Isti tidak berhenti berusaha. Ia terus berpikir apa yang akan dilakukan untuk menjalankan keinginannya untuk membuka usaha dagang. Ibu Isti memulainya dengan usaha berdagang salak di tepi jalan raya. Tetapi hasilnya tidak sesuai dengan apa y6ang diharapkannya. Akhirnya ibu Isti beralih menjadi pedagang sayuran. Setiap pagi ibu Isti berangkat ke pasar untuk untuk berjualan sayuran. Dan ibu Isti juga berhenti berjualan sayuran karena jualannya sering tidak habis dan hanya menjadi busuk.

Hal itu tidak mematahkan semangat ibu Isti. Ia sempat berjualan semangka, ketimun, cabai dari hasil tanam di sawah. Karena hasilnya kurang maksimal dan hanya menanam pada musim tertentu maka ibu Isti mencoba bisnis lainnya.

Ide membuat tas batik ini berasal dari ibunya ibu Isti yang ibunya itu adalah seorang penjahit kain perca. Beliau memberikan saran agar ibi Isti membuat usaha tas dari kain batik perca. Dan Isti pun mencoba ide tersebut. Nah, disinilah awal dari kesuksesan ibu Isti.

Pada awal Isti mencobanya, dia hanya mengajak saudara-saudara dekat untuk merintis usaha tersebut dan beliau hanya merekrut 1 orang karyawan saja dan hanya membuat satu jenis tas yaitu tas ondol. Tetapi karena ide-ide kreatifnya terus muncul dan beliau mempunyai banyak relasi, maka usaha tersebut dapat berkembang sampai sekarang. Dan bisnis ibu Isti Nurhayati di beri nama AAYA BATIK YOGYA.

Dan saat ini ibu isti sudah mempunyai banyak karyawan dan macam-macam jenis tas. Ia juga menerima pesanan tas untuk acara besar atau hanya untuk sendiri. Dan ibu Isti juga mempunyai website yang beralamat di aayabatikyogya.indonetwork.co.id. kalau ingin membuktikan, silahkan buka di alamat tersebut.

praktikum 10

#include <iostream>
#define maks 5

using namespace std;

class Queue{
friend ostream& operator<<(ostream&, const Queue&);
public :
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue();
char dequeue();
private :
char A[maks];
int banyak;

};

ostream& operator<<(ostream&out,const Queue& s)
{
cout<<“\nIsi Queue sebanyak : “<<s.banyak<<” yaitu “;
for(int i=0; i<s.banyak; i++)
out<< s.A[i]<< ” “;
}

Queue::Queue(){
banyak=0;
for(int i=0; i<maks; i++)
A[i]=’0′;
}

int Queue::penuh(int s)
{ return s==maks ? 1:0;}

int Queue::kosong(int s)
{return s==0 ? 1:0;}

void Queue::cetak()
{ cout<<“\nIsi Queue : “;
for(int i=0; i<banyak; i++)
cout<<A[i]<<” “;
}

void Queue::enqueue()
{
char x;
cout<<endl;
cout<<“\masukkan elemen “;
cin>>x;
cout<<“\nElemen : “<< x <<” masuk antrian “;
if(penuh(banyak))cout<<“queue penuh”;
else if(A[0]==’0′){
A[0]=x;
banyak++;
}
else{

int tempat=0;
while(A[tempat]>x)tempat++;
if(banyak !=tempat)
for(int i=banyak; i>=tempat; i–)
A[i+1]=A[i];
A[tempat]=x;
banyak++;
}
}

char Queue::dequeue()
{
char temp=A[–banyak];
cout<<“\nDequeue elemen–> “<<temp;
A[banyak]=’0′;
return temp;
}

main(){

Queue p;
cout<<endl;
p.enqueue();
cout<<p;
p.enqueue();
cout<<p;
p.enqueue();
cout<<p;
p.enqueue();
cout<<p;
p.enqueue();
cout<<p;
p.enqueue();
cout<<p;
char x=p.dequeue();
cout<<” elemen yang di dequeue “<<x<<endl;
cout<<p;
p.dequeue();

cout<<p;
p.dequeue();

cout<<p;
p.dequeue();

cout<<p;
p.dequeue();

cout<<p;

//p.enqueue(‘H’);
//cout<<p;

system(“PAUSE”);
return EXIT_SUCCESS;

}

praktikum 8

#include <iostream>
#define maks 5

using namespace std;

class Queue{
friend ostream& operator<<(ostream&, const Queue&);
public :
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
private :
char A[maks];
int banyak;
};

ostream& operator<<(ostream&out,const Queue& s)
{ cout<<“\nIsi Queue : “;
for(int i=0; i< s.banyak; i++)
out<< s.A[i]<< ” “;
}

Queue::Queue(){
banyak=0;
for(int i=0; i<maks; i++)
A[i]=’0′;
}

int Queue::penuh(int s)
{ return s==maks ? 1:0;}

int Queue::kosong(int s)
{return s==0 ? 1:0;}

void Queue::cetak()
{ cout<<“\nIsi Queue : “;
for(int i=0; i<banyak; i++)
cout<<A[i]<<” “;
}

void Queue::enqueue(char x)
{
cout<<“\nElemen : “<< x <<” masuk antrian”;
if(penuh(banyak))cout<<” queue penuh”;
else if(A[0]==’0′){
A[0]=x;
banyak++;
}
else{
for(int i=banyak; i>=0; i–)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}

char Queue::dequeue()
{
char temp=A[–banyak];
cout<<“\nDequeue elemen–>”<<temp;
A[banyak]=’0′;
return temp;
}

main(){
Queue q;
for(char f=’a’; f<‘g’; f++){
q.enqueue(f);
cout<<q;
}
char p=q.dequeue();
q.cetak();
cout<<“\n\nCetak pakai overloading:”<< q;

{

system(“PAUSE”);
return EXIT_SUCCESS;
}
}