Kamis, 30 Juni 2022

Penjelasan Singkat Tentang ARRAY

 Pengertian Array

 Array adalah suatu variabel yang terdiri dari sekumpulan data dimana data-data tersebut mempunyai tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda-beda dan disebut dengan elemen array. Setiap elemen mempunyai nilai indek sesuai dengan urutannya. Melalui indek inilah kita dapat mengakses data-data tersebut. Indek dari elemen array ini, baik dalam bahasa C++ maupun Java dimulai dari 0, bukan 1 seperti dalam bahasa Pascal. Array dideklarasikan dengan tanda [ ] (bracket), baik dalam bahasa C++ dan Java. Bentuk umum dari tipe data array adalah : tipe_data nama_array[jumlah_elemen]


 Array berdimensi satu


Yaitu data-data akan disimpan dalam satu baris array, sehingga hanya dibutuhkan satu pernomoran indeks.
Misalkan kita ingin membuat program untuk mencari nilai rata-rata dari 5 buah data nilai yang diinputkan oleh user. Tanpa menggunakan array, maka programnya adalah sebagai berikut :

void main() {
float nilai1, nilai2, nilai3, nilai4, nilai5;
float jumlah, rata2;
cout<<“Program Menghitung Nilai Rata-rata”<<endl;
cout<<“Masukkan nilai ke 1 : “;
cin>>nilai1;
cout<<“Masukkan nilai ke 2 : “;
cin>>nilai2;
cout<<“Masukkan nilai ke 3 : “;
cin>>nilai3;
cout<<“Masukkan nilai ke 4 : “;
cin>>nilai4;
cout<<“Masukkan nilai ke 5 : “;
cin>>nilai5;
jumlah = nilai1 + nilai2 + nilai3 + nilai4 + nilai5;
rata2 = jumlah / 5;
cout<<“Nilai rata-rata adalah “<<rata2<<endl;
getch();
}

Array Berdimensi Dua


Array dua dimensi sering digambarkan sebagai sebuah matriks
Array berdimensi dua memberikan kita kesempatan untuk menyimpan data baik dalam bentuk baris maupun dalam bentuk kolom. Oleh karena itu dibutuhkan dua buah nilai indeks.


Contoh Array Berdimensi dua

#include <iostream.h>
#include <conio.h>
int main()
{
int Nilai[4][3];
int pilih, i;
// memasukkan data ke dalam array berdimensi dua
Nilai[0][0] = 5; // nilai Nobita minggu ke 1
Nilai[0][1] = 3; // nilai Nobita minggu ke 2
Nilai[0][2] = 2; // nilai Nobita minggu ke 3
Nilai[1][0] = 72; // nilai Suneo minggu ke 1
Nilai[1][1] = 88; // nilai Suneo minggu ke 2
Nilai[1][2] = 60; // nilai Suneo minggu ke 3
Nilai[2][0] = 90; // nilai Shizuka minggu ke 1
Nilai[2][1] = 100; // nilai Shizuka minggu ke 2
Nilai[2][2] = 85; // nilai Shizuka minggu ke 3
Nilai[3][0] = 55; // nilai Giant minggu ke 1
Nilai[3][1] = 76; // nilai Giant minggu ke 2
Nilai[3][2] = 46; // nilai Giant minggu ke 3
// menampilkan nilai
while (1)
{
cout << “(0 = Nobita, 1 = Suneo, 2 = Shizuka, 3 = Giant)\n”;
cout << “Nama Siswa (masukkan kode angka) : “; cin >> pilih;
if ((pilih == 0) || (pilih == 1) || (pilih == 2) || (pilih == 3))
break; //keluar dari loop-while
}
cout << “\nNama Siswa : “;
if (pilih == 0) cout << “Nobita\n”;
if (pilih == 1) cout << “Suneo\n”;
if (pilih == 2) cout << “Shizuka\n”;
if (pilih == 3) cout << “Giant\n”;
for (i = 0; i < 3 ; i++)
{
cout << “Minggu ” << i+1 << ” : ” << Nilai[pilih][i] << “\n”;
}
getch();
return 0;
}

Output Data
(0 = Nobita, 1 = Suneo, 2 = Shizuka, 3 = Giant)
Nama Siswa (masukkan kode angka) : 2

Nama Siswa : Shizuka
Minggu 1 : 90
Minggu 2 : 100
Minggu 3 : 85


