Pertemuan 1 - Pendahuluan algoritma dan struktur data
1. Pengertian Algoritma
Algoritma adalah langkah-langkah sistematis dan logis yang digunakan untuk menyelesaikan suatu masalah atau melakukan suatu tugas. Dalam ilmu komputer, algoritma digunakan untuk merancang dan mengimplementasikan program yang efisien dan dapat diandalkan.
Ciri-ciri Algoritma:
- Well-defined: Setiap langkah harus jelas dan tidak ambigu.
- Finiteness: Algoritma harus memiliki jumlah langkah yang terbatas.
- Input: Memiliki nol atau lebih masukan.
- Output: Menghasilkan setidaknya satu keluaran.
- Effectiveness: Setiap langkah harus dapat dieksekusi dalam waktu yang wajar.
2. Pengertian Struktur Data
Struktur data adalah cara penyimpanan, pengorganisasian, dan pengelolaan data agar dapat digunakan secara efisien dalam suatu program komputer. Struktur data yang baik membantu meningkatkan efisiensi algoritma dalam pengolahan data.
Jenis-jenis Struktur Data:
1.Struktur Data Linear:
- Array
- Linked List
- Stack
- Queue
2.Struktur Data Non-Linear:
- Tree (Pohon)
- Graph (Graf)
3.Struktur Data Hashing:
- Hash Table
- Hash Map
3. Hubungan antara Algoritma dan Struktur Data
Algoritma dan struktur data saling berkaitan erat dalam pemrograman. Pemilihan algoritma yang tepat sering kali bergantung pada struktur data yang digunakan. Sebagai contoh:
- Algoritma pencarian dapat lebih cepat jika menggunakan struktur data yang sesuai seperti Binary Search Tree.
- Algoritma sorting seperti Merge Sort dan Quick Sort lebih efisien jika struktur data mendukung operasi akses yang cepat.
4. Contoh Algoritma Sederhana
Algoritma Pseudocode untuk Mencari Bilangan Terbesar dari Tiga Angka
1. Mulai
2. Masukkan tiga angka: A, B, C
3. Jika A > B dan A > C, maka terbesar = A
4. Jika B > A dan B > C, maka terbesar = B
5. Jika C > A dan C > B, maka terbesar = C
6. Tampilkan nilai terbesar
7. Selesai
5. Kesimpulan
Algoritma dan struktur data merupakan dua konsep fundamental dalam pemrograman. Dengan memahami dan menerapkan konsep ini dengan baik, pengembang dapat membuat program yang lebih optimal, efisien, dan mudah dikelola.