Inilah kumpulan video Showdiqin yang harus sekali atau wajib kalian lihat sekali seumur hidup! Terima kasih untuk yang sudah mengirimkan videonya.


1. Baby Shark

Showdiqin nyanyi Baby Shark.

2. Dikin Fart

Showdiqin nyanyi lagu kentut.

3. Scooby Doo

Showdiqin nyanyi Scooby Doo.

4. Muffin Man

Showdiqin nyanyi lagu anak The Muffin Man.

5. Happy Birthday by Dikin

Kamu akan dinyanyikan lagu selamat Ultah oleh Showdiqin.


Bagaimana menurut kalian? Mungkin kedepannya akan diproduksi lebih banyak lagi video seperti ini.







Analisis dan Desain Perangkat Lunak


    Pada dasarnya, tujuan metodologi pengembangan perangkat lunak adalah untuk berkontribusi pada pembuatan perangkat lunak berkualitas tinggi. Model proses PL adalah representasi abstrak dari suatu proses dari berbagai perspektif.  


Sumber: https://cdnwpedutorenews.gramedia.net/wp-content/uploads/2022/10/16120629/code-1839406__340.webp


I. Metodologi Analisis dan Desain 

    Secara konsep, pemrograman adalah penulisan, pengujian, debugging, dan pemeliharaan kode yang membentuk program komputer. Kode ini ditulis dalam bahasa pemrograman yang berbeda. Tujuan pemrograman adalah untuk menghasilkan program yang dapat melakukan perhitungan atau pekerjaan sesuai dengan keinginan programmer. 

    Ada banyak teknik untuk meganalisis pemrograman untuk membuat program. Lalu, apa perbedaan antara teknik menganalisis pemrograman terstruktur (SSAD) dan teknik menganalisis pemrograman berorientasi objek (OOAD).

    SSAD (Structured Systems Analysis and Design) dan OOAD (Object-Oriented Analysis and Design) adalah dua metodologi analisis dan desain yang berbeda dalam pendekatan dan konsepnya. Berikut penjelasannya:

1. SSAD (Structured Systems Analysis and Design)

    SSAD adalah metodologi analisis dan desain sistem yang menggunakan pendekatan berstruktur. Pendekatan ini terdiri dari beberapa tahapan, seperti analisis kebutuhan, desain logis, desain fisik, implementasi, dan pemeliharaan. Metodologi ini bertujuan untuk menghasilkan sistem yang terstruktur, terdokumentasi dengan baik, dan mudah dimengerti.

    Metodologi SSAD terdiri dari beberapa model yang digunakan untuk menggambarkan sistem, seperti Data Flow Diagram (DFD) yang menggambarkan aliran data di dalam sistem, Entity Relationship Diagram (ERD) yang menggambarkan hubungan antar entitas dalam sistem, dan Structured English yang digunakan untuk menuliskan prosedur sistem.

2. OOAD (Object-Oriented Analysis and Design)

    Sementara itu, OOAD adalah metodologi analisis dan desain sistem yang berfokus pada penggunaan konsep pemrograman berorientasi objek (OOP). Metodologi ini menggunakan konsep kelas, objek, pewarisan, polimorfisme, dan enkapsulasi untuk mendefinisikan struktur dan fungsi sistem.

    Metodologi OOAD terdiri dari beberapa tahapan, seperti analisis kebutuhan, perancangan konsep, perancangan objek, implementasi, dan pengujian. Metodologi ini bertujuan untuk menghasilkan sistem yang mudah dimodifikasi, terstruktur, dan memanfaatkan kembali kode yang telah ada.

    Dalam OOAD, model yang digunakan untuk menggambarkan sistem adalah Unified Modeling Language (UML), yang mencakup diagram kelas, diagram objek, diagram urutan, dan lain-lain.


II. Kekurangan dan Kelebihan Antara SSAD& OOAD

    Diantara kedua metode tersebut, mereka juga memiliki kekurangan serta kelebihan. Berikut ini adalah kelebihan dan kekurangan dari SSAD dan OOAD:


1. Kekurangan & Kelebihan SSAD

    a. Kelebihan SSAD:

    1. Metodologi SSAD dapat menghasilkan sistem yang terstruktur dan terdokumentasi dengan baik.

    2. Metodologi SSAD dapat memastikan bahwa seluruh proses bisnis terdokumentasi dengan baik.

    3. Metodologi SSAD mudah dipelajari dan dipahami oleh orang yang baru memulai dalam pengembangan sistem.

    4. Metodologi SSAD cocok untuk sistem yang relatif sederhana dan tidak terlalu kompleks.


    b. Kekurangan SSAD:

    1. Metodologi SSAD kurang fleksibel dan sulit untuk dimodifikasi ketika terjadi perubahan kebutuhan.

    2. Metodologi SSAD tidak mempertimbangkan aspek berorientasi objek dalam pengembangan sistem.

    3. Metodologi SSAD cenderung menghasilkan sistem yang kurang interaktif dan kurang responsif terhadap perubahan lingkungan bisnis.


2. Kekurangan & Kelebihan OOAD

    a. Kelebihan OOAD:

    1. Metodologi OOAD dapat menghasilkan sistem yang mudah dimodifikasi dan dapat memanfaatkan kembali kode yang telah ada.

    2. Metodologi OOAD dapat menghasilkan sistem yang memiliki kualitas yang lebih baik dan lebih andal.

    3. Metodologi OOAD dapat memastikan bahwa sistem yang dihasilkan lebih interaktif dan lebih responsif terhadap perubahan lingkungan bisnis.

    4. Metodologi OOAD lebih cocok untuk sistem yang kompleks dan besar.

    b. Kekurangan OOAD:

    1.Metodologi OOAD membutuhkan waktu dan sumber daya yang lebih besar untuk implementasi dibandingkan dengan SSAD.

    2. Metodologi OOAD membutuhkan tingkat keahlian yang lebih tinggi dalam pemrograman berorientasi objek.

    3. Metodologi OOAD membutuhkan analisis yang lebih detail dalam mengidentifikasi kelas dan objek yang diperlukan.