Kelebihan Array :

  • Merupakan struktur penyimpanan data yang paling mudah.
  • Tipe data yang mampu menampung lebih dari satu data.
  • Memori ekonomis, bisa semua elemen terisi.
  • Waktu akses sama setiap elemen.
  • Dapat diakses secara random

Kekurangan Array :

  • Boros memory jika banyak elemen yang tidak digunakan.
  • Merupakan struktur penyimpanan data yang statis.
  • Kebanyakan bahasa pemrograman mengimplementasikan array statis yang sulit diubah ukurannya di pada waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka representasi statis


Penjelasan Sorting & Contoh Program-nya

 Pengertian Sorting


Sorting adalah pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu.
 Contoh: 

Data Acak :
 5 6 8 1 3 25 10
 Ascending : 1 3 5 6 8 10 25
 Descending : 25 10 8 6 5 3 1

Deklarasi Array Sorting

Mendeklarasikan array secara global:
int data[100];
 int n; //untuk jumlah data
Fungsi Tukar 2 Buah Data:
void tukar(int a,int b)
{
 int tmp;
tmp = data[a];
 data[a] = data[b];
 data[b] = tmp;
}

Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. 
Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:
 1. Urut naik (ascending) Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar. 
2. Urut turun (descending) Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Mengapa harus melakukan sorting data?
Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan  penggabungan data.
 Metode-metode sorting meliputi:
 1.Bubble sort(Metode Gelembung)
2. Selection Sort (Metode Seleksi)
3. Insertion Sort (Metode Penyisipan)


Bubble Sort

Bubble Sort merupakan cara pengurutan yang sederhana. Konsep dari ide dasarnya
adalah seperti“gelembung air” untuk elemen struktur data yang semestinya berada
 pada posisi awal. 
Cara kerjanya adalah dengan berulang-ulang melakukan traversal(proses looping) terhadap elemen-elemen struktur data yang belum diurutkan. Di dalam traversal tersebut,nilai dari dua elemen struktur data dibandingkan. Jika ternyata urutannya tidak sesuai dengan “pesanan”,maka
dilakukan pertukaran (swap). Algoritma sorting ini disebut juga dengan comparison sort dikarenakan hanya mengandalkan perbandingan nilai elemen untuk mengoperasikan elemennya. Algoritma Bubble Sort Algoritma bubble sort dapat diringkas sebagai berikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1,TN,
maka:
 1.) Lakukan traversal untuk membandingkan dua elemen berdekatan. Traversal ini dilakukan dari belakang.
 2.) Jika elemen pada TN-1 > TN , maka lakukan  pertukaran (swap). Jika tidak, lanjutkan ke  proses traversal berikutnya sampai bertemu dengan bagian struktur data yang telah diurutkan.
 3.) Ulangi langkah di atas untuk struktur data yang tersisa.


 Contoh program Bubble sort :

    


Insertion Sort

Cara kerja insertion sort sebagaimana namanya.Pertama-tama, dilakukan proses iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan. Dari proses iterasi, seperti biasa, terbentuklah bagian yang telah di-sorting dan bagian yang belum.
 
Algoritma Insertion Sort. Algoritma Insertion Sort dapat dirangkum sebagai berikut:
1.) Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
2.) Bandingkan nilainya dengan elemen sebelumnya.
3.) Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
4.) Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
5.)Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
6.) Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu). 

Contoh Program Insertion Sort:

Hasil program setelah dijalankan:

Selection Sort

Algoritma sorting sederhana yang lain adalah Selection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya,kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang  paling besar yang disimpan indeksnya kemudian ditukar.
Algoritma Selection Sort Algoritma selection sort dapat dirangkum sebagai berikut:
1.) Temukan nilai yang paling minimum (atau sesuai keinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka temukan nilai yang paling maksimum.
 2.) Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data yang  belum diurutkan. 
3.) Ulangi langkah di atas untuk bagian struktur data yang tersisa. 

  Contoh Program Selection Sort :

Hasil setelah dijalankan:

Sekianlah pembahasan dari saya tentang Materi Sorting kali ini,terimakasih

 






Penjelasan Singkat Mengenai Pointer C++

  Pengertian Pointer pointer merupakan variabel dengan tipe tertentu yang berguna untuk mencatat alamat dari suatu variabel yang setipe den...