Selasa, 21 Januari 2025

MAPEL PROGDAS BAB5 PENGGUNAAN ARRAY DAN FUNGSI



                              Penggunaan Array dan Fungsi



Jika sebuah buku memiliki seribu halaman, namun tidak dibagi ke dalam bab atau bagian. Jika ingin mencoba untuk menemukan satu topik dalam buku ini akan sangat sulit. Real-world program dapat dengan mudah ada ribuan baris kode, kecuali melakukan modularized, mereka bisa jadi sangat sulit untuk mengubah dan memelihara. Oleh sebab itu, fungsi dapat berperan dalam kasus ini. Alasan lain untuk menggunakan fungsi adalah untuk menyederhanakan program. Jika tugas tertentu dilakukan di beberapa tempat di sebuah program, sebuah fungsi dapat ditulis sekali saja untuk melakukan tugas itu, kemudian akan dijalankan kapan saja dibutuhkan.

Sebuah program dibuat dengan tujuan untuk menyelesaikan suatu permasalahan yang dikehendaki dengan memiliki variabel-variabel yang dapat menampung banyak nilai. Dalam kondisi tersebut, array dan fungsi dalam bahasa pemrograman dapat digunakan sebaik-baiknya. Sebagai contoh variabel skor yang mencatat nilai ujian dari 50 siswa. Demikian juga variabel gaji guna menampung gaji yang berlainan dari setiap karyawan suatu perusahaan. Dalam dunia nyata array digambarkan seperti loker lemari yang memiliki sebuah nomor dalam array yang disebut sebagai indeks, sedangkan isi lemari dalam array disebut elemen.

Tanda kurung kurawal [ ] digunakan untuk menunjukkan elemen array, di mana perhitungan elemen array dimulai dari 0 dan bukan dari 1. Guna mendeklarasikan suatu variabel array, komponen yang dibutuhkan adalah tipe data elemen array yang akan disimpan dalam variabel array, nama array sebagai nama dari variabel array, serta jumlah elemen array yang dibutuhkan dalam array tersebut.

A. Array sebagai Penyimpanan Data

Array (larik) identik dengan kumpulan data-data bertipe sama dan menggunakan nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array yang letak urutannya ditunjukkan oleh suatu subscript (indeks). Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Namun demikian, antara satu variabel dengan variabel yang lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam tanda kurung siku (kurawal). Melalui subscript inilah setiap elemen array dapat diakses. Nilai subscribe pertama secara default adalah 0. Bila kita menyatakan int x[10], hal ini berarti 10 elemen yang dimulai dari 0. Karena itu elemen terakhir array adalah x[9]. Hal ini terjadi karena pada dasarnya C++ tidak pernah mengecek array.

1. Pengertian Array

Array pada dasarnya adalah sebuah variabel yang memiliki suatu nama tertentu, namun di dalamnya terbagi menjadi berbagai variabel yang dibedakan berdasarkan nomor indeks. Sebuah variabel yang terbagi berdasarkan nomor indeks memiliki tipe data yang sama. Dengan pengecualian pada string karakter, semua tipe hingga sampai saat ini hanya dapat menampung sebuah nilai.


Pada saat membuat variabel array, kita dapat membagi variabel tersebut menjadi n buah elemen array, di mana setiap elemen ditandai dengan suatu nomor indeks yang selalu dimulai dari angka 0 (nol). Sehingga bila membuat variabel array bernama num dan membaginya menjadi 5 buah elemen, maka variabel yang terbentuk adalah num[0], num[1], num[2], num[3], dan num[4]. Guna memanggil nilai dari elemen tersebut, hanya perlu memanggil nama variabelnya dan nomor indeksnya saja. Bentuk umum dalam mendeklarasikan suatu variabel array adalah sebagai berikut.

a. Array Dimensi Satu

