title: Arsitektur

text: Pada masa Pencerahan, humaniora dan penekanan terhadap individual menjadi lebih penting daripada agama, dan menjadi awal yang baru dalam arsitektur. Pembangunan ditugaskan kepada arsitek-arsitek individual - Michaelangelo, Brunelleschi, Leonardo da Vinci - dan kultus individu pun dimulai. Namun pada saat itu, tidak ada pembagian tugas yang jelas antara seniman, arsitek, maupun insinyur atau bidang-bidang kerja lain yang berhubungan. Pada tahap ini, seorang seniman pun dapat merancang jembatan karena penghitungan struktur di dalamnya masih bersifat umum.


title: Arsitektur

text: Bersamaan dengan penggabungan pengetahuan dari berbagai bidang ilmu (misalnya engineering), dan munculnya bahan-bahan bangunan baru serta teknologi, seorang arsitek menggeser fokusnya dari aspek teknis bangunan menuju ke estetika. Kemudian bermunculanlah "arsitek priyayi" yang biasanya berurusan dengan bouwheer (klien)kaya dan berkonsentrasi pada unsur visual dalam bentuk yang merujuk pada contoh-contoh historis. Pada abad ke-19, École des Beaux-Arts di Prancis melatih calon-calon arsitek menciptakan sketsa-sketsa dan gambar cantik tanpa menekankan konteksnya.


title: Arsitektur

text: Sementara itu, Revolusi Industri membuka pintu untuk konsumsi umum, sehingga estetika menjadi ukuran yang dapat dicapai bahkan oleh kelas menengah. Dulunya produk-produk berornamen estetis terbatas dalam lingkup keterampilan yang mahal, menjadi terjangkau melalui produksi massal. Produk-produk sedemikian tidaklah memiliki keindahan dan kejujuran dalam ekspresi dari sebuah proses produksi.


title: Arsitektur

text: Ketidakpuasan terhadap situasi sedemikian pada awal abad ke-20 melahirkan pemikiran-pemikiran yang mendasari Arsitektur Modern, antara lain, Deutscher Werkbund (dibentuk 1907) yang memproduksi objek-objek buatan mesin dengan kualitas yang lebih baik merupakan titik lahirnya profesi dalam bidang desain industri. Setelah itu, sekolah Bauhaus (dibentuk di Jerman tahun 1919) menolak masa lalu sejarah dan memilih melihat arsitektur sebagai sintesis seni, ketrampilan, dan teknologi.


title: Arsitektur

text: Ketika Arsitektur Modern mulai dipraktikkan, ia adalah sebuah pergerakan garda depan dengan dasar moral, filosofis, dan estetis. Kebenaran dicari dengan menolak sejarah dan menoleh kepada fungsi yang melahirkan bentuk. Arsitek lantas menjadi figur penting dan dijuluki sebagai "master". Kemudian arsitektur modern masuk ke dalam lingkup produksi massal karena kesederhanaannya dan faktor ekonomi.


title: Arsitektur

text: Namun, masyarakat umum merasakan adanya penurunan mutu dalam arsitektur modern pada tahun 1960-an, antara lain karena kekurangan makna, kemandulan, keburukan, keseragaman, serta dampak-dampak psikologisnya. Sebagian arsitek menjawabnya melalui Arsitektur Post-Modern dengan usaha membentuk arsitektur yang lebih dapat diterima umum pada tingkat visual, meski dengan mengorbankan kedalamannya. Robert Venturi berpendapat bahwa "gubuk berhias / "decorated shed"" (bangunan biasa yang interior-nya dirancang secara fungsional sementara eksterior-nya diberi hiasan) adalah lebih baik daripada sebuah "bebek / "duck"" (bangunan di mana baik bentuk dan fungsinya menjadi satu). Pendapat Venturi ini menjadi dasar pendekatan Arsitektur Post-Modern.


title: Arsitektur

text: Sebagian arsitek lain (dan juga non-arsitek) menjawab dengan menunjukkan apa yang mereka pikir sebagai akar masalahnya. Mereka merasa bahwa arsitektur bukanlah perburuan filosofis atau estetis pribadi oleh perorangan, melainkan arsitektur haruslah mempertimbangkan kebutuhan manusia sehari-hari dan menggunakan teknologi untuk mencapai lingkungan yang dapat di tempati. Design Methodology Movement yang melibatkan orang-orang seperti Chris Jones atau Christopher Alexander mulai mencari proses yang lebih inklusif dalam perancangan, untuk mendapatkan hasil yang lebih baik. Peneilitian mendalam dalam berbagai bidang seperti perilaku, lingkungan, dan humaniora dilakukan untuk menjadi dasar proses perancangan.


title: Arsitektur

text: Bersamaan dengan meningkatnya kompleksitas bangunan,arsitektur menjadi lebih multi-disiplin daripada sebelumnya. Arsitektur sekarang ini membutuhkan sekumpulan profesional dalam pengerjaannya. Inilah keadaan profesi arsitek sekarang ini. Namun, arsitek individu masih disukai dan dicari dalam perancangan bangunan yang bermakna simbol budaya. Contohnya, sebuah museum senirupa menjadi lahan eksperimentasi gaya dekonstruktivis sekarang ini, namun esok hari mungkin sesuatu yang lain.


title: Arsitektur

text: [[Kategori:Arsitektur| ]]


title: Komputasi

text: Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritme. Hal ini ialah apa yang disebut dengan "teori komputasi", suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.


title: Komputasi

text: Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.


title: Komputasi

text: Bidang ini berbeda dengan ilmu komputer ("computer science"), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.


title: Komputasi

text: Ilmu atau sains berdasarkan objek kajiannya dibedakan antara Fisika, Kimia, Biologi dan Geologi. Ilmu dapat pula digolongkan berdasarkan metodologi dominan yang digunakannya, yaitu ilmu pengamatan/percobaan ("observational/experimental science"), ilmu teori ("theoretical science") dan ilmu komputasi ("computational science"). Yang terakhir ini bisa dianggap bentuk yang paling baru yang muncul bersamaan dengan perkembangan kekuatan pemrosesan dalam komputer dan perkembangan teknik-teknik metode numerik dan metode komputasi lainnya.


title: Komputasi

text: Dalam ilmu (sains) tradisional seperti Fisika, Kimia dan Biologi, penggolongan ilmu berdasarkan "metodologi dominannya" juga mewujud, yang ditunjukkan dengan munculnya bidang-bidang khusus berdasarkan penggolongan tsb. lengkap dengan jurnal-jurnal yang relevan untuk melaporkan hasil-hasil penelitiannya. Sebagai contoh dalam kimia, melengkapi kimia percobaan ("experimental chemistry") dan kimia teori ("theoretical chemistry"), berkembang pula kimia komputasi ("computational chemistry"), seperti juga di bidang Biologi dikenal Biologi Teori ("theoretical biology") serta Biologi Komputasi ("computational biology"), lengkap dengan jurnalnya seperti Journal of Computational Chemistry dan Journal of Computational Biology. Cara penggolongan yang digunakan berbeda dengan cara penggolongan lain berdasarkan objek kajian, seperti penggolongan kimia atas Kimia Organik, Kimia Anorganik, dan Biokimia.


title: Komputasi

text: Walaupun dengan titik pandang yang berbeda, ilmu komputasi sebagai bentuk ketiga dari ilmu (sains) telah banyak disampaikan oleh berbagai pihak, antara lain dengan bukunya yang terkenal: "", dan .


title: Komputasi

text: Komputasi sains merupakan salah satu cabang ilmu komputasi. Secara umum komputasi sains mengkaji aspek-aspek komputasi untuk aplikasi / memecahkan masalah di bidang sains lain, seperti fisika, kimia, biologi dan lain-lain.


title: Komputasi

text: Di Indonesia sudah banyak pertemuan atau kegiatan ilmiah terkait dengan komputasi, tetapi umumnya lebih terkait dengan aspek teknologi informasi. Sedangkan kajian di komputasi sains masih sangat kurang. Hal ini tidak mengherankan karena komputasi sains lebih condong sebagai kajian teori murni, sehingga komunitasnya masih sangat terbatas seperti halnya fisika teori. Hanya ada satu kegiatan ilmiah yang terkait langsung dan fokus pada kajian komputasi sains, yaitu "Workshop on Computational Science" yang diadakan rutin setiap tahun oleh konsorsium yang tergabung dalam Masyarakat Komputasi Indonesia - MKI.


title: Komputasi

text: Selain itu, telah tersedia juga portal ilmiah untuk publik terkait dengan komputasi sains, yaitu komput@si.


title: Komputasi

text: Jurnal di Indonesia yang fokus pada topik komputasi adalah "Journal of Theoretical and Computational Studies" JTCS. Jurnal ini merupakan kolaborasi dari MKI dan GFTI.


title: Algoritme

text:
Dalam matematika dan ilmu komputer, algoritme adalah prosedur langkah-demi-langkah untuk penghitungan.
Algoritme digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.


title: Algoritme

text:
Algoritme adalah metode efektif diekspresikan sebagai rangkaian terbatas
dari instruksi-instruksi yang telah didefinisikan dengan baik
untuk menghitung sebuah fungsi.
Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong),
instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas
yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran"
dan berhenti di kondisi akhir.
Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik;
beberapa algoritme, dikenal dengan algoritme pengacakan, menggunakan masukan acak.


title: Algoritme

text:
Walaupun "algorism"-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmetika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan kuadrat, sebagian formalisasi yang nantinya menjadi "algoritme" modern dimulai dengan usaha untuk memecahkan permasalahan keputusan ("Entscheidungsproblem") yang diajukan oleh David Hilbert pada tahun 1928.
Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif"


title: Algoritme

text: atau "metode efektif";


title: Algoritme

text:
formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt Godel - Jacques Herbrand - Stephen Cole Kleene pada tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church pada tahun 1936, "Formulasi 1"-nya Emil Post pada tahun 1936, dan Mesin Turing-nya Alan Turing pada tahun 1936-7 dan 1939.
Dari definisi formal dari algoritme di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.


title: Algoritme

text: 'Algoritme' muncul dari 'Algoritmi', bentuk Latin dari al-Khwarizmi, matematikawan, ahli astronomi, dan ahli geografi dari Persia.


title: Algoritme

text: Definisi informalnya bisa berarti "sekumpulan aturan yang secara tepat menentukan seurutan operasi".


title: Algoritme

text:
yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik.
Secara umum, sebuah program hanyalah sebuah algoritme jika ia akan berhenti nantinya.
Sebuah contoh prototipikal dari suatu algoritme adalah algoritme 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.


title: Algoritme

text:
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."


title: Algoritme

text:
Suatu "bilangan tak-terbatas" adalah bilangan yang elemen-elemenya bisa berkorespondensi satu-ke-satu dengan integer.
Maka, Boolos dan Jeffrey mengatakan bahwa sebuah algoritme berarti instruksi bagi sebuah proses yang "membuat" keluaran integer dari sebuah "masukan" "acak" integer yang, secara teori, bisa sangat besar.
Maka sebuah algoritme 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 algoritme mengandung lebih dari itu, sesuatu yang kurang lebih (untuk contoh penjumlahan):
Konsep dari "algoritme" 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 algoritme 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 "algoritme" yang sesuai dengan konkret (pada tingkat tertentu) dan penggunaan secara abstrak dari istilah tersebut.


title: Algoritme

text:
Algoritme sangat penting bagi cara komputer mengolah data.
Banyak program komputer mengandung algoritme memberikan rincian pada instruksi khusus yang komputer harus lakukan (dengan urutan tertentu) untuk menjalankan pekerjaan tertentu, seperti menghitung gaji karyawan atau mencetak kartu rapor siswa.
Maka, sebuah algoritme bisa dianggap sebagai urutan operasi yang bisa disimulasikan oleh sebuah sistem Turing-lengkap.
Penulis yang mendukung tesis ini termasuk Minsky (1967), Savage (1987), dan Gurevich (2000):


title: Algoritme

text:
Minsky: "Tapi kita juga menjaga, dengan Turing ... bahwa setiap prosedur yang "secara alami" disebut efektif, bisa dinyatakan oleh mesin (sederhana).
Walaupun tampaknya ekstrem, alasan tersebut ... sukar disanggah".


title: Algoritme