III. Kesimpulan

    Perbedaan antara SSAD dan OOAD adalah pada pendekatan dan konsepnya. SSAD menggunakan pendekatan berstruktur dan fokus pada aliran data dalam sistem, sedangkan OOAD menggunakan konsep OOP dan fokus pada objek dalam sistem. Keduanya memiliki kelebihan dan kekurangan masing-masing dan dapat dipilih berdasarkan kebutuhan dan lingkungan pengembangan sistem yang berbeda.


Share link: https://f24.link/kTXrc


Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Fakultas Teknik Prodi Informatika Untan

Disunting pada: Sabtu, 11 Maret 2023, 17:20 WIB


Sumber dan Referensi:

Academia - Paradigma Analisis Desain SSAD & OOAD: https://www.academia.edu/37469514/Paradigma_Analisis_Desain_SSAD_and_OOAD (diakses 11 Maret 2023)

BSI Web - Bagian F: https://repository.bsi.ac.id/index.php/unduh/item/324140/Bagian-F.pdf (diakses 11 Maret 2023)



Tags: Software, engineering, analisis kebutuhan, requirement engineering, SSAD, OOAD, Analisis Desain SSAD & OOAD, OOP, perangkat lunak, metodologi, kelebihan & kekurangan SSAD dan OOAD, desain perangkat lunak, PL.




Rekayasa Kebutuhan (Requirements Engineering)


    Di zaman sekarang penggunaan software sangatlah umum. Tidak dapat dipungkiri lagi, hal tersebut sudah menjadi kebutuhan dizaman sekarang. Kali ini saya akan menjelaskan tentang rekayasa kebutuhan, lebih tepatnya kebutuhan software.


Sumber: https://e-learning.untan.ac.id/learning/mod/lesson/view.php?id=32835

I. Penjelasan dan Contoh Requirement Engineering

   Requirement Engineering adalah sekumpulan informasi yang menjelaskan persyaratan yang harus dipenuhi oleh perangkat lunak atau sistem komputer. Dalam pengembangan perangkat lunak, software requirement diperlukan untuk memandu pengembangan perangkat lunak berdasarkan kebutuhan pengguna dan sistem.

    Berikut ini adalah penjelasan dan contoh beberapa jenis software requirement:

1. User Requirement (Kebutuhan Pengguna)

    User Requirement adalah kebutuhan fungsional dan nonfungsional yang harus dipenuhi oleh perangkat lunak untuk memenuhi kebutuhan pengguna. Persyaratan pengguna didasarkan pada kebutuhan bisnis dan kebutuhan pengguna akhir. Contoh user requirement:

    a.Perangkat lunak harus mudah digunakan dan intuitif bagi pengguna akhir. 

    b. Perangkat lunak harus mampu mengolah data dengan cepat dan akurat.

    c. Perangkat lunak harus dapat berjalan di berbagai sistem operasi, seperti Windows, MacOS, dan Linux.

2. System Requirement (Kebutuhan Sistem)

    System requirement adalah kebutuhan software yang terkait dengan infrastruktur teknologi dan lingkungan operasi di mana perangkat lunak akan dijalankan. Berikut adalah contoh System Requirement:

    a. Perangkat lunak harus dapat beroperasi di lingkungan jaringan yang aman.

    b. Perangkat lunak harus dapat diinstal dan dijalankan di server dengan spesifikasi minimum tertentu, seperti RAM, prosesor, dan penyimpanan yang memadai. 

    c. Perangkat lunak harus dapat memenuhi persyaratan privasi dan keamanan data, seperti enkripsi dan autentikasi pengguna.

3. Functional Requirement (Kebutuhan Fungsi)

    Persyaratan fungsional adalah kebutuhan yang terkait dengan fitur perangkat lunak dan fungsionalitas yang harus dipenuhi. Berikut adalah contoh dari persyaratan fungsional:

    a. Perangkat lunak harus dapat menyimpan data pengguna dan mengambilnya saat dibutuhkan.

    b. Perangkat lunak harus dapat melakukan perhitungan dan analisis data sesuai dengan kebutuhan bisnis.

    c. Perangkat lunak harus dapat menghasilkan laporan dan grafik yang memudahkan pengambilan keputusan. 

4. Non-functional Requirement (Persyaratan nonfungsional)

    Persyaratan nonfungsional adalah kebutuhan yang tidak terkait dengan fitur dan fungsionalitas perangkat lunak, tetapi dengan kinerja, keamanan, dan kualitas perangkat lunak. Berikut adalah contoh dari persyaratan nonfungsional:

    a. Perangkat lunak harus mampu memberikan waktu respons yang cepat dan kinerja yang konsisten.

    b. Pengguna dengan disabilitas, seperti pengguna tunanetra atau tunanetra, harus mengakses dan menggunakan perangkat lunak ini.

    c. Perangkat lunak harus mematuhi standar keamanan dan privasi data yang berlaku, seperti GDPR atau HIPAA. 


II. Analisis Kebutuhan

    Analis sistem (System Analyst) dalam organisasi TI adalah orang yang bertugas dalam menganalisis persyaratan sistem yang diusulkan dan memastikan bahwa persyaratan disusun dan didokumentasikan dengan baik & benar. Peran analis dimulai selama Fase Analisis Perangkat Lunak SDLC. Merupakan tanggung jawab analis untuk memastikan bahwa perangkat lunak yang dikembangkan memenuhi persyaratan klien.

    Analis Sistem memiliki tanggung jawab sebagai berikut:

    a. Menganalisis dan memahami persyaratan perangkat lunak yang dimaksud

    b. Memahami bagaimana proyek akan berkontribusi dalam tujuan organisasi

    c. Mengidentifikasi sumber kebutuhan

    d. Validasi persyaratan

    e. Mengembangkan dan menerapkan rencana manajemen kebutuhan

    f. Dokumentasi persyaratan bisnis, teknis, proses dan produk

    g. Koordinasi dengan klien untuk memprioritaskan persyaratan dan menghapus dan ambiguitas

    h. Menyelesaikan kriteria penerimaan dengan klien dan pemangku kepentingan lainnya


