Membedakan Struktur Bahasa C atau C++”", SANGAT Mudah!!!

Struktur Bahasa C atau C++

Perintah-perintah yang ada pada listing program (listing itu sama dengan sintaks) C atau C++ ditulis dengan blok-blok. Setiap blok yang ada mengerjakan tugas-tugas yang sesuai dengan tugasnya, Usahakan setiap nama fungsi sesuai dengan perintah-perintah yang ada didalamnya , jangan sampai kita mau membuat fungsi pengurangan tapi nama fungsinya penjumlahan. Pada program C atau C ++ minimal harus ada satu fungsi utama yaitu fungsi main. Fungsi main ini juga disebut fungsi induk. Kenapa induk ? karena setiap program yang ditulis pada bahasa C atau C++ harus ada fungsi ini.

Capture

Apa itu statement ? jadi dalam bahasa pemrograman, perintah-perintah yang ada pada listing program disebut juga dengan statement. Didalam fungsi main kalian bisa tidak memberi statement apapun tapi mau jadi program apa :) . Yaa , minimimal ada satu statement lah. Untuk jumlah statement yang ada,  secara teori tidak ada yang menjelaskan berapa batasan yang bisa ditulis, jadi dapat disimpulkan tidak ada batasa dalam statemen dalam listing program.
Capture1

Bagan diatas memperlihatkan strutur  tata cara penulisan fungsi main atau fungsi yang lain. Jadi hanya kebiasaan dari programmer mau jenis penulisan yang mana, tergantung tiap individu.

Kebanyakan programmer menulis fungsi main hanya untuk memanggil fungsi yang lain untuk menjalankan perintah-perintah yang ada di dalam fungsi tersebut. Selain emanggil fungsi-fungsi lain, di dalam fungsi main juga berisi statement pokok.
Jika kalian ingin menambahkan fungsi tambahan selain fungsi main bisa ditambahkan pada atas atau bawah dari fungsi main.
Capture2

Source : Algoritma dengan C, C++, dan Java by Moh. Sjukani








Fakta!! Pentingnya belajar Bahasa Pemrograman C?

Mengapa Harus Belajar Bahasa C ?
walaupun C simpel tapi jangan meremehkannya karena bahasa C ini merupakan bahasa pemrograman yang paling hebat yang pernah dibuat
Pada dunia yang serba IT ini, banyak bahasa pemrograman bermunculan lalu jarng digunakan bahkan tidak digunakan lagi. Jadi pasti ada alasan mengapa C masih ada sampai sekarang dan sampai sekarang pun hampir tidak ada bahasa yang bisa menandingi kekuatannya.
90% dari pemula programmer menganggap kalau C sudah digantikan oleh Java, C#, dan lain-lain, lalu mengapa harus belajar C. Aku tidak mengetahui mengapa mereka berpikri seperti itu tapi satu hal yang bisa aku pastikan kalau mereka tidak akan bisa mengungguli 10% programmer yang berbeda pendapat dari yang lainnya. Alasannya simpel, bagaimana mungkin gedung pencakar langit bisa berdiri jika landasannya tidak kuat.
C adalah bahasa pemrogrman yang dikembangkan oleh laboratorium AT & T's Bell di Amerika Serikat pada tahun 1972. Bahasa ini ditulis oleh pria bernama Dennis Ritchie.
Sekarang mari kita analisa  mengapa Bahasa C harus menjadi bahasa pemrogrman yang perta kali kalian pelajari :
1. Aku yakin kalau tak seoarang pun bisa mempelajari Java atau C# secara langsung. Untuk menjadi Pro di bahasa pemrograman Java atau C#, kalian wajib mempunyai konsep pemrograman yang kuat seperti polimorfisme , kelas, inheritance (turunan), dan lain-lain. Bagaimana kalian mempeljari konsep-konsep yang rumit padahal kalian masih belum paham betul elemen dasar seperti blok fungsi. C adlah bahasa yang dimulai dari awal dan mempunyai konsep dasar yang masih digunakan sampai hari ini.
2. C merupakan dasar dari C# dan C++. jauh juga saudara jauh dari C dan memiliki sintaks dan kosep programming (beberapa) dengan C. Bahasa yang aku sebutkan tadi merupakan bahasa yang kini sering digunakan di dunia dan semuanya.  Kalian ingin menguasai bahasa-bahasa yang lain, pelajari dulu C.
3. C++,  Java, dan C# memang menggunakan konsep PBO (Pemrograman Perbasis Objek) atau OOP (Object Oriented Programming) tapi tidak semua program menggunakan konsep OOP walaupun OOP merupakan hal yang luar biasa jika diimplemntasi pada suatu program. Masih ada kok program yang masih ditulis dengan C.
4. Jika membandingkan perfomna kecepatan ekskesusinya, C  tidak terkalahakan.
5. Sebagian besar bagian dari Windows, Unix, dan Linux masih ditulis dalam C. Jadi , jika kalian ingin memprogram OS itu atau ingin membuatnya sendiri, kalian perlu tahu C.
6. Driver dari device yang ada di komputer selalu ditulis dalam bahasa C. Alasannya, C membolehkan kalian untuk mengakses elemen-elemen dasar dari komputer. C memberimu akses langsung ke memori CPU kalian melalui pointer. C juga membolehkan kalian untk memanipulasi dan bermain-main dengan bits dan bytes.
7. Mobile, Smart TV, Kulkas, Microwave menjadi bagain dari kebutuhan sehari-hari kita. Kalian perlu tahu bahwa barang-barang itu mempunyai CPU didalamnya yang membutuhkan pemrograman dan software. Pemrograman dan Software yang tulis untuk barang-barang itu dinamakan program sistem embeded . Program-program itu mempunyai kecepatan eksekusi yang cepat tapi mempunyai memori yang sedilkit. Tak salah, jika C sangat ideal digunakan untuk pemrograman sistem embeded.
8. Kalian pasti pernah bermain game di laptop atau PC kalian. Bahkan sampai saat ini, game-game 3D yang sangar menggunakan C sebagai core-nya. Kenapa ? Jawabannya simpel,  siapa yang mau main game jika butuh waktu lama hanya untuk menembah peluru setelah kalian memberikan perintah dari keyboard atau mouse. Balasan dari perintah haruslah sangat cepat. Balasan dalam 1 nano detik , bisa dipastikan game-nya pasti bagus; Balasan dalam 10 nano detik gamenya pasti busuk. Bahkan sampau hari ini tak ada yang bisa menandingi C.
9. C adalah Bahasa middle level (level menengah). Ada tiga tipe bahasa pemrogramana : high level (level tinggi), middle level (level menengah), dan low level (level bawah). Bahasa high level lebih diorientasikan pada user, memberikan pengembangan program yang cepat, seperti BASIC. Bahasa low level diorientasikan pada mesin, bahasa ini memperikan eksekusi program yang lebih cepat. C adalah bahasa middle level karena C mengkombinasi kelebihan dari bahasa low level dan high level. C diorientasikan pada user dan mesin dan memberikan kemungkinan yang tak terbatas.
10. Yang terakhir adalah mengenai bahasa berstruktur blok. Simbol utama dari bahasa terkini mengunakan struktur blok. Dengan adanya blok-blok ini , maka akan mengurangi kesalahan dan hal-hal yang tidak dinginkan.
Itulah alasan mengapa kita harus mempelajari bahasa C. Pada post selanjutnya aku akan mengepost materi-materi dari bahasa C. So, keep up to date
penulis :
ilham akbar




















Algoritmas dan Bahasa pemrograman Part 1 : “Apa itu Algoritma” ?

Algoritmas dan Bahasa pemrograman
Part 1 : Apa itu Algoritma ? 
Algoritma, pada dasarnya, adalah alur pikiran dalam menyelesaikan suatu pekerjaan yang dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain. Yang ditekankan disini adalah alur pikiran. Alur pikiran seseorang dapat berbeda dengan alur pikiran orang lain untuk menyelesaikan suatu pekerjaan yang sama dengan hasil yang sama.
Dalam bentuk tertulis, maksudnya dapat berupa narasi dalam bentuk kalimat, dapat juga berbentuk gambar atau bagan, atau dalam bentuk tabel.
Dalam pembelajaran algoritma, direncanakan bahwa yang akan melaksanakan alur pertama kali adalah komputer. Komputer memang dirancang untuk dapat melaksanakan perintah yang diberikan oleh manusia. Perintah tersebut dapat dberikan dalam bentuk kumpulan instruksi-instruksi yang disebut dengan program. Program ditulis dalam bahasa yang disebut bahasa pemrograman (Programming Language) seperti Bahasa COBOL, Bahasa Basic, Bahasa Pascal, Bahasa C, Bahasa Java, dan masih banyak nama bahasa lain.  Dari sekian banyak bahasa pemrograman, penulisan instruksi dapat sama, hampir sama, sama sekali berbeda, untuk satu tujuan yang sama.
Dari uraian di atas, dapat dimengerti bila penulisan algoritma yang kita baca dari buku-buku literatur atau di internet, walaupun satu dengan yang lain bisa ada perbedaan, tapi semuanya mendekatkan diri pada tata cara penulisan suatu bahasa pemrograman yang bentuknya umum.
Setiap Algoritma harus memenuhi kriteria sebagai berikut :
  1. ada atau tidak ada data yang dimasukkan dari luar
  2. Paling tidak ada satu buah output (keluaran)
  3. Setia instruksi jelas maksudnya dan hanya mempunyai satu arti
  4. Algoritma baik secara keseluruhan maupun sub-program bila ditelusuri harus ada titik hentinya
  5. Setiap instruksi  selain jelas juga harus dapat dilaksanakan, dan juga efektif dalam arti harus menghasilkan sesuatu.Sebagai contoh X=X+100 (X ditambah nol) atau X = X * 100 (X dikalikan dengan 100 ), merupakan instruksi yang tidak efekif.
selain kriteria , algoritma juga memiliki domain , yaitu :
  1. Masalah : motivasi atau alasan untuk membuat algoritma
  2. Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan).
  3. Program: representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer.
  4. Proses : aktivitas menjalankan langkah - langkah dalam algoritma.
berikut contoh dari algoritma dan pseudo code nya ditulis seperti dibawah  seperti tabel dibawah
Algoritma
Pseudo
  • Nilai X ditambah dengan 5
  • Cetak nilai X, bila nilai tersebut lebih besar dari 5
  • dari dua buah nilai X dan Y, cetak salah satu yang terbesar
  • Kurangi dengan 2 nilai X terus menerus sampai nilainya lebih kecil atau sama dengan nol
  • X = X + 5
  • IF (A>5) THEN WRITE (X)
  • IF (A>B ) THEN WRITE (X)
                          ELSE WRITE (Y)
  • WHILE (X>0) DO
           X = X -2
END DO
Yang dimaksud dengan pseudo code adalah kode atau tanda cerita yang menyerupai atau penjelasan dari cara penyelesaian masalah. Kode, tanda , atau cerita tersebut ditulis dalam suatu bahasa yang dimengerti oleh manusia. Secara bahasa, pseudo dapat diterjemahkan menjadi : pura-pura-nya menyerupai, atau pura-puranya seperti.
Source : Algoritma dengan C, C++, dan Java by Moh. Sjukani

















CARA MEMBUAT PSEUDOCODE SHORTEST PATH

selamat pagi kali ini kita belajar dengan pseudocode. Kenapa kok kita belajar ini karena antara flowchart dan pseudocode masih lebih gampang pseudocode dalam implementasi kan alur algoritma program, itu saja sih bedanya. cara membuat nya bagaimana ? cara membuat nya itu gampang kok. :

