Created
October 10, 2017 07:02
-
-
Save harryandriyan/4ebb4b6e131d9f92e6909825439cffb8 to your computer and use it in GitHub Desktop.
Kemiskinan Jogja dengan C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
copyleft | |
Nama : Harry Andriyan Maulana (16111140) | |
Tugas UAS Algoritma Pemrograman Lanjut | |
*/ | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <string.h> | |
struct data_kab { | |
char kabupaten[20]; | |
int garis_kemiskinan; | |
char total[10]; | |
char prosentase[10]; | |
}; | |
float mode; | |
struct data_kab *sp; | |
void master_data(); | |
void semua(); | |
void get_menu(); | |
void urutkan(); | |
void cari(); | |
int main() { | |
master_data(); | |
printf("Daftar Kabupaten/Kota Daerah Istimewa Yogyakarta \n"); | |
get_menu(); | |
if (sp) { | |
free(sp); | |
} | |
getchar(); | |
return 0; | |
} | |
void master_data() { | |
sp = (struct data_kab*) malloc(5 * sizeof(struct data_kab)); | |
strcpy(sp[0].kabupaten, "Kulonprogo"); | |
sp[0].garis_kemiskinan = 265575; | |
strcpy(sp[0].total, "84,67"); | |
strcpy(sp[0].prosentase, "20,64 %"); | |
strcpy(sp[1].kabupaten, "Sleman"); | |
sp[1].garis_kemiskinan = 306961; | |
strcpy(sp[1].total, "110,44"); | |
strcpy(sp[1].prosentase, "9,5 %"); | |
strcpy(sp[2].kabupaten, "Gunungkidul"); | |
sp[2].garis_kemiskinan = 243847; | |
strcpy(sp[2].total, "148,39"); | |
strcpy(sp[2].prosentase, "20,83 %"); | |
strcpy(sp[3].kabupaten, "Bantul"); | |
sp[3].garis_kemiskinan = 301986; | |
strcpy(sp[3].total, "153,49"); | |
strcpy(sp[3].prosentase, "15,89 %"); | |
strcpy(sp[4].kabupaten, "Kota Yogyakarta"); | |
sp[4].garis_kemiskinan = 366520; | |
strcpy(sp[4].total, "36,6"); | |
strcpy(sp[4].prosentase, "8,67 %"); | |
} | |
void semua() { | |
int i; | |
for(i = 0; i < 5; i++) { | |
printf("%d. %s \n Garis Kemiskinan : %d \n Total : %s \n Prosentase : %s \n \n", | |
i+1, | |
sp[i].kabupaten, | |
sp[i].garis_kemiskinan, | |
sp[i].total, | |
sp[i].prosentase | |
); | |
} | |
get_menu(); | |
} | |
void get_menu() { | |
printf("\n====================================== \n"); | |
printf("1. Pencarian berdasar nama kota/kabupaten \n"); | |
printf("2. Urutkan berdasar Garis Kemiskinan \n"); | |
printf("3. Tampilkan Semua data \n"); | |
printf("0. Keluar Aplikasi \n"); | |
printf("====================================== \n"); | |
printf("Pilih Mode (1 , 2, 3 atau 0(untuk keluar) : "); | |
scanf("%f", &mode); | |
if (mode==1) { | |
cari(); | |
} | |
else if (mode==2) { | |
urutkan(); | |
} | |
else if (mode==3) { | |
semua(); | |
} | |
else if(mode==0) { | |
exit; | |
} | |
} | |
void urutkan() { | |
int i=0; | |
int j=0; | |
for(i = 0;i < 4; i++) { | |
for (j = 0; j < 5-i-1; j++) { | |
if(sp[j].garis_kemiskinan > sp[j+1].garis_kemiskinan) { | |
struct data_kab kab_temp = sp[j]; | |
sp[j] = sp[j+1]; | |
sp[j+1] = kab_temp; | |
} | |
} | |
} | |
printf("Hasil Pengurutan data berdasar Garis Kemiskinan \n \n"); | |
for(i = 0; i < 5; i++) { | |
printf("%d. %s \n Garis Kemiskinan : %d \n Total : %s \n Prosentase : %s \n \n", | |
i+1, | |
sp[i].kabupaten, | |
sp[i].garis_kemiskinan, | |
sp[i].total, | |
sp[i].prosentase | |
); | |
} | |
get_menu(); | |
} | |
void cari() { | |
char q[20]; | |
int is_ketemu = 0; | |
int posisi; | |
printf("Masukan kata kunci (nama kabupaten) : "); | |
scanf("%s", &q); | |
int i; | |
for(i = 0; i < 5; i++) { | |
if (strcmp(sp[i].kabupaten, q)==0) { | |
is_ketemu = 1; | |
posisi = i; | |
} | |
} | |
if (is_ketemu==1) { | |
printf("Data ditemukan di baris ke %d \n", posisi+1); | |
printf("%d. %s \n Garis Kemiskinan : %d \n Total : %s \n Prosentase : %s \n \n", | |
posisi+1, | |
sp[posisi].kabupaten, | |
sp[posisi].garis_kemiskinan, | |
sp[posisi].total, | |
sp[posisi].prosentase | |
); | |
get_menu(); | |
} else { | |
printf("Data tak di temukan coba lagi (kata kunci Case Sensitive) \n"); | |
cari(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment