ABSTRAK Perkembangan teknologi saat ini amatlah sangat cepat. Maka kebutuhan akan barang
kemudahannya.
Program
ini
sangat
mudah operator
hanya memasukkan data data ke dalamnya.Bahasa C banyak digunakan oleh institusi-institusi untuk mengolah data-datanya agar mempermudah
elektronik seiring naik dengan perkembangan teknoologi tersebut. Untuk itu manusia perlu menciptakan alat untuk membantunya dalam melakukan tugas tugas yang membebaninya. Dengan alat elektronik tersebut, manusia akan terbantu sedikit meringankan beban pekerjaannya. Bahkan hanya dalam perangkat keras saja tapi juga perangkat lunaknya. Manusia akan sangat perlu suatu printahperintah yang dapat menghubungkan keinginanya dengan computer ataupun mesin sekalipun. Perintah perintah itu diterjemahkan dalam bahasa bahasa yang dimengerti mesin. Bahasa manusia merupakan bahasa tingkat tinggi yang tidak dimengerti oleh mesin, sedangkan bahasa yang dimengerti mesin adalah bahasa tingkat rendah yaitu bahasa assemble. Salah satu bahasa mesin adalah bahasa C.Bahasa C adalah bahasa computer yang semakin popular.Dan sejak itu bahasa C semakin berkembang dan banyak
administrasinya.
1. PENDAHULUAN 1.1 Latar Belakang Dunia saat ini telah memasuki era
teknologi canggih. Hampir semua kegiatan manusia melibatkan teknologi komputer, mulai dari skala perorangan sampai pada skala perushaan. Seiring dengan itu, keterlibatan bahasa pemrograman C di dalam pemakaian
aplikasi komputer juga cukup besar. Karena itu kemudahan kemudahan yang ditawarkan oleh bahasa C membuat para programmer banyak meminatinya. Bahasa C adalah bahasa computer yang semakin popular. Dikembangkan oleh Dennis Richie dan Ken Thompson pada tahun 1972. C merupakan perbaikan atas bahasa B yang disusun oleh Ken Thmpson pada tahun 1970. C itu sendiri baru mulai dikenal uas sejak 1978
diminati oleh programmer hingga sekarang.Program ini dibuat dengan menggunakan progam bahasa C yang digemari oleh banyak programmer karena
setelah terbitnya buku The C Programming Language oleh Brian Kernighan dan Dennis Richie. Keunggulan utama sekaligus merupakan kelemahan C adalah sifatnya terbuka. Bersifat terbuka di sini berarti pemrogram memiliki keleluasaan yang besar untuk melakukan akses langsung ke perangkat computer, yakni akses langsung ke prosesor maupun ke perangkat lainnya. Berangkat dari latar belakang penulis berusaha membahas bahasa C agar mampu menggoprasikan bahasa C,karena bahasa C memiliki manfaat yang sangat besar pada kehidupan di era globalisasi
mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari
bahasa BCPL ( Basic Combined Programming Language ) yang diciptakan oleh Martin Richard. Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang
sebelumnya menggunakan bahasa B dan BCPL. Dalam perkembangannya, bahasa C menjadi bahasa paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN. Tahun mengalami 1989, dunia pemrograman penting C
peristiwa
dengan
dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C 1.2 Perumusah Masalah Apakah yang dimaksud dengan Bahasa C dan kegunaannya dalam kehidupan di zaman era globalisasi? dari yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C. Mulai awal tahun 1980, Bjarne Stroustrup AT & T Bell Laboratories mulai
mengembangkan bahasa C. Pada tahun 1985, 1.3 Tujuan Penulisan 1. Memenuhi Tugas Mata Kuliah lahirlah secara resmi bahasa baru hasil
pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront. C++ versi kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C. Pada evolusi selanjutnya, Borland
Komputer dan Pemrograman 2. Mengenal Bahasa C 3. Mengetahui apa saja yang terdapat dalam Bahasa C 4. Mengetahui kegunaan Bahasa C di zaman era globalisasi
International Inc. mengembangkan kompiler 2. TINJAUAN TEORI 2.1 Sejarah Bahasa C Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang
- Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci.
2.2
- Proses executable program bahasa C lebih cepat - Dukungan pustaka yang banyak.
Pada Windows 7 kita akan menemui message bahwa program ini tidak compitible dengan system, namun lanjutkan dengan mengklik run program dan menceklist dont show this message. - C adalah bahasa yang terstruktur - Bahasa C termasuk bahasa tingkat menengah penempatan ini hanya
3. 4.
mesin. yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi pada obyek tetapi dapat
dinterprestasikan oleh mesin dengan cepat.secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki menyusun
5. 6. 7. 8. 9.
Masukkan Serial Number lalu Next Pilih Custom lalu Next Tentukan tempat destination program Ulangi langkah kedua Pilih paket-paket program yang ingin digunakan lalu Continue
kemudahan
dalam
program secepat bahasa tingkat rendah. Kekurangan Bahasa C: - Banyaknya operator serta fleksibilitas penulisan program kadang-kadang
2.3
Kelebihan & kekurangan Bahasa C Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis 2.4
membingungkan pemakai. - Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
computer.
dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan
untuk memeriksa source-program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa pemrograman C. Tahap kompilasi akan int TopA, TopB, TopC, Stack_A[10],Stack_B[10], Stack_C[10]; int Inisialisasi(){ TopA=-1; TopB=-1; TopC=-1; } void PushA(int); void PushB(int); void PushC(int); int PopA(); int PopB(); int PopC(); void exchange(); void PushA(int x){ TopA=TopA+1; Stack_A[TopA]=x; } void PushB(int x){ TopB=TopB+1; Stack_B[TopB]=x; } void PushC(int x){ TopC=TopC+1; Stack_C[TopC]=x; } int PopA(){ int x; x = Stack_A[TopA]; TopA=TopA-1; return(x); } 3. PEMBAHASAN 3.1 Modifikasi 2 Stack (Genap dan Ganjil) int PopB(){ int x; x = Stack_B[TopB]; TopB=TopB-1; return(x);
menghasilkan relocatable object file. File-file objek tersebut kemudian digabung dengan perpustakaan-fungsi yang sesuai. untuk
menghasilkan suatu executable-program. Shortcut mengkompile: ALT + F9 dipakai untuk melakukan pengecekan jika ada error pada program yang telah kita buat. CTRL + F9 dipakai untuk menjalankan program yang telah kita buat atau bisa juga dengan toolbar. mengklik tombol debug pada yang digunakan untuk
#include<stdio.h> #include<conio.h>
} int PopC(){ int x; x = Stack_C[TopC]; TopC=TopC-1; return(x); } void exchange(){ int i,n; n=TopA; for(i=0;i<=n;i++){ PushC(PopA()); } n=TopB; for(i=0;i<=n;i++){ PushA(PopB()); } n=TopC; for(i=0;i<=n;i++){ PushB(PopC()); } } main() { int x, i, n; Inisialisasi(); printf("Masukan Jumlah Data = "); scanf(" %i", &n); for(i=0;i<=n-1;i++){ printf("Data ke-%i = ",i+1); scanf("%i", &x); if(x%2==0){ PushA(x); }else if(x%2!=0){ PushB(x); } } printf("\nISI STACK A ADALAH ANGKA GENAP\n"); for (i=0;i<=TopA;i++) {printf ("\nStack_A [%i] = %i",i,Stack_A[i]);
} printf ("\nTop = %i",TopA); printf ("\nStack_A[TopA]= %i",Stack_A[TopA]); printf ("\n"); printf("\nISI STACK B ADALAH ANGKA GANJIL\n"); for (i=0;i<=TopB;i++) {printf ("\nStack_B [%i] = %i",i,Stack_B[i]); } printf ("\nTop = %i",TopB); printf ("\nStack_B[TopB]= %i",Stack_B[TopB]); printf ("\n"); exchange(); printf("Stack A = Genap"); for(i=0;i<=TopA;i++){ printf("\n S[%i]= %i", i+1, Stack_A[i]); } printf("\n"); printf("\nS[Top]=%i \n", Stack_A[TopA]); printf("\n"); printf("\nStack B = Ganjil"); for(i=0;i<=TopB;i++){ printf("\n S[%i]= %i", i+1, Stack_B[i]); } printf("\n"); printf("\nS[Top]=%i \n", Stack_B[TopB]); getch(); } 3.2 Kalender
#include <stdio.h> #include <conio.h> typedef struct Tanggal { int tanggal, bulan, tahun; }Tanggal;
Tanggal tambah (Tanggal x, Tanggal y){ Tanggal hasil; hasil.tanggal=x.tanggal+y.tanggal; hasil.bulan=x.bulan+y.bulan; hasil.tahun=x.tahun; return hasil; } Tanggal ubah (Tanggal hasil){ if (hasil.bulan==2){ if (hasil.tahun%4==0){ if (hasil.tanggal>29){ hasil.bulan=hasil.bulan+hasil.tanggal/29; hasil.tanggal=hasil.tanggal%29; if(hasil.tanggal==0){ hasil.tanggal=29; } } } else { if (hasil.tanggal>28){ hasil.bulan=hasil.bulan+hasil.tanggal/28; hasil.tanggal=hasil.tanggal%28; if(hasil.tanggal==0){ hasil.tanggal=28; } } } } else if (hasil.bulan==1||3||5||7||8||10||12){ if (hasil.tanggal>31){ hasil.bulan=hasil.bulan+hasil.tanggal/31; hasil.tanggal=hasil.tanggal%31; if(hasil.tanggal==0){ hasil.tanggal=31; } } } else { if (hasil.tanggal>30){ hasil.bulan=hasil.bulan+hasil.tanggal/30; hasil.tanggal=hasil.tanggal%30; if(hasil.tanggal==0){ hasil.tanggal=30;
} } } if (hasil.bulan>12){ hasil.tahun=hasil.tahun+hasil.bulan/12; hasil.bulan=hasil.bulan%12; if(hasil.bulan==0){ hasil.bulan=12; } } return hasil; } int main(){ Tanggal x; Tanggal y; Tanggal hasil; puts("masukan tanggal = "); scanf ("%d",&x.tanggal); printf("masukkan bulan = "); scanf ("%d",&x.bulan); printf("masukkan tahun = "); scanf ("%d",&x.tahun); printf("ditambah = "); scanf ("%d",&y.tanggal); hasil=tambah(x,y); hasil=ubah(hasil); printf("\ntanggal setelah dijumlahkan= %d-%d-%d" ,hasil.tanggal); getch(); } 3.3 Perpindahan
#include <stdio.h> #include <conio.h> #include <stdlib.h> int pushA(int); int pushB(int); int popA(int); int popB(int); void tukar(int*,int*); int TopA=-1; int TopB=-1; int Stack_A[10];
int Stack_B[10]; int n=10; int kali; main(){ int x,i,c; printf("jumlah data= "); scanf("%d",&kali); for(i=1;i<=kali;i++){ printf("data ke %d = ",i); scanf("%d",&x); if(x%2==0){ pushA(x); } else{pushB(x); } } printf("\n\nISI STACK GENAP\n\n"); if(TopA>-1){ for(i=0;i<=kali;i++){ printf("Stack_A[%d] = %d\n",i,Stack_A[i]); } printf("Top A = %d\n",TopA); printf("S[TopA] = %d\n\n",Stack_A[TopA]); }else{printf("STACK KOSONG\n\n"); }
printf("GENAP\n\n"); for(i=0;i<=kali;i++){ printf("Stack_A[%d] = %d\n",i,Stack_A[i]); } printf("Top A = %d\n",TopA); printf("S[TopA] = %d\n\n",Stack_A[TopA]); printf("GANJIL\n\n"); for(i=0;i<=kali;i++){ printf("Stack_B[%d] = %d\n",i,Stack_B[i]); } printf("Top B = %d\n",TopB); printf("S[TopB] = %d\n\n",Stack_B[TopB]); getch(); system("cls"); tukar(Stack_A,Stack_B); printf("SETELAH DI TUKAR\n\n"); printf("GANJIL\n\n"); for(i=0;i<=kali;i++){ printf("Stack_A[%d] = %d\n",i,Stack_A[i]); } printf("Top A = %d\n",TopA); printf("S[TopA] = %d\n\n",Stack_A[TopA]); printf("GENAP\n\n"); for(i=0;i<=kali;i++){ printf("Stack_B[%d] = %d\n",i,Stack_B[i]); } printf("Top B = %d\n",TopB); printf("S[TopB] = %d\n\n",Stack_B[TopB]); getch(); } int pushA(int x){ if(TopA<=n-1){ TopA = TopA++; Stack_A[TopA]= x; return Stack_A[TopA]; } }
printf("ISI STACK GANJIL\n\n"); if(TopB>-1){ for(i=0;i<=kali;i++){ printf("Stack_B[%d] = %d\n",i,Stack_B[i]); } }else{printf("STACK KOSONG\n\n"); } printf("Top B = %d\n",TopB); printf("S[TopB] = %d\n\n",Stack_B[TopB]); getch(); printf("Mau POP berapa kali: \n"); scanf("%d",&c); popA(c); popB(c); printf("ISI STACK SETELAH DI POP\n\n");
int pushB(int x){ if(TopB<=n-1){ TopB = TopB++; Stack_B[TopB]= x; return Stack_B[TopB]; } } int popA(int a){ int i; int x; for(i=0;i<a;i++){ Stack_A[TopA]=0; TopA=TopA-1; x=Stack_A[TopA];} return x; } int popB(int a){ int x; int i; for(i=0;i<a;i++){ Stack_B[TopB]=0; TopB=TopB-1; x=Stack_B[TopB];} return x; } void tukar(int a[],int b[]){ int i; int c[n]; int TopC; for(i=0;i<n;i++){ c[i]=a[i]; a[i]=b[i]; b[i]=c[i]; } TopC=TopA; TopA=TopB; TopB=TopC; }
3.4 Queue #include<stdio.h> #include<conio.h> #define n 10 int QA[n],QB[n], QC[n], CA, CB, CC ; int FA, FB, FC, RA, RB, RC; int Inisialisasi(){ CA=0; CB=0; CC=0; FA=0; FB=0; FC=0; RA=-1; RB=-1; RC=-1; } void InsertA(int x){ if(RA<n-1){ RA=RA+1; QA[RA]=x; CA=CA+1; }else{ printf("antrian penuh"); } } void InsertB(int x){ if(RB<n-1){ RB=RB+1; QB[RB]=x; CB=CB+1; }else{ printf("antrian penuh"); } } void InsertC(int x){ if(RC<n-1){ RC=RC+1; QC[RC]=x;
CC=CC+1; }else{ printf("antrian penuh"); } } int DeleteA(){ int x; x=QA[FA]; QA[FA]=0; FA=(FA+1); CA=CA-1; return x; } int DeleteB(){ int x; x=QB[FB]; QB[FB]=0; FB=(FB+1); CB=CB-1; return x; } void ResetA(){ FA=0; RA=-1; } float MeanB(){ int i,j=0; for(i=0;i<CB;i++){ j=QB[i]+j; } return j/CB; } float MeanC(){ int i,j=0; for(i=0;i<CC;i++){ j=QC[i]+j; } return j/CC; } main(){ int i,j,x; Inisialisasi(); printf("Jumlah data yang akan di isi? "); scanf("%i",&j); for(i=0;i<j;i++){ printf("Q_A[%i]= ", i); scanf("%i", &x); InsertA(x); } getch(); j=CA; for(i=0;i<j;i++){ x=DeleteA(); if(x%2!=0){ InsertB(x); }else if (x%2==0){ InsertC(x); } } ResetA(); printf("\n\nData Queue A dibagi ke 2 Queue\n"); printf("\nQueue B = Ganjil"); for(i=0;i<CB;i++){ printf("\nQ_B[%i] = %i ",i, QB[i]); } printf("\n\nRata-rata = %.2f", MeanB()); printf("\n\nQueue C = Genap"); for(i=0;i<CC;i++){ printf("\nQ_C[%i] = %i ",i, QC[i]); } printf("\n\nRata-rata = %.2f", MeanC()); getch(); j=CB; for(i=0;i<j;i++){ x=DeleteB(); if(x<50){ InsertA(x); } } printf("\n\nQueue B dengan nilai dibawah 50\n"); for(i=0;i<CA;i++){
printf("\nQ_A[%i] = %i ",i,QA[i]); } getch(); } 4. KESIMPULAN DAN SARAN 4.1 Kesimpulan Dari makahal ini dapat disimpulkan bahwa : 1. Bahasa C adalah sebuah bahasa dasar tingkat menengah yang sifatnya kompleks dan membangun logika atau algoritma 2. Bahasa C memiliki beberapa komponen, yaitu identifier atau pengenal, tipe data, deklarasi variable,assignment, konstanta, dan komentar. 3. Fungsi dari bahasa C adalah menampilkan hasil yang prototype-nya berada di file judul conio.h, menampilkan hasil yang prototype-nya berada di file judul isotream.h dan menampilkan hasil yang prototype-nya berada di file judul fungsi operasi matematika. 4.2 Saran Dalam mempelajari bahasa C ini disarankan untuk mendalami ilmu-ilmu mengenai bahasa C, mencari sumber yang lebih luas da akurat agar dapat mempelajarinya dengan mudah dan sesuai dengan yang kita inginkan.
BIODATA PENULIS Nama : Amreza Elwadi Nim : 3334131420 e-mail : elwadikarebo@gmail.com Nama : Bintang Purna Sari Nim : 3334130610 e-mail : purnabintang@ymail.com Nama : M. Arif Rachaman Nim : 3334132256 e-mail : moc.arif@gmail.com Nama : M. Kidam Hady Nim : 3334132302 e-mail : kidamhady16@gmail.com Nama : Panji Prabowo Mukti Nim : 333413178 e-mail : panji.prabowo79@gmail.com Nama : Rhea Werdaningsih Nim : 3334131716 e-mail : rheasswerda@gmail.com Nama : Try Alif Shandy Nim : 3334130142 e-mail : shandy_trialif@yahoo.com
DAFTAR PUSTAKA
http://nelly_sofi.staff.gunadarma.ac.id/Downloads/files/6 220/Pertemuan+1.ppt http://rani_push.staff.gunadarma.ac.id/Downloads/files/4 756/bahasa+C%2B%2B.doc http://cnc.stmikbaja.ac.id/index.php?option=com_conten t&task=view&id=18&Itemid=1