PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR

Pengertian Pemrograman Berorientasi Objek
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0
Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi
Setelah mengetahu pengertiannya?
dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah
berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).
Sementara itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :
1.maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2.pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3.dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.
permodelan yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.
Persamaan kedua pemrogaman
adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.
Mana yang lebih baik
tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur.
Kapan sama2 baik
Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
Pemrograman berorientasikan objek dikatakan lebih baik apabila Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Referensi :
  1. 1.      wikipeda.co.id
  2. 2.      darkdevil4bloodyvenus.wordpress.com
  3. 3.      myblogar.blogspot.com
  4. 4.      http://www.ms-room.com

SoftwareEngenering dan Easycase

Software
¢  Program komputer dan dokumen terkait seperti kebutuhan, model-model rancangan dan user manual.
¢  Produk software dibangun ->Pelanggan tertentu (pesanan), pasar umum
  Umum -> Sistem yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Contoh : word, Excel.
  Pesanan -> Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak.

Karakteristik Software
  • S/w dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik
  • Perangkat lunak tidak pernah usang
  • Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada.
  • Dengan berkembangnya OOP, pengembangkan software berbasis komponen semakin banyak dilakukan.
Tipe Software

·         System Software
·         Real-time Software
·         Business Software
·         Engineering & Scientific Software
·         Embedded Software
·         PC Software
·         Web-based Software
·         Artificial Intelligence Software

Apa Ciri-ciri Software yang Baik?
  • Software harus sesuai dengan kebutuhan yang diperlukan dan dijalankan serta harus dapat dipelihara, diandalkan dan diterima oleh user.
  • Pemeliharaan
      • Software harus berkembang untuk memenuhi perubahan kebutuhan
  • Dapat diandalkan
    • Software harus dapat dipercaya
  • Efesiensi
    • Software tidak boleh menyia-nyiakan penggunaan sumber daya sistem.
  • Dapat diterima
·         Software harus diterima oleh user ketika telah dirancang è dimengerti, dapat digunakan dan cocok dengan sistem lain.
·         Krisis Software
  • Kegagalan software adalah proyek Software dimana :
    • Melebihi anggaran
    • Terlambat
    • Tidak memenuhi harapan dan kebutuhan user
      • Tidak memenuhi persyaratan fungsional atau kinerja
      • Tidak memenuhi persyaratan mutu

SOFTWARE ENGINEERING
  • Software engineering adalah disiplin ilmu tehnik yang terfokus pada semua aspek produksi software.
·         Insinyur S/w harus mengadopsi pendekatan yang sistematis dan terorganisir utk pekerjaan mrk dengan menggunakan alat dan teknik untuk bertahan pada masalah yang akan dipecahkan berdasarkan kendala pengembangan dan sumberdaya yang tersedia.
  • Aplikasi metode sistematik, alat dan tehnik untuk mencapai kebutuhan atau sasaran sistem software

