Kamis, 09 Maret 2023

ANALISIS DAN DESIGN PERANGKAT LUNAK

 Structured Analysis and Design (SSAD)

SSAD adalah salah satu metode dalam mengembangkan sistem maupun software menggunakan tools-tools yang mampu membuat sistem terstruktur dengan jelas. Metode ini beriorientasi pada data dan proses. Analisis ini memiliki beberapa karakteristik penting yaitu :
1. Berdasarkan Modul
Semua proses dibagi menjadi beberapa modul yang dapat berdiri sendiri sehingga dapat digunakan kembali. Setiap modul mampu memproses data dengan detail dan memiliki keterikatan. 
2. Pendekatan Top-Down
Perancangan sistem didefinisikan secara umum dulu baru turun ke level yang lebih spesifik. Biasanya dilakukan menggunakan DFD (Data Flow Diagram)
3. Iterasi
Perancangan sistem dilakukan secara iterasi atau berulang ulang kali sehingga kesalahan sebelumnya dapat diperbaiki. Contohnya pada metode spiral
4. Paralel
Karena modul modul tadi dapat dipisah sehingga membuat proses nya juga dapat dilakukan terpisah. Sehingga dapat mempercepat proses pembuatan sistem ini dan menghemat pengeluaran sumber daya. 

Ada beberapa tools yang biasa digunakan untuk mendukung metode SSAD ini yaitu :
a) DFD (Data Flow Diagram)
b) Kamus Data Entity
c) ERD (Entity Relationship Diagram)
d) STD (State Transition Diagram)

Kelebihan SSAD
1. Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
2. Merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer
3. Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD bagus untuk digunakan
4. Merupakan metode yang diketahui secara umum pada berbagai industri
5. Sudah diterapkan begitu lama sehinga metode ini sudah matang dan layak untuk digunakan
6. Memungkinkan untuk melakukan validasi antara berbagai kebutuhan
7. Relative simple dan mudah dimengerti

Kekurangan SSAD
1. Berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional
2. Sedikit sekali manajemen langsung terkait dengan SSAD
3. Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses
4. Interaksi antara analisis atau pengguna tidak komprehensif, karena system telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan
5. Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sulit bagi pengguna untik melakukan evaluasi.
6. Sulit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan memulai membuat system
7. Tidak selalu memenuhi kebutuhan pengguna
8. Tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek.

Objek Oriented Analysis and Design (OOAD)

OOAD merupakan suatu metode menganalisis requirements atau kebutuhan melalui perspektif kelas-kelas maupun objek pada dunia nyata. Setiap objek ini adalah kombinasi dari struktur data dan perilaku setiap entitas. Berorientasi pada objek dan konsep. Dalam pendekatan ini, ada 4 pilar yg harus dipahami yaitu :
1. Abstraction (Abstraksi)
Adalah kemampuan mengubah sebuah bentuk menjadi bentuk yang lain (lebih sederhana). Biasanya digunakan untuk menyederhanakan suatu sistem dalam bentuk DFD (Data Flow Diagram). 
2. Encapsulation (Pembungkusan)
Adalah mekanisme membungkus data/informasi dan menyembunyikan informasi mana yang seharusnya disembunyikan sehingga dapat menjaga kebutuhan data dengan menerapkan pembatasan akses.Enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga keamanan informasi. Contohnya saat memasak nasi menggunakan rice cooker. Kita hanya perlu menekan tombol dan beras pun berubah menjadi nasi dalam waktu tertentu. Kita tidak tahu proses apa yang dibungkus oleh teknologi ini sehingga beras dapat berubah menjadi nasi hanya dengan bantuan listrik. 
3. Polymorphism (Polimorfisme)
Adalah sebuah prinsip kelas yang dapat memiliki banyak bentuk atau method yang berbeda-beda meskipun namanya sama. Maksud dari bentuk adalah isinya berbeda, parameternya berbeda, dan tipe datanya berbeda. Contohnya ketika kita bertransaksi di Indomaret, kita dapat membayar menggunakan banyak macam cara, bisa dengan tunai, debit, qris, dan lain-lain. Jadi proses pembayaran tersebut dapat dilakukan dengan banyak cara atau bentuk.
4. Intheritance (Turunan)
Adalah suatu kemampuan membentuk kelas baru yang memiliki hubungan turunan dan mirip dengan fungsi yang sudah ada sebelumnya. Dengan kata lain, inheritance menurunkan atau mewariskan metode yang dimilikinya kepada kelas lain. Kelas yang akan diturunkan atau diwariskan bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan kelas yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atau heir class. Pada kelas yang memiliki kelas turunan disebut dengan parent class atau base class, sedangkan kelas turunan itu sendiri kerap disebut dengan subclass atau child class yang bisa menurunkan atau mewariskan apa pun dari parent class. Contohnya objek mobil. Ada beberapa jenis mobil tergantung kegunaannya. Misalnya mobil bak terbuka seperti truk dan mobil bak tertutup seperti sedan. Keudanya sama sama berorientasi pada objek parent class yaitu Mobil, dan keduanya termasuk ke dalam child class. 

