Apa itu pengembangan perangkat lunak?  
Jelajahi solusi pengembangan perangkat lunak IBM Berlangganan pembaruan cloud
Grafik menunjukkan berbagai elemen pengembangan perangkat lunak mulai dari pembuatan, analisis, pengamanan, hingga penerapan solusi
Apa itu pengembangan perangkat lunak?

Pengembangan perangkat lunak mengacu pada serangkaian aktivitas ilmu komputer khusus untuk proses pembuatan, perancangan, penerapan, dan dukungan perangkat lunak.

Perangkat lunak itu sendiri adalah serangkaian instruksi atau program yang memberi tahu komputer apa yang harus dilakukan. Perangkat lunak tidak bergantung pada perangkat keras dan membuat komputer dapat diprogram. Terdapat tiga jenis dasar:

Perangkat lunak sistem untuk menyediakan fungsi inti seperti sistem operasi, manajemen disk, utilitas, manajemen perangkat keras, dan kebutuhan operasional lainnya.

Perangkat lunak pemrograman untuk memberi alat bagi pengembang seperti editor teks, compiler, linker, debugger, dan alat lain untuk membuat kode.

Perangkat lunak aplikasi (aplikasi atau app) untuk membantu pengguna melakukan tugas. Contohnya, rangkaian produktivitas kantor, perangkat lunak manajemen data, pemutar media, dan program keamanan. Aplikasi juga merujuk pada aplikasi web dan seluler seperti yang digunakan untuk berbelanja di Amazon.com, bersosialisasi dengan Facebook, atau memposting foto ke Instagram.1

Jenis keempat adalah perangkat lunak tersemat. Perangkat lunak sistem tersemat digunakan untuk mengontrol mesin dan perangkat selain komputer, misalnya jaringan telekomunikasi, mobil, robot industri, dan lain-lain. Perangkat tersebut dan perangkat lunaknya dapat dihubungkan sebagai bagian dari Internet of Things (IoT).2

Pengembangan perangkat lunak terutama dilakukan oleh pemrogram, insinyur perangkat lunak, dan pengembang perangkat lunak. Peran-peran tersebut saling berinteraksi dan tumpang tindih, dan dinamika di antaranya sangat bervariasi di seluruh departemen dan komunitas pengembangan.  

Pemrogram, atau pembuat kode, menulis kode sumber untuk memprogram komputer untuk tugas-tugas khusus seperti menggabungkan database, memproses pesanan online, merutekan komunikasi, melakukan riset, atau menampilkan teks dan grafis. Pemrogram umumnya menafsirkan instruksi dari pengembang dan insinyur perangkat lunak dan menggunakan bahasa pemrograman seperti C++ atau Java untuk menjalankannya.

Insinyur perangkat lunak menerapkan prinsip rekayasa untuk membangun perangkat lunak dan sistem untuk memecahkan masalah. Mereka menggunakan bahasa pemodelan dan alat lain untuk merancang solusi yang dapat diterapkan ke masalah secara umum, tidak hanya memecahkan masalah spesifik per instance atau klien tertentu. Solusi rekayasa perangkat lunak mematuhi metode ilmiah dan harus berfungsi di dunia nyata, seperti untuk jembatan atau lift. Tanggung jawab mereka telah berkembang karena produknya telah menjadi makin cerdas dengan penambahan mikroprosesor, sensor, dan perangkat lunak. Tidak hanya lebih banyak produk bergantung pada perangkat lunak untuk pembeda di pasar, tetapi pengembangan perangkat lunak mereka juga harus dikoordinasikan dengan pekerjaan pengembangan mekanik dan listrik produk.

Pengembang perangkat lunak memiliki peran yang kurang formal dibandingkan insinyur dan dapat terlibat langsung dalam area proyek tertentu, termasuk penulisan kode. Selain itu, mereka juga menjalankan siklus pengembangan perangkat lunak keseluruhan, termasuk pekerjaan di tim fungsional untuk mengubah persyaratan menjadi fitur, mengelola tim dan proses pengembangan, dan melakukan pengujian serta pemeliharaan perangkat lunak.3

