peluang kerja di dunia opp sebagai java Developer
Mengenal Apa itu OOP?
Apa kamu sudah tahu kepanjangan dari OOP? OOP adalah merupakan kepanjangan dari Object Oriented Programming. OOP merupakan suatu metode pemrograman yang berorientasi kepada objek. Dalam bahasa Indonesia OOP dikenal dengan PBO (Pemrograman Berorientasi Objek).
Lalu apa tujuannya? OOP bertujuan untuk mempermudah pengembangan sebuah program. Ia memiliki variabel dan fungsi yang dibungkus ke dalam objek ataupun class. Keduanya dapat saling berinteraksi sehingga membentuk sebuah program.
Mengapa Harus OOP?
Pemrograman berorientasi objek (OOP) atau Object Oriented Programming memiliki beberapa alasan mengapa harus digunakan, di antaranya:
- Struktur yang terorganisir: OOP membantu membangun struktur yang mudah dipahami dan terorganisir.
- Kode yang mudah dipelihara: Kode yang dibuat dengan OOP cenderung mudah diperbaiki, diperluas, dan dipelihara.
- Program yang modular: OOP membuat program lebih mudah dipahami dan diubah.
- Kode yang dapat digunakan kembali: OOP memungkinkan penggunaan kode yang sama untuk berbagai aplikasi.
- Program yang aman: OOP membantu melindungi data dari akses yang tidak sah.
- Menghemat waktu: OOP membantu menghemat waktu pemecahan masalah ketika pembuatan aplikasi.
- Memudahkan pengembangan program: OOP mengikuti model yang telah ada dalam kehidupan sehari-hari.
- Memudahkan memetakan objek: OOP membantu memetakan objek software ke objek-objek yang telah ada dalam program.
Sejarah OOP
Pemrograman Berorientasi Objek (Object-Oriented Programming, OOP) adalah paradigma pemrograman yang didasarkan pada konsep “objek”, yang dapat berisi data dalam bentuk bidang (sering dikenal sebagai atribut atau properti), dan kode dalam bentuk prosedur (sering dikenal sebagai metode atau fungsi). Berikut adalah sejarah singkat perkembangan OOP:
1. Awal Mula Konsep OOP (1960-an)
- Simula 67: Konsep OOP pertama kali muncul pada tahun 1960-an dengan bahasa pemrograman Simula, yang dikembangkan oleh Ole-Johan Dahl dan Kristen Nygaard di Norwegia. Simula 67, versi yang diperbarui, adalah bahasa pemrograman pertama yang memperkenalkan konsep “kelas” dan “objek”, yang memungkinkan pemrogram untuk mendefinisikan tipe data khusus dengan atribut dan metode. Simula diciptakan untuk simulasi, tetapi konsep kelas dan objek kemudian diadopsi dalam konteks yang lebih umum.
- Konsep Dasar OOP: Simula memperkenalkan beberapa konsep penting dari OOP seperti:
- Kelas dan Objek: Kelas adalah cetak biru untuk membuat objek (instansiasi).
- Warisan (Inheritance): Memungkinkan kelas baru untuk mewarisi sifat dan metode dari kelas yang sudah ada.
- Polimorfisme (Polymorphism): Kemampuan untuk memproses objek berbeda dengan cara yang sama melalui antarmuka umum.
2. Pengembangan Lebih Lanjut (1970-an)
- Smalltalk: Pada tahun 1970-an, Alan Kay, bersama dengan Dan Ingalls dan Adele Goldberg di Xerox PARC, mengembangkan bahasa pemrograman Smalltalk. Smalltalk dianggap sebagai bahasa pemrograman OOP yang benar-benar pertama dan paling murni karena semua yang ada di Smalltalk adalah objek. Smalltalk juga memperkenalkan konsep-konsep penting lainnya seperti:
- Pengiriman Pesan (Message Passing): Objek berinteraksi dengan mengirim pesan satu sama lain, yang mirip dengan pemanggilan metode.
- Kapsulasi (Encapsulation): Memastikan bahwa data internal suatu objek tidak dapat diubah dari luar kecuali melalui metode yang didefinisikan.
3. Penerimaan dan Penerapan yang Lebih Luas (1980-an)
- C++: Pada awal 1980-an, Bjarne Stroustrup mengembangkan C++ di Bell Labs sebagai ekstensi dari bahasa C dengan tambahan konsep OOP. C++ membawa konsep OOP ke dunia pengembangan perangkat lunak komersial dan mulai digunakan secara luas untuk pengembangan sistem dan aplikasi.
- Perkembangan Bahasa Lain: Bahasa pemrograman lain seperti Object Pascal dan Objective-C juga muncul selama periode ini, masing-masing membawa pendekatan mereka sendiri untuk OOP.
- Adopsi Industri: Pada tahun 1980-an, konsep OOP mulai diterima di industri teknologi. Perusahaan perangkat lunak besar mulai menggunakan bahasa OOP untuk mengembangkan aplikasi besar dan kompleks karena kemampuannya untuk menangani kompleksitas dengan lebih baik.
4. Kepopuleran yang Meningkat dan Standardisasi (1990-an)
- Java: Pada pertengahan 1990-an, Java dikembangkan oleh James Gosling dan timnya di Sun Microsystems. Java adalah bahasa OOP murni yang memperkenalkan konsep “write once, run anywhere” (WORA), yang membuatnya sangat populer untuk pengembangan aplikasi internet dan perangkat lunak lintas platform.
- Munculnya Pola Desain (Design Patterns): Buku “Design Patterns: Elements of Reusable Object-Oriented Software” oleh Erich Gamma, Richard Helm, Ralph Johnson, dan John Vlissides (dikenal sebagai “Gang of Four”) diterbitkan pada tahun 1994 dan menjadi pedoman penting bagi pengembang OOP. Buku ini memperkenalkan pola desain yang berulang yang dapat digunakan untuk menyelesaikan masalah umum dalam desain perangkat lunak.
- Visual Basic (VB) dan .NET: Microsoft juga memperkenalkan konsep OOP dalam bahasa Visual Basic dan kemudian dalam kerangka kerja .NET, memperluas adopsi OOP di kalangan pengembang yang bekerja dengan produk Microsoft.
5. Era Modern dan Evolusi OOP (2000-an dan seterusnya)
- Bahasa Pemrograman Modern: Bahasa modern seperti C#, Python, Ruby, dan Swift mengadopsi OOP sebagai salah satu paradigma inti mereka, dengan beberapa bahasa ini menggabungkan paradigma lain seperti pemrograman fungsional untuk meningkatkan fleksibilitas.
- Penggunaan dalam Pengembangan Perangkat Lunak: OOP telah menjadi standar de facto dalam pengembangan perangkat lunak untuk aplikasi desktop, web, dan seluler. Ini digunakan dalam pengembangan sistem besar, aplikasi perusahaan, dan perangkat lunak lainnya.
- Hybrid Paradigms: Banyak bahasa pemrograman modern sekarang mendukung pemrograman berparadigma ganda atau multi-paradigma, menggabungkan konsep OOP dengan teknik lain seperti pemrograman fungsional, prosedural, atau logis untuk memberikan fleksibilitas yang lebih besar dalam desain dan pengembangan perangkat lunak.
6. Masa Depan OOP
- Evolusi dan Tantangan Baru: Dengan munculnya teknologi baru seperti Machine Learning, Big Data, dan Quantum Computing, OOP juga berevolusi untuk memenuhi kebutuhan pengembangan perangkat lunak modern. Namun, beberapa kritik terhadap OOP mengemuka, dengan beberapa ahli lebih memilih pendekatan lain, seperti pemrograman fungsional, untuk kasus tertentu di mana mereka merasa OOP mungkin kurang optimal.
- Kecenderungan Terbaru: Terus ada perdebatan di kalangan pengembang tentang kelebihan dan kelemahan OOP dibandingkan paradigma lain. Namun, OOP tetap menjadi alat yang sangat kuat dan relevan dalam pemrograman modern, dengan evolusi terus-menerus dalam pola dan praktik desain.
OOP telah menjadi bagian integral dari pengembangan perangkat lunak modern, dan meskipun ada tantangan dan kritik, ia terus memainkan peran penting dalam dunia pengembangan perangkat lunak.
OOP Menggunakan Java
- Class Dan Object: Class bertugas untuk mengumpulkan prosedur/fungsi dan variabel dalam satu tempat. Class merupakan blueprint dari sebuah objek atau cetakan untuk membuat objek. Contoh class sebagai berikut ini.
Contoh Code:
public class Car{
// Body Class
}
Class akan merepresentasikan objek yang mau dibuat. Jadi dalam membuat nama kelas harus disesuaikan dengan objek yang akan dibuat. Penulisan nama class memiliki aturan. Yakni dengan format PascalCase. Apa itu? Penulisannya diiawali dengan huruf kapital. Jika nama variabel tersusun dari dua kata atau lebih maka tidak perlu diberi spasi di antaranya dan diawali dengan huruf kapital pula.
Misal: class MakananKucing, class Senjata, dan class SignIn.
Sedangkan object adalah sebuah variabel instance yang merupakan wujud dari class. Instance merupakan wujud dari sebuah kelas. Sebuah objek digambarkan dengan variable dan method.
Class berisi dari beberapa kumpulan definisi variabel dan fungsi yang menggambarkan sebuah objek. Ok, apakah teman-teman sudah mulai paham? Tidak hanya terdiri dari class, OOP juga terdiri dari beberapa elemen penyusun lainnya seperti attribute, method, inheritance dsb.
Atribut
Atribut merupakan bagian dari sebuah kelas yang masih berhubungan erat dari kelas tersebut. Atribut bisa juga disebut sebagai properti atau properties dari sebuah class. Contohnya ketika kamu punya sebuah class Motor, maka kamu dapat menambahkan atribut seperti kecepatan motor, umur motor, ukuran, ban, warna dsb. Untuk lebih detailnya, kita contohkan pada program berikut:
class Car {
// Attribute
int speed;
int tire;
}
Penggunaan atribut berlaku dari kurung kurawal awal ({) sampai dengan sebelum kurung kurawal akhir (}). Ini dinamakan scope. Untuk penulisannya menggunakan format lowerCamelCase. Jadi untuk kata pertama diawali dengan huruf kecil, sedangkan kata selanjutnya diawali dengan huruf kapital. Sama seperti PascalCase, penggunaan spasi tidak diperkenankan ketika menghubungkan dua kata atau lebih dari sebuah nama properti.
Contohnya length, width, apple, speed, listMovies, dll.
Method
Method berperan menjelaskan bagaimana suatu atribut beraksi. Peran yang dimaksud berupa tingkah laku (behavior) yang dapat digambarkan oleh suatu method. Misal class Manusia. Manusia tentu memiliki method berupa tingkah laku, seperti berpikir, berjalan, berbicara, makan dll. Maka tentunya method dapat disesuaikan dengan program yang dibuat.
Baik, biar lebih jelas kita akan coba implementasikan ke dalam sebuah kode Java. Kalian bisa menggunakan IDE seperti Bluej ataupun Intellij. Selain itu kamu bisa gunakan compiler online seperti repl.it atau glot.io.
Eits, kamu wajib baca dan pahami Materi Pemrograman Dasar Pada Java sebelum kamu lanjut belajar lebih dalam mengenai OOP.
Pertama, kamu bisa buat class Hewan.
Kode lab:
public class Hewan{
// Method dari kelas Hewan
void lari() {
System.out.println(“Berlari dengan sangat cepat.”);
}
void jalan() {
System.out.println(“Berjalan sambil melompat.”);
}
void makan() {
System.out.println(“Makan wortel dengan menggunakan mulutnya”);
}
}
Kemudian kamu bisa buat class Kelinci. Tulislah kode program berikut ini:
Kode lab:
public class Kelinci {
public static void main(String[] args) {
// Memanggil kelas Hewan
Hewan kelinci = new Hewan();
kelinci.makan(); // Method atau tingkah laku hewan kelinci
kelinci.jalan();
kelinci.lari();
}
}
Tabel class Hewan dan class Kelinci saling berkaitan. Artinya kelas Kelinci dapat memanggil method dari class Hewan.
Kamu dapat menjalankan program tersebut, maka output-nya seperti ini:
Kemudian kita akan menambahkan beberapa properti tambahan seperti ini
Kode lab:
public class Hewan {
// Properti
double tinggi = 20;
double berat = 4;
// Inisialisasi properti melalui konstruktor
int umur;
// Konstruktor dengan parameter
Hewan(int umur) {
this.umur = umur;
}
void lari() {
System.out.println(“Berlari dengan sangat cepat..”);
}
void jalan() {
System.out.println(“Berjalan sambil melompat.”);
}
void makan() {
System.out.println(“Makan wortel dengan menggunakan mulutnya”);
}
int getUmur() {
return umur;
}
double getBerat() {
return berat;
}
double getTinggi() {
return tinggi;
}
}
Kemudian tambahkan beberapa kode program pada class Kelinci.
Kode lab:
public class Kelinci {
public static void main(String[] args) {
// Memanggil kelas Hewan
Hewan kelinci = new Hewan(4);
kelinci.makan(); //Method atau tingkah laku hewan kelinci
kelinci.jalan();
kelinci.lari();
// Penggunaan fungsi getUmur dari class Hewan
System.out.println(“Umur Kelinci adalah” + kelinci.getUmur() + “tahun”);
// Perhitungan indeks massa tubuh (BMI)
// Rumus: berat(kg) / ( tinggi(m) * tinggi(m) )
double bmi = kelinci.getBerat() / ((kelinci.getTinggi() * 0.01) * (kelinci.getTinggi() * 0.01));
// Hasilnya
System.out.println(“Indeks massa tubuhnya adalah “ + bmi);
}
}
Maka output-nya:
Catatan : Tanda // adalah komentar yang bisa Anda gunakan untuk menjelaskan maksud dari kode program java.
Inheritance
Inheritance adalah hubungan antara dua objek atau lebih. Di mana terdapat sebuah objek utama yang mewariskan attribute maupun method yang dimilikinya kepada objek lainnya, baik itu sebagian maupun keseluruhan.
Contohnya seekor anak kucing berjenis mamalia, mewarisi sifat dan juga bentuk fisik orang tuanya, seperti bulu, mata, telinga, bahkan suaranya.
Suatu objek diwariskan dengan menggunakan keyword extends. Baik, pertama buatlah class Hewan. Class Hewan merupakan parent class atau orang tua dari semua kelas.
Kode lab:
public class Hewan {
public Hewan() {
System.out.println(“Hewan Mamalia”);
}
}
Kemudian Buat class Kucing, yang artinya merupakan turunan dari class Hewan. Gunakanlah keyword extends.
Kode lab:
public class Kucing extends Hewan {
public Kucing() {
super(); // Akan tetap memanggil constructor “hewan mamalia” dari parent Class
System.out.println(“Kucing Bersuara Meong”);
}
}
Dan yang terakhir buatlah class dengan nama Main. Kelas ini berguna untuk menjalankan atau mengeksekusi sebuah program.
Kode lab:
public class Main {
public static void main(String[] args) {
Hewan hewan = new Hewan(); // Memanggil class Hewan
System.out.println(“Apakah hewan IS-A Objek -> “ + (hewan instanceof Object));
System.out.println(“Apakah hewan IS-A Hewan -> “ + (hewan instanceof Hewan));
System.out.println(“Apakah hewan IS-A Kucing -> “ + (hewan instanceof Kucing));
System.out.println(“ — — — — — — — — — — — — “); // spasi
Kucing kucing = new Kucing(); // Memanggil class Kucing “Kucing bersuara meong”
System.out.println(“Apakah hewan IS-A Objek -> “ + (kucing instanceof Object));
System.out.println(“Apakah kucing IS-A Hewan -> “ + (kucing instanceof Hewan));
System.out.println(“Apakah kucing IS-A Kucing -> “ + (kucing instanceof Kucing));
}
}
Jika coding-mu benar, maka tabel akan berbentuk seperti gambar di bawah ini:
Dan ketika dijalankan maka output-nya seperti ini:
Peluang Karir Sebagai Java Developer
Menurut Collabera, profesi sebagai Java developer masih sangat dibutuhkan di banyak perusahaan seperti startup yang bisnisnya bergantung pada website atau aplikasi.
Hal itu tentunya membuat profesi yang satu ini memiliki prospek karier yang jelas dan baik.
Nah, jika kamu penasaran bagaimana cara memulai karier sebagai seorang Java developer, begini penjelasannya.
Banyak perusahaan mencari kandidat yang sudah memiliki latar belakang Ilmu Komputer untuk mengisi profesi ini.
Memang bagi lulusan Ilmu Komputer kesempatan akan terbuka lebih lebar. Pasalnya, mereka sudah memiliki beberapa dasar ilmu yang dibutuhkan untuk mengerjakan tugas Java developer.
Namun, tidak menutup kemungkinan perusahaan akan mempekerjakan seorang kandidat dengan latar belakang jurusan yang lain.
Asalkan memiliki skill yang dibutuhkan dan memiliki pengalaman kerja yang cukup, tentunya kesempatan menjadi seorang Java developer juga terbuka untukmu.
Edureka juga menyampaikan bahwa seorang Java developer sebaiknya pernah mengikuti kursus online atau offline tentang Core dan Advanced Java.
Selain itu, pengalaman kerja juga sangat dibutuhkan dalam profesi ini. Bukan hanya tentang teori saja, pekerjaan ini juga membutuhkan kemampuan untuk terjun langsung di lapangan.
Itulah mengapa sebaiknya kamu mencari pengalaman kerja sebanyak mungkin misalnya dengan magang.
Saat kamu magang tentunya akan mendapatkan bimbingan dari para Java developer yang sudah senior, jadi kamu bisa mendapatkan banyak ilmu darinya.
Tanggung Jawab Pekerjaan
Seperti yang sudah sempat disebutkan di atas, tugas dan tanggung jawab utama dari seorang Java developer ialah mengintegrasikan bahasa pemrograman Java untuk pengembangan website atau aplikasi.
Selain itu, profesi yang satu ini juga memiliki tanggung jawab pekerjaan lain yang cukup beragam.
Biasanya tanggung jawab tersebut juga tergantung pada setiap perusahaan. Namun, jika dilihat secara general, berikut ini tanggung jawab dari Java developer dilansir dari Bmc blogs.
- Merancang, mengimplementasikan, dan memelihara aplikasi Java.
- Menulis kode yang telah dirancang dengan baik, efisien, dan dapat diuji.
- Berkontribusi ke dalam semua fase pengembangan.
- Melakukan analisis software, pemrograman, pengujian, dan debugging.
- Mengelola pengembangan aplikasi Java dan Java EE.
- Memastikan desain yang sesuai dengan spesifikasi.
- Mempersiapkan dan memproduksi komponen software.
- Melakukan pengembangan secara berkelanjutan.
Dalam pekerjaannya, seorang Java developer akan tergabung dalam tim IT. Besar atau kecil timnya tentu saja tergantung dengan kebutuhan perusahaan.
Skill yang Dibutuhkan
Dilansir dari Edureka, ada dua jenis skill yang dibutuhkan oleh Java developer yaitu hard skill yang bersifat teknikal dan beberapa soft skill khusus.
Hard skill
1. Core Java
Bagi Java developer sangat diharuskan untuk menguasai Core Java. Saat kamu menguasai hal yang satu ini pastinya akan memuluskan jalanmu untuk berkarier sebagai Java developer.
Biasanya rekruter akan mencari kandidat yang kompeten mengenai Core Java dan paham dengan bagian-bagiannya seperti Object-Oriented Programming, Design Patterns, Interface in Java, dan masih banyak lainnya.
2. Java build tools
Dalam melakukan tugasnya, profesi ini juga sangat perlu menggunakan suatu tools khusus yang bisa berguna untuk menunjang pekerjaannya.
Contoh Java build tools yang paling wajib dipahami adalah Maven dan Gradle.
3. Web technology
Web technology menyediakan kemudahan dan kecepatan untuk membantu membuat konten web yang dinamis.
Memiliki kemampuan menguasai web technology seperti HTML, JQuery, dan CSS akan membantumu untuk memahami teknik membangun komunikasi antara beberapa sistem komputer melalui bahasa markup.
4. Big data
Seorang Java developer seharusnya juga paham dengan teknologi big data. Pasalnya, teknologi tersebut akan membantumu untuk menganalisis dan mengekstraksi informasi dari data-data yang kompleks.
Beberapa teknologi Big Data yang populer misalnya adalah Hadoop dan Spark.
5. Java testing tools
Menggunakan Java testing tools seperti Selenium dan TestNG akan membantu Java developer untuk menguji halaman JSP dan aplikasi web.
Kamu bisa melakukan berbagai aktivitas seperti melakukan pengujian mulai dari perencanaan, persyaratan, tes eksekusi, hingga analisis dengan mudah.
Soft skill
1. Skill komunikasi
Soft skill pertama yang perlu dikuasai oleh seorang Java developer adalah skill komunikasi.
Saat kamu sudah menguasai skill yang satu ini tentunya akan lebih mudah untuk mengemukakan ide yang dimiliki.
Selain itu, dengan mampu berkomunikasi yang baik tentunya kamu juga akan mudah untuk bekerja sama dengan para anggota tim.
2. Mau belajar hal baru
Jika ingin menjadi seorang Java developer yang andal kamu harus selalu belajar hal yang baru karena pengetahuan tidak ada batasnya.
Sifat seperti selalu ingin tahu dan memiliki keinginan untuk terus belajar sangatlah penting karena teknologi selalu berkembang.
3. Dedikasi
Mau bekerja keras dan memiliki dedikasi tinggi juga sangat diperlukan untuk menjalani profesi ini.
Ada saatnya kamu akan merasa jenuh dengan pekerjaanmu, tapi seseorang yang berdedikasi pastinya tidak akan mengendorkan semangat dan tetap bekerja keras.
Setelah mengetahui apa saja skill yang dibutuhkan untuk menjadi seorang Java developer di atas, apakah kamu siap untuk mempelajarinya?
Selain lewat buku dan tutorial di internet, kamu juga bisa belajar di Glints ExpertClass, lho.
Di sana kamu bisa mendapatkan banyak pengetahuan serta tips pengembangan diri langsung dari para pakar yang berpengalaman di bidangnya.
Yuk, segera cari kelas yang sesuai untukmu di Glints ExpertClass sekarang juga!
Sumber
- What Java skills are in demand?
- Java Developer Skills: Important Skills of a Java Developer
- Java Developer Roles & Responsibilities
referensi
https://glints.com/id/lowongan/java-developer/
https://chatgpt.com/c/c850984a-5b35-4143-912a-92c568ea7d5b
Saat kamu magang tentunya akan mendapatkan bimbingan dari para Java developer yang sudah senior, jadi kamu bisa mendapatkan banyak ilmu darinya.