Anda di halaman 1dari 12

MAKALAH SISTEM OPERASI

Oleh :
Nama : Nurul Adha Alifia
NIM : 230209500016
Kelas : PTIK A

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR
Kata Pengantar

Puji syukur kami panjatkan ke hadirat Tuhan Yang Maha Esa, atas limpahan rahmat dan
karunia-Nya sehingga kami dapat menyelesaikan makalah ini dengan baik.
Makalah ini membahas tentang jenis-jenis struktur operasi dalam pengembangan
perangkat lunak, yang merupakan salah satu aspek penting dalam dunia teknologi informasi.
Struktur operasi menjadi dasar yang mendasari perancangan dan pengembangan sistem yang
efisien serta dapat dipelihara. Dalam makalah ini, kami mencoba untuk memberikan pemahaman
yang komprehensif mengenai enam jenis struktur operasi yang umum digunakan, yakni sistem
monolitik, sistem berlapis (layered), mesin virtual, model client-server, sistem berorientasi objek,
dan pendekatan modular.
Setiap jenis struktur tersebut memiliki kelebihan dan kekurangannya masing-masing
yang penting untuk dipahami dalam konteks pengembangan perangkat lunak. Diharapkan
makalah ini dapat memberikan wawasan yang berguna bagi pembaca, terutama para praktisi dan
mahasiswa di bidang teknologi informasi.
Kami mengucapkan terima kasih kepada semua pihak yang telah membantu dalam
penyelesaian makalah ini, serta berharap kritik dan saran yang membangun untuk perbaikan di
masa mendatang.
Akhir kata, semoga makalah ini dapat memberikan manfaat dan menjadi sumbangan
kecil dalam pengembangan ilmu pengetahuan. Terima kasih.

Makassar 27 February 2024

Penulis
Daftar Isi

Kata Pengantar ......................................................................................................................................... 2


Daftar Isi.................................................................................................................................................... 3
BAB I ......................................................................................................................................................... 4
PENDAHULUAN ..................................................................................................................................... 4
A. Pendahuluan .................................................................................................................................. 4
B. Rumusan Masalah ........................................................................................................................ 4
C. Tujuan dan Manfaat ..................................................................................................................... 4
BAB II ........................................................................................................................................................ 5
PEMBAHASAN ........................................................................................................................................ 5
A. Struktur Sistem Operasi ............................................................................................................... 5
BAB III .................................................................................................................................................... 11
PENUTUP ............................................................................................................................................... 11
A. Kesimpulan .................................................................................................................................. 11
Daftar Pustaka ........................................................................................................................................ 12
BAB I
PENDAHULUAN

A. Pendahuluan
Dalam era digital yang berkembang pesat seperti saat ini, perangkat lunak telah menjadi
tulang punggung dari berbagai sistem dan aplikasi yang digunakan dalam kehidupan
sehari-hari. Pengembangan perangkat lunak yang efektif dan efisien menjadi kunci
keberhasilan dalam memenuhi kebutuhan teknologi yang terus berkembang. Salah satu
faktor penting dalam pengembangan perangkat lunak adalah struktur operasi yang
digunakan.
Struktur operasi merupakan pondasi utama dalam perancangan dan pembangunan
perangkat lunak yang kompleks. Hal ini mempengaruhi bagaimana komponen-komponen
dari sebuah sistem berinteraksi, diatur, dan diimplementasikan. Dalam konteks ini,
pemilihan struktur operasi yang tepat menjadi langkah awal yang krusial dalam
memastikan keberhasilan proyek pengembangan perangkat lunak.
Dalam makalah ini, kami akan membahas beberapa jenis struktur operasi yang umum
digunakan dalam pengembangan perangkat lunak, meliputi sistem monolitik, sistem
berlapis (layered), mesin virtual, model client-server, sistem berorientasi objek, dan
pendekatan modular. Setiap jenis struktur memiliki karakteristik, kelebihan, dan
kekurangannya masing-masing yang perlu dipahami secara mendalam untuk memilih
struktur yang sesuai dengan kebutuhan proyek.
Melalui pemahaman yang mendalam terhadap jenis-jenis struktur operasi ini, diharapkan
pembaca dapat memperoleh wawasan yang lebih baik dalam merancang dan
mengembangkan perangkat lunak yang efisien, dapat dipelihara, dan sesuai dengan
tujuan bisnis atau pengguna. Dengan demikian, makalah ini diharapkan dapat
memberikan kontribusi positif dalam pemahaman tentang pengembangan perangkat
lunak di era digital saat ini.
B. Rumusan Masalah
1. Sebutkan jenis-jenis struktur system operasi?
2. Apa kelebihan dan kekurangan dari masing-masing struktur system operasi?
C. Tujuan dan Manfaat
1. Mengetahui berbagai jenis struktur system operasi.
2. Mengetahui apa kelebihan dan kekurangan dari masing-masing struktur system
operasi.
BAB II
PEMBAHASAN

