Uncategorized

Apa Itu OOP??

Halo, selamat datang di Bony3D!

Sebelum kita membahas tentang OOP (Object Oriented Programming), sebaiknya kita memahami konsep dasar dari OOP itu sendiri. Pada bahasa Indonesia, penyusunan kalimat dikenal sebagai Subjek + Predikat + Objek. Seperti pada contoh, Saya minum es coklat. Es Coklat merupakan objek dalam kalimat ini dan dalam OOP, es coklat didefinisikan sebagai program. Objek yang dalam hal ini adalah es coklat memiliki berbagai macam jenis, seperti harganya, produksinya, dan proporsinya.

Secara singkat, OOP adalah metode programming dengan tujuan mempermudah pekerjaan programmer. OOP hanya fokus dan berorientasi pada objek. Lalu mengapa OOP penting untuk dipahami? Karena dengan OOP, para programmer dimudahkan dalam mengembangkan kode, mengubah implementasi objek tanpa harus mengubah data, membentuk metode umum untuk objek lain tanpa harus menulis ulang, mengembangkan 1 jenis data dan menjadikan 1 fungsi ke fungsi lainnya tanpa harus mengganti data, dan hanya dengan OOP, bisa memiliki fungsi beragam yang diterapkan di berbagai data. Pada artikel ini, saya akan membahas lebih detail mengenai konsep dasar OOP, 3 prinsip yang paling sering digunakan, kelebihan, serta kekurangan OOP itu sendiri.

Dalam memprogram suatu kodingan, kita pasti menyertakan beberapa fungsi di dalamnya, karena setiap fungsi memiliki tujuan yang berbeda dan fungsi tersebut tidak bisa di satukan karena mereka berbeda. Ada 2 cara menyatukan beberapa fungsi, pertama dengan memisahkannya per-file atau dengan cara yang kedua yaitu dibuat objek. Cara yang paling efektif adalah membuatnya menjadi objek karena tugas kita sebagai programmer hanya perlu import 1 class tanpa harus mengulang 1 per 1 fungsinya. Sebagai contoh:

professor = 'amanda'
def professor_minum():
print('{} minum es coklat'.format(professor)) petani = 'ani'
def petani_minum():
print('{} minum es coklat'.format(petani))
dokter = 'sandy'
def dokter_minum():
print('{} minum es coklat'.format(dokter))
professor_minum()
petani_minum()
 dokter_minum()

Hasil:

Amanda minum es coklat
ani minum es coklat
dokter minum es coklat

Masalah yang dihadapi para programmer ialah harus mengulang kodingan padahal keterangannya sama. Contohnya saya membuat keterangan bahwa Amanda, Ani, dan Sandy minum es coklat. Biasanya programmer membuat kodingan untuk setiap nama, namun cara ini tidak efektif. Bagaimana jika data yang kita miliki berjumlah ratusan? Maka solusinya adalah membuatnya menjadi objek.

Sebagai contoh: Amanda, Ani, dan Sandy minum es coklat. Hal yang perlu diperhatikan adalah "Apa yang sama?" Mereka adalah manusia, memiliki nama, dan bisa minum. Jadi, manusia, nama, dan minum adalah objeknya. Langkah pertama yang dilakukan adalah membuat rancangannya dulu, kelasnya, atau dalam bahasa teknik sipil ialah denah rumahnya. Setelah jadi class-nya maka itu yang disebut dengan objek.

Sekarang, masuk ke pembahasan class, class umum yaitu manusia, memiliki nama, fungsi (minum), dan profesi. Minum hanya bisa dipanggil setelah ada objeknya yaitu nama dan nama baru bisa dipanggil ketika ada kelas umumnya yaitu manusia.
class Manusia (object):
nama = None
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
professor = Manusia()
professor.miunun()

Hasil:

none minum es coklat