III. Hal Lainnya Tentang Rekayasa Kebutuhan Perangkat Lunak (Software Requirement)

1. Karakteristik Kebutuhan Perangkat Lunak

    Mengumpulkan persyaratan perangkat lunak merupakan dasar dari keseluruhan proyek pengembangan perangkat lunak. Oleh karena itu mereka harus jelas, benar dan terdefinisi dengan baik.

    Karakteristik software requirement yang baik harus:

    a. Bersih (Clear)

    b. Benar (Correct)

    c. Konsisten (Consistent)

    d. Koheren (Coherent)

    e. Dapat dipahami (Comprehensible)

    f. Dapat dimodifikasi (Modifiable)

    g. Dapat diverifikasi (Verifiable)

    h. Diprioritaskan (Prioritized)

    i. Jelas /tidak ambiguis (Unambiguous)

    j. Dapat dilacak (Traceable)

    k. Sumber yang dapat dipercaya (Credible source)


2. UI Requirement

    UI adalah bagian penting dari perangkat lunak atau perangkat keras atau sistem hybrid apa pun. Perangkat lunak diterima secara luas apabila:

    a. mudah dioperasikan

    b. cepat dalam menanggapi

    c. efektif menangani kesalahan operasional

    d. menyediakan antarmuka pengguna yang sederhana namun konsisten


3. Requirement Elicitation Process (Proses Elisitasi Kebutuhan)

    Proses elisitasi kebutuhan dapat digambarkan dengan menggunakan diagram berikut:

Sumber: https://www.tutorialspoint.com/software_engineering/images/requirement_elicitation_process.png

sumber: https://www.tutorialspoint.com/software_engineering/images/requirement_elicitation_process.png

    Urutan proses elisitasi adalah sebagai berikut:

a. Requirement Gathering

    Developer berdiskusi dengan klien dan pengguna akhir dan mengetahui harapan mereka dari perangkat lunak.

b. Organizing Requirements

    Pengembang memprioritaskan dan mengatur persyaratan dalam urutan kepentingan, urgensi, dan kenyamanan.

c. Negotiation & discussion (Negosiasi & diskusi )

    Jika persyaratan ambigu atau ada beberapa konflik dalam persyaratan dari berbagai pemangku kepentingan, jika ya, maka akan dinegosiasikan dan didiskusikan dengan pemangku kepentingan. Persyaratan kemudian dapat diprioritaskan dan dikompromikan secara wajar.

    Persyaratan tersebut berasal dari berbagai pemangku kepentingan. Untuk menghilangkan ambiguitas dan konflik, mereka didiskusikan untuk kejelasan dan kebenaran. Persyaratan yang tidak realistis dikompromikan secara wajar.

d. Documentation (Dokumentasi) 

    Semua persyaratan formal & informal, fungsional dan non-fungsional didokumentasikan dan tersedia untuk pemrosesan tahap berikutnya.


IV. Kesimpulan

    Requirements engineering adalah proses mendefinisikan, menganalisis, dan mengelola kebutuhan-kebutuhan software atau sistem. Proses ini sangat penting dalam pengembangan software karena keberhasilan suatu proyek software sangat bergantung pada kemampuan tim pengembang untuk memahami dan memenuhi kebutuhan pengguna dan sistem.

    Kesimpulannya, requirements engineering sangatlah penting dalam proses pengembangan software karena:

1. Membantu memahami dan memenuhi kebutuhan pengguna dan sistem

2. Meningkatkan kualitas dan keberhasilan software

3. Mengurangi biaya dan waktu pengembangan dengan mencegah kesalahan dan perubahan kebutuhan yang tidak perlu

4. Memungkinkan tim pengembang untuk bekerja lebih efisien dan efektif dengan panduan yang jelas dan terorganisir.

    Dengan demikian, penggunaan requirements engineering secara efektif dapat membantu dalam mencapai tujuan pengembangan software yang sukses.


Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Fakultas Teknik Prodi Informatika Untan

Disunting pada: Jumat, 3 Maret 2023, 21:05


Sumber dan Referensi:

Wikipedia - Software Requirements: https://en.wikipedia.org/wiki/Software_requirements (diakses 3 Maret 2023)

Tutorials Point - Software Requirements: https://www.tutorialspoint.com/software_engineering/software_requirements.htm (diakses 3 Maret 2023)

Geeksforgeeks - Software Engineering | Classification of Software Requirements: https://www.geeksforgeeks.org/software-engineering-classification-of-software-requirements/ (diakses 3 Maret 2023)

Badr - Panduan Menyusun Dokumen Software Requirement Specification (SRS): https://badr.co.id/id/panduan-menyusun-dokumen-software-requirement-specification-srs/ (diakses 3 Maret 2023)

Studocu - Software Requirements: https://www.studocu.com/id/document/universitas-lambung-mangkurat/rekayasa-perangkat-lunak/software-requirements/44263896 (diakses 3 Maret 2023)


Tags: Software, engineering, elisitasi, elicitation, analisis kebutuhan, requirement engineering, srs, sw requirement


Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)


I. Penjelasan

    Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC) merupakan proses sistematis dalam mengembangkan perangkat lunak mulai dari perencanaan hingga penerapan dan pemeliharaan.


II. Tahapan dalam siklus SDLC:

    Berikut adalah beberapa tahapan dan penjelasan rinci dalam siklus SDLC:

1. Perencanaan (Planning)

     Tahap ini adalah dimana sebuah proyek pengembangan perangkat lunak diawali. Pada tahap ini, perlu ditetapkan tujuan proyek, masalah yang ingin dipecahkan, dan kebutuhan bisnis yang harus dipenuhi. Langkah-langkah awal seperti membuat dokumen persyaratan pengguna dan dokumen spesifikasi teknis dilakukan di tahap ini.

