Anda di halaman 1dari 30

Tugas 1

1. Buat Rangkuman yang bahan dan materinya dari Internet tentang:


a) Algoritma dan Dunia Pemrograman Komputer, dengan Spasi 1,5 dibuat pada Microsoft
Word, dengan Daftar Pustaka Minimal 5
Jawaban :
 Pengertian Algoritma
Algoritma adalah suatu upaya dengan urutan operasi yang disusun secara logis dan sistematis untuk
menyelesaikan masalah untuk menghasilkan suatu output tertentu.
 Keterkaitan antara Algoritma dan Dunia Pemrograman
Dalam komputasi, algoritma sangat penting karena berfungsi sebagai prosedur sistematis yang
diperlukan komputer. Algoritma ini merupakan suatu proses untuk menghasilkan suatu output. Dalam
dunia pemrograman, sangat penting sebuah peran algoritma. Sebelum membuat program,
seorang programmer pasti memiliki ide dan tujuan program tersebut dibuat. Agar tujuan itu tercapai,
pasti ada proses didalamnya. Proses itulah yang disebut algoritma. Seorang programmer mendesain
algoritma atau urutan proses supaya program tersebut dapat berjalan sesuai fungsinya dan tujuannya.
Tanpa algoritma yang logis dan sistematis, program akan berjalan berantakan.
 Pendekatan umum yang digunakan dalam mendesain sebuah algoritma
Tidak ada pedoman baku tentang teknik / cara baku pembuatan dan penyusunan algoritma, namun
diberikan syarat keterpenuhan. Syarat ketercapaian suatu algoritma adalah apabila memenuhi syarat
berikut ini menurut Ellis Horowitz dan Sartaj Sahni :

1. Input : boleh nol atau lebih masukan dalam satu algoritma.


