PROGRAM C++ TREE

PROGRAM C++ TREE
Disusun Oleh :

- Ari Ramadhan Wibowo (12160276)
- Angga Kurniawan (12160637)
- Budi Setiawan (12160318)
- Haji Handika (12160092)
- Muhamad Kevin (12160500)
- Muhammad Lukman Irsandy (12160297)

Kelas :
12.2A.07

TEKNIK INFORMATIKA
STMIK NUSA MANDIRI WARUNG JATI
2017


Kata Pengantar

Puji syukur atas kehadirat Tuhan Yang Maha Esa karena berkat rahmatNya kami dapat menyelesaikan tugas kami. Tidak lupa juga kami ucapkan terimakasih atas dukungan dari teman-teman yang telah berkontribusi memberikan sumbangan baik itu materi atau pikiran.

Besar harapan kami semoga tugas ini dapat menambah pengalaman dan pengetahuan bagi kami khususnya dan pembaca pada umumnya.

Karena terbatasnya pengalaman dan pengetahuan kami, kami yakin jika tugas ini masih memiliki banyak kekurangan. Maka dari itu kami harapkan saran dan kritik yang membangun untuk kesempurnaan tugas ini.

Dan juga tidak lupa kami memohon maaf yang sebesar-besarnya apabila ada salah kata atau sang pembaca kurang memahami isi dari artikel ini.



BAB 1. PENDAHULUAN

1.1 Latar Belakang

Bahasa pemprograman merupakan sebuah kumpulan peraturan yang disusun sedemikian rupa sehingga memungkinkan pengguna komputer membuat sebuah program yang dapat dijalankan dengan aturan - aturan tersebut. C++ merupakan bahasa pemprograman tingkat tinggi yang berarti mudah dipahami oleh manusia. Contoh bahasa pemprograman tingkat tinggi lainnya adalah Java, Pascal, Perl, dan lain - lain.

Perkembangan teknologi di era jaman sekarang tumbuh dan berkembang secara pesat. Kiprahnya hampir di semua kalangan dan instansi menggunakan teknologi informasi. Salah satunya, informasi di dalam sebuah perusahaan atau sebuah organisasi sangat penting untuk mendukung sebuah keputusan dan membantu dalam kegiatan pekerjaan mereka. Akibat kurangnya informasi yang didapat oleh sebuah perusahaan/organisasi dalam kurun waktu tertentu akan menimbulkan masalah dan ketidakmampuan dalam mengambil sumber daya sehingga di dalam mengambil keputusan sangat terganggu, sehingga mengalami kesulitan di dalam pekerjaan mereka. .

Dan dalam makalah ini kami akan mengambil pembahasan mengenai bahasa pemograman C++ sesuai dengan mata kuliah yang kami jalani. Bahasa yang merupakan sejenis bahasa C, tetapi dalam pemograman berbeda dengan bahasa C.

1.2 Tujuan

Tujuan di buat Makalah ini yaitu untuk menyelesaikan salah satu tugas mandiri mata kuliah STRUKTUR DATA agar mendapat nilai tambahan yang khususnya mata kuliah ini. Selain itu, saya berharap di buatnya makalah ini bukan hanya untuk tugas yang di berikan semata, tetapi dapat berguna untuk pembelajaran bagi mahasiswa lainnya. Dapat digunaka untuk menambah wawasan bagi mahasiswa yang ingin lebih mengenal bahasa C++ ini.

Tugas yang kami susun ini semoga dapat memberikan pengetahuan dan pengalaman tentang membuat sebuah program dengan menggunakan bahaasa pemprograman C++, baik itu untuk kami maupun untuk pembaca sekalian.



BAB 2. PEMBAHASAN

2.1 Pengertian C++

C++ merupakan sebuah bahasa pemprograman komputer yang diciptakan oleh Bjarne Stroustrup. C++ merupakan bahasa pemprograman hasil perkembangan dari bahasa C yang diciptakan oleh Dennis Ritchie di Bell Labs pada awal tahun 1970 - an. Bjarne Stroustrup mengembangkan bahasa C++ pertama kali pada awal tahun 1980-an. Pada bahasa C++ ini ditambahkan beberapa konsep baru seperti class dengan sifat - sifatnya seperti overloading dan inheritance. Salah satu perbedaan terbesar antara bahasa C dan C++ adalah dukungan terhadap konsep OOP (Object Oriented Programming) atau pemprograman berorientasi objek. Pada bahasa C++ telah memiliki konsep OOP namun bahasa C belum memilikinya.

2.2 Pengertian Tree

Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layakya struktur sebuah pohon. Struktur pohon adalah suatu cara merepresentasikan suatu struktur hirarki (one-to-many) secara grafis yang mirip sebuah pohon, walaupun pohon tersebut hanya tampak sebagai kumpulan node-node dari atas ke bawah. Suatu struktur data yang tidak linier yang menggambarkan hubungan yang hirarkis (one-to-many) dan tidak linier antara elemen-elmennya.

Source Code : 

