Program Analisa Golongan Darah Dengan Struct dan Array 2 Dimensi C++

4 Comments

pernah mendengar tabel pewarisan golongan darah?
jadi misalkan ayahmu memiliki golongan darah A dan ibumu memiliki golongan darah O.
maka ada prediksi golongan darahmu. kalo menurut tabel pewarisan golongan darah, hasil dari contoh di atas, maka kemungkinan golongan darahmu adalah  O atau A.

berikut adalah tabel pewarisan golongan darahnya.
tabel pewarisan
sumber : wikipedia.com
udah liatkan tabel pewarisan diatas?
nah pertanyaannya, gimana caranya kita membuat program komputer untuk memprediksi golongan darah kamu berdasarkan golongan darah ayah dan ibumu.
kita telah memiliki data sesuai dengan tabel diatas, maka mari kita analisa.

1. Analisa pertama, untuk membuat program yang sesuai dengan data diatas adalah kita bisa menggunakan teknik array dua dimensi.
2. Analisa kedua, agar saya terlihat songon sedikit, saya akan menggunakan teknik structure c++ (struct) dalam penulisan code.
3. Analisa Ketiga, sepertinya saya terlalu banyak bacot. langsung saja saya kasih code yang sudah saya buat.


Filename: tabelpewarisangolongandarah.cpp


#include <iostream>
#include <string>
using namespace std;

struct darah{
 string golongan;
};

struct identitas{
 string nama;
 string golDarah;
 string golDarahAyah;
 string golDarahIbu;
};

//deklarasi
darah dar[4][4];
identitas id;

void initialisasi()  
{
 //inisialisasi
 dar[0][0].golongan="O";  //O dengan O
 dar[0][1].golongan="O, A"; //O dengan A
 dar[0][2].golongan="O, B";  //O dengan B
 dar[0][3].golongan="A, B";  //O dengan AB
 
 dar[1][0].golongan="O, A";   //A dengan O
 dar[1][1].golongan="O, A";   //A dengan A
 dar[1][2].golongan="O, A, B, AB";  //A dengan B
 dar[1][3].golongan="A, B, AB";  //A dengan AB
 
 dar[2][0].golongan="O, B";   //B dengan O
 dar[2][1].golongan="O, A, B, AB";  //B dengan A
 dar[2][2].golongan="O, B";   //B dengan B
 dar[2][3].golongan="A, B, AB";  //B dengan AB

 dar[3][0].golongan="A B";   //AB dengan O
 dar[3][1].golongan="A, B, AB";  //AB dengan A
 dar[3][2].golongan="A, B, AB";  //AB dengan B
 dar[3][3].golongan="A, B, AB"; //AB dengan AB
}

//fungsi untuk mengganti input golongan darah menjadi angka
int gantiInput(string input) {
 int nilai;
 if(input=="O" || input=="o"){
  nilai=0;
 }
 else if(input=="A" || input=="a"){
  nilai=1;
 } 
 else if(input=="B" || input=="b"){
  nilai=2;
 } 
 else if(input=="AB" || input=="ab"){
  nilai=3;
 } else {
  nilai=123;
 }
 return nilai;
}

//
void input() {
 int nomorDarahIbu,nomorDarahAyah;

 cout<<"Nama Lengkap   : ";
 getline(cin,id.nama);

 do{
  cout<<"Golongan Darah Ayah  : ";
  cin>>id.golDarahAyah;
  nomorDarahAyah = gantiInput(id.golDarahAyah);
 } while(nomorDarahAyah==123);

 do {
  cout<<"Golongan Darah Ibu  : ";
  cin>>id.golDarahIbu;
  nomorDarahIbu = gantiInput(id.golDarahIbu);
 }while(nomorDarahIbu==123);
 
 //prediksi golongan darah
 id.golDarah = dar[nomorDarahIbu][nomorDarahAyah].golongan;
}
 

void output() {
 cout <<"Hallo Brother ["<<id.nama<<"]"<<endl;
 cout <<"Anda telah mengisi data dengan sebagai berikut"<<endl;
 cout <<"Golongan Darah Ayah : "<<id.golDarahAyah<<endl;
 cout <<"Golongan Darah Ibu : "<<id.golDarahIbu<<endl;
 cout <<"\nBerdasarkan tabel pewarsan golongan darah"<<endl;
 cout <<"Kemungkinan Golongan Darah Anda Adalah "<<id.golDarah<<endl;
}

int main() 
{
 initialisasi();
 input();
 output();
}

bisa di compile gak di computer kalian?

nanti hasil compilenya seperti dibawah ini


selamat belajar dan kalo ada masalah apapun jangan malu untuk bertanya.
silahkan pertanya di kolom komentar.

terima kasih. salah coding :)

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

4 komentar:

  1. keren :D tapi ane gatau golongan darah ane sndiri apalagi ibu bapak :3 oya itu kata akhir salah coding ? :-#

    BalasHapus
    Balasan
    1. nanti gua bikin jen, program pendeteksi golongan darah dengan teknik scan muka : =))

      Hapus
    2. oiya, itu salam coding maksudnya b-(

      Hapus

Silahkan tinggalkan komentar dengan bahasa yang sopan.