Array dimensi satu identik dengan data-data akan disimpan dalam satu baris array yang hanya dibutuhkan satu penomoran indeks. Pada dasarnya, data array akan disimpan dalam memori yang berurutan dengan elemen pertama memiliki indeks bernilai 0. Misalnya sebuah variabel niali_uji yang dideklarasikan sebagai array dengan 9 elemen, maka elmen pertama memiliki indeks sama dengan 0, dan elmen terakhir memiliki indeks 8.

b. Array Dimensi Dua

Array dua dimensi identik dengan perluasan dari array satu dimensi. Array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama, sedangkan pada array satu dimensi hanya terdiri dari sebuah baris dan beberapa kolom elemen saja. Hal ini berarti memberikan kesempatan untuk menyimpan data baik dalam bentuk baris maupun dalam bentuk kolom. Oleh karena menyimpan data ke dalam baris dan kolom, maka dibutuhkan dua buah nilai indeks.

c. Array Multidimensi

Array multidimensi diterjemahkan sebagai suatu array yang memiliki ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi memiliki kemiripan dengan deklarasi array dimensi satu maupun dimensi dua. Deklarasi array tersebut adalah sebagai berikut.

2. Deklarasi Array

Guna mendeklarasikan sebuah array, harus menyebutkan tipe dari array yang dibuat, seperti int, float, ataupun double beserta ukuran array-nya. Guna menentukan ukuran array, maka penempatan jumlah nilai bisa disimpan dalam tanda kurung siku (kurawal) pada sebuah nama array. Saat mendeklarasikan sebuah array, maka compiler C++ akan mengalokasikan memori untuk menampung semua elemen sesuai dengan yang dideklarasikan. Metode yang umum dalam mendeklarasikan variabel array sebagai berikut.

a. Elemen Kosong

Elemen kosong digunakan untuk mendeklarasikan variabel array tanpa memasukkan nilai ke dalam variabel tersebut. Misalnya int nomor [6]; yang berarti instruksi tersebut menyatakan suatu variabel array bernama 'nomor bertipe integer dideklarasikan dan memesan elemen array berjumlah 6 buah. Nilai 6 yang berada di dalam tanda kurung menunjukkan jumlah elemen array, bukan menunjukkan elemen array yang ke-6. Jadi, elemen array tersebut dimulai dari angka 0 sampai 5. Elemen terakhir dari array umumnya diisi dengan karakter '0. Karakter ini akan memberitahu compiler bahwa akhir dari elemen array telah dicapai. Walaupun programmer tidak dapat melihat karakter tersebut secara eksplisit, tetapi compiler mampu mengetahui dan membutuhkannya.

b. Elemen Pointer

Elemen pointer digunakan untuk mendeklarasikan variabel array dengan memasukkan nilainya sekaligus ke dalam variabel tersebut. Misalnya int nomor [6] = {28, 10, 23, 20, 9, 14 }; yang berarti instruksi tersebut menyatakan bahwasuatu variabel array bernama 'nomor' bertipe integer dideklarasikan dan memesan elemen array berjumlah 6 buah. Kemudian, nilai pada setiap elemen array disimpan sesuai urutan pada instruksi tersebut.

3. Mengurutkan Elemen Array

Metode-metode yang digunakan untuk mengurutkan data array, antara lain Exchange Sort, Selection Sort, Bubble Sort, Shell Sort Binary Insertion Sort, dan lain-lain.Namun, metode yang paling mudah dan banyak digunakan adalah Selection Sort, Bubble Sort, dan Insertion Sort.  

a. Selection Sort

Metode Selection Sort menggunakan elemen-elemen yang diperbandingkan satu per satu hingga elemen terakhir dan disusun berdasarkan ketentuan-ketentuan yang berlaku.

Langkah-langkah mengurutkan array menggunakan metode Selection Sort adalah sebagai berikut.

1) Proses 1