2. Output : dalam satu algoritma dipersyaratkan memiliki satu keluaran boleh lebih.
3. Definiteness : setiap intruksi harus jelas, tidak boleh ambigu ( bermakna ganda atau lebih
sehingga membingungkan.
4. Finiteness : menyatakan bahwa setelah melakukan proses maka apapun kondisinnya suatu
algoritma harus memiliki akhir.
5. Effectifeness : algoritma bekerja secara efektif yaitu semua operasi yang dilakukan bersifat
sederhana dan dapat diselesaikan dengan waktu yang singkat.

Definisi dan Pengertian Algoritma

Pengertian algoritma pada dasarnya adalah susunan logis dan sistematis yang
digunakan untuk memecahkan atau pun menyelesaikan suatu permasalahan tertentu. Jadi,
setiap susunan logis yang diurutkan berdasarkan sistematika tertentu yang dipakai untuk
menyelesaikan permasalahan dapat digolongkan sebagai sebuah algoritma. Susunan atau
pun langkah – langkah memasak mie intan misalnya, langkah – langkah sistematis yang
digunakan untuk memasak mie instan dapat digolongkan ke dalam logaritma, karena
menyelesaikan sebuah permasalahan yaitu permasalahan lapar yang dirasakan oleh
manusia.
Dalam dunia komputer sendiri, algoritma merupakan sistem kerja komputer yang terdiri
atas sekumpulan perintah terintegrasi pada brainware, software, dan hardware. Tanpa
salah satu dari tiga bagian sistem di atas, sebuah komputer tidak akan dapat
dioperasikan sama sekali.

Algoritma dalam Dunia Pemrograman

Dalam dunia pemrograman, algoritma digunakan untuk membangun berbagai macam


software yang digunakan pada perangkat komputer. Penerapan sistem algoritma dalam
software biasanya dilakukan melalui beberapa jenis bahasa pemrograman seperti bahasa
pemrograman C, bahasa pemrograman C#, dan bahasa pemrograman Visual Basic.

Tanpa algoritma yang tepat, susunan sintax atau pun baris – baris kode bahasa
pemrograman yang telah dibuat tidak akan ada artinya sama sekali. Hal ini dikarenakan
seluruh baris – baris kode yang dibuat dengan menggunakan tiga macam bahasa
pemrograman di atas diatur sepenuhnya oleh algoritma yang dibuat. Dari mulai aktivitas
pembukaan software aplikasi hingga ke berbagai macam aktivitas kerja yang digunakan
oleh penggunanya, semuanya diatur oleh algoritma pemrograman yang dibuat oleh
pengembang software tersebut.

Perlu Anda ketahui, algoritma sangat jauh berbeda dengan logaritma yang ada pada ilmu
matematika. Algoritma merupakan langkah – langkah sistematis yang dijalankan untuk
menyelesaikan suatu permasalahan tertentu, sedangkan logaritma merupakan kebalikan
dari eksponensial atau pun pemangkatan. Meskipun berbeda, dalam beberapa kasus
pemrograman, logaritma sering kali digunakan sebagai bagian dari sebuah algoritma
pemrograman.

Algoritma & pemrograman adalah sesuatu yang berbeda. Kendati demikian, keduanya
kerap dianggap sama. Belajar algoritma komputer akan membuat Anda mampu
mengetahui definisi, dan membedakan kedua istilah tersebut. Anda juga akan mengetahui
bahasa pemrograman. Dikutip dari Oolish Blog UNS, algoritma adalah urutan langkah-
langkah logis penyelesaian sebuah masalah yang disusun secara logis dan sistematis.

Mengenai asal- usul dari kata algoritma itu sendiri bukan merupakan sesuatu yang
penting dalam pembahasan di dunia pemrograman. Setiap langkah dalam program
algoritma ini haruslah logis dan jelas. Yang dimaksud jelas adalah memiliki nilai benar
atau salah dan tidak memiliki nilai di tengah-tengah. Alogoritma juga erat kaitannya
dengan step by step dalam melakukan pekerjaan. Anda akan melihat proses dari sebuah
hasil kerja.
Algoritma pemrograman tidak selalu identik dengan angka. Terdapat 3 pertimbangan
dalam pemilihan algoritma. Ke-3 pertimbangan tersebut adalah benar, baik, dan efisien.
Benar berarti output dari algoritma tersebut tidak salah. Sebaik apapun algoritmanya, jika
salah, maka menjadi percuma.

Baik maksudnya seberapa baik hasil dari algoritma tersebut dengan indikator kedekatan
antara hasil dengan nilai yang real. Sebuah algoritma program haruslah efisien dari segi
waktu dan memori. Jangan sampai algoritma tersebut menghabiskan waktu dan
menghabiskan tempat. Sekarang, apa bedanya algoritma dengan program? Program itu
adalah kumpulan pernyataan computer.

Sementara metode tahapan yang sistematis di dalam program adalah algoritma. Dengan
kata lain, sebuah program adalah implementasi dari bahasa pemrograman. Program itu
dapat dimaknai sebagai algoritma ditambah bahasa atau struktur data. Sebuah program
yang baik, memiliki struktur data yang naik pula. Sebaliknya, struktur data yang buruk
dengan algoritma yang baik tetap tidak akan membuat sebuah program menjadi baik.

Lantas, adakah standar atau indikator yang dapat menyatakan baik dan buruknya sebuah
algoritma? Jawabannya ada, berikut adalah syarat-syarat sebuah algoritma pemrograman
komputer dikatakan baik.

 Algoritma komputer harus efisien dimana prosesnya dapat diselesaikan secepat


mungkin dengan frekeusi perhitungan yang sependek mungkin. Dengan kata lain,
tidak boros sumber daya.
 Algoritma yang baik harus dengan mudah diimplementasikan ke perangkat
komputer.
 Program algoritma yang baik harus mudah dipahami. Hal ini berlaku tidak
diskriminatif dimana siapapun dapat dengan mudah memahami algoritma
tersebut. Dampak buruk dari susahnya dimengerti sebuah algoritma adalah
kesulitan pengelolaan algoritma.
 Akurasi tinggi adalah syarat lain dari program algoritma yang baik. Mana bisa
menjadi algoritma yang digunakan secara profesional jika hasilnya tidak akurat.
 Semakin umum maka semakin baik. Algoritma yang baik adalah algoritma yang
berlaku umum dan tidak terbatas pada 1 bidang spesifik. Jika bisa sampai berlaku
umum, maka algoritma tersebut mampu menyelesaikan masalah dan bermanfaat di
berbagai bidang.
 Algoritma dan pemrograman yang baik memiliki langkah-langkah yang jelas dan
detail. Setiap proses tepat dan lengkap dimana tidak tanggung, penuh kejelasan, dan
penuh kepastian.
 Algoritma yang baik juga harus bisa dikembangkan. Bukan tidak mungkin sebuah
algoritma yang tampak sederhana bisa terus dikembangkan untuk menghasilkan
hasil yang lebih tinggi dan lebih baik hasilnya.

List Algoritma Pemrograman Apa Saja

Ternyata ada banyak algoritma yang telah dibuat. Menentukan mana saja algoritma yang
penting tentu bukan pekerjaan yang mudah. Namun, terdapat 32 algoritma yang
paling umum di gunakan di dunia komputer oleh para ilmuwan IT. Tentu tidak semua contoh
algoritma pemrograman tersebut perlu untuk ditampilkan.

Berikut adalah 10 dari 32 algoritma pemrograman yang paling umum digunakan di dunia
komputer.

1. Pencariam Beam

Pencarian Beam adalah algoritma yang mengoptimalkan pencarian terbaik pertama.


Sebagaimana pencarian terbaik pertama, pencarian ini menggunakan fungsi heuristic
untuk mengevaluasi node-node yang diperiksa.

2. Pencarian Binary

Teknik untuk menemukan nilai tertentu di linear array dengan mengesampingkan


setengah data setiap langkah.

3. Kompresi Data

Kompresi data atau source coding adalah proses encoding sebuah informasi
menggunakan bit yang lebih sedikit ketimbang representasi tanpa kode yang harus
menggunakan skema encoding yang spesifik.

4. Branch and Bound

Branch and Bound


Sebuah metode algoritma umum untuk menemukan solusi optimal dari beragam masalah
pada pengoptimalan. Hal tersebut terutama pada masalah optimasi disktir dan kombinasi.

5. Hashing

Sebuah fungsi untuk merangkum atau mengidentifikasi data secara probabilistik.


Biasanya hal ini bermakna satu orang menerapkan rumus matematika ke data,
menghasilkan string yang mungkin unik untuk data tersebut. String tersebut jauh lebih
pendak dari data orisinal. Namun, data tersebut dapat digunakan untuk
pengidentifikasian.

6. Dynamic Programming

Dynamic Programming

Metode mengurangi runtime algoritma yang menampilkan sub-masalah tumpang tindih


dan substruktur optimal.

7. Maximum Flow

Permasalahan maximum flow adalah menemukan hukum melalui alur aliran yang
maksimal. Kadang-kadang hal ini didefinisikan sebagai menemukan nilai aliran seperti
itu. Lebih lanjut, masalah ini dapat dilihat sebagai kasus khusus dari masalah alur aliran
yang lebih kompleks. Maximum flow juga terkait dengan pemotongan di dalam jaringan
oleh teori Max-flow min-cut. Algoritma Ford-Fulkerson menghitung aliran maksimal
dalam jaringan aliran.

8. Metode Newton

Metode Newton adalah algoritma yang efisien untuk menemukan perkiraan ke nol dari
fungsi bernilai nyata. Metode Newton juga merupakan algoritma yang dikenal untuk
menemukan akar persamaan dalam satu atau lebih dimensi. Ini juga dapat digunakan
untuk menemukan maksimal lokal dan fungsi minimal lokal.
9. Karatsuba Multiplication

Untuk sistem yang perlu mengalikan angka dalam kisaran beberapa ribu digit layaknya
sistem aljabar komputer dan perpustakaan bignum, perkalian panjang dinilai terlalu
lambat. Sistem ini menggunakan perkalian Karatsuba.

10. Q-Learning

Q-Learning

Q-Learning adalah teknik pembelajaran penguatan yang bekerja dengan mempelajari


fungsi dari nilai tindakan yang memberikan utility yang diharapkan untuk mengambil
tidaknakan pada situasi tertentu. Selain itu hal tersebut juga ditujukan untuk mengikuti
kebijakan sesudahnya. Kekuaran Q-Learning terletkan pada kemampuannya
membandingkan utility yang diharapkan dari tidak yang ada tanpa memerlukan model
lingkungan.

Mempelajari algoritma pemrograman bukan hal mudah. Anda bisa mempelajarinya


secara otodidak atau mengambil kelas ilmu pemrograman untuk mendapatkan
pengetahuan yang lebih banyak lagi. Selain itu, Anda juga wajib memiliki buku algoritma
dan pemrograman untuk lebih memahami dunia pemrograman, terutama pemrograman
komputer. Jika Anda membutuhkan layanan Cloud Hosting dan Domain, Anda bisa
memilih Qwords.com.

Qwords adalah perusahaan IT yang menyediakan beragam produk IT, baik barang
maupun jasa. Selain Cloud dan Domain, Qwords.com juga menyediakan layanan lain,
diantaranya software-software yang ada kaitannya dengan dunia website, email suite, dan
server. Qwords menyediakan web hosting dengan harga yang rasional. Bukan berarti
mahal, namun web hosting yang disediakan sebanding dengan performa yang cepat dan
dapat diandalkan.

Mengenal Pengertian Algoritma

Sebelum membuat program Anda harus mengetahui pengertian dari algoritma


pemrograman. Pengertian algoritma adalah suatu urutan atau alur yang dipakai dalam
perhitungan atau pemecahan masalah secara sistematis, dan dalam aktivitas pemrograman
algoritma seringkali dianggap sebagai logika dalam penentuan program yang akan dibuat.
Pendapat lain mengatakan definisi algoritma adalah proses atau serangkaian aturan yang
harus diikuti dalam perhitungan atau operasi pemecahan masalah lainnya, terutama oleh
komputer. Dengan kata lain, semua susunan logis yang diurutkan berdasarkan sistematika
tertentu dan digunakan untuk memecahkan suatu masalah dapat disebut dengan
algoritma.

Pastinya Anda semua pernah melihat resep makanan, mereka mencantumkan bahan-
bahan yang dibutuhkan dan serangkaian langkah untuk membuat makanan yang
dijelaskan. Nah, algoritma memang seperti itu. Dalam bahasa komputer, kata untuk resep
adalah prosedur, dan bahan-bahannya disebut masukan. Komputer Anda melihat
prosedur Anda, mengikutinya ke alur tersebut, dan Anda bisa melihat hasilnya, yang
disebut output. Algoritma pemrograman menjelaskan cara melakukan sesuatu, dan
komputer Anda akan melakukannya persis seperti itu setiap saat.

Penentuan algoritma dalam pemrograman ini merupakan hal dasar yang harus diketahui
dan menjadi tahap awal dalam pembuatan program. Penyajian algoritma dapat dilakukan
menjadi dua bentuk yakni dalam tulisan maupun gambar, tergantung dari metode
atau tahap yang digunakan oleh seorang programmer. Penyajian dalam bentuk tulisan
biasanya menggunakan pseudocode sedangkan dalam bentuk gambar biasanya dalam
bentuk diagram flowchart. Tantangan tersulit adalah mengimplementasikan algoritma
yang ditentukan menjadi code atau script yang tertata dan dapat berjalan sesuai
keinginan.

Fungsi Algoritma

Setelah mengetahui pengertian dari algoritma, Anda juga harus mengetahui apa fungsi
sebenarnya dari algoritma ini. Pada dasarnya fungsi utama dari algoritma adalah untuk
memecahkan suatu masalah. Suatu algoritma pemrograman membawa keuntungan serta
fungsi penting dalam aktivitas pembuatan program. Berikut ini merupakan fungsi
algoritma yang perlu Anda ketahui :

 Pemrograman dapat mengatasi permasalahan rumit dalam program yang


kemungkinan juga melibatkan perhitungan tingkat tinggi. Karena menggunakan
perhitungan seringkali program yang dibuat tidak berjalan semestinya karena adanya
kesalahan, hal ini dapat diminimalisir dengan menerapkan algoritma dalam
pemrograman.
 Algoritma pemrograman juga mampu menyederhanakan program, dari program yang
besar menjadi program yang lebih sederhana, sehingga penggunaannya lebih efektif
dan efisien. Selain itu, terdapat dua pendekatan yang dimiliki algoritma pemrograman
yaitu pendekatan top-down serta pendekatan divide and conquer.
 Fungsi dari algoritma ini bukan merupakan sekali pakai, artinya dapat digunakan
secara berulang-ulang ini memberikan Anda keuntungan dalam meminimalisir
penulisan program yang berulang-ulang. Jadi, Anda tidak perlu repot-repot
menuliskan lagi program yang sama di lain waktu, yang hal ini memudahkan Anda
dalam pembuatan program.
 Dalam pembuatan program pastinya akan menjumpai beberapa kesalahan, hal ini
sangatlah wajar. Dengan menerapkan fungsi algoritma maka pencarian kesalahan
dapat lebih mudah serta dapat diperbaiki dengan cepat.
 Adanya alur yang jelas yang dimiliki oleh algoritma pemrograman, Anda dapat
dengan mudah mencari kesalahan jika terjadi kesalahan. Karena program sudah
tertata atau tersusun dengan rapi, sehingga memudahkan Anda dalam pencarian dan
menemukan kesalahan yang terjadi pada program di dalam perangkat komputer yang
Anda miliki.

Cara Kerja Algoritma

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam
bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Kata
“algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya.

Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan
algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program
menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian algoritma
yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan
program. Algoritma adalah langkah-langkah menyelesaikan masalah, sedangkan program
adalah realisasi algoritma dalam bahasa pemrograman.

Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program
disebut pemrograman (programming). Orang yang menulis program disebut pemrogram
(programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi.
Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka
operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer. Secara
garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti
keluaran, unit pemroses utama, dan memori.
Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang
berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi
perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen
yang berfungsi menyimpan atau mengingat ingat. Yang disimpan di dalam memori adalah
program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi
(sesuatu yang diolah oleh operasi-operasi).

Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau
program ke dalam memori, dan alat yang digunakan komputer untuk
mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan
kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah,
layar peraga (monitor), pencetak (printer), dan cakram. Mekanisme kerja keempat
komponen di atas dapat dijelaskan sebagai berikut.

Mula-mula program dimasukkan ke dalam memori komputer. Ketika program


dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke
CPU. CPU mengerjakan operasi operasi yang bersesuaian dengan instruksi tersebut. Bila
suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam
memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses
menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori
menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar
monitor).

Contoh Algoritma

Algoritma merupakan suatu alur yang sistematis untuk memecahkan masalah, dengan
salah satu bentuk penyajiannya menggunakan flowchart atau diagram. Algoritma ini, juga
tidak hanya diterapkan pada pemrograman saja, akan tetapi di kehidupan sehari-hari pun
secara sadar Anda menggunakan algoritma.

Contoh sederhana adalah ketika hendak memasak mie rebus, ada langkah-langkah yang
harus Anda lakukan terlebih dahulu. Serta langkah itulah yang disebut dengan algoritma
sederhana. Sebagai contoh lain, misalnya ada banyak permasalahan matematika yang
mudah jika diselesaikan secara tertulis, tetapi akan menjadi cukup sulit jika kita
terjemahkan ke dalam pemrograman. Dalam hal ini, algoritma dan logika pemrograman
akan sangat penting dalam pemecahan masalah.

Algoritma untuk menghitung nilai y dari persamaan y = 3x + 8


Maka, Algoritmanya adalah:
 Mulai
 Tentukan nilai x
 Hitung nilai y = 3x + 8
 Cetak nilai x dan y
 Selesai

Walaupun Algoritma bisa dibilang sebagai jantung, terutama jika terkait dalam ilmu
komputer ataupun informatika (baca pengertian Informatika disini), tetapi jangan sampai
beranggapan bahwa algoritma selalu identik dengan ilmu komputer saja.

Algoritma pemrograman mungkin sudah tak asing lagi bagi Anda yang bekerja di suatu
perusahaan dan bekerja di bidang pemrograman. Suatu program sudah tentu sangat
dibutuhkan kehadirannya terutama pada suatu perusahaan. Penggunaan program untuk
suatu sistem komputasi memang sudah menjadi hal yang biasa di masa seperti sekarang
ini. Bahkan penggunaan berbagai program selalu dianjurkan karena dengan adanya
program maka segala hal bisa dilakukan dengan lebih mudah. Penggunaan program juga
bisa dilakukan dengan lebih praktis sehingga bsia mempermudah pekerjaan Anda dan
memberikan hasil yang lebih maksimal.

Algoritma sendiri sebenarnya merupakan berbagai macam langkah yang diambil secara
logis untuk menyelesaikan segala permasalahan yang ada. Berbagai langkah logis ini
tentunya disusun secara terstruktur dan sistematis sehingga bisa memberikan solusi yang
paling tepat bagi penggunanya. Jika dilihat dari sejarahnya maka pada awalnya
penggunaan algoritma ini hanya diperuntukkan perhitungan saja terutama dalam ilmu
matematika. Namun tampaknya seiring dengan berjalannya waktu maka penggunaan
fungsi dari algoritma ini semakin meluas. Algoritma tidak hanya menjadi penyelesaian
bagi masalah di dunia perhitungan saja tetapi juga merambah ke hal yang lebih modern.
Misalnya saja digunakan untuk menyelesaikan permasalahan yang timbul dalam hal
pemrograman komputer.

Komputer memang menjadi benda penting yang selalu digunakan di setiap perusahaan.
Penggunaan komputer ini dinilai dapat membantu dan mempermudah Anda dalam
menjalankan tugas tertentu. Sekarang ini memang segala hal dilakukan dengan
menggunakan sitem komputasi. Berbagai macam program juga semakin dikembangkan
untuk beberapa bidang. Dengan adanya program ini maka Anda bisa memecahkan suatu
permasalahan dengan mudah serta dapat mengambil solusi yang paling tepat. Untuk itu
dibutuhkan algoritma dalam hal ini. Algoritma pemrograman akan membuat suatu
program bisa berfungsi secara maksimal sehingga hasil yang diberikan akan sangat
memuaskan.
Syarat Algoritma Pemrograman

Ada beberapa syarat yang ditetapkan dalam sebuah algoritma pemrograman, di antaranya
yaitu sebagai berikut.

1. Efisien

Algoritma pemrograman sudah tentu harus bisa menyelesaikan masalah dalam kurun
waktu yang lebih cepat. Artinya penggunaan algoritma haruslah efisien karena fungsinya
pada dasarnya adalah untuk mempemudah Anda dalam menjalankan fungsi suatu
program. Selain itu sitem ini juga harus bisa diimplementasikan ke perangkat komputer
dengan baik dan tepat.

2. Akurat

Akurasi yang tinggi turut menjadi syarat dari sebuah algoritma yang baik dan layak untuk
digunakan. Algoritma tentu akan bekerja secara lebih profesional bila memiliki tingkat
akurasi yang terbilang tinggi. Dengan demikian maka algoritma ini bisa digunakan untuk
umum dan secara tidak terbatas.

3. Jelas

Setiap langkah pada suatu algoritma juga haruslah jelas agar penggunaannya bisa
dilakukan dengan tepat. Langkah yang ada pada algoritma juga haruslah detail dan
terperinci. Dengan demikian maka penggunaan algoritma ini bisa dikembangkan dan bisa
memberikan hasil yang terbaik serta berkualitas tinggi.

Fungsi Algoritma

Dengan menggunakan algoritma pemrograman, tentu akan didapatkan berbagai macam


fungsi dan manfaat, yaitu misalnya:

1. Memecahkan program yang dinilai sulit.

Algoritma bisa digunakan untuk memecahkan segala permasalahan yang dialami dalam
menggunakan sebuah program. Sekalipun permasalahan yang ada itu bersifat rumit
namun tetap saja algoritma bisa digunakan untuk memecahkan permasalahan pada
program tersebut. Kehadiran algoritma memang bisa mempermudah Anda dalam
memecahkan segala permasalahan yang berkaitan dengan suatu program dan tidak dapat
diselesaikan dengan mudah.

2. Menyederhanakan sebuah program.


Program yang rumit dan tergolong besar kini bisa dijadikan secara lebih sederhana.
Penggunaan program kini tentu bisa dilakukan dengan lebih mudah. Tidak hanya itu saja
tetapi Anda juga bisa menggunakan program yang ada dengan lebih praktis. Algoritma
memang bisa menjadi alternatif bagi Anda yang ingin membuat sebuah program hingga
menjadi lebih berfungsi secara sederhana.

3. Bisa digunakan secara berulang.

Pada dasarnya segala fungsi atau manfaat dari algoritma bisa Anda peroleh dan Anda
gunakan secara maksimal. Anda bahkan bisa menggunakannya lebih dari satu kali. Anda
bisa menggunakannya secara berulang sehingga hal ini akan semakin membantu dan
mempermudah Anda dalam menggunakan sebuah program dan menjalankan fungsi dari
algorima itu sendiri.

4. Memudahkan pembuatan program.

Tentu saja algoritma memiliki fungsi untuk pembuatan program. Algoritma akan
membuat sebuah program bisa dikemas secara lebih sederhana. Walaupun sederhana
namun tetap saja program tersebut dapat difungsikan secara lebih maksimal. Hal ini tidak
lain bertujuan untuk memudahkan Anda dalam menggunakan sebuah program dan
mengambil manfaat dari program tersebut.

5. Mengatasi masalah dengan menggunakan logika.

Algoritma pada dasarnya memberikan berbagai macam langkah logis untuk


menyelesaikan sebuah permasalahan yang ada. Penyelesaian masalah ini akan dilakukan
dengan menggunakan logika agar bisa ditemukan solusi yang tepat dan terbaik. Tidak
hanya secara logis saja tetapi penyelesaian masalah juga akan dilakukan secara urut
sehingga solusi yang diberikan bisa tepat.

6. Membuat program lebih terstruktur.

Program yang dibuat akan menjadi tersusun secara lebih rapi. Artinya algoritma akan
membantu Anda untuk menyusun program menjadi lebih terstruktur sehingga bisa
digunakan dengan lebih mudah. Program yang disusun dengan rapi ini akan bisa lebih
mudah untuk dipahami. Selain itu program ini bisa jadi lebih mudah untuk
dikembangkan.

7. Menemukan kesalahan pada suatu program.


Satu atau lebih kesalahan yang terjadi baik pada program atau hal lain kini bisa dicari
dengan menggunakan bantuan dari algoritma. Jadi dengan adanya algoritma maka Anda
akan memperoleh alur yang lebih jelas mengenai segala program yang ada. Jadi untuk ke
depannya Anda bisa menghindari atau mencegah terjadinya kesalahan lainnya atau
kesalahan yang serupa.

8. Memudahkan modifikasi program.

Anda mungkin ingin melakukan sebuah modifikasi pada program yang ada. Hal ini
mungkin hanya bisa dilakukan pada satu modul saja. Selain itu mungkin saja modifikasi
ini dilakukan tanpa adanya gangguan pada modul yang lainnya. Untuk itu Anda bisa
menggunakan algoritma sehingga modifikasi program bisa dilakukan tanpa merugikan
program yang lainnya.

Apa algoritma dalam perspektif pemrograman?

Soalnya, komputer pada dasarnya melakukan banyak matematika yang berarti memiliki
banyak masalah untuk dipecahkan. Itulah mengapa algoritma membentuk jantung ilmu
komputer. Algoritme komputer adalah prosedur komputasi yang mengambil satu set
input terbatas dan mengubahnya menjadi output dengan menerapkan beberapa
matematika & logika. Algoritma dalam pemrograman memiliki beberapa langkah sebagai
berikut –

Jadi, apa itu algoritma pemrograman? kamu dapat menganggap algoritme pemrograman
sebagai resep yang menggambarkan langkah-langkah tepat yang diperlukan komputer
untuk memecahkan masalah atau mencapai tujuan. Kita semua pernah melihat resep
makanan – mereka mencantumkan bahan-bahan yang dibutuhkan dan serangkaian
langkah untuk membuat makanan yang dijelaskan.

Nah, algoritme memang seperti itu. Dalam bahasa komputer, kata untuk resep adalah
prosedur, dan bahan-bahannya disebut masukan.

Komputer kamu melihat prosedurmu, mengikutinya ke surat itu, dan kamu bisa melihat
hasilnya, yang disebut output. Algoritme pemrograman menjelaskan cara melakukan
sesuatu, dan komputer kamu akan melakukannya persis seperti itu setiap saat. Nah, itu
akan sekali kamu mengubah algoritme kamu menjadi bahasa yang dimengerti!

Namun, penting untuk diperhatikan bahwa algoritma pemrograman bukanlah kode


komputer. Itu ditulis dalam bahasa Inggris sederhana (atau apa pun yang dikatakan
programmer). Itu tidak bertele-tele.
Ia memiliki awal, tengah, dan akhir. Bahkan, kamu mungkin akan memberi label pada
langkah pertama ‘mulai’ dan langkah terakhir ‘akhir’. Ini hanya mencakup apa yang
kamu butuhkan untuk melaksanakan tugas.

Itu tidak termasuk sesuatu yang tidak jelas, sering disebut ambigu dalam istilah
komputer, yang mungkin ditanyakan oleh seseorang yang membacanya.

Definisi masalah – Apa yang harus dilakukan?

 Pengumpulan data – Apa yang kita miliki untuk menyelesaikan masalah? Atau
masukan.
 Pemrosesan data – Memahami apa yang kami miliki atau mengubahnya menjadi
bentuk yang dapat digunakan.
 Pendekatan logis – Mempekerjakan data yang dikumpulkan & dibuat melawan logika
untuk dipecahkan.
 Solusi – Sajikan solusi dengan cara yang kamu inginkan dalam GUI atau terminal atau
diagram atau bagan.

Singkatnya, dengan nilai input yang terbatas untuk x, sebuah algoritma mengubahnya
menjadi nilai output efektif y, di mana y adalah f (x) untuk beberapa fungsi yang
terdefinisi dengan baik

Satu aspek penting untuk diketahui adalah bahwa algoritme tidak terikat secara ketat pada
bahasa pemrograman apa pun. Mereka adalah solusi umum seperti itu.

Bagaimana algoritme dalam pemrograman membuatnya bekerja begitu mudah?

Bidang subjek algoritme telah berkembang begitu dalam dan luas sehingga teori dan
dasar-dasar yang ditetapkan akan membantu kita menyerang masalah komputasi apa pun.
Ada begitu banyak algoritma efisien yang sudah diterbitkan seperti pencarian biner,
bubble sort , insertion sort, merge sort, quick sort, algoritma Euclid untuk menemukan
GCM, algoritma Prim untuk menemukan jalur terpendek dalam grafik, dll.

Ada begitu banyak jenis algoritma seperti

Manakah pendekatan trial and error lurus ke depan untuk memecahkan


Algoritma
masalah? Sama seperti kamu melakukan penjumlahan berulang untuk
brute force
mencari hasil soal perkalian.
Algoritma Yang memecah masalah menjadi subproblem kecil dan kemudian
Divide and menggabungkan hasil dari setiap subproblem untuk mendapatkan hasil
Conquer akhir. Sama seperti kamu pertama kali memisahkan koin dari denominasi
yang berbeda ke dalam ember yang berbeda dan kemudian menghitung
jumlah koin di setiap ember untuk menemukan berapa banyak koin dari
denominasi individu yang ada.
Yang mengikuti heuristik pemecahan masalah untuk mencapai keadaan
terbaik berikutnya untuk menemukan keadaan terbaik akhir sebagai
Algoritma
hasil. Sama seperti kamu menemukan daerah kurang curam yang
mendaki gunung dengan mudah.
Pendekatan yang sama dengan membagi dan menaklukkan tetapi
Pemrograman
membagi masalah menjadi beberapa subproblem sehingga hasilnya dapat
dinamis
digunakan kembali untuk subproblem lainnya.

Metodologi semacam itu membantu kami menghasilkan algoritme yang baik yang
memiliki karakteristik penentu berikut. Algoritme yang baik adalah –

 Precise – Ia mengetahui langkah-langkah yang tepat dan benar untuk dieksekusi.


 Unik – Input untuk instruksi saat ini hanya berasal dari instruksi sebelumnya.
 Hingga – Algoritme berakhir memberikan hasil setelah eksekusi sejumlah instruksi
yang terbatas.
 Umum – Algoritme berlaku baik untuk serangkaian input dan tidak hanya satu input.

Keuntungan dari algoritma dan mengapa kita harus menggunakan algoritma tersebut
dalam pemrograman?

Lebih dari sekadar aplikasi cakrawala yang luas di dunia nyata, ia bertindak sebagai lensa
yang kuat untuk melihat melalui masalah. Ini membantu kami memutuskan apakah suatu
masalah dapat dipecahkan atau tidak. Jika ya, lalu bagaimana, seberapa cepat dan
seberapa akurat? Jika tidak, algoritme sekali lagi membantu kita memutuskan, jika kita
dapat menyelesaikan sebagian darinya.

Berbicara tentang mengapa kita harus menggunakan algoritma dalam pemrograman, kita
harus memahami bahwa program komputer mengadopsi algoritma yang berbeda yang
dijalankan pada perangkat keras komputer yang memiliki prosesor dan memori dan
komponen ini memiliki keterbatasan. Sebuah prosesor tidak terlalu cepat dan memori
yang kita miliki tidak gratis.

Mereka adalah sumber daya yang dibatasi. Mereka harus digunakan dengan bijak dan
algoritme yang baik yang efisien dalam hal kerumitan waktu dan kerumitan ruang akan
membantu kamu melakukannya.
Bagaimana teknologi ini akan membantu kamu dalam pertumbuhan kariermu?

Sama seperti teknologi lainnya, desain algoritma dalam pemrograman juga terus
berkembang karena perangkat keras komputer terus berkembang. Mulai dari mesin x86
tradisional hingga superkomputer hingga komputer Quantum, telah terjadi perubahan
revolusioner dalam cara memecahkan masalah. Memiliki pengetahuan desain algoritme
yang kuat adalah hal yang membedakan programmer terampil dari yang lain. Sumber
daya zaman modern tidak benar-benar mengamanatkan studi algoritme dengan begitu
banyak kerangka kerja dan perpustakaan perangkat lunak yang dikembangkan, tetapi
pemahaman menyeluruh tentang hal yang sama akan membantu kamu lebih banyak lagi.

Contoh Algoritma Pemrograman

Kamu mungkin berharap bisa melihat contoh, bukan? Jadi, seperti apa sebenarnya
algoritma dalam pemrograman itu? Nah, menanyakan alamat email kepada pengguna
mungkin adalah salah satu tugas paling umum yang mungkin perlu dilakukan oleh
program berbasis web, jadi itulah yang akan kita gunakan di sini sebagai contoh.
Algoritme dapat ditulis sebagai daftar langkah menggunakan teks atau sebagai gambar
dengan bentuk dan panah yang disebut diagram alur.

Daftar Pustaka :
- https://www.hudzaifah.net/2020/12/keterkaitan-antara-algoritma-dan-dunia.html
- https://pengertiandefinisi.com/pengertian-algoritma-dalam-dunia-pemrograman- komputer/
- https://qwords.com/blog/apa-itu-algoritma-pemrograman/
- https://idcloudhost.com/algoritma-pemrograman-pengertian-fungsi-cara-kerja-dan-contohnya/
- https://www.jojonomic.com/blog/algoritma-pemrograman-untuk-berbagai-macam-fungsi-yang-
penting/

b) Sejarah Java dan perkembangannya sampai saat ini, cari referensi di internet berkaitan
dengan pemrograman Java dan Software-software yang dibuat dengan Bahasa
pemrograman Java minimal 2 software.
Jawab :
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer
termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih
bergabung di Sun Microsystems, yang saat ini merupakan bagian dari Oracle dan dirilis
tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++
namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin
aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam
p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java
merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose),
dan secara khusus didesain untuk memanfaatkan dependensi implementasi seminimal
mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di
beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya,
"Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang
paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai
jenis perangkat lunak aplikasi ataupun aplikasi.

