Minggu, 20 Desember 2015

Program Cari Data Dengan Bahasa C

Pencarian data tidak lepas dengan looping & array. Search juga ada beberapa jenis yaitu pencarian dengan variable logika, tanpa variable logika, & sentinel. Lalu bagaimana membuat itu semua? Saya akan menunjukan beberapa contoh project search dengan 3 jenis itu. Langsung aja!

1. Program pencarian nilai dengan variable logika, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include <stdio.h>
int main ()
{
int a [100];
int x;
int s;
int i;
int n;
bool found;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=0;i<n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
i=0;
found=false;
while(i<n && !found){
if(x==a[i]){
found=true;
}
else {
i++;
}
}
if (found==true){
printf("ditemukan di elemen ke- %d",i+1);
}
else{
printf("tidak ditemukan");
}
}
*karena ini menggunakan variable logika, maka di kamus terdapat type data boolean dengan variable bernama found. Lalu search juga tidak lepas dengan while.
Output/keluaran :

2. Program cari nilai tanpa variable logika, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include<stdio.h>
int main()
{
int a [100];
int x;
int i;
int n;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=0;i<n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
i=0;
while(i<n && a[i] != x){
i++;
}
if (a[i]==x){
printf("ditemukan di elemen ke- %d",i+1);
}
else{
printf("tidak ditemukan");
}
return 0;
}
*Perbedaannya jelas terlihat dari pemakaian variable logika saja, disini tidak di pakai jadi langsung saja setalah looping lalu ke kondisi If, lalu menampilkan hasilnya. Output/keluarannya sama saja seperti di soal pertama.

3. Program cari data dengan sentinel, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include <stdio.h>
int main ()
{
int a [100];
int x;
int i;
int n;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=1;i<=n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
a[n+1]=x;
i=1;
while(a[i] != x ){
i=i+1;
}

if (i != 0){
printf("ditemukan di elemen ke- %d",i);
}
else {
printf("tidak ditemukan");
}
}
*Perbedaannya jelas terletak pada array yang ditambahkan angka 1, & while.
Output/keluaran sama dengan yang diatas.

Di soal yang terakhir ini saya akan membuat program bernama Mata Kulaih, program ini meminta masukan data dari user berupa kode mata kuliah, nama mata kuliah, & jumlah sks. Jumlah data yang dimasukan maksimal 100 (banyak array), lalu meminta cari data berdasarkan kode mata kuliah, & jumlah sks. setelah itu menampilkan hasil cari itu. Saya akan menggunakan pencarian dengan menggunakan variable logika.
Contoh :
Masukan banyaknya data yang akan di input : 2
Data 1:
Kode mata kuliah : 123
Nama mata kuliah : Kalkulus
Jumlah SKS : 3

Data 2:
Kode mata kuliah : 124
Nama mata kuliah : Algoritma dan pemrograman I
Jumlah SKS : 4

Cari data berdasarkan kode : 124
Kode mata kuliah : 124
Nama mata kuliah : Algoritma dan pemrograman I
Jumlah SKS : 4

Cari berdasarkan jumlah SKS : 3
Kode mata kuliah : 123
Nama mata kuliah : Kalkulus
Jumlah SKS : 3

Bahasa C :
#include<stdio.h>
#include<iostream>

using namespace std;