text: Gurevich: "... argumen informal Turing untuk menyokong tesis ini membenarkan tesis yang lebih kuat: setiap algoritme bisa disimulasikan oleh sebuah mesin Turing ... menurut Savage [1987], sebuah algoritme adalah sebuah proses penghitungan yang ditentukan oleh sebuah mesin Turing".


title: Algoritme

text:
Biasanya, bila sebuah algoritme dihubungkan dengan pengolahan informasi, data dibaca dari sumber masukan, ditulis ke perangkat keluaran, dan/atau disimpan untuk pengolahan selanjutnya.
Data simpanan dianggap sebagai bagian dari keadaan internal dari entitas yang melakukan algoritme.
Pada praktiknya, keadaan tersebut disimpan pada satu atau lebih struktur data.


title: Algoritme

text:
Untuk beberapa proses komputasi, algoritme harus ditentukan secara teliti: dijabarkan dengan cara ia bakal berlaku untuk semua kemungkinan yang dapat timbul.
Yaitu, setiap langkah tambahan harus secara sistematis dihadapi, kasus-per-kasus;
Kriteria bagi setiap kasus harus jelas (dan bisa dihitung).


title: Algoritme

text:
Karena sebuah algoritme adalah kumpulan dari langkah-langkah yang tepat, urutan dari komputasi selalu penting bagi berfungsinya algoritme.
Instruksi biasanya diasumsikan terdaftar secara eksplisit, dan dijelaskan dimulai "dari atas" dan terus "ke bawah", sebuah gambaran yang dijelaskan secara formal oleh "alur kontrol"


title: Algoritme

text:
Sejauh ini, diskusi tentang formalisasi algoritme telah mengasumsikan premis dari pemrograman imperatif.
Hal ini merupakan konsepsi umum, yang mencoba menjelaskan sebuah pekerjaan dalam makna diskrit dan "mekanis".
Keunikan dari konsepsi formalisasi algoritme adalah operasi penetapan, mengatur nilai dari sebuah variabel.
Ia berasal dari intuisi "ingatan" sebagai kertas buram.
Contoh operasi penetapan tersebut ada di bawah.


title: Algoritme

text: Untuk konsepsi yang lain dari apa yang membentuk sebuah algoritme lihat pemrograman fungsional dan pemrograman logika.


title: Algoritme

text:
Algoritme dapat digambarkan dengan banyak notasi, termasuk bahasa alamiah, pseudokode, diagram alur, bagan drakon, bahasa pemrograman atau tabel kontrol (diproses oleh penerjemah).
Ekspresi bahasa alamiah terhadap algoritme condong lebih banyak dan rancu, dan jarang digunakan untuk algoritme yang kompleks dan teknis.
Pseudokode, diagram alur, bagan drakon, dan tabel kontrol adalah cara yang terstruktur untuk menggambarkan algoritme yang mencegah banyaknya kerancuan pada pernyataan-pernyataan bahasa alamiah.
Bahasa pemrograman ditujukan untuk mengekspresikan algoritme dalam sebuah bentuk yang dapat dieksekusi oleh komputer, tetapi sering kali digunakan sebagai suatu cara untuk menentukan atau mendokumentasikan algoritme.


title: Algoritme

text: Ada banyak macam kemungkinan representasi dan seseorang dapat mengekspresikan sebuah program mesin Turing sebagai urutan dari tabel-tabel mesin (lihat lebih lanjut di mesin kondisi-terbatas, tabel 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).


title: Algoritme

text: Representasi dari algoritme dapat dikelompokan ke dalam tiga tingkatan dari deskripsi mesin Turing:Sebagai contoh dari algoritme sederhana "Penjumlahan m+n" dijelaskan dalam tiga tingkatan tersebut lihat contoh algoritme.


title: Algoritme

text:
Kebanyakan algoritme ditujukan untuk diimplementasikan sebagai program komputer.
Namun, algoritme juga diimplementasikan dengan tujuan lain, seperti dalam jaringan saraf biologis (sebagai contohnya, otak manusia yang mengimplementasikan aritmetika atau sebuah serangga yang melihat makanan), dalam sirkuit elektris, atau dalam sebuah perangkat mekanis.


title: Algoritme

text: Dalam sistem komputer, sebuah algoritme pada dasarnya adalah instansi dari logika ditulis dalam perangkat lunak oleh pengembang perangkat lunak supaya efektif untuk komputer yang "ditargetkan" untuk mesin tertentu untuk menghasilkan "keluaran" dari "masukan" yang diberikan (kemungkinan nul).


title: Algoritme

text: "Program yang "elegan" (padat), program yang "baik" (cepat)": Pernyataan dari "sederhana dan elegan" muncul secara informal dalam buku Knuth dan dalam Chaitin:


title: Algoritme

text: Chaitin membuka definisinya dengan: "Saya akan perlihatkan bahwa anda tidak dapat membuktikan sebuah program adalah 'elegan'"—bukti tersebut akan menyelesaikan permasalahan perhentian (ibid).


title: Algoritme

text:
"Algoritme terhadap fungsi yang dapat dihitung oleh algoritme": Untuk sebuah fungsi bisa ada beberapa algoritme.
Hal ini benar, bahkan tanpa mengembangkan kumpulan instruksi yang ada bagi programmer.
Rogers mengamati bahwa "Sangat ... penting untuk membedakan antara pengertian "algoritme", misalnya prosedur dan pernyataan "fungsi yang dihitung oleh algoritme", misalnya pemetaan hasil dari prosedur.
Fungsi yang sama bisa memiliki beberapa algoritme berbeda".
Sayangnya ada pertukaran antara kebaikan (kecepatan) dan elegan (kepadatan) -- sebuah program yang elegan bisa melakukan lebih banyak langkah untuk menyelesaikan sebuah komputasi daripada yang kurang elegan.
Sebuah contoh yang menggunakan algoritme Euclid bisa dilihat di bawah.


title: Algoritme

text:
"Komputer (dan komputor), model dari komputasi": Sebuah komputer (atau manusia "komputor"
adalah tipe terbatas dari mesin, sebuah "perangkat mekanis deterministik diskrit"


title: Algoritme

text:
yang secara buta mengikuti instruksinya
Model primitif dari Melzak dan Lambek


title: Algoritme

text:
mereduksi pemikiran tersebut menjadi empat elemen: (i) diskrit, "lokasi" yang bisa dibedakan,
(ii) diskrit, "penghitung" yang tak bisa dibedakan


title: Algoritme

text:
(iii) sebuah agen, dan
(iv) sebuah daftar instruksi yang "efektif" relatif terhadap kemampuan dari agen.
Minsky menjelaskan variasi yang lebih sesuai dari model "abacus"-nya Lambek dalam "Basis Komputabilitas Paling Sederhana".


title: Algoritme

text:
Mesin Minsky memproses secara berurutan lewat lima (atau enam tergantung bagaimana seseorang menghitungnya) instruksi kecuali baik sebuah kondisi IF-THEN GOTO atau GOTO tak bersyarat mengubah alur program keluar dari urutan.
Selain HALT, mesin Minsky mengikutkan tiga operasi "penetapan" (penggantian, substitusi):


title: Algoritme

text: ZERO (misalnya, isi dari lokasi diganti oleh 0: L ← 0), SUCCESSOR (misalnya, L ← L+1), dan DECREMENT (misalnya, L ← L-1).


title: Algoritme

text:
Jarang seorang programer harus menulis "kode" dengan kumpulan instruksi terbatas.
Tapi Minsky memperlihatkan (sebagaimana Melzak dan Lambek) bahwa mesinnya adalah Turing komplet dengan hanya empat "tipe" instruksi utama: GOTO kondisional, GOTO tak bersyarat, penetapan/penggantian/substitusi, dan HALT.
"Simulasi dari sebuah algoritme: bahasa komputer (komputor)": Knuth menganjurkan pembaca bahwa "cara terbaik untuk belajar algoritme dalah mencobanya ... langsung ambil pulpen dan kertas dan bekerja lewat contoh".


title: Algoritme

text:
Lalu bagaimana dengan simulasi atau eksekusi yang sebenarnya?
Programmer harus menerjemahkan algoritme ke dalam bahasa yang mana simulator/komputer/komputor dapat mengeksekusi "secara efektif".
Stone memberikan contoh dari hal ini: saat menghitung akar dari persamaan kuadrat si komputor harus tahu bagaimana mendapatkan akar kuadrat.
Jika tidak maka supaya algoritme dapat efektif ia harus menyediakan sejumlah aturan untuk mengekstrak akar kuadrat.
Hal ini berarti programer harus tahu sebuah "bahasa" yang efektif relatif terhadap target pada agen komputasi (komputer/komputor).


title: Algoritme

text:
Lalu model apa yang seharusnya digunakan untuk simulasi?
Van Emde Boas mengamati "bahkan bila kita mendasari teori kompleksitas dengan mesin abstrak bukannya mesin kongkrit, kesembarangan dari pemilihan model masih tetap ada.
Pada titik itulah mulainya pemikiran "simulasi"".


title: Algoritme

text:
Bila kecepatan yang dihitung, jumlah instruksi berpengaruh.
Sebagai contohnya, subprogram dalam algoritme Euclid untuk menghitung sisa akan berjalan lebih cepat jika programmer memiliki instruksi "modulus" (sisa pembagian) bukannya dengan pengurangan (atau lebih parah: hanya "penurunan").


title: Algoritme

text:
"Pemrograman terstuktur, struktur kanonikal": Menurut Tesis Church-Turing setiap algoritme bisa dihitung dengan sebuah model yang dikenal Turing komplet, dan menurut demonstrasi Minsky kekomplitan Turing membutuhkan hanya empat tipe instruksi—GOTO bersyarat, GOTO tak bersyarat, penetapan, HALT.
Kemeny dan Kurtz mengamati bahwa saat penggunaan GOTO tak bersyarat yang "tak disiplin" dan IF-THEN GOTO bersyarat bisa menghasilkan "kode spageti" seorang programer bisa menulis program terstruktur menggunakan instruksi tersebut;
di lain sisi "juga memungkinkan, dan tidak begitu sulit, untuk menulis sebuah program terstruktur yang buruk dalam sebuah bahasa terstruktur".


title: Algoritme

text: Tausworthe menambahkan tiga struktur kanon Bohm-Jacopini:


title: Algoritme

text: SEQUENCE, IF-THEN-ELSE, dan WHILE-DO, dengan dua lagi: DO-WHILE dan CASE.


title: Algoritme

text:
Keuntungan dari program terstruktur adalah ia cocok dengan pembuktian kebenaran menggunakan induksi matematika.
"Simbol diagram alur": Pembantu grafik yang disebut diagram alur memberikan suatu cara untuk menjelaskan dan mendokumentasikan sebuah algoritme (dan program komputer).
Seperti alur program dari mesin Minsky, sebuah diagram alur selalu mulai dari atas dan terus ke bawah.
Simbol utamanya hanya 4: arah panah memperlihatkan alur program, segi empat (SEQUENCE, GOTO), wajik (IF-THEN-ELSE), dan titik (OR).
Struktur kanonikal Bohm-Jacopini dibuat dari bentuk-bentuk primitif tersebut.
Sub-struktur bisa "bersarang" dalam segi empat hanya jika jalan keluar tunggal terjadi pada super-struktur.
Simbol dan penggunaannya untuk membangun struktur kanonikal diperlihatkan dalam diagram.


title: Algoritme

text:
Salah satu dari algoritme sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut).
Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tetapi hanya sekali.
Dari hal ini munculah algoritme sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:


title: Algoritme

text: "Deskripsi tingkat-tinggi:"


title: Algoritme

text:
"Deskripsi (Quasi-)formal:"
Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritme dalam pseudokode atau kode pijin:


title: Algoritme

text: Algoritme Euclid muncul sebagai Proposisi II dalam Book VII ("Elementary Number Theory") dari "Elements".


title: Algoritme

text:
Euclid mengajukan permasalahan: "Ambil dua angka bukan prima, untuk mencari bilangan pembagi terbesar".
Dia menentukan "Sebuah angka [merupakan] besaran yang terdiri dari unit-unit": angka penghitung, integer positif kecuali 0.
Dan "mengukur" adalah menempatkan ukuran panjang terkecil "s" dengan tepat ("q" kali) di antara ukuran terpanjang "l" sampai sisa "r" lebih kecil dari panjang terkecil "s".


title: Algoritme