//header file
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

//pendeklarasian struct sebuah tree awal
struct Node{
      int data;
      Node *kiri;
      Node *kanan;
};

//fungsi untuk menambahkan node baru
void tambah(Node **root, int databaru)
{
      //jika root masih kosong
      if((*root) == NULL)
      {
            //pembuatan node baru
            Node *baru;
            //pengalokasian memori dari node yang telah dibuat
            baru = new Node;
            //inisialisasi awal node yang baru dibuat
            baru->data = databaru;
            baru->kiri = NULL;
            baru->kanan = NULL;
            (*root) = baru;
            (*root)->kiri = NULL;
            (*root)->kanan = NULL;
            printf("Data bertambah!");
      }
     //jika data yang akan dimasukkan lebih kecil daripada elemen root, maka akan diletakkan di node sebelah kiri.
      else if(databaru<(*root)->data)
            tambah(&(*root)->kiri, databaru);
     //jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan
      else if(databaru>(*root)->data)
            tambah(&(*root)->kanan, databaru);
     //jika saat dicek data yang akan dimasukkan memiliki nilai yang sama dengan data pada root
      else if(databaru == (*root)->data)
            printf("Data sudah ada!");
}

//fungsi yang digunakan untuk mencetak tree secara preOrder
void preOrder(Node *root)
{
      if(root != NULL){
            printf("%d ", root->data);
            preOrder(root->kiri);
            preOrder(root->kanan);
      }
}

//fungsi yang digunakan untuk mencetak tree secara inOrder
void inOrder(Node *root)
{
      if(root != NULL){
            inOrder(root->kiri);
            printf("%d ", root->data);
            inOrder(root->kanan);
      }
}

//fungsi yang digunakan untuk mencetak tree secara postOrder
void postOrder(Node *root)
{
      if(root != NULL){
            postOrder(root->kiri);
            postOrder(root->kanan);
            printf("%d ", root->data);
      }
}

//fungsi utama
int main()
{
      //deklarasikan variabel
      int pil, data;// c;
      Node *pohon; //*t;
      pohon = NULL; //inisialisasi node pohon
      //perulangan do-while
      do
      {
            system("cls"); //bersihkan layar
            printf("\t#PROGRAM TREE C++#");
            printf("\n\t==================");
            printf("\nMENU");
            printf("\n----\n");
            printf("1. Tambah\n");
            printf("2. Lihat pre-order\n");
            printf("3. Lihat in-order\n");
            printf("4. Lihat post-order\n");
            printf("5. Exit\n");
            printf("Pilihan : ");
            scanf("%d", &pil);
            switch(pil)
            {
            //jika pil bernilai 1
            case 1 :
                  printf("\nINPUT : ");
                  printf("\n-------");
                  printf("\nData baru : ");
                  scanf("%d", &data);
                  //panggil fungsi untuk menambah node yang berisi data pada tree
                  tambah(&pohon, data);
                  break;
                 
            //jika pil bernilai 2
            case 2 :
                  printf("\nOUTPUT PRE ORDER : ");
                  printf("\n------------------\n");
                  if(pohon!=NULL)
                       //panggil fungsi untuk mencetak data secara preOrder
                        preOrder(pohon);
                  else
                        printf("Masih kosong!");
                  break;
                 
            //jika pil bernilai 3
            case 3 :
                  printf("\nOUTPUT IN ORDER : ");
                  printf("\n------------------\n");
                  if(pohon!=NULL)
                       //panggil fungsi untuk mencetak data secara inOrder
                        inOrder(pohon);
                  else
                        printf("Masih kosong!");
                  break;
           
            //jika pil bernilai 4
            case 4 :
                  printf("\nOUTPUT POST ORDER : ");
                  printf("\n------------------\n");
                  if(pohon!=NULL)
                       //panggil fungsi untuk mencetak data secara postOrder
                        postOrder(pohon);
                  else
                        printf("Masih kosong!");
                  break;
            }
            _getch();
      }while(pil != 5); //akan diulang jika input tidak samadengan 5
      return EXIT_FAILURE;
}

2.3 Screenshot Program 






2.4 Video Program C++ 

Klik disini gan


BAB 3. PENUTUP

3.1 Kesimpulan 

Keistimewaan C++ adalah karena bahasa ini mendukung OOP
(Object Oriented Programming). Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi. Kebanyakan pakar setuju bahwa OOP dan C++ mampu mengurangi kompleksitas terutama program yang terdiri dari 10.000 baris lebih, bahkan dapat meningkatkan produktivitas 2x lipat dari C, Pascal dan Basic.

3.2 Saran 

Untuk penyempurnaan pembuatan makalah kedepannya, saya mengharapkan adanya saran dari semua pihak baik dosen maupun seluruh mahasiswa yang membaca makalah/artikel PEMROGAMAN C++, khususnya pada materi TREE ini terhadap kekurangan yang terdapat pada makalah ataupun artikel ini.

Komentar

Postingan populer dari blog ini

TUGAS4_12160500_12.2A.07