Jumat, 03 April 2015

ALGORITMA DAN PEMROGRAMAN



1.                  Defenisi Sofskill
Softskill adalah istilah dalam EQ seseorang yang dapat di kategorikan kedalam kekhidupan sosial komunikasi, dan kebiasaan, softskill merupakan keterampilan seseorang yang berhubungan dengan bidang ilmunya, yang melatari adanya softskill adalah karena setiap orang memiliki bakat yang dimana bakat tersebut nantinya akan mempengarusi segi psikologi dari orang tersebut dalam kehidupannya.
Softskills adalah sebuah istilah dalam sosiologi tentang EQ (Emotional Intelligence Quotient) seseorang, yang dapat dikatagorikan /klusterkan menjadi kehidupan sosial, komunikasi, bertutur bahasa, kebiasan, keramahan, optimasi.
soft skill adalah suatu kemampuan, bakat, atau keterampilan yang ada di dalam diri setiap manusia. Soft skill adalah kemampuan yang dilakukan dengan cara non teknis, artinya tidak berbentuk atau tidak kelihatan wujudnya.  Namun , softskill ini dapat dikatakan sebagai keterampilan personal dan inter personal.
Yang dimaksud softskill personal adalah kemampuan yang di manfaatkan untuk kepentingan diri sendiri. Misalnya, dapat mengendalikan emosi dalam diri,  dapat menerima nasehat orang lain, mampu memanajemen waktu, dan selalu berpikir positif. Itu semua dapat di kategorikan sebagai softskill personal.
Kemudian yang dimaksud softskill inter personal adalah kemampuan yg dimanfaatkan untuk diri sendiri dan orang lain. Contohnya,  kita mampu ber hubungan atau ber interaksi dengan orang lain, bekerja sama dengan kelompok lain, dan lain lain.
Nah, softskill juga harus di iringi dengan hardskill, karena kita hidup tidak boleh hanya mempunyai softskill yang berkualitas saja, tapi hardskill kita perlu diperhatikan. Dengan memiliki hardskill yang baik, kita bisa menjadi manusia yang berkualitas. Misalnya, kita di sekolahkan oleh orang tua kita, kita akan memiliki ilmu pengetahuan, nah ilmu tersebut akan kita gunakan dalam kehidupan kita nanti, oleh karena itu, hardskill dan softskill yang seimbang dapat menumbuhkan jiwa/pribadi yang berkualitas
Soft Skill atau keterampilan lunak menurut Berthhall (Diknas, 2008) mendefinisikan soft skill sebagai “personal and interpersonal behaviour that develop and maximize human performance (e.g. coaching, team building, decision making, initiative).” merupakan tingkah laku personal dan interpersonal yang dapat mengembangkan dan memaksimalkan kinerja manusia (melalui pelatihan, pengembangan kerja sama tim, inisiatif, pengambilan keputusan lainnya. Keterampilan lunak ini merupakan modal dasar peserta didik untuk berkembang secara maksimal sesuai pribadi masing-masing.




2.                   Algoritma Pemograman dalam Teknik Elektro
Dalam matematika dan ilmu komputer, algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Algoritma adalah metode efektif diekspresikan sebagai rangkaian terbatas dari instruksi-instruksi yang telah didefinisikan dengan baik untuk menghitung sebuah fungsi. Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong), instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas yang terdefinisi dengan baik, yang pada akhirnya menghasilkan “keluaran” dan berhenti di kondisi akhir. Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik; beberapa algoritma, dikenal dengan algoritma pengacakan, menggunakan masukan acak.
Walaupun algorism-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmatika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan kuadrat, sebagian formalisasi yang nantinya menjadi algoritma modern dimulai dengan usaha untuk memecahkan permasalahan keputusan (Entscheidungsproblem) yang diajukan oleh David Hilbert di tahun 1928. Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan “penghitungan efektif” atau “metode efektif”; formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt Godel – Jacques Herbrand – Stephen Cole Kleene di tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church di tahun 1936, “Formulasi 1″-nya Emil Post di tahun 1936, dan Mesin Turing-nya Alan Turing di tahun 1936-7 dan 1939. Dari definisi formal dari algoritma di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.