1. bahasa yang di gunakan lebih mendekati bahasa sehari-hari manusia
2. mudah dalam penulisan tidak ada gambar-gambar seperti flowcart
3. cuma seperti nulis alur program biasa (codenya).
nah kira-kira cuma itu cara membuatnya tergantung kasus yang diselesaikan, penulis sarankan gunakan pseudocode jika anda sudah mahir flowchart TAPI TIDAK DISARANKAN JIKA BELUM PAHAM FLOWCART MENGGUNAKAN PSEUDOCODE. :t  langsung saja ini ada contoh bagaimana menulis pseudocode ini soal membuat algoritma "SHORTEST PATH" apa sih itu :D ? yaitu suatu teknik algoritma mencari jarak terpendek dan tercepat.

PSEUDOCODE SHORTEST PATH

1.       Deklarasikan n(banyak node),asal,tujuan,relasi[][],jarak[][],y[],z[],Q,S.
2.       Input n,asal tujuan.
3.       Relasi[n][n],y[n],jarak[n][n],z[n.
4.       Input realasi,jarak
5.       Y[asal]=0,z[asal]=0
6.       Selama i=1 dan i<=n
Maka apakah I != asal
Jika ya maka y[i]=M,z[i]=0
Jika tidak kembali ke 6.
7.       Selama j=1;j<=n
8.       Apakah j != asal
                Jika YA apakah relasi[asal][j]==1
                                Jika YA, y[j]=jarak[asal][j],z[j]=asal
                                                Apakah j != tujuan
                                                         Jika YA Q.enqueue(j)
                Jika TIDAK kembali ke langkah 8.

9.       Apakah !Q.empty
Jika YA id=Q.dequeue()
10.   Selama j=1;j<=n
                Apakah j!= id
                                Jika YA, apakah relasi[id][j]==1
                                                Jika YA,Apakah y[j]>(y[id]+jarak[id][j])
                                                                                Jika YA maka y[j]=y(id)+jarak[id][j]
                                                                                                Z[j]=id
                                                Apakah(j != tujuan)&&(j!= asal)
                                                                Jika YA maka Q.enqueue(j)
Jika TIDAK, kembali ke langkah 10
11.   Jika Q.enqueue(j) terpenuhi maka kembali ke langkah 9 sampai                Q.empty
12.   Jika Q.empty maka id=z[tujuan] S.push(tujuan).
13.   S.push(id)
14.   Id = z[id]
15.   Apakah id != 0
                Jika YA kembali ke langkah 13
                Jika TIDAK,apakah  !S.empty
                                Jika YA cetak S.pop + “-”
                                Jika TIDAK cetak jarak MIN+ y[tujuan]

16.  END

gimana semakin paham belum teman-teman tidak ada penulisan baku dengan pseudocode tergantung kreasi intinya yang baca paham alur program kita, beda dengan flowcart yang wajib menggunakan notasi baku dari empunya :) semoga dapat menambah pengetahuan kita semua ya ammin.. :t

ALGORITMA BEBERAPA TEKNIK SEARCHING DALAM PEMROGRAMAN KOMPUTER

-LUNTAS ILMU- selamat pagi kali ini saya akan memberikan sedikit pemahaman tentang bagaimana algoritma atau logikanya dalam melakukan searching. Teknik ini dapat di gunakan di bahasa pemrograman apapun. Karena rata-rata semua searching logikanya seperti ini dan yang membedakan hanya sintak penulisannya saja. Langsung saja di baca dan di pahami penjelasan dari saya ini.

Teknik Searching

Proses pencarian à menemukan harga/data tertentu didalam sekumpulan harga yang bertipe sama.
Dalam proses pemrograman serching/pencarian biasanya digunakan untuk
-          proses update atau penghapusan data à sebelumnya melakukan proses pencarian data.
-          Penyisipan data pada sekumpulan data, jika data sudah ada maka proses penyisipan tidak diperkenankan. Jika data tidak ada maka proses penyisipan dilakukan àtujuan digunakan agar tidak terjadi duplikasi data

1. Tehnik  Pencarian Tunggal :
·         Tehnik Sequential Search / Linier Search
·         Tehnik Binary Search


PENCARIAN SEQUENTIAL
·         Merupakan algoritma pencarian yang sangat sederhana.
·         Proses pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan dan  seluruh elemn sudah diperiksa.

13        16        14        21        76        21

Nilai yang dicari: 21
Maka elemen yang diperiksa : 13  16  14 21
Index ketemu : 4

Nilai yang dicari: 13
Maka elemen yang diperiksa : 13 
Index ketemu : 1

Nilai yang dicari: 15
Maka elemen yang diperiksa : 13  16  14 21 76 21
Index ketemu : 0

Algoritma dari proses Pencarian diatas adalah:
1.      Tentukan i=1, Ketemu = 0.
2.      Masukan Nilai X  à nilai  yang dicari.
3.      Jika Nilai[i] <> X maka   i=i+1, kembali kelangkah 2.
4.      Jika Nilai[i] = X maka Ketemu =i.
5.      Jika Ketemu = 0 maka Cetak “nilai X tidak ketemu”
6.      Jika tidak (Ketemu <>0)Cetak “nilai X ketemu pada posisi Ketemu”
7.      Selesai


Pencarian Binary Search
·         Metode pencarian yang diterapkan pada sekumpulan data yang sudah terurut (menaik maupun menurun)
·         Metode ini digunakan untuk melakukan pencarian secara cepat dengan data yang sudah terurut.


Konsep Pencarian Binary/Bagi Dua
·         Pilih Indek Kiri (Low) dan Indek Kanan (High)
·         Langkah 1:
Bagi dua elemen larik pada elemen tengah.
Elemen tengah adalah elemen dengan indek  middle=(low+high) div 2.
Elemen tengah (middle), akan membagi array menjadi 2 bagian yaitu:
ð  Bagian kiri, dengan index  LARIK[Low .. middle-1]
ð  Bagian Kanan, dengan index  LARIK[middle+1..High]
·         Langkah 2:
ð  Periksa apakah  LARIK[middle] = X ,  pencarian akan dihentikan sebab X sudah ditemukan
ð  Jika LARIK[middle] <> X, maka kita tentukan pencarian akan dilakukan disebelah kiri atau kanan.
§  Jika LARIK[middle] < X, maka pencarian dilakukan dibagian kiri LARIK
§  Jika LARIK[middle] > X, maka pencarian dilakukan di bagian kanan LARIK
·         Langkah 3:
Ulangi langkah 1 sampai dengan X ditemukan, atau low > high (menentukan ukuran larik sudah 0).


Ilustrasi Pencarian Bagi Dua.

81
76
21
18
16
13
10
7
1
2
3
4
5
6
7
8
Low






High


1.       Misalkan elemen yang dicari adalah X=18.
Langkah 1:
Low = 1 dan High = 8
Elemen tengah  Middle = (1+8) div 2 = 9 div 2 = 4

81
76
21
18
16
13
10
7
1
2
3
4
5
6
7
8
Low


Middle



High

Langkah 2:
Larik[4] = X ?  (18 = 18)  true à X ditemukan, pencarian dihentikan.

2.       Misalkan elemen yang dicari adalah X=16.
ITERASI 1
Langkah 1:
Low = 1 dan High = 8
Elemen tengah  Middle = (1+8) div 2 = 9 div 2 = 4
81
76
21
18
16
13
10
7
1
2
3
4
5
6
7
8
Low


Middle



High
kiri

kanan

Langkah 2:
Larik[4] = X ?  (18 = 16)  FALSE, sehingga diputuskan pencarian di kiri atau dikanan.
Jika  Larik[4] > 16 ?, (18 > 16)  TRUE, lakukan pencarian disebelah kanan dengan Low = middle+1 à 4+1 = 5   dan High = 8, Tetap.

16
13
10
7
5
6
7
8
low


High

ITERASI 2
Langkah 1:
Low = 5  dan High=8
Elemen tengah  Middle = (5+8) div 2 = 13 div 2 = 6
16
13
10
7
5
6
7
8
low
middle