Sejarah perkembangan
Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18
bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum
menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton,
Mike Sheridan, dan James Gosling, beserta sembilan pemrogram lainnya dari Sun
Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe
Palrang.

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo
Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program
Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi
layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai
"*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah
beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada
sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.

Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat
dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet
sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun
1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi
dan militer.

Mereka menjadikan peramban (browser) Mosaic sebagai landasan awal untuk membuat
perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade
Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka.
Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San
Jose Mercury News pada tanggal 23 Mei 1995.

Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah
ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan
George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.

Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak
Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah
perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil
nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling
langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau
Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa
Inggris untuk Jawa adalah Java).

Versi awal
Versi awal Java pada tahun 1996 sudah merupakan versi release sehingga dinamakan
Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus
dikembangkan pada versi selanjutnya:

 java.lang: Peruntukan kelas elemen-elemen dasar.


 java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
 java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas
penanggalan.
 java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan
komputer lain menggunakan jaringan TCP/IP.
 java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
 java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

Kelebihan dan kekurangan


Kelebihan

 Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa


platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di
mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java
dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin
/ bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa
perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan di
atas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows.
Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS
dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan
programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk
meninterpretasikan bytecode tersebut.
 OOP (Object Oriented Programming - Pemrogram Berorientasi Objek), Java
