Selasa, 14 April 2009

Algoritma untuk menentukan sebuah bilangan yang kelipatanya 3,5,dan7 atau bukan !!!

  1. Jika suatu bilangan dibagi angka 3, menghasilkan bilangan bulat, maka bilangan tersebut adlah kelipatan 3.
  2. Jika suatu bilangan dibagi angka 3, menghasilkan bilangan desimal, maka bilangan tersebut adlah bukan kelipatan 3.
  1. Jika suatu bilangan dibagi angka 5, menghasilkan bilangan bulat, maka bilangan tersebut adlah kelipatan 5.
  2. Jika suatu bilangan dibagi angka 5, menghasilkan bilangan desimal, maka bilangan tersebut adlah bukan kelipatan 5.
  1. Jika suatu bilangan dibagi angka 7, menghasilkan bilangan bulat, maka bilangan tersebut adlah kelipatan 7.
  2. Jika suatu bilangan dibagi angka 7, menghasilkan bilangan desimal, maka bilangan tersebut adlah bukan kelipatan 7.

contoh : p adalah input

q adalah bil. bulat

r adalah bil. desimal

1. Jika p dibagi 3 menghasilkan q, maka p adalah kelipatan 3.

2. Jika p dibagi 3 menghasilkan r, maka p adalah bukan kelipatan 3.

Di dalam bahasa C ada tiga file stream yang diberikan, yaitu stdin, stdout, dan stderr. Stdin langsung terhubung dengan keyboard, sedangkan stdout dan stderr langsung memunculkan pesan error ke layar.

Contoh penggunaan stdout adalah printf. Penggunaan stdin contohnya adalah scanf.

Header yang ada pada bahasa C merupakan suatu ‘bank’ dari fungsi-fungsi yang akan digunakan. Tanpanya fungsi tidak bisa berjalan dengan baik.

Mendapatkan Input dari Pemakai

Mendapatkan input dari pemakai bisa menggunakan getchar() dan getc().

Funsi getc()

Sintaks untuk fungsi getc adalah:

#include

int getc(FILE *stream);

Contoh:

1: /* membaca input dengan fungsi getc() */

2: #include

3:

4: main()

5: {

6: int c;

7: printf(”Ketik salah satu karakter:\n”);

8: c = getc(stdin);

9: printf(”karakter yang anda masukkan adalah: %c\n”, c);

10: fflush(stdin);

11: getchar();

12: return (0);

13: }

Setelah saya buat, hasilnya seperti ini:

getc

Dari contoh diatas, kita pelajari bahwa apapun input yang kita masukkan akan berubah menjadi karakter baik angka, huruf, dan simbol.

Funsi getchar()

Fungsi lainnya untuk membaca input selain getc(stdin) adalah getchar().

Sintaks untuk fungsi getchar adalah:

#include

int getchar(void);

Contoh:

1: #include

2: #include

3:

4: main()

5: {

6: int ch1, ch2;

7:

8: printf(”Masukkan 2 karakter :\n”);

9: ch1 = getc(stdin);

10: ch2 = getchar();

11: printf(”Karakter pertama yang dimasukkan adalah: %c\n”, ch1);

12: printf(”Karakter kedua yang dimasukkan adlaah %c\n”, ch2);

13:

14: fflush(stdin);

15: getch();

16: return 0;

17: }

Setelah saya buat, hasilnya seperti ini:
getchar1

Dari contoh diatas, kita pelajari bahwa fungsi getchar() dan getc(stdin) memiliki fungsi yang sama, yaitu untuk membaca input dari pemakai, baik angka, huruf, maupun simbol.

Menampilkan Output di Layar dengan Fungsi putc() dan putchar()

Sintaks untuk fungsi putc() adalah

#include

int putc(int c, FILE *stream);

Contoh:

1: #include

2: #include

3:

4: main()

5: {

6: int ch;

7:

8: ch = 65;

9: printf(”The character that has numeric value of 65 is:\n”);

10: putc(ch, stdout);

11:

12: getch();

13: return (0);

14: }

Setelah saya buat, hasilnya seperti ini:
putc

Fungsi putc() digunakan untuk merubah suatu angka yang sudah terformat dalam memori menjadi suatu karakter.

Sintaks untuk fungsi putchar() adalah

#include

int putchar(int c);

Contoh:

1: #include

2: #include

3: main()