Beriku ini beberapa tools yang digunakan dalam metode beriorentasi objek :
a) RUP (Rational Unified Process) (Rational Software - IBM 2003)
b) Fusion (Coleman 1994)
c) STS Development Method 3 (ADM 3) (Firesmith 1993)
d) OOA (Object-Oriented System Analysis) (Shalaer & Mellor 1988)
e) OMT (Object Modelling Technique) (Rumbaugh et al. 1991), dll

Kelebihan OOAD (Object Oriented Analisys and Design)
1. Lebih mudah digunakan dalam pembangunan system.
2. Waktu pengembangan, level organisasi, ketangguhan dan penggunaan kembali (re-use) kode program lebih tinggi
3. Tidak ada pemisahan antara fase desain dan analisi, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan system.
4. Analis dan programmer tidak dibatasi dengan batasan implementasi system.
5. Relasi obyek dengan entitas (thing) umumnya dapat di-mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam system. Hal ini memudahkan dalam memahami desain.
6. Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebenaran software yang membantu untuk mengurangi resiko pada pembangunan system yang kompleks.
7. Encapsulasi data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
8. OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
9. Dekomposisi obyek, memungkinkan seorang analis untuk memecah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang di-manage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. System yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

Kekurangan OOAD
1. Pada awal desain OOAD, system mungkin akan sangat simple.
2. Lebih focus pada coding dibandingkan dengan SSAD.
3. Tidak menekankan pada kinerja team.
4. Tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan system.
5. Seringkali pemrograman berorientasi obyek digunakan untuk melakukan analisis terhadap fungsional site, sementara metode OOAD tidak berbasis pada fungsional system.
6. OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah team developer butuh waktu yang lebih lama untuk berpindah ke OOAD karena mereka sudah menggunakan SSAD dalam waktu yang lama.
7. Metodologi pengembangan system denga OOAD menggunakan konsep re-use. Re-use merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap re-use, akan sangat sulit untuk menerapkan konsep ini pada skala besar.

 Kesimpulan

SSAD adalah suatu metode analisis dan desain pada software yang berdasarkan data dan dilakukan secara terstruktur dari mulai yang kompleks hingga ke proses yang paling kecil.
OOAD adalah metode analisis dan desain yang berdasarkan pada objek objek dan kelas yang ada pada sistem software tersebut dan dilakukan berdasarkan pada objek objek tersebut. 

Daftar Pustaka

Iberto, U. R. (2017, April 26). Analisis dan Desain Terstruktur (SSAD & OOAD). Retrieved from kampungmelayuuntan.blogspot.com: https://kampongmelayuuntan.blogspot.com/2017/04/analisis-dan-desain-terstruktur.html?m=1

Muhamad, F. (2020, October 20). Structured Analysis & Design (SAD) dan Object Oriented Analysis & Design (OOAD). Retrieved from farihinmuhamad.blogspot.com: https://farihinmuhamad.blogspot.com/2020/10/structured-analysis-design-sad-dan.html?m=1

Muhardian, A. (2019, December 27). Belajar Java OOP : Memahami Prinsip Polimorfisme dalam OOP. Retrieved from petanikode.com: https://www.petanikode.com/java-oop-polimorfisme/

Tekno, H. T. (2022, February 18). Encapsulation : Pengertian, Manfaat, dan Contohnya. Retrieved from kumparan.com: https://kumparan.com/how-to-tekno/encapsulation-pengertian-manfaat-dan-contohnya-1xWpIhA8Kc8/3

Tekno, H. T. (2022, March 1). Pengertian Inheritance dalam Bahasa Pemrograman. Retrieved from kumparan.com: https://kumparan.com/how-to-tekno/pengertian-inheritance-dalam-bahasa-pemrograman-1xbCKrvQzbg/full

 

Read More

Sabtu, 04 Maret 2023

REKAYASA KEBUTUHAN

Pengertian Software Requirement

Software Requirement adalah kebutuhan yang dilakukan agar perangkat lunak yang dibuat dapat memenuhi kriteria tertentu. Kita perlu menetapkan layanan yang dibutuhkan konsumen terhadap sistem dan batasan operasi serta pengembangan. Sistem yang baik adalah sistem yang selalu menyesuaikan perubahan lingkungan yang terjadi disekitarnya atau sistem tersebut harus dinamis menuju keadaan yang lebih baik. Jadi, Software Requirement ini adalah suatu syarat atau kriteria yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang diinginkan pemakai dengan mengatur apa yang sistem akan lakukan dan memberikan batasan batasan pada operasi serta implementasinya. 

Jenis Software Requirement Secara Umum

1. User Requirement (Kebutuhan Pengguna)
Bersifat general dan berhubungan dengan apa saja yang dibutuhkan oleh konsumen. Kebutuhan ini biasanya menggunakan bahasa sehari hari saja agar mudah dimengerti. Harus menjelaskan juga kebutuhan Fungsional dan Non Fungsional

2. System Requirement (Kebutuhan Sistem)
Kebutuhan Sistem adalah pernyataan tentang fungsi, layanan, dan kendala operasional sistem perangkat lunak. Dokumen kebutuhan ini harus mendefinisikan secara tepat apa yang akan diimplementasikan yang mungkin saja bagian dari kontrak kerjasama antara pembeli sistem dengan pengembang perangkat lunak. Siapa yang akan membacanya? ada Pengguna sistem, Insinyur Client, Arsitek sistem, dan Pengembang Software.

Analisa Kebutuhan