2. Analisis (Analysis)

     Tahap ini bertujuan untuk memahami kebutuhan bisnis dan persyaratan pengguna. Tim pengembang dan pemangku kepentingan bekerja sama untuk mengumpulkan, menganalisis, dan memvalidasi persyaratan pengguna, dengan hasil berupa dokumen persyaratan fungsional dan non-fungsional.

3. Desain (Design)

     Tahap ini adalah dimana tim pengembang merancang arsitektur dan desain sistem yang akan dibangun berdasarkan persyaratan yang telah disepakati pada tahap analisis. Selain itu, mereka juga membuat desain detail dari setiap komponen yang ada di dalam sistem, seperti basis data, antarmuka pengguna, dan arsitektur jaringan.

4. Pengembangan (Development)

     Tahap ini adalah dimana tim pengembang mulai membuat kode sumber untuk sistem, yang kemudian diuji untuk memastikan kinerjanya sesuai dengan persyaratan yang telah ditetapkan.

5. Pengujian (Testing)

     Tahap ini bertujuan untuk menguji kinerja sistem dan memastikan bahwa sistem berjalan dengan baik dan sesuai dengan persyaratan fungsional dan non-fungsional. Tim pengujian melakukan tes fungsional, tes performa, tes keamanan, dan tes kesalahan, serta melaporkan setiap masalah yang ditemukan.

6. Penerapan (Deployment)

     Tahap ini adalah dimana sistem diterapkan di lingkungan produksi atau pengguna akhir. Pada tahap ini, tim pengembang melakukan pengiriman sistem ke lingkungan produksi dan melakukan integrasi sistem dengan sistem yang ada.

7. Pemeliharaan (Maintenance)

     Tahap ini bertujuan untuk memelihara sistem dan memastikan bahwa sistem tetap berjalan dengan baik dan sesuai dengan persyaratan pengguna. Tim pemeliharaan melakukan pemeliharaan preventif, pemeliharaan korektif, dan pemeliharaan adaptif. Pemeliharaan juga mencakup perbaikan bug dan penambahan fitur baru ke sistem.

    Siklus SDLC tidak selalu linier dan bergantung pada persyaratan proyek dan keputusan manajemen, mungkin perlu untuk kembali ke fase sebelumnya atau melewati fase tertentu. 


III. Metode dalam model SDLC:

Ada beberapa metode dalam model SDLC, diantaranya adalah:

1. Metode Waterfall

    Metode ini merupakan metode SDLC tradisional yang berjalan secara linear dan berurutan. Tahap-tahapnya dimulai dari perencanaan, analisis, desain, pengembangan, pengujian, penerapan, dan pemeliharaan. Setiap tahap harus selesai terlebih dahulu sebelum bisa melanjutkan ke tahap berikutnya.

2. Metode Agile

    Metode ini merupakan metode SDLC yang lebih fleksibel dan berfokus pada iterasi dan kolaborasi tim. Tahap-tahapnya meliputi perencanaan, analisis, desain, pengembangan, dan pengujian yang dilakukan dalam siklus iteratif atau sprint. Tim bekerja secara terus-menerus untuk menghasilkan produk yang terus meningkat dan dapat disesuaikan dengan perubahan kebutuhan.

3. Metode DevOps

    Metode ini menggabungkan pengembangan perangkat lunak (development) dengan operasi IT (operations) untuk mempercepat pengembangan dan pengiriman perangkat lunak. Metode ini mencakup integrasi, pengujian otomatis, dan penerapan otomatis untuk menghasilkan produk yang dapat diimplementasikan dengan cepat dan mudah.

4. Metode Spiral

    Metode ini merupakan metode SDLC yang menekankan pada evaluasi risiko dan analisis kebutuhan pengguna. Tahap-tahapnya dilakukan secara iteratif dan berulang-ulang, dimulai dari perencanaan, analisis, desain, pengembangan, dan pengujian. Setiap iterasi mempertimbangkan evaluasi risiko dan analisis kebutuhan pengguna untuk menghasilkan produk yang lebih baik.

5. Metode Prototype

    Metode ini dilakukan dengan membuat prototipe atau model awal dari produk yang akan dikembangkan, kemudian dilakukan evaluasi dan perbaikan berdasarkan umpan balik pengguna. Tahap-tahapnya meliputi perencanaan, pengembangan prototipe, evaluasi, dan pengembangan produk akhir.


IV. Kesimpulan

Jika kita menginginkan untuk mengembangkan produk digital, entah itu aplikasi atau website, perlu diingat bahwa proses pengembangan harus mengikuti salah satu model siklus hidup perangkat lunak. Dengan mengikuti siklus dan tahapan SDLC yang termasuk dalam framework, Anda dan tim pengembangan dapat bekerja dengan cara yang lebih terorganisir, terstruktur, dan terkontrol untuk menghasilkan produk akhir berkualitas tinggi.

Dalam mengembangkan aplikasi atau website, saya menyarankan untuk mengembangkan metode Agile. Dikarenakan kita hidup pada kondisi teknis yang terus berubah dan semakin maju, metode ini memungkinkan tim pengembang beradaptasi dengan cepat. Cara ini bekerja dengan baik ketika perangkat lunak dan aplikasi yang Anda kembangkan perlu diperbarui atau perlu pembaruan secara rutin. Selain itu, Agile development juga berfokus pada kerjasama tim yang baik antara klien dan tim pengembangan sehingga output yang dihasilkan sesuai dengan harapan. 


Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Fakultas Teknik Prodi Informatika Untan

Disunting pada: Selasa, 28 Februari 2023


Sumber dan Referensi:

Wikipedia Indonesia - Proses Pengembangan Perangkat Lunak: https://id.wikipedia.org/wiki/Proses_pengembangan_perangkat_lunak (diakses 28 Februari 2023)

Logique - Tahapan SDLC: https://www.logique.co.id/blog/2021/04/28/tahapan-sdlc/ (diakses 28 Februari 2023)


Tags: Perangkat Lunak, Software, SDLC, Pengembangan Perangkat Lunak, definisi SDLC.



Konsep Rekayasa Perangkat Lunak