Pekerjaan pengembangan perangkat lunak tidak terbatas pada pembuat kode atau tim pengembangan. Para profesional seperti ilmuwan, pembuat perangkat, dan pembuat perangkat keras juga menciptakan kode perangkat lunak meskipun mereka bukan pengembang perangkat lunak utama. Pekerjaan ini juga tidak terbatas pada industri teknologi informasi tradisional seperti bisnis perangkat lunak atau semikonduktor. Bahkan, menurut Brookings Institute (tautan berada di luar ibm.com), bisnis tersebut "mencakup kurang dari setengah perusahaan yang melakukan pengembangan perangkat lunak."

Yang menjadi perbedaan penting adalah antara pengembangan perangkat lunak kustom dan pengembangan perangkat lunak komersial. Pengembangan perangkat lunak kustom adalah proses merancang, menciptakan, menerapkan, dan mengelola perangkat lunak untuk pengguna, fungsi, atau organisasi khusus. Sebaliknya, perangkat lunak komersial siap pakai (COTS) dirancang untuk persyaratan yang luas, memungkinkannya dikemas, dipasarkan, dan didistribusikan secara komersial.

Raih fleksibilitas tempat kerja dengan DaaS

Baca bagaimana desktop sebagai layanan (DaaS) memungkinkan perusahaan mencapai tingkat performa dan keamanan yang sama dengan penerapan aplikasi on premises.

Konten terkait

Daftar untuk panduan tentang cloud hybrid

Langkah-langkah proses pengembangan perangkat lunak

Proses mengembangkan perangkat lunak biasanya meliputi langkah-langkah berikut:

  • Memilih metodologi untuk menetapkan kerangka kerja sebagai tempat langkah-langkah pengembangan perangkat lunak diterapkan. Metodologi menggambarkan rencana atau proses kerja keseluruhan untuk proyek. Metodologi dapat mencakup pengembangan Tangkas, DevOps, Rapid Application Development (RAD), Scaled Agile Framework (SAFe), Waterfall, dan lain-lain.
  • Mengumpulkan persyaratan untuk memahami dan mendokumentasikan apa yang diperlukan oleh pengguna dan pemangku kepentingan lainnya.
  • Memilih atau membangun arsitektur sebagai struktur dasar di dalam perangkat lunak yang akan dioperasikan.
  • Mengembangkan desain dengan berorientasi pada solusi untuk masalah yang diuraikan dalam persyaratan, yang seringkali melibatkan model proses dan storyboard.
  • Membangun model dengan alat pemodelan yang menggunakan bahasa pemodelan seperti SysML atau UML untuk melakukan validasi awal, pembuatan prototipe, dan simulasi desain.
  • Membangun kode dalam bahasa pemrograman yang sesuai. Melibatkan tinjauan rekan dan tim untuk mengeliminasi masalah lebih awal dan menghasilkan perangkat lunak berkualitas lebih cepat.
  • Pengujian dengan skenario yang direncanakan sebelumnya sebagai bagian dari perancangan dan pengkodean perangkat lunak, kemudian melakukan pengujian kinerja untuk menyimulasikan pengujian beban aplikasi.
  • Mengelola konfigurasi dan kecacatan untuk memahami semua artefak perangkat lunak (persyaratan, desain, kode, pengujian), dan membangun versi perangkat lunak yang berbeda. Menetapkan prioritas jaminan kualitas dan merilis kriteria untuk mengatasi dan melacak kecacatan.
  • Menerapkan perangkat lunak untuk digunakan dan merespons serta memecahkan masalah pengguna.
  • Memigrasi data ke perangkat lunak yang baru atau diperbarui dari aplikasi atau sumber data yang ada jika perlu.
  • Mengelola dan mengukur proyek untuk memelihara kualitas dan hasil selama siklus aplikasi, dan untuk mengevaluasi proses pengembangan dengan model seperti Capability Maturity Model (CMM).

Langkah-langkah proses pengembangan perangkat lunak sesuai dengan manajemen siklus aplikasi (ALM). Solusi IBM Engineering Management adalah rangkaian unggulan ALM yang memungkinkan manajemen pengembangan mekanik, listrik, dan perangkat lunak secara paralel.

  • Analisis dan spesifikasi persyaratan
  • Desain dan pengembangan
  • Pengujian
  • Deployment
  • Pemeliharaan dan dukungan