merupakan salah satu bahasa pemrograman dengan konsep OOP Diarsipkan 2017-
01-18 di Wayback Machine.. Di mana program yang dibangun berorientasikan kepada
Object. Aplikasi yang dibangun dengan konsep OOP terdiri atas object-object yang
saling berhubungan
 Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan
library/perpustakaan (kumpulan program program yang disertakan dalam
pemrograman java) yang sangat memudahkan dalam penggunaan oleh para
pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah
dengan keberadaan komunitas Java yang besar yang terus menerus membuat
perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan
aplikasi.
 Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik
banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak,
sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di
Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid
yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi
mereka yang bukan mengambil jurusan komputer.
 Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori
sehingga para pemrogram tidak perlu melakukan pengaturan memori secara
langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

Kekurangan

 Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak kompatibel
antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge
yang sampai sekarang tidak berfungsi pada Mac OS X.
 Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi
menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode
yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas,
metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform.
Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan
dan mudah dibajak/direverse-engineer.
 Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis
Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C+
+ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan
merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend
memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih
harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Contoh kode program sederhana


Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman Java adalah
sebagai berikut:

// Outputs "Hello, world!" and then exits


public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello, world!");
}
}

Java adalah satu set perangkat lunak komputer dan spesifikasi yang dikembangkan oleh
Sun Microsystems, yang kemudian diakuisisi oleh Oracle Corporation, yang
menyediakan sistem untuk mengembangkan aplikasi perangkat lunak dan menerapkan
hal itu dalam sebuah cross-platform lingkungan komputasi. digunakan di berbagai
macam platform komputasi dari perangkat embedded dan ponsel ke server perusahaan
dan superkomputer. Sementara mereka yang kurang umum dari standalone aplikasi Java,
Java applet yang berjalan di aman, lingkungan tersandbox untuk memberikan banyak
fitur dari aplikasi asli dan dapat tertanam ke dalam HTML halaman.