4: {

5: putchar(65);

6: putchar(10);

7: putchar(66);

8: putchar(10);

9: putchar(67);

10: putchar(10);

11: putchar(68);

12: putchar(10);

13: getch();

14: return (0);

15: }

Setelah saya buat, hasilnya seperti ini:
putchar

Dalam fungsi putchar() ini, fungsi ini tidak membutuhkan banyak argument-argumen, karena angka yang ditulis sudah terdaftar dalam library stdout sehingga program hanya perlu mencari angka yang sesuai dengan library yang ada dan memunculkannya dalam bentuk karakter.

Menampilkan Pesan dengan Fungsi printf()

Sintaks untuk fungsi printf():

#include

int printf(const char *format-string, …);

Untuk menampilkan pesan dengan fungsi ini, kita perlu menggunakan tanda kutip dua, tanda persen (%) dan variable yang ingin ditampilkan. Contohnya;

1: #include

2: main()

3:

4: {

5: int d;

6: d=40;

7: printf(”nilai d adalah %d”,d);

8:

9: fflush(stdin);

10: getchar();

11: return 0;

12: }

Setelah dibuat, hasilnya seperti ini:

printf

Dari contoh diatas, fungsi printf digunakan sebagai perintah untuk mencetak suatu pesan, hasil yang ditampilkan (%d) adalah nilai yang terdapat dalam variabel D, dengan tipe integer (d pada %d). Berikut ini adalah daftar format yang bisa digunakan dengan fungsi printf():

%c
Untuk format karakter (huruf, symbol, angka, dsb).

%d
Format integer untuk nilai.

%i
Format integer untuk nilai (sama dengan %d).

%f
Format integer tipe float untuk bilangan desimal (0.5, 0.7, 125.35)

%e
Format untuk notasi-notasi ilmiah (bentuk huruf kecil seperti e).

%E
Format untuk notasi-notasi ilmiah (bentuk huruf besar seperti E).

%g
Penggunaan %f atau %e, kedua-duanya menghasilkan hasil yang lebih pendek.

%G
Penggunaan %f atau %E, kedua-duanya menghasilkan hasil yang lebih pendek.

%o
Format untuk oktal bertipe data unsigned.

%s
Format untuk string.

%u
Format untuk integer bertipe data unsigned.

%x
Format untuk heksadesimal bertipe data unsigned (bentuk huruf kecil seperti x).

%X
Format untuk heksadesimal bertipe data unsigned (bentuk huruf besar seperti X).

%p
Menampilkan argument yang ditunjuk pointer.

%n
Mengingat jumlah karakter yang tertulis.

%%
Menampilkan tanda persen (%).

Merubah Integer Menjadi Angka-Angka Heksa

Untuk merubah suatu integer menjadi bentuk heksa desimal, kita memerlukan %X (uppercase) atau %x (lowercase) dalam suatu argumen. Contoh:

1: #include

2:

3: main()

4: {

5: printf(”Hex(uppercase) Hex(lowercase) Decimal\n”);

6: printf(”%X %x %d\n”, 0, 0, 0);

7: printf(”%X %x %d\n”, 1, 1, 1);

8: printf(”%X %x %d\n”, 2, 2, 2);

9: printf(”%X %x %d\n”, 3, 3, 3);

10: printf(”%X %x %d\n”, 4, 4, 4);

11: printf(”%X %x %d\n”, 5, 5, 5);

12: printf(”%X %x %d\n”, 6, 6, 6);

13: printf(”%X %x %d\n”, 7, 7, 7);

14: printf(”%X %x %d\n”, 8, 8, 8);

15: printf(”%X %x %d\n”, 9, 9, 9);

16: printf(”%X %x %d\n”, 10, 10, 10);

17: printf(”%X %x %d\n”, 11, 11, 11);

18: printf(”%X %x %d\n”, 12, 12, 12);

19: printf(”%X %x %d\n”, 13, 13, 13);

20: printf(”%X %x %d\n”, 14, 14, 14);

21: printf(”%X %x %d\n”, 15, 15, 15);

22:

23: fflush(stdin);

24: getchar();

25: return(0);

26: }

Hasilnya seperti ini:

convert-to-hex

Menambahkan Lebar Minimum

Contoh:

1: #include

2:

3: main()