Analisa kebutuhan adalah sebuah proses untuk mendapatkan informasi, model, atau spesifikasi tentang perangkat lunak yang diinginkan oleh pengguna yang terlibat dalam perencanaan tersebut. Seperti sebagai jembatan antara level rekayasa kebutuhan dengan perancangan si perangkat lunak.  Bertujuan untuk menemukan kesalahan kesalahan yang pernah ada agar perangkat lunak dapat berkembang menjadi lebih baik dan sesuai keinginan pengguna. 

Ada 3 Jenis Kebutuhan Software Secara Kategoris

1. Kebutuhan Fungsional (Functional Requirement)
Kebutuhan yang berisi proses proses yang nantinya harus disediakan oleh sistem, termasuk bagaimana sistem harus bereaksi pada input tertentu dan bereaksi pada situasi tertentu. Harus dapat menggambarkan layanan layanan yang bisa diberikan sistem kepada pengguna.
Contohnya :
a) Sistem dapat melakukan input pendataan siswa yang meminjam/mengembalikan buku
b) Sistem dapat melakukan transaksi peminjaman/pengembalian buku
c) Sistem dapat menampilkan laporan bulanan terkait transaksi peminjaman maupun pengembalian buku tadi

2. Kebutuhan Non-Fungsional (Non-Functional Requirement)
Kebutuhan yang berpusat pada properti perilaku yang dimilki oleh sistem. Termasuk juga batasan layanan atau fungsi yang ditawarkan seperti batasan waktu, batasan pengembangan proses, standarisasi, dll. 
Contohnya :
a) Proses dari pengguna membuka sebuah artikel untuk dibaca sampai sistem menampilkan artikel tersebut berlangsung kurang dari 10 detik
b) Sistem harus memastikan bahwa data yang digunakan dalam sistem harus terlindungi dan terjamin keamanannya
c) Sistem dapat dijalankan beberapa software browser seperti chrome, mozilla, edge, opera mini, dll 

3. Kebutuhan Antarmuka (Interface Requirement)
Kebutuhan antarmuka adalah kebutuhan yang menghubungkan perangkat lunak dengan elemen perangkat keras, atau basis data. Contohnya :
a) Perangkat untuk memasukkan data berupa keyboard, mouse, atau scanner
b) Akses ke basisdata menggunakan ODBC (Open Database Connectivity)

4. Kebutuhan Unjuk Kerja (Performance Requirement)
Kebutuhan ini merupakan kebutuhan yang menetapkan karakteristik unjuk kerja yang harus dimiliki oleh perangkat lunak, misalnya kecepatan, ketepatan, serta frekuensi. Contoh kebutuhan ini yaitu :
a) Perangkat lunak harus bisa mengolah data sampai 1 juta record untuk tiap transaksi.
b) Perangkat lunak harus dapat digunakan oleh multiuser sesuai dengan otoritas yang diberikan pada user.
c) Waktu tanggap penyajian informasi maksimal selama satu menit

Kesimpulan

Software Requirement ini adalah suatu syarat atau kriteria yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang diinginkan pemakai dengan mengatur apa yang sistem akan lakukan dan memberikan batasan batasan pada operasi serta implementasinya. Sebelum menetapkan apa yang dibutuhkan dalam suatu perangkat lunak, kita harus melakukan suatu analisa yang dinamakan analisa kebutuhan. Analisa kebutuhan adalah suatu proses kritis rekayasa kebutuhan perangkat lunak untuk memahami ranah permasalahan dari sistem yang berjalan dan ranah solusi dari sistem yang akan dibuat. Tujuannya adalah untuk memahami masalah yang nanti akan dikembangkan perangkat lunaknya secara menyeluruh(komprehensif). 
Ada beberapa jenis kebutuhan perangkat lunak yaitu kebutuhan pengguna, kebutuhan sistem, kebutuhan fungsional serta non fungsional, lalu ada juga kebutuhan antarmuka dan kebutuhan unjuk kerja atau performance. 

Daftar Pustaka

Juman, K. K. (2020, September). SOFTWARE REQUIREMENTS. Retrieved from lms-paralel.esaunggul.ac.id: https://lms-paralel.esaunggul.ac.id/pluginfile.php?file=%2F268026%2Fmod_resource%2Fcontent%2F1%2FPERTEMUAN%2005-5165-CC210-10-2018-RPL-KUNDANG.pdf

AlFaruq, M. U. (2013, June 18). ANALISIS KEBUTUHAN. Retrieved from 0408mohumaralfaruq.wordpress.com: https://0408mohumaralfaruq.wordpress.com/2013/06/18/analisis-kebutuhan/

MateriDosen. (2017, March). Perbedaan Kebutuhan Fungsional dan Non Fungsional, Lengkap Contoh dan Penjelasan. Retrieved from www.materidosen.com: https://www.materidosen.com/2017/03/perbedaan-kebutuhan-fungsional-dan-non.html?m=1

Rahmina, S. (2014, April 18). Requirement System (Perancangan System Part I). Retrieved from lea.si.fti.unand.ac.id: http://lea.si.fti.unand.ac.id/2014/04/requirement-system-perancangan-system-part-i/ 

Materi PPT bu Anggi Perwitasari, S.T, M.T
Read More

Jumat, 03 Maret 2023