Penulisan dalam bahasa pemrograman Java adalah cara utama untuk menghasilkan kode
yang akan digunakan sebagai kode byte pada sebuah Mesin Virtual Java (JVM); bytecode
compiler juga tersedia untuk bahasa-bahasa lain, termasuk Ada, JavaScript, Python, dan
Ruby. Selain itu, beberapa bahasa telah dirancang untuk berjalan secara native pada
JVM, termasuk Scala, Clojure, dan Apache Groovy. sintaks meminjam banyak dari C dan
C++, tetapi berorientasi objek memiliki dimodelkan setelah Smalltalk dan Objective-C.
eschews tertentu tingkat rendah konstruksi seperti pointer dan memiliki memori yang
sangat sederhana model di mana setiap objek yang dialokasikan di heap dan semua
variabel dari jenis objek referensi. Manajemen memori ditangani melalui otomatis
terintegrasi pengumpulan sampah yang dilakukan oleh JVM.

Pada November 13, 2006, Sun Microsystems membuat sebagian besar implementasi dari
tersedia di bawah GNU General Public License (GPL). erbaru versi Java 8, hanya
didukung (misalnya dengan security update) versi 2016. Oracle (dan lain-lain) telah
mengumumkan bahwa menggunakan versi yang lebih tua (dari 8) mereka JVM
pelaksanaan menghadirkan risiko serius akibat belum terselesaikan masalah keamanan.

Platform
Platform Java adalah seperangkat program yang memfasilitasi mengembangkan dan
menjalankan program yang ditulis dalam Java bahasa pemrograman. Java platform akan
mencakup eksekusi mesin (disebut mesin virtual), compiler dan satu set perpustakaan;
mungkin juga ada tambahan server dan alternatif perpustakaan yang tergantung pada
persyaratan. Java adalah tidak spesifik untuk setiap prosesor atau sistem operasi seperti
Java platform telah diimplementasikan untuk berbagai macam perangkat keras dan sistem
operasi dengan maksud untuk memungkinkan program Java untuk menjalankan identik
pada semua dari mereka. Berbeda platform target kelas yang berbeda dari perangkat dan
aplikasi domain:

 Java Card: Sebuah teknologi yang memungkinkan kecil aplikasi berbasis Java (applet)
yang akan berjalan dengan aman pada smart card dan kecil yang sama-memori
perangkat.
 Java ME (Micro Edition): Menentukan beberapa set yang berbeda dari perpustakaan
(dikenal sebagai profil) untuk perangkat dengan penyimpanan terbatas, layar, dan
kapasitas daya. Hal ini sering digunakan untuk mengembangkan aplikasi untuk
perangkat mobile, Pda, TV set-top box, dan printer.
 Java SE (Standard Edition): Untuk keperluan umum digunakan pada Pc desktop,
server, dan perangkat sejenis.
 Java EE (Enterprise Edition): SE ditambah berbagai Api yang berguna untuk multi-tier
client–server aplikasi enterprise.

Platform Java terdiri dari beberapa program, masing-masing menyediakan sebagian dari
kemampuan secara keseluruhan. Misalnya, Java compiler, yang mengubah kode sumber
Java menjadi bytecode Java (bahasa menengah untuk JVM), diberikan sebagai bagian
dari Java Development Kit (JDK). The Java Runtime Environment (JRE), melengkapi
JVM dengan just-in-time (JIT) compiler, yang mengubah menengah bytecode menjadi
asli kode mesin on the fly. Platform Java juga mencakup serangkaian luas dari
perpustakaan.

Komponen penting dalam platform Java compiler bahasa, perpustakaan, dan lingkungan
runtime yang di intermediate mengeksekusi bytecode menurut aturan yang tercantum
dalam virtual machine spesifikasi. taek.

Mesin Virtual Java

Jantung platform Java adalah konsep "virtual machine" yang mengeksekusi program
bytecode Java. Bytecode ini tetap bisa berjalan, tidak peduli terhadap jenis perangkat
keras atau sistem operasinya. Ada JIT (Just In Time) compiler dalam Java Virtual
Machineatau JVM. JIT compiler menerjemahkan bytecode Java ke native prosesor
instruksi pada saat run-time dan cache kode asli dalam memori selama eksekusi.

Penggunaan bytecode sebagai perantara bahasa yang memungkinkan program Java untuk
berjalan pada platform apapun yang memiliki mesin virtual yang tersedia. Penggunaan
JIT compiler berarti bahwa aplikasi Java, setelah penundaan singkat selama pemuatan
dan setelah mereka memiliki "pemanasan" dengan menjadi semua atau sebagian besar
JIT-dikompilasi, cenderung berjalan secepat asli program. Sejak JRE versi 1.2, Matahari
JVM pelaksanaan sudah termasuk just-in-time compiler bukan seorang penerjemah.

Meskipun program-program Java cross-platform atau platform independen, kode Mesin


Virtual Java (JVM) yang mengeksekusi program-program ini tidak. Setiap operasi yang
didukung platform memiliki JVM.

Perpustakaan kelas

Di sistem operasi paling modern (OSs), tubuh besar yang dapat digunakan kembali kode
yang diberikan untuk mempermudah programmer pekerjaan. Kode ini biasanya
disediakan sebagai satu set dinamis loadable perpustakaan yang aplikasi dapat
memanggil pada saat runtime. Karena platform Java tidak tergantung pada sistem operasi
tertentu, aplikasi tidak bisa mengandalkan apapun dari yang sudah ada OS perpustakaan.
Sebaliknya, platform Java menyediakan seperangkat standar sendiri perpustakaan kelas
yang berisi banyak hal yang sama dapat digunakan kembali fungsi-fungsi yang umum
ditemukan di sistem operasi modern. Sebagian besar sistem perpustakaan ini juga ditulis
di . Misalnya, Ayunan perpustakaan cat antarmuka pengguna dan menangani peristiwa
itu sendiri, menghilangkan banyak perbedaan halus antara cara yang berbeda platform
menangani komponen.