Langkah-langkah proses pengembangan perangkat lunak dapat dikelompokkan menjadi fase siklus, tetapi siklus ini penting karena berdaur ulang untuk memungkinkan perbaikan berkelanjutan. Contohnya, masalah pengguna yang muncul di fase pemeliharaan dan dukungan dapat menjadi persyaratan di awal siklus berikutnya.

Mengapa pengembangan perangkat lunak penting?

Pengembangan perangkat lunak juga penting karena cakupan penggunaannya luas. Seperti yang dikatakan wakil presiden IBM sekaligus blogger Dibbe Edwards: "Perangkat lunak telah muncul sebagai pembeda utama dalam banyak produk, mulai dari mobil hingga mesin cuci, hingga termostat, dengan Internet of Things yang menghubungkannya."

Beberapa contoh:

  • Soul Machines (tautan berada di luar ibm.com) menggunakan perangkat lunak untuk menciptakan penasihat online buatan yang meningkatkan layanan pelanggan dan efisiensi. Penasihat itu memiliki wajah manusia, ekspresi dan suara yang bereaksi secara cerdas, berempati, dan efisien sesuai pertanyaan dan kebutuhan pelanggan. Mereka dapat menjawab lebih dari 40 persen pertanyaan pelanggan tanpa intervensi manusia, dan mereka belajar dari interaksi tersebut untuk meningkatkan kemampuan seiring waktu. Dengan menggunakan IBM watsonx Assistant untuk menggabungkan kemampuan kecerdasan buatan (AI) ke dalam proses pengembangan, Soul Machines dapat menciptakan dan meluncurkan penasihat buatan dalam waktu 8 sampai 12 minggu.
  • "Ini adalah perlombaan," ujar Erik Bak-Mikkelsen. "Kami harus terus mengikuti perkembangan pasar." Bak-Mikkelsen adalah kepala operasi cloud di car2go (tautan berada di luar ibm.com). Ia memahami bahwa memberikan fitur dan fungsi baru ke aplikasi berbagi tumpangan dan kendaraan car2go adalah kunci untuk menjadi unggul. Untuk melakukannya, car2go memindahkan operasi pengembangannya ke cloud dengan layanan terkelola dan mengadopsi model pengembangan DevOps. Hasilnya adalah siklus pengembangan yang dipercepat, waktu rilis ke pasar yang lebih cepat, dan kemampuan untuk menskalakan pertumbuhan di masa depan.
  • Bekerja dengan jalur daya listrik dapat mematikan. Agar selalu aman, insinyur mengatur "penguncian" listrik menggunakan label fisik dan gembok untuk mengalihkan daya dari lokasi kerja. Perusahaan energi Prancis Enedis (tautan berada di luar ibm.com) bekerja dengan IBM Garage for Cloud untuk mengembangkan perangkat lunak yang melengkapi gembok dan label tersebut, dan mengikatnya ke jaringan bersama. Label dan gembok tersebut mendeteksi setiap kali dipindahkan dari mobil insinyur dan mengomunikasikan waktu dan lokasi geografis nya. Ketika insinyur memasang gembok, lokasinya direkam pada peta digital. Semua pemangku kepentingan dapat melihat peta untuk memastikan keamanan, mengurangi waktu henti, dan memfasilitasi perbaikan. Pendekatan pengembangan kolaboratif IBM Cloud Garage memungkinkan Enedis untuk mengembangkan prototipe siap pakai dalam tiga bulan.
Fitur utama dari pengembangan perangkat lunak yang efektif

