Anda di halaman 1dari 9

MAKALAH

BERPIKIR KOMPUTASIONAL

Guru Mata Pelajaran


M. Pandu Kurniawan, S.Tr.Kom

Disusun Oleh :
Kelompok 7
Satrio Ramadhan
Muhammad Nouval
Muhammad Alif Artalino
Nabil Wafi

Kelas X TJKT 5
SMK Muhammadiyah 1 Palembang
Sumatera Selatan
KATA PENGANTAR

Dalam dunia komputasi, pemahaman tentang algoritma, searching,


pengurutan, stack, dan queue adalah hal yang sangat penting. Algoritma merupakan
langkah-langkah yang didefinisikan secara jelas untuk menyelesaikan masalah atau
tugas tertentu. Searching dan pengurutan adalah operasi dasar dalam pengolahan
data. Stack dan queue adalah struktur data yang digunakan untuk mengatur dan
mengelola data. Makalah ini akan menjelaskan konsep-konsep tersebut secara
mendalam serta memberikan contoh penerapannya dalam pemrograman.

2
DAFTAR ISI
Cover Halaman 1
Kata Pengantar 2
Daftar Isi 3
Bab I Pendahuluan
- Latar Belakang 4
- Tujuan 4
- Manfaat 4
Bab II Isi
1. Algoritma 5
- Definisi Algoritma 5
- Karakteristik Algoritma 5
Desain Algoritma 5
2. Searching 5
- Searching Sequential 5
- Binary Search 5
- Analisis Efisiensi Searching 5
3. Pengurutan 6
- Pengurutan Bubble Sort 6
- Pengurutan Quick Sort 6
- Analisis Efisiensi Pengurutan 6
4. Stack 6
- Definisi Stack 6
- Operasi Stack (Push dan Pop) 6
- Penerapan Stack dalam Evaluasi Ekspresi Matematika 6
5. Queue 7
- Definisi Queue 7
- Operasi Queue (Enqueue dan Dequeue) 7
- Penerapan Queue dalam Antrian Pekerjaan 7
Kesimpulan 8
Daftar Pustaka 9

3
BAB I
PENDAHULUAN

Latar Belakang
Dalam era digital ini, penggunaan teknologi informasi telah merasuk ke hampir
semua aspek kehidupan kita, mulai dari pencarian informasi di internet hingga
pemrosesan data dalam industri. Konsep-konsep seperti algoritma, searching,
pengurutan, stack, dan queue merupakan fondasi dari pemrograman komputer dan
pengelolaan data. Oleh karena itu, memahami cara mereka bekerja adalah penting
untuk mengoptimalkan berbagai aspek kehidupan modern.

Tujuan
Makalah ini bertujuan untuk memberikan pemahaman yang mendalam tentang
konsep-konsep algoritma, searching, pengurutan, stack, dan queue. Tujuannya
adalah menjelaskan prinsip dasar di balik masing-masing konsep, memberikan
contoh penerapannya dalam pemrograman, dan menganalisis efisiensi mereka.
Dengan demikian, tujuan makalah ini adalah memberikan dasar yang kuat bagi
pembaca untuk memahami dan mengaplikasikan konsep-konsep tersebut dalam
berbagai konteks.

Manfaat
Manfaat dari pemahaman konsep-konsep algoritma, searching, pengurutan, stack,
dan queue sangat luas. Ini akan membantu pembaca dalam merancang solusi
pemrograman yang efisien, melakukan pencarian data dengan cepat, mengurutkan
data dengan benar, mengelola tumpukan tugas dengan efisien, dan mengatur antrian
pekerjaan dengan baik. Selain itu, pemahaman ini juga dapat meningkatkan
kemampuan analisis data dan mempersiapkan pembaca untuk menghadapi
tantangan dunia yang semakin terhubung dengan teknologi informasi.

