#include <stdio.h>
#include <string.h>
// Fungsi untuk menentukan fenotipe
char* fenotipe(char geno[3]) {
if (geno[0] == 'A' || geno[1] == 'A') {
return "Dominan";
} else {
return "Resesif";
}
}
int main() {
char induk1[3], induk2[3];
char f1[4][3]; // Menyimpan kombinasi F1 maksimal 4
int i, j;
printf("Masukkan genotipe induk 1 (contoh: Aa): ");
scanf("%2s", induk1);
printf("Masukkan genotipe induk 2 (contoh: Aa): ");
scanf("%2s", induk2);
// Membuat kombinasi F1 (4 kemungkinan)
int index = 0;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
f1[index][0] = induk1[i];
f1[index][1] = induk2[j];
f1[index][2] = '\0';
// Urutkan huruf agar AA, Aa, aa konsisten
if (f1[index][0] > f1[index][1]) {
char temp = f1[index][0];
f1[index][0] = f1[index][1];
f1[index][1] = temp;
}
index++;
}
}
// Hitung frekuensi genotipe
int countAA=0, countAa=0, countaa=0;
for (i = 0; i < 4; i++) {
if (strcmp(f1[i], "AA") == 0) countAA++;
else if (strcmp(f1[i], "Aa") == 0) countAa++;
else if (strcmp(f1[i], "aA") == 0) countAa++; // jika Aa tertukar
else if (strcmp(f1[i], "aa") == 0) countaa++;
}
printf("\nPersentase Genotipe F1:\n");
printf("AA: %.2f%%\n", countAA * 25.0);
printf("Aa: %.2f%%\n", countAa * 25.0);
printf("aa: %.2f%%\n", countaa * 25.0);
// Hitung fenotipe
int countDominan = countAA + countAa;
int countResesif = countaa;
printf("\nPersentase Fenotipe F1:\n");
printf("Dominan: %.2f%%\n", countDominan * 25.0);
printf("Resesif: %.2f%%\n", countResesif * 25.0);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCi8vIEZ1bmdzaSB1bnR1ayBtZW5lbnR1a2FuIGZlbm90aXBlCmNoYXIqIGZlbm90aXBlKGNoYXIgZ2Vub1szXSkgewogICAgaWYgKGdlbm9bMF0gPT0gJ0EnIHx8IGdlbm9bMV0gPT0gJ0EnKSB7CiAgICAgICAgcmV0dXJuICJEb21pbmFuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICJSZXNlc2lmIjsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBjaGFyIGluZHVrMVszXSwgaW5kdWsyWzNdOwogICAgY2hhciBmMVs0XVszXTsgLy8gTWVueWltcGFuIGtvbWJpbmFzaSBGMSBtYWtzaW1hbCA0CiAgICBpbnQgaSwgajsKCiAgICBwcmludGYoIk1hc3Vra2FuIGdlbm90aXBlIGluZHVrIDEgKGNvbnRvaDogQWEpOiAiKTsKICAgIHNjYW5mKCIlMnMiLCBpbmR1azEpOwogICAgcHJpbnRmKCJNYXN1a2thbiBnZW5vdGlwZSBpbmR1ayAyIChjb250b2g6IEFhKTogIik7CiAgICBzY2FuZigiJTJzIiwgaW5kdWsyKTsKCiAgICAvLyBNZW1idWF0IGtvbWJpbmFzaSBGMSAoNCBrZW11bmdraW5hbikKICAgIGludCBpbmRleCA9IDA7CiAgICBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gMDsgaiA8IDI7IGorKykgewogICAgICAgICAgICBmMVtpbmRleF1bMF0gPSBpbmR1azFbaV07CiAgICAgICAgICAgIGYxW2luZGV4XVsxXSA9IGluZHVrMltqXTsKICAgICAgICAgICAgZjFbaW5kZXhdWzJdID0gJ1wwJzsKICAgICAgICAgICAgLy8gVXJ1dGthbiBodXJ1ZiBhZ2FyIEFBLCBBYSwgYWEga29uc2lzdGVuCiAgICAgICAgICAgIGlmIChmMVtpbmRleF1bMF0gPiBmMVtpbmRleF1bMV0pIHsKICAgICAgICAgICAgICAgIGNoYXIgdGVtcCA9IGYxW2luZGV4XVswXTsKICAgICAgICAgICAgICAgIGYxW2luZGV4XVswXSA9IGYxW2luZGV4XVsxXTsKICAgICAgICAgICAgICAgIGYxW2luZGV4XVsxXSA9IHRlbXA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW5kZXgrKzsKICAgICAgICB9CiAgICB9CgogICAgLy8gSGl0dW5nIGZyZWt1ZW5zaSBnZW5vdGlwZQogICAgaW50IGNvdW50QUE9MCwgY291bnRBYT0wLCBjb3VudGFhPTA7CiAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgICAgaWYgKHN0cmNtcChmMVtpXSwgIkFBIikgPT0gMCkgY291bnRBQSsrOwogICAgICAgIGVsc2UgaWYgKHN0cmNtcChmMVtpXSwgIkFhIikgPT0gMCkgY291bnRBYSsrOwogICAgICAgIGVsc2UgaWYgKHN0cmNtcChmMVtpXSwgImFBIikgPT0gMCkgY291bnRBYSsrOyAvLyBqaWthIEFhIHRlcnR1a2FyCiAgICAgICAgZWxzZSBpZiAoc3RyY21wKGYxW2ldLCAiYWEiKSA9PSAwKSBjb3VudGFhKys7CiAgICB9CgogICAgcHJpbnRmKCJcblBlcnNlbnRhc2UgR2Vub3RpcGUgRjE6XG4iKTsKICAgIHByaW50ZigiQUE6ICUuMmYlJVxuIiwgY291bnRBQSAqIDI1LjApOwogICAgcHJpbnRmKCJBYTogJS4yZiUlXG4iLCBjb3VudEFhICogMjUuMCk7CiAgICBwcmludGYoImFhOiAlLjJmJSVcbiIsIGNvdW50YWEgKiAyNS4wKTsKCiAgICAvLyBIaXR1bmcgZmVub3RpcGUKICAgIGludCBjb3VudERvbWluYW4gPSBjb3VudEFBICsgY291bnRBYTsKICAgIGludCBjb3VudFJlc2VzaWYgPSBjb3VudGFhOwoKICAgIHByaW50ZigiXG5QZXJzZW50YXNlIEZlbm90aXBlIEYxOlxuIik7CiAgICBwcmludGYoIkRvbWluYW46ICUuMmYlJVxuIiwgY291bnREb21pbmFuICogMjUuMCk7CiAgICBwcmludGYoIlJlc2VzaWY6ICUuMmYlJVxuIiwgY291bnRSZXNlc2lmICogMjUuMCk7CgogICAgcmV0dXJuIDA7Cn0K