Menggunakan pengembangan perangkat lunak untuk membedakan merek dan mendapatkan keuntungan kompetitif memerlukan kecakapan teknik dan teknologi yang dapat mempercepat penerapan, kualitas, dan efisiensi perangkat lunak.

  • Kecerdasan Buatan (AI): AI memungkinkan perangkat lunak untuk mengemulasikan pembuatan keputusan dan pembelajaran oleh manusia. Jaringan neural, machine learning, pemrosesan bahasa alami, dan kemampuan kognitif memberikan peluang kepada pengembang dan bisnis untuk menawarkan produk dan jasa yang menciptakan disrupsi pasar dan mengungguli kompetitor. IBM Watson menawarkan cara bagi pengembang untuk terhubung dan menggunakan layanan kecerdasan buatan sebagai bagian dari aplikasi mereka melalui antarmuka pemrograman aplikasi atau API. Anda dapat menggunakan IBM Watson untuk meningkatkan persyaratan produk Anda dengan memeriksa apakah terdapat ambiguitas, aktor yang tidak jelas, persyaratan gabungan atau negatif, unit atau toleransi yang tidak tersedia, persyaratan yang tidak lengkap, dan kuantitas yang tidak spesifik.
  • Pengembangan cloud native: Pengembangan cloud native adalah suatu cara membangun aplikasi untuk menggunakan lingkungan cloud. Aplikasi cloud native terdiri dari komponen terpisah yang dapat digunakan ulang yang disebut sebagai layanan mikro yang dirancang untuk integrasi ke dalam lingkungan cloud apa pun. Layanan mikro ini bertindak sebagai unsur pembangun dan seringkali dikemas dalam kontainer. Karena arsitektur ini, aplikasi cloud native dapat menggunakan lingkungan cloud untuk meningkatkan kinerja, fleksibilitas, dan ekstensibilitas aplikasi.
  • Pengembangan berbasis cloud: Sama seperti organisasi TI yang memanfaatkan cloud untuk meningkatkan manajemen sumber daya dan mengurangi biaya, begitu pula organisasi pengembangan perangkat lunak. Dengan begitu, cloud dapat digunakan sebagai lingkungan pengembangan terintegrasi (IDE) yang cepat, fleksibel, dan hemat biaya atau Platform sebagai Layanan (PaaS)pengembangan. Lingkungan pengembangan berbasis cloud dapat mendukung pengkodean, desain, integrasi, pengujian, dan fungsi pengembangan lainnya. Lingkungan ini juga dapat menawarkan akses ke API, layanan mikro, DevOps, dan alat pengembangan, layanan, dan keahlian lainnya. 
  • Blockchain:  Blockchain adalah buku besar yang aman dan terhubung secara digital yang menghilangkan biaya dan kerentanan dari pihak-pihak seperti bank, badan regulasi, dan perantara lainnya. Blockchain mentransformasi bisnis dengan membebaskan modal, mempercepat proses, menurunkan biaya transaksi, dan sebagainya.  Blockchain memberikan peluang yang besar untuk pengembangan perangkat lunak. Pengembang bekerja dengan buku besar terdistribusi dan teknologi Hyperledger sumber terbuka (tautan berada di luar ibm.com) untuk mengubah cara bisnis beroperasi.
  • Kode rendah: Forrester mendefinisikan kode rendah sebagai: "Produk dan/atau layanan cloud untuk pengembangan aplikasi yang menerapkan teknik visual yang deklaratif, alih-alih pemrograman, dan tersedia untuk pelanggan dengan biaya rendah atau tanpa biaya dan pelatihan ..." 4 Singkatnya, kode rendah adalah praktik pengembangan yang menurunkan kebutuhan akan pengkodean, dan memungkinkan non-pembuat kode atau pengembang awam untuk membangun atau membantu membangun aplikasi dengan cepat dan biaya rendah.
  • Analitik: Permintaan tahunan akan ilmuwan data, pengembang data, dan insinyur data akan mencapai hampir 700.000 lowongan pada tahun 2020. Permintaan ini menunjukkan betapa penting bagi perusahaan untuk mendapatkan insight dan nilai dari ledakan data. Oleh karena itu, pengembang perangkat lunak mengintegrasikan kemampuan analitik tingkat lanjut ke dalam aplikasi mereka. Layanan dan API berbasis cloud membuatnya lebih mudah untuk memandu eksplorasi data, mengotomatiskan analisis prediktif, menciptakan dasbor yang memberikan insight baru, dan meningkatkan pengambilan keputusan.
  • Rekayasa Sistem Berbasis Model (MBSE): Dalam MBSE, bahasa pemodelan perangkat lunak digunakan untuk melakukan pembuatan prototipe awal, simulasi, dan analisis desain perangkat lunak untuk validasi awal. Membangun desain di MBSE membantu Anda menganalisis dan menguraikan persyaratan proyek dan bergerak cepat dari desain ke implementasi.  
  • Seluler: Kemampuan kunci untuk para pengembang perangkat lunak adalah menciptakan aplikasi seluler dengan koneksi mendalam ke data yang memperkaya dan meningkatkan pengalaman pengguna. Forrester menemukan bahwa "mengintegrasikan data pelanggan digital/seluler secara mendalam memiliki efek yang kuat terhadap cara pelanggan berinteraksi dengan merek."

 

