Algoritma dan Pemograman
Tugas II
Data ini disusun oleh kami berempat dengan data sebagai berikut:
Dennis Hartanto 1200974321
Yansen Wilyanto 1200991391
Justin Simatupang 1201003056
Handoko 1200982235
Looping
Melakukan Looping Dengan perintah “for”
berikut ini adalah bentuk penulisan perintah for
for (expression1; expression2; expression3)
{
statement1;
statement2;
.
.
.
}
Expression1 adalah ekspresi yang hanya dijalankan 1 kali yaitu pada saat perintah”for” dijalankan untuk pertama kalinya.
Expression2 adalah ekspresi pengkondisian dimana expression2 dijalankan setelah expression1 sukses, dijalankan untuk pertama kalinya dan kemudian expression2 dicek terus menerus berulang tiap kali printah looping berhasil dijalankan. Jika expression2 memberikan nilai bukan 0, statement dalam kurung kurawal akan dijalankan. Bila expression2 memberikan nilai 0, statement tidak dijalankan dan perintah for berhenti .
Expression3 ridak dijalankan ketika perintah for dijalankan untuk pertama kalinya. Epression3 ini dijalankan setiap kali proses pengulangan berhasil dilakukan sebelum kembali dilakukan pengecekan terhadap expression2.
Contoh penulisan perintah for:
for (i=0; i<20; i++)
{
printf(“Apa kabar”);
}
Maka “Apa kabar” akan di cetak terus menerus selama nilai i<20. Ketika i=20, Apa kabar tidak di cetak dan perintah for berhenti dijalankan.
Contoh:
/* 07L01.c: Converting 0 through 15 to hex numbers */
#include <stdio.h>
void main()
{
int i;
printf(“Hex(uppercase) Hex(lowercase) Decimal\n”);
for (i=0; i<16; i++)
{
printf(“%X %x %d\n”, i, i, i);
}
return 0;
}
The Null Statement
Null statement adalah expresi yang tidak memiliki pernyataan
contoh:
perintah
for (i=0; i<8; i++)
sum += i;
dan
for (i=0; i<8; i++);
memiliki perintah for yang mirip, tetapi kedua perintah diatas akan menunjukkan hasil yang berbeda. Perintah pertama akan terus mengulang “sum+=i” selama kondisi dipenuhi.
Sedangkan perintah kedua tidak mengulang apa-apa. Perintah kedua inilah yang disebut
dengan null statement Menambahkan lebih banyak ekspresi ke perintah for
Kita bisa menambahkan lebih banyak ekspresi kedalam perintah for dengan menggunakan tanda koma (“,”) dalam setiap ruang untuk ekspresi. Contoh:
for (i=0, j=10; i<10, j>0; i++, j--)
{
/* statement block */
}
Perintah diatas berarti statement awal memberi nilai i dan j dengan 0 dan 10. Kemudian
looping terus berjalan selama kondisi terpenuhi, yaitu i<10 dan j>0 dengan penambahan
nilai i dan pengurangan nilai j tiap akhir looping. Bila salah satu kondisi (i<10 atau j>0) tidak terpenuhi dan memberikan nilai 0, looping akan berhenti dilakukan. Perintah for dapat memiliki jumlah ekspresi yang berbeda-beda. Namun tetap saja perintah tersebut akan terus melakukanlooping selama ekspresi pengkondisian terpenuhi seluruhny.
Contohn 1:
/* 07L02.c: Multiple expressions */
#include <stdio.h>
void main()
{
int i, j;
for (i=0, j=8; i<8; i++, j–)
printf(“%d + %d = %d\n”, i, j, i+j);
return 0;
}
Contoh 2:
/* 07L03.c: Another example of multiple expressions */
#include <stdio.h>
void main()
{
int i, j;
for (i=0, j=1; i<8; i++, j++)
printf(“%d – %d = %d\n”, j, i, j – i);
return 0;
}
Infinite Loop
Infinite loop dilakukan bila kita tidak dapat menentukan secara langsung kapan looping akan berhenti. Jadi statement akan terus dijalankan terus menerus. Tapi dalam penggunaannya kita harus menentukan kondisi kapan looping akan berhenti.
Contoh:
printf("Enter a character:\n(enter x to exit)\n");
for ( c=' `; c != `x'; )
{
c = getc(stdin);
putchar(c);
}
perintah diatas akan terus melakukan looping yaitu menampilkan karakter yang kita inputkansecara berulang-ulang selama karakter yang diinputkan bukan 'x'. Ketika user measukkan karakter 'x', looping akan berhenti dilakukan.
Contohnya:
/* 07L04.c: Conditional loop */
#include <stdio.h>
void main()
{
int a;
printf(“Enter a character:\n(enter x to exit)\n”);
for ( a=‘ `; a!= `x’; )
{
a = getc(stdin);
printf (”%c”,a);
putchar(c);
}
printf(“\nOut of the for loop. Bye!\n”);
return 0;
}
Perintah Looping “while”
Penulisan perintah while:
while (expression)
{
statement1;
statement2;
.
.
.
}
Sama seperti 'for' expression disini emnunjukkan ekspresi yang harus dipenuhi agar looping dijalankan. Selama expression memberikan nilai bukan 0, looping terus dijalankan. Ketika expression memberikan nilai 0, looping berhenti. Statement menunjukkan perintah yang akan diulang. Bila hanya ada 1 statement, tidak perlu diberi kurung kurawal.
Contohnya:
/* 07L05.c: Using a while loop */
#include “stdafx.h”
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
void main()
{
int c;
c = ` `;
printf(“Enter a character:\n(enter x to exit)\n”);
while (c != `x’)
{
c = getc(stdin);
putchar(c);
}
printf(“\nOut of the while loop. Bye!\n”);
return 0;
}
Infinite while
while (1) {
statement1;
statement2;
.
.
.
}
Pada perintah diatas, nilai yang diberikan oleh ekspresi pengkondisian adalah 1 secara terus menerus. Jadi pengulangan akan terus dijalankan tanpa pernah berhenti. Maka dari itu, pada perintah while kita perlu untuk menambahkan kondisi tertentu pada while agar pengulangan dapat berhenti.
Contoh:
while (c != `x’) {
c = getc(stdin);
putchar(c);
}
do-while loop
penulisan do-while loop:
do {
statement1;
statement2;
.
.
.
} while (expression);
prinsipnya sama dengan looping yang lain. Hanya saja pengecekan kondisi dilakukan setelah perintah diulang. Perlu diperhatikan juga bahwa perintah do-while berakhir dengan tanda titik koma(”;”). Berbeda dengan perintah looping yang lainnya.
Contoh penggunaan:
do {
printf("The numeric value of %c is %d.\n", i, i);
i++;
} while (i<72);
Contohnya:
/* 07L06.c: Using a do-while loop */
#include <stdio.h>
void main()
{
int i;
i = 65;
do {
printf(“The numeric value of %c is %d.\n”, i, i);
i++;
} while (i<72);
return 0;
}
Nested Loop
Kita dapat menggunakan perintah looping didalam perintah looping lainnya yang disebut nested loop. Dengan nested loop komputer akan menjalankan perintah looping yang didalam terlebih dahulu baru kemudian menjalankan perintah loop yang diluar.
Contoh:
for (i=1; i<=3; i++) { /* outer loop */
printf("The start of iteration %d of the outer loop.\n", i);
for (j=1; j<=4; j++) /* inner loop */
printf(" Iteration %d of the inner loop.\n", j);
printf("The end of iteration %d of the outer loop.\n", i);
}
Contohnya:
/* 07L07.c: Demonstrating nested loops */
#include <stdio.h>
void main()
{
int i, j;
for (i=1; i<=3; i++) { /* outer loop */
printf(“The start of iteration %d of the outer loop.\n”, i);
for (j=1; j<=4; j++) /* inner loop */
printf(“ Iteration %d of the inner loop.\n”, j);
printf(“The end of iteration %d of the outer loop.\n”, i);
}
return 0;
}
Dirangkum dari :
http://aelinik.free.fr/c/ch07.htm
Pengulangan Karakter (OFC no1)
Program untuk menampilkan tampilan berikut
Masukkan karakter yang akan diulang : U
Masukkan jumlah pengulangan : 5
Tampilan Anda :
UUUUU
________________________________________________________________________
#include “stdio.h”
#include <conio.h>
main()
{
int i, n;
char karakter;
printf(“Masukan Karakter yang akan di ulang: “);
scanf(“%c”,&karakter);
fflush(stdin);
printf(“Masukan jumlah pengulangan: “);
scanf(“%d”,&n);
fflush(stdin);
for(i=0;i<n;i++)
{
printf(“%c”,karakter);
}
getch();
return 0;
}
POhon…. (OFC no2)
Buatlah program untuk dapat menampilkan gambar berikut
Masukkan tinggi pohon : 4
Masukkan tinggi batang pohon : 2
Pohon Anda
*
***
*****
*******
*
*
______________________________________________________________________
#include “stdio.h”
#include <conio.h>
main ()
{
int tp, tb, i, a, b, a1, b1, x, y, z, y1;
printf(“Masukan tinggi pohon :”);
scanf(“%d”,&tp);
fflush(stdin);
printf(“Masukan tinggi batang :”);
scanf(“%d”,&tb);
fflush(stdin);
for(i=1;i<=tp;i++)
{
a1=tp-i;
for(a=0;a<a1;a++)
{
printf(” “);
}
b1=(i-1)*2+1;
for(b=0;b<b1;b++)
{
printf(“*”);
}
printf(“\n”);
}
for(x=0;x<tb;x++)
{
y1=b1/2;
for(y=0;y<y1;y++)
{
printf(” “);
}
for(z=0;z<1;z++)
{
printf(“*”);
}
printf(“\n”);
}
getch();
return 0;
}
HAri – BUlan – TAnggal (OFC no3)
1.buatlah program untuk menampilkan
Masukkan hari : Minggu
Masukkan Bulan : Maret
Masukkan Tanggal : 1
Hasil :
Hari minggu di bulan Maret akan jatuh pada tanggal : 1 8 15 22 29
Mau Lanjut [Y/T] ? Y
Masukkan hari : Senin
Masukkan Bulan : Maret
Masukkan Tanggal : 2
Hasil :
Hari senin di bulan Maret akan jatuh pada tanggal 2 9 16 23 30
________________________________________________________________________
#include “stdio.h”
#include <conio.h>
main ()
{
int tanggal, i, x;
char hari[8], bulan[10], b;
home:
printf(“Masukan Hari :”);
scanf(“%s”,&hari);
fflush(stdin);
printf(“Masukan bulan :”);
scanf(“%s”,&bulan);
fflush(stdin);
printf(“Masukan tanggal :”);
scanf(“%d”,&tanggal);
fflush(stdin);
printf(“Hari %s di bulan %s akan jatuh pada tanggal”,hari,bulan);
x=tanggal/7;
while (tanggal>7) {
for(i=0;i<x;i++)
{
tanggal=tanggal-7;
}}
for(i=0;i<5;i++)
{
printf(” %d”,tanggal);
tanggal=tanggal+7;
}
do{
printf(“\nMau Lanjut [y/t]?”);
scanf(“%c”,&b);
fflush(stdin);
}
while(b!=’t’ && b!=’y’);
while(b!=’t’)
{
printf(“\n”);
goto home;
}
while(b!=’y’)
{
getch();
return 0;
}}
________________________________________________________________________________________________________________________
Tugas I
Data ini disusun oleh kami berempat dengan data sebagai berikut:
Dennis Hartanto 1200974321
Yansen Wilyanto 1200991391
Justin Simatupang 1201003056
Handoko 1200982235
Part 1 – Ringkasan
Standard Input dan Output
Di dalam pemakaian bahasa C ada tiga file yang diberikan, yaitu stdin, stdout, dan stderr. Stdin langsung terhubung dengan keyboard, sedangkan stdout dan stderr langsung memunculkan pesan error ke layar.
Contoh Penggunaan stdin adalah scanf.penggunaan stdout adalah printf.
Bahasa C menyediakan banyak fungsi untuk menggerakkan file membaca dan menulis dengan symbol ( I/O). istilah untuk Stdio.H berisi deklarasi yang terkait dengan fungsi.yang selalu meliputi file stdio.h didalam bahasa C menggunakan I/O.
Mendapatkan Input dari Pemakai
Kalau kita ingin membuat/mendapatkan input dari pemakai bisa menggunakan getchar() dan getc().
Funsi getc()
Sintaks untuk fungsi getc adalah:
#include <stdio.h>
int getc(FILE *stream);
Contoh:
/* membuat input dengan fungsi getc() */
#include <stdio.h>
main()
{
int c;
printf(”Ketik salah satu karakter: \n”);
c = getc(stdin);
printf(”karakter yang anda masukkan adalah: %c\n”, c);
fflush(stdin);
getchar();
return (0);
}
Hasil percobaannya adalah seperti gambar berikut :
Dari percobaan yang kami buat, kita pelajari bahwa apapun input yang kita masukkan akan berubah menjadi karakter baik dalam bentuk angka, huruf, dan simbol.
Funsi getchar()
Fungsi yang digunakan untuk membaca input selain getc(stdin) adalah getchar().
Sintaks untuk fungsi getchar adalah:
#include <stdio.h>
int getchar(void);
Contoh:
#include <stdio.h>
#include <conio.h>
main()
{
int ch1, ch2;
printf(”Masukkan 2 karakter :\n”);
ch1 = getc(stdin);
ch2 = getchar();
printf(”Karakter pertama yang dimasukkan adalah: %c\n”, ch1);
printf(”Karakter kedua yang dimasukkan adlaah %c\n”, ch2);
fflush(stdin);
getch();
return 0;
}
Hasil percobaannya adalah seperti gambar berikut :
Dari percobaan yang kami buat, 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 <stdio.h>
int putc(int c, FILE *stream);
Contoh:
#include <stdio.h>
#include <conio.h>
main()
{
int ch;
ch = 65;
printf(”The character that has numeric value of 65 is:\n”);
putc(ch, stdout);
getch();
return (0);
}
Hasil percobaannya adalah seperti gambar berikut :
Fungsi putc() digunakan untuk merubah suatu angka yang sudah terformat dalam memori menjadi suatu karakter.
Sintaks untuk fungsi putchar() adalah
#include <stdio.h>
int putchar(int c);
Contoh:
#include <stdio.h>
#include <conio.h>
main()
{
putchar(65);
putchar(10);
putchar(66);
putchar(10);
putchar(67);
putchar(10);
putchar(68);
putchar(10);
getch();
return (0);
}
Hasil percobaannya adalah seperti gambar berikut :
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 <stdio.h>
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;
#include <stdio.h>
main()
{
int d;
d=40;
printf(”nilai d adalah %d”,d);
fflush(stdin);
getchar();
return 0;
}
Hasil percobaannya adalah seperti gambar berikut :
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:
#include <stdio.h>
main()
{
printf(”Hex(uppercase) Hex(lowercase) Decimal\n”);
printf(”%X %x %d\n”, 0, 0, 0);
printf(”%X %x %d\n”, 1, 1, 1);
printf(”%X %x %d\n”, 2, 2, 2);
printf(”%X %x %d\n”, 3, 3, 3);
printf(”%X %x %d\n”, 4, 4, 4);
printf(”%X %x %d\n”, 5, 5, 5);
printf(”%X %x %d\n”, 6, 6, 6);
printf(”%X %x %d\n”, 7, 7, 7);
printf(”%X %x %d\n”, 8, 8, 8);
printf(”%X %x %d\n”, 9, 9, 9);
printf(”%X %x %d\n”, 10, 10, 10);
printf(”%X %x %d\n”, 11, 11, 11);
printf(”%X %x %d\n”, 12, 12, 12);
printf(”%X %x %d\n”, 13, 13, 13);
printf(”%X %x %d\n”, 14, 14, 14);
printf(”%X %x %d\n”, 15, 15, 15);
fflush(stdin);
getchar();
return(0);
}
Hasil percobaannya adalah seperti gambar berikut :
Menambahkan Lebar Minimum
Contoh:
#include <stdio.h>
main()
{
int num1, num2;
num1 = 12;
num2 = 12345;
printf(”%d\n”, num1);
printf(”%d\n”, num2);
printf(”%5d\n”, num1);
printf(”%05d\n”, num1);
printf(”%2d\n”, num2);
fflush(stdin);
getchar();
return(0);
}
Hasil percobaannya adalah seperti gambar berikut :
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.kalau input 123456789 maka outputnya juga 123456789.
Output Rata Kiri dan Rata Kanan
Contoh:
#include <stdio.h>
main()
{
int num1, num2, num3, num4, num5;
num1 = 1;
num2 = 12;
num3 = 123;
num4 = 1234;
num5 = 12345;
printf(”%8d %-8d\n”, num1, num1);
printf(”%8d %-8d\n”, num2, num2);
printf(”%8d %-8d\n”, num3, num3);
printf(”%8d %-8d\n”, num4, num4);
printf(”%8d %-8d\n”, num5, num5);
getchar();
return 0;
}
Hasil percobaannya adalah seperti gambar berikut :
Kalau kita lihat pada codingnya, ada %8d dan ada %-8d. Disini, %8d adalah tidak bertanda minus berfungsi mengeset karakter pada rata kanan, dimana karakter yang kita input semua berada dikanan semua. Sedangkan %-8d adalah bertanda minus berfungsi untuk mengeset karakter pada rata kiri,dimana yang kita input itu semua berada disebelah kiri.
Mencetak Nilai dengan Pembulatan
Contoh:
#include <stdio.h>
main()
{
int int_num;
double flt_num;
int_num = 123;
flt_num = 123.456789;
printf(”Default integer format : %d\n”, int_num);
printf(”With precision specifier: %2.8d\n”, int_num);
printf(”Default float format : %f\n”, flt_num);
printf(”With precision specifier: %-10.2f\n”, flt_num); getchar();
return 0;
}
Hasil percobaannya adalah seperti gambar berikut :
Yang kami pelajari dipercobaan ini adalah hasil pertama yang menggunakan %d menampilkan karakter dengan posisi rata kiri. Jika kita menggunakan %2.8d artinya kita menyiapkan 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 dan seterusnya sesuai dengan keingin kita mau berapa angka dibelakang koma.
Part 2 – Pemograman & Coding
Ada 3 integer, 15, 150, dan 1500. Tulislah sebuah program yang mencetak integer di layar dalam format heks!
Coding:
#include “stdio.h”
#include <conio.h>
main ()
{
int nilai;
printf (”Masukan Nilai Integer :”);
scanf (”%d”,&nilai);
printf (”Nilai Hexa Decimal dari %d adalah : %x\n”,nilai, nilai);
fflush(stdin);
getchar ();
return 0;
}
Program:
untuk yang integer 15
untuk integer yang 150
untuk integer yang 1500
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^