Anda di halaman 1dari 33

KATA PENGANTAR

Puji dan Syukur kami panjatkan kepada Allah swt, karena dengan rahmat dan hidayah serta
ilham-Nya saya dapat menyelesaikan laporan tepat pada wakatunya. Penuliasan laporan ini dalam
rangka memenuhi tugas mata kuliah pengenalan algoritma dan pemrograman.

Saya menyadari bahwa laporan yang saya buat ini tidak luput dari kekuragan-kekurangan.
Hal ini disebabkan oleh keterbatasan pengetahuan dan kemampuan yang saya miliki. Oleh karena
itu dengan segala kekurangan dalam laporan ini, saya menerima berapapun nilai yang saya
dapatkan nanti dan dengan segala rasa hormat saya akan selalu bersyukur dan ber-terima kasih atas
nilai yang nanti bapak berikan.

Besar harapan saya, laporan ini dapat menjadi nilai tambahan saya dari uts kemarin yang
belum berhasil, dan terimaksih kepada pak Apriade yang sudah membimbing dan mengajarkan saya
pada mata kuliah ini. Akhirul kalam, semoga kita selalu diberi pertolongan oleh Allah SWT, dan
semoga ilmu yang telah bapak sampaikan, bisa menjadi amal jariyah. Aaamiin Ya Robbal
‘Aalamiin.

Karawang, November 2021

Muhammad Furqon Huwaidy


DAFTAR ISI

Halaman Judul………………………………………………………………….. ……………… i

Kata Pengantar………………………………………………………………….. ……………... ii

Daftar Isi……………………………………………………………………………………….. iii

BAB I PENDAHULUAN………………………………………………………………………. 1

1.1 Penjelasan Singkat Bahasa C…...………………………………………………………….. 1

1.2 Perbandingan Dengan Bahasa C++.………………………………………………………. 1

BAB II ARRAY………..……………………………………………………………………… 2

2.1 Array Pada Bahasa C…………………………………………………..…………………... 2

2.1.1 Sifat Array………………………………………………………..………………. 2

2.1.2 Keuntungan & Kerugian C Array………………………………………………… 2

2.1.3 Deklarasi Array C………………………………………………………………… 3

2.1.4 Inisialisasi C Array………………………………………………………………. 3

2.1.5 Contoh C Array…..………………………………………………………………. 4

2.1.6 C Array: Deklarasi dengan Inisialisasi…………………………………………. 4

2.1.7 C Array Contoh: Mengurutkan array……………………………………………. 5

2.2 Array Dua Dimensi dalam C……………………………………………………………… 7

2.2.1 Deklarasi Array dua dimensi dalam C…………………………………………… 7

2.2.2 Inisialisasi Array 2D di C………………………………………………………… 7

2.2.3 Contoh Array Dua Dimensi Dalam C…………………………………………… 7

2.2.4 Contoh array C 2D: Menyimpan elemen dalam matriks dan mencetaknya……… 8

2.3 Kembalikan Array Di C…....………………………………………………………………. 9

2.3.1 Melewati Array Ke Fungsi Sebagai Pointer………………………………………. 10

2.3.2 Cara Mengembalikan Array Dari Suatu Fungsi…………………………………… 11


BAB III STRUCTURE………..………………………………………………………………. 18

3.1 Struktur…………….…………………………………………………..……………………. 19

3.1.1 Apa Itu Struktur Dalam C?……………………………………………………….. 20

3.2 Deklarasi Variabel Struktur…………………………………………………………………. 20

3.2.1 Contoh Struktur Dalam C…………………………………………………………. 21

3.3 Typedef Dalam C……………………………………………………………………………. 23

BAB IV OOP……………………………………………………………………………………. 28

4.1 Konsep C++ OOP……………………………………………………………………………. 28

4.2 OOPs (Object Oriented Programming System)……………………………………………… 28


BAB I

PENDAHULUAN

1.1 Penjelasan Singkat Bahasa C


Bahasa pemrograman C merupakan salah satu bahasa pemrograman komputer. Dibuat
pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering
digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis
platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat
populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang
merupakan extensi dari C.

1.2 Perbandingan Dengan Bahasa C++