SIKLUS PENGEMBANGAN PERANGKAT LUNAK ATAU Software Development Life Cycle (SDLC)

Proses Pengembangan Perangkat Lunak

Proses pengembangan perangkat lunak (software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Pengembangan perangkat lunak juga didefinisikan sebagai suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses yang digunakan. Proses pengembangan perangkat lunak dilaksanakan setelah proses akuisisi dan pasokan. Dalam pelaksanaannya, proses pengembangan ini akan melibatkan:
1. Orang (people) 
Individu, kelompok, atau bagian organisasi yang menjadi pelaksana pekerjaan, seperti analis sistem, pemrogram, penguji perangkat lunak, dan pihak-pihak lainnya termasuk pemakai dan pelanggan.
2. Proyek (project)
Pekerjaan pengembangan perangkat lunaknya sendiri, yang dikelola sesuai prinsip-prinsip manajemen proyek. 
3. Produk (product)
Kode sumber (source code), executable programs, model-model, dan dokumen-dokumen yang dihasilkan sebagai produk selama pelaksanaan pengembangan.
4. Proses (process)
Kumpulan aktivitas yang digunakan untuk menghasilkan perangkat lunak. Setiap aktivitas dilaksanakan dengan menggunakan pendekatan atau metode teknis tertentu.
5. Alat bantu
Kumpulan perangkat bantu atau kakas otomatis dan semi-otomatis yang akan digunakan untuk mendukung aktivitas-aktivitas dari proses..

Software Development Life Cycle (SDLC)

SDLC adalah proses pengubahan dan pembuatan sistem, model, serta metodologi yang digunakan untuk mengembangkan software. Singkatnya, dalam dunia rekayasa software, ia merupakan langkah-langkah yang bisa diterapkan para engineer dan developer untuk merancang dan mengelola software.
Untuk apa SDLC ini? Tentunya untuk menghasilkan output sistem berkualitas tinggi yang sesuai dengan ekspektasi para pengguna dan stakeholder.
SDLC juga memiliki beberapa tahap kerja,  termasuk planning, design, testing, building, dan deployment. Bagaimana cara kerja dalam software development life cycle? Berikut adalah pemaparannya.
1. Identifikasi masalah
Analisis kebutuhan dan masalah adalah syarat paling dasar dan juga utama dalam SDLC.
Dalam tahapan ini, engineer atau developer menerima semua input yang masuk termasuk dari customer, salesperson, industri, dan juga programmer.
Setelah input masuk, engineer akan mencoba mempelajari kekurangan dan kelebihan dari sistem. Tujuan utama dari tahapan ini adalah peningkatan dari sistem yang sudah ada.
2. Perencanaan
Dalam tahap ini, tim engineer akan merencanakan berbagai persyaratan dalam pembuatan software baru atau software yang sudah ada. Hal ini juga termasuk dari aspek biaya dan juga bahan-bahan yang dibutuhkan.
Tidak hanya itu, perencanaan ini termasuk pula rincian dari risiko atau skenario terburuk dari software yang akan di-SDLC-kan.
3. Rancangan
Tahap kerja selanjutnya yang perlu diterapkan dalam sistem SDLC adalah fase rancangan.
Tahap kerja SDLC ini dimulai dari mengubah spesifikasi sebuah software ke dalam design plan yang disebut dengan Desain Dokumen Spesifikasi (DDS).
Semua tim yang bersangkutan termasuk dengan klien akan membantu mereview dari rancangan ini dan menawarkan feedback.
Sangat penting untuk mengumpulkan semua feedback yang diberikan dalam dokumen ini. Jika ada kegagalan dalam tahap ini, akan berakibat biaya yang melonjak dan menjadi over.
Bahkan, kemungkinan terburuknya adalah dapat membuat proyek jadi gagal dan bangkrut.
4. Membangun atau mengembangkan produk
Dalam tahap SDLC ini, tugas engineer dan tim adalah untuk membangun sebuah produk dari barisan atau bahasa pemrograman.
Jika tahap sebelumnya sudah dikerjakan dengan sangat detail, mungkin sebenarnya tahap ini dapat dikatakan tahap paling sulit dan membingungkan.
5. Pengujian
Dalam tahap pengujian, pertanyaan-pertanyaan seperti “sudahkah kita mendapat apa yang kita mau?” akan terus berulang.
Dalam pengujian, engineer dan tim harus memastikan bahwa produk yang dibuat tidak memiliki cacat dan sesuai dengan permintaan klien.
6. Memasarkan Produk
Jika pengujian sudah selesai, proses kerja SDLC berikutnya yang bisa segera diluncurkan adalah pemasaran produk
Fase ini bukan tidak menunjukkan bahwa setiap tahap SDLC sudah selesai. Berbagai feedback yang disampaikan oleh user juga harus didengarkan lagi. Bila perlu, akan ada penyesuaian lagi terhadap produk.
7. Melakukan pemeliharaan (maintenance)
Tahap kerja terakhir yang perlu dilakukan oleh semua perusahaan dalam sistem SDLC adalah maintenance.
Dengan keadaaan dan kondisi teknologi yang terus berubah, tahapan terakhir dari SDLC mengharuskan engineer dan tim tetap memelihara produk yang sudah selesai.
Hal ini perlu dilakukan untuk mengurangi error dan penurunan kualitas pada produk.



Model Pengembangan SDLC

Model pengembangan ini sangat penting untuk membantu proses pengembangan perangkat lunak. Terdapat beberapa model pengembangan SDLC yang diikuti oleh berbagai organisasi, yaitu:

Waterfall Model
Metode pengembangan sistem metode SDLC(Sistem Development Life Cycle) atau sering disebut sebagai pendekatan air terjun (waterfall).Metode waterfall pertama kali diperkenalkan oleh Windows W. Royce pada tahun 1970. Waterfall merupakan model klasik yang sederhana dengan aliran sistem yang linier Output dari setiap tahap merupakan input bagi tahap berikutnya (Kristanto, 2004). Model ini melibatkan penyelesaian satu tahap secara lengkap sebelum melangkah ke tahap berikutnya. Ketika satu tahap selesai langsung dilakukan evaluasi untuk memastikan proyek berjalan sesuai rencana dan layak diteruskan ke tahap berikutnya. Waterfall Model, disebut juga model klasik, memiliki beberapa tahap utama, yaitu analisis dan rekayasa sistem, perancangan, penulisan program, pengujian, dan pemeliharaan.

Kelebihan Model Sekuensial Linear / Waterfall Development Model :
1) Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
2) Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
3) Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
4) Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.

