Anda di halaman 1dari 18

PENCARIAN DAN PENGURUTAN PADA ELEMEN ARRAY, ARRAY

MULTIDIMENSI

DISUSUN OLEH

Grecella Br Sebayang (5193151015)

Dosen Pengampu:
Amirhud Dalimunthe, ST., M.Kom
NIP. 197506182008121002
Reni Rahmadani, S.Kom., M.Kom
NIP. 199303092019032023

PEND. TEKNOLOGI INFORMATIKA DAN KOMPUTER


FAKULTAS TEKNIK
UNIVERSITAS NEGERI MEDAN
2019
KATA PENGANTAR

Puji Syukur kepada Tuhan Yang Maha Esa ,karena atas Berkat dan Rahmat-Nya kami
dapat menyelesaikan makalah ini hingga akhirnya terselesaikan tepat waktu. Tanpa bantuan
dari-Nya , kami bukanlah siapa-siapa. Selain itu, Kami juga ingin mengucapkan terima kasih
kepada orang tua, keluarga, serta teman-teman yang sudah mendukung hingga
terselesaikannya tugas ini.

Banyak hal yang akan disampaikan kepada pembaca mengenai “Pencarian dan
pengurutan pada elemen array,array multidimensi” Makalah ini dibuat bertujuan untuk
memenuhi tugas rutin mata kuliah dari dosen Algoritma dan Bahasa Pemrograman serta
menambah ilmu dan wawasan bagi pembaca.

Kami menyadari jika mungkin ada sesuatu yang salah dalam penulisan, seperti
menyampaikan informasi berbeda sehingga tidak sama dengan pengetahuan pembaca lain.
Kami mohon maaf yang sebesar-besarnya jika ada kalimat atau kata-kata yang salah. Tidak
ada manusia yang sempurna karena kesempurnaan hanya milik Tuhan.

Akhir kata,kami berharap semoga makalah ini bermanfaat dan menginspirasi bagi
para pembaca,serta menambah pengetahuan pembaca mengenai Array dalam bahasa C.

Medan, 19 November 2019

Grecella Br Sebayang

ii
DAFTAR ISI

KATA PENGANTAR .............................................................................................................. ii


DAFTAR ISI............................................................................................................................ iii
BAB I ........................................................................................................................................ 1
PENDAHULUAN .................................................................................................................... 1
A. Latar Belakang Masalah ............................................................................................. 1
B. Rumusan Masalah ........................................................................................................ 1
C. Tujuan .......................................................................................................................... 1
BAB II....................................................................................................................................... 2
PEMBAHASAN ....................................................................................................................... 2
1. Pencarian Pada Elemen Array .............................................................................................. 2
2. Pengurutan Pada Elemen Array ........................................................................................... 5
3. Array Multidimensi ................................................................................................................ 7

BAB III ................................................................................................................................... 13


PENUTUP................................................................................................................................ 13
Kesimpulan ....................................................................................................................... 13
Saran ................................................................................................................................. 13
DAFTAR PUSTAKA ............................................................................................................. 14

iii
BAB I

PENDAHULUAN

A. Latar Belakang Masalah


Ilmu pengetahuan dan teknologi selalu berkembang dan mengalami kemajuan sesuai
dengan perkembangan zaman dan cara berpikir manusia,terutama dalam bidang
informasi,komunikasi,dan bidang komputerisasi. Untuk itu kami penulis berkeinginan untuk
meningkatkan SDM agar menjadi lebih bermanfaat di era globalisasi.

Kemudian untuk mewujudkan hal itu,kami membuat makalah ini sebagai tugas mata kuliah
yang diberikan oleh Dosen Pengampu,sekaligus sebagai bahan pembelajaran dan acuan
mahasiswa untuk belajar. Dalam hal ini,kami akan menyusun materi mata kuliah algoritma dan
dasar pemrograman.

B. Rumusan Masalah
- Bagaimana pencarian pada elemen array?
- Bagaimana pengurutan pada elemen array menggunakan metode bubble sort?
- Bagaimana array multidimensi (2 dimensi)?
- Bagaimana array sebagai mencari nilai maksimum dan minimum?

C. Tujuan

- Untuk mengetahui bagaimana pencarian pada elemen array.