text:
Dalam dunia modern, sisa "r = l - q*s", "q" sebagai hasil bagi, atau sisa "r" adalah "modulus", bagian sisa-integer yang tersisa setelah pembagian.
Supaya metode Euclid berhasil, panjang awalnya harus memenuhi dua kebutuhan:
(i) panjangnya tidak 0, DAN
(ii) hasil pengurangan harus "lebih", sebuah pengujian harus menjamin bahwa bilangan terkecil dari dua angka adalah hasil pengurangan dari yang terbesar (cara lain, keduanya bisa sama sehingga pengurangan menghasilkan 0).


title: Algoritme

text:
Pembuktian asli Euclid mengikutkan kebutuhan yang ketiga: kedua panjang bukanlah bilangan prima.
Euclid menentukan hal ini supaya dia bisa membentuk sebuah bukti reductio ad absurdum bahwa dua pembagi dua angka adalah yang "terbesar".


title: Algoritme

text:
Walau algoritme Nicomachus sama dengan Euclid, bila kedua bilangan prima maka menghasilkan angka "1" untuk bilangan pembagi terbesar.
Jadi untuk lebih jelasnya algoritme berikut adalah algoritme Nicomachus.


title: Algoritme

text: Hanya beberapa "tipe" instruksi yang dibutuhkan untuk mengeksekusi algoritme—beberapa tes logika (GOTO bersyarat), GOTO tak bersyarat, penetapan (penggantian), dan pengurangan.


title: Algoritme

text:
Algoritme berikut disebut sebagai versi Euclid dan Nichomachus 4-langkah-nya Knuth, tetapi bukannya menggunakan pembagi untuk menentukan sisa ia menggunakan pengurangan berturut-turut dari panjang terkecil "s" dari sisa panjang "r" sampai "r" kurang dari "s".
Deskripsi tingkat-tinggi, diperlihatkan dengan tulisan tebal, diadaptasi dari Knuth 1973:2-4:


title: Algoritme

text: INPUT:


title: Algoritme

text: E0: [Pastikan "r" ≥ "s".]


title: Algoritme

text: E2: [Apakah sisa 0?]: APAKAH (i) pengukuran terakhir adalah sama dan sisa di R adalah 0 program dapat berhenti, ATAU (ii) algoritme harus terus jalan: hasil pengukuran meninggalkan sisa di R kurang dari angka pengukuran dalam S.


title: Algoritme

text: E3: [Interchange "s" dan "r"]: Sulitnya algoritme Euclid. Menggunakan sisa "r" untuk mengukur angka terkecil sebelumnya "s":; L sebagai lokasi sementara.


title: Algoritme

text: OUTPUT:


title: Algoritme

text: DONE:


title: Algoritme

text:
Versi algoritme Euclid berikut hanya membutuhkan 6 instruksi inti untuk melakukan 13 langkah pada solusi "inelegan"; parahnya, "inelegan" membutuhkan "tipe" instruksi lebih banyak.
Diagram alur dari "elegan" bisa dilihat pada bagian atas artikel ini.
Dalam bahasa Basic (tak terstruktur) langkahnya diberi nomor, dan instruksi LET [] = [] adalah instruksi penetapan disimbolkan dengan ←.


title: Algoritme

text:
"Bagaimana cara kerja "Elegan"": Sebagai pengganti "pengulangan Euclid" luar, "Elegan" mengulang antara dua pengulangan, pengulangan A > B yang menghitung A ← A - B, dan pengualang B ≤ A yang menghitung B ← B - A.
Hal ini bekerja karena, saat yang dikurang M lebih kecil pengurang S ( Selisih = pengurang - yang_di_kurang ), yang_dikurang bisa menjadi "s" (panjang pengukuran yang baru) dan pengurang bisa menjadi "r" yang baru (panjang yang akan diukur);
dengan kata lain "arti" dari pengurangan dibalik.


title: Algoritme

text:
Apakah algoritme berjalan seperti yang penulis inginkan?
Beberapa kasus uji cukup menentukan fungsi inti.
Sumber pertama


title: Algoritme

text:
menggunakan 3009 dan 884.
Knuth menyarankan 40902, 24140.
Kasus menarik lainnya yaitu dua angka relatif prima 14157 dan 5950.


title: Algoritme

text:
Tapi kasus pengecualian harus teridentifikasi dan diuji.
Apakah "inelegan" berjalan benar saat R > S, S > R, R = S?
Sama juga dengan "Elegan": B > A, A > B, A = B?
(Semuanya benar).
Apa yang terjadi bila salah satu bilangan nol, atau keduanya nol?
Apa yang terjadi bila angka "negatif" dimasukan?
Angka desimal?
Bila angka masukan, misalnya domain dari fungsi yang dihitung oleh algoritme/program, mengikutkan hanya integer positif termasuk 0, maka kegagalan pada nol mengindikasikan bahwa algoritme (dan program instansiasinya) adalah sebuah fungsi parsial bukannya fungsi total.
Kesalahan yang terkenal karena eksepsi adalah kegagalan roket Ariane V.


title: Algoritme

text: "Bukti dari kebenaran program menggunakan induksi matematika": Knuth mendemonstrasikan penggunaan induksi matematika untuk versi "pengembangan" dari algoritme Euclid, dan dia mengajukan "metode umum yang digunakan untuk membuktikan validitas dari setiap algoritme."


title: Algoritme

text: Tausworthe mengajukan bahwa sebuah pengukuran dari kompleksitas dari sebuah program adalah panjang dari pembuktian kebenarannya.


title: Algoritme

text:
"Elegan (kepadatan) lawan kebaikan (kecepatan)": Dengan hanya 6 instruksi dasar, "Elegan" adalah jelas pemenang dibandingkan dengan instruksi "inelegan" dengan 13 instruksi.
Namun, "inelegan" lebih "cepat" (ia sampai pada HALT dengan langkah lebih sedikit).
Analisis algoritme


title: Algoritme

text:
mengindikasikan kenapa hal tersebut terjadi: "Elegan" melakukan pengujian kondisi "dua" kali disetiap pengulangan pengurangan, sementara "inelegan" hanya sekali.
Bila algoritme (biasanya) membutuhkan banyak pengulangan, "secara rata-rata" lebih banyak waktu yang terbuang saat melakukan tes "B = 0?" yang hanya diperlukan saat sisa sudah dihitung.


title: Algoritme

text: "Bisakah algoritme ditingkatkan?": Bila programmer sudah menilai sebuah program "cocok" dan "efektif"—yaitu, ia menghitung fungsi yang ditujukan oleh penulisnya—maka pertanyaannya menjadi, bisakah ditingkatkan?


title: Algoritme

text:
Kepadatan dari "inelegan" bisa ditingkatkan dengan menghilangkan 5 langkah.
Tapi Chaitin membuktikan bahwa memadatkan algoritme tidak bisa diotomatiskan dengan algoritme generalisasi;


title: Algoritme

text:
tapi, ia bisa dilakukan secara heuristik, misalnya dengan pencarian menyeluruh (contohnya bisa ditemukan di Berang sibuk), coba dan gagal, kecerdasan, kedalaman, penggunaan penalaran induktif, dll.
Bisa diamati bahwa langkah 4, 5, dan 6 diulang pada langkah 11, 12, dan 13.
Pembandingan dengan "Elegan" menyediakan petunjuk langkah-langkah tersebut dengan langkah 2 dan 3 dapat dihilangkan.
Hal ini mereduksi jumlah instruksi dasar dari 13 menjadi 8, yang membuatnya "lebih elegan" dari "Elegan" dengan 9 langkah.


title: Algoritme

text:
Kecepatan "Elegan" bisa ditingkatkan dengan memindahkan tes B=0? keluar dari pengulangan.
Perubahan ini memerlukan penambahan 3 instruksi (B=0?, A=0?, GOTO).
Sekarang "Elegant" menghitung contoh-angka lebih cepat;
untuk setiap angka pada A, B dan R, S hal ini selalu merupakan kasus yang membutuhkan analisis yang mendalam.


title: Algoritme

text:
Sangat penting untuk mengetahui berapa banyak sumber tertentu (seperti waktu dan tempat penyimpanan) secara teoretis diperlukan untuk sebuah algoritme.
Metode-metode telah dikembangkan untuk analisis algoritme untuk mendapatkan jawaban kuantitatif (estimasi);
sebagai contohnya, algoritme pengurutan di atas memerlukan waktu O("n"), menggunakan notasi O besar dengan "n" sebagai panjang deret (yang akan diurut).
Setiap saat algoritme 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.


title: Algoritme

text:
Algoritme 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, algoritme pencairan binari biasanya mengungguli pencarian berderet secara paksa bila digunakan untuk tabel pencarian pada deret terurut.


title: Algoritme

text:
Analisis dan kajian algoritme adalah bidang dari ilmu komputer, dan biasanya dilakukan secara abstrak tanpa menggunakan bahasa pemrograman tertentu atau implementasi.
Dalam artian, analisis algoritme mirip dengan bidang matematika lainnya yang mana fokus pada properti yang mendasari algoritme dan bukan pada implementasi tertentu.
Biasanya pseudokode digunakan pada analisis karena merupakan representasi paling umum dan sederhana.
Namun, pada akhirnya, kebanyakan algoritme diimplementasikan di perangkat keras / lunak tertentu dan efisiensi algoritmik mereka akhirnya diuji menggunakan kode yang sebenarnya.
Untuk solusi dari sebuah masalah, efisiensi dari algoritme tertentu mungkin tidak terlalu berpengaruh (kecuali n sangat besar) tetapi bagi algoritme yang dirancang untuk kecepatan interaktif, komersial, atau penggunaan ilmiah jangka panjang ia bisa saja kritikal.
Meningkatkan n dari kecil ke n yang besar biasanya menunjukan ketak efisienan algoritme yang tidak berbahaya.


title: Algoritme

text:
Pengujian empiris berguna karena bisa membuka interaksi tak terduga yang mempengaruhi performa.
Benchmark bisa digunakan untuk membandingkan potensi kenaikan sebelum/sesudah algoritme setelah optimisasi program dilakukan.


title: Algoritme

text: Untuk menggambarkan kemungkinan potensi peningkatan bahkan pada algoritme yang sudah teruji, inovasi terbaru, berkaitan dengan algoritme FFT (banyak digunakan di bidang pemrosesan gambar), bisa menurunkan waktu pemrosesan dengan faktor sampai 1.000 untuk aplikasi seperti pencitraan medis.


title: Algoritme

text: Secara umum, peningkatan kecepatan bergantung pada properti khusus dari permasalahan, yang mana sangat umum pada aplikasi praktis.


title: Algoritme

text: Percepatan dengan tingkat seperti itu membolehkan perangkat komputasi yang sering menggunakan pemrosesan gambar (seperti kamera digital dan peralatan medis) menghabiskan daya yang lebih sedikit.


title: Algoritme

text: Salah satu cara mengklasifikasikan algoritme yaitu dengan cara implementasi.


title: Algoritme

text:
Cara lain mengklasifikasikan algoritme adalah dengan metodologi rancangannya atau paradigma.
Ada sejumlah paradigma, tiap-tiapnya berbeda dari yang lain.
Lebih lanjut, setiap kategori tersebut mengikutkan banyak tipe algoritme yang berbeda.
Beberapa paradigma umum termasuk:


title: Algoritme

text: Setiap bidang sains memiliki permasalahannya sendiri dan membutuhkan algoritme yang efisien. Masalah yang berkaitan di satu bidang terkadang dipelajari bersama. Beberapa contoh yaitu algoritme pencarian, algoritme penggabungan, algoritme numerik, algoritme grafik, algoritme deret, algoritme komputasi geometri, algoritme kombinatorial, algoritmas medis, mesin belajar, kriptografi, algoritme kompresi data dan teknik penguraian.


title: Algoritme

text: Terkadang bidang-bidang tersebut saling tumpang tindih, dan perkembangan algoritme di satu bidang bisa meningkatkan bidang lainnya yang terkadang tidak berkaitan. Sebagai contohnya, pemrograman dinamis ditemukan untuk optimisasi konsumsi sumber daya dalam industri, tetapi sekarang digunakan untuk menyelesaikan sejumlah besar permasalahan dalam banyak bidang.


title: Algoritme