Dalan kodingan ini, masih belum ada namanya. Lalu, bagaimana cara menyimpan nama? Konstruktor adalah jawaban terbaik untuk hal ini, karena setiap membuat objek maka otomatis membuat nama. Seperti contoh:

class Manusia (object):
nama = None
def _ _ init__(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
professor = Manusia('amanda')
professor.miunun()
petani = Manusia('ani')
petani.miunun()
dokter = Manusia('sandy')  
dokter.miunun()

Hasil:
Amanda minum es coklat
ani minum es coklat
dokter minum es coklat

Pada hasil kodingan ini, bisa dilihat bahwa nama bisa langsung tercantum dan sama seperti hasil kodingan sebelumnya namun dengan menggunakan OOP maka tidak perlu mengulang 1 per 1 kodingan untuk keterangan yang sama.
Setelah kita mengetahui dasar dari OOP maka selanjutnya ada 3 prinsip yang digunakan dalam OOP. Pertama, inheritance. Bisa diartikan sebagai turunan atau mewariskan dari kelas utama tapi dengan menambahkan fungsi lain. Contohnya di kelas utama kita memiliki fungsi minum, maka di prinsip inheritance kita menambahkan email dan pastinya dengan menggunakan kode baru. Sebagai contoh:

class Manusia (object):
nama = None
def _ _ init__(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
class ManusiaMilenial (object):
nama = None
email = None
def _ _ init__(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
def Set.email(self, email):
self.email = email
professor = ManusiaMilenial('amanda')
professor.Set_email('amanda@test.com')
professor.miunun()
petani = ManusiaMilenial('ani')
petani.Set_email('ani@test.com')
petani.miunun()
dokter = ManusiaMilenial('sandy')
dokter.Set_email('sandy@test.com')  
dokter.miunun()

Hasil:
Amanda minum es coklat
ani minum es coklat
dokter minum es coklat

Hasilnya akan sama. Kelas ini disebut subclass dari kelas manusia atau turunan dari kelas manusia. Manusia milenial adalah anak kelas dari kelas utama "manusia." Secara singkat, apapun yang dimiliki kelas utama juga akan dimiliki kelas turunan. Menggunakan prinsip inheritance ini, kode jadi lebih sederhana dan para programmer hanya perlu menambahkan apa yang belum ada di kelas utama. Menambahkan fungsi baru di kelas turunan tidak akan mengurangi fungsi asli dari kelas utama. Sebagai contoh:

class Manusia (object):
nama = None
def _ _ init__(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
class ManusiaMilenial (Manusia):
email = None
def Set.email(self, email):
self.email = email
def info(self):
print('nama = {}, email = {}' .format(self.nama, self.email))

professor = ManusiaMilenial('amanda')
professor.Set_email('amanda@test.com')
professor.info()

petani = ManusiaMilenial('ani')
petani.Set_email('ani@test.com')
petani.info()
dokter = ManusiaMilenial('sandy')
dokter.Set_email('sandy@test.com')    
dokter.info()

Hasil:
nama = amanda, email = amanda@test.com
nama = ani, email = ani@test.com
nama = sandy, email = sandy@test.com

Kesimpulannya pada prinsip inheritance ini, kita membuat kelas turunan dari kelas sebelumnya dengan jumlah kelas turunan tak terbatas serta kita bisa menambahkan fungsi baru dari fungsi asli yang dimiliki.
Prinsip kedua dari OOP ialah encapsulation. Secara sederhana konsep dari prinsip ini adalah membungkus semua hal yang ada di dalam kelas (email, self email, info, dan self password) tapi hanya mengizinkan akses untuk hal-hal tertentu saja. Seperti contoh:

professor = ManusiaMilenial('amanda')
professor.Set_email('amanda@test.com')
print (professor.email)

Hasil:
amanda@test.com

Disini saya mengatur email aksesnya dibuka untuk semua orang atau publik. Namun bagaimana jika saya ingin membuatnya menjadi privat? Maka saya hanya perlu menambahkan 2 underscore didepan objek-nya semisal password. Dengan cara ini, password akan menjadi privat dan hanya bisa diakses dari info tapi tidak bisa diperlihatkan secara terang-terangan. Selanjutnya bagaimana membuat agar fungsi privat bisa dilihat secara samar-samar oleh orang dalam? Berikut adalah kodingan untuk membuat password privat dan disamarkan.

class Manusia (object):
nama = None
def _init_(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
class ManusiaMilenial (Manusia):
email = None
__password = None
def Set.email(self, email):
self.email = email
def Set.pass(self, password):
self.__password = password
def __samarkan_password(self):
return self.__password.replace('a', '*')
def info(self):
print('nama = {}, email = {}, pass = {}' .format(self.nama, self.email, self.__samarkan_password))
professor = ManusiaMilenial('amanda')
professor.Set_email('amanda@test.com')
professor.pass('rahasia')
professor.info()
print (professor.email)
Hasil:
nama = amanda, email = amanda@test.com, pass = r*h*si*

Menggunakan fungsi samar ini, fungsi tidak akan bisa dipanggil oleh orang dari luar kelas dan tidak bisa dimodifikasi
Prinsip ketiga yang sering digunakan dalam OOP ialah polymorphism. Prinsip ini mengartikan bahwa walaupun kelas utamanya sama, kelas turunannya bisa berbagai bentuk. Seperti contoh, kelas utama memiliki fungsi minum, kelas turunan memiliki fungsi minum dan email. Kelas baru dari kelas turunan disebut subclass. Misalnya subclass dari kelas turunan (manusia milenial). Subclass tidak bisa akses samarkan password kecuali sudah diizinkan. Berikut adalah contoh kodingan dari subclass manusia milenial.

class Manusia (object):
nama = None
def _init_(self, nama)
self.nama = nama
def minum(self):
print('{} minum es coklat'.format((self.nama)) )
class ManusiaMilenial (Manusia):
email = None
__password = None
def Set.email(self, email):
self.email = email
def Set.pass(self, password):
self.__password = password
def __samarkan_password(self):
return self.__password.replace('a', '*')
def info(self):
print('nama = {}, email = {}, pass = {}' .format(self.nama, self.email, self.__samarkan_password))
class professor(ManusiaMilenial):
def info(self):
print('nama = {}/email = {}' .format(self.nama, self.email))
class konsultan(ManusiaMilenial):
def info(self):
print('nama = {}:email = {}' .format(self.nama, self.email))
professor = ManusiaMilenial('amanda')
professor.Set_email('amanda@test.com')
professor.pass('rahasia')
professor.info()
konsultan = ManusiaMilenial('ani')
konsultan.Set_email('ani@test.com')
konsultan.pass('abc123')
konsultan.info()

Hasil:
nama = amanda/email = amanda@test.com
nama = sandy:email = sandy@test.com

Dengan prinsip ini, kita bisa mengubah fungsi jadi hal lain atau menghapusnya. Semisal saya menghilangkan samarkan password, mengganti koma menjadi garis miring atau titik dua. Prinsip ini juga bisa digunakan untuk 2 fungsi dengan nama sama namun parameternya berbeda, seperti:

class professor(ManusiaMilenial):
def info(self):
print('nama = {}/email = {}' .format(self.nama, self.email))
def info(self, data):
print('nama = {}/email = {}, {}' .format(self.nama, self.email))

Jadi itulah gambaran singkat mengenai apa itu OOP, nah sekarang jadi semakin paham kan? Oh iya sebelum ditutup ada baiknya mengetahui apa kelebihan dan kekurangan dari OOP. Kelebihannya, dengan menggunakan OOP masing-masing programmer bisa membangun kelas individual dan komponen dapat menjadi 1 kesatuan, kelas dapat digunakan kembali tanpa harus membuat kode ulang, dan data menjadi lebih mudah diakses ketika dibutuhkan. Kekurangan OOP sendiri diantaranya menggunakan tenaga CPU yang lebih besar serta harus cermat dalam mengontrolnya karena OOP akan membuat sendiri program yang akan membebani komputer. Jadi harus tetap cermat ya dalam menggunakannya:)
Referensi: Redaksi Jagoan Hosting (2023, 19 Januari). Pengertian OOP (Object Oriented Programming) dan 4 Prinsipnya. Blog Jagoan Hosting. https://www.jagoanhosting.com/blog/oop-adalah/

FILAMENT PETG (Polyethylene Terephthalate)

Filament yang keunggulannya ada diantara filament PLA dan ABS.

Dimana karakteristik filamen ABS memiliki sifat kekakuan dan sifat mekanik untuk bagian fungsional sedangkan filamen PLA adalah kemudahan dalam proses pencetakan.

KEUNGGULAN FILAMENT PETG

  • Secara fungsional Filamen PETG mempunyai perpaduan antara Kekuatan Seperti ABS dan Kemudahan Proses Printing Seperti PLA.
  • Lebih awet dibanding PLA dan ABS, tahan terhadap benturan.
  • Daya rekat antar layer yang sangat baik daripada ABS
  • Potensi warping atau penyusutan hasil cetak yang lebih kecil dibanding ABS.
  • Lebih tahan terhadap panas dan sinar matahari karena Glass Transition Temperaturnya 88 C, lebih tinggi daripada PLA.
  • Pada saat overheating, senyawa glikol yg ditambahkan mampu mencegah bahan mengkristal dan mudah pecah.

PETG (Polyethylene Terephthalate) adalah salah satu polimer, yang meskipun hasilnya cukup bagus namun filament ini memiliki daya serap udara dan air yang cukup tinggi. Dengan kata lain, PETG harus disimpan di tempat yang sejuk dan kering. Selain itu harus dikeringkan jika terkena udara lembab terlalu lama.

Gimana sob, mau pilih filament yang mana nih? Simak terus sharing post dari bony3d hanya di bony3d.com ya!

Mengenal Bahan Resin pada 3D Print

Banyak sekali macam bahan atau matterial pada 3D Print, pemilihan bahan ini harus tepat sesuai dengan kebutuhan cetak nya untuk apa.

Nah kali ini mimin mau share tentang salah satu bahan untuk cetak 3D yaitu RESIN, kalau kemarin di artikel sebelumnya dijelaskan tentang filament ABS,PLA, dll, soal Resin ini berbeda dengan filament seperti ABS ataupun PLA, karna dari bentuk bahannya pun berbeda.

Jika filament ABS basic bahannya plastik, Resin ini cukup unik karena bentuknya cair juga cara memproses print objeknya pun lebih presisi dibanding dengan filament lainnya. Prosesnya menggunakan teknologi laser yang membuat hasil dari printing ini lebih akurat dan presisI. Tekni ini biasa disebut dengan Teknik Stereolithography (SLA). TIngkat tolerasi ketelitiannya pun juga sangat detail yaitu 0,1 micron yang berarti sidik jari manusiapun bisa terlihat jika tercetak pada mesin SLA ini. Ingin tau proses printing SLA ini lebih detail? Yuk simak dibawah!

Proses pencetakan SLA ini menggunakan tong resin fotopolimer cair yang bisa diawetkan. Plat build akan bergerak sedikit demi sedikit dan polimer cair terkena cahaya di tempat laser UV menggambar penampangnya lapis demi lapis. Proses ini dilakukan berulang kali sampai model selesai dibuat. 

Objek dicetak secara 3 dimensi dengan menariknya keluar dari resin (bottom-up) yang kemudian menciptakan ruang kosong untuk resin yang tidak diawetkan pada bagian bawah kontainer. Dengan cara ini, mesin printer bisa membentuk lapisan objek yang berikutnya.

KEUNGGULAN MENGGUNAKAN BAHAN BAKU RESIN UNTUK 3D PRINT

  • Detailnya tinggi. Kalau sobat bony3d membutuhkan cetak 3 dimensi dengan akurasi tinggi, SLA adalah opsi yang terbaik
  • Aplikasinya luas. Dari otomotif sampai produk konsumen, banyak perusahaan yang menggunakan SLA untuk membuat prototipe cepat
  • Kebebasan dalam desain. SLA memungkinkan Anda mencetak objek geometri yang sangat kompleks

CONTOH HASIL CETAK RESIN 3D PRINT

MASTER CETAK COR LOGAM
Action Figure – Bahan Resin

Apa Itu Print Resin

Hallo, selamat datang di Bony3D!

Gambar 1. Hasil 3D Print Resin

Seperti yang sudah dibahas sebelumnya terdapat banyak sekali bahan yang dapat digunakan dalam bidang 3D printing. Nah salah satunya yaitu resin.

Resin sendiri merupakan material yang terbuat dari bahan alami dan juga senyawa kimia. Bahan alami yang digunakan biasanya berupa getah berbagai pohon seperti kunjung atau conifer. Resin memiliki banyak variasi warna, seperti putih, abu, transparant, hijau, merah, oranye, coklat, sll.

Resin biasanya digunakan pada printer 3D berteknologi SLA. SLA (Stereolithography) adalah pembuatan model dengan menembakkan ultraviolet ke wadah yang berisi photopolymer resin dengan dipandu gambar yang dihasilkan oleh software CAD/CAM. Sinar ultraviolet berfungsi untuk mengeraskan lapisan demi lapisan photopolymer resin.

Setelah model selesai dicetak, model dikeluarkan dari mesin dan dipisahkan dari platformnya. Selanjutnya model dibersihkan dari support dan dibersihkan dengan carian kimia, lalu dikeringkan pada mesin pengering.

                                                                         

 

                                                                      Gambar 2. Printer SLA

Teknik SLA memiliki cara cetak yang beragam. Ada yang mulai mecetak dari bawah model lalu ke atas, ada juga yang sebaliknya tergantung jenis mesin yang digunakan. Printer 3D SLA dekstop biasanya bekerja dengan teknik dari bawah ke atas. Sedangkan untuk printer 3D industri biasanya dari atas ke bawah.

Printer 3D SLA dekstop biasanya lebih mudah dioperasikan dan juga harganya lebih  murah. Sedangkan untuk mesin SLA industri cenderung lebih sulit pengoperasiannya. Mesin SLA industri juga lebih memungkinkan untuk mencetak objek berukuran besar dikarenakan volume yang dimiliki mendukung.

Secara umum printer 3D SLA memiliki 4 bagian utama. Pertama, tangki yang berisi photopolymer cair bisa berupa resin. Kedua, platform yang dibenamkan ke dalam tangki yang dapat bergerak ke atas maupun ke bawah sesuai dengan objek yang sedang dicetak. Ketiga, laser ultraviolet yang berfungsi mengeraskan cairan resin. Keempat, interface komputer yang membantu mengatur platform dan gerakan laser.

Semua objek yang dicetak menggunakan mesin SLA hasilnya sangat presisi dan akurat meskipun dalam skala kecil mendekati soft file-nya cocok untuk mencetak action figure. Hasil cetak SLA juga memiliki permukaan yang sangat halus . Selain itu, proses pengerjaannya pun lebih cepat dibandingkan dengan bahan lainnya. 

Karena SLA mampu menghasilkan cetakan yang lebih detail dengan tingkat akurasi yang tinggi maka printer SLA rata-rata akan menghasilkan biaya yang lebih tinggi dibandingkan dengan  printer FDM.

Selain itu, objek yang dihasilkan mesin SLA perlu dibersihkan menggunakan alkohol untuk membersihkan sisa resin dan hasil cetak dengan bahan resin cukup rapuh atau mudah pecah jika terkena benturan, sehingga kurang cocok untuk membuat prototipe yang sifatnya fungsional.

Gambar 1. Sumber : https://idseducation.com/teknik-yang-digunakan-3d-printing/

Gambar 2. Sumber : https://indonesian.alibaba.com/product-detail/SLA-Desktop-Automatic-Multifunction-3D-Printer-60353516703.html

Fungsi dari 3D Printer

Halo, selamat datang di Bony3D!

Sebuah benda diciptakan, atau bila ingin menggunakan kata yang lebih sederhana, dibuat, pasti memiliki kegunaan.

Konsep ini tentu berawal dari alam pikir manusia yang selalu berusaha untuk memudahkan hidupnya, Alexander Graham Bell menciptakan telepon karena pada awalnya ia ingin berkomunikasi dengan seseorang yang tidak bisa ditemuinya secara langsung. Baron Karls Drais Von Sauerbronn menciptakan sepeda karena menurutnya, berjalan kaki untuk menuju suatu tempat itu tidak selamanya efektif, makadari itu ia membuat sebuah alat yang bisa membantunya bergerak lebih cepat.

Ini juga terjadi kepada Dr. Hideo Kodama, Jean-Claude André, Olivier de Witte, Alain le Méhauté, serta Charles “Chuck” Hull. Semuanya berawal dari pikiran, bagaimana caranya bisa membuat sebuah benda yang detail dan memiliki ukuran beragam secara cepat? jika ditelaah mentah – mentah, maka dengan menjawab memakai kemampuan tangan kita juga bisa.

Namun mereka tak berpikir demikian, mereka berpikir jauh kedepan, bagaimana bila kita lelah? kita tidak bisa membuatnya secara cepat, bagaimana bila terjadi kesalahan? kita harus mengulangnya dari awal, bagaimana dengan proses penciptaannya? kita harus mendesain, mengukur, membuat, memahat, memotong, dan lain lainnya terlebih dahulu, itu tidaklah efektif. Maka dari itulah muncul gagasan untuk dapat membuat alat yang bisa mencetak dan membuat benda – benda yang sulit dibuat oleh tangan manusia, terus berkembang selama beberapa tahun dan akhirnya muncullah 3D Printer.

Berikut ini merupakan fungsi dari 3D Printer menurut Bony3D:

  1. Dapat membuat objek yang memiliki detail tinggi secara cepat

Kelebihan dari mesin yaitu sanggup melakukan berbagai hal sesuai dengan teknis kegunaanya, 3D Printer mampu mencetak berbagai macam benda yang memiliki detail teramat rumit, tentu sesuai desain yang telah dipersiapkan sebelumnya.

  1. Dapat membuat objek dengan berbagai ukuran

3D Printer pastilah diproduksi dengan dimensi yang beragam, baik untuk sektor rumahan yang memiliki ukuran standar seperti yang biasa kita lihat, maupun untuk sektor khusus yang memiliki berbagai macam ukuran, dengan hadirnya mesin ini kita mampu membuat baik benda yang kecil atau besar sesuai dimensi 3D Printernya, yang membuat kita tidak perlu berpikir apakah kita bisa membuatnya!

  1. Media yang baik untuk membuat Protoype

Prototype biasanya dibuat sebelum produk tersebut jadi, cara paling simpelnya yaitu dibuat dengan tangan, kalau kalian bertanya apakah ada suatu mesin yang dapat membuat purwarupa untuk suatu produk secara cepat dan tepat? ya 3D Printerlah jawabannya.

Jadi, mungkin bagi teman – teman yang mengetahui fungsi dari 3D Printer hanya untuk mencetak Objek 3D saja, ini adalah perpanjangannya.


Gambar 1 & 2. Sumber: https://www.instructables.com/3D-Printing-Basics/

Keranjang Belanja