A. Struktur Sistem Operasi


1. Sistem Monolitik
Sistem monolitik adalah salah satu jenis struktur operasi dalam pengembangan
perangkat lunak di mana seluruh aplikasi dikembangkan sebagai satu kesatuan yang
utuh. Artinya, semua komponen dari aplikasi, seperti antarmuka pengguna, logika
bisnis, dan penyimpanan data, terkandung dalam satu program tunggal atau kode
sumber yang besar.
➢ Kelebihan
• Pendekatan monolitik seringkali lebih mudah dimengerti oleh
pengembang karena semua komponen aplikasi terdapat dalam satu
tempat. Ini membuat proses pengembangan menjadi lebih langsung
dan sederhana.
• Karena semua komponen berjalan dalam satu proses atau aplikasi,
tidak ada overhead komunikasi antar komponen. Hal ini dapat
menghasilkan kinerja yang lebih baik karena tidak ada latensi yang
terjadi karena komunikasi antar komponen.
➢ Kekurangan
• Sistem monolitik cenderung memiliki keterbatasan dalam hal
skalabilitas. Menambahkan atau memperbarui fitur-fitur tertentu bisa
menjadi sulit karena seluruh aplikasi harus diperbarui secara
keseluruhan. Hal ini bisa menyulitkan pertumbuhan aplikasi seiring
waktu.
• Pemeliharaan sistem monolitik dapat menjadi sulit karena perubahan
pada satu bagian bisa memengaruhi seluruh sistem. Hal ini juga dapat
menyulitkan pengujian dan debugging karena kompleksitas sistem
yang tinggi.
• Karena seluruh aplikasi dikembangkan sebagai satu kesatuan, sistem
monolitik sering kali memiliki ketergantungan pada teknologi atau
platform tertentu. Ini membuat migrasi ke teknologi yang lebih baru
atau berbeda menjadi sulit dilakukan.
2. Sistem Berlapis (Layered)
Sistem berlapis merupakan struktur operasi dalam pengembangan perangkat lunak di
mana aplikasi dibagi menjadi lapisan-lapisan yang berbeda, dengan setiap lapisan
memiliki tanggung jawab tertentu. Umumnya, lapisan-lapisan ini mencakup
antarmuka pengguna, logika bisnis, dan akses data. Setiap lapisan berkomunikasi
dengan lapisan di atas atau di bawahnya melalui antarmuka yang ditentukan.
➢ Kelebihan
• Sistem berlapis memungkinkan pemisahan yang jelas antara tugas-
tugas yang berbeda. Lapisan antarmuka pengguna bertanggung jawab
atas interaksi dengan pengguna, lapisan logika bisnis mengatur proses
bisnis dan aturan, sementara lapisan akses data bertanggung jawab atas
penyimpanan dan pengambilan data dari penyimpanan persisten.
• Struktur berlapis memungkinkan untuk meningkatkan skalabilitas
aplikasi dengan lebih mudah. Anda dapat menambahkan atau
mengganti lapisan tertentu tanpa harus memengaruhi keseluruhan
sistem. Ini memungkinkan untuk meningkatkan kapasitas atau
fungsionalitas sistem secara terlokalisasi.
➢ Kekurangan
• Karena setiap lapisan harus berkomunikasi dengan lapisan di atas dan
di bawahnya melalui antarmuka yang ditentukan, terjadi overhead
komunikasi yang dapat mempengaruhi kinerja sistem secara
keseluruhan. Terutama jika ada banyak lapisan, overhead ini dapat
menjadi signifikan.
• Struktur berlapis bisa menjadi kompleks, terutama jika tidak dikelola
dengan baik. Memahami dan merancang interaksi antara lapisan-
lapisan ini dengan benar memerlukan pemahaman yang baik tentang
kebutuhan aplikasi dan desain yang tepat.
• Setiap lapisan sering kali bergantung pada fungsionalitas lapisan di
bawahnya. Jika ada perubahan pada satu lapisan, ini bisa
mempengaruhi lapisan-lapisan di atasnya. Ini dapat menyulitkan dalam
memelihara dan mengubah sistem, terutama dalam proyek yang besar
dan kompleks.
3. Mesin Virtual
Mesin virtual adalah struktur operasi di mana program dijalankan di atas lingkungan
yang disimulasikan, yang dapat berjalan di atas berbagai sistem operasi dan arsitektur
perangkat keras. Ini berarti bahwa aplikasi dapat ditulis sekali dan dijalankan di
berbagai platform tanpa perlu dimodifikasi ulang.
➢ Kelebihan
• Salah satu kelebihan utama mesin virtual adalah portabilitasnya.
Program yang dijalankan dalam mesin virtual dapat berjalan di
berbagai platform tanpa perlu menulis ulang atau memodifikasi kode
sumber. Hal ini memungkinkan pengembang untuk menciptakan
aplikasi yang dapat dijalankan di berbagai perangkat dan sistem
operasi dengan investasi yang minimal.
• Mesin virtual menyediakan lingkungan yang terisolasi di mana
aplikasi dapat berjalan. Ini berarti bahwa aplikasi tidak dipengaruhi
oleh perubahan yang terjadi di sistem operasi tuan rumah atau
lingkungan perangkat keras. Ini membuat pengembangan dan
pengujian lebih mudah dan lebih bersih.
➢ Kekurangan
• Mesin virtual memerlukan sumber daya tambahan untuk menjalankan
lingkungan simulasi. Ini dapat mengakibatkan overhead kinerja,
terutama dalam hal penggunaan memori dan CPU. Aplikasi yang
berjalan dalam mesin virtual biasanya memerlukan lebih banyak
sumber daya daripada jika mereka dijalankan secara langsung di
sistem operasi tuan rumah.
• Mesin virtual biasanya tidak memberikan akses langsung ke perangkat
keras. Sebagai hasilnya, aplikasi yang membutuhkan akses langsung
ke perangkat keras, seperti aplikasi yang membutuhkan performa
tinggi atau interaksi langsung dengan perangkat keras, mungkin tidak
cocok untuk dijalankan dalam mesin virtual.
• Konfigurasi mesin virtual, termasuk pengaturan sumber daya dan
jaringan, bisa menjadi kompleks. Ini memerlukan pemahaman yang
mendalam tentang konfigurasi mesin virtual dan lingkungan aplikasi
untuk memastikan performa dan keamanan yang optimal.
4. Model Client-Server
Dalam model client-server, klien mengirimkan permintaan ke server, dan server
merespons dengan memberikan layanan atau sumber daya yang diminta. Komunikasi
antara klien dan server umumnya menggunakan protokol jaringan tertentu, seperti
HTTP untuk komunikasi web.
➢ Kelebihan
• Model client-server memungkinkan untuk meningkatkan skalabilitas
dengan mudah. Anda dapat menambahkan lebih banyak klien atau
server sesuai dengan kebutuhan, dan mereka dapat berinteraksi secara
terpisah satu sama lain.
• Dalam model ini, server bertanggung jawab atas menyediakan layanan
atau sumber daya, sementara klien bertanggung jawab atas antarmuka
pengguna dan interaksi dengan pengguna. Ini memungkinkan untuk
pemisahan tugas yang jelas antara pengolahan data dan presentasi,
yang mempermudah dalam pengembangan dan pemeliharaan aplikasi.
➢ Kekurangan
• Kinerja aplikasi dalam model client-server sangat bergantung pada
kualitas dan keandalan jaringan. Koneksi jaringan yang lambat atau
tidak stabil dapat mengakibatkan kinerja aplikasi yang buruk atau
tidak dapat diakses sama sekali.
• Sinkronisasi antara klien dan server dapat menjadi kompleks, terutama
dalam kasus aplikasi yang memerlukan komunikasi real-time. Klien
dan server harus berkomunikasi secara efisien untuk memastikan
konsistensi data dan respons yang cepat.
• Model client-server membuat klien sangat bergantung pada
ketersediaan dan kinerja server. Jika server mengalami gangguan atau
kegagalan, klien mungkin tidak dapat mengakses layanan atau sumber
daya yang dibutuhkan.
5. Sistem Berorientasi Objek
Dalam sistem berorientasi objek, konsep nyata dunia nyata direpresentasikan sebagai
objek dalam program komputer. Objek dapat memiliki hubungan hierarkis, di mana
satu objek dapat menjadi bagian dari objek lain atau mengandung objek lain di
dalamnya. Selain itu, pewarisan (inheritance) memungkinkan objek untuk mewarisi
perilaku dan atribut dari objek lain, yang memfasilitasi pembuatan struktur yang
kompleks dan terorganisir.
➢ Kelebihan
• Salah satu kelebihan utama dari sistem berorientasi objek adalah
reusabilitas kode. Objek yang telah dibuat dapat digunakan kembali
dalam berbagai konteks atau proyek tanpa harus menulis ulang kode
yang sama. Hal ini meningkatkan efisiensi dalam pengembangan
perangkat lunak.
• Konsep OO memungkinkan pemisahan yang jelas antara struktur data
(atribut) dan perilaku (metode). Ini mempermudah dalam
pemeliharaan dan pengembangan aplikasi karena perubahan pada
salah satu aspek tidak akan secara langsung memengaruhi yang
lainnya.
➢ Kekurangan
• Konsep OO bisa sulit dipahami bagi pengembang baru. Desain yang
buruk atau hierarki kelas yang kompleks dapat menyebabkan kesulitan
dalam memahami dan memodifikasi kode.
• Penggunaan objek dapat menghasilkan overhead memori tambahan,
terutama jika objek besar atau jumlah objek yang besar digunakan.
Selain itu, penanganan objek oleh sistem juga dapat menghasilkan
overhead kinerja.
• Beberapa konsep dalam pemrograman berorientasi objek, seperti
polimorfisme dan pewarisan, tidak selalu mudah untuk diterapkan
dengan benar. Kesalahan dalam penggunaan konsep ini dapat
menghasilkan desain yang buruk dan sulit dipelihara.
6. Pendekatan Modular
Dalam pendekatan modular, setiap modul bertanggung jawab atas satu tugas tertentu
atau fungsi dalam aplikasi. Modul-modul ini secara terpisah dikembangkan dan diuji,
dan mereka berinteraksi melalui antarmuka yang ditentukan. Antarmuka ini
menentukan bagaimana modul berkomunikasi satu sama lain dan memastikan bahwa
perubahan dalam satu modul tidak memengaruhi modul lainnya.
➢ Kelebihan
• Pendekatan modular memungkinkan untuk memisahkan fungsionalitas
aplikasi ke dalam modul-modul yang independen. Hal ini
mempermudah pengembangan, pemeliharaan, dan pengujian karena
setiap modul hanya bertanggung jawab atas satu tugas atau fungsi
tertentu.
• Modul-modul yang telah dikembangkan dengan baik dapat digunakan
kembali dalam proyek-proyek berbeda. Ini meningkatkan efisiensi
dalam pengembangan perangkat lunak dan mengurangi kerja yang
perlu dilakukan.
➢ Kekurangan
• Koordinasi antara modul-modul dalam sistem modular bisa menjadi
kompleks, terutama jika ada banyak modul atau jika interaksi antar
modul tidak terdefinisi dengan baik. Hal ini memerlukan desain yang
cermat dan pemahaman yang mendalam tentang kebutuhan aplikasi.
• Perubahan pada satu modul bisa memengaruhi modul lainnya, yang
memerlukan manajemen konfigurasi yang hati-hati. Hal ini bisa
menjadi sulit terutama dalam sistem yang besar dan kompleks.
• Terkadang, pengembangan modul-modul dapat mengalami hambatan
jika ada ketergantungan antar modul yang kuat. Ini dapat menyulitkan
untuk mengembangkan dan menguji modul secara serentak, yang
dapat memperlambat pengembangan keseluruhan sistem.
BAB III
PENUTUP