Definisi rekayasa perangkat lunak (English: Software Engineering) adalah bidang profesional yang mempelajari dan mempelajari pengembangan perangkat lunak, seperti pembuatan, pemeliharaan, perawatan, penyebaran, modifikasi, dan pengaksesan perangkat lunak yang ada agar menjadi lebih efektif dan efisien. 

I. Penjelasan, konsep, dan tujuan mengenai RPL

a. Penjelasan

    Menurut Fritz Bauer dalam buku Rekayasa Perangkat Lunak karya Ratna Wardani, rekayasa perangkat lunak ialah sebuah kegiatan yang menerapkan dan memanfaatkan prinsip-prinsip rekayasa untuk menghasilkan perangkat lunak yang ekonomis, andal, dan bekerja secara efisien pada mesin-mesin yang nyata.

b. Konsep RPL

    Konsep rekayasa perangkat lunak adalah salah satu bidang keilmuan atau profesi yang berfokus pada produksi dan pengembangan perangkat lunak.

c. Tujuan RPL

    Tujuan RPL diantaranya adalah:

    1. Memperoleh biaya produksi perangkat lunak yang rendah.

    2. Menghasilkan perangkat lunak yang memiliki cara kerja yang cepat dan tinggi, andal serta tepat waktu.

    3. Memproduksi perangkat lunak yang dapat bekerja pada berbagai jenis platform.

    4. Membuat perangkat lunak yang biaya perawatannya rendah.


II. Cakupan RPL

    Cakupan atau ruang lingkup rekayasa perangkat lunak mengacu pada definisi persyaratan dan persyaratan perangkat lunak. berurusan dengan rincian perangkat lunak, seperti algoritma, pengkodean, debugging, dan pengujian. Itu termasuk aktivitas pemeliharaan setelah perangkat lunak digunakan. 

    Rekayasa Perangkat Lunak sendiri memiliki ruang lingkup kerjanya masing-masing sebagai berikut:

    1. Software Requirements

    Berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak. 

    2. Software Design

    Meliputi proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak

    3Software Construction

    Berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pencarian kesalahan dan pengujian.

   4Software Testing

    Meliputi pengujian pada kinerja perangkat lunak secara keseluruhan

   5. Software Maintenance

    Mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan. 

   6Software Configuration Management

    Berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.

   7. Software Engineering Management

    Berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.

   8Software Engineering Tools and Methods

    Mencakup kajian teoritis tentang alat bantu dan metode RPL. 

    9. Software Quality

    Menitikberatkan pada kualitas dan daur hidup perangkat lunak.

   10Software Engineering Process

    Berhubungan dengan implementasi, definisi, pengukuran, pengelolaan, perubahan dan perbaikan proses Rekayasa Perangkat Lunak.


III. Proses Perangkat Lunak

    Menurut Wikipedia, proses pengembangan perangkat lunak (English: software development process) adalah struktur yang diterapkan pada pengembangan perangkat lunak, yang bertujuan untuk mengembangkan sistem dan memberikan arahan yang bertujuan untuk menyukseskan serta menyelesaikan proyek pengembangan sistem langkah demi langkah. Contoh model proses pengembangan PL diantaranya adalah proses iteratif, extreme programming, serta proses air terjun (waterfall).


IV. Software Engineering Tidak Sama Dengan Software Development

    Software Engineering adalah orang yang bertanggung jawab untuk merancang, mengembangkan, memelihara, menguji, dan mengevaluasi perangkat lunak.

    Software Development adalah orang yang bertanggung jawab untuk membuat perangkat lunak atau aplikasi sesuai dengan persyaratan, menganalisis persyaratan perangkat lunak, dan memutuskan langkah-langkah spesifik desain perangkat lunak.

    Sepintas sama, namun keduanya berbeda. Analoginya seperti seorang Software Engineering adalah seorang arsitek sementara seorang Software Development adalah seorang tukang kayu. Sehingga keduanya memiliki korelasi yang erat. 

    Dari uraian di atas, dapat disimpulkan bahwa Software Engineering memegang peranan penting dalam mengontrol proses pengembangan perangkat lunak. Pada saat yang sama, Software Development lebih fokus untuk membuat aplikasi fungsional.

    Dengan kata lain, perbedaan utama antara Software Engineering dan Software Development adalah Software Development hanya fokus pada satu area. Salah satunya adalah membangun kode (coding).

    Seorang Software Engineering adalah orang yang merencanakan, mendesain, dan mengimplementasikan prinsip-prinsip desain perangkat lunak. Software Engineering juga harus mengawasi keseluruhan proyek dan menangani area yang lebih luas.

    Perbedaan yang paling terlihat adalah bahwa Software Engineering fokus pada pemantauan, sementara Software Engineering fokus pada pembuatan program fungsional. 


V. 8 Prinsip Profesional Software Engineering

Terdapat delapan prinsip profesional software engineering yang dibuat oleh ACM/ICEE-CS (Asosiasi Profesi), kedelapan prinsip tersebut di antaranya adalah adalah:

    1. Public atau Masyarakat

    Maknanya perekayasa perangkat lunak atau seorang insinyur software harus bertindak secara konsisten sesuai dengan kepentingan masyarakat.

    2. Client and Employer atau Klien dan Atasan

    Maknanya seorang perekayasa perangkat lunak harus melakukan yang terbaik bagi klien dan atasan mereka dan tetap konsisten dengan kepentingan masyarakat.

    3. Product atau Produk 

    Maknanya perekayasa perangkat lunak akan menjamin bahwa produk mereka dan modifikasi yang mereka lakukan terhadapnya memenuhi standar profesional setinggi tingginya.

    4. Judgment atau Penilaian

    Maknanya perekayasa perangkat lunak akan mempertahankan integritas dan independensi penilaian profesional mereka.

    5. Management atau Manajemen

    Maknanya manajer dan perangkat lunak akan mengikuti dan mempromosikan pendekatan etis terhadap manajemen pengembangan dan pemeliharaan perangkat lunak.

    6. Profession atau Profesi

    Maknanya perekayasa perangkat lunak akan mementingkan integritas dan reputasi profesi konsisten dengan kepentingan masyarakat.

    7. Collegues atau Kolega 

    Maknanya perekayasa perangkat lunak harus bersikap adil dan mendukung terhadap koleganya.

    8. Self atau Diri Sendiri

    Maknanya perekayasa perangkat lunak akan berpartisipasi dalam pembelajaran seumur hidup mengenai praktek profesi mereka dan akan mempromosikan pendekatan etis terhadap praktek profesi tersebut.


