String dalam Bahasa C

 

STRING

Dasar-dasar String :
String sebenarnya merupakan penggunaan tipe data char secara berkelompok
Tipe data string merupakan array dari tipe data char
Deklarasi Variabel String :
Karena string merupakan array dari char, maka pendeklarasiannya sama dengan mendeklarasikan array dari char, yaitu :
Char nama_var [ jml_karakter ]
Contoh :
char alamat [40] –> deklarasi variabel alamat dengan tipe data string.
Nilai Variabel alamat terdiri dari beberapa karakter maksimal 40 karakter (0 s/d 39)
Inisialisasi Variabel String :
Variabel string dapat diinisialisasi dengan cara seperti berikut :
Char x[10]=“Permainan”;
x di memori setelah inisialisasi :
Karakter “” pada x [9] merupakan karakter null yang menandai berakhirnya suatu string.
Perbedaan Char dan String :
Char ‘A’ berbeda dengan string “A”
Lihat perbedaanya pada penggambaran memori berikut:
Operasi string tidak dapat dilakukan untuk tipe data char
Array of String :
Karena string merupakan array dari char, maka array string adalah array dua dimensi dari array char
Contoh : mendeklarasikan array yang menyimpan 30 nama, masing-masing nama terdiri dari 25 karakter
#define jml_orang 30
#define pjg_nama 25
….
Char nama [jml_orang] [pjg_nama]
Inisialisasi Array of String :
Inisialisasi array dari string dapat dilihat pada contoh berikut :
Char bulan[7] [10] = {“Senin”, “Selasa”, “Rabu”, “Kamis”, “Jumat”, “Sabtu”, “Minggu”}
Array of String dengan printf dan scanf :
Printf dan scanf dapat menangani argumen string dengan menggunakan format string %s
Contoh:
Printf(“Topik : %s\n”, string_var);
Secara default penulisan string menggunakan alignment rata kanan.
Untuk menuliskan string secara rata kiri (left justified) maka tuliskan tanda minus (-) didepan s
Contoh :
printf (“%-20s\n”,presiden);
Scanf digunakan untuk pemasukan string (input of string)
Fungsi-Fungsi pada Librari String :
String.h merupakan librari yang menyimpan fungsi-fungsi yang digunakan untuk menangani string ataupun substring.
Fungsi-fungsi dalam librari string.h antara lain : strcpy, strncpy, strcat, strncat, strcmp, strncmp, strlen.
a. Strcpy
Berfungsi untuk menyalin (copying) suatu string asal ke variable string tujuan. Bentuk umumnya : strcpy(var_tujuan, string_asal);
b. Strncpy
Berfungsi untuk menyalin (copying) suatu string asal ke variable string tujuan sebanyak n karakter sesuai yang diinginkan programmer. Bentuk umumnya: strncpy(var_tujuan, string_asal, n);. Dengan n adalah jumlah karakter yang ingin dipindahkan.
Cara menyalin substring di tengah :
Misal :
Char s2[10]
Char s1[15] = “Mar. 15, 2008”
s2 bernilai berapa?
Strncpy (s2,s1,3) –> s2 bernilai “Jan, “
Strncpy (s2, &s1[5], 2) –> s2 bernilai “15”
c. Strcat
Berfungsi untuk menambahkan string sumber ke bagian akhir dari string tujuan. Bentuk umumnya: strcat(tujuan, sumber);.
d. Strncat
Berfungsi sama dengan fungsi strcat, yaitu menambahkan string sumber ke bagian akhir dari string. Yang membedakan adalah pada jumlah karakter yang dipindahkan. Fungsi ini dapat memindahkan karakter sebanyak n karakter sesuai yang sudah diprogram oleh programmer. Bentuk umumnya: strncat(tujuan, sumber, n);. Dengan n adalah jumlah karakter yang ingin dipindahkan.
e. Strcmp
Berfungsi untuk membandingkan dua buah string. Hasil dari fungsi ini bertipe integer dengan nilai:
1) negative, bila string pertama kurang dari string kedua.
2) Nol, bila string pertama sama dengan string kedua.
3) Positif, bila string pertama lebih banyak dari string kedua.
Bentuk umumnya: strcmp(string1, string2);
f. Strncmp
Berfungsi untuk membandingkan n karakter pertama dalam dua buah string. Hasil dari fungsi ini sama dengan hasil dari fungsi strcmp. Bentuk umumnya:
Strncmp(string1, string2, n);. Dengan n adalah jumlah karakter yang ingin dibandingkan.
g. Strlen
Berfungsi untuk memperoleh jumlah karakter dari suatu string. Bentuk umumnya: strlen(string);
Operasi Karakter :
Fungsi dari library ctype.h :
a. Isalpha
Merupakan fungsi operasi karakter dengan tolok ukur fungsi akan bernilai benar jika argumen dalam syntax tersebut merupakan karakter yang berupa huruf dalam alphabet. Bentuk umumnya: isalpha(char);.
b. Isdigit
Merupakan fungsi operasi karakter dengan tolok ukur syntax akan menghasilkan nilai benar (bukan nol) bila karakter merupakan sebuah angka (digit) dari nol sampai sembilan. Bentuk umum: isdigit(char);.
c. Islower
Merupakan fungsi operasi karakter dengan tolok ukur syntax ini bernilai benar (bukan nol) jika karakter merupakan huruf kecil.
Bentuk umumnya: islower(char);.
d. Isupper
Merupakan fungsi operasi karakter dengan tolok ukur fungsi ini akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf capital.
Bentuk umumnya: isupper(char);.
e. Ispunct
Merupakan fasilitas yang ada dalam ctype.h yang berfungsi untuk memasukkan karakter yang berupa tanda baca (punctuation), tidak termasuk didalamnya karakter spasi, huruf alphabet, dan angka (digit).
Bentuk umumnya: ispunct(char);.
f. Isspace
Merupakan fasilitas yang ada dalam ctype.h yang berfungsi pada karakter-karakter seperti spasi, newline tab, dan tab. Contoh penggunaannya:
g. Tolower
Fungsi ini akan merubah huruf kapital menjadi huruf kecil.
Bentuk umum: tolower(char);.
h. Toupper
Fungsi ini akan merubah huruf kecil menjadi huruf kapital.
Bentuk umum: toupper(char);
1 comments Links to this post   
Labels: Bahasa C
[Bahasa C] Evaluasi 2
Posted by 7effrey at 3:22 PM
1. Buatlah program “Palindrome” yang akan mengecek kata yang jika dibaca dari depan maupun belakang sama.
Program tidak menghiraukan spasi maupun huruf besar dan huruf kecil.
Misal : Kasur ini rusaK –> Palindrome
M a l A m –> Palindrome
makan –> Bukan Palindrome