Kekurangan Model Sekuensial Linear / Waterfall Development Model :
1) Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
2) Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
3) Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
4) Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
5) Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model. Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.

Kelebihan Model Prototype :
1) Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
2) Penentuan kebutuhan lebih mudah diwujudkan.
3)Mempersingkat waktu pengembangan produk perangkat lunak.
4) Adanya komunikasi yang baik antara pengembang dan pelanggan.
5) Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
6) Lebih menghemat waktu dalam pengembangan sistem.
7) Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.

Kekurangan Model Prototype :
1) Proses analisis dan perancangan terlalu singkat.
2) Biasanya kurang fleksibel dalam mengahadapi perubahan.
3) Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
4) Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.

Kelebihan Model RAD :
1) Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
2) Cocok untuk proyek yang memerlukan waktu yang singkat.
3) Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.

Kekurangan Model RAD :
1) Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
2) Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
3) RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
4) Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.( Jdi dak biso di pake utk TA)
5) Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

Model Evolutionary Development (Evolutionary Software Process Models)
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai. Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.

Model Spiral ( Model Boehm)
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.

Model Agile
Model Agile merupakan model pengembangan jangka pendek yang memerlukan adaptasi cepat dan pengembangan terhadap perubahan dalam bentuk apapun. Dalam agile terdapat beberapa poin penting diantaranya sebagai berikut:
1) Interaksi antar personal lebih penting daripada proses dan alat.
2) Software yang berfungsi lebih penting daripada dokumentasi yang lengkap
3) Kolaborasi dengan klien lebih penting daripada negoisasi kontrak.
4) Sikap tanggap lebih penting daripada mengikuti rencana/plan.

Kelebihan Model Agile :
1) Functional dapat dibuat dengan cepat dan dilakukan testing
2) Perubahan dengan cepat ditangani

Kelemahan Model Agile ;
1) Analisis, desain, dan pengembangan sulit diprediksi
2) Dapat memunculkan permasalahan dari arsitektur maupun desain.

Kesimpulan

Proses pengembangan perangkat lunak adalah suatu proses dimana kebutuhan pemakai direalisasikan menjadi suatu produk perangkat lunak melalui serangkaian aktivitas tertentu sesuai model proses yang digunakan. Model proses tersebut biasanya dikenal dengan SDLC atau Software Developmment Life Cycle. Metode ini digunakan untuk memaksimalkan proses pengembangan suatu perangkat lunak dari mulai planning, design, testing, building hingga deployment. Model SDLC yang terkenal meliputi waterfall model, spiral model, agile model, dan masih banyak lagi

Daftar Pustaka

Jessica, C. (2021, Desember 17). Software Development Life Cycle(SDLC) : Arti, Cara Kerja, Penerapan, dan Manfaatnya. Retrieved from glints.com: https://glints.com/id/lowongan/sdlc-software-development-life-cycle/#.ZAH6vRgxXVU

Pengembangan Perangkat Lunak. (n.d.). Retrieved from elearningunla.ac.id.

University, B. (2020, May 19). Memahami System Development Life Cycle. Retrieved from accounting.binus.ac.id: https://accounting.binus.ac.id/2020/05/19/memahami-system-development-life-cycle/

 

Read More

Sabtu, 18 Februari 2023

PEMBAGIAN POT MTO CHAMPIONSHIP S25 - FREE FIRE

 