Java class library melayani tiga tujuan dalam platform Java. Pertama, seperti standar
lainnya kode perpustakaan, perpustakaan Java menyediakan programmer terkenal set
fungsi untuk melakukan tugas-tugas umum, seperti menjaga daftar dari barang-barang
atau melakukan parsing string kompleks. Kedua, kelas, perpustakaan menyediakan
sebuah antarmuka abstrak untuk tugas-tugas yang biasanya akan sangat bergantung pada
perangkat keras dan sistem operasi. Tugas-tugas seperti akses jaringan dan akses file
yang sering sangat terjalin dengan khas implementasi dari masing-masing platform. Yang
java.net dan .io perpustakaan mengimplementasikan sebuah abstraksi layer di OS asli
kode, kemudian menyediakan sebuah antarmuka standar untuk aplikasi Java untuk
melakukan tugas-tugas. Akhirnya, ketika beberapa platform yang mendasari tidak
mendukung semua fitur aplikasi Java mengharapkan, perpustakaan kelas bekerja untuk
anggun menangani absen komponen, baik dengan emulasi untuk menyediakan pengganti,
atau setidaknya dengan menyediakan cara yang konsisten untuk memeriksa keberadaan
fitur tertentu.

Bahasa

Kata "Java", sendiri, biasanya mengacu pada bahasa pemrograman Java yang dirancang
untuk digunakan dengan platform Java. Bahasa pemrograman yang biasanya di luar
lingkup dari kalimat "platform", meskipun bahasa pemrograman Java terdaftar sebagai
bagian inti dari platform Java sebelum Java 7. Bahasa dan runtime oleh karena itu
sering dianggap sebagai satu unit. Namun, upaya itu dibuat dengan Java 7 spesifikasi untuk
lebih jelas memperlakukan bahasa dan mesin virtual Java sebagai entitas yang terpisah,
sehingga mereka tidak lagi dianggap sebagai satu unit.

Pihak ketiga yang telah menghasilkan banyak kompiler atau interpreter yang
menargetkan JVM. Beberapa dari ini adalah untuk bahasa yang ada, sementara yang lain
adalah untuk ekstensi untuk bahasa. Ini termasuk:

 BeanShell – ringan bahasa scripting untuk Java


 Clojure – dialek dari bahasa pemrograman Lisp
 Asyik, bahasa dinamis dengan fitur yang mirip dengan orang-orang dari Python, Ruby,
Perl, Smalltalk
 JRuby – Ruby interpreter
 Kelompok dari setiap dua elemen – Python interpreter
 Kotlin – industri bahasa pemrograman untuk JVM dengan penuh interoperabilitas
 Badak – JavaScript penerjemah
 Scala – multi-paradigma bahasa pemrograman yang dirancang sebagai "baik "
 Gosu – tujuan umum Mesin Virtual Java bahasa pemrograman berbasis dirilis di
bawah Lisensi Apache 2.0

Platform serupa

Keberhasilan dari dan tulis sekali, jalankan di mana saja konsep-konsep yang lainnya,
upaya-upaya serupa, terutama .NET Framework, yang muncul sejak tahun 2002, yang
menggabungkan banyak sukses-aspek dari .NET dalam bentuk lengkap (Microsoft
pelaksanaan) saat ini hanya sepenuhnya tersedia pada platform Windows, sedangkan
sepenuhnya tersedia di banyak platform. .NET dibangun dari tanah-up untuk mendukung
beberapa bahasa pemrograman, sedangkan platform Java pada awalnya dibangun untuk
mendukung hanya bahasa, walaupun banyak bahasa lainnya telah dibuat untuk JVM.
.NET termasuk seperti bahasa yang disebut Visual J# (sebelumnya bernama J++) yang
kompatibel dengan Java spesifikasi, dan terkait perpustakaan kelas sebagian besar
tanggal tua JDK 1.1 versi bahasa. Untuk alasan ini, itu lebih dari sebuah transisi bahasa
untuk beralih dari ke .NET platform dari itu adalah kelas pertama .NET bahasa. Visual J#
dihentikan dengan rilis Microsoft Visual Studio 2008. Ada versi gratis dengan Visual
Studio 2005 akan didukung hingga 2015 sesuai produk siklus hidup strategi.

Java Development Kit

Dalam Java Development Kit (JDK) adalah Sun produk yang ditujukan untuk
pengembang Java. Sejak diperkenalkannya, telah oleh jauh yang paling banyak
digunakan Java software development kit (SDK). Ini berisi compiler Java, sebuah salinan
lengkap dari Java Runtime Environment (JRE), dan banyak lainnya yang penting alat-
alat pengembangan.

Sejarah
Platform Java dan bahasa dimulai sebagai sebuah proyek internal di Sun Microsystems
pada bulan desember 1990, memberikan alternatif untuk C++/C bahasa pemrograman.
Insinyur Patrick Naughton telah menjadi semakin frustrasi dengan keadaan Matahari C++
dan C antarmuka pemrograman aplikasi (Api) dan alat-alat. Sementara
mempertimbangkan untuk pindah ke Berikutnya, Naughton ditawarkan kesempatan
untuk bekerja pada teknologi baru, dan dengan demikian Siluman Proyek dimulai.

Stealth Proyek itu segera berganti nama menjadi the Green Project, dengan James
Gosling dan Mike Sheridan bergabung Naughton. Bersama-sama dengan insinyur lain,
mereka mulai bekerja di sebuah kantor kecil di Sand Hill Road di Menlo Park, California.
Mereka bertujuan untuk mengembangkan teknologi baru untuk pemrograman generasi
cerdas peralatan, yang Sun diharapkan untuk menawarkan besar peluang-peluang baru.

Tim yang awalnya dianggap menggunakan C++, tapi ditolak karena beberapa alasan.
Karena mereka mengembangkan sebuah sistem embedded dengan sumber daya yang
terbatas, mereka memutuskan bahwa C++ dibutuhkan terlalu banyak memori dan
kompleksitas led untuk pengembang kesalahan. Bahasa kurangnya pengumpulan sampah
berarti bahwa programmer harus secara manual mengatur memori sistem, menantang dan
rawan kesalahan tugas. Tim juga khawatir tentang bahasa C++ kurangnya portable
fasilitas untuk keamanan, pemrograman terdistribusi, dan threading. Akhirnya, mereka
menginginkan sebuah platform yang akan port dengan mudah untuk semua jenis
perangkat.

Bill Joy telah memimpikan sebuah bahasa baru yang menggabungkan Mesa dan C.
Dalam sebuah makalah yang disebut lebih Lanjut, ia mengusulkan untuk Sun bahwa para
insinyur harus menghasilkan aplikasi yang berorientasi objek lingkungan yang
didasarkan pada C++. Awalnya, Gosling berusaha untuk memodifikasi dan memperluas
C++ (usulan pembangunan yang ia disebut sebagai "C++ ++ --") tapi segera ditinggalkan
yang mendukung untuk menciptakan sebuah bahasa baru, yang disebut Oak, setelah
pohon yang berdiri tepat di luar kantornya.

Pada musim panas 1992, tim bisa menunjukkan bagian-bagian dari platform baru,
termasuk Hijau OS, Oak bahasa, perpustakaan, dan hardware. Mereka demonstrasi
pertama, pada tanggal 3 September 1992, berfokus pada membangun sebuah personal
digital assistant (PDA) perangkat bernama Star7[1] yang memiliki antarmuka grafis dan
smart agen yang disebut "Duke" untuk membantu pengguna. Pada bulan November tahun
itu, the Green Project itu berputar off untuk menjadi Firstperson, anak perusahaan yang
sepenuhnya dimiliki dari Sun Microsystems, dan tim pindah ke Palo Alto, California.[13]
Yang Firstperson tim memiliki kepentingan dalam membangun sangat interaktif
perangkat, dan ketika Time Warner mengeluarkan request for proposal (RFP) untuk set-
top box, Firstperson mengubah target mereka dan menanggapi dengan sebuah proposal
untuk sebuah set-top box platform. Namun, kabel industri merasa bahwa platform mereka
memberikan terlalu banyak kontrol kepada pengguna, sehingga Firstperson kehilangan
tawaran mereka untuk SGI. Tambahan berurusan dengan Yang 3DO Perusahaan untuk
set-top box juga gagal terwujud. Mampu membangkitkan minat dalam industri televisi,
perusahaan digulung kembali ke Matahari.

Memenuhi web

Pada bulan juni dan juli 1994 – setelah tiga hari dari brainstorming dengan John Gage
(Direktur Ilmu pengetahuan untuk Sun Microsystems), Gosling, Sukacita, Naughton,
Wayne Rosing, dan Eric Schmidt – tim re-target platform untuk World Wide Web.
Mereka merasa bahwa dengan munculnya grafis web browser seperti Internet Mosaic
bisa berkembang menjadi media yang sangat interaktif. Sebagai purwarupa, Naughton
menulis sebuah browser yang kecil, WebRunner (dinamakan setelah film Blade Runner),
berganti nama menjadi HotJava pada tahun 1995.