Untuk membangun sebuah sistem :
·         Difinisi masalah ( analisa kebutuhan)
·         Analisa solusi (desain software)
·         Proses perencanaan
·         Proses control
·         Proses evaluasi (verifikasi, validasi, dan pengujian)
Elemen software engineering (IEEE CSDP Exam

·         Professionalism, economics, ethics
·         Software requirements
·         Software design
·         Software construction
·         Software testing
·         Software maintenance
·         Software configuration management
·         Software engineering management
·         Software engineering processes
·         Software engineering tools and methods
·         Software quality

Programming vs Software Engineering
·         Programming    Software Engineering
·         Programming without Software Engineering is just hacking

Easycase

Easycase merupakan salah satu software atau alat bantu untuk  perancangan sistem yag memiliki kelebihan disbanding dengan aplikasi yang telah adasebelumnya antara lain flowchart, visio, dll.

Kelebihan EasyCase adalah kemampuannya untuk mengetes jalur atau arah atau rule dari dataserta dia juga mampu untuk mengecek keseimbangan dari level yang dimiliki. Jika EasyCaseadalah bahasa pemrograman, maka dia mampu untuk mengcompile suatu program yang dibuat,apakah sudah benar atau masih ada kesalahan. Dengan menggunakan Easy Case, sudah dipastikan bahwa diagram yang telah dibuat, secara rule dan balancenya sudah benar.Menggunakan EasyCase cukuplah mudah (semudah namanya), sebab kita tidak perlumenuliskan suatu code program, jadi tinggal klik dan klik saja, tetapi anda harus mengerti dahuluteori tentang pembuatandiagram, baik diagram konteks, diagram arus data dll.

Langkah Pertama untuk dapat bekerja dengan easycase adalah membuat project. Project tersebut akan digunakan untuk membuat dan menyimpan semua pekerjaan yang berhubugan dengan proyek tersebut.

project
Untuk membuat suatu project, dapat dilakukan dengan memilih menu file, lalu pilih project atau menekan tombol Ctrl-J.

Sebelum membuat sebuah project, maka harus disiapkan sebuah folder/direktori terlebih dahulu yang akan digunakan untuk project yang bersangkutan. Kemudian isikan nama proyek, model metodologi proses, model metodologi data juga pilihan lain yang harus diisi. Apabila semua pilihan telah diisi sesuai keinginan, maka selanjutnya adalah membuat diagram konteks dengan cara klik tombol define context diagram. Pada bagian ini anda diminta untuk memberi nama konteks dan nama file konteksnya, lalu klik OK untuk mengakhiri. Setelah klik OK maka easycase akan menampilkan bentuk context diagram yang paling sederhana. Easycase pasti telah menyiapkan dua external entity dan satu data proses yang tealh diisi dengan nama prosesnya sesuai yang anda masukkan tadi, maka hati-hatilah dalam membuat proyek sebab itu nanti akan digunakan untuk nama proses.
context diagram
untuk sebuah sistem sesuai dengan yang anda butuhkan. Easycase menyediakan beberapa simbol yang dapat digunakan untuk membuat context diagram tersebut yag dapat dikeluarkan melalui menu View dan pilih object palette. Tergantung dari metode yang dipilih Yourdon atau Gane & Sarson.
Untuk meletakkan simbol ke worksheet, memindah simbol dan menghapus symbol. Untuk memberi nama simbol simbol, cukup dengan mengarahkan kursor ke simbol yang akan diberi nama lalu klik mouse sampai simbol tadi dikelilingi kotak kecil.
Pemberian Nomor Simbol
Tidak semua simbol dapat diberi nomor, tetapi hanya simbol-simbol tertentu yang dapat diberi nomor. Sebelum anda memberi nomor suatu simbol maka sebelumnya anda harus memberi nama simbol tersebut terlebih dahulu. Selain itu juga ada simbol yang tidak dapat diganti nomornya, misalnya simbol proses pada context diagram (0), dia memang harus diberi nomor 0 tidak boleh yang lainnya.
Membuat Arus Data
Simbolnya adalah garis berpanah, maka pilihlah simbol tersebut pada pilihan simbol. Langkah pertama kliklah simbol yang akan dihubungkan (sampai simbol tersebut akan dikelilingi kotak kecil warna) lalu kliklah pada salah satu kotak-kotak kecil tersebut. Kemudian klik simbol yang lainnya (sehingga muncul kotak-kotak keciil mengelilingi symbol tersebut) lalu klik pada salah satu kotak kecil tersebut, maka kedua simbol akan terhubung.
Data Flow Diagram (DFD) Level 0
Setelah kita membuat diagram konteks, langkah selanjutnya adalah membuat DFD level dengan menggunakan memilih menu file – new chart atau klik toolbar Child (DFD level 1 dan seterusnya)
Agar dapat membuat sebuah child, maka anda perlu melakukan dua langkah yaitu :
1. mendifinisikan child
2. membuat atau menuju child yang telah didefinisikan
Untuk mendefinisikan child, anda pilih simbol proses yang akan dibuat sebuah child (DFD level selanjutnya) sehingga proses dikelilingi dengan kotak kecil hitam, kemudian klik kanan sehingga muncul popmenu dan pilih define child. Langkah selanjutnya adalah menuju atau membuat child dengan cara
memilih simbol proses yang telah didefinisikan childnya tadi kemudian klik kanan lalu pilih goto child child,
Rule Check & Level Balance
easyCASE memiliki fasilitas untuk mengetes kebenaran terhadap apa yang telah kita buat (seperti dikompilasi jika dalam bahasa pemrograman), diantaranya :
Rule Check digunakan untuk mengontrol atau melakukan tes aliran diagram yang dibuat.
Level Balance digunakan untuk mengontrol atau mengetes keseimbangan diagram yang dibuat.
Untuk melakukan pengetesan, dapat dilakukan dengan cara memilih menu Tools lalu pilih rule
check atau level balance.
User Access Control Utility
Anda dapat menambah atau menghapus user yang nantinya berhak menggunakan, merubah dan menghapus isi suatu project dengan cara memilih menu Tools.


Cara reset/ganti password root di MySQL

1.    Langkah pertama untuk mereset password user root adalah menghentikan MySQL Server apabila masih berjalan, dengan cara : dari menu task manager, pilih tab Procesess, cari mysqld.exe, klik kanan dan pilih menu end process.

2.    Selanjutnya kita akan menjalankan kembali MySQL Server (menggunakan mysqld), namun dengan perintah tambahan skip-grant-tables. Buka lokasi file mysqld melalui cmd, seperti gambar dibawah ini :
Untuk memeriksa apakah MySQL Server telah berjalan, dapat dilihat dari task manager, pilih tab Procesess, dan jika ada mysqld.exe, berarti MySQL Server telah berjalan.
3.    Lalu buka CMd Baru dan Masuk sebagai root tanpa password. Saat ini MySQL Server telah berjalan dengan opsi skip-grant-tables, sehingga kita dapat masuk sebagai root tanpa password:

4.    Setelah itu, kita rubah password root dengan kode
UPDATE mysql.user SET Password = PASSWORD('password_baru') WHERE User = 'root';
Seperti gambar berikut :

Perintah tersebut adalah query UPDATE yang biasa kita gunakan untuk mengupdate sebuah record atau baris, namun yang diupdate kali ini adalah tabel user pada database mysql.

5.    Setelah perintah tersebut dijalankan, untuk merefresh tabel user, jalankan query : FLUSH PRIVILEGES; seperti gambar dibawah :


Perintah FLUSH PRIVILEGES digunakan untuk membuat MySQL Server mengupdate hak akses di tabel user. Lalu keluarlah dari MySQL.
Maka sekarang password root adalah  321456. Jika ingin menghapus passwordnya, maka tinggal kosongkan diantara tanda ‘’. Seperti gambar ini :


Dan Refresh kembali table user dengan FLUSH PRIVILEGES;
Setelah itu keluar dari MySQL Client, hentikan MySQL Server dari task manager dan jalankan MySQL Server seperti biasa. Dan masuk kembali seperti biasa dengan password yang sudah ditentukan.

BBM Hadir di Android dan IOS

TEMPO.CO, Orlando - Thorsten Heins, Chief Executive Officer BlackBerry, mengumumkan bahwa mulai musim panas ini (sekitar Juni), BlackBerry Messenger, aplikasi percakapan yang dikenal sebagai BBM, tidak lagi eksklusif hanya bisa digunakan di Blackberry. "Ini berita besar, BBM bisa digunakan di semua platform, bisa di Android juga di IOS," kata Heins dalam acara konferensi tahunan BlackBerry Live di Orlando, Florida, AS, Selasa pagi waktu setempat.

Sekitar 2.000 hadirin yang hadir di acara di Marriott World Center ini sempat tertegun ketika Heins menyampaikan kejutannya itu. Sedetik kemudian ruangan dipenuhi tepuk tangan para hadirin. Tak ada yang menyangka bahwa BlackBerry akhirnya melepas "hak ekslusif" atas BBM itu untuk bisa digunakan platform selain RIM.

Heins, yang baru menjadi CEO RIM January 2012 lalu, menjelaskan seluruh fungsi BBM seperti selama ini ada di BlackBerry bisa digunakan di platform IOS dan Android. "Ini saat yang tepat bagi BlackBerry untuk maju lebih jauh menjadi multiplatform," kata Heins.

Blackberry Messenger adalah layanan jaringan sosial yang sangat populer di kalangan pengguna gadget BlackBerry. Meski banyak aplikasi sejenis seperti Whatsapp, Line, Yahoo Messenger. Namun, BBM memiliki kelebihan yang tak dimiliki aplikasi pesaingnya. Kelebihan itu adalah adanya fitur "D" (Delivered) dan "Read" (Terbaca) yang memungkinkan pengirim pesan tahu pesannya sudah masuk dan terbaca.

Saat ini, pengguna BBM tercatat sebanyak 60 juta orang. Mereka mengirim dan menerima lebih dari 10 miliar pesan setiap hari, dua kali lipat dari jumlah pesan yang dikirim aplikasi percakapan lain.

BlackBerry Live adalah acara konferensi tahunan yang digelar oleh Research in Motion (RIM), produsen BlackBerry. Dalam acara ini, RIM mengundang ratusan pengembang aplikasi, praktisi dan pebisnis bidang teknologi informasi, dan komunitas pengguna Blackberry.

DARU PRIYAMBODO -- Orlando, Amerika Serikat

Sumber : http://www.tempo.co/read/news/2013/05/15/072480476/BlackBerry-Messenger-Hadir-di-Android-dan-IOS

Download Materi Fisika Teknik Semester II

Materi kuliah :semester II
Jurusan  :Teknik Informatika
Mata Kuliah : Fisika Teknik


Download





Pemahaman Sistem Operasi PC

MANAJEMEN PROSES
·         Jenis Layanan
·         Antar Muka
·         System Call
·         System Program
·         API (Application Program Interface)
·         Application Program

Jenis Layanan
  • Tujuan dari sebuah system operasi adalah sebagai penghubung antara user dan hardware
  • Dimana system operasi memberikan kemudahan-kemudahan agar user  tidak harus mengakses hardware secara langsung dalam bahasa mesin, tetapi dalam bentuk layanan-layanan yang diberikan oleh sistem operasi.

Kategori Layanan Sistem Operasi
  • Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
Ø  Antarmuka
Ø  Eksekusi program
Ø  Operasi masukan/keluaran
Ø  Manipulasi Sistem berkas
Ø  Komunikasi
Ø  Deteksi error
  • Disamping pelayanan diatas, terdapat juga layanan-layanan lain yang bertujuan untuk mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu:
Ø  Alokasi sumber daya
Ø  Accounting
Ø  Proteksi

Antarmuka (Interface)
  • Sistem operasi menyediakan berbagai fasilitas yang membantu Programmer dalam membuat program seperti editor. Walaupun bukan bagian dari sistem operasi, tapi layanan ini di akses melalui sistem operasi.
  • Pengertian antarmuka (interface) adalah salah satu layanan yang disediakan sistem operasi sebagai sarana interaksi antara pengguna dengan sistem operasi.
  • Antarmuka merupakan komponen sistem operasi yang bersentuhan langsung dengan pengguna.
  • Terdapat dua jenis antar muka, yaitu :
Ø  Command Line Interface (CLI)
Ø  Graphical User Interface (GUI)

Command Line Interface (CLI)
  • CLI adalah tipe antarmuka dimana pengguna berinteraksi dengan system operasi melalui text-terminal.
  • Pengguna menjalankan perintah dan program di sistem operasi tersebut dengan cara mengetikan baris baris tertentu.
  • Meskipun konsepnya sama, tiap-tiap system operasi memiliki nama atau istilah yang berbeda untuk CLI-nya.
  • UNIX memberi nama CLI-nya sebagai bash, ash, ksh dan lain sebagainya.
  • Microsoft Disk Operating System (MS-DOS) memberi nama command.com atau Command Prompt. Sedangkan pada Windows Vista, Microsoft menamakannya PowerShell.
  • Pengguna Linux mengenal CLI pada Linux sebagai terminal, sedangkan pada Apple namanya adalah commandshell.

Graphical User Inteface (GUI)
  • GUI adalah tipe antarmuka yang digunakan oleh pengguna untuk berinteraksi dengan system operasi melalui gambar-gambar grafik, ikon, menu dan mengunakan perangkat penunjuk (pointing device) swpwrti mouse atau track ball.
  • Elemen-elemen utama dari GUI bisa diringkas dalam konsep WIMP (window, icon, menu, pointing device)
Perkembangan GUI
  • Sejarah mencatat bahwa Xerox PARC ( Palo Alto Research Center ) yang pertama kali meriset tentang GUI.
  • Pada tahun 1984, Apple merilis Macintosh yang menggunakan GUI hasil riset Xerox PARC.
  • Beberapa tahun kemudian, Microsoft merilis system operasi Windows-nya yang juga menggunakan GUI. Apple mengklaim bahwa Microsft mencuri ide dari Apple.
  • Seperti halnya CLI, tiap-tiap system operasi juga memiliki nama tersendiri untuk komponen GUI-nya.
  • Pada Apple Mac OS X, GUI-nya disebut Aqua.
  • Microsoft memberi nama GUI Windows XP sebagai Lunar dan GUI Windows Vista sebagai Aero.
  • Pada linux ada dua pengembang utama dekstop environment pada Linux, yang masing-masing menhasilkan produk KDE (K Dekstop Environment ) dan GNOME. KDE digunakan pada beberapa distro seperti SuSE dan Mandrake, sedangkan GNOME dipakai pada beberapa distro seperti Fedora Core dan Ubuntu.

System Call
  • Komputer digunaka untuk melakukan suatu proses yang dikehendaki oleh user. Oleh karena itu, harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk  system calls.
  • Sistem operasi melalui shell-nya akan menangkap perintah dari user yang kemudian  akan dikomunikasikan melalui system calls.
  • System calls merupakan sustu mekanisme yang digunakan oleh program aplikasi untuk memnta layanan dari sistem operasi.
  • Pada sistem berbasis UNIX dan POSIX,  system calls yang sering kita dengar antara lain :  open, read, write, close, wate, exec, fork, dan kill.
  • Pada saat ini, banyak sistem operasi yang memiliki ratusan system calls. Salah satunya Linux yang memiliki 319 system calls yang berbeda.  System calls itu sendiri umumnya ditulis dalam bahasa C dan C++.
  • Mengenai shell, shell itu sendiri secara umum adalah layer  yang berfungsi sebagai interface antara user dan inti dalam sistem operasi (kernel).
  • Melalui shell, user dapat memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini merupakan layer yang menrima interaksi dari user secara langsung.
  • Shell dalam sistem operasi secara umum dibagi menjadi 2, Command Line Interface (CLI) dan Graphical User Interface (GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layan yang disediakan oleh sistem operasi.
Jenis System Calls
  • Berikut ini adalah tipe system calls :
Ø  Manajemen Proses
Ø  Manajemen Berkas
Ø  Manajemen Piranti
Ø  System call Informasi/Pemeliharaan
Ø  Komunikasi

Manajemen Proses
  • System calls untuk manajemen proses diperlukan untuk mengatur proses-proses yang sedang berjalan
  • Kita dapat melihat penggunaan sytem calls untuk manajemen proses pada Sisten operasi UNIX. Contoh yang paling baik untuk melihat bagaimana melihat system calls bekerja untuk manajemen proses adalah Fork. Fork adalah satu-satunya cara untuk membuat sebuah proses baru pada sistem UNIX
  • Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti :
Ø  Pembuatan dan penghapusan proses pengguna dan sistem proses
Ø  Menunda atau melanjutkan proses
Ø  Menyediakan mekanisme untuk proses sinkronisasi
Ø  Menyediakan mekanisme untuk proses komunikasi
Ø  Menyediakan mekanisme untuk penanganan deadlock.

Manajemen Berkas
·         System calls yang berhubungan dengan berkas sangat diperlukan. Seperti kita ingin membuat atau menghapus sebuah berkas atau ketika ingin membuka atau menutup suatu berkas yang ada, membaca berkas tersebut dan menulis berkas itu.
·         System calls juga diperlukan ketika kita ingin mengetahui atribut dari suatu berkas atau ketika juga ingin merubah atribut tersebut. Yang termasuk atribut berkas adalah nama berkas, jenis berkas dan lai-lain.
·         Ada juga System calls yang menyediakan system lain yang berhubungan dengan direktori atau sistem berkas secara keseluruhan. Jadi bukan hanya berhubungan dengan satu spesisifik berkas.
·         Sistem operasi bertanggung jawab :
Ø  Pembuatan dan penghapusan berkas
Ø  Pembuatan dan penghapusan direktori
Ø  Membantu manipulasi berkas dan direktori
Ø  Memtakan berkas ke scondary storage
Ø  MemBack-up berkas ke media penyimpanan yang permanen (nonvolatile)

Manajemen Piranti
  • Program yang sedang dijalankan kadang kala memerlukan sumber daya. Jika banyak pengguna yang menggunakan sistem dan memerlukan tambahan sumber daya maka harus meminta piranti terlebih dahulu.
  • Lalu setelah selesai, penggunaanya harus dilepaskan kembali dan ketika sebuah piranti telah diminta dan dialokasikan maka piranti tersebut bisa dibaca, ditulis atau direposisi.

System Call
Informasi pemeliharaan
  • Beberapa System calls disediakan untuk membantu pertukaran informasi antara pengguna dan sistem operasi.
  • Contohnya adalah :
Ø  System calls untuk meminta dan mengatur waktu dan atanggal atau meminta informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih bisa digunakan dan lain-lain.
Ø  System calls untuk meminta informasi tentang proses yang disimpan oleh sistem.
Ø  System calls untuk merubah informasi tersebut.

Komunikasi
  • Dua model komunikasi :
Ø  Mesagge passing
Pertukaran informsi dilakukan melalui fasilitas komunikasi antar proses yang telah disediakan oleh sistem operasi. Dalam Message passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi. Untuk itu diperlukan System calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan koneksi tersebut mauoun dalam memtuskan koneksi tersebut ketika komunikasi sudah selesai dilakukan. Juga diperlukan System calls untuk membaca dan menulis pesan ( message) agar pertukaran informasi dapat dilakukan.
Ø  Shared memory
Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran informasi dengan membaca dan menulis data pada memori tersebut.

System Programs
·         Didalam sistem komputer, sistem program berguna untuk menyediakan kemudahan-kemudahan bagi pengembangan program serta eksekusi.
·         Sistem program yang sering kita gunakan contohnya adalah format dan login.

Kategori System Program
  • Sistem program dibagi dalam beberapa kategori yaitu:
Ø  Manajemen/manipulasi Berkas, membuat, menghapus, menyalin, mengganti nama, mencetak, memanipulasi berkas dan direktori.
Ø  Informasi Status. Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang tersedia, jumlah pengguna dan informasi yang sejenis.
Ø  Modifikasi Berkas. Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape.
Ø  Pendukung bahasa pemograman. Kadang kala kompilator, assembler, interpreter, dan bahasa pemograman diberikan kepada pengguna dengan bantua sistem operasi.
Ø  Loading dan Ekseskusi Program. Ketika program di assembly atau dikompilasi, program tersebut harus di load ke dalam memori untuk dieksekusi. Untuk itu sistem harus menyediakan absolut loader, relocatable loaders, linkage editors dan overlay loaders.
Ø  Komunikasi. Komunikasi menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda. Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim e-mail atau mentransfer berkas.

API ( Application Program Interface )
  • Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam System calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer.
  • Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil System calls sesuai dengan sistem operasinya.
  • Tidak tertutup kemungkinan nama dari System calls sama dengan nama di API.

Keuntungan Menggunakan API
  • Keuntungan memprogram menggunakan API adalah:
Ø  Portabilitas. Programmer  yang menggunakan API  dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter-install API tersebut. Sedangkan System calls berbeda antar sistem operasi, dengan catatan dalam implementasinya mungkin saja berbeda.
Ø  Lebih mudah dimengerti. API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti dari pada bahasa System calls. Hal ini sangat penting dalam editing dan pengembangan.

System Call Interface
  • System call interface ini berfungsi sebagai penghubung antara API dan System calls yang dimengeri oleh sistem operasi
  • System call interface ini akan menerjemahkan perintah dalam API dan kemudian akan memanggil System calls yang diperlukan.
  • Untuk membuka suatu file tersebut user harus