High
Langkah 2:
Larik[6] = X ?  (13 = 16)  FALSE, sehingga diputuskan pencarian di kiri atau dikanan.
Jika  Larik[6] > 16 ?, (13 > 16)  FALSE, lakukan pencarian disebelah KIRI dengan Low = 5 (TETAP)  dan High = middle-1 = 5

16
5
Low/high

ITERASI 3
Langkah 1:
Low = 5  dan High=5
Elemen tengah  Middle = (5+5) div 2 = 10 div 2 = 5
16
5
middle

Langkah 2:
Larik[5] = X ?  (16 = 16)  TRUE  (X ditemukan , pencarian dihentikan)


3.       Misalkan elemen yang dicari X=100.
Gambarkan langkah-langkah penyelesaiannya?


Dari ilustrasi diatas dapat dibuat algoritma sebagai berikut:
(dengan data urut menurun/ descending)

1.       Masukan Bil yang dicari X
2.       tentukan low=1 dan high = N
3.       Tentukan nilai tengah : middle = (low + high) div 2
4.       Cek, jika LARIK[middle] = X maka  Nilai X yang dicari ditemukan,  kelangkah 8
5.       jika LARIK[middle] > X  maka low=middle+1, kelangkah 7
6.       jika LARIK[middle] < X  maka high=middle-1, kelangkah 7
7.       Jika low > high, “bil X tidak ditemukan” dan kelangkah 8, jika tidak kelangkah    3.
8.       selesai.


Tugas :
1.       buatlah algoritma binary search untuk data yang urut menaik / ascending. Dari algoritma diatas
2.       buatlah flowchartnya.



ALGORITMA bentuk lain (ada pada slide) à untuk data urut menaik/ascending
1. Low = 1 , High = N
2. Ketika Low <= High Maka kerjakan langkah No .3, 
    Jika tidak Maka kerjakan langkah No.7
3. Tentukan index tengah dengan rumus
    Middle= ( Low + High ) Div 2
4. Jika X < LARIK[middle] /Nil. Tengah Maka High = Mid –1
5. Jika X > LARIK[middle] /Nil. Tengah Maka Low = Mid +1
6. Jika X = LARIK[middle] /Nil. Tengah Maka Nil. Tengah = Nil. Yg  dicari
7. Jika X > High Maka Pencarian GAGAL


2. Tehnik Pencarian Nilai MAXMIN :
ð  Tehnik StaritMAXMIN
ð  Tehnik D and C

Teknik yangt digunakan untuk mencari nilai maksimum dan minimum dari sekumpulan  nilai.

  1. Tehnik Pencarian MAXMIN
Searching dengan Tehnik STRAITMAXMIN

Waktu tempuh yang digunakan untuk menyelesaikan pencarian hinggan mendapatkan solusi yang optimal  terbagi atas :
a.  Best Case
b. Average Case
c.  worst Case


Algoritma dari  Proses Pencarian adalah (ada pada slide):
1.       Masukan N, tentukan  i=1.
2.       Tentukan max dan min = A[i]
3.       i = 2
4.       Jika i<= N maka kelangkah 5, jika tidak kelangkah 8
5.       jika A[i] > max   maka   max=A[i] dan kelangkah 7
6.       jika tidak maka   (jika A[i] < min  maka   min   = A[i].
7.       i = i+1, ulangi langkah 4.
8.       cetak  max dan min

program straitmaxmin;
var
  i,N:integer;
  max,min : integer;
  A : array[1..10] of integer;
begin
   write('masukan N = ');  readln(N);
   for i:=1 to N do
     readln(A[i]);

   max := A[1]; min := A[1];

   for i:=2 to N do
    if A[i] > max then max:=A[i]
    else if A[i] < min then min := A[i];

   writeln;
   writeln('nilai max min= ',max:3, min:3);
end.
masukan N = 5
2
5
1
6
4

nilai max min =   6  1
-----------------
masukan N = 6
7
5
3
9
6
2

nilai max min =   9  2
Searching  dengan  teknik D and C. untuk kode program search anda bisa meluncur ke sini