4
BAB II
ISI
1. Algoritma
1.1. Definisi Algoritma
Algoritma adalah serangkaian langkah-langkah yang didefinisikan secara jelas
untuk menyelesaikan masalah atau tugas tertentu. Algoritma merupakan dasar dari
komputasi dan pemrograman. Sebuah algoritma harus memiliki karakteristik
seperti kejelasan, masukan, keluaran, dan berakhir.
1.2. Karakteristik Algoritma
Algoritma harus memenuhi beberapa karakteristik, termasuk kejelasan, efisiensi,
dan keluwesan. Kejelasan berarti setiap langkah dalam algoritma harus
didefinisikan dengan jelas. Efisiensi mengacu pada kemampuan algoritma untuk
menyelesaikan tugas dengan cepat dan menggunakan sumber daya yang efisien.
Keluwesan berarti algoritma harus dapat digunakan untuk berbagai input dan bukan
hanya untuk satu kasus khusus.
1.3. Desain Algoritma
Desain algoritma melibatkan pemikiran kreatif untuk mengembangkan pendekatan
yang efektif dalam menyelesaikan masalah. Beberapa teknik desain algoritma
meliputi "Divide and Conquer," "Dynamic Programming," dan "Greedy
Algorithms."

2. Searching
2.1. Searching Sequential
Searching sequential adalah metode pencarian sederhana di mana setiap elemen
dalam daftar diperiksa satu per satu sampai elemen yang dicari ditemukan.
Meskipun sederhana, metode ini mungkin tidak efisien untuk daftar besar.
2.2. Binary Search
Binary search adalah metode pencarian yang efisien untuk daftar yang telah
diurutkan. Ini bekerja dengan membagi daftar menjadi dua bagian dan memeriksa
elemen tengah. Jika elemen tengah lebih besar dari yang dicari, maka pencarian
dilanjutkan ke setengah kiri daftar; jika lebih kecil, maka ke setengah kanan.
Prosedur ini diulang hingga elemen yang dicari ditemukan atau seluruh daftar
diperiksa.
2.3. Analisis Efisiensi Searching
Analisis efisiensi mencakup perbandingan antara berbagai metode pencarian dan
kompleksitas waktu dalam notasi Big O. Binary search, misalnya, memiliki

5
kompleksitas waktu O(log n), yang jauh lebih cepat daripada pencarian sequential
dengan kompleksitas O(n) untuk daftar dengan n elemen.

3. Pengurutan
3.1. Pengurutan Bubble Sort
Bubble sort adalah algoritma pengurutan sederhana di mana elemen-elemen daftar
dibandingkan berpasangan dan ditukar jika tidak dalam urutan yang benar. Ini
diulang sampai seluruh daftar terurut. Bubble sort memiliki kompleksitas waktu
yang buruk, yaitu O(n^2), dan kurang efisien untuk daftar yang besar.
3.2. Pengurutan Quick Sort
Quick sort adalah algoritma pengurutan yang lebih efisien. Ini bekerja dengan
memilih elemen "pivot" dari daftar, kemudian membagi daftar menjadi dua bagian:
satu dengan elemen yang lebih kecil dari pivot dan satu dengan elemen yang lebih
besar. Ini diulang pada kedua bagian hingga seluruh daftar terurut. Quick sort
memiliki kompleksitas waktu yang lebih baik, yaitu O(n log n).
3.3 Analisis Efisiensi Pengurutan
Analisis efisiensi pengurutan juga melibatkan perbandingan antara algoritma
pengurutan. Quick sort, merge sort, dan heap sort adalah beberapa algoritma
pengurutan yang memiliki kompleksitas waktu yang baik untuk daftar yang besar.