POT 1 (20:00 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 1


POT 2 (20:00 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 2


POT 3 (20:10 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 3



POT 4 (20:10 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 4



POT 5 (20:20 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 5



POT 6 (20:20 WIB)

>>KLIK TULISAN DI BAWAH INI UNTUK MASUK GRUP WA<<

GRUP WA POT 6









Read More

Rabu, 15 Februari 2023

Konsep Rekayasa Perangkat Lunak


Pengertian Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak (RPL) adalah salah satu bidang profesi dan juga mata pelajaran yang mempelajari tentang pengembangan perangkat perangkat lunak termasuk dalam hal pembuatannya, pemeliharaan hingga manajemen organisasi dan kualitasnya. Dilakukan secara sistematis mulai dari analisis, perancangan, penilaian, implementasi, pengujian, pemeliharaan, dan rekayasa ulang terhadap perangkat lunak tersebut.


Konsep Rekayasa Perangkat Lunak

Dalam mengembangkan suatu perangkat lunak, tidak mungkin bisa dikerjakan oleh satu orang saja, diperlukan kerjasama tim dengan teknik rekayasa masing-masing agar dapat berjalan sesuai rencana. Teknik teknik rekayasa yang diterapkan pada pengembangan Perangkat Lunak secara garis besar meliputi : Spesifikasi, pengembangan, validasi, dan evolusi.


Tujuan Rekayasa Perangkat Lunak

Mempelajari ilmu RPL ini sangatlah penting untuk kita membangun suatu sistem yang lebih kompleks. Berikut tujuan dari penerapan Rekayasa Perangkat Lunak.

1. Mengembangkan Perangkat Lunak

Mengembangkan perangkat lunak yang bisa berfungsi dan berguna bagi penggunanya menjadi tujuan utama dari seseorang mempelajari RPL, tentunya perangkat lunak harus memiliki fungsi dan kegunaan yang spesifik agar bisa digunakan oleh penggunanya.

2. Memperbarui Fungsi

Fungsi yang ada pada perangkat lunak terkadang membutuhkan pembaruan, dikarenakan fungsi yang sudah ada sebelumnya mengalami pengurangan sehingga berkurang jugalah fungsi nya bekerja. Dengan mempelajari perangkat lunak secara mendalam, perangkat lunak yang sudah ada bisa menjadi sebuah sistem yang lebih baik kedepannya dan lebih berguna bagi pengguna.

3. Menciptakan User Friendly

Perangkat lunak yang user friendly setidaknya memiliki tampilan yang menarik, fungsional serta mudah untuk digunakan, pemahaman lebih tentu dimiliki oleh orang yang mempelajari rekayasa perangkat lunak. Sehingga ia bisa menggunakan ilmunya untuk memperbaiki, mengembang, dan menciptakan perangkat lunak yang user friendly tersebut.

4. Meng-integrasi Peralatan Mekanikal

Beberapa peralatan mekanikal yang ada biasanya memerlukan integrasi dengan perangkat lunak, agar sistemnya dapat bekerja dengan lebih optimal. Sebuah peralatan yang membutuhkan integrasi dengan perangkat lunak bisa menjadi sebuah masalah, namun mereka yang mempelajarinya tentu bisa menyelesaikan masalah tersebut. Dengan begitu, kegiatan operasionalnya mendukung untuk penggunaan alat tersebut.

5. Melakukan Perawatan

Mempelajari RPL tidak membuat Anda terpaku dengan pembuatan dan pengembangan sistem perangkat lunak yang ada, tetapi juga pada perawatan atau maintenance perangkat lunak yang ada. Perawatan dibutuhkan jika perangkat lunak tersebut mengalami kendala atau gangguan, agar sistem tetap bagus maka diperlukannya perawatan berkala.


Cakupan Rekayasa Perangkat Lunak (RPL)

1. Proses

Semua aspek teknis yang diperlukan untuk membangun perangkat lunak dari tahap paling awal (spesifikasi) sampai tahap akhir (evolusi)

2. Produk

Hasil proses yang telah diterapkan tadi akan mmenghasilkan suatu produk yang siap digunakan oleh pengguna

3. Manajemen

Aspek manajemen ini sangatlah penting untuk mengelola suatu perangkat lunak yang telah kita buat sebelumnya. Bahkan dari awal pembuatan juga kita harus bisa memanajemen semuanya termasuk biaya, waktu, serta risiko yang mungkin bisa terjadi.


Proses Perangkat Lunak

1. Spesifikasi

Spesifikasi menggambarkan kebutuhan atau persyaratan (requirement) apa saja yang harus dipenuhi oleh sistem perangkat lunak dan menentukan batasan pada operasi serta implementasinya. Ada dua jenis kebutuhan sistem, yaitu fungsional dan non fungsional. Kebutuhan fungsional menetapkan layanan sistem yang harus disediakan. Sedangkan kebutuhan non fungsional berkaitan dengan ketentuan yang harus dipenuhi semua layanan pada sistem, menyangkut kinerja, kehematan, keamanan, dan mutu informasi.

2. Pengembangan

Ada 6 Tahapan Proses dalam mengembangkan suatu Perangkat Lunak

a. Perencanaan

Tanpa rencana yang sempurna, pengembangan perangkat lunak tidak ada artinya. menghitung            kekuatan dan kelemahan proyek, kemudian perencanaan memulai proyek dengan sempurna untuk    kemajuan perangkat lunak secara positif.

b. Analisis

Langkah ini adalah tentang menganalisis kinerja perangkat lunak pada berbagai tahap dan membuat catatan tentang persyaratan tambahan. Analisis sangat penting tentunya untuk melangkah lebih jauh ke langkah berikutnya.

c. Desain

Setelah analisis selesai, dilakukanlah langkah perancangan mengambil alih, yang pada dasarnya membangun arsitektur proyek. Langkah ini membantu menghilangkan kemungkinan kegagalan dengan menetapkan standar dan mencoba untuk mempertahankannya.

d. Pengembangan & Implementasi

Tugas sebenarnya dari pengembangan perangkat lunak yaitu dimulai di sini dengan perekaman data yang terjadi di latar belakang. Setelah perangkat lunak dikembangkan, tahap penerapan datang di mana produk melewati studi percontohan untuk melihat apakah produk tersebut berfungsi dengan benar.

e. Pengujian

Tahap pengujian menilai perangkat lunak jika terjadi kesalahan dan terdapatnya bug pada perangkat lunak.

f. Pemeliharaan

Setelah perangkat lunak melewati semua tahapan tanpa masalah apa pun, baru yang harus dilakukan adalah menjalani proses pemeliharaan untuk mempertahankan dan meningkatkan perangkat luna dari waktu ke waktu untuk beradaptasi dengan perubahan.

3. Validasi

Validasi atau disebut juga dengan verifikasi dan validasi V V, ditujukan untuk menunjukkan bahwa perangkat lunak sesuai dengan spesifikasinya, validasi melibatkan proses pemeriksaan pada setiap tahap proses perangkat lunak dari definisi persyaratan sampai pengembangan program.

4. Evolusi

Fleksibilitas sistem perangkat lunak merupakan satu di antara alasan utama makin banyaknya perangkat lunak yang digunakan pada sistem besar dan kompleks. Pada perangkat lunak, perubahan dapat dibuat kapan saja pada saat pengembangan sistem ataupun setelah pengembangan sistem. Secara historis, terdapat pembatas antara proses pengembangan perangkat lunak dan proses evolusi perangkat lunak pemeliharaan perangkat lunak. Pengembangan perangkat lunak dianggap merupakan kegiatan kreatif di mana sistem perangkat lunak dikembangkan dari konsep awal menjadi sistem yang dapat berjalan. Pemeliharaan perangkat lunak merupakan proses perubahan sistem tersebut setelah digunakan.


Kode Etik/Prinsip Profesional Rekayasa Perangkat Lunak

1. Publik, harus bertindak secara konsisten sesuai dengan kepentingan  masyarakat

2. Client/employer, harus melakukan yang terbaik bagi klien atau atasan mereka dan tetap konsisten dengan kepentingan masyarakat

3. Produk, harus menjamin bahwa produk mereka ataupun yang mereka modifikasi sudah memenuhi standar profesional setinggi tingginya

4. Penilaian, harus mempertahankan integritas dan independensi penilaian profesional mereka

5. Manajemen, akan mengikuti dan mempromosikan pendekatan etis terhadap manajemen pengembangan dan pemeliharaan perangkat lunak

6. Profesi, akan mementingkan integritas dan reputasi profesi konsisten dengan kepentingan masyarakat

7. Kolega, harus bersikap adil dan mendukung terhadap koleganya

8. Diri sendiri, akan berpartisipasi dalam pembelajaran seumur hidup mengenai praktek profesi mereka dan akan mempromosikan pendekatan etis terhadap praktek profesi tersebut


Read More

Minggu, 12 Februari 2023

Mengenal Perangkat Lunak (Software)


Pengertian Software
Software atau perangkat lunak adalah bagian dari komputer yang terdiri dari beberapa perintah yang dioperasikan melalui mesin komputer. Software ini tidak mempunyai wujud fisik. Jadi Software adalah sekumpulan intruksi, data, atau program yang digunakan untuk mengoperasikan komputer dan menjalankan suatu fungsi atau tujuan tertentu yang dibuat dan dikembangkan oleh developer atau programmer menggunakan bahasa pemrograman tertentu..

Fungsi Software
Software digunakan untuk menjalankan suatu fungsi tertentu di dalam komputer. Nah, apa aja sih fungsi tersebut? Berikut beberapa fungsi software :
1. Memproses data, perintah, atau intruksi khusus.
2. Mengatur atau mengontrol hardware pada komputer sehingga dapat digunakan dan bekerja dengan baik sesuai kebutuhan.
3. Menjadi penerjemah perintah software ke dalam bahasa mesin, supaya hardware bisa menerimanya dengan baik.
4. Sebagai media untuk menghubungkan beberapa software lainnya dengan hardware pada komputer.
5. Mengidentifikasi suatu program dalam komputer.

Klasifikasi Software
Software atau perangkat lunak dapat dikelompokkan berdasar fungsinya dan hak pemakaian (lisensi).
Software Berdasarkan Fungsinya
a) Operating System (Sistem Operasi)

Adalah perangkat lunak yang berfungsi untuk mengelola dan mengkoordinasikan setiap komponen dan fungsi computer. Beberapa contoh OS adalah Windows, Linux, UNIX, DOS.

b) Application Program


Perangkat lunak yang memiliki fungsi tertentu, misalnya software untuk pesentasi, software akuntansi, dan lain sebagainya. Beberapa contoh Program Aplikasi adalah Microsoft Office Word, Microsoft Office Excel, MYOB, OpenOffice.org, dan lainnya

Software Berdasarkan Lisensi (Hak Pemakaian)
a) Commercial Software
Commercial Software atau perangkat lunak berbayar adalah software yang mengharuskan penggunanya untuk membayar dengan harga tertentu untuk bisa menggunakan perangkat lunak tersebut. Meskipun sudah dibeli, namun lisensi untuk menyebarluaskan tidak diberikan kepada pengguna, karena tindakan tersebut termasuk illegal. Contoh Commercial Software adalah Adobe Photoshop, Microsoft Office, Microsoft Windows, dan sebagainya

b) Domain Public
Domain Public adalah perangkat lunak yang tidak disertai hak cipta dan memungkinkan siapa saja melakukan tindakan terhadap program tersebut, termasuk membuang nama pencipta aslinya, dan bebas memakai hak ciptanya karena tidak terikat secara hukum. Contohnya Apache, MySQL.

c) Shareware
Shareware adalah perangkat lunak yang dapat digunakan untuk keperluan tertentu, dan biasanya ditawarkan gratis kepada pengguna untuk pemakaian dalam kurun waktu tertentu serta fitur yang terbatas. Untuk mengakses semuanya kita harus membayar lisensinya terlebih dahulu. Dalam istilah shareware, dikenal demo, trial, alpha, beta, stable, dan release. Contohnya adalah Internet Download Manager (IDM), WinRAR, dll.