Variabel indeks diberi nilai 1 (data ke-1) kemudian data indeks dibandingkan dengan data ke-2. Jika data indeks lebih besar, maka nilai indeksnya diganti dengan 2 (data ke-2). Jika tidak, nilai indeksnya tetap. Kemudian, data indeks dibandingkan lagi dengan data ke-3. Jika datanya lebih besar, maka nilai indeks harus ditukar. Setelah selesai, nilai indeks diperiksa apakah sudah berubah atau belum. Jika nilai indeks mengalami perubahan, maka data ke-1 harus ditukar dengan data indeks.

2) Proses 2

Variabel indeks diberi nilai 2 (data ke-2) kemudian data indeks dibandingkan dengan data ke-3. Jika data indeks lebih besar, maka nilai indeksnya diganti dengan 3 (data ke-3). Kemudian, data indeks dibandingkan lagi dengan data ke-4. Jika datanya lebih besar, maka nilai indeks harus ditukar. Setelah selesai, nilai indeks diperiksa sudah berubah atau belum. Jika nilai indeks mengalami perubahan, maka data ke-2 ditukar dengan data indeks. Demikian seterusnya hingga proses berlanjut di mana jumlah elemen array dikurangi satu.

b. Bubble Sort

Metode Bubble Sort sebagai sebuah pengurutan yang diinspirasi oleh gelembung sabun yang ada di dalam permukaan air. Oleh karena berat jenis gelembung sabun lebih ringan dibandingkan berat jenis air, maka gelembung sabun akan selalu meng-apung. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung. Elemen paling kecil "diapungkan" yang artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran. Proses pengapungan ini dilakukan sebanyak kali langkah,

Langkah-langkah mengurutkan array menggunakan metode Bubble Sort dilakukan dengan membandingkan data ke-1 dengan data ke-2. Jika data ke-1 lebih besar, maka kedua data ditukar. Selanjutnya membandingkan data ke-2 dengan data ke-3, jika data ke-2 lebih besar, kedua data ditukar lagi hingga data terakhir, sehingga data kedudukannya akan bergeser-geser dengan sendirinya. Hal yang perlu dipahami adalah pergeseran data (pembandingan) sampai data terakhir yang dikurangi satu.

Kelebihan Bubble Sort adalah metode yang paling simpel, mudah dipahami algoritmanya, mudah untuk diubah menjadi kode, definisi terurut terdapat dengan jelas dalam algoritma, dan cocok untuk pengurutan data dengan elemen kecil telah terurut. Sedangkan kelemahan Bubble Sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

c. Insertion Sort

Metode Insertion Sort sebagai bentuk pengurutan dengan menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan pencarian beruntun. Selama pencarian posisi yang tepat dilakukan pergeseran elemen larik. Metode jenis ini memiliki kemiripan dengan cara orang mengurutkan kartu selembar demi selembar, kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Langkah-langkah mengurutkan array menggunakan metode Insertion Sort dilakukan dengan pengurutan yang dimulai dari data ke-2 sampai dengan data terakhir. Jika ditemukan data yang lebih kecil/besar, segera ditempatkan pada posisi yang seharusnya.

Kelebihan menggunakan Insertion Sort adalah sederhana dalam penerapannya, efektif dalam data yang kecil, jika list sudah terurut atau sebagian terurut maka Insertion Sort akan lebih cepat dibandingkan dengan Quicksort, efektif dalam data yang sebagian sudah terurut, lebih efektif dibanding Bubble Sort dan Selection Sort, loop dalam pada Insertion Sort sangat cepat, sehingga membuatnya salah satu algoritma pengurutan tercepat pada jumlah elemen yang sedikit dan stabil.

Adapun kekurangannya adalah banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik, untuk larik yang jumlahnya besar ini tidak praktis, jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai dan mengganti seluruh bagian sebelum menyisipkan elemen berikutnya, dan membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok dalam pengurutan elemen dalam jumlah besar.

Tidak ada komentar:

Posting Komentar

WAN BAB4

Fungsi Alat Kerja dan Penyambungan  Kabel Fiber Optic M edia transmisi fiber optik sudah menggantikan eranya media copper (tembaga) dengan a...