text: Algoritme bisa diklasifikasikan berdasarkan jumlah waktu yang dibutuhkan untuk selesai dibandingkan dengan ukuran inputnya. Ada berbagai varietas: beberapa algoritme selesai dalam waktu linear relatif terhadap ukuran input, beberapa selesai dalam jumlah waktu yang eksponensial atau lebih buruh, dan beberapa berhenti. Sebagai tambahan, beberapa masalah bisa memiliki berbagai algoritme dengan kompleksitas yang berbeda, sementara permasalahan yang lain bisa saja tidak memiliki algoritme atau tidak diketahui algoritmanya yang efisien. Ada juga pemetaan dari beberapa algoritme terhadap permasalahan lain. Karena itu, lebih cocok untuk mengklasifikasikan permasalahan itu sendiri bukannya algoritme menjadi kelas-kelas yang sama berdasarkan kompleksitas dari kemungkinan algoritme terbaik baginya.


title: Algoritme

text: Burgin (2005, p. 24) menggunakan definisi algoritme secara umum yang melonggarkan kebutuhan bersama yang keluaran dari algoritme yang menjalankan sebuah fungsi harus ditentukan setelah sejumlah langkah. Dia mendefinisikan kelas super-rekursif dari algoritme sebagai "sebuah kelas algoritme yang mana memungkinkan untuk menghitung fungsi yang tidak bisa dihitung oleh mesin Turing manapun" (Burgin 2005, p. 107). Hal ini berkaitan dekat dengan kajian dari metode hiperkomputasi.


title: Algoritme

text:
Untuk menjaga keseimbangan saat mengintegrasikan mesin ke dalam masyarakat, seseorang bisa mengklasifikasikan algoritme berdasarkan tipe dari evaluasi yang mereka lakukan.
Sejumlah filsuf telah berhipotesis bahwa masyarakat diuntungkan dari keragaman evaluatif seperti mereka diuntungkan keragaman jender dan tipe darah (misalnya, Dean 2012, Sober & Wilson 1998) Hertzke & McConkey 1998, dan Bellah 1985).
Teknologi dapat mengancam ekosistem moral tersebut seperi spesies invasif jika ia mengganggu campuran keragaman.
Wallach & Allen (2008) mengklasifikasikan algoritme pembuat-keputusan menjadi tiga tipe evaluatif: Algoritme bottom-up membuat penilaian tidak terprediksi bagi pemrogram (misalnya, perangkat lunak yang berevolusi).
Yang lainnya (top-down) dibagi menjadi deontologikal (yang dapat bergantung pada implementasi aturan pemrograman) lawan consequensialis (yang mengandalkan pada memaksimalkan perkiraan pemrograman).
Sebagai contohnya, sebuah kalkulator standar termasuk deontologikal, sementara mesin pembelajaran untuk perdagangan saham termasuk consequensialis.


title: Algoritme

text:
Santos-Lang mengganti nama deontologikal dan consequensialis menjadi kelas "institusional" dan "negosiator" dengan tujuan untuk menghindari implikasi bahwa semua teori-teori etika deontologikal dan consequensialis bisa diimplementasikan sebagai algoritme, dan membagi kelas bottom-up menjadi "pengganggu" (algoritme yang tidak terprediksi karena menggunakan generator pengacakan) lawan "relasional" (algoritme yang tidak terprediksi karena efek jaringan).
Seorang mutator dalam komputasi evolusioner bisa menjadi contoh dari pengganggu, sementara kelas 3 atau 4 dari otomata sellular adalah contoh dari mesin relasional.
Santos-Lang mencatat bahwa algoritme terkadang memiliki subkomponen dari tipe lainnya.
Sebagai contohnya, negosiator perdagangan saham bisa mengimplementasikan sebuah algoritme genetik, dan memiliki mutator pengganggu, dan mutator bisa memiliki subkomponen institusional dan relasional, semua komputasi adalah relasional pada tingkat di jajaran kimiawi (Santos-Lang 2014).


title: Algoritme

text: Kata sifat "berkelanjutan" bila diterapkan pada kata "algoritme" bisa berarti:


title: Algoritme

text:
Algoritme biasanya tidak dipatenkan. Di Amerika Serikat, sebuah klaim yang terdiri hanya dari manipulasi sederhana dari konsep abstrak, angka, atau sinyal tidak berarti suatu "process" (SPTO 2006), dan oleh karena itu algoritme tidak bisa dipatenkan (sebagaimana dalam Gottschalk v. Benson).
Namun, penerapan praktis dari algoritme terkadang dipatenkan.
Sebagai contohnya, dalam Diamond v. Diehr, aplikasi dari algoritme umpan-balik sederhana untuk membantu dalam menyembuhkan karet sintetis dianggap dapat dipatenkan.
Mematenkan perangkat lunak sangat kontroversial, dan ada paten yang mengikutkan algoritme yang sangat dikritisi, terutama algoritme kompresi data, seperti Format Grafiknya Unisys.


title: Algoritme

text: Sebagai tambahan, beberapa algoritme kriptografi memiliki batasan ekspor (lihat ekspor dari kriptografi).


title: Algoritme

text:
Kata ""Algoritme"", atau ""Algorisma"" pada versi penulisan lain, datang dari nama al-Khwarizmi. dieja dalam Arab klasik sebagai Al-Khwarithmi. Al-khwarizmi (, 780-850) adalah matematikawan, ahli astronomi, ahli geografi dari Persia 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.
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", di mana "Algoritmi" adalah pelatinan penerjemah dari nama Al-Khwarizmi.


title: Algoritme

text: Al-Khwarizmi dulunya adalah matematikawan yang paling banyak dibaca di Eropa pada akhir Abad Pertengahan, pada umum lewat bukunya yang lain, Aljabar.


title: Algoritme

text:
Pada akhir abad pertengahan, "algorismus", perubahan dari namanya, berarti "sistem bilangan desimal" yang masih merupakan arti dari kata Inggris modern algorism.
Pada abad ke-17 Prancis kata tersebut berubah, tetapi tidak maknanya, menjadi "algorithme".
Inggris mengadopsi Prancis setelahnya, tetapi tidak pada akhir abad ke-19 lah "Algorithm" mengambil makna dari kata Inggris masa sekarang.
Etimologi alternatif mengklaim asal mulanya dari istilah "algebra" (aljabar) dari makna abad pertengahan "aritmetika Arab" dan "arithmos" istilah Yunani untuk angka (yang secara harfiah berarti "bilangan Arab" atau "perhitungan Arab").
Karya algoritme Al-Kharizmi bukan berbentuk seperti pada masa modern sekarang tetapi 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.
Algoritme paling tua yang dikenal sekarang adalah Algoritme Euklid (lihat juga Pengembangan algoritme Euklid).
Sebelum ditemukan istilah "algorithm" orang Yunani menyebutnya "anthyphairesis" secara harfiah berarti anti-substraksi atau substraksi timbal-balik (untuk bacaan lebih lanjut disini dan ini.
Algoritme dikenal oleh orang Yunani berabad sebelum


title: Algoritme

text:
Euclid.
Bukannya kata "algebra" orang Yunani menggunakan istilah "arithmetica"(ἀριθμητική, yaitu dalam karya Diophantus yang dikenal "bapak dari Aljabar" - lihat juga artikel Wikipedia persamaan Diophantine dan Eudoxos).


title: Algoritme

text:
Kata algoritme 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 aritmetika menggunakan bilangan Hindu-Arab namun berkembang lewat penerjemahan Latin Eropa dari nama Al-Khwarizmi menjadi algoritme pada abad ke-18.
Penggunaan kata tersebut berkembang mengikutkan semua prosedur untuk menyelesaikan masalah atau melakukan unit kegiatan.


title: Algoritme

text:
Penanda-penghitung: Untuk mencatat hewan gembalaan, kumpulan biji dan uang mereka orang dahulu menggunakan penghitung: akumulasi batu atau tanda yang ditoreh pada tongkat, atau membuat simbol diskrit di kerang.
Sampai orang Babilonia dan Mesir menggunakan tanda dan simbol, pada akhirnya bilangan Roma dan abakus berkembang (Dilson, p. 16-41).
Penanda penghitung muncul dalam sistem bilangan operan aritmetika digunakan dalam mesin Turing dan komputasi mesin Post-Turing.


title: Algoritme

text: Karya dari Geometer Yunani kuno (algoritme Euklid), matematikawan India Brahmagupta, dan matematikawan Persia Al-Khwarizmi (yang darinya isitlah "algorism" dan "algoritme" diturunkan), dan matematikawan Eropa Barat memuncak dalam notasi Leibniz dari rasiosinator kalkulus (sekitar 1680-an):


title: Algoritme

text: "Jam": Bolter memuji penemuan jam gaya-berat sebagai "Kunci penemuan dari Eropa pada Abad Pertengahan", khususnya pada ambang pelarian


title: Algoritme

text:
yang menyediakan kita dengan tik dan tak dari jam mekanis.
"Mesin otomatis yang akurat"


title: Algoritme

text: mengarah langsung pada "otomata mekanis" dimulai pada abad ke-13 dan terakhir pada "mesin komputasi" -- motor berbeda dan motor analitik dari Charles Babbage dan bangsawan Ada Lovelace, pertengahan abad ke-19.


title: Algoritme

text: Lovelace dikreditkan sebagai yang pertama menciptakan algoritme yang ditujukan untuk diproses di komputer—motor analitis Babbage, perangkat pertama yang dianggap komputer Turing-sempurna sebenarnya bukan hanya sebuah kalkulator—dan terkadang dikenal "programmer pertama dalam sejarah", walaupun implementasi penuh dari perangkat Babbage kedua tidak terealisasi sampai beberapa dekade setelah masanya.


title: Algoritme

text:
"Mesin logika 1870 - Stanley Jevons "sempoa logika" dan "mesin logika"": Masalah teknisnya adalah untuk mereduksi persamaan boolean bila ditampilkan dalam sebuah bentuk yang pada masa sekarang dikenal sebagai pemetaan Karnaugh.
Jevons (1880) pertama menjelaskan "sempoa" sederhana dari "potongan kayu dilengkapi dengan penyemat, dibuat supaya bagian atau kelas kombinasi logika manapun dapat dipilih secara mekanis ... Baru-baru ini Saya telah mereduksi sistem menjadi bentuk yang secara sempurna mekanis, dan membuatnya mewujudkan keseluruhan proses inferensi tak langsung dalam apa yang disebut sebuah "Mesin Logika""
Mesinnya dilengkapi dengan "beberapa tangkai kayu yang bisa dipindahkan" dan "di bawah ada 21 kunci seperti pada piano [dll] ...".
Dengan mesin ini dia dapat menganalis sebuah "silogisme atau argumen logika sederhana apapun".
"Mesin tenun Jacquard, kartu berlobangnya Hollerith, telegraf dan telepon -- penyiaran elektromekanis": Bell dan Newell (1971) mengindikasikan bahwa mesin tenun Jacquard (1801), pelopor dari kartu Hollerith (kartu berlobang, 1887), dan "teknologi alih telepon" adalah akar dari sebuah pohon yang mengarah pada perkembangan dari komputer pertama.


title: Algoritme

text:
Pada pertengahan abad ke-19 telegraf, pelopor dari telepon, digunakan diseluruh dunia, pengkodean diskrit dan pembedaan huruf sebagai "titik dan strip".
Pada akhir abad ke-19 pita telegraf (sekitar 1870-an) digunakan, sebagaimana juga kartu Hollerith pada sensus Amerika 1890.
Kemudian muncullah teleprinter (sekitar 1910-an) dengan kerta-berlobang menggunakan kode Baudot di pita.


title: Algoritme

text:
"Jaringan alih-telepon" dari penyiaran elektromekanis (ditemukan 1835) adalah karya dair George Stibitz (1937), penemu dari perangkat penghitungan digital.
Saat bekerja di laboratorium Bell, dia mengamati "beratnya" penggunaan kalkulator mekanis dengan geligi.
"Dia pulang ke rumah pada suatu malam 1937 berniat untuk menguji idenya ... Saat mengatik selesai, Stibitz telah membangun perangkat hitung digital".
Davis (2000) mengamati pentingnya penyiaran elektromekanis (dengan "keadaan binari"-nya "buka" dan "tutup"):


title: Algoritme

text:
"Simbol dan aturan": Dengan cepat berkembangnya matematika dari George Boole (1847, 1854), Gottlob Frege (1897), dan Giuseppe Peano (1888-1889) mereduksi aritmetika menjadi serangkaian simbol dimanipulasi oleh aturan-aturan. "The Principles of arithmetic, presented by a new method"-nya Peano (1888) adalah "usaha pertama mengaksiomakan matematika dalam sebuah bahasa simbolik".
Tapi Heijenoort memberi pujian pada Frege (1879): Frege "merupakan karya tulis paling penting mengenai logika. ... yang mana kita lihat sebuah "'bahasa formula', yaitu sebuah "lingua characterica", sebuah bahasa ditulis dengan simbol-simbol khusus, "untuk berpikir murni", yaiut, bebas dari hiasan retorikal ... dibangun dari simbol-simbol tertentu yang dimanipulasi menurut aturan-aturan terbatas".


title: Algoritme

text: Karya dari Frege lebih lanjut disederhanakan dan diperkuat oleh Alfred North Whitehead dan Bertrand Russell dalam Principia Mathematical (1910-1913).


title: Algoritme

text: "Paradoks": Pada masa yang sama sejumlah paradoks yang mengganggu muncul dalam literatur, pada khususnya paradoks Burali-Forti (1987), paradoks Russell (1902-03), dan Paradoks Richard.


title: Algoritme

text: Hasilnya mengarah ke makalah Kurt Godel (1931) -- dia secara khusus merujuk paradoks pembohong—yang mereduksi aturan dari rekursi pada angka.


title: Algoritme

text:
"Penghitungan Efektif": Dalam usaha untuk menyelesaikan permasalahan keputusan yang didefinisikan oleh Hilbert tahun 1928, matematikawan pertama mendefinisikan apa arti dari "metode efektif" atau "kalkulasi efektif" (misalnya, sebuah kalkulasi yang akan sukses).
Dalam waktu yang cepat hal berikut muncul: kalkulus-λ oleh Alonzo Church, Stephen Kleene, dan J.B. Rosser


title: Algoritme

text: definisi dari "rekursi umum" yang benar-benar diasah dari karya Godel berdasarkan saran dari Jacquard Herbrand (cf. kuliah Godel di Princeton tahun 1934) dan penyederhaan selanjutnya oleh Kleene.


title: Algoritme

text: Church membuktikan


title: Algoritme

text: bahwa permasalahan keputusan tidak terpecahkan, definisi Emil Post tentang penghitungan efektif yaitu sebagai pekerja yang tanpa berpikir mengikuti suatu daftar instruksi untuk bergerak ke kiri atau kanan lewat sederetan ruangan dan bersamaan dengan itu bisa menandai atau menghapus kertas atau mengamati kertas dan membuat pilihan ya-tidak tentang instruksi selanjutnya.


title: Algoritme

text: Pembuktian Alan Turing bahwa permasalahan keputusan tidak terpecahkan dengan menggunakan "sebuah mesin [otomatis]"-nya


title: Algoritme

text: dengan efek yang mirip dengan "formulasi"-nya Post, definisi J. Barkley Rosser tentang "metode efektif" dalam makna "sebuah mesin".


title: Algoritme

text: Proposal S. C. Kleene dari pelopor "Tesis Church" yang disebutnya "Thesis I",


title: Algoritme

text: dan beberapa tahun kemudian Kleene menamakan tesisnya "Tesis Church"


title: Algoritme

text: dan mengajukan "Tesis Turing".


title: Algoritme

text: Berikut adalah kebetulan yang luar biasa dari dua orang yang tidak saling mengenal tetapi mendeskripsikan sebuah proses orang-sebagai-komputer mengerjakan perhitungan—dan mereka menghasilkan definisi yang mirip.


title: Algoritme

text: Emil Post (1936) mendeskripsikan aksi dari sebuah "komputer" (manusia) sebagai berikut:


title: Algoritme

text: Simbol ruangnya yaitu


title: Algoritme

text:
Turing—model dari komputasinya sekarang dikenal dengan mesin Turing—memulai, sebagaimana Post, dengan analisis dari komputer manusia yang ia sederhanakan menjadi sekumpulan gerakan dasar sederhana dan "keadaan pikiran".
Tapi dia terus maju selangkah ke depan dan membuat sebuah mesin sebagai model dari komputasi angka.


title: Algoritme

text:
Reduksi Turing menghasilkan hal berikut:
"Bisa saja beberapa dari perubahan tersebut menyebabkan perubahan keadaan pikiran. Operasi tunggal paling umum oleh karena itu harus diambil jadi salah satu hal berikut:


title: Algoritme

text:
Beberapa tahun kemudian, Turing mengembangkan analisanya (tesis, secara definisi) dengan ekspresi kuat berikut:
Walau sangat mudah menangkap ide ini, namun ia membutuhkan beberapa definisi matematikan terbatas yang bisa diekspresikan . . . [dia mendiskusikan sejarah dari definisi seperti di atas dengan menghormati Godel, Herbrand, Kleen, Church, Turing dan Post] ... Kita mungkin gunakan pernyataan tersebut secara harfiah, memahami murni dengan proses mekanis yang mana dapat dilakukan oleh sebuah mesin. Memungkinkan untuk memberikan deskripsi matematis, dalam beberapa bentuk normal, dari struktur mesin tersebut. Perkembangan dari ide ini mengarah pada definisi penulis dari sebuah fungsi yang dapat dihitung, dan untuk mengidentifikasi komputibilitas † dengan penghitungan yang efektif . . . .


title: Algoritme

text: "J. Barkley Rosser" mendefinisikan 'metode [matematis] efektif' dengan cara berikut (kemiringan ditambahkan):


title: Algoritme

text:
Catatan kaki Rosser #5 merujuk karya dari (1) Church dan Kleene dan definisi dari definabiliti-λ, secara khusus Church menggunakannya dalam "An Unsolvable Problem of Elementary Number Theory"-nya (1936);
(2) Herbrand dan Godel dan penggunaan rekursi mereka terutama Godel menggunakannya dalam makalah terkenalnya "On Formally Undecidable Propositions of Principia Mathematica and Related Systems I" (1931);
dan (3) Post (1936) dan Turing (1936-7) dalam model mekanisme komputasi mereka.


title: Algoritme

text:
"Stephen C. Kleene" didefinisikan sebagai "Thesis I"-nya yang terkenal yang dikenal sebagai tesis Church-Turing.
Tapi dia melakukan hal tersebut dalam konteks berikut (penebalan dari aslinya):


title: Algoritme

text:
Sejumlah usaha telah diarahkan untuk memperbaiki lebih lanjut definisi dari "algoritme", 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).
Lebih lanjut, lihat karakterisasi algoritme.