4: {

5: int num1, num2;

6: num1 = 12;

7: num2 = 12345;

8: printf(”%d\n”, num1);

9: printf(”%d\n”, num2);

10: printf(”%5d\n”, num1);

11: printf(”%05d\n”, num1);

12: printf(”%2d\n”, num2);

13:

14: fflush(stdin);

15: getchar();

16: return(0);

17: }

Setelah dibuat, hasilnya seperti ini:
minimum-width

Pada hasil pertama dan kedua, angka 12 dan 12345 tidak ditambahkan lebar minimum sehingga posisinya tetap rata kiri sesuai besarnya input. Pada baris ketiga dan keempat diatas, angka-angka ini mendapatkan penambahan minimum lebar sebanyak 5 slot atau karakter. Sehingga keduanya menghasilkan rata kanan. Untuk hasil ke 4 karena ada slot yang kosong atau tidak diisi, maka yang kosong itu diberikan nilai 0. Untuk hasil yang terakhir, diberikan lebar minimum 2 slot, tetapi karena input yang diberikan melebihi yang ditetapkan, maka output yang ditampilkan sebanyak input.

Output Rata Kiri dan Rata Kanan

Contoh:

1: #include

2:

3: main()

4: {

5: int num1, num2, num3, num4, num5;

6:

7: num1 = 1;

8: num2 = 12;

9: num3 = 123;

10: num4 = 1234;

11: num5 = 12345;

12:

13: printf(”%8d %-8d\n”, num1, num1);

14: printf(”%8d %-8d\n”, num2, num2);

15: printf(”%8d %-8d\n”, num3, num3);

16: printf(”%8d %-8d\n”, num4, num4);

17: printf(”%8d %-8d\n”, num5, num5);

18:

19: getchar();

20: return 0;

21: }

Setelah dibuat, hasilnya seperti ini:

rata-kiri-rata-kanan

Kalau kita lihat pada codingnya, ada %8d tanpa minus dan ada %-8d. Disini, tanda minus berfungsi untuk mengeset karakter pada rata kiri, sedangkan yang tidak menggunakan tanda minus berfungsi mengeset karakter pada rata kanan.

Mencetak Nilai dengan Pembulatan

Contoh:

1: #include

2: main()

3: {

4: int int_num;

5: double flt_num;

6: int_num = 123;

7: flt_num = 123.456789;

8: printf(”Default integer format : %d\n”, int_num);

9: printf(”With precision specifier: %2.8d\n”, int_num);

10: printf(”Default float format : %f\n”, flt_num);

11: printf(”With precision specifier: %-10.2f\n”, flt_num); getchar();

12: return 0;

13: }

Setelah dibuat, hasilnya seperti ini:
precision-specifier

Seperti yang dijelaskan pada bagian sebelumnya, hasil pertama yang menggunakan %d menampilkan karakter dengan posisi rata kiri. Jika menggunakan %2.8d artinya tolong sediakan 8 slot atau karakter, dengan 2 angka dibelakang koma. Sehingga bila ada slot yang tidak diisi, maka yang tercetak adalah 0. Hasil ketiga merupakan contoh bilangan jenis float secara umum. Jika ingin dibulatkan menjadi 2 angka dibelakang koma (presisi) dengan rata kiri, maka kita perlu menambahkan tanda minus (-) dan 2 di belakang titik berfungsi sebagai slot yang disediakan dibelakang koma, yaitu sebanyak 2 slot.

Dikutip dari http://aelinik.free.fr/c/ch05.htm

Part 2 - Pemograman & Coding

Ada 3 integer, 15, 150, dan 1500. Tulislah sebuah program yang mencetak integer di layar dalam format heks!

Coding:

1: #include
2: #include

3: int main()
4: {
5: int a, b, c;

6: printf(”masukkan integer 1: “);
7: scanf(”%d”,&a);
8: printf(”\n”);

9: printf(”masukkan integer 2: “);
10: scanf(”%d”,&b);
11: printf(”\n”);

12: printf(”masukkan integer 3: “);
13: scanf(”\n%d”,&c);
14: printf(”\n”);

15: printf(”hex dari integer 1 adalah %x\n”,a);
16: printf(”hex dari integer 2 adalah %x\n”,b);
17: printf(”hex dari integer 3 adalah %x\n”,c);

18: fflush(stdin);
19: getchar();
20: }

Program:
program-convert-15-150-n-1500-ke-hex

Tidak ada komentar:

Poskan Komentar