Studi Kasus Pohon

Sistem Tata Nama Makhluk Hidup 5 Kingdom

Bagan klasifikasi tata nama makhluk hidup di atas mempunyai struktur yang sama seperti struktur pohon(tree) pada pemrograman.Dimana sistem lima kingdom berperan sebagai root yang menjadi induk dari sistem tata nama makluk hidup,sedangkan untuk monera,protozoa,animalia,mycota,dan plantae berperan sebagai cabang yang merupakan turunan dari tata nama makhluk hidup dan merupakan pengklasifikasian makhluk hidup berdasarkan kingdomnya.Selanjutnya yang membawahi kingdom adlah jenis-jenis(spesies) dari kingdom-kingdom yang ada seperti alga,amuba,bryophyta,dll,hal ini berperan sebagai daun(leaf) yang merupakan bagian terkecil/terakhir dari struktur pohon karena berderajat 0.

Berikut penjelasan dari masing-masing kingdom :

  • Kingdom Monera
    Monera meliputi makhluk hidup yang sangat sederhana. Termasuk ke dalam kingdom ini adalah bakteri dan alga biru (Cyanophyta). Monera bersifat prokariotik, sel-selnya mempunyai nukleus atau inti sel yang tidak bermembran. Sel-selnya membelah secara sederhana, yaitu dengan amitosis. Kromosomnya tunggal dan berbentuk melingkar. Klorofil tersebar dan tidak terlindung oleh membran.
  • Kingdom Protista
    Termasuk ke dalam kingdom ini adalah organisme yang bersel tunggal bersifat eukariotik. Eukariotik berarti inti sel-selnya telah bermembran, meliputi protozoa dan alga. Sistem klasifikasi ini dirintis oleh Ernst Haeckel (1834-1919).
  • Kingdom Mycota
    Kingdom ini meliputi makhluk hidup yang tidak mempunyai klorofil, sehingga tidak dapat mensintesa makanan sendiri atau bersifat heterotrop, ada yang bersifat parasit, ada juga yang bersifat saprofit. Termasuk di dalamnya adalah berbagai jamur, seperti jamur merang, jamur kuping dan jamur oncom.
  • Kingdom Plantae
    Kingdom ini meliputi makhluk hidup yang mampu melakukan fotosintesis, yaitu makhluk hidup yang mempunyai klorofil, sehingga dapat hidup tanpa mengambil energi dari organisme lain. Makhluk itu disebut organisme autotrop. Termasuk di dalamnya adalah Bryophyta, Pteridophyta, dan Spermatophyta.
  • Kingdom Animalia
    Kingdom ini meliputi makhluk hidup eukariotik bersel banyak, bersifat heterotrop, meliputi Porifera, Platyhelminthes, Hydrozoa, Nematoda, Rotifera, Annelida, Molusca, Arthropoda, Echinodermata dan Chordata.

Prosedur Antrian Menggunakan Array

Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehiduypan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket.
Antrian dapat di implementasikan menggunakan Array, disini dijelaskan ada 10 antrian yang mana 10 antrian tersebut dapat diibaratkan sebagai array berindek 10. Dalam antrian ini menggunakan pola FIFO, yaitu first in first out yang artinya pembeli tiket yang pertama dilayani terlebih dahulu dan begitu seterusnya sampai habis.
Macam-macam Operasi Queue dengan Linear Array:

  • IsEmpty
    Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
  • IsFull
    Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.
  • EnQueue
    Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.
  • DeQueue
    Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya.
  • Clear
    Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue.

Untuk lebih memahami antrian yang menggunakan aray,berikut ini contoh tentang program sistem antrian pada bioskop:

#include <cstdlib>
#include <iostream>

template<class T>
class Antrian_tiket_bioskop{
      public :
             Antrian_tiket_bioskop(int MaxAntrian_tiket_bioskopSize=10);
             ~Antrian_tiket_bioskop(){delete[]antrian_tiket_bioskop;}
             bool IsEmpty()const{return front==rear;}
             bool IsFull()const{
                  return(((rear+1)%Max Size==front)?1=0);}
                  TFrist()const;
                  TLast()const;
                  Antrian_tiket_bioskop<T>&Add(const T&x);
                  Antrian_tiket_bioskop<T>&Delete(T&x);
      private :
              int front;
              int rear;
              int Max Size;
              T *antrian_tiket_bioskop;
};
tamplate<class T>              
Antrian_tiket_bioskop<T>::Antrian_tiket_bioskop(int MaxAntrian_tiket_bioskop)
{
MaxSize = MaxAntrian_tiket_bioskopSize+1;
antrian_tiket_bioskop=new T[MaxSize+1];
front=rear=0;
}

template<classT>
TAntrian_tiket_bioskop<T>::First()const
{
return antrian_tiket_bioskop[(front+1)%MaxSize];
}

template<classT>
TAntrian_tiket_bioskop<classT>::Last()const
{
return antrian_tiket_bioskop[rear];
}

template<classT>
Antrian_tiket_bioskop<T>&Antrian_tiket_bioskop<T>::Add(const T&x)
{
rear=(rear+1)%MaxSize;
Antrian_tiket_bioskop[rear]=x;
return*this;
}

template<classT>
Antrian_tiket_bioskop<T>&Antrian_tiket_bioskop<T>::Delete(T&x)
{
front=(front+1)%MaxSize;
x=antrian_tiket_bioskop[front];
return*this;
}



void main(int argc, char *argv[])
{
     Antrian_tiket_bioskop<int>Q(3);
     int x;
     try{Q.Add(1).Add(2).Add(3).Add(4);
     cout<<"No antrian_tiket_bioskop add failed"<<endl;}
     catch(NoMem)
     {cout< "A antrian_tiket_bioskop failed"<<andl;}
     cout<<"Antrian_tiket_bioskop is now 123"<<endl;
     Q.Delete(x);
     cout<<"Deteted"<<x<<endl;
     cout<<Q.First()<<"is at end"<<endl;
     try{
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         cout<<"No antrian_tiket_bioskop delete failed"<<endl;
         }
         catch(OutOfBounds)
         {cout<<"A delete has failed"<<endl;}
         }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Bila kita ingin memodifikasi program antrian tersebut,berikut ini langkah-langkahnya:

  • Langkah 1 : kita mengecek apakah array tersebut full atau masih ada space kosong.
  • Langkah 2 : kita menggunakan method Add (X) untuk menambahkan antrian atau kita juga bisa menghapus antrian menggunakan method delete (X).