Minggu ke-12 Built-in Function Pendahuluan Memahami beberapa fungsi yang telah diimplementasikan dalam librari C(built-in function). Fungsi-fungsi ini berguna untuk memanipulasi string, memori dan lain-lain. Mengetahui cara penggunaan fungsi-fungsi ini melalui prototipenya menjadi penting agar fungsi yang sama tidak perlu dibuat atau diimplementasikan ulang (reinventing the wheels). Penggunaan built-in function mempermudah pengembangan program. Objektif Memperkenalkan bebeberap contoh built-in function Memahami implementasinya Pendalaman konsep call by value dan call by reference Bahan Bacaan Buku pegangan atau buku-buku lain yang menjelaskan tentang topik ini. Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 1
Built-in Function untuk Memanipulasi String Beberapa Fungsi Berkaitan Dengan String char * strcpy(char * s, char * source) char * strcat(char * s, char * source) int strcmp(char * s1, char * s2) Mengkopi string source ke s termasuk '\0' Menyambung string source ke s Membandingkan string s1 dengan s2 Bernilai negatif bila s1 < s2 Bernilai 0 bila s1 = s2 Bernilai positif bila s2 < s1 Bagaimanakah implementasi fungsi tersebut? Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 2
Contoh Implementasi Fungsi strcpy Implementasi versi 1: char *strcpy(char *dest, *source) while ((*dest++ = *source++)!="\0"); return dest; Diskusikan Implementasi versi 2: char *strcpy(char *dest, *source) while (*dest++ = *source++) ; return dest; Diskusikan Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 3
Contoh Penggunaan Fungsi strcpy Contoh: #include <stdio.h> int main() char input_str[20]; char *output_str; strcpy(input_str, "Informatika"); printf("input_str: %s\n", input_str); output_str = strcpy(input_str, "is the best"); printf("input_str: %s\n", input_str); printf("output_str: %s\n", output_str); return 0; Output: input_str: Informatika input_str: is the best output_str: is the best Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 4
Contoh Implementasi Fungsi strcat Contoh Implementasi fungsi strcat: char *strcat(char *first, char *second) char *p; p =first; while (*p++) ; --p; while (*p++ = *second++) ; Contoh manipulasi string: char stra[80] = "Sebuah string untuk tujuan demo"; char strb[80]; int main(void) char *pa; /* sebuah pointer ke character */ char *pb; /* sebuah pointer ke character */ puts(stra); /* print string A */ pa = stra; /* pointer pa tunjuk ke string A */ puts(pa); /* tampilkan yang ditunjuk pa */ pb = strb; /* pointe pb tunjuk ke string B */ putchar('\n'); /* buat baris baru */ return first; /* selama *pa tidak '\0' tidak null */ while(*pa!= '\0') *pb++ = *pa++; *pb = '\0'; /* beri null string kepada strb */ puts(strb); /* print string B */ return EXIT_SUCCESS; Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 5
Contoh Penggunaan Fungsi strcmp Prototipe fungsi strcmp: Nilai yang dikembalikan (Return Value) #include <stdio.h> int strcmp(char *string1, char *string2); < 0 jika string1 < dari pada string2 > 0 jika string2 i< dari pada string1 = 0 jika string1 = string2 Contoh: #include <stdio.h> int main() char string1[20]; char string2[20]; strcpy(string1, "Ahmad"); strcpy(string2, "Bani"); printf("return Value: %d\n", strcmp( string1, string2)); strcpy(string1, "Hellooo"); strcpy(string2, "Helloo"); printf("return Value: %d\n", strcmp( string1, string2)); strcpy(string1, "Hello"); strcpy(string2, "Hello"); printf("return Value: %d\n", strcmp( string1, string2)); return 0; Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 6
Fungsi yang Lain Pelajari di URL berikut beberapa contoh built-in function yang lain: http://www.tutorialspoint.com/ansi_c/c_function_references.htm Fungsi berkenaan dengan Character: int isalnum(int c); The function returns nonzero if c is alphanumeric int isalpha(int c); The function returns nonzero if c is alphabetic only int iscntrl(int c); The function returns nonzero if c is a control chracter int isdigit(int c); The function returns nonzero if c is a numeric digit int islower(int c); The function returns nonzero if c is a lower case character. int ispunct(int c); The function returns nonzero if c is punctuation Copyright 2010, Dr. Taufik Fuadi Abidin, S.Si M.Tech dan Irvanizam M.Sc, Program Studi Informatika FMIPA Universitas Syiah Kuala 7