VI. Kesimpulan

Konsep rekayasa perangkat lunak memainkan peran yang sangat penting dalam proses pengembangan perangkat lunak (software development). Dalam pengembangan perangkat lunak apapun, langkah pertama yang paling utama adalah mengidentifikasi kebutuhan. Jika tujuan awal dari pengembangan sistem sudah tidak jelas, maka dapat dipastikan yang perencanaan terjadi akan kacau. Akibatnya, sangat tidak mungkin untuk dapat membangun sistem yang akan bekerja dan memuaskan penggunanya.




Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Teknik Informatika Untan

Disunting pada: Rabu, 15 Februari 2023


Sumber dan Referensi: 

Kumparan - Rekayasa Perangkat Lunak: Pengertian, Tujuan, dan Elemen Penting: https://kumparan.com/kabar-harian/rekayasa-perangkat-lunak-pengertian-tujuan-dan-elemen-penting-1wyPk4NIZP0/2 (diakses 15 Februari 2023)

Universitas123 - Konsep rekayasa perangkat lunak: https://www.universitas123.com/news/konsep-rekayasa-perangkat-lunak# (diakses 15 Februari 2023)

Marjikar - Pengertian, Tujuan dan Ruang Lingkup Rekayasa Perangkat Lunak (RPL): https://www.markijar.com/2016/01/pengertian-tujuan-dan-ruang-lingkup.html# (diakses 15 Februari 2023)

Wikipedia Indonesia - Proses pengembangan perangkat lunak: https://id.wikipedia.org/wiki/Proses_pengembangan_perangkat_lunak# (diakses 15 Februari 2023)

Gamelab - Jangan Sampai Tertukar, Ini Perbedaan Software Engineer dan Software Developer: https://www.gamelab.id/news/1817-jangan-sampai-tertukar-ini-perbedaan-software-engineer-dan-software-developer# (diakses 15 Februari 2023)

Proyek Perangkat Lunak - Software Engineering Code of Ethics: https://proyeksoftware.blogspot.com/2016/10/software-engineering-code-of-ethics.html (diakses 15 Februari 2023)

Tag: Rekayasa Perangkat Lunak, Software, definisi rpl, engineering


Penjelasan dan Motivasi Saya Mengikuti Mata Kuliah Dasar Rekayasa Perangkat Lunak


I. Intoduksi

    Sebelum kita masuk kedalam pembahasan dalam tema yang berjudul "Penjelasan dan Motivasi Saya Mengikuti Mata Kuliah Dasar Rekayasa Perangkat Lunak",  perkenankan diri saya untuk memperkenalkan diri saya. Halo semuanya, saya Muhammad Fathur Rizqi dengan NIM D1041221020, saat ini saya adalah mahasiswa semester ke-2 di Universitas Tanjung Pura Pontianak pada fakultas Teknik prodi Informatika pada Februari 2023. Ini merupakan pertama kalinya saya kembali lagi menulis blog ini setelah postingan terakhir sekitar 4 tahun yang lalu atau tepatnya pada Desember 2018 silam, yang pada awalnya saya hanya iseng dalam membuat blog pada saat itu. Sejak SMP saya sudah memiliki kesukaan terhadap yang namanya teknologi, terkhususnya pada teknologi komputer. Selain itu saya juga pernah berinteraksi dalam coding ketika saya juga pernah mencoba-coba menjadi pembuat atau mengedit mod dalam game Minecraft (mobile version) seperti menambahkan item baru dan juga membuat yang namanya Texture Pack, walaupun aslinya sangat tidak paham dalam hal coding pada saat itu, namun saya hanya paham dalam mengedit beberapa bagian saja. Selain itu saya juga pernah berkeinginan untuk menjadi website creator atau kadan disebut website development.


II. Motivasi Saya untuk DRPL Untan

   Nah, saya juga memiliki motivasi dalam mengikuti mata kuliah Dasar Rekayasa Perangkat Lunak ini. Teman-teman, motivasi ini sangatlah penting bagi kita semua dalam mengmbil mata kuliah apapun. Setidaknya, kamu harus selalu mengetahui kegunaan dan pentingnya motivasi. Hal ini dikarenakan motivasi sangat bermanfaat bagi diri sendiri maupun orang lain. Antusiasme yang penuh semangad tidak memiliki efek negatif lain selain keinginan kuat untuk berbuat lebih banyak dan lebih baik. Peningkatan yang positif dalam segala aspek pekerjaan adalah contoh nyata ketika seseorang sangat bersemangat. 

    Intinya motivasi saya mengikuti mata kuliah ini adalah ingin mendapatkan ilmu dari apa yang saya perlajari. Karena menuntut ilmu itu adalah sebuah kewajiban bagi siapapun.

    Memangnya seberapa penting dan bergunanya sih motivasi itu? Tentu saja berguna dong. Kegunaan dan pentingnya motivasi yang perlu diketahui banyak orang dapat meyakinkan. Ya, setiap orang itu perlu untuk mengetahui efek positif dari motivasi diri yang kuat. Motivasi sangat penting untuk memotivasi seseorang agar melakukan sesuatu dengan sekuat tenaga. Anda menggunakan semua kemampuan Anda untuk mendapatkan apa yang Anda inginkan. Pengorbnan supaya rajin menjadi pengaruh paling nyata pada diri kita sendiri. 


III. Penjelasan Tentang Perangkat Lunak

A. Definisi Perangkat Lunak

    Oke, kali ini saya akan menjelaskan pembahasan tentang mengenal perangkat lunak. Menurut Wikipedia, perangkat lunak atau biasa disebut peranti lunak (English: software) merupakan istilah khusus untuk data yang diformat dan disimpan secara digital, hal itu termasuk program komputer, dokumentasi, dan berbagai macam informasi yang bisa dibaca, dan juga ditulis oleh komputer. Simpelnya, bagian sistem komputer yang tidak berwujud. Istilah ini sebagai istilah pembeda dengan istilah perangkat keras komputer.

B. Fungsi Perangkat Lunak

    Perangkat lunak berfungi untuk melakukan pemrosesan data, memerintah atau memberikan instruksi khusus untuk memungkinkan pengguna mengoperasikan komputernya sesuai dengan keluaran data yang diinginkan. Sarana interaksi yang menghubungkan pengguna ke perangkat keras. Mengidentifikasi program pada komputer.

C. Jenis Perangkat Lunak

Ada tiga jenis utama program peranti lunak komputer, yaitu sistem operasi, program bahasa, dan program aplikasi.  

1. Sistem Operasi

     Sistem operasi merupakan penghubung antara pengguna dari komputer dengan perangkat keras komputer. Sebelum ada sistem operasi, orang hanya mengunakan komputer dengan menggunakan sinyal analog dan sinyal digital. Seiring perkembangan teknologi informasi dan komunikasi, pada saat ini terdapat berbagai macam sistem operasi dengan keunggulannya masing-masing. Untuk lebih memahami cara bekerjanya sistem operasi, seharusnya kita  terlebih dahulu perlu memahami beberapa konsep dasar tentang sistem operasi itu sendiri.

2. Bahasa Pemrograman. 

    Bahasa pemrograman (English : programming language) meupakan program yang digunakan untuk mentranslasi instruksi atau perintah yang ditulis dalam bahasa pemrograman ke bahasa mesin menggunakan rule atau prosedur tertentu, agar dapat diterima oleh sistem komputer. Contoh bahasa pemrograman tersebut diantaranya adalah: Assembly Java, JavaScript, C, C#, C++, CSS, Pascal, Python, PyPy, PHP, R, HTML, Ruby, Selain itu juga terdapat program bantu. Program bantu adalah perangkat lunak yang fungsinya berperan sebagai aplikasi yang membantu kita dalam kegiatan yang ada hubungannya dengan komputer itu sendiri, contohnya memformat disket, mengompres file (seperti format zip, z7, rar, dsb.), menyalin data, dll. 

3. Perangkat lunak aplikasi. 

    Perangkat lunak aplikasi (English: application software) adalah suatu subclass dari perangkat lunak (software) yang dapat memanfaatkan kemampuan komputer secara langsung demi melakukan suatu tugas (task) yang diberikan oleh si pengguna. Program ini dibuat oleh programmer dan telah disesuaikan dengan kebutuhan si pengguna. Contoh perangkat lunak Software memiliki berbagai macam fungsi dan aspek sesuai jenisnya masing-masing seperti pada beberapa poin berikut:

a. Internet Browser

Seperti Google Chrome, FireFox, Opera Browser, Internet Explorer, dll.

b. Antivirus

Seperti Smadav.

c. Editing Software

Seperti Adobe Photoshop, Adobe Illustrator, CorelDraw, Adobe InDesign, dll.

d. Comunication Software.

Seperti WhatsApp, Telegram, Blackberry Messanger, dll.

e. Word Processing

Seperti Microsoft Word, Microsoft Power Point, dll.

f. Code Editor

Seperti Sublime Text, VS Code, Notepad++, dll.

g. Audio Player

Seperti Winamp, AIMP3, GOM MP3 Player, Spotify, dll.

4. Perangkat Lunak Berdasar Lisensi

    1. Lisensi Komersil

    Lisensi komersial adalah jenis lisensi yang biasa ditemukan dalam perangkat lunak seperti sistem operasi Microsoft Windows dan Office, Lotus, Oracle, dll. Perangkat lunak yang dibuat di bawah lisensi ini diproduksi untuk penggunaan komersial, sehingga pengguna yang ingin menggunakannya harus membeli atau mendapatkan izin untuk menggunakannya dari pemilik hak cipta.

    2. Lisensi Trial Software

    Lisensi perangkat lunak uji coba adalah jenis lisensi yang biasa ditemukan dalam perangkat lunak yang dimaksudkan untuk mendemonstrasikan perangkat lunak tersebut sebelum dirilis ke publik atau diadopsi secara luas, tetapi dibatasi waktunya. Lisensi ini memungkinkan pengguna untuk menggunakan, menyalin, atau memperbanyak perangkat lunak secara bebas. Namun, karena merupakan versi demo, perangkat lunak dengan lisensi ini seringkali tidak memiliki semua fitur dan fungsi versi komersial. Biasanya dibatasi oleh masa aktif tertentu.

    3. Lisensi Non-commercial use

    Biasanya ditujukan bagi kalangan pendidikan atau yayasan sosial tertentu. Non-komersial, biasanya gratis, tetapi dengan batasan penggunaan tertentu.

    4. Lisensi Shareware

    Memungkinkan pengguna untuk menggunakan, menyalin, atau mereproduksi tanpa harus meminta izin dari pemegang hak cipta. Berbeda dengan software trial, lisensi ini tidak terbatas pada masa aktif dan memiliki semua fitur. Lisensi jenis ini biasanya ditemukan pada perangkat lunak bisnis kecil. 

    5. Lisensi Freeware

    Biasanya terdapat pada perangkat lunak yang mendukung dan menyediakan fungsionalitas tambahan, B Plug-in yang dicolokkan ke software utama, seperti Eye Candy, yang dilampirkan ke software Adobe Photoshop itu sendiri.

    6. Lisensi Bebas Hak Cipta Biner (Royalty-Free Binaries)

    Sama halnya dengan lisensi gratis, produk yang ditawarkan hanyalah sebuah perpustakaan yang melengkapi perangkat lunak yang sudah ada dan bukan merupakan perangkat lunak yang berdiri sendiri.

    7. Lisensi Sumber Terbuka (Open Source)

    Membebaskan penggunanya untuk mengoperasikan, menyalin, mendistribusikan, meneliti, memodifikasi, dan meningkatkan kinerja perangkat lunak. Berbagai lisensi open source dikembangkan sesuai kebutuhan, misalnya GNU/GPL, The FreeBSD, MPL. Perangkat lunak yang menggunakan lisensi ini antara lain Linux, Sendmail, Apache, dan lain-lain.