- Untuk mengetahui bagaimana pengurutan pada elemen array menggunakan metode
bubble sort.
- Untuk mengetahui bagaimana array multidimensi (2 dimensi).
- Untuk mengetahui bagaimana array sebagai mencari nilai maksimum dan minimum.

1
BAB II

PEMBAHASAN

1. Pencarian Pada Elemen Array

Pencarian atau searching suatu data pada sekumpulan data merupakan proses yang
sangat penting. Proses pencarian dilakukan untuk mengetahui apakah data yang dicari
terdapat pada sekumpulan data yang ada. Selain untuk mengetahui keberadaan data,
informasi yang lain yang bisa didapat adalah letak dari data tersebut. Adapun jenis pencarian
yaitu:

 Pencarian Beruntun (Sequential Search)


 Pencarian Bagi Dua (Binary Search)

Kita bahasa satu per satu, yang pertama adalah Pencarian Beruntun atau Sequential search.
Konsep yang digunakan dalam metode ini adalah membandingkan data-data yang ada
dalam kumpulan tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau sampai
elemen terakhir. Dan untuk sequential search dibagi menjadi dua macam pula, pencarian
dengan data sudah terurut dan pencarian dengan data tidak terurut.
Disini kita selalu menggunakan array, jadi harap diingat bahwa indeks array dimulai
dari 0. Jadi posisi atau letak elemen di dalam array akan ditunjukkan dengan indeks.

Contoh:

2
Output:

Contoh di atas untuk data yang tidak terurut, untuk data yang terurut data harus diurutkan
terlebih dahulu namun algoritma untuk pencariannya tetap sama, membandingkan satu per
satu antara data yang di cari dengan elemen pada array

Metode yang kedua adalah Bagi Dua atau Binary Search.


Untuk metode yang satu ini mempunyai syarat mutlak yaitu data HARUS dalam
kondisi sudah terurut. Metode pencarian ini biasa kita terapkan ketika mencari kata dalam
kamus atau mencari bab dalam sebuah buku. Untuk mencari kata misalnya, kita tidak
mungkin mencarinya dari awal sedangkan kata yang kita cari dimulai dari huruf M, pasti kita
akan langsung mulai dari tengah.
Begitu juga dengan algoritma Binary search ini. Berikut ini adalah langkah-langkah
atau algoritma dari binary search.

1. Mula-mula diambil dari posisi awal=0 dan posisi akhir = n (sesuai indeks).
2. Kemudian kita cari posisi data tengah dengan rumus posisi tengah = (posisi awal +
posisi akhir ) div 2
3. Kemudian data yang di cari dibandingkan dengan data tengah

 Jika sama, data ditemukan, Proses selesai

 Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan
posisi tengah -1

 Jika lebih besar , proses dilakukan kembali tetapi posisi awal dianggap sama dengan
posisi tengah +1

4. Ulangi langkah kedua hingga data ditemukan , atau tidak ditemukan.

3
Contoh:

Output:
-Bila Data Ditemukan

-Bila Data Tidak Ditemukan

4
2. Pengurutan Pada Elemen Array
Setelah mengetahui bagaimana melakukan pencarian terhadap elemen array, terdapat satu
hal lagi yang tidak kalah pentingnya, yaitu melakukan pengurutan terhadap elemen-elemen
array. Salah satu faktor dari lambatnya proses pencarian yang terapat dalam suatu kumpulan
data adalah karena data tersebut tidak dalam keadaan terurut. Dengan kata lain, pengurutan
sangatlah diperlukan sebelum kita melakukan pencarian data. Terdapat banyak metode
pengurutan data yang terdapat dalam teori algoritma dan pemrograman, diantaranya metode
gelembung (bubble sort), sisipan (insertion sort), maksimum-minimum (maximum-minimum
sort), quick sort dan banyak lagi yang lainnnya. Namun, dari banyak metode yang ada
tersebut, di sini kita hanya akan menerangkan sekilas dari beberapa metode saja serta
mengimplementasikannya langsung ke dalam sebuah program.
a. Metode Gelembung (Bubble Sort)
Bubble Sort (metode gelembung) adalah metode pengurutan dengan cara melakukan
penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam
satu literasi tertentu tidak ada lagi perubahan.
Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung
karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
Algoritma beroperasi sebagai berikut;
1. Elemen pertama dibandingkan dengan elemen kedua. Apabila elemen kedua lebih besar dari
elemen pertama, maka kedua elemen tersebut ditukar.
2. Elemen kedua dan ketiga dibandingkan, bila elemen ketiga < kedua elemen ditukar, proses
terus berlangsung dengan elemen ketiga dan keempat, dan seterusnya. Sampai akhir deretan
data tercapai.
3. Bila tak ada lagi yang ditukarkan, algoritma berhenti.Bila terjadi pertukaran selama
berurutan, proses akan diulang. Sehingga akhirnya semua elemen tersusun, tidak ada
pertukaran lagi, dan algoritma berhenti.