A. Kesimpulan
Dalam pengembangan perangkat lunak, pemilihan struktur operasi menjadi
langkah krusial yang memengaruhi keseluruhan proses pengembangan dan kinerja
aplikasi. Dalam makalah ini, kami telah membahas beberapa jenis struktur operasi yang
umum digunakan, termasuk sistem monolitik, sistem berlapis, mesin virtual, model
client-server, sistem berorientasi objek, dan pendekatan modular. Setiap jenis struktur
memiliki kelebihan dan kekurangannya masing-masing, yang perlu dipertimbangkan
dengan cermat dalam merancang dan mengembangkan aplikasi.

Sistem monolitik menawarkan kesederhanaan dalam pengembangan namun


memiliki keterbatasan dalam skalabilitas dan pemeliharaan. Sistem berlapis
memungkinkan pemisahan tugas yang jelas namun dapat menghadapi overhead
komunikasi. Mesin virtual meningkatkan portabilitas aplikasi namun dapat menimbulkan
overhead kinerja. Model client-server memungkinkan skalabilitas dan pemisahan tugas
namun bergantung pada kualitas jaringan. Sistem berorientasi objek menawarkan
reusabilitas dan pemisahan fungsionalitas namun dapat menghasilkan kompleksitas dan
overhead memori. Pendekatan modular memungkinkan keterpisahan fungsionalitas dan
reusabilitas namun memerlukan koordinasi dan manajemen yang baik antar modul.
Dengan memahami karakteristik, kelebihan, dan kekurangan dari masing-masing
struktur operasi, pengembang dapat membuat keputusan yang tepat dalam merancang
arsitektur perangkat lunak yang sesuai dengan kebutuhan dan tujuan proyek. Terlebih
lagi, kombinasi berbagai jenis struktur operasi dalam proyek yang kompleks dapat
memaksimalkan kelebihan masing-masing dan meminimalkan kelemahannya.
Dengan demikian, penting bagi para pengembang untuk memiliki pemahaman
yang mendalam tentang berbagai jenis struktur operasi dan kemampuan untuk memilih
yang sesuai dengan konteks dan kebutuhan proyek. Dengan pendekatan yang tepat,
pengembangan perangkat lunak dapat menjadi lebih efisien, efektif, dan terukur sesuai
dengan standar industri dan kebutuhan pengguna.
Daftar Pustaka
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Pola Desain: Unsur-Unsur Perangkat
Lunak Berorientasi Objek yang Dapat Digunakan Kembali. Penerbit Andi.
Martin, R. C. (2002). Pengembangan Perangkat Lunak Agile, Prinsip, Pola, dan Praktek.
Penerbit Prentice Hall.
Fowler, M. (2003). Pola Arsitektur Aplikasi Perusahaan. Penerbit Addison-Wesley Professional.
Sommerville, I. (2015). Rekayasa Perangkat Lunak. Penerbit Andi.
Larman, C. (2004). Menggunakan UML dan Pola: Pengantar untuk Analisis dan Desain
Berorientasi Objek dan Pengembangan Iteratif. Penerbit Prentice Hall.
Bass, L., Clements, P., & Kazman, R. (2012). Arsitektur Perangkat Lunak dalam Praktek.
Penerbit Addison-Wesley.
Hunt, A., & Thomas, D. (1999). Programmer Pragmatis: Dari Pemula Menjadi Master. Penerbit
Addison-Wesley Professional.
McConnell, S. (2004). Kode Lengkap: Panduan Praktis Konstruksi Perangkat Lunak. Penerbit
Microsoft Press.
Leffingwell, D. (2010). Persyaratan Perangkat Lunak Agile: Praktek Persyaratan Lean untuk
Tim, Program, dan Enterprise. Penerbit Addison-Wesley.
Senn, J. A. (2005). Pola Analisis: Model Objek yang Dapat Digunakan Kembali. Penerbit
Addison-Wesley Professional.

Anda mungkin juga menyukai