d) Freeware dan Open Source
Freeware adalah perangkat lunak gratis dan dapat digunakan tanpa batas waktu tertentu. Biasanya dibuat untuk komunitas tertentu. Hak cipta tetap dipertahankan sehingga siapa saja dapat melakukan update software terbaru. Contohnya Chrome, Mozilla, Firefox, dsb. Sedangkan Open Source adalah perangkat lunak yang bersifat terbuka, sehingga Source Codenya dapat dipelajari, dimodifikasi, ditingkatkan, dan disebarluaskan. Biasanya diperoleh secara gratis dan digunakan oleh komunitas tertentu untuk dikembangkan dengan lisensi GPL (General Public License). Contohnya adalah Linux.

e) Rentalware
Rentalware adalah Perangkat lunak yang dapat digunakan oleh perorangan atau institusi dengan cara menyewa. Penyewaan rentalware biasanya dalam jangka waktu tertentu. Teknisnya hampir sama seperti software shareware, bedanya disini yaitu jika sudah mencapai jangka waktu atau batas pemakaian tertentu, maka software tidak bisa digunakan lagi, dan pengguna harus memperpanjang kontrak sewa pemakaian software tersebut, bukan membeli passcode seperti shareware. Jadi tujuan rentalware tidak untuk diperjualbelikan. Contoh perangkat lunak rentalware adalah canva.