Pada tahun 1994, Sun mengganti nama bahasa Oak setelah pencarian merek dagang
mengungkapkan bahwa nama Oak telah digunakan oleh Oak Technology. Meskipun
Java 1.0 a menjadi tersedia untuk di-download pada tahun 1994, rilis publik pertama dari
1.0a2 dengan browser HotJava datang pada tanggal 23 Mei 1995, diumumkan oleh Gage
di konferensi SunWorld. Marc Andreessen, Wakil Presiden Eksekutif dari Netscape
Communications Corporation, tiba-tiba mengumumkan bahwa Netscape browser akan
mencakup dukungan Java. Pada tanggal 9 januari 1996, Sun Microsystems membentuk
kelompok JavaSoft untuk mengembangkan teknologi.

Versi sejarah

Bahasa Java telah mengalami beberapa perubahan sejak rilis JDK (Java Development
Kit) 1.0 pada tanggal 23 januari 1996, serta berbagai penambahan dari kelas-kelas dan
paket-paket standar perpustakaan. Sejak J2SE 1.4 Java Community Process (JCP) telah
diatur evolusi dari Bahasa Java. JCP menggunakan Java Spesifikasi Permintaan (JSRs)
untuk mengusulkan dan menentukan penambahan dan perubahan untuk platform Java.
Dalam Bahasa Keterangan (JLS) menentukan bahasa; perubahan JLS dikelola di bawah
JSR 901.

Matahari dirilis JDK 1.1 pada tanggal 19 februari 1997. Utama termasuk penambahan
luas retooling dari AWT acara model, kelas batin ditambahkan untuk bahasa, JavaBeans
dan JDBC.

J2SE 1.2 (8 desember 1998) – Codename Bermain anak. Ini dan rilis berikutnya melalui
J2SE 5.0 yang namanya Java 2 dan nama versi "J2SE" (Java 2 Platform, Standard
Edition) diganti JDK untuk membedakan basis platform J2EE (Java 2 Platform,
Enterprise Edition), J2ME (Java 2 Platform, Micro Edition). Tambahan utama termasuk
refleksi, koleksi framework, Java IDL ( interface bahasa deskripsi implementasi CORBA
interoperabilitas), dan integrasi Ayunan grafis API ke inti kelas. Sebuah Java Plug-in
dirilis, dan Matahari JVM dilengkapi dengan JIT compiler untuk pertama kalinya.

J2SE 1.3 (8 Mei 2000) – Codename Kestrel. Perubahan penting termasuk bundling
HotSpot JVM (JVM HotSpot pertama kali dirilis pada bulan April 1999 untuk J2SE 1.2
JVM), JavaSound, Penamaan dan Direktori Interface (JNDI) dan Platform Java Debugger
Arsitektur (JPDA).

J2SE 1.4 (6 februari 2002) – Codename Merlin. Ini menjadi rilis pertama dari platform
Java yang dikembangkan dalam Masyarakat sebagai Proses JSR 59. perubahan Besar
termasuk ekspresi reguler dimodelkan setelah Perl, terkecuali chaining, terpadu XML
parser dan XSLT processor (JAXP), dan Java Web Start.

J2SE 5.0 (agustus 30, 2004) – Codename Tiger. Itu awalnya berjumlah 1.5, yang masih
digunakan sebagai internal nomor versi. yang Dikembangkan di bawah JSR 176,
Harimau menambahkan beberapa signifikan fitur bahasa baru termasuk untuk masing-
masing loop, obat generik, autoboxing dan var-args.