title: Iterasi

text: Di dalam komputer/pemrograman, iterasi adalah sifat tertentu dari algoritme atau program komputer di mana suatu urutan atau lebih dari langkah algoritmik dilakukan di loop program. Hal ini dibedakan dari teknik berulang yang disebut rekursi.


title: Iterasi

text: Di dalam matematika, iterasi dapat diartikan sebagai suatu proses atau metode yang digunakan secara berulang-ulang (pengulangan) dalam menyelesaikan suatu permasalahan matematik.


title: Iterasi

text: Contoh dari suatu iterasi:


title: Rekursi

text:
Rekursi adalah proses pengulangan sesuatu dengan cara kesamaan-diri.
Sebagai contohnya, saat dua cermin berada paralel antara satu dengan yang lain, gambar yang tertangkap adalah suatu bentuk rekursi tak-terbatas.
Istilah ini memiliki makna beragam bergantung kepada ragam disiplin mulai dari linguistik sampai logika.
Penggunaan paling umum dari rekursi yaitu dalam matematika dan ilmu komputer, yang mengacu kepada suatu metode mendefinisikan fungsi yang mana fungsi tersebut menggunakan definisinya sendiri.
Secara spesifik hal ini mendefinisikan suatu instansi tak-terbatas (nilai fungsi), menggunakan ekpresi terbatas dengan beberapa instansi bisa merujuk ke instansi lainnya, tetapi dengan suatu cara sehingga tidak ada perulangan atau keterkaitan tak-terbatas dapat terjadi.
Istilah ini juga digunakan secara umum untuk menjelaskan suatu proses pengulangan objek dengan cara kesamaan-diri.


title: Rekursi

text: Dalam matematika dan ilmu komputer, kelas dari objek atau metode memperlihatkan perilaku rekursif bila mereka dapat didefinisikan oleh dua properti berikut:Sebagai contoh, berikut ini adalah definisi rekursif dari leluhur seseorang:


title: Rekursi

text:
Bilangan Fibonacci adalah contoh klasik dari rekursi:Banyak aksioma matematika berdasarkan aturan-aturan rekursif.
Sebagai contohnya, definisi formal dari bilangan asli pada Aksioma Peano dapat dideskripsikan sebagai: "0 adalah bilangan asli, dan setiap bilangan asli memiliki sebuah suksesor, yang juga merupakan bilangan asli."
Dengan kasus dasar ini dan aturan rekursif, seseorang dapat membuat himpunan dari semua bilangan asli.


title: Rekursi

text:
Gambaran humornya berbunyi: ""Untuk memahami rekursi, pertama anda harus memahami rekursi.""
Atau mungkin yang lebih akurat, dari Andrew Plotkin: ""Jika anda telah mengetahui apa itu rekursi, cukup ingat jawabannya. Kalau tidak, cari orang yang berdiri paling dekat dengan Douglas Hofstadter selain anda; lalu tanya dia rekursi itu apa.""


title: Rekursi

text: Objek matematika yang didefinisikan secara rekursif termasuk fungsi, himpunan, dan terutama sekali fraktal.


title: Rekursi

text:
Rekursi adalah suatu proses dengan salah satu langkah dalam prosedur tersebut menjalankan prosedur itu sendiri.
Prosedur yang melakukan rekursi disebut dengan 'rekursif'.


title: Rekursi

text:
Untuk memahami rekursi, seseorang harus mengetahui perbedaan antara sebuah prosedur dan jalannya sebuah prosedur.
Sebuah prosedur yaitu kumpulan langkah-langkah berdasarkan sekumpulan aturan.
Jalannya sebuah prosedur mengikuti aturan-aturan dan melakukan langkah-langkah.
Analoginya mungkin sebuah prosedur adalah seperti resep yang tertulis; menjalankan sebuah prosedur adalah seperti menyiapkan makanan.


title: Rekursi

text:
Rekursi berhubungan dengan, tetapi tidak sama, suatu referensi dalam spesifikasi prosedur sampai pada eksekusi beberapa prosedur lainnya.
Misalnya, suatu resep bisa mengacu pada memasak sayuran, yang merupakan prosedur yang kemudian membutuhkan memanaskan air, dan seterusnya.
Namun, prosedur rekursif adalah spesial dengan (paling tidak) salah satu langkahnya memanggil instansi baru dari prosedur yang sama, seperti suatu resep gandum hitam menggunakan beberapa sisa adonan dari resep yang sama yang telah dibuat.
Hal ini tentu saja membuat suatu kemungkinan perulangan tanpa berakhir; rekursi hanya dapat digunakan secara tepat dalam definisi jika langkah yang bersangkutan dilewat pada beberapa kasus sehingga prosedur dapat selesai, seperti resep gandum-hitam yang memberitahu anda bagaimana membuat adonan awal seandainya anda belum pernah membuatnya sebelumnya.
Bahkan jika didefinisikan secara tepat, prosedur rekursif tidak mudah dilakukan oleh manusia, karena ia membutuhkan membedakan pemanggilan prosedur yang baru dengan yang lama (yang telah dieksekusi sebagian); hal ini membutuhkan beberapa administrasi sejauh mana berbagai prosedur instan yang berjalan bersamaan telah berjalan.
Karena hal ini definisi rekursif sangat jarang dalam keadaan harian.
Contohnya dapat berupa prosedur untuk menemukan jalan melewati sebuah labirin.
Terus ke depan sampai menemui jalan keluar atau titik percabangan (sebuah titik mati dianggap sebagai sebuah titik percabangan dengan 0 cabang).
Jika titik yang ditemui adalah suatu jalan keluar,berhenti.
Kalau tidak coba setiap cabang bergantian, menggunakan prosedur secara rekursif; jika setiap percobaan gagal karena mencapai titik mati, kembali ke jalur yang menyebabkan titik percabangan dan laporkan kegagalan.
Apakah ini tepat mendefinisikan suatu prosedur pemberhentian bergantung kepada bentuk labirinnya: ia tidak membolehkan perulangan.
Dalam semua kasus, mengeksekusi prosedur membutuhkan pencatatan teliti semua titik percabangan yang telah dieksplorasi, dan cabang-cabang mana yang telah dicoba..


