Minggu, 14 Agustus 2016

Fungsi Standar dalam Pernyataan SQL


Fungsi-fungsi dalam Pernyataan SQL.

Setiap bahasa pemrograman biasanya memiliki fungsi-fungsi yang memudahkan pengguna-nya, tidak terkecuali SQL. Beberapa fungsi yang tertulis dalam artikel ini merupakan fungsi standar dari bahasa pemrograman SQL.
1. Concatenation
Syntax:
value1 || value2
Digunakan untuk menggabungkan dua nilai karakter (nilai kolom, literal, parameter, atau nilai hasil perhitungan) menjadi data bertipe string. Pernyataan berikut ini mengkombinasikan nilai-nilai kolom dengan karakter literal.
SELECT
  LastName || ", " || FirstName
FROM Names
Fungsi ini tidak dapat digunakan dengan kolom bertipe Memo atau Blob.
2. LOWER
Syntax:
LOWER(column_reference)
Mengkonversi semua nilai karakter (nilai kolom, literal, parameter, atau nilai hasil perhitungan) menjadi huruf kecil. Database seperti SQL Server memakai pernyataan LOWERCASE. Pernyataan SELECT berikut mengubah nilai-nilai dalam kolom Name menjadi huruf kecil.
SELECT
  LOWER(Name)
FROM Country
Perubahan nilai akibat fungsi ini tidak akan disimpan jika diberlakukan dalam pernyataan SELECT. Jika dinyatakan sebagai nilai kondisi (update_atom) dalam pernyataan UPDATE, perubahan nilai tersebut akan disimpan. Fungsi LOWER hanya dapat digunakan dengan kolom bertipe karakter atau literal dan tidak dapat digunakan untuk kolom bertipe Memo dan Blob.
3. UPPER
Syntax:
UPPER(column_reference)
Merupakan kebalikan dari fungsi LOWER, yaitu mengkonversi semua nilai karakter (nilai kolom, literal, parameter, atau nilai hasil perhitungan) menjadi huruf kapital. Sebagai contoh, pernyataan berikut akan menyaring data berdasarkan nilai kolom Name yang dikonversi ke dalam huruf kapital yang diawali karakter PE (nilai lateral).
SELECT
  Name,
  Capital,
  Continent
