password if needed : babylin
- Algoritma penjumlahan
- Algoritma Pengurangan
- Algoritma Perkalian
No. | Produk | Beli |
1. | Beli... klik di sini |
Setelah kita memahami apa itu array. Pada kali ini kita akan mempelajari bagaimana data dalam array itu dapat dimanipulasi, beberapa manipulasi array diantaranya adalah penambahan data, penghapusan data, pengeditan data, pencarian data, penampilan data.
Pada postingan ini kami akan menjelaskan beberapa metode searching beserta cara implementasinya, kelebihan dan kekurangan dari masing-masing metode. Pada dasarnya konsep dari searching itu sendiri adalah meminta inputan dari user data apa yang akan dicari, kemudian disimpan dalam variabel kemudian dibandingkan dengan data yang tersimpan dalam indeks array, apabila data pembanding itu sama maka akan data tersebut akan ditampilkan. Apabilwa data pembanding tidak sesuai dengan yang dicari maka akan muncul pemberitahuan kalo data yang dicari itu tida terdapat dalam indeks, not found, atau yang lainnya
Yang pertama kita akan membicarakan mengenai sequensial search. Sequensial search adalah suatu teknik pencarian data pada array satu dimensi yang dilakukan dengan menelusuri semua elemen-elemen array dari awal sampai akhir. Dimana data yang tersimpan tidak perlu diurutkan terlebih dahulu
Teknik ini memiliki kelebihan dalam pengimplementasiannya dalam code program dan kemungkinan yang terbaik jika data yang dicari terdapat di indeks-indeks awal maka data tersebut tidak terlalu lama dicari. Kekurangannya adalah jika data yang dicari terletak dibagian indeks yang akhir maka akan memakan waktu pencarian yang semakin lama jika dibandingkan dengan yang berada di indeks awal.
Contoh :Untuk lebih jelasnya kita implementasikan dalam program codingnya seperti berikut :
- #include <stdio.h>
- #include <conio.h>
-
- main(){
- int nilai[7]={2,3,6,10,1,5,43,44};
- int find,i,flag=0;
- printf("Nilai yang tersimpan adalah : \n");
- for (i=0;i<8;i++){
- printf("Data ke %d indeks ke %d adalah %d\n",i+1,i,nilai[i]);
- }
- printf("Masukkan nilai yang anda cari : ");scanf("%d",&find);
- for (i=0;i<8;i++){
- if (nilai[i]==cari){
- printf("Ketemu\n");
- printf("Data ke %d indeks ke %d adalah %d",i+1,i,nilai[i]);
- flag=1;break;
- }}
- if (flag==0)printf("Data tidak ada");
- }
Untuk download materinya silahkan klik
Password : ptik2012
Download contoh program .rar
Password MF dan .rar : imhere
typedef struct nama_struct{
tipe_data nama_variabel;
tipe_data nama_variabel;
....
};
Untuk mendeklarasikan sebuah struct ada beberapa cara yang sering saya gunakan adalah sebagai berikut, contoh:
- typedef struct siswa{
- int no_induk;
- char nama[30];
- }siswa;
- struct{
- int no_induk;
- char nama[30];
- }siswa;
Untuk mengakses data yang telah tersimpan dalam struct kita secara umum dapat ditulis
nama_struct.nama_field;
- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang;
- main(){
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang.nama);
- printf("Berapa umurnya : ");scanf("%d",&orang.umur);
- getch();system("cls");
- printf("Nama\t: %s",orang.nama);
- printf("Umur\t: %d",orang.umur);
- return 0;
- }
Contoh program di atas merupakan program yang menggunakan sebuah struct yang memiliki field "nama" dan "umur" dan struct tersebut bernama "orang". karena hanya satu struct maka struct tersebut hanya dapat menyiman satu paket data, dimana paket data tersebut menyimpan data nama dan umur.
Setelah kita faham tentang struct kita lanjut ke modifikasi dengan array, yang kita namakan array of struct. Sehingga kita tidak hanya menyimpan satu paket data saja namun kita dapat menyimpan beberapa paket data pada struct orang lebih dari satu. karena dengan array maka data tersimpan dengan ditandai pada indeks seperti pada pembahasan array sebelumnya.
Ada beberapa cara untuk mendeklarasikan array of struct yang sering saya gunakan adalah syntaxnya seperti berikut :
- typedef struct nama_struct{
- tipe_data nama_field;
- tipe_data nama_field;
- tipe_data nama_field;
- . . .
- }nama_struct[indeks];
oke langsung saja kita keimplementasi pada programnya. Pada intinya array of struct ini sama dengan array seperti biasanya. Struct dianalogikan dengan sebuah tipe data dan diberi indeks.
Namun struktur data tipe ini memiliki kelemahan pada alokasi memori dan penghapusan data. Pengalokasian memori hanya terbatas pada banyaknya indeks yang kita definisikan pada saat pembentukan array-nya. Sedangkan untuk penghapusan tidak dapat dilakukan secara real karena masih ada alokasi memori yang sudah kita alokasikan pada saat pendeklarasian. Sehingga alokasi memori untuk array dapat dikatakan tidak dinamis. Misalnya kita mengalokasikan indeks dengan nilai 10 dan kita hanya menggunakan 5 alokasi memori, maka untuk sisanya akan mubazdir. Begitu pula pada saat kita membutuhkan lebih dari 10 alokasi memori maka alokasi memori kita kurang karena sejak awal pendeklarasian kita hanya mengalokasikan 10 tempat.
Berikut adalah contoh program sederhana untuk Array of struct :
- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang[1000];
- main(){
- int i,awal;
- printf("Berapa data yang akan anda masukkan?");
- scanf("%d",&awal);
- for (i=0;i<awal;i++){
- system("cls");
- printf("\n\t\tData ke %d",i+1);
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang[i].nama);
- printf("Berapa umurnya : ");scanf("%d",&orang[i].umur);
- }
- printf("\n\nTekan sembarang tombol Untuk Melihat Data anda");
- getch();system("cls");
- for (i=0;i<awal;i++){
- printf("\n\t\tData Ke %d",i+1);
- printf("Nama\t: %s",orang[i].nama);
- printf("Umur\t: %d",orang[i].umur);
- }
- return 0;
- }
tipe_data nama_var_array [ukuran];
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array : menyatakan nama variabel yang dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.
- int nilai [10];
Menginisialisasi Array adalah memberi nilai awal pada saat di definisikan. Kita juga dapat memberi nilai secara dinamis pada saat program berjalan, namun yang menjadi kekurangan dari array adalah dia memiliki alokasi memori yang statis, jadi alokasi memorinya hanya sebesar yang kita berikan pada saat deklarasi di atas.
Pada contoh di atas kita dapat melihat bahwa besar indeks yang kita berikan adalah 10 dan bertipe integer. Ini artinya data yang dapat tersimpan dalam variabel tersebut adalah bertipe integer dan sebanya 10 data.
contoh :
- int nilai [10] = { 1,3,6,8,5,4,12,10,9,11 };
Contoh di atas adalah berarti kita memberikan tempat sebanya 10 tempat dalam memory komputer. array tersebut memiliki indeks 0-9. dimana indeks 0 berisi data 1, indeks ke 1 berisi data 3, indeks ke 2 berisi data 6 dan seterusnya, serta karena kita mendeklarasikan dengan "int" maka array tersebut bertipe integer
PENGAKSESAN NILAI DALAM ARRAYPengaksesan nilai yang tersimpan dalam array adalah sama dengan pada proses pengisian, yang membedakan adalah kita menampilkan isi dari indeks array tertentu.
Caranya adalah sebagai berikut :
- nama_var_array [indeks];
pengaksesan nilai yang tersimpan dalam indeks dapat dilakukan dengan cara berurutan atau random tergantung yang diinginkan.
Contoh pengisian dan pengaksesan array secara dinamis ditunjukkan pada source code berikut :
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- int awal,i;
- int nilai[1000];
- printf("Berapa data yang akan anda masukkan : ");
- scanf("%d",&awal);
- for(i=0;i<awal;i++){
- system("cls");
- printf("Masukkan data ke %d: ",i+1);
- scanf("%d",&nilai[i]);
- }
- system("cls");
- for(i=0;i<awal;i++){
- printf("Data indeks ke %d adalah %d \n",i,nilai[i]);
- }
- return 0
- }