Diagram Alur
Diagram alur dari sebuah algoritma (Algoritma Euclid) untuk menghitung faktor persekutuan terbesar (f.p.k.) dari dua angka a dan b dalam lokasi bernama A dan B. Algoritma dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan “ya” (atau benar) (lebih akuratnya angka b dalam lokasi B lebih besar atau sama dengan angka a dalam lokasi A) MAKA, algoritma menentukan B ← B – A (artinya angka b – a menggantikan b sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A – B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritma tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).
Definisi Informal
Untuk penjelasan lebih rinci dari berbagai sudut pandang mengenai definisi “algoritma”, lihat Karakterisasi Algoritma. Definisi informalnya bisa berarti “sekumpulan aturan yang secara tepat menentukan seurutan operasi”. Yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik. Secara umum, sebuah program hanyalah sebuah algoritma jika ia akan berhenti nantinya.
Sebuah contoh prototipikal dari suatu algoritma adalah algoritma Euclid untuk menentukan bilangan pembagi terbesar dari dua integer; sebagai contohnya (ada contoh yang lain) dijelaskan dengan diagram alur di atas dan sebagai contoh di bagian lanjut.

Boolos & Jeffrey (1974, 1999) memberikan sebuah makna informal dari kata algoritma dalam persamaan berikut:
Tidak ada manusia yang dapat menulis begitu cepat, atau begitu lama, atau begitu kecil (“kecil, dan lebih kecil tanpa batas … anda mungkin mencoba menulis di atas molekul, atom, elektron”) untuk mencatat semua anggota dari kumpulan bilangan tak terbatas dengan menuliskan namanya, bergantian, dalam suatu notasi. Tapi manusia bisa melakukan sesuatu yang sama bergunanya, pada kasus kumpulan bilangan tak terbatas: Mereka dapat memberikan instruksi jelas untuk menentukan anggota ke-n dari set, untuk n terbatas acak. Instruksi tersebut diberikan secara eksplisit, dalam bentuk yang dapat diikuti oleh mesin penghitung, atau oleh manusia yang mampu melakukan hanya operasi-operasi dasar dengan simbol-simbol.
Suatu “bilangan tak-terbatas” adalah bilangan yang elemen-elemenya bisa berkorespondensi satu-ke-satu dengan integer. Maka, Boolos dan Jeffrey mengatakan bahwa sebuah algoritma berarti instruksi bagi sebuah proses yang “membuat” keluaran integer dari sebuah “masukan” acak integer yang, secara teori, bisa sangat besar. Maka sebuah algoritma dapat berupa persamaan aljabar seperti y = m + n — dua variabel masukan m dan n yang menghasikan keluaran y. Tapi berbagai penulis yang mencoba mendefinisikan persamaan tersebut mengatakan bahwa kata algoritma mengandung lebih dari itu, sesuatu yang kurang lebih (untuk contoh penjumlahan):
Instruksi rinci dan tepat (dalam bahasa yang dipahami oleh “komputer”) untuk proses yang cepat, efisien, “baik” yang menentukan “pergerakan” dari “komputer” (mesin atau manusia, dibekali dengan informasi dan kemampuan internal yang dibutuhkan) untuk menemukan, dekode, dan kemudian mengolah masukan integer/simbol m dan n, simbol + dan = … dan “secara efektif” menghasilkan, dalam waktu yang “masuk akal”, keluaran integer y pada tempat dan format tertentu.
Konsep dari algoritma juga digunakan untuk mendefinisikan notasi dari desidabilitas. Notasi tersebut adalah pusat untuk menjelaskan bagaimana sistem formal berasal dari sejumlah kecil aksioma dan aturan. Dalam logika, waktu dari sebuah algoritma untuk selesai tidak dapat dihitung, karena tidak berelasi dengan dimensi fisik kita. Dari ketidakpastian tersebut, yang mengkarakteristikan pekerjaan yang sedang berjalan, timbulah ketidak-tersediannya definisi algoritma yang sesuai dengan konkrit (pada tingkat tertentu) dan penggunaan secara abstrak dari istilah tersebut.