· KELEBIHAN METODE BUBBLE SORT


a. Metode Bubble Sort merupakan yang paling simple.
b. Metode Bubble Sort muda di pahami algoritmanya

· KELEMAHAN METODE BUBBLE SORT


a. Meskipun simpel, metode Bubble Sort merupakan metode pengurutan yang paling tidak
efisien.
5
b. Pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau
dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika data cukup
banyak.
c. 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.

Contoh:

#include <stdio.h>
#define N 100
int bubble(int n);
int i,j,A[N];
int main()
{
int jml;
printf("\t METODE BUBBLE SORT \n\n");
printf("Masukkan banyaknya data = ");
scanf("%d",&jml);
printf("\n");
//Data yang di input
for (i=0;i<jml;i++)
{
printf("Data ke %d : ",i+1);
scanf("%d",&A[i]);
}
printf("\n");
// mengurutkan data
bubble(jml);
// menampilkan data
printf("Data yang sudah terurut : \n");
for (i=0;i<jml;i++)
{
printf("%d\n",A[i]);
}
}
// fungsi metode bubble
int bubble(int n)
{
int temp;
for (i=1;i<=n-1;i++)
{
for (j=i;j<n;j++)
{ 6
if (A[i-1]>A[j])
{
temp = A[i-1];
A[i-1] = A[j];
Output:

3. Array Multidimensi

Array 2 Dimensi

Bentuk pendeklarasian array dimensi dua :


Type_data nama_var[jumlah_elemen1][jumlah_elemen2];

Contoh pendeklarasian :
Int data1[4][5];

Contoh inisialisasi :
Int data1[4][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20}};

7
Penggambaran dari array dua dimensi diatas adalah :
index 0 1 2 3 4
0 0,0 0,1 0,2 0,3 0,4
1 1,0 1,1 1,2 1,3 1,4
2 2,0 2,1 2,2 2,3 2,4
3 3,0 3,1 3,2 3,2 3,4

Diatas adalah penggambaran indeks dari array data1. Berikut jika array diisi seperti contoh
inisialisasi diatas :
index 0 1 2 3 4
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 16 17 18 19 20

Untuk pemanggilan atau menampilkan isi dari array dimensi dua sama seperti pemanggilan
array dimensi satu hanya berbeda pada jumlah indeks yang ditulis. Contoh :
Prinf(“%d”,data1[0][2]);

Maka yang akan tampil adalah angka 3.

Missal kita ingin menampilkan angka 3, 9, 5 dan 16. Berikut listing program berdasarkan
contoh diatas :

#include <stdio.h>
main(){
int data1[4][5] = {{1,2,3,4,5}, {6,7,8,9,10},
{11,12,13,14,15}, {16,17,18,19,20}};

printf("\t%d\n",data1[0][2]);
printf("\t%d\n",data1[1][3]);
printf("\t%d\n",data1[0][4]);
printf("\t%d\n",data1[3][0]);
}

Maka Output yang didapat adalah:

8
Mencari Nilai Maksimum/Minimum Dengan Array

Nilai Maksimum

#include<stdio.h>
main(){
int s, T[5]={1,24,97,100,22}, max=T[0];

for(s=0; s<5; s++){


if(T[s]>max){
max=T[s];
}
}
printf("Nilai maksimumnya adalah: %3i", max);
}

Nilai Minimum

#include<stdio.h>
main(){
int s, T[5]={1,24,97,100,22}, min=T[0];

for(s=0; s<5; s++){


if(T[s]<min){
min=T[s];
}
}
printf("Nilai minimumnya adalah: %3i", min);
}

9
Mari kita bahas untuk contoh program diatas. Dalam kedua contoh program diatas
sungguh algoritmanya sama, hanya tinggal mengubah tanda lebih dari menjadi kurang dari.
Karena pada dasarnya kedua program itu mengandung proses yang sama, hanya saja untuk
nilai maksimum yang dicari ialah nilai yang paling tinggi, maka yang diseleksipun setiap kali
angka yang lebih tinggi dari angka yang ditemukan pada perulangan sebelumnya. Dan seperti
yang sudah dibahas sebelumnya bahwa yang dilakukan pertama ialah inisialisasi dan
deklarasi. Dalam program diatas tidak ada inputan dari user serta nilai awal dari variabel
arraynya pun sudah ditentukan, maka dari itu yang akan diseleksi nanti adalah nilai yang
sudah ditentukan tersebut. Dan selain variabel array, disana terdapat inisialisasi variabel yang
akan menjadi patokan atau menampung nilai maksimum/minimum dari hasil prosesnya nanti.
Dan inisialisasi yang dilakukan ialah menggunakan metode nilai awal dari indeks pertama,
dan sekali lagi, indeks pertama adalah nol bukan satu. Maka dalam program diatas terlihar
bahwa min/max=T[0], yang artinya nilai minimum dan maksimum pertama kali diberi nilai
awal yang diambil dari indeks ke 0 sebelum akhirnya diproses lebih lanjut lagi.

Setelah deklarasi dan inisialisasi dilakukan, kita melihat program langsung menuju
perulangan, dimana dalam perulangan tersebut terdapat selection, yang mana statement
didalamnya hanya ada statement true nya. Dan statement tersebut hanya akan
diproses/dijalankan ketika angka yang ada dalam indeks pada perulangan lebih besar dari
angka sebelumnya, baik itu angka yang ditemukan program dalam perulangan sebelumnya
maupun angka yang sudah ditentukan dalam nilai awalnya. If(T[s]>max) dan if(T[s]<min)
tersebut maksudnya ialah jika T pada indeks saat perulangan lebih dari max maka program
akan menjalankan statement true yang ada didalamnya, begitupun sebaliknya untuk mencari
nilai minimum. Maksud dari indeks saat perulangan sendiri ialah seperti misalnya pada
perulangan pertama, maka nilai variabel s tersebut ialah indeks ke 0 dan T ke s (ditulis T[s] )
berisi nilai yang terkandung dalam indeks ke 0 tersebut. Selanjutnya akan di cek apakah pada
indeks ke nol lebih besar dari nilai yang terkandung dalam variabel max. Begitupun pada
perulangan berikutnya, pada perulangan kedua maka variabel s akan mengandung indeks ke 1
serta T ke s akan mengandung nilai yang ada dalam indeks ke 1 tersebut, dengan demikian
akan ada pengecekan apakah nilai tersebut lebih besar dari max. Jika memang pada
perulangan sebelumnya max tidak mengalami perubahan (nilai dalam index ke 0 tidak lebih
besar dari max) maka nilai max tidak berubah, dan nilai yang ada pada T dalam indeks ke 1
akan dibandingkan dengan nilai awal max tersebut.

10
Begitupun sebaliknya, andai nilai max sudah mengalami perubahan, maka dalam
selection tersebut tidak akan membandingkan dua kali antara nilai awal max dengan
perubahan tersebut, karena pada proses sebelumnya nilai max sudah berubah dengan
sendirinya pada saat ditemukan angka yang melebihi nilai awalnya, dengan demikian T pada
indeks ke 1 hanya tinggal dibandingkan dengan nilai max (nilai barunya). Dan begitupun
dengan proses/alur untuk seleksi nilai minimum, proses yang dilakukan tidak jauh berbeda,
hanya saja dalam pencarian nilai minimum yang akan diambil dan dimasukan pada variabel
max ialah nilai-nilai yang ditemukan lebih kecil pada setiap perulangan yang dilakukan.

Pada program diatas kita hanya membahas mengenai proses seleksinya saja, tanpa ada
inputan dari user karena nilai dalam variabel array sudah ditentukan sebelumnya. Tapi bukan
berarti untuk menginput karakter dari user sama seperti pada program-program sebelumnya,
karena pada program sebelumnya user hanya mencari nilai yang ada dalam variabel array,
yang artinya pada variabel array itu sendiri sudah diberi nilai awal pada sebelumnya, dan user
sudah bebas untuk menginput karakter dalam memastikan apakah ada atau tidak karakter
yang diinputkannya tersebut dalam elemen array. Lalu bagaimana untuk variabel array yang
hanya terdeklarasi dan isinya masih kosong? Semua itu akan dibahas disini, dimana untuk
nilai yang yang ada dalam elemen array tersebut ialah hasil inputan dari user, dan tugas
program ialah membantu user menentukan nilai tertinggi dan terendah dari inputannya
tersebut. Untuk contoh perogramnya, mari perhatikan berikut ini:

#include<stdio.h>
main(){
int e, U[5], maksimum;
printf("Masukan 5 angka yang ingin dicari nilai
maksimumnya: \n\n");

for(e=0; e<5; e++){


scanf("%i", &U[e]);
}
maksimum=U[0];

for(e=0; e<5; e++){


if(U[e]>maksimum){
maksimum=U[e];
}
}
printf("\nNilai maxnya: %3i", maksimum);
}

11
Output:

Untuk proses pencarian nilai minimum dan maksimum sudah dibahas diatas, namun
pada kali ini yang perlu dijelaskan ialah proses untuk mencari nilai maksimum dan
minimum yang diinputkan user, dimana yang paling utama untuk dibahas ialah proses
inputnya, mengapa pada contoh program diatas inputannya dilakukan didalam perulangan?
Karena untuk mengisi variabel array tidak hanya dilakukan dengan sekali menekan tombol
enter. Dalam contoh program tersebut, ada sebuah variabel array yang berisikan 5 elemen
yang masih kosong, dan user diminta untuk mengisi kelima elemen tersebut melalui input
dari keyboard. Maka dengan demikian proses input dilakukan secara berulang (dengan
perulangan) selama 5 kali perulangan, hingga semua elemen array dapat terisi. Dan setelah
semua elemen tersebut terisi, maka program baru dapat menyeleksi nilai maksimum yang
dicari.

Selain itu, ada sedikit tambahan, mengapa untuk mencetak hasil dari proses
pencarian nilai maksimum dipisahkkan dari proses lainnya setelah perulangan
dilakukan? Karena apabila program cetak tersebut dilakukan dalam perulangan, maka pada
setiap kali dalam perulangan program menemukan angka yang lebih besar dari nilai awalnya,
maka program akan mencetak semua itu hingga perulangan selesai. Serta dalam program
inputan ini mengapa inisialisasi variabel max / maksimum dilakukan setelah inputan?
Karena pada proses deklarasi, isi dari variabel array masih kosong / tidak jelas. Dan untuk
menentukan U ke 0 pun tidak jelas jadinya, berbeda dengan setelah inputan, isi variabel array
sudah ada dan U ke 0 sudah jelas. Kecuali jika nilai awalnya ditulis U=0, maka penulisan
tersebut dapat dilakukan sebelum inputan (karena tidak mengandalkan isi variabel array).

12
BAB III

PENUTUP

Kesimpulan

Array adalah suatu tipe data terstruktur yang berupa sejumlah data sejenis (bertipe data
sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Array merupakan konsep yang
penting dalam pemrograman, karena array memungkinkan untuk menyimpan data maupun
referensi objek dalam jumlah banyak dan terindeks. Dengan array, data mudah dicari dengan
hanya memanggil lokasi indeks suatu data. Urutan data pada array dimulai dari 0, jadi data
pertama pada suatu array memiliki indeks 0.

Saran

Sebagai programmer, wajib serta wajar rasanya harus mengetahui dan mempelajari
tentang array dalam bahasa C ini guna memudahkan kita dalam menyelesaikan dan
memecahkan suatu masalah.

13
DAFTAR PUSTAKA

1. Mahir Koding. (2016, November 08). Array Dalam Bahasa C. Diakses 17

November 2019 dari:

https://www.mahirkoding.com/array-dalam-bahasa-c/

2. Pradipta, Agus (2016, Desember 07). Array Dalam Bahasa C. Diakses 17

November 2019 dari:

https://pradiptaagus.blogspot.com/2016/12/array-dalam-bahasa-c.html

3. Baizal, Abdurahman M.Kom. , Sibaroni, Yuliant M.T. (2017). Pemrogaman


Terstruktur. Dasar Algoritma dan Pemrogaman. Bandung: Telkom
University.

14

Anda mungkin juga menyukai