Dasar-dasar Pemrograman
A. Bahasa Pemrograman
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
1. Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian
masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam
algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat
ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma
adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma
haruslah benar. Artinya algoritma akan memberikan keluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus
apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma
tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus
diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh
algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan
masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan).
Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan
nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma.
Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori.
Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi
jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma
tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang
cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka
semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa
membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun
terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran
yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan
cepat.
2. Syntax
Syntax adalah salah
satu dari cabang ilmu linguistik yang mempelajari kaidah yang menentukan
bagaimana kata membentuk frasa dan frasa membentuk kalimat. Secara etimologis
istilah Syntax adalah menempatkan bersama kata-kata menjadi kelompok kata atau
kalimat dan kelompok-kelompok kata menjadi kalimat.
3. Intrepeter / Pustaka
Interpreter adalah Perangkat lunak yang mampu
mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya
ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh
programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut
dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam
kode tersebut.
Proses ini sangat berbeda dengan
compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan
perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan
sebelum program tersebut dieksekusi.
Interpreter atau dalam bahasa Indonesia dikenal
sebagai Juru Bahasa berbeda dengan Translator atau penterjemah dalam segi media
yang dipakai untuk menerjemahkan. Interpreter akan menterjemahkan bahasa sumber
ke dalam bahasa sasaran secara langsung atau orally sementara translator akan
menerjemahkan bahasa sumber ke bahasa sasaran secara tertulis.
Java dijalankan menggunakan interpreter
yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang
telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang
berbeda-beda.
4. IDE + OS
IDE
( Integrated Development Environment ) adalah program komputer yang
memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak.
Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam
membangun perangkat lunak. Sebuah IDE, atau secara bebas dapat diterjemahkan
sebagai Lingkungan Pengembangan Terpadu, setidaknya memiliki fasilitas :
• Editor, yaitu fasilitas untuk
menuliskan kode sumber dari perangkat lunak.
• Compiler, yaitu fasilitas untuk
mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang
sesuai dengan bahasa mesin.
• Linker, yaitu fasilitas untuk
menyatukan data binari yang beberapa kode sumber yang dihasilkan compiler
sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu
program komputer yang siap dieksekusi.
• Debuger, yaitu fasilitas untuk
mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam
program.
Sampai tahap tertentu IDE modern
dapat membantu memberikan saran yang mempercepat penulisan.Pada saat penulisan
kode, IDE juga dapat menunjukan bagian-bagian yang jelas mengandung kesalahan
atau keraguan.
OS (Operating System) atau
dikenal juga dengan Sistem Operasi merupakan software pada lapisan pertama yang
diletakkan pada memori komputer, (memori komputer dalam hal ini ada Hardisk,
bukan memory ram) pada saat komputerdinyalakan. Sedangkan software-software
lainnya dijalankan setelah Sistem Operasi Komputer berjalan, dan Sistem Operasi
akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum
tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka
user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas
inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi.
Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan
kernel suatu Sistem Operasi.
Sistem Operasi berfungsi
sebagai penghubung antara lapisan hardware dan lapisan software. selain itu,
Sistem Operasi komputer juga melakukan semua perintah perintah penting dalam
komputer, serta menjamin aplikasi-aplikasi yang berbeda fungsinya dapat
berjalan lancar secara bersamaan tanpa hambatan. Sistem Operasi menjamin
aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta
output terhadap peralatan lain, dan mempunya akses kepada sistem file.
B. Model Pemrograman
a. Pemrograman Terstruktur
Pemrograman
Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dalam bentuk program. Selain pengertian diatas
Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan
urutan langkah-langkah perintah secara sistematis, logis , dan tersusun
berdasarkan algoritma yang sederhana dan mudah dipahami. Prinsip dari
pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik
atau langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi
langkah sebelumnya atau kembali lagi ke baris sebelumnya, kecuali pada langkah
– langkah untuk proses berulang (Loop).
Contoh : C, Pascal, Delphi
b. Pemrograman Berorientasi Objek (Object
Oriented Programming)
Pemrograman berorientasi objek
(Inggris: object-oriented programming disingkat OOP) merupakan paradigma
pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam
paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan
logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses
data, dan mengirim pesan ke objek lainnya.
Contoh : Java, Python
C. Peran
a. Jaringan Komputer
(C, Java, Python, dll)
Dalam perannya
jaringan komputer berperan dalam komunikasi data atau pergerakan data dari
setiap pengguna jaringan. Dalam sistem jaringan tersebut terdapat sebuah
komputer pusat atau pengolah pusat. Biasanya komputer pusat ini berupa
seperangkat komputer mainframe yang terhubung dengan jumlah terminal.
Terminal-terminal ini bisa disimpan berdekatan dengan CPU atau terpisah dengan
jarak yang cukup jauh atau bisa sangat jauh sekali, atau bahkan tersimpan luar
negri atau dibelahan benua lain.
Hampir di setiap instansi, baik
pemerintahan, pendidikan ataupun lembaga bisnis, termasuk lembaga keuangan
seperti bank telah menggunakan jaringan komputer atau jaringan yang sudah
canggih. Jadi dari hal tersebutlah pengolahan dan komunikasi data bisa
dilakukan dengan cepat dari satu tempat ke tempat lain. Salah satu contoh peran
karingan komputer dalam komunikasi data adalah untuk pengiriman atau penerimaan
email melalui jaringan internet, pengecekan kartu kredit secara online dan lain
sebgainya.
b. Database
(Java, ODBC, Python, dll)
Database atau Basis
Data adalah kumpulan informasi yang disimpan dalam komputer secara sistematik
sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh
informasi data.
c. Internet of Things
Internet of Things
(IoT) adalah sebuah konsep yang bertujuan untuk memperluas manfaat dari
konektivitas internet yang tersambung secara terus-menerus, berikut kemampuan
remote control, berbagi data, dan sebagainya, termasuk pada benda-benda di
dunia fisik. Bahan pangan, elektronik, peralatan apa saja, koleksi, termasuk
benda hidup, yang semuanya tersambung ke jaringan lokal dan global melalui
sensor tertanam dan selalu “on”.
Pada hakekatnya, benda Internet atau
Internet of Things mengacu pada benda yang dapat di identifikasikan secara unik
sebagai representasi virtual dalam struktur berbasis Internet
d. Cloud Computting
Secara umum, cloud
computing merupakan gabungan pemanfaatan teknologi komputer (komputasi) dalam
suatu jaringan dengan pengembangan berbasis internet (awan) yang mempunyai
fungsi untuk menjalankan program atau aplikasi melalui komputer – komputer yang
terkoneksi pada waktu yang sama, tetapi tak semua yang terkoneksi melalui
internet menggunakan cloud computing.
Teknologi komputer berbasis sistem Cloud
ini merupakan sebuah teknologi yang menjadikan internet sebagai pusat server
untuk mengelola data dan juga aplikasi pengguna. Teknologi ini mengizinkan para
pengguna untuk menjalankan program tanpa instalasi dan mengizinkan pengguna
untuk mengakses data pribadi mereka melalui komputer dengan akses internet.
e. Intelligent Transportation System
Intelligent
Transportation System dalam bahasa Indonesia berarti sistem transportasi
cerdas. Sistem ini mempunyai tujuan dasar untuk membuat sistem transportasi yang
mempunyai kecerdasan, sehingga dapat membantu pemakai transportasi dan pennguna
transportasi untuk:
· Mendapatkan informasi.
· Mempermudah transaksi.
· Meningkatkan kapasitas prasarana dan
sarana transportasi.
· Mengurangi kemacetan atau antrian.
· Meningkatkan keamanan dan kenyamanan.
· Mengurangi polusi lingkungan.
· Mengefisiensikan pengelolaan
transportasi.
Intelligent Transportation
System atau biasa disingkat ITS pada prinsipnya adalah penerapan teknologi maju
di bidang elektronika, komputer dan telekomunikasi untuk membuat prasarana dan
sarana transportasi lebih informatif, lancar, aman dan nyaman sekaligus ramah
lingkungan.
f. Parallel Computting
Komputasi paralel
adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan
beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat
kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam
jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena
tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi
numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika
komputasi), kimia (kimia komputasi) dll.
Untuk melakukan aneka jenis
komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari
banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat
lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur
distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai
harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti
dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan
diolah secara parallel.
g. Bio Informatika, E-Health
Bioinformatika
sendiri merupakan cabang ilmu biologi yang memadukan pengetahuan biologi,
bioteknologi, maupun biologi molekular dengan teknologi informasi yang berupa
komputer dan internet. Salah satu tujuannya adalah untuk memahami organisme
hidup melalui perkembangan bioinformasi.
D. Security
a. Kesalahan Algoritma
Kekeliruan, tidak
tepat, kesalahan secara perangkat lunak, atau kerusakan pada perangkat
keras.Dengan terjadinya error ini, maka pelaksanaan tidak sesuai dengan yang
diharapkan.
Pada beberapa kejadian,
apabila terjadi error, maka perintah yang sedang dikerjakan diberhentikan
karena tidak bisa dilanjutkan, seperti tidak ada printer. Namun pada kondisi
lainnya, pekerjaan masih bisa dilanjutkan, karena error yang terjadi tersebut
tidak terlalu mempengaruhi sistem dan bisa diabaikan, seperti pemutaran suatu
media presentasi pada komputer yang tidak mempunyai sound card,proses masih
bisa dilanjutkan untuk melihat presentasi tersebut, meskipun dalam kondisi
bisu.
b. Buffer Overflow
Buffer overflow (BO)
terjadi jika suatu program berusaha menyimpan data ke buffer, dimana ukuran
data lebih besar dari ukuran buffer. Saat jumlah data melebihi ukuran buffer,
kelebihan data dapat melimpah ke lokasi memory terdekat, merusak data dan bisa
merubah path dan perintah eksekusi. Diantara informasi yang rusak, mungkin
terdapat informasi yang berisi subroutine dari suatu program, sehingga program
tidak dapat menemukan subroutine dan tidak dapat menyelesaikan programnya.
Kemampuan eksploitasi BO memungkinkan seseorang untuk memasukkan kode sembarang
ke path eksekusi. Kode ini memungkinkan akses jarak jauh yang terlarang
(unauthorized). Seorang hacker bisa mengirimkan data yang lebih besar dari
ukuran buffer dan berisi kode yang dirancang untuk melakukan aksi tertentu,
untuk merusak atau mengubah data dan membuka informasi rahasia.
E. Tingkat Bahasa Pemrograman
a. Tingkat Tinggi
Bahasa tingkat
tinggi yaitu bahasa komputer yang memakai instruksi yang berasal dari unsur
kata-kata bahasa manusia. Contohnya : begin, end, if, for, while,and, or, dan
sebagainya. Bahasa ini menggunakan perintah yang mendekati bahasa manusia.
Contohnya adalah Delphi, Pascal, ORACLE, MS-SQL, Perl, Phyton, Basic, Visual
Studio (Visual Basic, Visual FoxPro), Informix, C, C++, ADA, Java, PHP, ASP,
XML, dan lain-lain.
b. Tingkat Rendah
Bahasa ini dikenal dengan istilah Bahasa Assembly yaitu dengan
memberikan perintah kepada komputer dengan memakai kode-kode singkat
(mnemonic). Contohnya SUB, CMP, LOOP, dan sebagainya. Bahasa tingkat ini,
bahasanya masih jauh dari bahasa manusia.
0 komentar:
Posting Komentar