Rabu, 27 Agustus 2025

Tugas 1 Algoritma

Tugas_Algoritma

ALGORITMA

(Materi kuliah Semester 3)

♦ Pengertian Algoritma

Algoritma adalah urutan langkah-langkah yang tersusun secara sistematis untuk menyelesaikan suatu permasalahan. Contohnya seperti jika kita memasak mie kita harus menyiapkan alat dan bahannya terlebih dahulu, lalu kita proses hingga mie instannya siap disajikan.

♦ Tujuan / fungsi Algoritma

Tujuan dan fungsi algoritma adalah untuk memberikan langkah-langkah yang jelas, logis dan sistematis dalam menyelesaikan suatu masalah, sehingga proses menjadi lebih mudah, efisien, terstruktur serta dapat digunakan kembali untuk menyelesaikan permasalahan sejenis.

♦ Macam-macam Algoritma

1. Algoritma rekursif

Algoritma yang memanggil dirinya sendiri sampai mencapai kondisi berhenti. Kegunaannya adalah untuk menghitung faktorial, deret Fibonacci, Menara Hanoi, traversal pohon

2. Linear Search

Metode pencarian dengan memeriksa data satu persatu dari awal hingga akhir. Contohnya adalah untuk mencari nama dalam daftar, mencari nomor hp dalam kontak.

3. Binary search

Metode pencarian dengan membagi data menjadi dua bagian (harus terurut). Contohnya adalah mencari data pada array terurut seperti mencari nilai mahasiswa

4. Bubble Sort

Mengurutkan data dengan menukar elemen berdekatan secara berulang. Contohnya seperti Mengurutkan nilai ujian dan juga daftar barang

5. Selection Sort

Mengurutkan dengan cara memilih elemen terkecil/ terbesar lalu menukarnya. Contohnya adalah mengurutkan rangking atau daftar barang

♦ Contoh Penerapan

1. Penerapan dikehidupan sehari-hari

- Contohnya memasak mie instan

  • siapkan panci dan isi dengan air secukupnya
  • panaskan air sampai mendidih
  • masukkan mie ke dalam air mendidih
  • tunggu 3 menit hingga mie matang
  • tiriskan mie dari air
  • campurkan mie dengan bumbu yang sudah disediakan
  • aduk hingga rata
  • Mie siap disajikan
Tujuannya biar pembaca awam lebih gampang paham

2. Penerapan dalam pemrograman (codingan)

- Contoh Faktorial dengan Rekursif

     int faktorial(int n) {
    if (n == 0 || n == 1) {
    return 1;
    } else {
    return n * faktorial(n - 1);
    }
    }

♦ Flowchart

  • Contoh Flowchart proses memasak mie instan

        Gambar flowchart


♣ Tugas 1 Algoritma

  • Nama : Maryam
  • Nim : D0224038
  • Kelas : Informatika C

♣ CONTOH KASUS ♣

Bidang Pendidikan : Seorang guru memberikan tugas kepada siswa untuk mengurutkan huruf acak (A,B,C,D,E) agar berurutan dari yang terkecil ke terbesar

  • Identifikasi Masalah

→ Siswa sering menuliskan huruf dalam urutan acak, misalnya : D, A, C ,B E → Guru ingin agar siswa bisa menyusun ulang huruf itu menjadi urutan alfabetis yang benar

  • Pseudo code

1. Asumsikan bahwa huruf pertama adalah huruf terkecil
2. Bandingkan huruf pertama dengan huruf di sampingnya
3. Bila huruf pertama lebih besar, tukar posisinya dengan huruf di sampingnya
4. Lanjutkan membandingkan sampai huruf terakhir
5. Ulangi langkah pertama hingga tidak ada lagi huruf yang perlu ditukar

  • Input

Pada tahap ini, kita mulai dari apa saja yang harus dimasukkan atau disiapkan agar program bisa dijalankan. Input biasa berupa data mentah yang nantinya akan diolah. Misalhnya, dalam kasus ini kita memasukkan sekumpulan huruf acak.

→ Data huruf acak, contoh : D, A, C, B, E.


        char [] huruf = {'D','A','C','B','E'}
    

  • Proses

