MSIM4203 - Modul 1
Ringkasan materi Pengantar Algoritma dan Pemrograman untuk persiapan UAS MSIM4203
Pengantar Algoritma dan Pemrograman Komputer
Pengertian Algoritma
Algoritma adalah urutan operasi yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah guna menghasilkan output tertentu. Algoritma harus efisien, karena penggunaan algoritma yang salah dapat memakan waktu dan sumber daya yang tidak efektif.
Beberapa definisi algoritma menurut pakar:
- Abu Ja'far Muhammad Ibnu Musa Al-Khawarizmi: Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah.
- Donald E. Knuth: Algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan proses-proses untuk menyelesaikan suatu masalah yang khusus.
- David Bolton: Algoritma adalah deskripsi dari suatu prosedur yang berakhir dengan sebuah output.
- Andrey Andreyevich Markov: Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan.
Alasan Menggunakan Algoritma
Algoritma digunakan dalam ilmu komputer untuk mendeskripsikan metode pemecahan masalah yang terbatas, deterministik, dan efektif. Alasan utama mempelajari algoritma adalah kemampuannya untuk memecahkan masalah kompleks dengan waktu eksekusi singkat.
Manfaat utama menggunakan algoritma:
- Efisiensi: Algoritma yang efisien mempertimbangkan waktu CPU dan memori, menghasilkan solusi yang cepat dan tepat.
- Abstraksi: Mampu mengurai permasalahan yang rumit menjadi lebih mudah dan sederhana.
- Reusability: Algoritma adalah metode yang dapat digunakan kembali berkali-kali pada berbagai situasi tanpa terikat bahasa pemrograman tertentu.
Pengertian Program dan Bahasa Pemrograman
Program
Program adalah satu set instruksi berkode yang dapat dimengerti oleh komputer untuk memecahkan masalah atau menghasilkan output yang diinginkan.
Dua kelompok besar program komputer:
- Sistem Operasi (OS): Program komputer yang menyediakan instruksi paling mendasar untuk operasi komputer, mengelola perangkat keras dan lunak, serta menyediakan layanan umum. Contoh: Windows, Linux, MacOS.
- Program Aplikasi: Program yang berjalan di atas sistem operasi untuk melakukan pekerjaan sesuai tujuan pengguna, seperti pengolah kata, perhitungan, atau presentasi.
Bahasa Pemrograman
Bahasa Pemrograman (Programming Language) adalah bahasa formal berupa set instruksi untuk komputer yang menghasilkan keluaran. Digunakan untuk mengimplementasikan algoritma. Komputer hanya dapat memahami kode biner '0' dan '1'.
Klasifikasi bahasa pemrograman:
- Bahasa pemrograman tingkat rendah (Bahasa Mesin): Bahasa yang langsung diolah tanpa kompilasi (kode biner).
- Bahasa pemrograman tingkat menengah (Bahasa Rakitan/Assembly): Menggunakan kode singkat (mnemonic) seperti MOV, SUB, CMP.
- Bahasa pemrograman tingkat tinggi: Menggunakan keyword yang menyerupai bahasa manusia (misalnya Bahasa Inggris), berorientasi objek, berbasis web, atau mobile. Contoh: Visual Basic, Delphi, Pascal, PHP, Java.
Programmer
Programmer adalah orang yang secara profesional bertanggung jawab atas perangkat lunak. Terdapat spesialisasi seperti:
- Pemrograman sistem: Berfokus pada perangkat lunak sistem komputer (sistem operasi) dan program kontrol sistem.
- Pemrograman aplikasi: Bertujuan menghasilkan perangkat lunak yang menyediakan layanan langsung kepada pengguna.
Penyelesaian Masalah dengan Program
Tiga konsep penting dalam penyelesaian masalah menggunakan program:
- Menganalisis masalah dan membuat algoritma: Mengidentifikasi masalah, data masukan/keluaran, lalu membuat proses yang jelas, urut, dan sistematis. Jika kompleks, dipecah menjadi sub-proses.
- Menuangkan algoritma ke dalam bentuk program: Mentransformasikan algoritma ke dalam bahasa pemrograman yang dikuasai oleh programmer.
- Mengeksekusi dan menguji program: Mengkompilasi dan menguji program untuk memastikan kebenarannya dan memperbaikinya jika ada kesalahan.
Ekspresi Algoritma
Algoritma dapat diekspresikan dengan berbagai notasi:
- Bahasa alami: Cenderung ambigu dan jarang digunakan untuk algoritma kompleks.
- Flowchart: Representasi grafis dari urutan langkah-langkah algoritma.
- Pseudocode: Deskripsi informal, ringkas, dan struktural dari algoritma yang mendekati bahasa pemrograman, mudah dibaca manusia.
- Bahasa pemrograman: Kode program yang dapat langsung dijalankan oleh komputer.
Algoritma yang baik efisien dalam penggunaan sumber daya dan waktu.
Ciri-ciri dan Manfaat Mempelajari Algoritma
Ciri-ciri Algoritma
- Memiliki input dan output.
- Memiliki proses tertentu.
- Prosesnya merupakan pola pikir yang logis dalam menghasilkan output.
- Memiliki instruksi yang jelas dan tidak ambigu.
- Memiliki stopping role (proses pemberhentian).
Manfaat Mempelajari Algoritma
- Meningkatkan kemampuan berpikir secara logis.
- Mengembangkan cara berpikir secara sistematis.
- Mempertajam analisis ketika pembuatan program.
- Meningkatkan kemampuan dalam mengatasi masalah.
Pedoman Penyusunan Algoritma
Menurut Ellis Horowitz dan Sartaj Sahni, syarat ketercapaian suatu algoritma adalah:
- Input: Boleh nol atau lebih masukan.
- Output: Memiliki satu keluaran atau lebih.
- Definiteness: Setiap instruksi jelas dan tidak ambigu.
- Finiteness: Algoritma harus memiliki akhir setelah melakukan proses.
- Effectiveness: Semua operasi bersifat sederhana dan dapat diselesaikan dengan waktu singkat.
Struktur Dasar Algoritma
Ada tiga struktur dasar dalam algoritma: sekuensial, seleksi, dan perulangan.
Sekuensial (Sequential)
Struktur dasar sekuensial adalah algoritma yang dikerjakan langkah demi langkah secara berurutan, dari awal hingga akhir, tanpa melewatkan satu langkah pun. Komputer akan memproses instruksi baris demi baris.
Ciri utama sequential: Instruksi dieksekusi satu per satu sesuai urutan penulisannya.
Contoh: Menghitung kecepatan dan percepatan, dimana perhitungan kecepatan harus mendahului perhitungan percepatan.
Seleksi (Selection)
Struktur seleksi digunakan ketika ada dua atau lebih alternatif penyelesaian/keputusan berdasarkan kondisi tertentu. Program akan memilih jalur eksekusi yang berbeda tergantung pada hasil evaluasi kondisi.
Ciri utama seleksi: Memiliki kondisi yang mengevaluasi dan memilih salah satu dari beberapa alternatif tindakan.
Contoh: Membandingkan dua nilai ( a dan b) untuk menentukan mana yang lebih besar atau sama dengan.
Perulangan (Looping)
Struktur perulangan digunakan untuk mengulang serangkaian instruksi berkali-kali hingga kondisi tertentu terpenuhi. Ini sangat efektif untuk tugas yang repetitif dan dapat menghemat banyak baris kode.
Ciri utama perulangan: Melakukan eksekusi blok kode berulang kali sampai kondisi penghentian tercapai.
Contoh: Mencetak angka dari 1 hingga 100. Jika menggunakan sekuensial, ini akan sangat tidak efektif, namun dengan perulangan, cukup mengubah kondisi batas.
Poin Penting
- Algoritma adalah urutan langkah logis dan sistematis untuk memecahkan masalah.
- Efisiensi, abstraksi, dan reusability adalah alasan utama penggunaan algoritma.
- Program adalah kumpulan instruksi, sedangkan bahasa pemrograman adalah alatnya.
- Ada dua jenis program besar: Sistem Operasi dan Program Aplikasi.
- Bahasa pemrograman diklasifikasikan menjadi tingkat rendah, menengah, dan tinggi.
- Penyelesaian masalah dengan program melibatkan analisis, penulisan algoritma, dan pengujian.
- Algoritma dapat diekspresikan melalui bahasa alami, flowchart, atau pseudocode.
- Ciri algoritma meliputi input/output, proses, instruksi jelas, dan stopping role.
- Manfaat mempelajari algoritma adalah meningkatkan kemampuan logis, sistematis, analitis, dan pemecahan masalah.
- Tiga struktur dasar algoritma adalah sekuensial (berurutan), seleksi (pemilihan kondisi), dan perulangan (repetisi).
- Struktur seleksi dan perulangan seringkali digabungkan untuk menyelesaikan masalah yang lebih kompleks secara efisien.
Tes Formatif 1 — Kegiatan Belajar 1
1.Suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah untuk menghasilkan suatu output tertentu definisi dari ...
2.Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah, definisi ini menurut ...
3.Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan, definisi ini menurut ...
4.Pengembang tidak mempertimbangkan waktu dan memori yang terkuras oleh algoritma yang digunakan. Narasi di atas bertentangan dengan alasan adopsi penggunaan algoritma pada poin ...
5.Bahasa Pemrograman yang pertama di dunia adalah ...
6.Program yang berjalan pada sistem operasi dan melakukan pekerjaan sesuai tujuan kehendak kita misal pengolah kata, perhitungan (olah data), presentasi video, suara dan sebagainya. Suatu program umumnya ditulis dengan menggunakan suatu bahasa pemrograman tingkat tinggi. Kalimat di atas mewakili dari definisi ...
7.Tiga alasan kenapa harus menggunakan algoritma, yaitu ...
8.Mempertajam analisis ketika pembuatan program, adalah bagian dari ...
9.Mengidentifikasi data yang menjadi masukan/keluaran, kemudian membuat proses yang mengolah semua data yang masuk menjadi suatu keluaran yang diinginkan. Semua proses harus berisi instruksi yang jelas, urut dan runtut sampai permasalahan bisa diurai, narasi di atas lebih tepat pada penyelesaian masalah pada bagian ...
10.Effectiveness, artinya ...
Tes Formatif 2 — Kegiatan Belajar 2
1.Struktur dasar algoritma yang menyelesaikan semua langkah dari setiap proses dalam algoritma adalah ...
2.Sebuah algoritma yang mengandung 2 atau lebih alternatif solusi termasuk dalam struktur dasar ...
3.Jika kita ingin mencetak angka 1 sampai 100, lebih cocok menggunakan struktur dasar algoritma ...
4.Algoritma yang terdapat didalamnya ada yang dibandingkan dan ada pembanding, struktur algoritma tersebut disebut dengan ...
5.Jika sebuah algoritma mengandung seleksi maka bisa dipastikan bahwa algoritma tersebut tidak mengandung struktur dasar ...
6.Struktur dasar yang bisa digabung dan saling mengisi adalah struktur dasar algoritma ...
7.Jika ada struktur dasar algoritma skuensial, bisa dipastikan bahwa struktur dasar algoritma yang tidak ada adalah ...
8.Jika sebuah variabel c = 5, kemudian dalam sebuah perulangan dibuat c = c + 1, dan dilakukan perulangan selama 5 kali, berapakah nilai c di akhir perulangan?
9.Jika sebuah variabel c = 5, kemudian dalam sebuah perulangan dibuat kondisi jika c = 7 maka operasi c = c + 2, jika tidak operasi c = c + 1, perulangan dilakukan perulangan selama 5 kali, berapakah nilai c di akhir perulangan?
10.Jika sebuah variabel k = 10, kemudian dalam sebuah perulangan dibuat kondisi jika k = 11 maka operasi k = k + 1, jika tidak maka operasi k = k + 2, perulangan dilakukan perulangan selama 6 kali, berapakah nilai k di akhir perulangan?