title: Rekursi

text:
Ahli linguistik Noam Chomsky memberikan teori bahwa ekstensi tak-terhingga dari setiap bahasa alami adalah memungkinkan menggunakan perangkat rekursif dengan menanamkan klausa dalam kalimat
(Aspects of the Theory of Syntax. 1965).
Sebagai contoh, dua kalimat sederhana -- ""Dorothy bertemu dengan Penyihir Jahat dari Barat di Munchkin Land"" dan ""Saudara perempuan Penyihir Jahat dibunuh di Munchkin Land""—dapat disisipkan dalam kalimat ketiga, ""Dorothy menyiram Penyihir Jahat dengan seember air"", untuk mendapatkan kalimat rekursif: ""Dorothy, yang bertemu dengan Penyihir Jahat dari Barat di Munchkin Land tempat saudara perempuannya dibunuh, menyiramnya dengan seember air.""


title: Rekursi

text:
Ide bahwa rekursi adalah suatu properti esensi dari bahasa manusia (seperti yang Chomsky ajukan) dibantah oleh linguis Daniel Everett dalam karyanya "Cultural Constraint on Grammar and Cognition in Pirahã: Another Look at the Design Features of Human Language", yang di sana dia berhipotesis bahwa faktor kultur membuat rekursi tidak dibutuhkan dalam perkembangan Bahasa Piraha.
Konsep ini, yang menantang ide Chomsky bahwa rekursi satu-satunya sifat yang membedakan komunikasi manusia dan hewan, sekarang sedang diperdebatkan.
Andrew Nevins, David Pesetsky dan Cilene Rodrigues berdebat melawan proposal tersebut.
Rekursi dalam linguistik membolehkan 'diskrit tak-terbatas' dengan menanamkan frasa dalam tipe frasa yang sama dalam suatu struktur hierarki.
Tanpa rekursi, bahasa tidak memiliki 'diskrit tak-terbatas' dan tidak dapat menanamkan kalimat menjadi tak-terbatas (dengan suatu efek 'Sarang boneka Rusia').
Everett membantah bahwa bahasa harus memiliki diskrit tak-terbatas, dan menegaskan bahwa bahasa Piraha—yang diklaimnya tidak memiliki rekursi—pada kenyataannya terbatas.
Dia menyamakannya dengan permainan terbatas catur, yang memiliki sejumlah pergerakan terbatas tetapi sangat produktif, dengan gerakan-gerakan baru diciptakan lewat sejarah.


title: Rekursi

text: Rekursi terkadang digunakan secara humor dalam buku ilmu komputer, pemrograman, filsafat, atau matematika. Adalah hal yang biasa bagi buku-buku tersebut untuk memasukan lelucon dalam glosarium-nya di antara barisan:


title: Rekursi

text:
Sebuah variasi ditemukan di halaman 269 dalam indeks dari beberapa edisi buku Kernighan dan Ritchie "The C Programming Language"; isi indeks secara rekursif mengacu kepada dirinya sendiri ("rekursi 86, 139, 141, 182, 202, 269").
Versi awal dari lelucon ini ada di dalam "Software Tools" oleh Kernighan dan Plauger, dan juga muncul dalam "The UNIX Programming Environment" oleh Kernighan dan Pike.
Ia tidak ada di edisi pertama dari "The C Programming Language".


title: Rekursi

text:
Lelucon yang lain adalah "Untuk memahami rekursi, anda harus memahami rekursi."
Dalam versi bahasa Inggris dari mesin pencari web Google, saat mencari kata untuk rekursi dalam bahasa Inggris "recursion" dilakukan, situs tersebut menyarankan "Did you mean: "recursion"."


title: Rekursi

text: Akronim berulang juga dapat sebagai contoh dari humor rekursif. PHP, contohnya, singkatan dari "PHP Hypertext Preprocessor", WINE singkatan dari "Wine Is Not an Emulator", GNU singkatan dari "GNU's not Unix".


title: Rekursi

text: Contoh kanonikal dari himpunan yang didefinisikan secara rekursif yaitu diberikan oleh bilangan asli:


title: Rekursi

text:
Contoh menarik lainnya adalah himpunan dari semua proposisi "benar terjangkau" dalam suatu sistem aksioma.Himpunan ini disebut 'proposisi benar terjangkau' karena dalam pendekatan non-konstruktif terhadap fondasi matematika, himpunan dari proposisi benar bisa lebih besar daripada himpunan yang dibangun secara rekursif dari aksioma-aksioma dan aturan-aturan inferensi.
Lihat juga Teorema ketaklengkapan Godel.


title: Rekursi

text:
Sebuah fungsi bisa didefinisikan sebagai bagian dari dirinya sendiri. Contoh yang terkenal adalah urutan bilangan Fibonacci: "F"("n") = "F"("n" − 1) + "F"("n" − 2).
Supaya definisi tersebut dapat berguna, ia harus mengarah pada nilai yang terdefinisi secara tak-rekursif, dalam kasus ini "F"(0) = 0 dan "F"(1) = 1.


title: Rekursi

text: Fungsi rekursif terkenal yaitu fungsi Ackermann yang mana—tidak seperti urutan Fibonacci—tidak dapat dengan mudah diekspresikan tanpa rekursi.


title: Rekursi

text: Menerapkan teknik standar dari pembuktian dengan kasus untuk mendefinisikan secara rekursif suatu himpunan atau fungsi, seperti bagian sebelumnya, menghasilkan induksi struktural, generalisasi ampuh dari induksi matematika secara luas digunakan untuk menurunkan pembuktian dalam logika matematika dan ilmu komputer.


title: Rekursi

text:
Pemrograman dinamis adalah suatu pendekatan terhadap optimisasi yang menempatkan ulang suatu permasalahan multiperiode atau tahapan dalam bentuk rekursif.
Kunci jawaban dari pemrograman dinamis adalah persamaan Bellman, yang menuliskan nilai dari permasalahan optimisasi pada waktu awal (atau langkah awal) berkenaan dengan nilainya pada waktu kemudian (atau langkah selanjutnya).


title: Rekursi

text:
Metode umum dari penyederhanaan adalah dengan membagi suatu permasalah menjadi beberapa sub-permasalahan dengan tipe yang sama.
Sebagai sebuah teknik dalam pemrograman komputer, hal ini disebut dengan "divide and conquer" dan merupakan kunci dari perancangan berbagai algoritme penting.
"Divide and conquer" menyediakan pendekatan atas-bawah dalam pemecahan masalah, dengan permasalahan diselesaikan dengan menyelesaikan instansi yang lebih kecil.
Pendekatan sebaliknya yaitu pemrograman dinamis.
Pendekatan ini menyelesaikannya secara bawah-atas, dengan permasalahan diselesaikan dengan menyelesaikan instansi yang lebih besar, sampai ukuran yang diinginkan dicapai.


title: Rekursi

text: Contoh klasik dari rekursi adalah definisi dari fungsi faktorial, diberikan dalam kode C:


title: Rekursi

text: Fungsi tersebut memanggil dirinya sendiri secara rekursif terhadap versi input yang lebih kecil (n-1) dan mengkalikan hasil dari pemanggilan rekursif dengan n, sampai pada kasus dasar, sama analoginya dengan definisi matematika dari faktorial.


title: Rekursi

text:
Rekursi dalam pemrograman komputer dicontohkan saat sebuah fungsi didefinisikan dalam bentuk sederhana, bahkan versi terkecil dari dirinya.
Solusi dari permasalahan kemudian dirancang dengan menggabungkan solusi-solusi yang didapat dari versi sederhana dari permasalahan.
Salah satu contoh aplikasi rekursi yaitu dalam "parsing" untuk bahasa pemrograman.
Keuntungan utama dari rekursi adalah suatu himpunan tak-terbatas dari kalimat yang memungkinkan, perancangan atau data lainnya dapat didefinisikan, diurai atau dihasilkan dengan suatu program komputer yang terbatas.


title: Rekursi

text:
Relasi perulangan adalah persamaan-persamaan untuk menentukan satu atau lebih urutan-urutan secara rekursif.
Beberapa relasi perulangan tertentu dapat "diselesaikan" untuk mendapatkan definisi bukan-rekursif.


title: Rekursi

text:
Penggunaan rekursi dalam suatu algoritme memiliki kelebihan dan kekurangan.
Kelebihan utamanya adalah biasanya kesederhanaan.
Kekurangan utamanya adalah terkadang algoritme tersebut membutuhkan memori yang sangat banyak jika kedalaman rekursi sangat besar.


title: Rekursi

text:
Dalam teori himpunan, ini adalah teorema yang menjamin bahwa fungsi yang terdefinisi secara rekursif itu ada.
Diberikan suatu himpunan "X", sebuah elemen "a" dari "X" dan sebuah fungsi formula_4, teorema menyatakan bahwa ada fungsi unik formula_5 (dengan formula_1 menunjukkan himpunan dari bilangan asli termasuk nol) sehingga
untuk setiap bilangan asli "n".


title: Rekursi

text:
Ambil dua fungsi
formula_5
dan
formula_10
sehingga:


title: Rekursi

text: dengan "a" adalah elemen dari "X".


title: Rekursi

text:
Ia dapat dibuktikan dengan induksi matematika bahwa
formula_15
untuk semua bilangan asli "n":


title: Rekursi

text:
Dengan induksi,
formula_15
untuk semua
formula_22.


title: Rekursi

text: Beberapa relasi perulangan umum yaitu:


title: Heuristik

text: Heuristik adalah seni dan ilmu pengetahuan yang berhubungan dengan suatu penemuan. Kata ini berasal dari akar yang sama dalam bahasa Yunani dengan kata "eureka", berarti 'untuk menemukan'. Heuristik yang berkaitan dengan pemecahan masalah adalah cara menujukan pemikiran seseorang dalam melakukan proses pemecahan sampai masalah tersebut berhasil dipecahkan. Ini berbeda dari algoritme di mana hanya digunakan sebagai peraturan atau garis pedoman, bertentangan dengan prosedur invarian.


title: Heuristik

text: Heuristik mungkin tidak selalu mencapai hasil yang diinginkan atau memecahkan masalah atau mungin justru menimbulkan masalah baru untuk dipecahkan, tetapi proses heuristik ini dapat teramat berharga pada proses berpikir seseorang di mana pada proses pemecahan masalah banyak menuntut pemikiran relasional antar komponen yang membentuk masalah tersebut sehingga dapat meningkatkan kualitas pemikiran yang lebih tinggi. Heuristik yang baik secara dramatis bisa mengurangi waktu yang diharuskan memecahkan masalah dengan menghapuskan keperluan untuk mempertimbangkan kemungkinan atau relasi antar komponen pembentuk masalah yang mungkin tidak relevan digunakan.


title: Aljabar Boolean

text: Dalam matematika dan ilmu komputer, Aljabar Boolean adalah struktur aljabar yang "mencakup intisari" operasi logika AND, OR, NOR, dan NAND dan juga teori himpunan untuk operasi union, interseksi dan komplemen.


title: Aljabar Boolean

text: Penamaan Aljabar Boolean sendiri berasal dari nama seorang matematikawan asal Inggris, bernama George Boole. Dialah yang pertama kali mendefinisikan istilah itu sebagai bagian dari sistem logika pada pertengahan abad ke-19.


title: Aljabar Boolean

text: Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu true atau false (benar atau salah).


title: Aljabar Boolean

text: Pada beberapa bahasa pemograman nilai true bisa digantikan 1 dan nilai false digantikan 0.


title: Aljabar Boolean

text:
Pengecekan tipe data boolean pada C
Pengecekan tipe data boolean pada javascript
PHP memiliki tipe data boolean dengan dua nilai true dan false (huruf besar atau kecil tidak berpengaruh).
Nilai yang ekuivalen dengan false adalah:


title: Logika

text: Logika berasal dari kata Yunani kuno λόγος ("logos") yang berarti hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa. Logika adalah salah satu cabang filsafat.


title: Logika

text: Sebagai ilmu, logika disebut dengan logike episteme () atau ilmu logika (ilmu pengetahuan) yang mempelajari kecakapan untuk berpikir secara lurus, tepat, dan teratur.


title: Logika