int main()
{
typedef struct {
int kd_mk;
char nama_mk[50];
int jml_sks;
}mk;
mk a[100];
int x;
int i;
int n;
int s;
int d;
bool found;

printf("masukan jumlah data n:");scanf("%d",&n);
for(i=0; i<n; i++){
printf("masukan kode matkul: \n");scanf("%d",&a[i].kd_mk);
printf("masukan nama matkul: \n");scanf("%s",&a[i].nama_mk);
printf("masukan jumlah sks: \n");scanf("%d",&a[i].jml_sks);
}
printf("Cari data berdasarkan kode: \n");scanf("%d",&x);
i=0;
found=false;
while(i<n && !found){
if(a[i].kd_mk==x){
found=true;
}
else{
i=i+1;
}
}
if(a[i].kd_mk==x && found){
printf("nama matkul: %s\n",a[i].nama_mk);
printf("jumlah sks: %d\n",a[i].jml_sks);
}
else{
printf("tidak ditemukan \n");
}
printf("Cari data berdasarkan jumlah sks: \n");scanf("%d",&s);
d=0;
found=false;
while(d<n){
if(s==a[d].jml_sks){
printf("Kode matkul: %d\n",a[d].kd_mk);
printf("nama matkul: %s\n",a[d].nama_mk);
found=true;
}
d++;
}
if(found==false){
printf("tidak ditemukan \n");
}

return 0;
}
*Saya menggunakan typedef struct di programnya, typedef struct adalah type struktur di bahasa C.
Output/keluaran :

Minggu, 13 Desember 2015

Algoritma Array/Larik

Larik adalah struktur data yang statis, artinya, jumlah elemen larik harus sudah diketahui sebelumnya. Jumlah elemen larik tidak bisa diubah, ditambah, dikurangi selama running program. Mendefinisikan banyak elemen larik berarti memesan sejumlah tempat di memori dan memori akan mengalokasikan sejumlah lokasi memori sebanyak elemen larik bersangkutan.
Array tidak lepas dari looping, array juga ada beberapa macam, ada array 1 dimensi(string), ada juga array 2 dimensi(matriks). Lalu bagaimana membuat array 1&2 dimensi?

Contoh soal array 1 dimensi.

1. Menampilkan deret 1,4,9,16,25,... dengan disediakan array sebanyak 10.

Algoritma:
Program array1
Kamus
i : integer
a : array[10] of integer
Algoritma
for i=1 to 10 do
    a[i] <-- i^2
endfor

Bahasa C:
*untuk di bahasa c, pangkat 2 tidak ada maka diganti menjadi kali dengan variabel/bilangan yang sama.
Output/keluaran
2. Meminta masukan nilai dari user sebanyak n buah bilangan, lalu menampilkan nilai terkecil dari 1000 bilangan.

Algoritma:
Program array2
Kamus
n, min, i : integer
a : array[10] of integer
Algoritma
input(n)
for i=1 to n do
      input a[i]
endfor
min <-- 1000
    for 1=1 to n do
        if(min>a[i])then
            min <-- a[i]
endfor
        output(min)
endif

Bahasa C:
Output/keluaran

Contoh soal array 1 dimensi (String).

1. Meminta masukan kalimat dari user lalu minta masukan huruf yang akan dihitung, & menghitung jumlah huruf di dalam kata tersebut.

Algoritma:
Program huruf
Kamus
kalimat : string
hu, hg : character
i ; integer
Algoritma
input(kalimat)
input(hu)
input(hg)
for i=1 to len do
if(kalimat[i]=hu)then
kalimat[i] <-- hg
endif
endfor
output(kalimat)

Bahasa C:

*strlen adalah nama fungsi di bahasa C untuk menghitung banyaknya kata(string).

Output/keluaran:

Contoh soal array 2 dimensi.

1. Buat matriks dengan deret sbb:










Algoritama:
Program buatmatriks
Kamus
array c[4,4] of integer
d, e, f : integer
Algoritma
f <-- 1
for d=1 to 4 do
for e=1 to 4 do
     c[d,e] <-- f
     f <-- f+1
endfor
endfor
for d=1 to 4 do
for e=1 to 4 do
output c[d,e]
endfor
endfor

Bahasa C:




















2. Hitung 2 matriks 3x3 dengan menerima masukan dari user lalu menghitung jumlah, kurang, dan kali matriks tersebut.