Menggambarkan algoritma
Algoritma dapat digambarkan dengan banyak notasi, termasuk bahasa alamiah, pseudokode, diagram alur, bagan drakon, bahasa pemrograman atau tabel kontrol (diproses oleh penerjemah). Ekspresi bahasa alamiah terhadap algoritma condong lebih banyak dan rancu, dan jarang digunakan untuk algoritma yang kompleks dan teknis. Pseudokode, diagram alur, bagan drakon, dan tabel kontrol adalah cara yang terstruktur untuk menggambarkan algoritma yang mencegah banyaknya kerancuan pada pernyataan-pernyataan bahasa alamiah. Bahasa pemrograman ditujukan untuk mengekspresikan algoritma dalam sebuah bentuk yang dapat dieksekusi oleh komputer, tapi sering kali digunakan sebagai suatu cara untuk menentukan atau mendokumentasikan algoritma.
Ada banyak macam kemungkinan representasi dan seseorang dapat mengekspresikan sebuah program mesin Turing sebagai urutan dari tabel-tabel mesin (lihat lebih lanjut di mesin kondisi-terbatas, tabel transisi kondisi dan tabel kontrol), sebagai diagram alur dan bagan drakon (lihat lebih lanjut di diagram kondisi), atau sebagai bentuk kode mesin atau kode assembly dasar yang dikenal “kumpulan lipat empat” (lihat lebih lanjut di mesin Turing).
Representasi dari algoritma dapat dikelompokan ke dalam tiga tingkatan dari deskripsi mesin Turing:
1  Deskripsi tingkat-tinggi
“… ditujukan untuk menjelaskan algoritma, menghiraukan rincian implementasi. Pada tingkat ini kita tidak perlu menyebutkan bagaimana mesin mengatur perangkat pita atau kepala pita rekam.”
2  Deskripsi implementasi
“… digunakan untuk menjelaskan cara mesin Turing menggunakan kepalanya dan cara menyimpan data. Pada tingkat ini kita tidak memberikan secara rinci kondisi atau fungsi transisi.”
3  Deskripsi formal
Lebih rinci, “tingkat paling rendah”, menjelaskan “tabel kondisi” dari mesin Turing.
Sebagai contoh dari algoritma sederhana “Penjumlahan m+n” dijelaskan dalam tiga tingkatan tersebut lihat contoh algoritma.
Algoritma komputer
Contoh diagram alur dari struktur Bohm-Jacopini: URUTAN (segi empat), WHILE-DO dan IF-THEN-ELSE. Ketiga struktur dibentuk dari kondisi primitif GOTO ( IF test=true THEN GOTO step xxx ) (wajik), GOTO tak bersyarat (segi empat), berbagai operator penetapan (segi empat), dan HALT (bujursangkar). Memasukan struktur tersebut ke dalam blok-penetapan menghasilkan diagram yang kompleks (cf Tausworthe 1977:100,114).