Glosarium singkat
  • Pengembangan Tangkas menguraikan persyaratan menjadi fungsi-fungsi yang dapat digunakan dan menghasilkan fungsi tersebut dengan cepat melalui pengembangan bertahap. Loop masukan membantu menemukan dan memperbaiki cacat ketika fungsionalitas terus diterapkan.
  • Capability Maturity Model (CMM) menilai kecakapan proses pengembangan perangkat lunak. Model ini melacak kemajuan dari tindakan ad hoc untuk menentukan langkah untuk mengukur hasil dan mengoptimalkan proses.
  • DevOps, kombinasi pengembangan dan operasi, adalah sebuah pendekatan berbasis metodologi tangkas yang menggabungkan pengembangan perangkat lunak dan operasi TI ke dalam desain, pengembangan, penerapan, dan dukungan perangkat lunak.

  • Pengembangan aplikasi cepat (RAD) adalah pendekatan non-linier yang memadatkan desain dan konstruksi kode ke dalam satu langkah yang saling terhubung.

  • Scaled Agile Framework (SAFe) memberikan cara untuk menskalakan metodologi tangkas ke sebuah tim atau organisasi pengembangan perangkat lunak yang lebih besar.

  • Waterfall, sering dianggap sebagai metodologi pengembangan perangkat lunak tradisional, adalah serangkaian langkah linier bertingkat dari perencanaan dan pengumpulan persyaratan hingga penerapan dan pemeliharaan.
Alat dan solusi pengembangan perangkat lunak
IBM Engineering Systems Design Rhapsody

Solusi yang terbukti untuk aktivitas pemodelan dan desain yang membantu Anda menghasilkan perangkat lunak dan sistem berkualitas tinggi lebih cepat.

Jelajahi IBM Engineering Systems Design Rhapsody
IBM Engineering Workflow Management

Kontrol versi perangkat lunak tingkat lanjut, manajemen ruang kerja, kontrol sumber terdistribusi, dan dukungan pengembangan paralel untuk individu dan tim meningkatkan produktivitas dengan melacak perubahan artefak secara otomatis. Perangkat lunak ini memungkinkan fitur jeda-dan-lanjutkan yang nyaris tak terbatas untuk menangani gangguan kerja.

Jelajahi Manajemen Alur Kerja Rekayasa IBM
IBM Engineering Lifecycle Optimization – Adaptor Terintegrasi

Memberikan koneksi antara alat IBM Engineering Lifecycle Management dan alat pihak ketiga seperti Git, GitLib, dan GitHub untuk mengelola kontrol versi perangkat lunak.

Jelajahi IBM Engineering Lifecycle Optimization
Sumber daya pengembangan perangkat lunak Pengembangan perangkat lunak pada IBM Developer

Kode, konten, komunitas, dan lainnya.

Buletin IBM Developer

Daftar untuk topik yang paling penting.

Lima langkah penting untuk menghasilkan perangkat lunak yang sukses

Penuhi kebutuhan bisnis yang kompleks dengan kecepatan dan ketangkasan dengan menghubungkan Anda ke alat pengembangan perangkat lunak.

Baca Publikasi IBM Research

Riset ilmu komputer kami saat ini berfokus pada penemuan terobosan otomatisasi, pemrosesan informasi, dan komputasi.

Ambil langkah selanjutnya

IBM Engineering Lifecycle Management (ELM) dapat membantu Anda merangkul pendekatan manajemen menyeluruh untuk sistem dan pengembangan perangkat lunak Anda. Taklukkan kompleksitas mulai dari desain hingga eksekusi, satukan tim melalui utas digital, manfaatkan pemodelan dan penggunaan ulang, manfaatkan wawasan dari pelaporan otomatis, dan operasikan dengan percaya diri dalam skala besar.

Jelajahi ELM Pesan demo langsung