Algoritma:
Program hitungmatriks
Kamus
array a[3,3] of integer
array b[3,3] of integer
array c[3,3] of integer
array d[3,3] of integer
array e[3,3] of integer
f, g :integer
Algoritma
for f=1 to 3 do
for g=1 to 3 do
    input a[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    input b[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    c[f,g] <-- a[f,g]+b[f,g]
    output c[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    d[f,g] <-- a[f,g]-b[f,g]
    output d[f,g]
endfor
endfor
for f=1 to 3 do
for g=1 to 3 do
    e[f,g] <-- a[f,g]*b[f,g]
    output e[f,g]
endfor
endfor

Bahasa C:
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
int a[3][3];
int b[3][3];
int c[3][3];
int d[3][3];
int e[3][3];
int f;
int g;
int h;
for(f=0; f<3; f++){
for(g=0; g<3; g++){
printf("masukan matriks 1 :"); scanf("%d",& a[f][g]);
}
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
printf("masukan matriks 2 :"); scanf("%d",& b[f][g]);
}
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
c[f][g]=a[f][g]+b[f][g];
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
c[f][g]=a[f][g]-b[f][g];
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
for(f=0; f<3; f++){
for(g=0; g<3; g++){
for(h=0; h<3; h++){
c[f][g]=a[f][g]*b[f][g];
}
cout<<c[f][g]<<" ";
}
cout<<"\n";
}
return 0;
}

Rabu, 03 Juni 2015

Kuliah Jurusan IT Jangan Sampai Bilang Salah Jurusan

"Duh kayaknya aku salah jurusan deh, aku kira informatika engga kayak gini. Udah ga sanggup dah!"
Sering banget kita bakal denger kata-kata itu seengganya beberapa orang di tiap pertengahan semester saat ambil kuliah di jurusan informatika atau IT. Sebagai orang yang pernah berpengalaman, ane denger ungkapan itu dari temen sendiri & alhasil hati-hati dah sama orang yang udah ngaku kayak gini! Biasanya mereka orang-orang yang bakal segala nempel saat butuh. Misal ada tugas, mereka tiba-tiba berubah jadi bak cinderella di siang bolong. Tapi jangan terayu dulu! Ada udang di balik batu. Ga enak sumpah punya temen kayak gini :'(
Nah buat menghindari kejadian ga enak kayak gitu, mulai sekarang coba deh pikir-pikir dua kali mau pilih jurusan terutama IT.
Sebenarnya jurusan IT tuh yang kayak gimana sih? Apa yang seperti di mata pelajaran TIK di masa SMP dulu, yang paling gampang pelajarannya? Untuk jawaban ke dua itu, salah! Memang benar jurusan informatika tuh yang mengoperasikan komputer dan perangkatnya (hardware software). Lalu apa informatika yang soal service komputer? Kita memang bakal belajar soal troubleshooting tapi hanya intinya saja, di jurusan informatika kita bakal lebih condong ke pelajaran logika, algoritma, & pemrograman.

 Informatika masuk ke kategori IPA, karena untuk belajar pemrograman kita harus bisa menguasai matematika & bahasa Inggris khususnya, sisanya logika. Matematikanya juga bukan matematika murni, tapi masuk ke matematika teknik. Jadi jangan kira di kuliahan nanti tidak ada pelajaran paling bikin alergi ini ya :3 mereka selalu setia sama kita kok, belum pelajaran umum lainnya, so sweet kaaan </3
Pemrograman apa sih?
Contoh simple aja ya, tau kalkulator di laptop kita? Tau Facebook, Twitter, Wikipedia? Tau Android, IOS? Nah, kita dituntut untuk membuat seperti diatas. Yaaa engga sampe disuruh bikin kayak FB juga, istilah dasarnya kayak gitu. Kita bakal belajar bahasa pemrograman, basis data, & logika dari bidang dekstop, web, mobile, dan lainnya. Ini lah bagian terberat saat masuk jurusan informatika. Tapi jangan takut, ngoding tuh asik loh kita malah jadi semakin berani buat berimajinasi untuk membuat aplikasi/sistem informasi yang baru. Atau suka sama game? Kenapa engga kamu bikin aja game sendiri? Nah, di sini lah tempatnya.
Lalu kuliah jurusan informatika itu kalau bekerja dibidang mana? Informatika bukannya gampang ya dapet kerja, dikantoran, perusahaan, atau di tempat service?
Memang benar, tapi lebih tepatnya yang dipertanyakan tuh mau jadi apa kamu di jurusan informatika ini? Kasir, admin, tukang fotocopy, penjaga warnet? ._____.
Salah banget! Orang informatika itu lebih condong menjadi programer, web developer, konsultan IT, masih banyak lagi yang diatas itu semua. Jangan salah loh, lulusan sukses dari IT bisa meraup uang sampai jutaan rupiah dalam satu project saja.
Memang benar kalau kuliah jurusan ini banyak di minati karena masa depannya terjamin, tapi itu juga kalau kamu benar bekerja di bidang programer bukannya jadi kasir & lainnya yang lebih condong malah jurusan pemasaran atau perkantoran. Kalo emang mau jadi admin kenapa engga masuk jurusan ekonomi aja? :/

Malah banyak loh programer Indonesia di pekerjakan di luar negeri, karena disana IT perkembangannya sangat pesat. Gaji nya juga lumayan :3 Kalau di dalam negeri masih sedikit, tapi sedikit demi sedikit juga sudah banyak perusahaan membutuhkan programer untuk membuat aplikasi web online shop misalnya.
Tapi kamu juga harus kuat tekanan yang pasti di kasih dosen misalnya dalam sehari langsung di kasih tugas bikin aplikasi 3. Kalo kata ane sih bukan masalah kamunya ga sanggup ngoding juga, tapi kamunya aja yang udah ga minat sama jurusan ini. Kalo kamu jalanin sambil memikirkan impian masa depan kamu yang diharapkan pasti secara ga langsung kamu udah minat sama jurusan ini & siap menjadi programer. Oh terus jangan bandingin tugas orang IT lebih berat di banding jurusan yang lain ya. Karena setiap masing-masing jurusan itu punya tingkat kesulitannya. Jadi banyakin dzikir & doa aja buat yang muslim supaya di kuatin & ditabahin dalam menghadapi tekanan yang ada. Amiiin~

Jadi jangan sampai kedenger ucapan salah jurusan karena masuk informatika lagi ya! Pikirin baik-baik deh kalau milih jurusan, bukan sekedar banyak peminatnya apa engga. Tapi juga pikirin juga masa depan kamu mau jadi apa, kalau emang niatnya kerja dibagian admin atau akuntansi yang ngurus uang perusahaan. Saran, itu ga ada sama sekali hubungannya sama IT (JELAS!)
Inget juga, semua jurusan kuliah selalu ada tingkat kesulitannya masing-masing. Kalau mau sukses harus rela untuk pernah merasakan jatuh. Tapi setelah jatuh kamu harus bangkit lagi, jangan cuma diam aja merangkak entah tujuannya mau kemana. Berdiri lah jangan pantang menyerah, Never Giveup! ;)


Anak informatika koding aja di ulik sampai ketahuan masalahnya dimana terus bisa nyelesain masalah itu, apa lagi sama kamu yang coba diem-diem ngulik hati kamu ada aku atau engga. Kalau ketauan ada, siap-siap di hack sama kita ya :*
Mau IF, ELSE IF, atau ELSE. Tetap aja kok aku bakal nampilin Echo "Aku sayang kamu"; di hati aku ini cuma buat kamu :*
Ciyeeelaaah malah ngegembel lagi dah :v yaudah lah ya jangan ragu & konsisten kalo mau masuk informatika, inget tuh pikir bae-bae kalo engga nyesel ditengah jalan yang kagak ada gunanya. Jadi orang informatika asik loh ;)


*sumber gambar google image