4. Stack
4.1 Definisi Stack
Stack adalah struktur data yang mengikuti prinsip "Last In, First Out" (LIFO), yang
berarti elemen yang terakhir dimasukkan ke dalam stack akan menjadi yang
pertama keluar. Stack umumnya memiliki dua operasi utama: Push (untuk
menambahkan elemen) dan Pop (untuk menghapus elemen).
4.2. Operasi Stack (Push dan Pop)
Operasi Push digunakan untuk menambahkan elemen ke atas stack, sementara
operasi Pop digunakan untuk menghapus elemen teratas stack. Stack sering
digunakan untuk mengelola tumpukan tugas atau pemanggilan fungsi dalam
pemrograman.
4.3. Penerapan Stack dalam Evaluasi Ekspresi Matematika
Stack juga digunakan dalam evaluasi ekspresi matematika. Dalam penerapannya,
ekspresi dipecah menjadi token-token (angka dan operator), dan stack digunakan
untuk mengevaluasi ekspresi dengan benar sesuai dengan aturan prioritas operator.

6
5. Queue
5.1.Definisi Queue
Queue adalah struktur data yang mengikuti prinsip "First In, First Out" (FIFO),
yang berarti elemen yang pertama dimasukkan akan menjadi yang pertama keluar.
Seperti stack, queue juga memiliki dua operasi utama: Enqueue (untuk
menambahkan elemen) dan Dequeue (untuk menghapus elemen).
5.2. Operasi Queue (Enqueue dan Dequeue)
Operasi Enqueue digunakan untuk menambahkan elemen ke dalam antrian,
sedangkan operasi Dequeue digunakan untuk menghapus elemen yang berada di
depan antrian. Queue sering digunakan dalam berbagai aplikasi seperti penjadwalan
tugas dan pengelolaan antrian pelanggan.
5.3. Penerapan Queue dalam Antrian Pekerjaan
Dalam dunia nyata, queue digunakan untuk mengatur antrian pekerjaan yang harus
dilakukan, seperti antrian pesanan di restoran cepat saji atau antrian pengiriman
paket dalam layanan kurir.

7
KESIMPULAN

Dalam kesimpulan, dapat disimpulkan bahwa konsep-konsep algoritma,


searching, pengurutan, stack, dan queue adalah fondasi yang sangat penting dalam
ilmu komputer dan pemrograman. Algoritma, sebagai langkah-langkah yang
didefinisikan dengan jelas untuk menyelesaikan masalah, menjadi dasar dari semua
konsep ini. Searching membantu kita menemukan data dalam himpunan besar
dengan efisien, sementara pengurutan memungkinkan kita mengatur data dengan
baik. Stack dan queue adalah struktur data yang memungkinkan kita mengelola data
dengan prinsip Last In, First Out (LIFO) dan First In, First Out (FIFO) secara
bergantian.

Pemahaman yang kuat tentang konsep-konsep ini sangat penting dalam


pengembangan perangkat lunak, analisis data, dan pemecahan masalah dalam
berbagai konteks. Analisis efisiensi juga menjadi pertimbangan penting dalam
memilih metode yang paling cocok untuk tugas tertentu. Oleh karena itu,
pengetahuan tentang algoritma, searching, pengurutan, stack, dan queue adalah aset
berharga bagi siapa saja yang ingin meraih kesuksesan dalam dunia komputer dan
teknologi informasi. Dengan pemahaman ini, kita dapat merancang solusi yang
lebih baik, lebih efisien, dan lebih inovatif dalam menghadapi tantangan masa
depan yang semakin terkoneksi dengan teknologi.

8
DAFTAR PUSTAKA

Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to
Algorithms. MIT Press.
Drozdek, A. (2012). Data Structures and Algorithms in C++. Cengage Learning.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data Structures and
Algorithms in Java. John Wiley & Sons.
Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental
Algorithms. Addison-Wesley Professional.
Lafore, R. (2017). Data Structures and Algorithms in Java. Sams Publishing.
Sedgewick, R., & Wayne, K. (2011). Algorithms. Addison-Wesley Professional.
Skiena, S. S. (2008). The Algorithm Design Manual. Springer.
Weiss, M. A. (2016). Data Structures and Algorithm Analysis in Java. Pearson.

Anda mungkin juga menyukai