Dalam dunia ilmu komputer yang begitu luas, pengembangan kerangka teoritis untuk rekayasa algoritma telah menjadi misi utama. Melalui artikel yang ditulis oleh Jan Mendling, Henrik Leopold, Henning Meyerhenke, dan Benot Depaire, kita diajak untuk menjelajahi dunia kompleks ini. Artikel tersebut bertajuk "Methodology of Algorithm Engineering" yang diterbitkan pada tahun 2023.
Pendahuluan makalah ini menggugah pemikiran kita tentang pentingnya memiliki kerangka metodologis yang solid untuk mengintegrasikan perspektif dari berbagai sub-disiplin dalam ilmu komputer. Selama bertahun-tahun, perkembangan algoritma telah menciptakan pandangan yang berbeda, dan seringkali tak ada konsensus. Oleh karena itu, artikel ini menekankan perlunya menjelaskan dan mengembangkan kerangka teoritis dalam tiga dimensi: ontologi, epistemologi, dan metodologi. Dalam perjalanan ini, kita akan menjelajahi aspek-aspek ontologi, epistemologi, dan metodologi dalam rekayasa algoritma, serta implikasi etisnya.
Ontologi Rekayasa Algoritma: Mendefinisikan Entitas
Mengawali perjalanan ini, mari kita menjelajahi ontologi dalam rekayasa algoritma. Ontologi di sini bukan tentang metafisika, melainkan tentang entitas yang terkait dengan praktik rekayasa algoritma. Empat entitas utama menjadi fokus: masalah dunia nyata, tugas algoritmik, desain algoritma, dan implementasi algoritma.
Masalah dunia nyata adalah bagian dari realitas yang seringkali kompleks dan kurang terdefinisi dengan baik. Penggagasannya oleh Ackoff menyoroti tantangan yang terlibat dalam memahami dinamika masalah nyata.
Selanjutnya, tugas algoritmik adalah deskripsi tentang apa yang harus dicapai oleh algoritma, dengan mempertimbangkan konteksnya. Ini adalah fondasi bagi desain algoritma, menguraikan tujuan algoritma dan spesifikasi yang harus dipenuhi.
Desain algoritma, pada gilirannya, adalah proses pembuatan rencana langkah demi langkah untuk menyelesaikan masalah menggunakan komputer. Ini mencakup pemikiran tentang urutan operasi yang akan digunakan dan efisiensi algoritma.
Implementasi algoritma adalah langkah selanjutnya, yang melibatkan menerjemahkan desain algoritma ke dalam bahasa pemrograman tertentu. Bahasa pemrograman dan lingkungan eksekusi memengaruhi kinerja algoritma.
Epistemologi Rekayasa Algoritma: Menjelajahi Pengetahuan
Epistemologi, dalam konteks rekayasa algoritma, berbicara tentang pengetahuan yang diperlukan untuk memahami desain algoritma dan tugas algoritmik. Dalam terminologi Popper, ini adalah Dunia 3 - pengetahuan objektif.