2. Buatlah program yang akan menggeser n karakter dari kanan kalimat yang diinputkan ke bagian depan.
Nilai n diinputkan oleh user.
Misal :

3. Buatlah program yang akan mencari kata/karakter pada kalimat yang telah diinputkan.
Misal :

4. Buatlah Program Game Tic Tac Toe.
Program ini akan meminta inputan panjang dan lebar papan dari user, user akan diminta untuk mengisi nama pemain 1 dan pemain 2.
Kemudian pemain 1 dan pemain 2 akan bergantian mengisi simbol mereka masing2 pada papan yang masih kosong hingga simbol2 tersebut membentuk garis vertikal, horizontal, ataupun diagonal.
Jika berhasil membentuk garis terlebih dahulu, maka pemain tersebut yang menang dan program akan berhenti.
Namun, jika hingga papan penuh kedua pemain masih belum mampu membentuk garis maka hasilnya seri.
Misal :
- - -
- - -
- - -
Pemain pertama: 0 0
x - -
- - -
- - -
Pemain kedua: 1 1
x - -
- o -
- - -
Jawaban Evaluasi 2 dapat didownload di sini
1 comments Links to this post   
Labels: Bahasa C
[Bahasa C] Array dalam Bahasa C
Posted by 7effrey at 3:21 PM
ARRAY
Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.
Nilai-nilai data di suatu larik disebut dengan elemen-elemen larik.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
1. Array berdimensi satu
o Setiap elemen array dapat diakses melalui index
o Index array secara default dimulai dari 0
o Deklarasi array :
Tipe_array nama_array[ukuran]
2. Array berdimensi dua
- Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom. Bentuknya dapat berupa matriks atau tabel.
- Deklarasi array :
Tipe_array nama_array [baris][kolom]
3. Array multidimensi
- Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
- Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Perbedaan array dengan tipe data lain :
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja.
Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array juga dapat digunakan sebagai parameter. Jenisnya :
a. Array dimensi satu sebagai parameter :
- Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
Contoh:
#include
#include
int length(char x[]);
int main()
{
char string[256];
printf(”Ketikkan sembarang kalimat : “);
gets(string);
Lstring=length(string);
getch();
return(0);
}
int length(char x[])
{
int i, cek, L=0;
for(i=0;i<256;i++)
{
if (x[i]!=”)
L+=1;
else break;
}
return(L);
}
b. Array dua dimensi sebagai parameter :
- Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
Contoh:
#include
#include
void isi_matriks(int m[10][10],int b,int k);
int main()
{
int m1[10][10];
printf(”Masukkan baris dan kolom Matriks I : “);
scanf(”%d x %d”,&b1,&k1);
printf(”Masukkan baris dan kolom Matriks II : “);
scanf(”%d x %d”,&b2,&k2);
printf(”Masukkan isi Matriks I : \n”);
isi_matriks(m1,b1,k1);
getch();
return(0);
}
void isi_matriks(int m[10][10],int b,int k)
{
int i,j;
for (i=1;i<=b;i++)
{
for(j=1;j<=k;j++)
scanf(”%d”,&m[i][j]);
}
printf(”Matriks I : \n”);
for (i=1;i<=b;i++)
{
for(j=1;j<=k;j++)
printf(”%8d”,m[i][j]);
printf(”\n”);
}
}
0 comments Links to this post   
Labels: Bahasa C
[Bahasa C] Fungsi dalam Bahasa C
Posted by 7effrey at 3:20 PM
FUNGSI
Fungsi :
-Bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya. Program dari bahasa C dibentuk dari kumpulan-kumpulan fungsi, mulai dari fungsi utama, fungsi pustka, maupun fungsi yang dibuat oleh pemrogram.
Manfaat fungsi :
- Fungsi menjadikan program C memiliki struktur yang jelas. Dengan memisahkan langkah-langkah detil ke satu atau lebih fungsi, maka fungsi utama (main( )) akan menjadi lebih pendek, jelas dan mudah dimengerti.
- Fungsi-fungsi dapat dijinkan untuk menghindari penulisan yang sama berulang-ulang. Langkah-langkah program yang sama dan sering digunakan berulang-ulang dapat ditulis sekali saja secara terpisah dalam bentuk fungsi-fungsi, selanjutnya bagian program yang membutuhkan langkah-langkah ini cukup memanggil fungsi-fungsi tersebut.
Nilai akhir dari suatu fungsi adalah nilai yang dikembalikan oleh fungsi berdasarkan input parameter-parameter yang dimasukkan.

