================================================================*

#include<stdio.h>
#include<string.h>
main(){
char nama[20];
nama[0]=’B';
nama[1]=’u';
nama[2]=’d';
nama[3]=’i';
nama[4]=’m'; //jika di ganti menjadi nama[4]=’//isinya backslash 0 atau ‘ output-nya jadi Budi
//karena elemen empat menjadi null
nama[5]=’a';
nama[6]=’n';

nama[7]=”; //isinya backslash 0 atau

printf(“%s\n”,nama); //output Budiman
}

================================================================*

#include<string.h>
#include<stdio.h>
char a[5]=”Budi”;
char b[5]=”Adi”;
main(){
printf(“%s\n”,a);
strncpy(a,”Aa”,2);
printf(“%s\n”,a); //output Aadi karena tidak menyertakan null karakter
strncpy(a,”Adi”,4);
/*Dalam pascal a:=’Adi’*/

printf(“%s\n”,a); //output Adi -> menyertakan null karakter
strncpy(a,”Budiman”,8);
printf(“%s\n”,a);
strncpy(b,”Adi”,4); //terjadi Memory Corruption atau Array overrun/overflow
printf(“%s\n”,a);

}

================================================================*

#include<string.h>
#include<stdio.h>
void main() {
char nama[11];
printf(“Silahkan ketikan nama anda : “);
fgets(nama,11, stdin); //bisa di tampilkan dengan menyertakan spasi

/* Kelemahan fgets, jika karakter yang di input kurang dari batas yang
ditentukan, maka string akan diakhiri dengan NEWLINE-CHARACTER dan
NULL-CHARACTER (“\n”)
*/

fflush(stdin); //utk mengecek maximum 11 klo, lebih di abaikan
printf(“Selamat Sore, %s.\n”,nama);
printf(“%s mempunyai 2 email pagi ini.”,nama);

}

================================================================*

#include<stdio.h>
#include<string.h>
void main(){
char namaLengkap[256]=”";
char *namaDepan=”Kyai”;
char *namaTengah=”Ahmad”;
char *namaBelakang=”Dahlan”;
strcat(namaLengkap,namaDepan);
printf(“%s\n”,namaLengkap);
/*output: Kyai*/
strcat(namaLengkap,” “);
strcat(namaLengkap,namaTengah);
printf(“%s\n”,namaLengkap);
/*output: Kyai Ahmad*/
strcat(namaLengkap,” “);
printf(“%s\n”, strcat(namaLengkap,namaBelakang));
/*output: Kyai Ahmad Dahlan*/
}

================================================================*

/* Contoh mencari string di dalam string dengan STRSTR */


#include<stdio.h>
#include<string.h>
void main(){
char namaLengkap[]=”KyaiAhmadDahlan”;
char namaDicari[]=”";
if (strstr(namaLengkap,namaDicari)){
printf(“%s terdapat dalam %s”,namaDicari,namaLengkap);
} else {
printf(“%s tidak terdapat dalam %s”, namaDicari, namaLengkap);
}
}

================================================================*

===============================================================
*Dalam bahasa C, Pointer bisa berfungsi sebagai variabel array
misal pa = &c[0]
berarti pointer pa menunjuk elemen array ke-0 dalam variabel C

Kalau mendeklarasikan pointer kedalam array, tidak boleh menggunakan tanda bintang

jadi : pa = &c[1];

TUJUAN PENGGUNAAN POINTER DALAM BAHASA C :

1. Mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai
variabel bisa diubah di dalam fungsi

int nama fungsi (int *b) {
*b = *b + 1;
}
main () {
int x=1;
nama_fungsi (&x);
printf (“%d”, x); // output :2, karena x diubah di dalam fungsi menjadi x=x+1;
}

DALAM BAHASA PASCAL :
Procedure nama_proc (var b:integer);
begin
B=b+1;
end;
var x;
begin
x=1;
nama_proc (x);
writeln (x); // output : 2
end.

2. Untuk membuat variabel DINAMIS (Bukan variabel Statis)

Contoh variabel STATIS dalam bahasa C :