Dalam sistem komputer, sebuah algoritma pada dasarnya adalah instansi dari logika ditulis dalam perangkat lunak oleh pengembang perangkat lunak supaya efektif untuk komputer yang “ditargetkan” untuk mesin tertentu untuk menghasilkan keluaran dari masukan yang diberikan (kemungkinan nul).
Program yang “elegan” (padat), program yang “baik” (cepat): Pernyataan dari “sederhana dan elegan” muncul secara informal dalam buku Knuth dan dalam Chaitin: Knuth: “… kita menginginkan algoritma yang baik dalam definisi estetika sederhana. Salah satu kriterianya … adalah waktu yang dibutuhkan untuk berjalannya algoritma … Kriteria yang lain adalah adaptasi dari algoritma ke komputer, kesederhanaan dan elegan, dll”
Chaitin: “… sebuah program adalah ‘elegan, maksud saya adalah ia merupakan program terkecil untuk menghasilkan keluaran. Chaitin membuka definisinya dengan: “Saya akan perlihatkan bahwa anda tidak dapat membuktikan sebuah program adalah ‘elegan'” — bukti tersebut akan menyelesaikan permasalahan perhentian (ibid).
Algoritma terhadap fungsi yang dapat dihitung oleh algoritma: Untuk sebuah fungsi bisa ada beberapa algoritma. Hal ini benar, bahkan tanpa mengembangkan kumpulan instruksi yang ada bagi programmer. Rogers mengamati bahwa “Sangat … penting untuk membedakan antara pengertian algoritma, misalnya prosedur dan pernyataan fungsi yang dihitung oleh algoritma, misalnya pemetaan hasil dari prosedur. Fungsi yang sama bisa memiliki beberapa algoritma berbeda”.
Sayangnya ada pertukaran antara kebaikan (kecepatan) dan elegan (kepadatan) — sebuah program yang elegan bisa melakukan lebih banyak langkah untuk menyelesaikan sebuah komputasi daripada yang kurang elegan. Sebuah contoh yang menggunakan algoritma Euclid bisa dilihat di bawah.
Komputer (dan komputor), model dari komputasi: Sebuah komputer (atau manusia “komputor”) adalah tipe terbatas dari mesin, sebuah “perangkat mekanis deterministik diskrit” yang secara buta mengikuti instruksinya. Model primitif dari Melzak dan Lambek mereduksi pemikiran tersebut menjadi empat elemen: (i) diskrit, lokasi yang bisa dibedakan, (ii) diskrit, penghitung yang tak bisa dibedakan (iii) sebuah agen, dan (iv) sebuah daftar instruksi yang efektif relatif terhadap kemampuan dari agen.
Minsky menjelaskan variasi yang lebih sesuai dari model “abacus”-nya Lambek dalam “Basis Komputabilitas Paling Sederhana”. Mesin Minsky memproses secara berurutan lewat lima (atau enam tergantung bagaimana seseorang menghitungnya) instruksi kecuali baik sebuah kondisi IF-THEN GOTO atau GOTO tak bersyarat mengubah alur program keluar dari urutan. Selain HALT, mesin Minsky mengikutkan tiga operasi penetapan (penggantian, substitusi): ZERO (misalnya, isi dari lokasi diganti oleh 0: L ← 0), SUCCESSOR (misalnya, L ← L+1), dan DECREMENT (misalnya, L ← L-1). Jarang seorang programer harus menulis “kode” dengan kumpulan instruksi terbatas. Tapi Minsky memperlihatkan (sebagaimana Melzak dan Lambek) bahwa mesinnya adalah Turing komplit dengan hanya empat tipe instruksi utama: GOTO kondisional, GOTO tak bersyarat, penetapan/penggantian/substitusi, dan HALT.
Simulasi dari sebuah algoritma: bahasa komputer (komputor): Knuth menganjurkan pembaca bahwa “cara terbaik untuk belajar algoritma dalah mencobanya … langsung ambil pulpen dan kertas dan bekerja lewat contoh”. Lalu bagaimana dengan simulasi atau eksekusi yang sebenarnya? Programmer harus menerjemahkan algoritma ke dalam bahasa yang mana simulator/komputer/komputor dapat mengeksekusi secara efektif. Stone memberikan contoh dari hal ini: saat menghitung akar dari persamaan kuadrat si komputor harus tahu bagaimana mendapatkan akar kuadrat. Jika tidak maka supaya algoritma dapat efektif ia harus menyediakan sejumlah aturan untuk mengekstrak akar kuadrat. Hal ini berarti programer harus tahu sebuah “bahasa” yang efektif relatif terhadap target pada agen komputasi (komputer/komputor).
Lalu model apa yang seharusnya digunakan untuk simulasi? Van Emde Boas mengamati “bahkan bila kita mendasari teori kompleksitas dengan mesin abstrak bukannya mesin kongkrit, kesembarangan dari pemilihan model masih tetap ada. Pada titik itulah mulainya pemikiran simulasi”. Bila kecepatan yang dihitung, jumlah instruksi berpengaruh. Sebagai contohnya, subprogram dalam algoritma Euclid untuk menghitung sisa akan berjalan lebih cepat jika programmer memiliki instruksi “modulus” (sisa pembagian) bukannya dengan pengurangan (atau lebih parah: hanya “penurunan”).
Pemrograman terstuktur, struktur kanonikal: Menurut Tesis Church-Turing setiap algoritma bisa dihitung dengan sebuah model yang dikenal Turing komplit, dan menurut demonstrasi Minsky kekomplitan Turing membutuhkan hanya empat tipe instruksi — GOTO bersyarat, GOTO tak bersyarat, penetapan, HALT. Kemeny dan Kurtz mengamati bahwa saat penggunaan GOTO tak bersyarat yang “tak disiplin” dan IF-THEN GOTO bersyarat bisa menghasilkan “kode spageti” seorang programer bisa menulis program terstruktur menggunakan instruksi tersebut; di lain sisi “juga memungkinkan, dan tidak begitu sulit, untuk menulis sebuah program terstruktur yang buruk dalam sebuah bahasa terstruktur”. Tausworthe menambahkan tiga struktur kanon Bohm-Jacopini: SEQUENCE, IF-THEN-ELSE, dan WHILE-DO, dengan dua lagi: DO-WHILE dan CASE.  Keuntungan dari program terstruktur adalah ia cocok dengan pembuktian kebenaran menggunakan induksi matematika.
Pembantu grafik yang disebut diagram alur memberikan suatu cara untuk menjelaskan dan mendokumentasikan sebuah algoritma (dan program komputer). Seperti alur program dari mesin Minsky, sebuah diagram alur selalu mulai dari atas dan terus ke bawah. Simbol utamanya hanya 4: arah panah memperlihatkan alur program, segi empat (SEQUENCE, GOTO), wajik (IF-THEN-ELSE), dan titik (OR). Struktur kanonikal Bohm-Jacopini dibuat dari bentuk-bentuk primitif tersebut. Sub-struktur bisa “bersarang” dalam segi empat hanya jika jalan keluar tunggal terjadi pada super-struktur. Simbol dan penggunaannya untuk membangun struktur kanonikal diperlihatkan dalam diagram.



