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; /* char *pB; /* puts(strA); /* pA = strA; /* puts(pA); /* pB = strB; /* putchar('\n');
sebuah pointer ke character */ sebuah pointer ke character */ print string A */ pointer pA tunjuk ke string A */ tampilkan yang ditunjuk pA */ pointe pB tunjuk ke string B */ /* buat baris baru */
/* selama *pA tidak '\0' tidak null */ while(*pA != '\0') { *pB++ = *pA++; } *pB = '\0'; /* beri null string kepada strB */ puts(strB); /* print string B */
return first; }
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: #include <stdio.h> int strcmp(char *string1, char *string2);
Nilai yang dikembalikan (Return Value) < 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