#include <stdio.h>
main () {
int a[2], i;
for (1=0; i<2; i++) {
scanf (“%d”, &a[i]);
}

printf (“Anda mengetikkan :”);
for )i=0; i<2; i++) {
printf (“\n%d”, a[i]);
}
}

Contoh variabel DINAMIN dalam bahasa C :


Program dibuat lebih fleksibel, artinya… apabila kita belum mengetahui berapa banyak jumlah data yg akan diinput oleh operator, maka kita akan membuat program sedemikian rupa sehingga program menjadi fleksibel terhadap data yg akan diinput oleh operator.

1.============================================================*

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <alloc.h> /* dibutuhkan untuk fungsi alokasi memori */

void main(){
int num, index, *p;
randomize();
do {
printf(“Berapakah jumlah data yang akan dimasukkan ? “);
scanf(“%d”,&num);
if (num==0) break;

/*****
Mengalokasikan array secara dinamis
sebanyak #num# elemen
*****/

p = (int *) malloc (sizeof(int) * num);

for (index=0; index<num; index++){
/*****
Mengisi alamat memori yang ditunjuk ptemp
dengan bilangan acak
*****/

p[index] = random(1000)+1;
}
for (index=0; index<num; index++){
printf(“Nilai ke-%d: %d\n”, index+1, p[index]);
}
//printf(“Sisa memori heap sesudah alokasi array: %u”,
//coreleft());
/*****
Membebaskan kembali memori yang
sudah dialokasikan
*****/

free(p);
printf(“\n”);
} while (num>0);
}

2.============================================================*

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <alloc.h> /* dibutuhkan untuk fungsi alokasi memori */

void main(){
int *p;
float *q;
p = (int *) malloc (sizeof(int) *2); //array dinamis 2 elemen
p[0]= 200;
p[1]=500;
printf(“%d %d”, p[0], p[1]);
free(p);
p = (int *) malloc (sizeof(int) *20);
p[19]= 10000;
printf(“\n%d”, p[19]);
free(p);
q = (float *) malloc (sizeof(float) *2);

q[0]= 100.25;
q[0]= 200.75;
printf(“\n%.2f %.2f”, q[0], q[1]);
free(q);

}

==============================================================*

Kegunaan Pointer

May 11, 2008

#include <stdio.h>
main() {

int a, b;
int *pa, *pb;
pa= &a; // pa diisi dengan alamat variabel a
pb= &b; // pa diisi dengn alamat variabel b
a= 10;
//b= 2000;

printf(“%d\n”, *pa); //menampilkan isi dari alamt yg ditunjuk oleh pa
printf(“%d\n”, *pb); //menampilkan isi dari alamt yg ditunjuk oleh pb

pa= pb;

printf(“%d\n”, *pa); // output: 2000

*pa = 500; // mengisi alamat yg ditunjuk pb dengan 500
// dengan kata lin, mengisi b dengan 500
// karena pb menunjuk alamat dari b

printf(“%d\n”, a); //output: 10
printf(“%d\n”, b); // output: 1, karena pa juga menunjuk alamat dari b

b= 250;
printf(“%d\n”, *pa); //output: 250

pb= &a;
printf(“%d\n”, *pb); //output: 10

printf(“\n\n\n”);

int c[4]= {10,20,30,40};
printf(“%d\n”, c[1]);

pa = &c[0];
printf(“%d\n”, *pa);
printf(“%d\n”, pa[1]);

pa= &c[2];
printf(“%d\n”, pa[1]);

pa= &c[1];
printf(“%d\n”, pa[1]);

pb =c; // c adalah pointer yng menunjuk &c[0]
printf(“%d\n”, *pb);
printf(“%d\n”, pb[1]);

// variabel array yg dideklarasikan berfungsi sama
// persis dengan pointer, bedanya c tidak bis diisi dengan alamat yang lain
// c= &ca ->> error

printf(“\n\n\n”);
printf(“%d\n”, *(c+1));
printf(“%d\n”, *(pb+2)); //output: pb[2] -> 30

pa = &c[2];
printf(“%d\n”, *(pa-2)); //output: 10
printf(“%d\n”, *(–pa)); //output: 20
printf(“%d\n”, *(–pa)); //output: 30

/************************************************************************************************
=>Tujuan penggunaan pointer dalam Bahasa C:


1. Mengirimkan “parameter yang berupa variabel” ke dalam fungsi, artinya nilai variabel
bisa diubah di dalam fungsi

int nama_fungsi (int *b){
*b = *b + 1;
}
main() {
int x=1;
nama_fungsi(&x);
printf(“%d”, x); //output: 2, karena x di ubah di dalam fungsi menjadi x= x+1

2. Untuk membuat variabel DINAMIS (Bukan variabel Statis)

***********************************************************************************************/
}

Operasi File Teks

May 5, 2008

Algoritma Pemrograman II

====================================================*
Langkah membuat file baru dan merekam data dalam file:
1.)  Assign >> pada saat assign file nilai.dat belum di tulis di dalam disk
2.) Rewrite (buat file baru)
3.) Write >> merekam data
4.) Close

Lankah membaca file yang yang telah di rekam di dalam disk:
1.) Assign
2.) Reset
3.) Read
4.) Write
5.) Close

reset >> buka file baru yang sudah pernah di buat.
pindah ke record tertentu >>  seek (g, nomor record)

Operasi file Teks

Sequential Acces File:
Begitu dibuk dengan “reset” maka tidak bisa di tulis

Sequential Acces File:
Merekam teks baru (file  baru)
*Rewrite
Menambah teks
*Append
Membaca teks
*Reset

Penanganan kesalahan (error handling):
{$i-}

Program reminder:
1. Merekam tugas/appoinment
- tanggal, bulan, tahun
-
2. Memeriksa tanggal untuk dibandingkan dengan semua tugas/appoinment
3.

Record / Struct

POINTER

Pointer -> sebuah tipe variabel yang berisi alamat memori komputer yang menyimpan nilai bertipe tertentu

Pointer bertipe integer -> pointer yang menunjuk alamat memori yang berisi nilai bertipe integer

Pointer bertipe float -> pointer yang menunjuk alamat memori yang berisi nilai bertipe float

Variabel bukan pointer:
int a= 100;
float b=  10.5;

Variabel pointer
int *pointer_a; /* pointer_a adalah variabel pointer yang menunjuk alamat nilai bertipe integer */
float *x; /* x adalah variabel pointer yang menunjuk alamat nilai bertipe float */

x = &b; /* mengisi x dengan alamat dari variabel b */

pointer_a  = &a; /* mengisi  pointer_a dengan

1. Variabel Statis
Tidak perlu pointer -> int a, float b, char x, int a[10], char m[12]

2. Variabel Dinamis
Perlu Pointer

=============================================================*
#include<stdio.h>
main() {
int a;
float b;
int *pointer_a;
float *x;

a=10; b=20.5;
pointer_a= &a;
x = &b;

printf(“%d\n”, *pointer_a);  /* output 10, nilai yg terdapat di dalam memori
yg di tunjuk oleh pointer_a */
printf(“%f\n”, *x); /* output 20.5, nilai yg terdapat di dalam memori
yang di tunjuk oleh pointer_x */
printf(“%f\n”, *pointer_a + *x); /* output 30.5 */
printf(“%f\n”, a+b); /* output 30.5 */

}

=============================================================*

uses wincrt;
type TMhs=record
NIM:string;
nama:string;
IPK:real;
end;
var
f:file of TMhs;
mahasiswa:TMhs;

begin
assign(f, ‘mhs.dat’);rewrite(f);
mahasiswa.NIM:=’123′; mahasiswa.nama:=’Adi’; mahasiswa.IPK:=3.5;
write(f,mahasiswa);
mahasiswa.NIM:=’234′; mahasiswa.nama:=’Budi’; mahasiswa.IPK:=2.75;
write(f,mahasiswa);

close (f);
reset(f);
seek(f,1);
read(f,mahasiswa);
writeln(mahasiswa.NIM);
writeln(mahasiswa.nama);
writeln(mahasiswa.IPK:4:2);
close(f);
end.

==================================================================*

Follow

Get every new post delivered to your Inbox.