C++ pada awalnya disebut sebagai "C dengan Kelas" (C With Classes) dan diciptakan untuk
memiliki fitur pemrograman berorientasi objek. Karena C++ berdasarkan dari C, maka kebanyakan
kode C bisa dirakit di kompilator C++ dengan mudah. Perbedaan kecil contohnya kata "new" dan
"delete" yang terdapat di kode C tidak bisa dirakit di C++ karena kata-kata ini adalah kata dipesan
C++. Pustaka C biasanya bisa diimpor ke pustaka C++, tapi karena kompilator C dan C++ memiliki
"name mangling" yang berbeda, maka perubahan kecil di kode C perlu dilakukan.
BAB II

ARRAY

2.1 Array Pada Bahasa C

Array didefinisikan sebagai kumpulan item data sejenis yang disimpan di lokasi memori
yang berdekatan. Array adalah tipe data turunan dalam bahasa pemrograman C yang dapat
menyimpan tipe data primitif seperti int, char, double, float, dll. Array juga memiliki kemampuan
untuk menyimpan kumpulan tipe data turunan, seperti pointer, struktur, dll. Array adalah struktur
data paling sederhana dimana setiap elemen data dapat diakses secara acak dengan menggunakan
nomor indeksnya.

Array C bermanfaat jika Anda harus menyimpan elemen serupa. Misalnya, jika kita ingin
menyimpan nilai seorang siswa dalam 6 mata pelajaran, maka kita tidak perlu mendefinisikan
variabel yang berbeda untuk nilai pada mata pelajaran yang berbeda. Alih-alih itu, kita dapat
mendefinisikan sebuah array yang dapat menyimpan tanda di setiap subjek di lokasi memori yang
berdekatan.
Dengan menggunakan array, kita dapat mengakses elemen dengan mudah. Hanya beberapa
baris kode yang diperlukan untuk mengakses elemen array.

2.1.1 Sifat Array

Array berisi properti berikut:

• Setiap elemen array memiliki tipe data yang sama dan memiliki ukuran yang sama,
yaitu int = 4 byte.

• Elemen array disimpan di lokasi memori yang berdekatan di mana elemen pertama
disimpan di lokasi memori terkecil.

• Elemen array dapat diakses secara acak karena kita dapat menghitung alamat
setiap elemen array dengan alamat dasar yang diberikan dan ukuran elemen data.

2.1.2 Keuntungan & Kekurangan C Array

Keuntungan C Array:

1) Optimasi Kode : Lebih sedikit kode untuk mengakses data.


2) Kemudahan traversing : Dengan menggunakan for loop, kita dapat mengambil elemen
array dengan mudah.
3) Kemudahan pengurutan : Untuk mengurutkan elemen array, kita hanya membutuhkan
beberapa baris kode saja.
4) Akses Acak : Kita dapat mengakses elemen apa pun secara acak menggunakan array.

Kerugian C Array:
1) Ukuran Tetap : Berapa pun ukurannya, kami tentukan pada saat deklarasi array, kami
tidak dapat melebihi batas. Jadi, ukurannya tidak bertambah secara dinamis seperti
LinkedList yang akan kita pelajari nanti.

2.1.3 Deklarasi Array C

Kita dapat mendeklarasikan array dalam bahasa c dengan cara berikut.

data_type array_name[ukuran_array];

Sekarang, mari kita lihat contoh untuk mendeklarasikan array.

int marks [5];

Di sini, int adalah data_type , tanda adalah array_name , dan 5 adalah array_size.

2.1.4 Inisialisasi C Array

Cara paling sederhana untuk menginisialisasi array adalah dengan menggunakan indeks
setiap elemen. Kita dapat menginisialisasi setiap elemen array dengan menggunakan index.
Perhatikan contoh berikut.

marks[0]=80;//inisialisasi array

marks[1]=60;
marks[2]=70;
marks[3]=85;
marks[4]=75;
2.1.5 Contoh C Array

#include<stdio.h>

int main(){
int i=0;
int marks[5];//deklarasi array
marks[0]=80;//inisialisasi array
marks[1]=60;
marks[2]=70;
marks[3]=85;
marks[4]=75;
//perjalanan array
for(i=0;i<5;i++){
printf("%d\n",marks[i]);
}//akhir dari perulangan for
return 0;
}

outputnya

2.1.6 C Array: Deklarasi dengan Inisialisasi