text: Ilmu di sini mengacu pada kemampuan rasional untuk mengetahui dan kecakapan mengacu pada kesanggupan akal budi untuk mewujudkan pengetahuan ke dalam tindakan. Kata logis yang dipergunakan tersebut bisa diartikan dengan masuk akal.


title: Logika

text: Logika merupakan sebuah ilmu pengetahuan di mana objek materialnya adalah berpikir (khususnya penalaran/proses penalaran) dan objek formal logika adalah berpikir/penalaran yang ditinjau dari segi ketepatannya.


title: Logika

text: Logika adalah sebuah cabang filsafat yang praktis. Praktis di sini berarti logika dapat dipraktikkan dalam kehidupan sehari-hari.


title: Logika

text: Logika lahir bersama-sama dengan lahirnya filsafat di Yunani. Dalam usaha untuk menaruh pikiran-pikirannya serta pendapat-pendapatnya, filsuf-filsuf Yunani kuno tidak jarang mencoba membantah pikiran yang lain dengan menunjukkan kesesatan penalarannya.


title: Logika

text: Logika digunakan untuk melakukan pembuktian. Logika mengatakan yang bentuk inferensi yang berlaku dan yang tidak. Secara tradisional, logika dipelajari sebagai cabang filosofi, tetapi juga bisa dianggap sebagai cabang matematika. Logika tidak bisa dihindarkan dalam proses hidup mencari kebenaran.


title: Logika

text: Konsep bentuk logis adalah inti dari logika. Konsep itu menyatakan bahwa kesahihan (validitas) sebuah argumen ditentukan oleh bentuk logisnya, bukan oleh isinya. Dalam hal ini logika menjadi alat untuk menganalisis argumen, yakni hubungan antara kesimpulan dan bukti atau bukti-bukti yang diberikan (premis). Logika silogistik tradisional Aristoteles dan logika simbolik modern adalah contoh-contoh dari logika formal.


title: Logika

text: Dasar penalaran dalam logika ada dua, yakni deduktif dan induktif.


title: Logika

text: Penalaran deduktif, kadang disebut logika deduktif, adalah penalaran yang membangun atau mengevaluasi argumen deduktif. Argumen dinyatakan deduktif jika kebenaran dari kesimpulan ditarik atau merupakan konsekuensi logis dari premis-premisnya. Argumen deduktif dinyatakan valid atau tidak valid, bukan benar atau salah. Sebuah argumen deduktif dinyatakan valid jika dan hanya jika kesimpulannya merupakan konsekuensi logis dari premis-premisnya.


title: Logika

text: Contoh argumen deduktif:


title: Logika

text: Penalaran induktif, kadang disebut logika induktif, adalah penalaran yang berangkat dari serangkaian fakta-fakta khusus untuk mencapai kesimpulan umum.


title: Logika

text: Contoh argumen induktif:


title: Logika

text: Tabel di bawah ini menunjukkan beberapa ciri utama yang membedakan penalaran induktif dan deduktif.


title: Logika

text: Logika dimulai sejak Thales (624 SM - 548 SM), filsuf Yunani pertama yang meninggalkan segala dongeng, takhayul, dan cerita-cerita isapan jempol dan berpaling kepada akal budi untuk memecahkan rahasia alam semesta.


title: Logika

text: Thales mengatakan bahwa air adalah arkhe (Yunani) yang berarti prinsip atau asas utama alam semesta. Saat itu Thales telah mengenalkan logika induktif.


title: Logika

text: Aristoteles kemudian mengenalkan logika sebagai ilmu, yang kemudian disebut "logica scientica". Aristoteles mengatakan bahwa Thales menarik kesimpulan bahwa air adalah "arkhe" alam semesta dengan alasan bahwa air adalah "jiwa" segala sesuatu.


title: Logika

text:
Dalam logika Thales, air adalah arkhe alam semesta, yang menurut Aristoteles disimpulkan dari:
Jadi, air adalah jiwa dari segala sesuatu, yang berarti, air adalah "arkhe" alam semesta.


title: Logika

text: Sejak saat Thales sang filsuf mengenalkan pernyataannya, logika telah mulai dikembangkan. Kaum Sofis beserta Plato (427 SM-347 SM) juga telah merintis dan memberikan saran-saran dalam bidang ini.


title: Logika

text: Pada masa Aristoteles logika masih disebut dengan "analitica" , yang secara khusus meneliti berbagai argumentasi yang berangkat dari proposisi yang benar, dan "dialektika" yang secara khusus meneliti argumentasi yang berangkat dari proposisi yang masih diragukan kebenarannya. Inti dari logika Aristoteles adalah silogisme.


title: Logika

text: Buku Aristoteles "to Oraganon" (alat) berjumlah enam, yaitu:


title: Logika

text: Pada 370 SM - 288 SM Theophrastus, murid Aristoteles yang menjadi pemimpin Lyceum, melanjutkan pengembangn logika.


title: Logika

text: Istilah logika untuk pertama kalinya dikenalkan oleh Zeno dari Citium 334 SM - 226 SM pelopor Kaum Stoa. Sistematisasi logika terjadi pada masa Galenus (130 M - 201 M) dan Sextus Empiricus 200 M, dua orang dokter medis yang mengembangkan logika dengan menerapkan metode geometri.


title: Logika

text: Porohyus (232 - 305) membuat suatu pengantar ("eisagoge") pada "Categoriae", salah satu buku Aristoteles.


title: Logika

text: Boethius (480-524) menerjemahkan "Eisagoge" Porphyrius ke dalam bahasa Latin dan menambahkan komentar- komentarnya.


title: Logika

text: St. Yohanes dari Damaskus (674 - 749) menerbitkan "Fons Scienteae".


title: Logika

text: Pada abad 9 hingga abad 15, buku-buku Aristoteles seperti "De Interpretatione", "Eisagoge" oleh Porphyus dan karya Boethius masih digunakan.


title: Logika

text: St. Thomas Aquinas 1224-1274 dan kawan-kawannya berusaha mengadakan sistematisasi logika.


title: Logika

text: Lahirlah logika modern dengan tokoh-tokoh seperti:


title: Logika

text: Pengembangan dan penggunaan logika Aristoteles secara murni diteruskan oleh Thomas Hobbes (1588 - 1679) dengan karyanya Leviatan dan John Locke (1632-1704) dalam "An Essay Concerning Human Understanding"


title: Logika

text: Francis Bacon (1561 - 1626) mengembangkan logika induktif yang diperkenalkan dalam bukunya "Novum Organum Scientiarum".


title: Logika

text: J.S. Mills (1806 - 1873) melanjutkan logika yang menekankan pada pemikiran induksi dalam bukunya "System of Logic"


title: Logika

text: Lalu logika diperkaya dengan hadirnya pelopor-pelopor logika simbolik seperti:


title: Logika

