Senin, 07 November 2011
1
Senin, 07 November 2011
Nurkholish Ardi Firdaus
Dalam bahasa C, scanf() merupakan fungsi yang bisa kita gunakan untuk meminta input dari user yang selanjutnya data input tadi akan kita olah secara lebih lanjut dalam progran kita. Data bisa berupa angka maupun karakter, kita bisa memanggil fungsi scanf() seperti ini: scanf("%s",array_char); jika kita meminta user untuk mengimput data berupa kata. Namun ketika datanya berupa kalimat yang dipisahkan oleh spasi maka scanf() hanya akan membaca 1 kata pertama sebelum spasi, sebut saja user memasukkan input kata berupa "Aku Seorang Kapiten", maka scanf() hanya akan membaca kata "Aku" sedangkan sisanya akan diabaikan. Ini sesuai konsep bahwa dalam bahasa C, whitespace (spasi) adalah penanda akhir inputan. Jadi kita terkendala dengan karakter spasinya yang oleh compiler dibaca sebagai akhir kata. Lalu bagaimana solusinya? Banyak sekali solusi yang bisa kita gunakkan, salah satunya adalah menggunakan ekspresi reguler (regular expression), sintaks pemanggilan fungsi scanf() menjadi seperti ini: scanf("%[^\n]s",array_char); arti dari panggilan fungsi scanf() ini menjadi: "Baca semua karakter kecuali \n" dimana "\n" adalah salah satu backslash character constant yang artinya adalah newline (garis baru), jadi arti keseluruhannya adalah "Baca semua karakter hingga baris baru tercipta", baris baru tercipta ketika user menekan enter yang berarti berganti baris ("\n"). Marilah kita praktikkan secara langsung lewat source code dibawah ini:
[C] Teknik Membaca Satu Baris String Secara Keseluruhan
Dalam bahasa C, scanf() merupakan fungsi yang bisa kita gunakan untuk meminta input dari user yang selanjutnya data input tadi akan kita olah secara lebih lanjut dalam progran kita. Data bisa berupa angka maupun karakter, kita bisa memanggil fungsi scanf() seperti ini: scanf("%s",array_char); jika kita meminta user untuk mengimput data berupa kata. Namun ketika datanya berupa kalimat yang dipisahkan oleh spasi maka scanf() hanya akan membaca 1 kata pertama sebelum spasi, sebut saja user memasukkan input kata berupa "Aku Seorang Kapiten", maka scanf() hanya akan membaca kata "Aku" sedangkan sisanya akan diabaikan. Ini sesuai konsep bahwa dalam bahasa C, whitespace (spasi) adalah penanda akhir inputan. Jadi kita terkendala dengan karakter spasinya yang oleh compiler dibaca sebagai akhir kata. Lalu bagaimana solusinya? Banyak sekali solusi yang bisa kita gunakkan, salah satunya adalah menggunakan ekspresi reguler (regular expression), sintaks pemanggilan fungsi scanf() menjadi seperti ini: scanf("%[^\n]s",array_char); arti dari panggilan fungsi scanf() ini menjadi: "Baca semua karakter kecuali \n" dimana "\n" adalah salah satu backslash character constant yang artinya adalah newline (garis baru), jadi arti keseluruhannya adalah "Baca semua karakter hingga baris baru tercipta", baris baru tercipta ketika user menekan enter yang berarti berganti baris ("\n"). Marilah kita praktikkan secara langsung lewat source code dibawah ini:#include <stdio.h>
#include <stdlib.h>
int main()
{
char nama_lengkap[50];
scanf("%50[^n]s",nama_lengkap);
printf("Nama Lengap Anda: %-50s",nama_lengkap);
}
Oke, sekian postingan kali ini. Semoga bermanfaat :)
1
Nurkholish Ardi Firdaus
Oke, lama tidak posting. Kali ini saya akan berbagi source code yang menampilkan segitiga yang tersusun dari suatu karakter. Source code ini saya tulis dalam bahasa C. Oke cekidot...
[C] Membuat Program Segitiga
Oke, lama tidak posting. Kali ini saya akan berbagi source code yang menampilkan segitiga yang tersusun dari suatu karakter. Source code ini saya tulis dalam bahasa C. Oke cekidot.../*
UNIVERSITAS NEGERI SEMARANG
NAMA: NURKHOLISH ARDI FIRDAUS
NIM : 5302411244
*/
#include <stdio.h>
#include <stdlib.h>
void prism(int line, const char *chr);
int main()
{
printf("#################################n");
printf("## UNIVERSITAS NEGERI SEMARANG ##n");
printf("## Nurkholish Ardi Firdaus ##n");
printf("## 5302411244 ##n");
printf("## Mengambar Prisma ##n");
printf("#################################n");
prism(15,"+");
return 0;
}
void prism(int line, const char *chr)
{
if (!(line % 2 == 0)) { //lantai harus bilangan ganjil
int prism_floor, draw_space, draw_char;
for (prism_floor=1;prism_floor<=line;prism_floor++) {
//cetak spasi sesuai dg baris (jika baris 1 maka cetak spasi (line-1) kali
for (draw_space=line-1;draw_space>=prism_floor;draw_space--) printf(" ");
for (draw_char=1;draw_char<=prism_floor;draw_char++) { // Jika lantai 1, cetak 2 char, lantai 2 cetak 4 char
printf(chr); // cetak 2x
printf(chr);} //
printf("n"); //newline
}
}
}
Sebenarnya masih ada kekurangan dalam program ini, apakah anda bisa melihat apa kekurangannya??
Ya, benar. Sisi atas segitiga tidak lancip melainkan tumpul karena terdiri dari 2 karakter. Mugkin anda bisa memodifikasinya, kuncinya adalah penempatan karakter output pada terminal. Semoga bermanfaat :).
Minggu, 02 Oktober 2011
2
Minggu, 02 Oktober 2011
Nurkholish Ardi Firdaus
[C/C++] Program Penghitung Faktorial
Kali ini saya iseng membuat program penghitung faktorial menggunakan C++. Tujuan dari keisengan saya ini adalah saya ingin tahu apakah C++ mendukung metode panggilan fungsi secara rekursif. Eh ternyata bisa... Mari kita tenggok source code nya..
#include <iostream>
using namespace std;
double fact(double n);
int main()
{
int n;
cout << "###################################n";
cout << "### UNIVERSITAS NEGERI SEMARANG ###n";
cout << "### Factorial Solver ###n";
cout << "### Nurkholish Ardi Firdaus ###n";
cout << "###################################n";
cout << "Masukkan angka: ";
cin >> n;
cout << "n";
cout << n << "!=";
cout << fact(n) << endl;
return 0;
}
double fact(double n)
{
if (n>1) return n*fact(n-1);
else return 1;
}
Jumat, 30 September 2011
2
Jumat, 30 September 2011
Nurkholish Ardi Firdaus
[C/C++] Program Penghitung Rata-rata
Baru belajar bahasa pemrograman baru nih, C++. Dosennya ngasih tugas membuat program penghitung nilai rata-rata. Inti dari tugas ini adalah agar mahasiswa dapat menerapkan kerangka teknik looping pada pembuatan suatu program. Lets listen the code.........
#include#include using namespace std; int main(void) { int n, val, count; float sum,avrge; printf("###############################\n"); printf("# UNIVERSITAS NEGERI SEMARANG #\n"); printf("# Custom Average Solver #\n"); printf("# NURKHOLISH ARDI FIRDAUS #\n"); printf("# 5302411244 #\n"); printf("###############################\n\n"); printf("Masukkan banyaknya data: "); scanf("%d",&n); for (count=1;count<=n;count++) { printf("Masukkan data ke-%d: ",count); scanf("%d",&val); sum+=val; } avrge=sum/n; printf("\nRata-ratan dari %d data adalah: %.2f",n,avrge); return 0; }
Sabtu, 24 September 2011
7
Sabtu, 24 September 2011
Nurkholish Ardi Firdaus
[C/C++] Definisi dan Kegunaan Berbagai Keyword ANSI C dalam Pemrograman C/C++
Alhamdulillah, ini adalah postingan pertama saya setelah lama vakum dalam dunia blogging karena masa awal memasuki dunia perkuliahan. Mungkin mulai saat ini saya akan lebih banyak melakukan postingan tentang pemrograman C++ karena bahasa ini termasuk dalam mata prkuliahan saya. Sebisa mungkin saya akan berbagi ilmu yang saya miliki tentang bahasa C++ melalui blog ini. Postingan kali ini akan menjelaskan tentang fungsi berbagai keyword ANSI C dalam pemrograman C++.
Translate My Blog
Arsip Blog
Say Hi in FB
Leave some good words
Pengikut
Tukeran Link
<a href=http://www.mycrowja.blogspot.com> <img src=http://www.mycrowja.blogspot.com/ /><img src=https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfDrgihzm30PYg8VpaT7qLp5e6CYNr0PkaZL4srRX7MQJzGdum556cBbZADQ48XqPGrNIRnOd2V3G9UWT7CznIbP003L7aA1hp60XYpvd2fyViJ3jUJ2DR38M_egakVRSNKVwb54od0s6O/s800/BANNER.gif /> </a>
All Rights Reserved Crowja-Coderz
Blogger Template by Bloggermint