IV. Kesimpulan

    Perangkat lunak penting sebagai media yang menghubungkan diri setiap pengguna dengan perangkat keras, karena perangkat keras itu sendiri tidak dapat berfungsi secara maksimal tanpa adanya perangkat lunak. 


Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Fakultas Teknik Prodi Informatika Untan

Sumber dan referensi: 

Wikipedia Indonesia - Perangkat Lunak: https://id.wikipedia.org/wiki/Perangkat_lunak (diakses: 11 Februari 2023)

Perangkat Lunak Komputer Pengertian Jenis dan Contoh: https://mediaindonesia.com/teknologi/535591/perangkat-lunak-komputer-pengertian-jenis-dan-contoh (diakses: 11 Februari 2023)

KBBI: https://kbbi.web.id/ (diakses: 11 Februari 2023)

Abiyan Blog: http://abiyan.blog.widyatama.ac.id/2019/03/11/jenis-jenis-lisensi-software-komputer/ (diakses: 11 Februari 2023)

Perkembangan Teknologi Software dalam SI: https://irayori.gitbooks.io/perkembangan-teknologi-software-dalam-si/penutup/kesimpulan.html# (diakses: 11 Februari 2023)



Dalam beberapa dekade terakhir, kemajuan teknologi telah mengantarkan kita ke era baru yang penuh dengan inovasi dan kemajuan. Salah satu aspek yang paling mencengangkan dari perkembangan teknologi adalah kemajuan di bidang kecerdasan buatan (AI). AI telah merevolusi berbagai industri dan aspek kehidupan manusia, dan masa depan AI menjanjikan lebih banyak lagi perubahan yang potensial dan revolusioner.


Artificial Intelligence
Source: https://lexica.art


Peningkatan Kapasitas Komputasi

Salah satu pendorong utama pengembangan AI di masa depan adalah peningkatan kapasitas komputasi. Dengan kemajuan teknologi prosesor dan infrastruktur komputasi yang berkelanjutan, para peneliti dan pengembang AI memiliki kemampuan untuk membuat model AI yang lebih besar, lebih kompleks, dan lebih cerdas. Hal ini akan membuka pintu bagi pengembangan aplikasi AI yang lebih canggih, seperti sistem analisis data real-time yang lebih akurat, pemodelan prediktif yang tepat, dan pemahaman bahasa alami yang lebih dalam.


Kecerdasan Buatan Hampir menyamai Kecerdasan Tingkat Manusia

Salah satu tujuan akhir dari pengembangan AI adalah untuk menciptakan kecerdasan buatan yang mendekati atau bahkan melampaui kemampuan kognitif manusia. Meskipun kita masih jauh dari mencapai tingkat tersebut, kemajuan yang signifikan telah dicapai dalam bidang-bidang seperti pemrosesan bahasa alami, visi komputer, dan memahami konteks yang kompleks. Di masa depan, kita dapat mengharapkan pengembangan model AI yang dapat berpikir lebih abstrak, belajar dari pengalaman dengan lebih cepat, dan bahkan menunjukkan empati buatan.


Interaksi yang Lebih Realistis

Salah satu tantangan dalam pengembangan AI yaitu menciptakan tampilan yang lebih alami untuk berinteraksi dengan mesin. Di masa depan, kita dapat memperkirakan kemajuan lebih lanjut dalam interaksi manusia dan mesin. Asisten virtual akan menjadi lebih canggih, mampu memahami konteks dan maksud pengguna dengan lebih baik, membuat interaksi terasa lebih mirip dengan percakapan dengan manusia sungguhan. Teknologi Augmented Reality (AR) dan Virtual Reality (VR) juga dapat mengintegrasikan elemen-elemen AI ke dalam pengalaman visual dan sensorik kita, menciptakan interaksi yang lebih imersif dan interaktif.


Etika dan Peraturan Lebih Lanjut

Seiring dengan perkembangan teknologi AI, kekhawatiran tentang etika dan regulasinya juga muncul. Di masa depan, para peneliti, ahli hukum, dan pemangku kepentingan akan terus terlibat dalam diskusi tentang pengelolaan kecerdasan buatan yang semakin maju. Pertanyaan tentang tanggung jawab AI, pengawasan, privasi data, dan dampak sosial akan semakin mendesak. Regulasi yang bijaksana dan kolaborasi lintas sektor akan menjadi sangat penting untuk memastikan bahwa pengembangan AI menghasilkan manfaat yang maksimal tanpa membahayakan masyarakat.


Kesimpulan

Perkembangan AI di masa depan akan menjanjikan era baru kecerdasan buatan yang canggih dan bermanfaat. Dengan kapasitas pemrosesan yang meningkat, kemampuan AI yang mendekati kecerdasan manusia, interaksi yang lebih natural, serta perhatian yang lebih besar terhadap etika dan regulasi, masa depan AI terlihat sangat menjanjikan. Namun, penting untuk diingat bahwa kemajuan ini juga dapat menimbulkan tantangan dan pertimbangan yang diperlukan untuk menyikapi hal ini dengan bijak. Melalui kerja keras, kolaborasi, dan pertimbangan yang matang, kita dapat mengarahkan pengembangan AI menuju masa depan yang lebih cerdas dan efisien.


Sunting oleh: Fathur Network



Popular Posts

Fathur Network

Halo semuanya, di sini saya membuat artikel

Translate

Visitors

Like This Page

Todays Date

Cool Blue Outer Glow Pointer