text: Lalu Chares Sanders Peirce (1839-1914), seorang filsuf Amerika Serikat yang pernah mengajar di Johns Hopkins University,melengkapi logika simbolik dengan karya-karya tulisnya. Ia memperkenalkan dalil Peirce ("Peirce's Law") yang menafsirkan logika selaku teori umum mengenai tanda ("general theory of signs)


title: Logika

text: Puncak kejayaan logika simbolik terjadi pada tahun 1910-1913 dengan terbitnya "Principia Mathematica " tiga jilid yang merupakan karya bersama Alfred North Whitehead (1861 - 1914) dan Bertrand Arthur William Russel (1872 - 1970).


title: Logika

text: Logika simbolik lalu diteruskan oleh Ludwig Wittgenstein (1889-1951), Rudolf Carnap (1891-1970), Kurt Godel (1906-1978), dan lain-lain.


title: Logika

text: Logika masuk ke dalam kategori matematika murni karena matematika adalah logika yang tersistematisasi. Matematika adalah pendekatan logika kepada metode ilmu ukur yang menggunakan tanda-tanda atau simbol-simbol matematik (logika simbolik). Logika tersistematisasi dikenalkan oleh dua orang dokter medis, Galenus (130-201 M) dan Sextus Empiricus (sekitar 200 M) yang mengembangkan logika dengan menerapkan metode geometri.


title: Logika

text: Puncak logika simbolik terjadi pada tahun 1910-1913 dengan terbitnya "Principia Mathematica " tiga jilid yang merupakan karya bersama Alfred North Whitehead (1861 - 1914) dan Bertrand Arthur William Russel (1872 - 1970).Logika alamiah adalah kinerja akal budi manusia yang berpikir secara tepat dan lurus sebelum dipengaruhi oleh keinginan-keinginan dan kecenderungan-kecenderungan yang subjektif. Kemampuan logika alamiah manusia ada sejak lahir. Logika ini bisa dipelajari dengan memberi contoh penerapan dalam kehidupan nyata.


title: Logika

text: Logika ilmiah memperhalus, mempertajam pikiran serta akal budi. Logika ilmiah menjadi ilmu khusus yang merumuskan asas-asas yang harus ditepati dalam setiap pemikiran. Berkat pertolongan logika ilmiah inilah akal budi dapat bekerja dengan lebih tepat, lebih teliti, lebih mudah, dan lebih aman. Logika ilmiah dimaksudkan untuk menghindarkan kesesatan atau, paling tidak, dikurangi.


title: Logika konjungsi

text:
Dalam logika dan bidang teknik yang memakainya, konjungsi, atau dan, adalah operator logika dalam kalkulus proposisional.
Hasil dari dua proposisi juga disebut konjungsi mereka.
Hasil konjungsi adalah benar jika "kedua" proposisinya benar; jika tidak, hasilnya adalah salah.


title: Logika konjungsi

text: Logika konjungsi adalah operator logika pada dua nilai kebenaran, umumnya nilai dari dua proposisi atau pernyatan, yang menghasilkan nilai "benar" jika dan hanya jika kedua operand bernilai benar.


title: Logika disjungsi

text: Dalam logika dan bidang teknik yang memakainya, disjungsi, atau atau, adalah operator logika dalam kalkulus proposisional. Hasil dari dua proposisi juga disebut disjungsi mereka. Hasil disjungsi adalah salah jika "kedua" proposisinya salah; jika tidak, hasilnya adalah benar.


title: Logika negasi

text:
Dalam logika dan bidang teknik yang memakainya, negasi, atau tidak, adalah operator logika dalam kalkulus proposisional.
Hasil dari dua proposisi juga disebut negasi mereka.
Hasil negasi adalah benar jika proposisinya salah; jika tidak, hasilnya adalah salah.


title: Kabel

text: Kabel dalam bahasa Inggris disebut cable merupakan sebuah alat yang digunakan untuk mentransmisikan sinyal dari satu tempat ke tempat lain.


title: Kabel

text: Kabel seiring dengan perkembangannya dari waktu ke waktu terdiri dari berbagai jenis dan ukuran yang membedakan satu dengan lainnya. Berdasarkan jenisnya, kabel terbagi menjadi 3 yakni kabel tembaga "(copper)", kabel koaksial, dan kabel serat optik.


title: Kabel

text: Kabel mulai ditemukan saat manusia membutuhkan sebuah alat yang berguna untuk menghubungkan suatu perangkat dengan perangkat lain., dan ditemukan pada awal 1400an. Proses penemuan kabel ini tidak sama antara satu jenis kabel dengan kabel lainnya. Penemuan kabel tembaga membutuhkan proses yang paling lama dibanding kabel yang lain, hingga akhirnya berhasil ditemukan sebuah telepon. Penemuan kabel koaksial mengikuti penemuan kabel tembaga. Baru-baru ini, kabel koaksial telah disempurnakan kembali dengan penemuan kabel serat optik yang sangat tipis dan mampu mentransmisikan sinyal cahaya.


title: Kabel

text: Kabel tembaga terbagi atas UTP "(Unshielded Twisted Pair)" dan STP "(Shielded Twisted Pair)". Perbedaan dari keduanya adalah adanya pelindung dan tidak adanya pelindung pada bagian inti konduktornya. Kabel UTP terdiri dari 4 pasang kabel dengan jalinan yang berbeda-beda tiap incinya. Semakin rapat jalinan tersebut, tingkat transimisi dan harganya semakin tinggi. Kabel UTP ini menggunakan konektor RJ-45 yang biasa digunakan untuk Ethernet, ISDN, atau sambungan telepon. Dengan kabel UTP, kita dapat mengirimkan data lebih banyak dibandingkan LAN.


title: Kabel

text: Sedangkan, kabel STP terdiri dari sepasang kabel yang dilindungi oleh timah, dan masing-masing kabel tersebut dibungkus oleh pelindung.


title: Kabel

text: Kabel koaksial ditemukan oleh "Oliver Heaviside". Merupakan kabel yang terdiri dari dua buah konduktor, yaitu terletak di tengah yang terbuat dari tembaga keras yang dilapisi dengan isolator dan melingkar di luar isolator pertama dan tertutup oleh isolator luar. Kabel koaksial memiliki 3 bagian utama, yakni pelindung luar, pelindung berupa anyaman tembaga, dan isolator plastik.


title: Kabel

text: Kabel koaksial memiliki kapasitas pita lebar ("bandwidth") 10 Mbps dan kapasitas node 30 node.Kabel koaksial sering dipakai sebagai jalur transmisi untuk frekuensi sinyal radio.


title: Kabel

text: Beberapa jenis kabel koaksial, yaitu:Kabel serat optik merupakan sebuah kabel yang terbuat dari kaca atau plastik yang berfungsi untuk mentransmisikan sinyal cahaya. Kabel serat optik berukuran sangat tipis dan berdiameter sehelai rambut manusia yang saat ini paling banyak digunakan sebagai media transimisi dalam teknologi komunikasi modern.


title: Kabel

text: Bagian-bagian utama serat optik tersebut adalah bagian inti tempat merambatnya gelombang cahaya, lapisan selimut yang mengelilingi bagian inti dengan indeks bias yang lebih kecil, dan lapisan "jake" yang melindungi bagian inti dan selimut dengan plastik yang elastis. Komponen utama sistem serat optik terdiri dari "transmitter" ("Laser Diode" dan "Laser Emmiting Diode"), "information channel" yang berupa serat optik, dan "receiver".


title: Kabel

text:
Secara umum, kabel memiliki fungsi sebagai media transimisi yang berperan untuk mempercepat penyampaian pesan. Setiap kabel memiliki spesialisasi fungsi yang berbeda-beda. Kabel tembaga seringkali digunakan sebagai penghubung ke jaringan telepon dan Ethernet. Kabel koaksial sering kita gunakan pada televisi dan radio. Sedangkan, kabel fiber optik sering kita gunakan sebagai jalinan penghubung bawah laut ("underwater lines") merupakan media transmisi antar samudera, "qube", dan "video pay per view".
Mobileindonesia.net - Kabel Coaxial


title: Kabin

text: Kabin, (bahasa Belanda "cabine") merupakan ruangan tertutup yang mempunyai beberapa arti:


title: Kabinet

text: Kabinet bisa berarti:


title: Klasik

text: Klasik secara harafiah berarti; berasal dari masa lampau, tetapi tidak kolot atau ketinggalan zaman. Kata ini juga memiliki konotasi agung, adiluhung dan serba tinggi.


title: Klasik

text: Klasik dapat mengacu pada:


title: Kidung

text: Kidung merupakan kosakata bahasa Jawa tengahan dan termasuk dalam klasifikasi kata benda yang mempunyai padanan dengan "tembang" atau "sekar" 'nyanyian' dalam bahasa Jawa baru. Bentuk verba "kidung" dalam bahasa Jawa tengahan menjadi "mangidung" 'bernyanyi'. Dalam bahasa Jawa baru juga mengenal istilah "kidung" yang memiliki makna yang kurang lebih sama dengan "kidung" dalam bahasa Jawa tengahan, dan bentuk verbanya menjadi "ngidung" atau "angidung". Selain itu, terdapat perbedaan pengertian antara "kidung" sebagai suatu puisi yang berupa tembang dan "sekar tengahan" atau "tengahan" sebagai pola metrum.


title: Kabul (disambiguasi)

text: Kabul bisa berarti:


title: Kabul (disambiguasi)

text: Biasanya kata ini dipakai dalam bentuk derivasi: terkabul.


title: Bahasa pemrograman

text: Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.


title: Bahasa pemrograman

text: Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:


title: Bahasa pemrograman

text:
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.
Bahasa Pemrograman (programming language) adalah sebuah instruksi standar untuk memerintah komputer agar menjalankan fungsi tertentu. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.


title: Bahasa pemrograman

text: Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa pemrograman tersebut berupa program/aplikasi. Contohnya adalah program yang digunakan oleh kasir di mal-mal atau swalayan, penggunaan lampu lalu lintas di jalan raya, dll.


title: Bahasa pemrograman

text: Bahasa Pemrograman yang kita kenal ada banyak sekali di belahan dunia, tentang ilmu komputer dan teknologi dewasa ini. Perkembangannya mengikuti tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh bahasa pemrograman yang kita kenal antara lain adalah untuk membuat aplikasi game, antivirus, web, dan teknologi lainnya.


title: Bahasa pemrograman

text: Bahasa pemrograman komputer yang kita kenal antara lain adalah Java, Visual Basic, C++, C, Cobol, PHP, .Net, dan ratusan bahasa lainnya. Namun tentu saja kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat yang menggunakannya.


title: Bahasa pemrograman

text: Secara umum bahasa pemrograman terbagi menjadi 4 kelompok, yaitu :


title: Bahasa pemrograman

text: Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java, PHP.


title: Bahasa pemrograman

text: Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.


title: Bahasa pemrograman

text:
Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly.
Sedangkan menurut generasinya, bahasa pemrograman digolongkan menjadi 4 generasi:


title: Bahasa pemrograman

text: Proses pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.


title: Bahasa pemrograman

text: Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.


title: Bahasa pemrograman

text: Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.


title: Bahasa pemrograman

text: Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode. Meskipun tampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.


title: Bahasa pemrograman

text: Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda. Misalnya untuk membuat driver hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly. Contohnya sistem operasi linux yang open source. Jika anda melihat kode sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C. Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic. Bahasa tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI yang memukau.


title: Kami

text: Kami dapat merujuk kepada beberapa hal:


title: Klausa

text: Klausa dalam tata bahasa, adalah sekumpulan kata yang terdiri dari subjek dan predikat walau dalam beberapa bahasa dan beberapa jenis klausa, subjek dari klausa mungkin tidak tampak secara eksplisit dan hal ini khususnya umum dalam Bahasa bersubyek nol. Sebuah kalimat paling sederhana terdiri dari satu klausa sedangkan kalimat yang lebih rumit terdiri dari beberapa klausa dan satu klausa juga terdiri dari beberapa klausa.


title: Klausa

text: Klausa sering kali di kontraskan dengan frasa. Sebuah kumpulan kata dikatakan sebagai klausa apabila ia mempunyai Kata kerja finit dan subjeknya sementara sebuah frasa berisi kata kerja finit namun tanpa subjeknya Frasa kata kerja, atau tidak berisi kata kerja. Sebagai contoh kalimat "Aku tidak tahu kalau kamu membuat lukisan itu", "kamu membuat lukisan itu" adalah klausa dan sebuah kalimat benuh sedangkan "lukisan itu" dan "membuat lukisan itu" adalah sebuah frasa. Ahli Bahasa masa kini tidak membuat perbedaan seperti itu, mereka menerima ide akan klausa non-finit, klausa yang di atur disekitar kata kerja non-finit.


title: Klausa

text: Klausa umumnya di bagi menjadi klausa dependen dan klausa independen. Sebuah klausa independen dapat berdiri sendiri sebagai sebuah kalimat sedangkan klausa dependen harus terhubung dengan klausa lainnya. Klausa independen dapat berupa anak kalimat atau kalimat yang setara dengan klausa yang lainnya.


title: Klausa

text: klausa merupakan padanan kalimat yang bisa membentuk makna tertentu


title: Pemrograman

text: Pemrograman adalah proses menulis, menguji dan memperbaiki ("debug"), dan memelihara kode yang membangun suatu program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Untuk melakukan pemrograman, diperlukan keterampilan dalam algoritme, logika, bahasa pemrograman, dan pada banyak kasus, pengetahuan-pengetahuan lain seperti matematika.


title: Pemrograman

text: Pemrograman adalah suatu seni dalam menggunakan satu atau lebih algoritme yang saling berhubungan dengan menggunakan suatu bahasa pemrograman tertentu sehingga menjadi suatu program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.


title: Pemrograman

text: Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan ketiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi saat dijalankan ("run time") atau memori yang digunakan.


title: Pemrograman

text: Pemrograman adalah bahan yang digunakan di berbagai kompetisi komputer di Indonesia maupun dunia. Di tingkat SMA, contohnya, pemrograman dipertandingkan dalam Olimpiade Sains Nasional setiap tahun. Ketigapuluh peraih medali di Olimpiade Sains Nasional ini kemudian menjadi Tim Olimpiade Komputer Indonesia, dan menempuh Pelatihan Nasional yang menyeleksi empat orang wakil untuk mengikuti Olimpiade Sains Internasional bidang Informatika ("International Olympiad in Informatics") yang diadakan setiap tahun.


title: Pemrograman

text:
Mekanisme Antikythera dari Yunani kuno adalah kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi, [3] yang dilacak siklus Metonik masih digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung tanggal olimpiade [4]. Al-Jazari dibangun Automata diprogram pada tahun 1206. Salah satu sistem yang digunakan dalam perangkat ini adalah penggunaan pasak dan Cams ditempatkan ke drum kayu di lokasi tertentu, yang secara berurutan akan memicu tuas yang pada gilirannya dioperasikan instrumen perkusi. Output dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. [5] [6] The Jacquard Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan serangkaian karton kartu dengan menekan lubang di dalamnya. Pola lubang pola yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan Analytical Engine. Program komputer pertama ditulis untuk Analytical Engine oleh matematikawan Ada Lovelace untuk menghitung urutan Bilangan Bernoulli. [7] Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama dengan cara untuk mengatur dan masukan instruksi dengan cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan, menyebabkan perkembangan modern pemrograman komputer. Pengembangan pemrograman komputer dipercepat melalui Revolusi Industri.
Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin dibaca dari media, di atas, telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..." [8] Untuk memproses kartu menekan ini, pertama kali dikenal sebagai "kartu Hollerith" dia menciptakan tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM). Penambahan panel kontrol (plugboard) ke 1906 Tipe I Tabulator memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai mesin panel kontrol diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.


title: Pemrograman

text:
Data dan instruksi dapat disimpan pada kartu punched eksternal, yang disimpan dalam rangka dan disusun dalam deck.
Penemuan arsitektur von Neumann memungkinkan program komputer untuk disimpan dalam memori komputer. Program awal harus susah payah dibuat dengan menggunakan instruksi (operasi dasar) dari mesin tertentu, sering kali dalam notasi biner. Setiap model komputer mungkin akan menggunakan instruksi yang berbeda (bahasa mesin) untuk melakukan tugas yang sama. Kemudian, perakitan bahasa tersebut dikembangkan yang memungkinkan programmer menentukan setiap instruksi dalam format teks, singkatan memasukkan kode untuk setiap operasi, bukan menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X, JUMLAH). Memasuki sebuah program dalam bahasa assembly biasanya lebih nyaman, lebih cepat, dan kurang rentan terhadap kesalahan manusia daripada menggunakan bahasa mesin, tetapi karena bahasa assembly adalah sedikit lebih dari satu notasi yang berbeda untuk bahasa mesin, setiap dua mesin dengan instruksi yang berbeda set juga memiliki perakitan yang berbeda bahasa.
Pada tahun 1954, FORTRAN diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk memiliki implementasi fungsional, dibandingkan dengan hanya desain di atas kertas [9] [10] (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum. bahasa pemrograman yang memungkinkan programmer untuk menulis program dalam istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat abstraksi "lebih tinggi" daripada bahasa assembly.) Ini memungkinkan programmer untuk menentukan perhitungan dengan memasukkan formula secara langsung (misalnya Y = X * 2 + 5 * X + 9). Program teks, atau sumber, diubah menjadi instruksi mesin menggunakan program khusus yang disebut kompilator, yang diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN adalah singkatan dari "Formula Translation". Banyak bahasa lainnya dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas. (Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk menggantikannya.)
Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih praktis daripada pada masa lalu. Bahasa ini semakin disarikan biasanya lebih mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti yang di mana tingkat rendah kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum adalah penting.


title: Pemrograman

text: Sepanjang paruh kedua abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karier pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi di daerah kurang berkembang. Tidak jelas seberapa jauh kecenderungan ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan.