STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom
DASAR PEMROGRAMAN C++ Bahasa C++ adalah bahasa yang menggunakan kompiler untuk translator dari kode program menjadi bahasa mesin. Bahasa C++ mempunyai bentuk umum program seperti berikut: // Nama program // Komentar lain #include<header> main() { deklarasi variabel; deklarasi konstanta; perintah-perintah; }
Keterangan baris program: Baris yang diawali dengan double slash(//) merupakan baris komentar dan tidak akan dieksekusi. Baris ini berguna untuk memberi judul ,catatan, atau keterangan pada program. #include<header.h> Program yang dibuat menggunakan file header yang berisi prototype fungsi yang nantinya akan digunakan dalam program. Baris ini digunakan untuk mengarahkan kompiler tentang file header yang digunakan. main() { } Baris ini merupakan awal dari eksekusi program dan merupakan program utama yang harus dimiliki oleh program dalam bahasa C++. Dalam program utama dapat berisi deklarasi variabel,konstanta, serta perintah-perintah program. Setiap baris deklarasi maupun perintah harus diakhiri tanda( ; ).
Operasi Input dan Output PROSES Scanf Getch Getche cin Printf Puts Putchar cout
Fungsi Input Fungsi Output Merupakan fungsi yang digunakan untu memasukkan berbagai jenis data dari keyboard terformat dengan menggunakan format spesification. Contoh Fungsi Input: scanf, cin, getch Fungsi Output Merupakan fungsi yang digunakan untuk menampilkan berbagai jenis data yang dapat diformat karena fungsi ini dapat menggunakan kode-kode format, yaitu karakter-karakter konversi. Contoh fungsi output: printf, cout, puts, putchar. Bentuk umum penulisan: - printf (“string kontrol”, argumen1, argumen2, … ); string kontrol dapat berupa keterangan beserta penentu format (%d, %f, %c, dan lain-lain) - cout << argumen; argumen adalah data yang akan ditampilkan. Dapat berupa variabel, konstanta, maupung ungkapan.
Contoh dalam bahasa C++ menggunakan printf & scanf #include <stdio.h> #include <conio.h> int main(){ int x; /*Menampilkan teks untuk informasi*/ printf("Masukkan sebuah bilangan bulat : "); /*Membaca nilai dari keyboard ke dalam var.x */ scanf("%d",&x); /*Menampilkan nilai yang telah dimasukkan */ printf("Bilangan yang talah dimasukkan = %d",x); getch(); }
Contoh dalam bahasa C++ menggunakan cin & cout #include <iostream.h> #include <conio.h> int main(){ int x; /*Menampilkan teks untuk informasi*/ cout<<"Masukkan sebuah bilangan bulat = "; /*Membaca nilai dari keyboard ke dalam var.x */ cin>>x; /*Menampilkan nilai yang telah dimasukkan */ cout<<"Bilangan yang talah dimasukkan "<<x; getch(); }
PERINTAH PERCABANGAN Instruksi if Perintah if digunakan untuk mewujudkan percabangan bersyarat. If tunggal Syntax: if (syarat) pernyataan; If dengan else pernyataan if-else dipakai untuk memilih alternatif eksekusi dari dua blok pernyataan. Berikut format percabangan if-else : if (syarat) pernyataan; else Instruksi if dengan pilihan if lainnya syntax: if (syarat1) pernyataan1; else if (syarat2) pernyataan2; else pernyataan_n; }
Instruksi if di dalam instruksi if Syntax: pernyataan1; if (syarat2)
Contoh1: #include <stdio.h> #include <conio.h> main() { int nilai; printf (“Masukkan nilai anda {0 s/d 100} = “); scanf (“%d”, &nilai); if (nilai >= 80) printf (“Nilai anda adalah = A \n”); else if (nilai >= 60) printf (“Nilai anda adalah = B \n”); else if (nilai >= 40) printf (“Nilai anda adalah = C \n”); else if (nilai >= 20) printf (“Nilai anda adalah = D \n”); else printf (“Nilai anda adalah =E \n”); getch(); }
Contoh2: #include <conio.h> main() { int huruf; #include <stdio.h> #include <conio.h> main() { int huruf; printf (“”Masukkan nilai huruf = “); scanf (“%c”, &huruf); if (huruf == ‘A’ || huruf == ‘a’) printf (“Nilai angka adalah = 4 \n”); else if (huruf == ‘B’ || huruf == ‘b’) printf (“Nilai angka adalah = 3 \n”); else if (huruf == ‘C’ || huruf == ‘c’) printf (“Nilai angka adalah = 2 \n”); else if (huruf == ‘D’ || huruf == ‘d’) printf (“Nilai angka adalah = 1 \n”); else if (huruf == ‘E’ || huruf == ‘e’) printf (“Nilai angka adalah = 0 \n”); else printf (“Nilai anda tidak dikenal!!”); getch(); }
Latihan: Buat program untuk menentukan masukan dari user apakah berupa huruf vokal atau konsonan!
TUGAS!!! Hitung nilai mahasiswa dengan ketentuan penilaian 30% dari nilai praktikum, 30% mid, 40% uas. Kemudian konversi menjadi nilai huruf! jika nilai >= 80 -> A 80 > nilai >= 60 -> B 60 > nilai >= 40 -> C 40 > nilai >= 20 -> D nilai < 20 -> E
Instruksi switch Perintah ini digunakan untuk mempersingkat if bertumpuk, untuk menangani pengendalian program yang melibatkan banyak alternatif. Bentuk umum instruksi switch: switch (ekspresi) { case konstanta1: block of instructions 1 break; case konstanta2: block of instructions 2 break; . . . default: default block of instructions }
Contoh: #include <iostream. h> #include <conio Contoh: #include <iostream.h> #include <conio.h> #include <stdio> main () { int nomor; cout<<"Masukkan pilihan angka untuk menentukan nama hari"; puts ("1 = Senin"); puts ("2 = Selasa"); puts ("3 = Rabu"); puts ("4 = Kamis"); puts ("5 = Jumat"); puts ("6 = Sabtu"); puts ("7 = Minggu"); cout<<"Masukkan pilihan anda (1 s/d 7) = "; cin>>nomor;
switch (nomor) { case 1 : cout<<"hari Senin"; switch (nomor) { case 1 : cout<<"hari Senin"; break; case 2 : cout<<"hari Selasa"; break; case 3 : cout<<"hari Rabu"; break; case 4 : cout<<"hari Kamis"; break; case 5 : cout<<"hari Jumat"; break; case 6 : cout<<"hari Sabtu"; break; case 7 : cout<<"hari Minggu"; break; default: puts ("Yang anda masukkan salah"); } getch(); return 0; }
Tugas Buat program menggunakan instruksi switch, untuk menentukan nilai ganjil atau genap! Buat program untuk menghitung luas dan keliling sebuah bangun sesuai dengan huruf yang dipilih. Jika pilihan = - A = segitiga - B = persegi - C = persegi panjang
PERULANGAN while Pernyataan while digunakan untuk mengulang eksekusi dari suatu blok pernyataan dimana jumlah pengulangannya tergantung syarat perulangan tersebut. Perulangan akan dilaksanakan apabila nilai syarat adalah true. Jika syarat salah maka perulangan tidak akan dilaksanakan. Contohnya:
//output : jumlah bilangan 1 s/d 9 = 45 dengan while-loop #include<iostream.h> main() { int jml=0, i=0; while (++i < 10) jml += i; cout<<"jumlah = "<<jml; return 0; } Penjelasan program: Perintah perulangan akan dilaksanakan jika nilai i kurang dari 10 dimana i akan diincrement lebih dahulu sebelum dibandingkan dengan 10.
do-while Dalam struktur ini perintah dikerjakan minimal satu kali, karena langkah pertama mengerjakan perintah kemudian diikuti pengujian kondisi. Contohnya: //output : jumlah bilangan 1 s/d 9 = 45 dengan do-while-loop #include<iostream.h> main() { int jml=0, i=0; do jml += i; while (++i < 10); cout<<"jumlah = "<<jml; return 0; }
for Struktur ini digunakan untuk perulangan yang jumlah perulangannya sudah diketahui. Struktur for terdapat bagian sbb: inisialisasi : memberi nilai awal pada variabel kendali Kondisi : menyatakan kondisi berhenti perulangan perubahan : menyatakan perubahan nilai variabel kendali
Contoh program: //output : jumlah bilangan 1 s/d 9 = 45 dengan do-while-loop #include<iostream.h> main() { int jml=0, i; for (i=0;i<10;i++) jml += i; cout<<"jumlah = "<<jml; return 0; }
Perulangan tersarang (Nested Looping) Dalam suatu pernyataan for boleh ada pernyataan for yang lain. Pernyataan for yang dalam akan dieksekusi terlebih dahulu dari pernyataan for yang luar. Berikut contohnya: #include<iostream.h> #include<conio.h> main() { int x,y; for ( y=1;y<=4;y++) { for ( x=1;x<=3;x++) cout<<"y"<<y<<"x"<<x<<"\t"; cout<<"\n";} getch(); return 0; }
Tugas Buat program perulangan untuk menghitung hasil penjumlahan bilangan antara 900 sampai 950 menggunakan while, do while & for! Buat program yang outputnya spt dibawah: masukkan bilangan ganjil = 5 <di enter> 1111 3333 5555
Array (Larik) Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu: variabel).
Deklarasi Larik (array) dimensi 1 Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik. Type Nama_array [subscript] Contoh = float nilai [10]; -> Menyimpan 10 buah data bertipe float. Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Pemberian Nilai Awal contoh : int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Pendefinisian array bertipe angka yang terdiri 10 elemen bertipe data int . Atau int angka [ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Secara otomatis kompiler akan menghitungnya sendiri
#include <iostream.h> #include <conio.h> main(){ int a[3]={10,11,12}, b[]={44,45,46},i; float x[2]; cout<<"a[1]"<< a[1]<<" a[2]"<< a[2]<<endl; cout<<"b[0]"<< b[0]<<" b[1]"<< b[1]<<" b[2]"<< b[2]<<endl; cout<<"\n"; cout<<"Masukkan angka 1 = "; cin>>x[0]; cout<<"Masukkan angka 2 = "; cin>>x[1]; cout<<"x[0]= "<<x[0]<<endl; cout<<"x[1]= "<<x[1]<<endl; getch(); }
#include <iostream.h> #include <conio.h> main(){ int a[5]; int i; for (i=1;i<=5;i++) {cout<<"Data ke "<<i<<" = "; cin>>a[i]; } for (i=1;i<=5;i++){ cout<<a[i];} getch(); }
Saatnya bersenang-senang!!! Jumlahkan total angka dalam array! Cari nilai maksimal dari beberapa masukan angka!
Array 2 Dimensi Tipe data array dua dimensi biasa digunakan untuk menyimpan,mengolah maupun menampilkan suatu data dalam bentuk tabel maupun matriks. Pendeklarasian Array 2 dimensi type nama_array [x][y] [x] = jumlah baris [y] = jumlah kolom
Contoh: int nilai [3][4]; Pada pendefinisian di atas: 3 menyatakan jumlah baris, 4 menyatakan jumlah kolom Contoh Program 1: #include <iostream.h> #include <conio.h> #define Kolom 5 #define Baris 3 int array [Baris][Kolom]; int n,m; int main () { for (n=0;n<Baris;n++) {for (m=0;m<Kolom;m++) {array[n][m]=(n+1)*(m+1); cout<<array[n][m]<<"\t";} cout<<"\n";} getch(); }
Contoh Program 2: #include <iostream.h> #include <conio.h> main(){ int b,k; int matrik[5][5]; for (b=0;b<5;b++){ for (k=0;k<5;k++){ if ((b==k) matrik[b][k]=1; else matrik[b][k]=0; cout<<matrik[b][k]<<" "; } cout<<"\n"; getch();
Array 3 Dimensi Pendeklarasian array 3 dimensi tidak jauh beda dengan array 2 dimensi. Contoh: int tiga_dimensi[3][4][2] Artinya: Array dengan nama tiga_dimensi dengan tipe int, yang mempunyai 3x4x2=24 elemen array. 3 -> jumlah tinggi, 4 -> jumlah panjang, 2 -> lebar
SORTING Adalah proses pengurutan/penyusunan sekumpulan objek ke dalam urutan tertentu. Metode pengurutan: Selection sort Insertion sort Bubble sort Merge sort
Metode selection sort a. Pengurutan naik (Ascending) Langkah-langkah: - Mencari data terkecil dari data pertama sampai terakhir, kemudian ditukar posisinya dengan data pertama. Dan begitu seterusnya hingga semua data terurut naik.
Contoh: # include <stdio.h> # include <iostream.h> # include <conio.h> main() {int i,j,u,n; int Imax,temp,data[10]; cout<<"Masukkan jumlah data="; cin>>n; for (i=0;i<n;i++) {cout<<"Masukkan data ke "<<i<<"=";cin>>data[i]; } for(i=0;i<n;i++){ Imax=0; for(j=0;j<n;j++){ if(data[j]>data[Imax]){ Imax=j;} temp=data[j]; data[j]=data[Imax]; data[Imax]=temp; } cout<<"Setelah diurutkan =\n"; for(i=0;i<n;i++) printf("%d\n", data[i]); getch();
Searching Dalam bab ini, kita akan membahas metode pencarian data dalam suatu array. Metode pencarian yang akan digunakan adalah: Sequential search (pencarian beruntun) Binary search
Contoh Sequential Search: #include<iostream.h> #include<conio.h> main(){ int i,n,nilai,tempat, benar; int data[100]; cout<<"Masukkan banyaknya data ="; cin>>n; for(i=0;i<n;i++) {cout<<"Masukkan data ke" <<i<<" = "; cin>>data[i];} cout<<"Masukkan data yang dicari="; cin>>nilai; benar=0;
for(i=0;i<n;i++) {if (data[i]==nilai) {benar=1; tempat=i;} else i=i+1; } if (benar==0) cout<<"Data yang anda cari tidak ditemukan\n"; else{ cout<<"Data yang anda cari ditemukan\n"; cout<<"Berada diposisi"<<tempat+1;} getch();
Latihan Lakukan pencarian terhadap array 2 dimensi
STRUKTUR (STRUCT) Struktur merupakan kumpulan elemen data yang digabungkan menjadi satu kesatuan data. Masing-masing elemen data tersebut dinamakan field atau elemen struktur. Field tersebut bisa memiliki tipe data yang ataupun berbeda, meskipun field tersebut dalam satu kesatuan tetapi tetap bisa siakses secara individu.
Deklarasi struktur struct nama_struktur // nama struktur, kata struct harus ada { type1 element1; type2 element2; anggota / elemen dari struktur type3 element3; . } nama_object; // identifier yang digunakan untuk pemanggilan struktur ------------atau--------------- struct nama_struktur type2 element2; } ; struct nama_struktur nama_obj
Contoh:
Array of Struct
Latihan
Ketentuan Soal Setiap karyawan yang mempunyai anak mendapat tunjangan sesuai dengan jumlah anak. Besarnya tunjangan yang didapat tiap anak adalah Rp. 100.000 Maksimal jumlah anak yang mendapat tunjangan adalah 3 anak