Bagian ini adalah inti dari jalannya program. Data yang harus dimasukkan pada tahap input akan diolah sesuai dengan algoritma yang digunakan. Dalam studi kasus kita, huruf-huruf acak tersebut akan diproses menggunakan metode pengurutan agar hasilnya menjadi lebih teratur, seperti langkah demi langkah dibawah ini

Langkah 1 : Bandingkan D dengan A → tukar → {A, D, C, B, E}
Langkah 2 : Bandingkan D dengan C → tukar → {A, C, D, B, E}
Langkah 3 : Bandingkan D dengan B → tukar → {A, C, B, D, E}
Langkah 4 : Bandingkan D dengan E → tidak tukar
Langkah 5 : Ulangi langkah diatas sampai urutan besar


        for (int i = 0; i < huruf.length; i++) {
            for (int j = 0; j < huruf.length - 1 - i; j++) {
                if (huruf[j] > huruf[j + 1]) {
                    char temp = huruf[j];
                    huruf[j] = huruf[j + 1];
                    huruf[j + 1] = temp;
                }
            }
        }
    

  • Output

Setelah semua data selesai diproses, maka kita akan memperoleh hasil akhirnya. Output ini merupakan bentuk yang sudah rapi atau sudah terurut dari data acak yang kita masukkan tadi. Dengan begitu, kita bisa melihat perbedaan antara data awal dan data hasil akhirnya.


    → Huruf sudah terurut : {A, B, C, D, E} 

Algoritma pengurutan yang digunakan dalam kasus ini adalah Bubble Sort. Algoritma ini dipilih karena sederhana, mudah dipahami dan sangat cocok digunakan dalam jumlah data yang relatif kecil, seperti mengurutkan huruf A sampai E. Prosesnya jelas, yaitu dengan cara membandingkan elemen yang bersebelahan lalu menukarnya jika urutannya salah, dan langkah tersebut diulang hingga seluruh data tersusun rapi. Keunggulan dari algoritma ini adalah hasil akhirnya pasti terurut, meskipun input yang diberikan berupa data acak.

Jika suatu saat input yang dimasukkan berubah, misalnya dari sekumpulan huruf {'D','A','C','B','E'} menjadi {'Z','M','K','A'}, maka prosedur utama algoritma tidak perlu diubah secara keseluruhan. Perubahan hanya terjadi pada bagian input, karena proses Bubble Sort akan secara otomatis menyesuaikan dengan data yang baru. Sementara itu, langkah-langkah proses dan output tetap sama, yaitu data akan diurutkan dari elemen terkecil ke terbesar sesuai dengan aturan perbandingan yang berlaku. Dengan kata lain, perubahan input tidak mengubah alur algoritma, hanya hasil akhir yang akan menyesuaikan dengan data yang baru saja dimasukkan.

Contoh situasi

  • Kasus awal : Input = {'D','A','C','B','E'}
  • Kasus baru : Input diganti jadi= {'Z','M','K','A'}
→ proses = algoritma akan membandingkan tiap huruf satu persatu, lalu menukarnya sampai terurut
→ Outputnya otomatis akan menyesuaikan : {'A','K','M','Z'}

Prosedur yang perlu diubah hanyalah pada bagian input

    1. awalnya
    
                char [] huruf = {'D','A','C','B','E'};
            

    2. Setelah di ubah
    
                char [] huruf = {'Z','M','K','A'};
            

Agar algoritma ini tidak hanya efisien dan efektif, tetapi juga adil dan transparan, maka aturan yang digunakan pun harus jelas, konsisten dan bisa dengan mudah dipahami. Pada algoritma bubble sort ini, setiap data akan diperlakukan sama karena perbandingan dan pertukaran dilakukan dengan kriteria yang setara. Selain itu, hasil dari input yang sama akan selalu konsisten, dan prosedur kerjanya dapat ditelusuri. Dengan demikian, algoritma ini bisa dipercaya karena hasilnya dapat dijelaskan secara terbuka.

Tugas 5 Algoritma

Algoritma BFS (Breadth-First Search) dalam Penjadwalan Coba bayangin kamu seorang manajer produksi yang lagi pusing nga...