Kita dapat menginisialisasi array c pada saat deklarasi. Mari kita lihat kodenya.

Int marks[5]={20,30,40,50,60};

Dalam kasus seperti itu, tidak ada persyaratan untuk menentukan ukuran. Jadi bisa juga ditulis
sebagai kode berikut.

Int marks[]={20,30,40,50,60};
Mari kita lihat program C untuk mendeklarasikan dan menginisialisasi array di C.

#include<stdio.h>

int main(){
int i=0;
int marks[5]={20,30,40,50,60};//deklarasi dan inisialisasi array
//perjalanan array
for(i=0;i<5;i++){
printf("%d\n",marks[i]);
}
return 0;
}

output

2.1.7 C Array Contoh: Mengurutkan array

Dalam program berikut, kami menggunakan metode bubble sort untuk mengurutkan array dalam
urutan menaik.

#include<stdio.h>
void main ()
{
int i,j,temp;
int a[10] = {10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
for(i = 0; i<10; i++)
{
for(j = i+1; j<10; j++)
{
if(a[j] > a[i])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("Mencetak Daftar Elemen Terurut ...\n");
for(i = 0; i<10; i++)
{
printf("%d\n",a[i]);
}
}

Program untuk mencetak elemen array terbesar dan terbesar kedua.

#include <stdio.h>

void main ()
{
int arr[100],i,n,largest,sec_largest;
printf("masukkan ukuran array?");
scanf("%d",&n);
printf("masukkan elemen array?");
for(i = 0; i<n; i++)
{
scanf("%d",&arr[i]);
}
largest = arr[0];
sec_largest = arr[1];
for(i=0;i<n;i++)
{
if(arr[i]>largest)
{
sec_largest = largest;
largest = arr[i];
}
else if (arr[i]>sec_largest && arr[i]!=largest)
{
sec_largest=arr[i];
}
}
printf("largest = %d, second largest = %d",largest,sec_largest);

2.2 Array Dua Dimensi dalam C

Array dua dimensi dapat didefinisikan sebagai array dari array. Array 2D diatur sebagai
matriks yang dapat direpresentasikan sebagai kumpulan baris dan kolom. Namun, array 2D dibuat
untuk mengimplementasikan struktur data mirip database relasional. Ini memberikan kemudahan
menyimpan sebagian besar data sekaligus yang dapat diteruskan ke sejumlah fungsi di mana pun
diperlukan.

2.2.1 Deklarasi Array dua dimensi dalam C

Sintaks untuk mendeklarasikan array 2D diberikan di bawah ini

data_type array_name[baris][kolom];

perhatikan contoh berikut.

Int twodimen[4][3];

Di sini, 4 adalah jumlah baris, dan 3 adalah jumlah kolom.

2.2.2 Inisialisasi Array 2D di C

Dalam array 1D, kita tidak perlu menentukan ukuran array jika deklarasi dan inisialisasi
dilakukan secara bersamaan. Namun, ini tidak akan berfungsi dengan array 2D. Kita harus
mendefinisikan setidaknya dimensi kedua dari array. Array dua dimensi dapat dideklarasikan dan
didefinisikan dengan cara berikut.

Int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};

2.2.3 Contoh Array Dua Dimensi Dalam C


#include<stdio.h>
int main(){
int i=0,j=0;
int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
//traversing 2D array
for(i=0;i<4;i++){
for(j=0;j<3;j++){
printf("arr[%d] [%d] = %d\n",i,j,arr[i][j]);
}//end of j
}//end of i
return 0;
}

Output

2.2.4 Contoh array C 2D: Menyimpan elemen dalam matriks dan mencetaknya.

#include <stdio.h>

void main ()
{
int arr[3][3],i,j;
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
printf("Masukkan a[%d][%d]: ",i,j);
scanf("%d",&arr[i][j]);
}
}
printf("\n mencetak elemen ....\n");
for(i=0;i<3;i++)
{
printf("\n");
for (j=0;j<3;j++)
{
printf("%d\t",arr[i][j];
}
}
}

Output

2.3 Kembalikan Array Di C

Array adalah tipe struktur data yang menyimpan kumpulan data homogen dengan ukuran
tetap. Singkatnya, kita dapat mengatakan bahwa array adalah kumpulan variabel dengan tipe yang
sama. Misalnya, jika kita ingin mendeklarasikan 'n' jumlah variabel, n1, n2...n., jika kita membuat
semua variabel ini satu per satu, maka itu menjadi tugas yang sangat membosankan. Dalam kasus
seperti itu, kami membuat array variabel yang memiliki tipe yang sama. Setiap elemen array dapat
diakses menggunakan indeks elemen.
Pertama-tama mari kita lihat cara melewatkan array satu dimensi ke suatu fungsi.
Melewati array ke suatu fungsi

#include <stdio.h>  

void getarray(int arr[])  
{  
    printf("Elements of array are : ");  
    for(int i=0;i<5;i++)  
    {  
        printf("%d ", arr[i]);  
    }  
}  
int main()  
{  
   int arr[5]={45,67,34,78,90};  
   getarray(arr);  
   return 0;  
}

Dalam program di atas, pertama-tama kita membuat array arr[] dan kemudian kita meneruskan
array ini ke fungsi getarray(). Fungsi getarray() mencetak semua elemen array arr[].
Output

2.3.1 Melewati Array Ke Fungsi Sebagai Pointer


Sekarang, kita akan melihat cara melewatkan array ke fungsi sebagai pointer.

#include <stdio.h>  
void printarray(char *arr)  
{  
    printf("Elements of array are : ");  
    for(int i=0;i<5;i++)  
    {  
        printf("%c ", arr[i]);  
    }  
}  
int main()  
{  
  char arr[5]={'A','B','C','D','E'};  
  printarray(arr);  
  return 0;  
}

Dalam kode di atas, kami telah meneruskan array ke fungsi sebagai pointer. Fungsi printarray()
mencetak elemen array.

Output

Catatan: Dari contoh di atas, kami mengamati bahwa array dilewatkan ke fungsi sebagai referensi
yang berarti bahwa array juga bertahan di luar fungsi.

2.3.2 Cara Mengembalikan Array Dari Suatu Fungsi

Mengembalikan pointer yang menunjuk ke array


#include <stdio.h>  

int *getarray()  
{  
    int arr[5];  
    printf("Enter the elements in an array : ");  
    for(int i=0;i<5;i++)  
    {  
        scanf("%d", &arr[i]);  
    }  
    return arr;  
}  
int main()  
{  
  int *n;  
  n=getarray();  
  printf("\nElements of array are :");  
  for(int i=0;i<5;i++)  
    {  
        printf("%d", n[i]);  
    }  
    return 0;  
}  

Dalam program di atas, fungsi getarray() mengembalikan variabel 'arr'. Ini mengembalikan variabel
lokal, tetapi itu adalah lokasi memori ilegal yang akan dikembalikan, yang dialokasikan dalam
fungsi di tumpukan. Karena kontrol program kembali ke fungsi main() , dan semua variabel dalam
tumpukan dibebaskan. Oleh karena itu, kita dapat mengatakan bahwa program ini mengembalikan
lokasi memori, yang sudah tidak dialokasikan, sehingga output dari program adalah kesalahan
segmentasi.

Output
Ada tiga cara yang benar untuk mengembalikan array ke suatu fungsi:

• Menggunakan array yang dialokasikan secara dinamis

• Menggunakan array statis

• Menggunakan struktur

Mengembalikan array dengan melewatkan array yang akan dikembalikan sebagai


parameter ke fungsi.

#include <stdio.h>  

int *getarray(int *a)  
{  
    
    printf("Enter the elements in an array : ");  
    for(int i=0;i<5;i++)  
    {  
        scanf("%d", &a[i]);  
    }  
    return a;  
}  
int main()  
{  
  int *n;  
  int a[5];  
  n=getarray(a);  
  printf("\nElements of array are :");  
  for(int i=0;i<5;i++)  
    {  
        printf("%d", n[i]);  
    }  
    return 0;  

Output

Mengembalikan array menggunakan fungsi malloc().

#include <stdio.h>  

#include<malloc.h>  
int *getarray()  
{  
    int size;  
    printf("Enter the size of the array : ");  
    scanf("%d",&size);  
    int *p= malloc(sizeof(size));  
    printf("\nEnter the elements in an array");  
    for(int i=0;i<size;i++)  
    {  
        scanf("%d",&p[i]);  
    }  
    return p;  
}  
int main()  
{  
   int *ptr;  
   ptr=getarray();  
   int length=sizeof(*ptr);  
   printf("Elements that you have entered are : ");  
   for(int i=0;ptr[i]!='\0';i++)  
    {  
      printf("%d ", ptr[i]);  
    }  
  return 0;  

Output

Menggunakan Variabel Statis.

#include <stdio.h>  

int *getarray()  
{  
  static int arr[7];  
  printf("Enter the elements in an array : ");  
  for(int i=0;i<7;i++)  
  {  
      scanf("%d",&arr[i]);  
  }  
  return arr;  
      
}  
int main()  
{  
  int *ptr;  
  ptr=getarray();  
  printf("\nElements that you have entered are :");  
  for(int i=0;i<7;i++)  
  {  
      printf("%d ", ptr[i]);  
  }  
}

Dalam kode di atas, kita telah membuat variabel arr[] sebagai static di fungsi getarray() , yang
tersedia di seluruh program. Oleh karena itu, fungsi getarray() mengembalikan lokasi memori
sebenarnya dari variabel ' arr '.

Output

Menggunakan Struktur
Struktur adalah tipe data yang ditentukan pengguna yang dapat berisi kumpulan item dari tipe yang
berbeda. Sekarang, kita akan membuat program yang mengembalikan array dengan menggunakan
struktur.

#include <stdio.h>  
#include<malloc.h>  

struct array  
{  
    int arr[8];  
};  
struct array getarray()  
{  
    struct array y;  
    printf("Enter the elements in an array : ");  
    for(int i=0;i<8;i++)  
    {  
        scanf("%d",&y.arr[i]);  
    }  
    return y;  
}  
int main()  
{  
  struct array x=getarray();  
  printf("Elements that you have entered are :");  
  for(int i=0;x.arr[i]!='\0';i++)  
  {  
      printf("%d ", x.arr[i]);  
  }  
    return 0;  
}

Output
BAB III

STRUCTURE

3.1 Struktur

Mengapa menggunakan struktur?Di C, ada kasus di mana kita perlu menyimpan banyak
atribut dari suatu entitas. Tidak perlu bahwa suatu entitas memiliki semua informasi dari satu jenis
saja. Itu dapat memiliki atribut yang berbeda dari tipe data yang berbeda. Misalnya, entitas Siswa
mungkin memiliki nama (string), nomor roll (int), tanda (float). Untuk menyimpan jenis informasi
seperti itu mengenai siswa entitas, kami memiliki pendekatan berikut:

• Membangun array individu untuk menyimpan nama, nomor roll, dan tanda.

• Gunakan struktur data khusus untuk menyimpan kumpulan tipe data yang berbeda.

Mari kita lihat pendekatan pertama secara rinci.


#include<stdio.h>  

void main ()  
{  
  char names[2][10],dummy; // Nama array karakter 2 dimensi digunakan untuk menyimpan nama
siswa
  int roll_numbers[2],i;  
  float marks[2];  
  for (i=0;i<3;i++)  
  {  
      
    printf("Masukkan nama, nomor gulung, dan nilai siswa  %d",i+1);  
    scanf("%s %d %f",&names[i],&roll_numbers[i],&marks[i]);  
    scanf("%c",&dummy); // enter will be stored into dummy character at each iteration  
  }  
  printf("Mencetak Data Siswa ...\n");  
  for (i=0;i<3;i++)  
  {  
    printf("%s %d %f\n",names[i],roll_numbers[i],marks[i]);  
  }  
}
Output

Program di atas dapat memenuhi persyaratan kami untuk menyimpan informasi siswa entitas.
Namun, programnya sangat kompleks, dan kompleksitasnya meningkat seiring dengan jumlah
input. Elemen dari masing-masing larik disimpan secara berurutan, tetapi semua larik mungkin
tidak disimpan secara berurutan di dalam memori. C memberi Anda pendekatan tambahan dan lebih
sederhana di mana Anda dapat menggunakan struktur data khusus, yaitu struktur, di mana Anda
dapat mengelompokkan semua informasi dari tipe data yang berbeda mengenai suatu entitas.

3.1.1 Apa Itu Struktur Dalam C?

Struktur dalam c adalah tipe data yang ditentukan pengguna yang memungkinkan kita untuk
menyimpan kumpulan tipe data yang berbeda. Setiap elemen struktur disebut anggota. Struktur ca;
mensimulasikan penggunaan kelas dan templat karena dapat menyimpan berbagai informasi Kata
kunci,struct digunakan untuk mendefinisikan struktur.
Mari kita lihat sintaks untuk mendefinisikan struktur di c.
struct structure_name   

{  
    data_type member1;  
    data_type member2;  
    .  
    .  
    data_type memeberN;  
};

Mari kita lihat contoh untuk mendefinisikan struktur untuk entitas karyawan di c.

struct employee  

{   int id;  
    char name[20];  
    float salary;  
};

Gambar berikut menunjukkan alokasi memori karyawan struktur yang didefinisikan dalam contoh
di atas.

Di sini, struct adalah kata kuncinya; employee adalah nama struktur; id, name, dan salary adalah
anggota atau bidang struktur. Mari kita memahaminya dengan diagram yang diberikan di bawah ini:

3.2 Deklarasi Variabel Struktur

Kita dapat mendeklarasikan variabel untuk struktur sehingga kita dapat mengakses anggota struktur
dengan mudah. Ada dua cara untuk mendeklarasikan variabel struktur:

1.Dengan kata kunci struct dalam fungsi main()

2.Dengan mendeklarasikan variabel pada saat mendefinisikan struktur.


cara pertama:
Mari kita lihat contoh untuk mendeklarasikan variabel struktur dengan kata kunci struct. Itu harus
dideklarasikan dalam fungsi utama.
struct employee  

1.{   int id;  
2.    char name[50];  
3.    float salary;  
4.};

Sekarang tulis kode yang diberikan di dalam fungsi main().


struct employee e1, e2; 

Variabel e1 dan e2 dapat digunakan untuk mengakses nilai yang disimpan dalam struktur. Di sini,
e1 dan e2 dapat diperlakukan dengan cara yang sama seperti objek d  C++ dan Java.
cara ke-2:
Mari kita lihat cara lain untuk mendeklarasikan variabel pada saat mendefinisikan struktur.
struct employee  

1.{   int id;  
2.    char name[50];  
3.    float salary;  
4.}e1,e2;

Pendekatan mana yang bagus?

Jika jumlah variabel tidak tetap, gunakan pendekatan pertama. Ini memberi Anda
fleksibilitas untuk mendeklarasikan variabel struktur berkali-kali. Jika tidak. variabel tetap, gunakan
pendekatan ke-2. Ini menyimpan kode Anda untuk mendeklarasikan variabel dalam fungsi main().

Mengakses anggota struktur

Ada dua cara untuk mengakses anggota struktur:


1.Oleh . (anggota atau operator titik)

2.Oleh -> (operator penunjuk struktur)


Mari kita lihat kode untuk mengakses anggota id variabel p1 dengan. (anggota) operator.

p1.id  
3.2.1 Contoh Struktur Dalam C
Mari kita lihat contoh sederhana struktur dalam bahasa C.

#include<stdio.h>  

#include <string.h>    
struct karyawan      
{   int id;      
    char name[50];      
}e1;  //mendeklarasikan variabel e1 untuk struktur 
int main( )    
{    
//menyimpan informasi karyawan pertama
   e1.id=101;    
   strcpy(e1.name, "Sonoo Jaiswal");//menyalin string ke array char    
   //mencetak informasi karyawan pertama 
   printf( "karyawan 1 id : %d\n", e1.id);    
   printf( "karyawan 1 nama : %s\n", e1.name);    
return 0;  
}

Output

Mari kita lihat contoh lain dari struktur dalam bahasa C untuk menyimpan banyak informasi
karyawan.
#include<stdio.h>  

#include <string.h>    
struct karyawan      
{   int id;      
    char name[50];      
    float gaji;      
}e1,e2;  //mendeklarasikan variabel e1 dan e2 untuk struktur    
int main( )    
{    
   //menyimpan informasi karyawan pertama    
   e1.id=101;    
   strcpy(e1.name, "Sonoo Jaiswal");//menyalin string ke array char    
   e1.gaji=56000;    
    
  //menyimpan informasi karyawan kedua    
   e2.id=102;    
   strcpy(e2.name, "James Bond");    
   e2.gaji=126000;    
     
   //mencetak informasi karyawan pertama    
   printf( "karyawan 1 id : %d\n", e1.id);    
   printf( "karyawan 1 nama : %s\n", e1.name);    
   printf( "employee 1 gaji : %f\n", e1.gaji);    
    
   //mencetak informasi karyawan kedua    
   printf( "karyawan 2 id : %d\n", e2.id);    
   printf( "karyawan 2 nama : %s\n", e2.name);    
   printf( "karyawan 2 gaji : %f\n", e2.salary);    
   return 0;
}

Output

karyawan 1 id : 101
karyawan 1 nama : Sonoo Jaiswal
karyawan 1 gaji : 56000.000000
karyawan 2 id : 102
karyawan 2 nama : James Bond
karyawan 2 gaji : 126000.000000

3.3 Typedef Dalam C

typedef adalah kata kunci yang digunakan dalam pemrograman C untuk memberikan beberapa
nama yang berarti untuk variabel yang sudah ada di program C. Ini berperilaku sama seperti kita
mendefinisikan alias untuk perintah. Singkatnya, kita dapat mengatakan bahwa kata kunci ini
digunakan untuk mendefinisikan kembali nama variabel yang sudah ada.

Sintaks typedef

typedef <existing_name> <alias_name>
Dalam sintaks di atas, 'existing_name' adalah nama variabel yang sudah ada sedangkan 'alias
name' adalah nama lain yang diberikan untuk variabel yang ada. Sebagai contoh, misalkan kita
ingin membuat variabel bertipe unsigned int, maka akan menjadi tugas yang membosankan jika
kita ingin mendeklarasikan beberapa variabel bertipe ini. Untuk mengatasi masalah tersebut, kami
menggunakan kata kunci typedef.

typedef  unsigned  int  unit;  

Dalam pernyataan di atas, kami telah mendeklarasikan variabel unit tipe unsigned int dengan
menggunakan kata kunci typedef.Sekarang, kita dapat membuat variabel bertipe unsigned int
dengan menulis pernyataan berikut:

unit a, b;

Bukannya menulis :

unsigned  int  a, b; 

Sampai sekarang, kami telah mengamati bahwa kata kunci typedef menyediakan jalan pintas yang
bagus dengan memberikan nama alternatif untuk variabel yang sudah ada. Kata kunci ini berguna
ketika kita berhadapan dengan tipe data yang panjang khususnya, deklarasi struktur.

Mari kita pahami melalui contoh sederhana.

#include <stdio.h>  
int main()  
{  
typedef unsigned int unit;  
unit i,j;  
i=10;  
j=20;  
printf("Nilai i adalah :%d",i);  
printf("\nNilai j adalah :%d",j);  
return 0;  
}

Output
Menggunakan typedef dengan struktur

Perhatikan deklarasi struktur di bawah ini:


struct student  

{  
char name[20];  
int age;  
};  
struct student s1; 

Dalam deklarasi struktur di atas, kami telah membuat variabel tipe student dengan menulis
pernyataan berikut:

struct student s1;

Pernyataan di atas menunjukkan pembuatan variabel, yaitu s1, tetapi pernyataannya cukup besar.
Untuk menghindari pernyataan besar seperti itu, kami menggunakan kata kunci typedef untuk
membuat variabel tipe student.

struct student  
{  
char name[20];  
int age;  
};  
typedef struct student stud;  
stud s1, s2;

Pada pernyataan di atas, kita telah mendeklarasikan variabel stud bertipe struct student. Sekarang,
kita dapat menggunakan variabel stud dalam sebuah program untuk membuat variabel bertipe
struct student.

Typedef di atas dapat ditulis sebagai

typedef struct student  
{  
char name[20];  
int age;   
} stud;  
stud s1,s2;
Dari deklarasi di atas, kami menyimpulkan bahwa kata kunci typedef mengurangi panjang kode
dan kompleksitas tipe data. Ini juga membantu dalam memahami program.

Mari kita lihat contoh lain di mana kita mengetik deklarasi struktur.
#include <stdio.h>  

typedef struct student  
{  
char name[20];  
int age;  
}stud;  
int main()  
{  
stud s1;  
printf("Enter the details of student s1: ");  
printf("\nEnter the name of the student:");  
scanf("%s",&s1.name);  
printf("\nEnter the age of student:");  
scanf("%d",&s1.age);  
printf("\n Name of the student is : %s", s1.name);  
printf("\n Age of the student is : %d", s1.age);  
return 0;  
}

Output

Menggunakan typedef dengan pointer


Kami juga dapat memberikan nama lain atau nama alias ke variabel pointer dengan bantuan
typedef. Sebagai contoh, kami biasanya mendeklarasikan pointer, seperti yang ditunjukkan di
bawah ini:
int * ptr;  
Kita dapat mengganti nama variabel pointer di atas seperti yang diberikan di bawah ini:
typedef int * ptr; 

Dalam pernyataan di atas, kita telah mendeklarasikan variabel bertipe int*. Sekarang, kita dapat
membuat variabel bertipe int* hanya dengan menggunakan variabel ' ptr' seperti yang ditunjukkan
pada pernyataan di bawah ini:

ptr p1, p2;  

Dalam pernyataan di atas, p1 dan p2 adalah variabel bertipe ' ptr'.


BAB IV

OOP

4.1 Konsep C++ OOP

Tujuan utama dari pemrograman C++ adalah untuk memperkenalkan konsep orientasi objek
ke bahasa pemrograman C. Pemrograman Berorientasi Objek adalah paradigma yang menyediakan
banyak konsep seperti pewarisan(inheritance), pengikatan data(data binding), polimorfisme,
dll. Paradigma pemrograman di mana segala sesuatu direpresentasikan sebagai objek dikenal
sebagai bahasa pemrograman yang benar-benar berorientasi objek. Smalltalk dianggap sebagai
bahasa pemrograman pertama yang benar-benar berorientasi objek.

4.2 OOPs (Object Oriented Programming System)

Objek berarti entitas kata nyata seperti pena, kursi, meja dll. Pemrograman Berorientasi Objek
adalah metodologi atau paradigma untuk merancang program menggunakan kelas dan objek. Ini
menyederhanakan pengembangan dan pemeliharaan perangkat lunak dengan menyediakan beberapa
konsep:

1. Object
2. Class
3. Inheritance
4. Polymorphism
5. Abstraction
6. Encapsulation

Object

Setiap entitas yang memiliki status dan perilaku dikenal sebagai objek. Misalnya: kursi, pena, meja,
keyboard, sepeda dll. Bisa fisik dan logis.

Class

Kumpulan dari objek disebut kelas. Ini adalah entitas logis.

Inheritance

Ketika satu objek memperoleh semua properti dan perilaku objek induk yaitu dikenal sebagai
Inheritance. Ini menyediakan penggunaan kembali kode. Ini digunakan untuk mencapai
polimorfisme runtime.
Polymorphism

Ketika satu tugas dilakukan dengan cara yang berbeda yaitu dikenal sebagai polimorfisme.
Misalnya: untuk meyakinkan pelanggan secara berbeda, menggambar sesuatu misalnya bentuk atau
persegi panjang dll.
Di C++, kami menggunakan fungsi overloading dan fungsi overriding untuk mencapai
polimorfisme.

Abstraction

Menyembunyikan detail internal dan menampilkan fungsionalitas dikenal sebagai abstraction.


Misalnya: panggilan telepon, kami tidak tahu pemrosesan internal. Di C++, kami menggunakan
kelas abstrak dan antarmuka untuk mencapai abstraksi.

Encapsulation

Mengikat (atau membungkus) kode dan data menjadi satu unit dikenal sebagai encapsulation.
Misalnya: kapsul, dibungkus dengan obat yang berbeda.

Keuntungan OOP dibandingkan bahasa pemrograman berorientasi prosedur(Procedure-


oriented)
1.OOP membuat pengembangan dan pemeliharaan lebih mudah sedangkan dalam bahasa
pemrograman berorientasi Prosedur tidak mudah dikelola jika kode bertambah seiring
bertambahnya ukuran proyek.

2.OOP menyediakan penyembunyian data sedangkan dalam bahasa pemrograman


berorientasi Prosedur, data global dapat diakses dari mana saja.

3.OOP memberikan kemampuan untuk mensimulasikan peristiwa dunia nyata jauh lebih
efektif. Kami dapat memberikan solusi dari masalah kata nyata jika kami menggunakan
bahasa Pemrograman Berorientasi Objek.

Anda mungkin juga menyukai