3.                   Kasus-Kasus Elektro yang pernah diAlami
Suatu ketika ada tugas dari lab merancang sebuah catu daya yang masing masing mempunyai tegangan keluaran (Vout) +5v, -5v, +9v, -9v, +0.5v – (+20v) dan -0.5 – (-20v). Maka saya dan kelompok membuat simulasi rangkaian terlebih dahulu memakai software atau aplikasi pada komputer. Aplikasi yang dipakai adalah pcb express. Dengan memasukan komponen apa saja yang dibutuhkan dan dengan nilai berapa besaran pada setiap komponen, lalu simulasi dilakukan dan hasilnya tidak sesuai, dengan penghitungan dan dilakukan peninjauan ulang seperti apa rangkaiannya dan bagaimana kerjanya maka setelah di lakukan percobaan berulang kali maka didapat nilai yang sesuai.
Ketika simulasi sudah berjalan dan nilainya pun sesuai. Maka langkah selanjutnya adalah merakit atau membuat alat, yang dibutuhkan pertama adalah komponen-komponennya, lalu setelah didapat komponen, kita print hasil lay out pcb tadi yang sudah disimulasi dan di sablon pada sebidang papan pcb yang telah dibeli dan diberi cairan feriklorit. Dan lalu dikeringkan. Setelah langkah tadi maka tahap selanjutnya adalah melubangi papan pcb tadi dengan boor tangan agar komponen-komponen dapat di pasangkan.
Tahap selanjutnya adalah perakitan komponen pada papan pcb, satu-satu setiap komponen ditempel dan disolder pada papan pcb. Dan ada komponen yang kita beri kabel jumper untuk misalnya led (menyalakan lampu). Setelah di tempelkan komponen pada pcb semuanya maka dilakukan tester pertama atau uji pertama. Dengan sumber tegangan PLN dan disambungkan kepada trafo terlebih dahulu dan juga setelah itu di sambungkan pada papan pcb tadi, maka hasil output bisa diukur dengan multitester, periksa apakah tegangan keluaran cocok dengan yang kita tentukan atau tidak. Jika cocok bisa berlanjut pada tahap selanjutnya. Tetapi kelompok kami mengalami kendala ketika tester pertama tegangan variabel dengan potensiometer tidak sesuai hasil keluarannya.
Maka kami membongkar potensio yang memanas karena setelah dilakukan peninjauan ulang, ternyata potensiometer terbalik memasang kabel jumper dari tegangan keluaran, maka dilakukan penggantian, dan diapasang kembali. Setelah sesuai kita tinggal siapkan tempat untuk menaruh rangkaian dan trafo yang berfungsi sebagai casing catudaya juga. Dengan casing berbahan besi maka kita tidak boleh meletakan rangkaian langsung pada besi, maka digunakan penyangga. Setelah semuanya dipasang maka dilakukan pengujian akhir yang dilakukan hampir sama dengan pengujian pertama hanya saja disini kita lengkapi dengan komponen pendukung seperti fuse dan socket-socket input maupun output. Ketika dilakukan pengujian terkahir maka hasilnya sedikit kurang tetap namun masih bisa presisi mendekati angka yang ditentukan, karena sebuah komponen tak ada yang ideal nilainya. Maka didapat hasil keluaran output seperti pada yang kita inginkan sebelumnya diawal dengan pengukuran multitester.

Tidak ada komentar:

Posting Komentar