FROM Country
WHERE UPPER(Name) LIKE UPPER("Pe%")
Sama seperti fungsi LOWER, perubahan nilai akibat fungsi ini tidak akan disimpan jika diakukan dalam pernyataan SELECT. Jika dinyatakan sebagai nilai kondisi dalam pernyataan UPDATE, perubahan nilai tersebut akan disimpan.
4. SUBSTRING
Syntax:
SUBSTRING(column_reference FROM start_index [FOR length]
Mengutip substring dari nilai karakter (nilai kolom, literal, parameter, atau nilai hasil perhitungan) yang dinyatakan dalam kolom yang dimaksud (colom_reference dalamsyntax di atas). Klausa FROM adalah posisi karakter untuk memulai pengutipan substring. Karakter pertama nilai sumber diberi indeks 1 (satu). Dan kata kunci FOR menyatakan banyaknya substring yang ingin dikutip. Jika kata kunci FOR tidak dideklarasikan maka substring dimulai dari posisi yang dinyatakan oleh kata kunci FROM sampai akhir string. Contoh berikut mengutip tiga huruf dimulai dari huruf kedua, hasilnya adalah “BCD” jika nilai asalnya adalah “ABCDE” dan dimasukkan dalam kolom lietral bernama Sub
SELECT
  SUBSTRING("ABCDE" FROM 2 FOR 3) AS Sub
FROM Country
Dan pernyataan SELECT berikut hanya akan menampilkan huruf kedua dan seterusnya dari kolom Name, artinya nilai “Belgium” dalam kolom tersebut akan ditampilkan sebagai “elgium”.
SELECT
  SUBSTRING(Name FROM 2)
FROM Country
Perubahan nilai akibat fungsi ini tidak akan disimpan jika diberlakukan dalam pernyataan SELECT. Jika dinyatakan sebagai nilai kondisi (update_atom) dalam pernyataan UPDATE, perubahan nilai tersebut akan disimpan. Fungsi SUBSTRING hanya dapat digunakan dengan kolom bertipe karakter atau literal dan tidak dapat digunakan untuk kolom bertipe Memo dan Blob.
5. TRIM
Syntax :
TRIM([LEADING|TRAILING|BOTH] [trimmed_char] FROM column_reference)
Untuk menghapus karakter pertama, terakhir atau kedua-duanya (pertama dan terkahir) dari nilai karakter (nilai kolom, literal, parameter, atau nilai hasil perhitungan). Berkut ini deskripsi parameter yang ada dalam fungsi TRIM :
ParameterDeskripsi
LEADINGMenghapus karakter terakhir sisi kiri string
TRAILINGMenghapus karakter terakhir sisi kanan string
BOTHMenghapus karakter terakhir kedua sisi string
Case-sensitivity (huruf besar/kecil mempunyai nilai berbeda) berlaku dalam pernyataan parameter tersebut. FROM merupakan nilai karakter sumber yang akan dihapus. Tabel berikut menunjukkan hasil dari variasi deklarasi fungsi TRIM.
TRIM syntaxHasil
TRIM(LEADING “_” FROM “_ABC_”)“ABC_”
TRIM(TRAILING “_” FROM “_ABC_”)“_ABC”
TRIM(BOTH “_” FROM “_ABC_”)“ABC”
TRIM(BOTH “A” FROM “ABC”)“BC”
Perubahan nilai akibat fungsi ini tidak akan disimpan jika diberlakukan dalam pernyataan SELECT. Jika dinyatakan sebagai nilai kondisi (update_atom) dalam pernyataan UPDATE, perubahan nilai tersebut akan disimpan. Fungsi TRIM hanya dapat digunakan dengan kolom bertipe karakter atau literal dan tidak dapat digunakan untuk kolom bertipe Memo dan Blob.
6. AVG
Syntax:
AVG([ALL] column_reference | DISTINCT column_reference)
Menghitung rerata dari nilai numerik (nilai kolom, literal, parameter, atau nilai hasil perhitungan). Nilai 0 (nol) dalam suatu kolom tetap diperhitungkan, sedangkan jika tidak ada nilai (kosong bukan nol) maka fungsi AVG akan mengabaikannya. Kombinasi nilai kolom dan suatu konstanta dapat digunakan dalam fungsi AVG.
SELECT
  AVG(ItemsTotal),
  AVG(ItemsTotal * 0.0825) AS AverageTax
FROM Orders
ALL untuk mendapatkan nilai rerata semua record sedang DISTINCT akan mengabaikan nilai yang sama suatu kolom pada saat perhitungan nilai rerata. Jika kata kunci DISTINCT tidak dinyatakan, ALL adalah kata kunci default. Jika memakai klausa GROUP BY, fungsi AVG akan menghitung satu nilai untuk tiap kelompok. Nilai tersebut merupakan pengumpulan kolom untuk semua baris pada tiap kelompok. Pernyataan berikut mengelompokkan nilai rerata kolom ItemsTotal dari tabel Orders, menghasilkan subtotal untuk tiap perusahaan dalam tabel Company.
SELECT
  C."Company",
  AVG(O."ItemsTotal") AS Average
FROM "Customer.db" C, "Orders.db" O
WHERE (C."CustNo" = O."CustNo")
GROUP BY C."Company"
ORDER BY C."Company"
Fungsi AVG hanya beroperasi pad nilai numerik. Untuk nilai non-numerik, sebelum menggunakan fungsi ini, gunakan fungsi CAST untuk mengkonversi kolom menjadi bertipe numerik. Dan fungsi ini tidak dapat digunakan dengan kolom betipe Memo dan Blob.
7. COUNT
Syntax:
COUNT(* | [ALL] column_reference | DISTINCT column_reference)
Untuk menghitung banyaknya record yang ditampilkan oleh pernyataan SELECT (tunggal atau multi query). Jika menambahkan klausa WHERE, fungsi COUNT menampilkan banyaknya record yang tersaring.
SELECT COUNT(*)
FROM "Clients.dbf"
WHERE State = "CA"
8. MAX
Syntax:
MAX([ALL] column_reference | DISTINCT column_reference)
Menghitung nilai terbesar dari nilai (nilai kolom, literal, parameter, atau nilai hasil perhitungan) yang menggunakan dataset. Dataset dapat berupa tabel, suatu dataset yang disaring, atau kelompok logika yang dihasilkan oleh klausa GROUP BY. Fungsi MAX memberikan nilai kosong untuk kolom yang bernilai kosong (bukan nol). ALL untuk mendapatkan nilai tertinggi semua baris sedang DISTINCT akan mengabaikan nilai yang sama suatu kolom pada saat menghitung nilai tertinggi. Jika kata kunci DISTINCT tidak dinyatakan, ALL adalah kata kunci default. Kombinasi nilai kolom dan suatu konstanta dapat digunakan dalam fungsi MAX.
SELECT
  MAX(ItemsTotal),
  MAX(ItemsTotal * 0.0825) AS HighestTax
FROM Orders
Jika menggunakan kolom bertipe numerik, nilai yang dihasilkan bertipe sama dengan tipe kolom tersebut (seperti Integer atau Float) . Fungsi MAX tidak dapat digunakan dengan kolom bertipe Memo atau Blob.
SELECT
  C."Company",
  MAX(O."ItemsTotal") AS Biggest
FROM "Customer.db" C, "Orders.db" O
WHERE (C."CustNo" = O."CustNo")
GROUP BY C."Company"
ORDER BY C."Company"
9. MIN
Syntax:
MIN([ALL] column_reference | DISTINCT column_reference)
Fungsi MIN merupakan kebalikan dari fungsi MAX yaitu menghitung nilai terkecil dari nilai (nilai kolom, literal, parameter, atau nilai hasil perhitungan) yang menggunakan dataset. Deskripsi lainnya hampir sama dengan fungsi MAX.
SELECT
  MIN(ItemsTotal)
FROM Orders
10. SUM
Syntax:
SUM([ALL] column_reference | DISTINCT column_reference)
Menghitung total dari nilai (nilai kolom, literal, parameter, atau nilai hasil perhitungan) yang menggunakan dataset. Deskripsi lainnya hampir sama dengan fungsi MAX. Contoh penulisan syntax-nya adalah :
SELECT
  SUM(Salary + (Sarary * 0.1))
FROM "Employee.db"
11. CAST
Syntax:
CAST(column_reference AS data_type)
Mengkonversi kolom tertentu dalam tipe data tertentu. CAST dapat diterapkan juga untuk nilai literal dan nilai hasil perhitungan. Fungsi ini dapat digunakan dalam daftar kolom pernyataan SELECT, predikat untuk klausa WHERE dan modifikasi nilai dalam pernyataan UPDATE. Parameter data_tipe yang dapat digunakan adalah Char, Integer, Numeric dan seterusnya, sedangkan yang tidak dapat dipakai adalah Blob, Memo dan Byte. Pernyataan berikut mengkonversi nilai kolom bertipe TimeStamp ke tipe Date
SELECT
  CAST(SaleDate AS DATE)
FROM ORDERS
Kombinasi fungsi CAST dengan fungsi yang lain dapat digunakan selama tipe datanya sesuai, seperti contoh berikut.
SELECT
  SaleDate,
  SUBSTRING(CAST(CAST(SaleDate AS DATE) AS CHAR(10)) FROM 1 FOR 1)
FROM Orders
Perubahan nilai akibat fungsi ini tidak akan disimpan jika diberlakukan dalam pernyataan SELECT. Jika dinyatakan sebagai nilai kondisi (update_atom) dalam pernyataan UPDATE, perubahan nilai tersebut akan disimpan.
12. EXTRACT
Syntax:
EXTRACT(extract_field FROM column_reference)
Untuk mendapatkan kolom tahun, bulan dan hari dari kolom bertipe Date atau TimeStamp. Jika kolom yang dideklarasikan tidak mempunyai nilai maka hasilnya adalah kosong (bukan nol). Jika nilainya tidak kosong, fungsi EXTRACT akan menyatakan nilai elemen tanggal tertentu sebagai data bertipe SmallInt. Parameterextract_fields yang diperbolehkan adalah : YEAR, MONTH, DAY, HOUR, MINUTE, atau SECOND. Parameter YEAR, MONTH, dan DAY hanya digunakan dengan kolom bertipe Date dan TimeStamp. Sedangkan parameter HOUR, MINUTE, dan SECOND hanya digunakan dengan kolom bertipe TimeStamp dan Time.
SELECT
  SaleDate,
  EXTRACT(YEAR FROM saledate) AS YY,
  EXTRACT(MONTH FROM saledate) AS MM,
  EXTRACT(DAY FROM saledate) AS DD
FROM Orders
Pernyataan berikut menggunakan kolom DOB (berisi tanggal lahir) yang menyaring record dimana tanggal lahirnya adalah bulan MEI (dinyatakan dengan angka 5).
SELECT
  DOB,
  LastName,
  FirstName
FROM People
WHERE (EXTRACT(MONTH FROM DOB) = 5)
Fungsi EXTRACT hanya beroperasi pada data bertipe Date, Time dan TimeStamp. Gunakan fungsi CAST untuk mengkonversi tipe data menjadi data bertipe waktu.

Database : ERD, DDL, DML

  1. DDL (Data Definition Language)
DDL (Data Definition Language) adalah bahasa basis data yang digunakan untuk mendefinisikan, mengubah, dan menghapus basis data serta objek-objek yang diperlukan, seperti table, view, user, index dan sebagainya. DDL biasa digunakan oleh Data Base Administrator (DBA) dalam pembuatan sebuah aplikasi basis data.
Secara umum, DDL yang digunakan meliputi perintah sebagai berikut:
 CREATE; digunakan untuk membuat objek yang baru. Di MySQL, beberapa perintah create adalah sebagai berikut :
  • CREATE DATABASE,
  • CREATE TABLE,
  • CREATE FUNCTION,
  • CREATE INDEX,
  • CREATE PROCEDURE,
  • CREATE VIEW
 ALTER; digunakan untuk mengubah objek yang sudah ada. Berikut merupakan contoh perintah Alter yang ada di MySQL :
  • ALTER TABLE,
  • ALTER DATABASE,
  • ALTER FUNCTION,
  • ALTER PROCEDURE,
  • ALTER VIEW,
  • RENAME TABLE
 DROP; digunakan untuk menghapus objek yang sudah ada. Beberapa yang digunakan di MySQL di antaranya :
  • DROP DATABASE,
  • DROP FUNCTION,
  • DROP PROCEDURE,
  • DROP TABLE,
  • DROP VIEW,
  • DROP INDEX.
TIPE DATA PADA MYSQL
Adapun tipe data yang digunakan pada MySQL adalah sebagai berikut :
1 23

ERD (ENTITY RELATIONSHIP DIAGRAM)
ER-D adalah suatu cara memodelkan suatu data di tingkat konseptual dalam perancangan basis data. Model ini juga merupakan alat modelling data yang populer dan banyak digunakan oleh para desainer basis data. ER-D ini hadir untuk menyajikan dan menjadikan data mudah dimengerti dalam rangka mempermudah perancangan dan pengaksesan basis data.
Komponen ERD :
  1. Entitas
Entitas adalah suatu objek yang dapat dibedakan dengan objek lainnya di dalam dunia nyata. Contohnya : mahasiswa, siswa, guru, meja, dll. Entitas di dalam ER-D direpresentasikan oleh bangun datar persegi panjang.
14
  1. Atribut
Atribut merupakan karakteristik dari entity atau relationship yang menyediakan penjelasan detailtentang entity atau relationship tersebut. Atribut di dalam ER-D direpresentasikan dalam bentuk bangun datar oval. Adapun beberapa contoh atribut adalah sebagai berikut: nomor_induk_siswa, nama, alamat, dan seterusnya.
15
  1. Relasi
Relasi dikenal sebagai hubungan yang terjadi antara satu atau lebih entitas. Relasi pada ER-D direpresentasikan dalam bentuk bangun datar belah ketupat. Adapun beberapa contoh relasi adalah sebagai berikut: mengontrak, transaksi, dan mengepalai.
16
  1. Kardinalitas
Kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Adapun kardinalitas yang terjadi diantara dua himpunan entitas adalah sebagai berikut:
  1. One to One
17  2.  One to Many atau Many to One
183.   Many to Many
19
Jika suatu entitas berelasi dengan entitas lain dan memiliki kardinalitas many to many, relasi tersebut menjadi entitas baru yang memiliki atribut seperti entitas biasa. Bagaimana bentuknya bila ditransformasikan ke dalam tabel?
  1. Pertama, kita buat tabel entitas yang saling berelasi. Pada contoh, entitas yang dimaksud tersebut adalah entitas dosen dan entitas mahasiswa.
20
  1. Kemudian kita buat tabel entitas untuk relasinya sendiri, yaitu relasi mengajar.
21
Nah, dari screenshot di atas, si entitas mengajar ini jika ditransformasikan ke dalam tabel harus ditambahkan foreign key (atribut yang merupakan primary key dari entitas lain), yang menunjukkan bahwa tabel mengajar ini berhubungan dengan tabel mahasiswa dan tabel dosen.

Data Manipulation Language (DML) adalah bahasa/perintah SQL yang berfungsi untuk memanipulasi data yang ada di dalam basis data(database), dan digunakan untuk mengambil, memasukkan, memodifikasi, bahkan menghapus informasi/isi yang ada didalam database tersebut. Beberapa manfaat atau kegunaan dari DML diantaranya adalah sebagai berikut :
  1. Pengambilan informasi yang disimpan dalam basis data (Select)
  2. Penyisipan informasi baru ke basis data (Insert)
  3. Penghapusan informasi dari basis data (Delete)
  4. Modifikasi informasi yang disimpan dalam basis data (Update)


Rabu, 11 November 2015

sejarahnya algoritma.

mmm.. sekarang lanjut ke sejarahnya yaa..

definisi Etimologinya..
Kata "Algoritma", atau "Algorisma" pada versi penulisan lain, datang dari nama al-Khwarizmi. dieja dalam Arab klasik sebagai Al-Khwarithmi. Al-khwarizmi (bahasa Persiaخوارزمي, 780-850) adalah matematikawanahli astronomiahli geografi dariPersia dan sarjana House of Wisdom di Baghdad, yang arti namanya "penduduk asli Khwarezm", sebuah kota yang merupakan bagian dari Wilayah Iran pada masanya dan sekarang Uzbekistan[11] [12] Sekitar tahun 825, dia menulis risalah dalam bahasa Arab, yang diterjemahkan dalam Latin pada abad ke-12 dengan judul Algoritmi de numero Indorum. Judul ini artinya "Algoritmi pada bilangan India", dimana "Algoritmi" adalah pelatinan penerjemah dari nama Al-Khwarizmi. [61] Al-Khwarizmi dulunya adalah matematikawan yang paling banyak dibaca di Eropa pada akhir Abad Pertengahan, pada umum lewat bukunya yang lain, Aljabar[62] Pada akhir abad pertengahan, algorismus, perubahan dari namanya, berarti "sistem bilangan desimal" yang masih merupakan arti dari kata Inggris moderen algorism. Pada abad ke-17 Prancis kata tersebut berubah, tapi tidak maknanya, menjadi algorithme. Inggris mengadopsi Prancis setelahnya, tapi tidak pada akhir abad ke-19 lah "Algorithm" mengambil makna dari kata Inggris masa sekarang. [63]
Etimologi alternatif mengklaim asal mulanya dari istilah algebra (aljabar) dari makna abad pertengahan "aritmatika Arab" danarithmos istilah Yunani untuk angka (yang secara harfiah berarti "bilangan Arab" atau "perhitungan Arab"). Karya algoritma Al-Kharizmi bukan berbentuk seperti pada masa modern sekarang tapi sebagai tipe dari pengulangan kalkulus (disini disebutkan bahwa karya fundamentalnya yang dikenal sebagai algebra pada awalnya berjudul "Buku Ringkasan tentang Kalkulasi dengan Penyempurnaan dan Pengimbangan" menjelaskan tipe-tipe dari pengulangan perhitungan dan persamaan kuadrat). Dalam makna tersebut, algoritima dikenal di Eropa jauh sebelum Al-Kharizmi. Algoritma paling tua yang dikenal sekarang adalahAlgoritma Euklid (lihat juga Pengembangan algoritma Euklid). Sebelum ditemukan istilah algorithm orang Yunani menyebutnyaanthyphairesis secara harfiah berarti anti-substraksi atau substraksi timbal-balik (untuk bacaan lebih lanjut disini dan ini. Algoritma dikenal oleh orang Yunani berabad sebelum [64] Euclid. Bukannya kata algebra orang Yunani menggunakan istilaharithmetica(ἀριθμητική, yaitu dalam karya Diophantus yang dikenal "bapak dari Aljabar" - lihat juga artikel Wikipediapersamaan Diophantine dan Eudoxos).
Sejarahnya..
Kata algoritma datang dari nama matematikawan Persia abad ke-9 Abu Abdullah Muhammad ibnu Musa Al-Khwarizmi, yang hasil kerjanya dibangun dari matematikawan India abad ke-7 Brahmagupta. Kata algorisma awalnya mengacu hanya pada aturan-aturan dalam melakukan aritmatika menggunakan bilangan Hindu-Arab namun berkembang lewat penerjemahan Latin Eropa dari nama Al-Khwarizmi menjadi algoritma pada abad ke-18. Penggunaan kata tersebut berkembang mengikutkan semua prosedur untuk menyelesaikan masalah atau melakukan unit kegiatan.
setelah 1950,
Sejumlah usaha telah diarahkan untuk memperbaiki lebih lanjut definisi dari "algoritma", dan aktivitas tersebut masih terus berjalan karena isu-isu yang mengelilinginya, terutama, fondasi matematika (khususnya tesis Church-Turing) dan filsafat pikiran (khususnya argumen menyangkut kecerdasan buatan).

TAHAP PROSES UJI ALGORITMA

  1. Fase Debugging

    Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya.
  2. Fase profiling

    Fase yang akan bekerja jika program tersebut sudah benar.


Pengertian LOGIKA

Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.


BEDA ALGORITMA DAN PROGRAM

Program adalah kompulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan diantaranya:
  1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang mengeksekusinya.
  2. Notasi algoritmik dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu dalam membuat algoritma diperhatikan:
  1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti pada notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  3. Tiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini karena teks algoritma tidak sama dengan teks program. Namun supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau Program = Struktur Data + Algoritma diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalankannya.
  5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.

Ada beberapa hal yang harus diperhatikan ketika translasi tersebut yaitu:
  1. Pendeklarasian variabel.

    Apakah bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel karena tidak semua bahasa pemrograman membutuhkannya.
  2. Pemilihan tipe data.

    Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu dipertimbangkan pada saat pemilihan tipe data.
  3. Pemakaian instruksi-instruksi.

    Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
  4. Aturan sintaks.

    Pada saat menulis program kita terikat dengan aturan sintaks dari bahasa pemrograman yang akan digunakan.
  5. Tampilan hasil.

    Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini kita perhatikan ketika mengkonversikannya menjadi program.
  6. Cara pengoperasian compiler atau interpreter.

    Bahasa pemrograman yang digunakan termasuk kelompok compiler atau interpreter.

PENYAJIAN ALGORITMA

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya. Pseudocode ditulis berbasis pada bahasa pemrograman tertentu misalnya Pascal, C atau Python, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Pseudocode lebih rinci daripada struktur bahasa Inggris, misalnya dalam menyatakan sintaks, tipe data yang digunakan dan lain-lain. Sedangkan algoritma yang disajikan dengan gambar, misalnya dengan flowchart. Flowchart bukan satu-satunya cara untuk menjelaskan atau menerangkan algoritma.

TAHAP-TAHAP PEMROGRAMAN

Sebelumnya perlu dipahami tiga pengertian pokok yakni program, bahasa pemrograman dan pemrograman. Program adalah kata, ekspresi, pernyataan yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh komputer. Bahasa pemrograman adalah prosedur atau tata cara penulisan program. Sedangkan pemrograman adalah proses
mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
Pemrograman meliputi dua tahapan yaitu:
  1. Fase Problem Solving
  2. Fase Implementasi

yap! definisi algoritma

Hallo..
bagi kalian yang kuliah dan ambil jurusan Informatika, pasti pernah belajar algoritma dong yaaa..
oke, sedikit aja saya share disini tentang 'algoritma'.

dikit lho.. ngga' banyak. hehehe..

ini Definisi nya.
Definisi informalnya bisa berarti "sekumpulan aturan yang secara tepat menentukan seurutan operasi". [13] yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik. Secara umum, sebuah program hanyalah sebuah algoritma jika ia akan berhenti nantinya. [14]
Sebuah contoh prototipikal dari suatu algoritma adalah algoritma Euclid untuk menentukan bilangan pembagi terbesar dari dua integer; sebagai contohnya (ada contoh yang lain) dijelaskan dengan diagram alur di atas dan sebagai contoh di bagian lanjut.
Boolos & Jeffrey (1974, 1999) memberikan sebuah makna informal dari kata algoritma dalam persamaan berikut:
Tidak ada manusia yang dapat menulis begitu cepat, atau begitu lama, atau begitu kecil ("kecil, dan lebih kecil tanpa batas ... anda mungkin mencoba menulis di atas molekul, atom, elektron") untuk mencatat semua anggota dari kumpulan bilangan tak terbatas dengan menuliskan namanya, bergantian, dalam suatu notasi. Tapi manusia bisa melakukan sesuatu yang sama bergunanya, pada kasus kumpulan bilangan tak terbatas: Mereka dapat memberikan instruksi jelas untuk menentukan anggota ke-n dari set, untuk n terbatas acak. Instruksi tersebut diberikan secara eksplisit, dalam bentuk yang dapat diikuti oleh mesin penghitung, atau oleh manusia yang mampu melakukan hanya operasi-operasi dasar dengan simbol-simbol. [15]
Suatu "bilangan tak-terbatas" adalah bilangan yang elemen-elemenya bisa berkorespondensi satu-ke-satu dengan integer. Maka, Boolos dan Jeffrey mengatakan bahwa sebuah algoritma berarti instruksi bagi sebuah proses yang "membuat" keluaran integer dari sebuah "masukan" acak integer yang, secara teori, bisa sangat besar. Maka sebuah algoritma dapat berupa persamaan aljabar seperti y = m + n -- dua variabel masukan m dan n yang menghasikan keluaran y. Tapi berbagai penulis yang mencoba mendefinisikan persamaan tersebut mengatakan bahwa kata algoritma mengandung lebih dari itu, sesuatu yang kurang lebih (untuk contoh penjumlahan):
Instruksi rinci dan tepat (dalam bahasa yang dipahami oleh "komputer") [16] untuk proses yang cepat, efisien, "baik" [17]yang menentukan "pergerakan" dari "komputer" (mesin atau manusia, dibekali dengan informasi dan kemampuan internal yang dibutuhkan) [18] untuk menemukan, dekode, dan kemudian mengolah masukan integer/simbol m dan n, simbol + dan= ... dan "secara efektif" [19] menghasilkan, dalam waktu yang "masuk akal", [20] keluaran integer y pada tempat dan format tertentu.
Konsep dari algoritma juga digunakan untuk mendefinisikan notasi dari desidabilitas. Notasi tersebut adalah pusat untuk menjelaskan bagaimana sistem formal berasal dari sejumlah kecil aksioma dan aturan. Dalam logika, waktu dari sebuah algoritma untuk selesai tidak dapat dihitung, karena tidak berelasi dengan dimensi fisik kita. Dari ketidakpastian tersebut, yang mengkarakteristikan pekerjaan yang sedang berjalan, timbulah ketidak-tersediannya definisi algoritma yang sesuai dengan konkrit (pada tingkat tertentu) dan penggunaan secara abstrak dari istilah tersebut.

lalu Penggambarannya..
Algoritma dapat digambarkan dengan banyak notasi, termasuk bahasa alamiahpseudokodediagram alurbagan drakon,bahasa pemrograman atau tabel kontrol (diproses oleh penerjemah). Ekspresi bahasa alamiah terhadap algoritma condong lebih banyak dan rancu, dan jarang digunakan untuk algoritma yang kompleks dan teknis. Pseudokode, diagram alur, bagan drakon, dan tabel kontrol adalah cara yang terstruktur untuk menggambarkan algoritma yang mencegah banyaknya kerancuan pada pernyataan-pernyataan bahasa alamiah. Bahasa pemrograman ditujukan untuk mengekspresikan algoritma dalam sebuah bentuk yang dapat dieksekusi oleh komputer, tapi sering kali digunakan sebagai suatu cara untuk menentukan atau mendokumentasikan algoritma.
Ada banyak macam kemungkinan representasi dan seseorang dapat mengekspresikan sebuah program mesin Turingsebagai urutan dari tabel-tabel mesin (lihat lebih lanjut di mesin kondisi-terbatastabel transisi kondisi dan tabel kontrol), sebagai diagram alur dan bagan drakon (lihat lebih lanjut di diagram kondisi), atau sebagai bentuk kode mesin atau kode assembly dasar yang dikenal "kumpulan lipat empat" (lihat lebih lanjut di mesin Turing).
Representasi dari algoritma dapat dikelompokan ke dalam tiga tingkatan dari deskripsi mesin Turing: [23]
1 Deskripsi tingkat-tinggi
"... ditujukan untuk menjelaskan algoritma, menghiraukan rincian implementasi. Pada tingkat ini kita tidak perlu menyebutkan bagaimana mesin mengatur perangkat pita atau kepala pita rekam."
2 Deskripsi implementasi
"... digunakan untuk menjelaskan cara mesin Turing menggunakan kepalanya dan cara menyimpan data. Pada tingkat ini kita tidak memberikan secara rinci kondisi atau fungsi transisi."
3 Deskripsi formal
Lebih rinci, "tingkat paling rendah", menjelaskan "tabel kondisi" dari mesin Turing.
Sebagai contoh dari algoritma sederhana "Penjumlahan m+n" dijelaskan dalam tiga tingkatan tersebut lihat contoh algoritma.

Animasi dari algoritma quicksortmengurutkan larik dari nilai acak. Batang merah menandakan elemen pivot; pada awal animasi, elemen paling kanan dipilih sebagai pivot.
Salah satu dari algoritma sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut). Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tapi hanya sekali. Dari hal ini munculah algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Deskripsi tingkat-tinggi:
  1. Jika tidak ada angka dalam deret makan tidak ada bilangan terbesar.
  2. Asumsikan item pertama dalam deret adalah yang terbesar.
  3. Untuk setiap sisa angka dalam deret, jika angka tersebut besar dari angka terbesar sekarang, anggap angka tersebut menjadi yang terbesar dalam deret.
  4. Bila tidak ada lagi angka yang tersisa pada deret untuk diperiksa, anggap angka terbesar sekarang menjadi angka yang terbesar dalam deret.
Deskripsi (Quasi-)formal: Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin:
Algoritma LargestNumber
  Masukan: Deret angka L.
  Keluaran: Angka terbesar dalam daftar L.
  terbesarLnull
  untuk setiap item dalam L, lakukan
    jika item > terbesar, maka
      terbesaritem
  kembalikan terbesar
  • "←" adalah singkatan untuk "diubah menjadi". Misalnya, "terbesar ← item" artinya nilai dari terbesar diubah menjadi nilai dari item.
  • "kembalikan" mengakhiri algoritma dan mengeluarkan nilai kembalian.

selanjutnya Menganalisis algoritma..
Sangat penting untuk mengetahui berapa banyak sumber tertentu (seperti waktu dan tempat penyimpanan) secara teoritis diperlukan untuk sebuah algoritma. Metode-metode telah dikembangkan untuk analisis algoritma untuk mendapatkan jawaban kuantitatif (estimasi); sebagai contohnya, algoritma pengurutan di atas memerlukan waktu O(n), menggunakan notasi O besardengan n sebagai panjang deret (yang akan diurut). Setiap saat algoritma hanya perlu mengingat dua nilai: nilai terbesar yang ditemukan, dan posisinya sekarang dideretan input. Oleh karena itu dikatakan memiliki kebutuhan ruang O(1), jika ruang yang dibutuhkan untuk menyimpan angka masukan tidak dihitung, atau O(n) jika dihitung.
Algoritma berbeda mungkin menyelesaikan pekerjaan yang sama dengan kumpulan instruksi yang berbeda dengan waktu, ruang, atau 'usaha' lebih sedikit atau banyak dari yang lain. Sebagai contohnya, algoritma pencairan binari biasanya mengungguli pencarian berderet secara paksa bila digunakan untuk tabel pencarian pada deret terurut.

Mengklasifikasi algoritma..
Salah satu cara mengklasifikasikan algoritma yaitu dengan cara implementasi.
Rekursi atau iterasi
Sebuah algoritma rekursi yaitu algoritma yang memanggil dirinya sendiri berulang kali sampai kondisi tertentu tercapai, ini merupakan metode umum bagi pemrograman fungsional. Algoritma iteratif menggunakan konstruksi berulang sepertipengulangan dan terkadang struktur data tambahan seperti tumpukan untuk menyelesaikan permasalahan. Beberapa permasalahan secara alami cocok dengan satu implementasi atau lainnya. Sebagai contoh, Menara Hanoi dikenal dengan implementasi rekursif. Setiap versi rekursif memiliki kesamaan (tapi bisa lebih atau kurang kompleks) dengan versi iteratif, dan sebaliknya.
Logical
Sebuah algoritma bisa dilihat sebagai logika deduksi terkontrol. Pernyataan ini diekspresikan sebagai: Algoritma = logika + kontrol[56] Komponen logika mengekspresikan aksioma yang bisa digunakan dalam komputasi dan komponen kontrol menentukan cara deduksi digunakan pada aksioma. Ini merupakan dasar dari paradigma pemrograman logika. Dalam bahasa pemrograman logika murni komponen kontrol adalah tetap dan algoritma ditentukan dengan memberikan hanya komponen logikanya. Daya tarik dari pendekatan ini adalah semantik elegan: sebuah perubahan dalam aksioma memiliki perubahan dalam algoritma.
Serial, paralel atau terdistribusi
Algoritma biasanya dibicarakan dengan asumsi bahwa komputer menjalankan satu instruksi algoritma setiap waktu. Komputer tersebut terkadang disebut dengan komputer serial. Rancangan algoritma untuk lingkungan tersebut disebut dengan algoritma serial, terbalik dengan algoritma paralel atau algoritma terdistribusi. Algoritma paralel memanfaatkan arsitektur komputer yang mana beberapa prosesor bisa mengerjakan masalah di waktu yang sama, selain itu algoritma terdistribusi memanfaatkan banyak mesin yang terhubung dengan jaringan. Algoritma paralel atau terdistribusi membagi permasalahan menjadi banyak sub-masalah simetris atau asimetris dan mengumpulkan hasilnya kembali. Konsumsi sumber pada algoritma tersebut tidak hanya perputaran prosesor disetiap prosesor tapi juga daya komunikasi antara prosesor. Algoritma pengurutan bisa diparalelkan secara efisien, tapi biaya komunikasinya sangat mahal. Algoritma iteratif secara umum bisa diparalelkan. Beberapa permasalahan tidak ada algoritma paralelnya, dan disebut dengan permasalahan serial lahiriah.
Deterministik atau non-deterministik
Algoritma deterministik menyelesaikan masalah dengan keputusan yang tepat disetiap langkah dari algoritma sedangkanalgoritma non-deterministik menyelesaikan masalah lewat penerkaan walaupun penerkaan biasanya lebih akurat dengan menggunakan heuristik.
Tepat atau perkiraan
Bila banyak algoritma sampai pada solusi yang tepat, algoritma perkiraan mencari sebuah perkiraan yang terdekat dengan solusi benarnya. Perkiraan bisa menggunakan baik strategi deterministik atau acak. Algoritma seperti itu memiliki nilai guna untuk banyak permasalahan sulit.
Algoritma quantum
Berjalan di model realistik dari komputasi quantum. Istilah ini biasanya digunakan untuk algoritma yang tampak pada dasarnya quantum, atau menggunakan beberapa fitur penting komputasi quantum seperti superposisi quantum ataubelitan quantum.

finish..!!
di postingan berikutnya, saya mau share tentang sejarahnya. 
sebelum dan sesudahnya terima kasih ya atas perhatiannya. gbu.