Jadi, software adalah suatu komponen dalam komputer yang tidak mempunyai wujud fisik, tapi bisa digunakan untuk mengoperasikan komputer dan menjalankan suatu fungsi atau tujuan tertentu misalnya membantu mengatur atau mengontrol hardware pada komputer, serta intruksi lainnya.

Perangkat lunak juga dibedakan menjadi dua jenis, berdasarkan fungsi dan juga hak pemakaian. Berdasarkan fungsinya, Software dibagi menjadi 2, yaitu Operating System dan Application Program. Berdasarkan hak pemakaian, Software dibagi menjadi beberapa jenis, yaitu Commercial (berbayar), domain public(bebas hak cipta), shareware(demo/trial), freeware(gratis namun source codenya dibatasi), open source (gratis serta bebas akses source codenya), rentalware (sewa dalam kurun waktu tertentu).


Harapan atau keinginan dalam menempuh Mata kuliah Dasar Rekayasa Perangkat Lunak
Mengambil dan ingin mempelajari mata kuliah ini lebih dalam lagi adalah harapan saya, karena mata kuliah ini membahas dan mengulik tentang perangkat lunak yang dimana selalu kita gunakan saat memakai komputer. Konsep konsep yang dipelajari tentunya akan sangat berguna bagi Saya untuk mengembangkan ilmu di bidang Sodtware, terutama untuk menjadi seorang programmer.


Daftar Pustaka
Gumilang, Nanda Akbar. (2023, Februari 12). Software: Pengertian, Sejarah, Fungsi, dan Contohnya. Retrieved from gramedia: https://www.gramedia.com/literasi/pengetian-software/

Hosting, R. J. (2023, Februari 7). Pengertian Software: Fungsi, Ciri, Jenis, & Contohnya. Retrieved from jagoanhosting: https://www.jagoanhosting.com/blog/software-adalah/

Irfania, N. (2013, Maret 25). Software: Berdasarkan Cara Mendapatkan dan Hak Pemakaian. Retrieved from blog.ub.: http://blog.ub.ac.id/niairfania/2013/03/25/software-berdasarkan-cara-mendapatkan-dan-hak-pemakaian/

Prawiro, M. (2018, Desember 12). Pengertian Software: Fungsi, Jenis, dan Contoh Perangkat Luna. Retrieved from maxmanroe: https://www.maxmanroe.com/vid/teknologi/pengertian-software.html

Ranti, S. (2023, Januari 19). Pengertian Software, Fungsi, dan Contohnya. Retrieved from amp.kompas: https://amp.kompas.com/tekno/read/2023/01/19/03000097/pengertian-software-fungsi-dan-contohnya

Saputri, Y. D. (2022, September 6). Perangkat Lunak: Pengertian, Fungsi, Jenis, Macam, dan Contoh. Retrieved from idntimes: https://www.idntimes.com/business/economy/amp/yunisda-dwi-saputri/apa-itu-perangkat-lunak?page=all#page-2

Read More