Java SE 6 (11 desember 2006) – Codename Mustang. Itu dibundel dengan manajer
database dan memfasilitasi penggunaan bahasa scripting dengan JVM (seperti JavaScript
menggunakan Mozilla's Badak engine). Pada versi ini, Matahari diganti nama "J2SE"
dengan Java SE dan menjatuhkan ".0" dari nomor versi. perubahan besar Lainnya
termasuk dukungan untuk pluggable penjelasan (JSR 269), banyak GUI perbaikan,
termasuk UI asli perangkat tambahan untuk mendukung tampilan dan nuansa dari
Windows Vista, dan perbaikan untuk Platform Java Debugger Arsitektur (JPDA) & JVM
Alat Antarmuka untuk pemantauan yang lebih baik dan pemecahan masalah.

Java SE 7 (28 juli 2011) - dengan kode nama Dolphin. Versi ini dikembangkan di bawah
JSR 336. Ini menambahkan sejumlah kecil perubahan bahasa termasuk string di
switch, mencoba-dengan-sumber-sumber dan jenis inferensi untuk generic contoh
penciptaan. JVM diperpanjang dengan dukungan untuk bahasa dinamis, sedangkan kelas
perpustakaan diperpanjang antara lain dengan bergabung/garpu kerangka, peningkatan
new file I/O library dan dukungan untuk protokol jaringan seperti SCTP. Java 7 Update
76 dirilis pada januari 2015, dengan berakhirnya tanggal 14 April 2015.

Pada bulan juni 2016, setelah publik terakhir update Java 7, "jarak jauh dieksploitasi"
bug keamanan di Java 6, 7 dan 8 di mana diumumkan.

Yang current version, Java SE 8 (18 Maret 2014). Perubahan penting termasuk bahasa
tingkat dukungan untuk ekspresi lambda (penutupan) dan metode default, Proyek
Nashorn JavaScript runtime, Tanggal dan Waktu yang baru API terinspirasi oleh Joda
Waktu, dan penghapusan PermGen. Versi ini tidak secara resmi didukung pada
platform Windows XP. Namun, karena akhir dari 7 siklus hidup ini adalah versi
direkomendasikan untuk pengguna XP. Sebelumnya, hanya tidak resmi instalasi manual
metode yang telah dijelaskan untuk Windows XP SP3. Hal ini mengacu pada JDK8,
mengembangkan platform untuk Java yang juga mencakup sepenuhnya berfungsi Java
Runtime Environment. 8 didukung pada Windows Server 2008 R2 SP1, Windows Vista
SP2 dan Windows 7 SP1, Ubuntu 12.04 LTS dan lebih tinggi (dan beberapa Os lain).

JDK 9 Akses Awal membutuhkan Windows 7 SP1, Windows Server 2012, Ubuntu 16.04
LTS atau lebih tinggi (atau OS lain yang didukung, seperti OS X atau Solaris).

Selain bahasa perubahan, perubahan yang signifikan telah dibuat untuk Java class library
selama bertahun-tahun, yang telah berkembang dari beberapa ratus kelas dalam JDK 1.0
untuk lebih dari tiga ribu di J2SE 5.0. Seluruh Api yang baru, seperti Ayunan dan Java
2D, telah berkembang, dan banyak dari asli JDK 1.0 kelas dan metode yang telah usang.

Penggunaan
Penggunaan desktop

Sebuah program Java yang berjalan pada komputer desktop

Menurut Oracle, Java Runtime Environment adalah ditemukan pada lebih dari 850 juta
PCs. Microsoft belum paket Java Runtime Environment (JRE) dengan sistem operasi
sejak Sun Microsystems menggugat Microsoft untuk menambahkan Jendela-kelas khusus
untuk paket Java runtime environment, dan untuk membuat kelas-kelas baru yang
tersedia melalui Visual J++.[butuh rujukan] Apple tidak lagi termasuk Java runtime dengan
OS X sebagai versi 10.7, tetapi sistem akan meminta pengguna untuk men-download dan
menginstal itu pertama kalinya sebuah aplikasi yang membutuhkan JRE diluncurkan.
Banyak distribusi Linux yang mencakup sebagian kompatibel software gratis paket GNU
Classpathdan semakin kebanyakan kompatibel IcedTea.

Beberapa aplikasi Java yang cukup luas penggunaan desktop, termasuk NetBeans dan
Eclipse integrated development lingkungan, dan berbagi file klien seperti LimeWire dan
Vuze. juga digunakan dalam MATLAB matematika pemrograman lingkungan, baik
untuk rendering antarmuka pengguna dan sebagai bagian dari sistem inti. Java
menyediakan cross platform user interface untuk beberapa high-end aplikasi kolaboratif
seperti Lotus Notes.

Oracle berencana untuk pertama mencela secara terpisah diinstal Java plugin browser
dari Java Runtime Environment di JDK 9 kemudian menghapus sepenuhnya dari masa
mendatang, memaksa para pengembang web untuk menggunakan teknologi alternatif.

Perangkat mobile

2006 era ponsel menjalankan aplikasi Java

Java Micro Edition telah menjadi populer di perangkat mobile, di mana ia bersaing
dengan Symbian, BREW, dan .NET Compact Framework.

Keragaman produsen ponsel telah menyebabkan kebutuhan untuk standar bersatu


sehingga program-program dapat berjalan pada ponsel dari pemasok yang berbeda –
MIDP. Standar pertama adalah MIDP 1, yang diperuntukkan untuk layar berukuran kecil,
tidak ada akses ke audio, dan memiliki batas ukuran program 32kB. Baru-baru ini MIDP
2 memungkinkan akses ke audio, dan sampai 64kB untuk ukuran program. Dengan
desain handset yang membaik dan lebih cepat dari standar, beberapa produsen berdiam
dalam beberapa keterbatasan karena standar, misalnya, maksimal ukuran program.

Sistem operasi Android besutan Google menggunakan bahasa Java, namun tidak untuk
kelas perpustakaan, oleh karena itu platform Android tidak bisa disebut ke dalam daftar
perangkat mobile Java. Android mengeksekusi kode pada mesin virtual ART
(sebelumnya Dalvik VM di Android 4.4.4 ke bawah) bukan mesin virtual Java.

Penggunaan dalam server web dan enterprise

Platform Java telah menjadi andalan perusahaan ITU pengembangan sejak pengenalan
Enterprise Edition pada tahun 1998, dalam dua cara yang berbeda:

1. Melalui kopling dari ke web server, platform Java telah menjadi platform terkemuka
untuk mengintegrasikan Web dengan perusahaan sistem backend. Hal ini telah
memungkinkan perusahaan untuk memindahkan sebagian atau seluruh bisnis mereka
ke lingkungan Internet dengan cara yang sangat interaktif online lingkungan (seperti
yang sangat dinamis situs web) yang memungkinkan pelanggan akses langsung ke
proses bisnis (misalnya perbankan online, situs pemesanan penerbangan, sistem dan
sebagainya). Tren ini terus berlanjut dari awal berbasis Web mulai:
o Platform Java telah matang menjadi Perusahaan Integrasi peran di mana sistem
warisan yang dibuka untuk dunia luar melalui jembatan yang dibangun pada
platform Java. Tren ini telah didukung untuk platform Java mendukung untuk EAI
standar seperti pengiriman pesan dan layanan Web dan telah memicu masuknya
platform Java sebagai pengembangan dasar dalam standar seperti SCA, SAM dan
lain-lain.
o Java telah menjadi standar platform pengembangan untuk banyak perusahaan'
ITU departemen, yang melakukan sebagian atau semua dari mereka perusahaan
pembangunan di . Jenis pengembangan ini biasanya terkait dengan perusahaan
tertentu perkakas (misalnya alat pemesanan untuk sebuah maskapai
penerbangan) dan pilihan untuk platform Java ini sering didorong oleh keinginan
untuk memanfaatkan yang ada Java infrastruktur untuk membangun sangat
cerdas dan alat-alat yang saling berhubungan.
2. Platform Java telah menjadi pengembangan utama platform untuk banyak perangkat
lunak dan platform yang dihasilkan oleh perangkat lunak pihak ketiga kelompok
(komersial, open source dan hybrid) dan digunakan sebagai dikonfigurasi (bukan
programmable) yang sesuai dengan perusahaan. Contoh dalam kategori ini termasuk
Web server, application server, database, enterprise service bus, manajemen proses
bisnis (BPM) alat-alat dan sistem manajemen konten.

Perusahaan menggunakan Java juga telah lama menjadi pendorong utama dari open
source bunga di platform. Bunga ini telah menginspirasi komunitas open source untuk
menghasilkan jumlah besar dari perangkat lunak, termasuk fungsi sederhana
perpustakaan, pengembangan kerangka kerja (misalnya Spring Framework, Apache
Gawang, Dojo Toolkit, Hibernate), dan open source implementasi standar dan alat-alat
(misalnya Apache Tomcat, GlassFish server aplikasi, Keledai dan Apache ServiceMix
Enterprise service bus).

Maskot
Duke adalah maskot.

Ketika Sun mengumumkan bahwa SE Java dan Java ME akan dirilis di bawah lisensi
perangkat lunak bebas ( GNU General Public License), mereka merilis Duke grafis di
bawah lisensi BSD pada waktu yang sama. baru Duke kepribadian dibuat setiap tahun.
misalnya, pada bulan juli 2011 "Teknologi masa Depan Duke" termasuk hidung yang
lebih besar, jetpack, dan biru di sayap.

Perizinan
Kode sumber untuk Matahari implementasi dari (yaitu de facto referensi implementasi)
telah tersedia untuk beberapa waktu, tapi sampai saat iniketentuan-ketentuan lisensi
yang membatasi apa yang bisa dilakukan dengan tanpa penandatanganan (dan
umumnya membayar untuk) kontrak dengan Matahari. Seperti syarat tidak memenuhi
persyaratan baik yang Open Source Initiative atau Free Software Foundation untuk
dipertimbangkan open source atau free software, dan Sun Java karena itu platform
proprietary.

Sementara beberapa pihak ketiga proyek (misalnya GNU Classpath dan Apache
Harmony) dibuat perangkat lunak bebas parsial implementasi, ukuran besar dari Matahari
perpustakaan dikombinasikan dengan penggunaan kamar bersih metode berarti bahwa
mereka implementasi dari Java perpustakaan (compiler dan VM adalah relatif kecil dan
didefinisikan dengan baik) yang tidak lengkap dan tidak sepenuhnya kompatibel.
Implementasi ini juga cenderung jauh lebih dioptimalkan dari Matahari.[butuh rujukan]

Perangkat lunak bebas

Sun mengumumkan di JavaOne 2006 bahwa pulau akan menjadi bebas dan perangkat
lunak sumber terbuka, dan pada tanggal 25 oktober 2006, di Oracle OpenWorld
konferensi, Jonathan I. Schwartz mengatakan bahwa perusahaan itu akan mengumumkan
rilis core Platform Java sebagai perangkat lunak bebas dan terbuka dalam waktu 30
sampai 60 hari.

Sun merilis HotSpot virtual mesin dan compiler sebagai perangkat lunak gratis dibawah
lisensi GNU General Public License pada tanggal 13 November 2006, dengan janji
bahwa sisa JDK (yang termasuk JRE) yang akan ditempatkan di bawah GPL pada bulan
Maret 2007 ("kecuali untuk beberapa komponen yang Matahari tidak memiliki hak untuk
mempublikasikan didistribusikan bentuk kode sumber di bawah GPL").Menurut
Richard Stallman, ini akan berarti mengakhiri " perangkap". Mark Shuttleworth yang
disebut pers awal pengumuman, "Sebuah tonggak bersejarah bagi perangkat lunak bebas
komunitas".

Sun merilis kode sumber dari perpustakaan Kelas bawah GPL pada 8 Mei 2007, kecuali
beberapa bagian tertentu yang diberi lisensi oleh Matahari dari pihak ke-3 yang tidak
ingin mereka kode yang akan dirilis di bawah sebuah software gratis dan open-source
yang berlisensi. Beberapa dibebani bagian ternyata cukup bagian-bagian kunci dari
platform seperti font rendering dan 2D rasterising, tapi ini dirilis sebagai open-source
kemudian oleh Matahari (lihat OpenJDK perpustakaan Kelas).

Matahari itu tujuannya adalah untuk mengganti bagian-bagian yang tetap eksklusif dan
tertutup-sumber dengan implementasi alternatif dan membuat perpustakaan kelas benar-
benar gratis dan open source. Sementara itu, pihak ketiga proyek yang disebut IcedTea
dibuat benar-benar gratis dan sangat bermanfaat JDK dengan mengganti dibebani kode
dengan rintisan atau kode dari GNU Classpath. Meskipun OpenJDK sejak itu menjadi
mudah dibangun tanpa dibebani bagian (dari OpenJDK 6 b10[), IcedTea masih
digunakan oleh sebagian besar distribusi linux, seperti Fedora, RHEL, Debian, Ubuntu,
Gentoo, Arch Linux dan Slackware, karena menyediakan keamanan rilis dan mudah cara
untuk patch inklusi. OpenJDK juga masih tidak menyertakan plugin browser & Web
Mulai implementasi, sehingga IcedTea pendamping proyek, IcedTea-Web, adalah
diperlukan untuk mengisi kesenjangan ini.

Pada juni 2008, diumumkan bahwa IcedTea6 (karena dikemas versi OpenJDK pada
Fedora 9) telah lulus Teknologi Kompatibilitas Kit tes dan dapat mengklaim untuk
menjadi sepenuhnya kompatibel 6 implementasi.

Karena OpenJDK adalah di bawah lisensi GPL, adalah mungkin untuk mendistribusikan
versi kustom dari JRE secara langsung dengan perangkat lunak aplikasi, daripada
membutuhkan enduser (atau mereka sysadmin) untuk men-download dan menginstal
versi yang benar dari milik Oracle JRE ke masing-masing sistem mereka sendiri.

2. Buatlah Algoritma dalam bentuk flowchart dan pseudocode kasus berikut:


Pada sebuah perusahaan dengan tiga golongan Karyawan, yaitu:
1. Jika Golongan A: Gaji Rp. 5.000.000
2. Jika Golongan B: Gaji Rp. 6.500.000
3. Jika Golongan C: Gaji Rp. 9.500.000
Jawab :
FLOWCHART
Jika karyawan tersebut lembur, maka mereka dibayar per-Jam dengan ketentuan sebagai
berikut:
1. Jika Karyawan lembur 1 Jam maka gaji lemburnya 30% dari Gaji Pokok
2. Jika Karyawan lembur 2 Jam maka gaji lemburnya 32% dari Gaji Pokok
3. Jika Karyawan lembur 3 Jam maka gaji lemburnya 34% dari Gaji Pokok
4. Jika Karyawan lembur 4 Jam maka gaji lemburnya 36% dari Gaji Pokok
5. Jika Karyawan lembur >= 5 Jam maka gaji lemburnya 38% dari Gaji Pokok

Inputan pada Flowchart dan Pseudocode adalah Golongan dan Jam Lembur.
Output Jumlah penghasilan: Gaji Golongan + Gaji Lembur.

Anda mungkin juga menyukai