Contoh fungsi:
int rata(int x, int y, int z)
{
int ave;
ave = (x + y + z)/3;
return(ave);
}
Di dalam fungsi dikenal istilah Parameter Formal dan Parameter Aktual :
a. Parameter formal adalah parameter yang terdapat pada pendefinisian sebuah fungsi.
b. Parameter aktual adalah parameter yang terdapat pada saat pemanggilan fungsi.
Cara melewatkan parameter ke dalam suatu fungsi dapat dilakukan melalui dua cara yaitu:
a. Pelewatan parameter melalui nilai (call by value) :
- pelewatan parameter ke dalam fungsi dengan menyalin nilai dari suatu variabel aktualnya. Maksudnya adalah fungsi menerima masukan berupa nilai, bukan alamat memori letak dari datanya dan nilai tersebut disimpan di alamat memori yang terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.
Contoh :
#include
#include
int kali(int a,int b, int c) //parameter formal
{
int x;
x = a * b * c;
return(x);
}
int main()
{
int a,b,c;
printf(”Masukkan angka 1 : “);
scanf(”%d”,&a);
printf(”Masukkan angka 2 : “);
scanf(”%d”,&b);
printf(”Masukkan angka 3 : “);
scanf(”%d”,&c);
printf(”Hasil perkalian ketiga bilangan adalah %d”,kali(a,b,c)); //parameter aktual
getch();
return(0);
}
b. Pelewatan parameter melalui acuan/referensi (call by reference) :
- pelewatan parameter ke dalam fungsi dengan menyalin alamat dari suatu variabel aktualnya. Fungsi yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya. Hal ini dilakukan dengan menggunakan pointer. Pointer adalah variabel yang merujuk pada alamat lokasi suatu memori tertentu, variable pointer dapat dideklarasikan dengan menuliskan nama variabelnya diawali dengan asterisk (‘*’). Perubahan yang terjadi pada variabel asal akan mengakibatkan perubahan pada variabel pointernya dan sebaliknya.
Contoh :
#include
#include
void desc_sort(int *bil1,int *bil2) //parameter formal
{
if(*bil1<*bil2)
{
*bil1 = *bil1 + *bil2;
*bil2 = *bil1 - *bil2;
*bil1 = *bil1 - *bil2;
}
}
int main()
{
int a,b,c;
printf(”Masukkan angka 1 : “);
scanf(”%d”,&a);
printf(”Masukkan angka 2 : “);
scanf(”%d”,&b);
printf(”Masukkan angka 3 : “);
scanf(”%d”,&c);
desc_sort(&a,&b); //parameter aktual
desc_sort(&a,&c); //parameter aktual
desc_sort(&b,&c); //parameter aktual
printf(”Hasil descending sort adalah %2d %2d %2d”,a,b,c);
getch();
return(0);
}
Di dalam penggunaan fungsi-fungsi dalam program kita mengenal adanya istilah variable local dan variable global :
a. Variabel lokal :
- Variabel yang nama dan nilainya hanya dikenal di suatu blok statement tertentu saja atau di dalam suatu fungsi. Variabel lokal harus dideklarasikan di dalam blok bersangkutan. Variabel lokal akan dihapus dari memori jika proses sudah meninggalkan blok statement letak variable lokalnya.
b. Variabel global :
- Variabel yang dikenal di semua bagian-bagian tertentu dari program. Variabel global dapat dibuat dengan cara mendeklarasikannya di luar suatu blok statement atau di luar fungsi-fungsi yang menggunakannya.
0 comments Links to this post   
Labels: Bahasa C
[Bahasa C] Evaluasi 1
Posted by 7effrey at 3:19 PM
EVALUASI TAHAP 1
1. Buatlah program yang menghasilkan tampilan seperti di bawah ini !
Screenshot 1:

Screenshot 2 :

2. Buatlah Program Permainan Tebak Angka!!

3. Buatlah Program Seperti Contoh di bawah ini!!

4. Buatlah Program yang Menghasilkan Output sebagai berikut :

5. Sekarang anda sebagai seorang pengantar barang(tansposter).
Kota anda merupakan koordinat 10 x 10
Posisi start anda merupakan posisi pelanggan anda yang ditentukan oleh user (input dari keyboard)
barang akan anda antar ke tempat tujuan yang ditentukan program(random)
tiap satuan horisontal, Anda mengenakan biaya Rp. 500, 00
tiap satuan vertikal, Anda mengenakan biaya Rp. 1000, 00
program anda dapat menggambar posisi start, finish dan jalan yang akan dilalui(liat contoh)
start = S
finish = F
jalan anda = o
yang lain = -
Untuk lebih jelasnya, bisa lihat contoh : Evaluasi 1 Soal 4



Perulangan :
Perulangan data atau yang biasa disebut dengan “looping” adalah proses yang dilakukan secara berulang-ulang sampai batas yang ditentukan. Biasanya bila dalam perulangan tersebut tidak disertakan batasnya maka syntax akan error karena proses itu akan berulang terus hingga tak terhingga sementara variabel dalam komputer masih terbatas.
Jenis :
a. FOR
Syntax : for (inisialisasi ; syarat ; penambahan) {
pernyataan}
inisialisasi  keadaan awal dari variabel control
syarat  ekspresi relasi yang merupakan kondisi
penambahan  pengatur perubahan nilai variabel control
Flowchart :

Contoh :
for (i=0;i<10;i++)
{
p=2+i;
}
b. WHILE
Syntax : while (kondisi){
pernyataan}
Flowchart :

Contoh :
i=0
while (i<10)
{
p=2+i;
i++;
}
c. DO - WHILE
Syntax : do {
pernyataan}
while (kondisi);
Flowchart :

Contoh :
i=0
do
{
i++;
}
while (i<10)
Perbedaan antara FOR, WHILE, dan DO-WHILE :
For :
untuk mengulang suatu proses yang telah diketahui jumlahnya.
While : Pre Tested Loop
untuk mengulang suatu proses yang belum diketahui jumlahnya. Pengecekan kondisi akan dilakukan terlebih dahulu. Jika kondisi masih bernilai true, maka looping akan terus berlanjut.
Do-while : Post Tested Loop
untuk mengulang suatu proses yang belum diketahui jumlahnya. Instruksi akan dijalankan lebih dahulu, kemudian dilakukan pengecekan kondisi apabila masih bernilai true maka looping akan terus berlanjut.

Comments