sistem operasi

Konkurensi

Konkurensi merupakan landasan unum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Proses-proses yang mengalami kongkuren dapat sepenuhnya tak bergantung dengan proses yang lainnya (independent) namun dapat juga saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses agar terkendali dengan baik.

Konkurensi meliputi hal-hal sbb:

¡  Alokasi waktu pemroses untuk proses-proses

¡  Pemakaian bersama dan persaingan untuk mendapatkan sumber daya

¡  Komunikasi antarproses

¡  Sinkronisasi aktivitas banyak proses.

 

Konkurensi dapat muncul pada konteks berbeda, antara lain:

¡  Banyak aplikasi (multiple application).

¡  Aplikasi terstruktur.

¡  Struktur sistem operasi

¡  Untuk Strukturisasi Satu Proses.

¡  Contoh:Mengerjakan windows explorer disaat bersamaan kita menjalankan date and clock

 

Mutual exclusion

¡  Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan. Proses- proses yang lain di larang mengerjakan proses yang sama.

¡  Bagian program yang sedang mengakses memory atau sumber daya yang dipakai bersama disebut critical section. Jika proses pada critical section memblokir proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock.

¡  Contoh:Disaat kita berada pada Guest,ada aplikasi yang tidak bisa kita jalankan

 

deadlock

Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami startvation.

Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut.

 

Metode Mengendalikan Deadlock :

¡  Menggunakan suatu protokol

¡  Mengijinkan sistem mengalami deadlock

¡  Mengabaikan semua masalah

¡  Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku

¡  Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, Algoritma Banker

¡  Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich

Contoh:Pemblokiran permintaan ijin HTTP,berarti di saat kita setiap ingin membuka alamat HTTP,akan di blok oleh permintaan ijin tersebut sampai pemblokiran di buka

 

 

startvation

Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya

adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya.
Contoh:karena terlalu sering pemblokiran,lalu computer secara otomatis memblokir alamat HTTP dari computer dan itulah yang disebut STARVATION

 

Leave a comment

Filed under Uncategorized

sistem operasi premptive dan non premptive

Perbedaan preemptive dan nonpreemptive

Non-Preemptive: Non-preemptive algoritma didesain agar setelah proses yang sedang berjalan memasuki negara (adalah proses diperbolehkan), tidak dihapus dari prosesor sampai selesai dengan waktu layanan (secara eksplisit atau hasil prosesor). Bila CPU telah dialokasikan (schedule) ke suatu proses, maka proses tersebut dapat menggunakan CPU tersebut sampai proses tersebut block karena request I/O atau terminate.
context_switch () dipanggil hanya ketika proses dihentikan atau blok.

Preemptive: algoritma Preemptive digerakkan oleh konsep diprioritaskan komputasi. Jika proses saat ini menggunakan prosesor baru dan proses dengan prioritas yang lebih tinggi masuk, yang siap daftar, proses pada prosesor harus dihapus dan kembali ke daftar siap sampai sekali lagi adalah yang tertinggi-prioritas dalam proses sistem. selain scheduling dapat dilakukan pada dua event di atas, maka scheduling dapat terjadi jika proses sedang run (interrupt karena waktu quantum / time slice habis) dan diganti proses lain, atau status dari wait menjadi ready (misalkan proses prioritas lebih tinggi, dapat langsung mendapatkan jatah CPU setelah selesai I/O request).

Algoritma Penjadwalan

First In First Out (FIFO)
First In First Out (FIFO) merupakan penjadwalan tidak berprioritas. FIFO adalah penjadwalan paling sederhana, yaitu proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penilaian penjadwalan ini berdasarkan kriteria optimasi :
• Adil, dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi dinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting menunggu lama.
• Efisiensi, sangat efisien.
• Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.
• Turn around time kurang baik.
• Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain.
• Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
• Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
• Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

 

Shortest Job First (SJF)
Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.
Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20.
Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis untuk pembandingan turn around time.

 

Shortest Remaining First (SRF)
Merupakan :
• Penjadwalan berprioritas.dinamis.
• preemptive untuk timesharing
• Melengkapi SJF
Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.Pada SRF, proses yang sedang berjalan (running) dapat diambil alihproses baru dengan sisa waktu jalan yang diestimasi lebih rendah.
Kelemahan :
• Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah dihabiskan job dan kadang-kadang harus menangani peralihan.
• Tibanya proses-proses kecil akan segera dijalankan.
• Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding pada SJF.
SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding SRF.

 

 

 

Algoritma penghindaran deadlock

 

Algoritma Banker
Menurut Djikstra(1965) algoritma penjadwalan dapat menghindari deadlock dan algoritma penjadwalan tersebut dikenal dengan algoritma banker. Algoritma ini dapat digambarkan, ada seorang banker yang akan meminjamkan kepada peminjam-peminjamnya. Setiap peminjam memberikan batas pinjaman maksimum. Tentu saja banker tahu bahwa peminjam tidak akan meminjam dana maksimum secara langsung melainkan bertahap. Banker memprioritaskan kepada peminjam yang meminjam dana lebih banyak, sedangkan yang lain disuruh menunggu hingga peminjam yang lebih besar mengembalikan dananya, baru setelah itu ia
meminjamkan kepada peminjam yang lain. Jadi algoritma banker disini mempertimbangkan apakah
permintaan proses sesuai dengan jumlah sumber daya yang ada dan sekaligus memperkirakan jumlah sumber daya yang mungkin diminta lagi. Jangan sampai ketika ada proses yang meminta sumber daya tetapi sumber dayanya habis atau tidak ada lagi jika tidak maka akan terjadi deadlock.
Secara umum algoritma banker dibagi menjadi 4 struktur data:
1. Tersedia: jumlah sumber daya yang tersedia
2. Alokasi: jumlah sumber daya yang dialokasikan untuk setiap proses
3. Maksimum: jumlah permintaan sumber daya oleh proses
4. Kebutuhan: maksimum-alokasi(sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan)

Rag(Resource Allocation Graphs)

 

l  Graf adalah suatu struktur diskrit yang terdiri dari vertex dan sisi, dimana sisi menghubungkan vertex-vertex yang ada.

l  Graf dibagi menjadi dua bagian, yaitu

simple graf dan multigraf.

l  Salah satu contoh implementasi graf dalam sistem operasi adalah graf alokasi sumber daya

l  Graf alokasi sumber daya merupakan graf sederhana dan graf berarah.

l  Graf alokasi sumber daya adalah bentuk visualisasi dalam mendeteksi maupun menyelesaikan masalah deadlock.

l  Komponen Graf Alokasi Sumber daya

1. Proses P= {P0, P1, P2, P3,…, Pi,…, Pm}. Terdiri dari semua proses yang ada di sistem. Untuk proses, vertexnya digambarkan sebagai lingkaran dengan nama prosesnya.

2. Sumber daya R= {R0, R1, R2, R3,…, Rj,…, Rn}. Terdiri dari semua sumber daya yang ada disistem. Untuk sumber daya, vertexnya digambarkan sebagai segi empat dengan instans yang dapat dialokasikan serta nama sumber dayanya.

l  Sisi, E={Pi-> Rj, , Rj-> Pi, } terdiri dari dua jenis, yaitu:

1. Sisi permintaan: Pi -> Rj Sisi permintaan menggambarkan adanya suatu proses Pi yang meminta sumber daya Rj.

2. Sisi alokasi: Rj -> Pi. Sisi alokasi menggambarkan adanya suatu sumber daya Rj yang mengalokasikan salah satu instansnya pada proses Pi.

 

Sumber daya Rj yang mengalokasikan salah satu

Graf Alokasi Sumber daya

 

 

 

 

 

 

Untuk mengetahui ada atau tidaknya deadlock (Pendeteksian) dalam suatu graf dapat dilihat dari perputaran dan resource yang dimilikinya, yaitu:

q Jika tidak ada perputaran berarti tidak deadlock.

q Jika ada perputaran, ada potensi terjadi deadlock.

q

Resource dengan instan tunggal dan perputaran mengakibatkan deadlock.

 

 

Pengertian Raid

RAID adalah kependekan dari Redundant Array of Independent Drive/Disk. Ada juga yang menyebutnya sebagai kependekan dari Redundant Array of Inexpensive Drive/Disk. Secara sedehana, RAID bisa diartikan sebagai cara menyimpan data pada beberapa harddisk. Dengan begini, kinerja PC bisa meningkat. Selain itu, salinan data juga bisa dijadikan back-up.

Implementasi RAID membutuhkan minimal 2 harddisk. Ketika RAID digunakan, sistem operasi akan membaca kedua harddisk sebagai 1 harddisk. Jadi, meskipun ada 2 harddisk, drive yang tampak pada Windows Explorer hanya 1. C saja, misalnya. Sebagai perbandingan, kalau RAID tidak digunakan, drive pada Windows Explorer muncul C dan D. Setiap drive untuk 1 harddisk.

RAID menggunakan teknik stripping, yang membuat partisi pada ruang dengan ukuran mulai dari 512 byte hingga ke beberapa megabyte. Tiap partisi itu mengandung pecahan data yang akan dibaca bersamaan untuk mempercepat pembacaan data.

RAID memiliki beberapa level, RAID0 sampai RAID7 plus RAID 10 dan beberapa RAID kombinasi. Setiap level RAID memiliki fungsi yang berbeda. Penjelasannya ada di tabel level RAID.

Selain RAID yang ada di tabel, RAID punya beberapa level lagi. Misalnya Level 10 yang artinya kombinasi antara RAID0 dan RAID1. Ada juga RAID 50 yang merupakan kombinasi antara RAID5 dan RAID0. Kombinasi ini mengawinkan fungsi antara kedua RAID.

RAID dapat dibagi lagi dalam 2 yaitu Hardware RAID dan software RAID, Untuk fitur Hardware RAID, motherboard server anda harus mendukung PCI64bit (socketnya lebih panjang 2x dari PCI biasa, bukan PCI-X ya) dan tentunya RAID Card dan harddisk. Unntuk Software RAID secara standard didukung oleh OS seperti Windows2000 server, Windows2003Server, Windows2008server dan linux.

 

 

FAT, FAT32, NTFS, EXT2, EXT3, DAN EXT4

1. FAT 16 (File Allocation Table 16)
Sebenarnya sebelum FAT16, telebih dahulu sistem file di MS-DOS FAT12, tapi karena banyak kekurangan makanya muncul FAT16, FAT16 sendiri sudah dikenalkan oleh MS-DOS pada tahun 1981. Awalnya, sistem ini didesain umtuk mengatur file fi floppy disk, dan sudah mengalami beberapa kali perubahan, sehingga digunakan untuk mengatur file harddisk. Keuntungan FAT16 adalah kompatibel hampir di semua sistem operasi, baik Windows 95/98/ME, OS/2, Linux dan bahkan Unix. Namun dibalik itu semua masalah paling besar dari FAT16 adalah mempunyai kapasitas tetap jumlah cluster dalam partisi, jadi semakin besar harddisk, maka ukuran cluster akan semakin besar. selain itu kekurangan FAT16 salah satunya tidak mendukung kompresi, enkripsi dan kontrol akses dalam partisi

2. FAT 32 (File Allocation Table 32)
FAT32 mulai di kenal pada sistim Windows 95 SP2, dan merupakan pengembangan lebih dari FAT16. FAT32 menawarkan kemampuan menampung jumlat cluster yang lebih besar dalam partisi. Selain itu juga mengembangkan kemampuan harddisk menjadi lebih baik dibanding FAT16. Namun FAT32 memiliki kelemahan yang tidak di miliki FAT16 yaitu terbatasnya Operating System yang bisa mengenal FAT32. Tidak seperti FAT16 yang bisa di kenal oleh hampir semua system operasi, namun itu bukan masalah apabila anda menjalankan FAT32 di Windows XP karena Windows XP tidak peduli file sistim apa yang di gunakan pada partisi.

3. NTFS (New Technology File System)
NTFS di kenalkan pertama pada Windows NT dan merupakan file system yang benar benar berbeda di banding teknologi FAT. NTFS menawarkan security yang jauh lebih baik, kompresi file, cluster dan bahkan support enkripsi data. NTFS merupakan file system standar untuk Windows Xp dan apabila anda melakukan upgrade Windows biasa anda akan di tanyakan apakah ingin mengupgrade ke NTFS atau tetap menggunakan FAT. Namun jika anda sudah melakukan upgrade pada Windows Xp dan tidak melakukan perubahan NTFS itu bukan masalah karena anda bisa mengkonversinya ke NTFS kapanpun. Namun ingat bahwa apabila anda sudah menggunakan NTFS akan muncul masalah jika ingin downgrade ke FAT tanpa kehilangan data.
Pada Umumnya NTFS tidak kompatibel dengan Operating System lain yang terinstall di komputer yang sama (Double OS) bahkan juga tidak terdeteksi apabila anda melakukan startup-boot menggunakan floopy. Untuk itu sangat disa-rankan kepada anda untuk menyediakan partisi yang kecil saja yang menggunakan file system FAT di awal partisi. Partisi ini dapat anda gunakan untuk menyimpan Recovery Tool apabila mendapat masalah.
1. Ext 2 (2rd Extented)
EXT2 adalah file sistem yang ampuh di linux. EXT2 juga merupakan salah satu file sistem yang paling ampuh dan menjadi dasar dari segala distribusi linux. Pada EXT2 file sistem, file data disimpan sebagai data blok. Data blok ini mempunyai panjang yang sama dan meskipun panjangnya bervariasi diantara EXT2 file sistem, besar blok tersebut ditentukan pada saat file sistem dibuat dengan perintah mk2fs. Jika besar blok adalah 1024 bytes, maka file dengan besar 1025 bytes akan memakai 2 blok. Ini berarti kita membuang setengah blok per file.
EXT2 mendefinisikan topologi file sistem dengan memberikan arti bahwa setiap file pada sistem diasosiasiakan dengan struktur data inode. Sebuah inode menunjukkan blok mana dalam suatu file tentang hak akses setiap file, waktu modifikasi file, dan tipe file. Setiap file dalam EXT2 file sistem terdiri dari inode tunggal dan setiap inode mempunyai nomor identifikasi yang unik. Inode-inode file sistem disimpan dalam tabel inode. Direktori dalam EXT2 file sistem adalah file khusus yang mengandung pointer ke inode masing-masing isi direktori tersebut.

2. Ext 3 (3rd Extended)
EXT3 adalah peningkatan dari EXT2 file sistem. Peningkatan ini memiliki beberapa keuntungan, diantaranya:
a.Setelah kegagalan sumber daya, “unclean shutdown”, atau kerusakan sistem, EXT2 file sistem harus melalui proses pengecekan dengan program e2fsck. Proses ini dapat membuang waktu sehingga proses booting menjadi sangat lama, khususnya untuk disk besar yang mengandung banyak sekali data. Dalam proses ini, semua data tidak dapat diakses.
Jurnal yang disediakan oleh EXT3 menyebabkan tidak perlu lagi dilakukan pengecekan data setelah kegagalan sistem. EXT3 hanya dicek bila ada kerusakan hardware seperti kerusakan hard disk, tetapi kejadian ini sangat jarang. Waktu yang diperlukan EXT3 file sistem setelah terjadi “unclean shutdown” tidak tergantung dari ukuran file sistem atau banyaknya file, tetapi tergantung dari besarnya jurnal yang digunakan untuk menjaga konsistensi. Besar jurnal default memerlukan waktu kira-kira sedetik untuk pulih, tergantung kecepatan hardware.
b.Integritas data
EXT3 menjamin adanya integritas data setelah terjadi kerusakan atau “unclean shutdown”. EXT3 memungkinkan kita memilih jenis dan tipe proteksi dari data.
c.Kecepatan
Daripada menulis data lebih dari sekali, EXT3 mempunyai throughput yang lebih besar daripada EXT2 karena EXT3 memaksimalkan pergerakan head hard disk. Kita bisa memilih tiga jurnal mode untuk memaksimalkan kecepatan, tetapi integritas data tidak terjamin.
d.Mudah dilakukan migrasi
Kita dapat berpindah dari EXT2 ke sistem EXT3 tanpa melakukan format ulang.

3. Ext 4 (4rd Extended)
Ext4 dirilis secara komplit dan stabil berawal dari kernel 2.6.28 jadi apabila distro anda yang secara default memiliki versi kernel tersebuat atau di atas nya otomatis system anda sudah support ext4 (dengan catatan sudah di include kedalam kernelnya) selain itu versi e2fsprogs harus mengunakan versi 1.41.5 atau lebih.
Apabila anda masih menggunakan fs ext3 dapat mengkonversi ke ext4 dengan beberapa langkah yang tidak terlalu rumit.
Keuntungan yang bisa didapat dengan mengupgrade filesystem ke ext4 dibanding ext3 adalah mempunyai pengalamatan 48-bit block yang artinya dia akan mempunyai 1EB = 1,048,576 TB ukuran maksimum filesystem dengan 16 TB untuk maksimum file size nya,Fast fsck,Journal checksumming,Defragmentation support.

 

 

 

Leave a comment

Filed under Uncategorized

laporan metode numerik

BAB  I

LATAR BELAKANG

Metode  Numerik adalah teknik-teknik yang digunakan untuk memformulasi kan masalah matematis agar dapat dipecahkan  dengan operasi perhitungan.

Dalam mata kuliah metode numeric ada tugas membuat program untuk mencari akar-akar persamaan dengan metode metode yang sudah di ajarkan, oleh karna itu laporan ini di buat. 

Latar belakang mempelajari akar- akar persamaan agar dapat mencari akar akar persamaan yang belum diketahui ,dengan mencapai hasil yang hampir eksak.

Metode numerik memberikan cara-cara untuk menyelesaikan bentuk persamaan tersebut

secara perkiraan hingga didapat hasil yang mendekati penyelesaian secara benar (eksak).

Penyelesaian numerik dilakukan dengan perkiraan yang berurutan (iterasi), maka tiap hasil

akan lebih teliti dari perkiraan sebelumnya. Dengan berbagai iterasi yang dianggap cukup,

akan didapat hasil perkiraan yang mendekati hasil yang benar (eksak) dengan toleransi

yang diijinkan.

Salah satu cara yang sederhana untuk penyelesaian perkiraan atau dengan cara coba banding, yaitu dengan mencoba nilai x sembarang kemudian dievaluasi apakah nilai f (x) = 0, jika nilai x tidak sama dengan nol lalu dicoba nilai x yang lain, cara ini diulang terus menerus hingga didapat nilai f (x) = 0, untuk suatu nilai x tertentu, yang merupakan akar dari persamaan yang diselesaikan.

Tapi cara itu tidak efektif, oleh karena itu metode numeric memberikan materi materi mencari akar –akar persamaan dengan metode-metode tertentu.

Ada beberapa metode , yaitu:

  1. Metode setengah intervai atau bisection
  2. Metode interpolasi linear
  3. Metode Newton rhapson
  4. Metode secant

TUJUAN

Tujuan dari metode-metode tersebut adalah untuk mencari akar-akar persamaan secara benar dan sesuai metode sehingga mencapai hasil yang eksak.

 

WAKTU PENGERJAAN

Untuk mengerjakan tugas mata kuliah metode numeric ini kami sekelompok mengerjakan sesuai dengan kemampuan dan sesuai jam yang sudah kita sepakati yaitu dalam sela-sela waktu kuliah dengan bertahap- tahap.

Dari mencoba untuk menjalankan nya pada boerland c++ .

Dari software tersebut kita memilih boerland , kenapa ??? karena kita suda pernah mendapatkan materi-materi sebelumnya pada semester 2 yaitu pada mata kuliah pemograman terstruktur . meskipun tidak sepenuhnya mahir dalam boerland, kita terus mencobanya sampai bisa. Dalam menuliskan sebuah program ini saya mengalami beberapa kesuliatan salah satunya adalah dalam pembatasan nilai angka di belakang koma.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB II

LANDASAN TEORI

Ide awal metode ini adalah metode table, dimana area dibagi menjadi N bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan.

METODE BISECTION

 

Metode ini merupakan bentuk yang paling sederhana diantara metode-metode numerik

lainnya dalam menyelesaikan akar-akar persamaan.

Langkah-langkah yang dilakukan pada penyelesaian persamaan dengan metode ini

adalah sebagai berikut:

 

1) Hitung fungsi pada interval yang sama dari x hingga ada perubahan tanda dari

fungsi f (xi) dan f (xi + 1), yaitu bila f (xi) × f (xi + 1) < 0.

 

2) Perkiraan pertama dari akar xt dihitung dari rerata nilai xi dan xi + 1:

Xt = xi +( xi+1)/2

 

3) Buat evaluasi berikut untuk menentukan di dalam sub-interval mana akar

persamaan berada:

 

a) jika f (xi) × f (xt) < 0, akar persamaan berada pada sub interval pertama, lalu

tetapkan xi + 1 = xt dan teruskan pada langkah ke 4.

 

b) jika f (xi) × f (xt) > 0, akar persamaan berada pada sub interval kedua, lalu

tetapkan nilai xi = xt dan teruskan pada langkah ke 4.

 

c) jika f (xi) × f (xt) = 0, akar persamaan adalah xt dan hitungan selesai.

 

4) Hitung perkiraan baru dari akar dengan menggunakan persamaan (3.1).

 

5) Apabila perkiraan baru sudah cukup kecil (sesuai dengan batasan yang ditentukan),maka hitungan selesai dan xt adalah akar persamaan yang dicari, jika belum makahitungan kembali ke langkah 3.

.

METODE INTERPOLASI LINEAR

Interpolasi linear merupakan interpolasi paling sederhana dengan mengasumsikan bahwahubungan titik-titik antara dua titik data adalah linear. Karena itu digunakan pen-dekatan fungsi linear antara dua titik data.

 

 

Metode ini dikenal juga dengan metode false position, metode ini ada untuk menutupi

kekurangan pada metode setengah interval yang mudah tetapi tidak efisien (untukmendapatkan hasil yang mendekati nilai eksak diperlukan langkah iterasi cukup

panjang). Dengan metode ini nilai akar dari suatu fungsi dapat lebih cepat diperoleh

daripada dengan metode setengah interval, metode ini didasarkan pada interpolasi

antara dua nilai dari fungsi yang mempunyai tanda berlawanan.

Mula-mula dicari nilai fungsi untuk setiap interval Δx, yang sama hingga didapat dua

nilai fungsi f (xi) dan f (xi + 1) berurutan dengan tanda berlawanan (Gambar 3.3). Kedua

nilai fungsi tersebut ditarik garis lurus hingga terbentuk suatu segitiga, dengan

menggunakan sifat segitiga sebangun didapat persamaan berikut:

 

 

 

Nilai fungsi untuk setiap interval Δx, digunakan untuk menghitung nilai fungsi f (x∗)

yang kemudian digunakan lagi untuk interpolasi linier dengan nilai f (xi) atau f (xi + 1)

sedemikian sehingga kedua fungsi mempunyai tanda berbeda, prosedur ini diulang

sampai nilai f (x∗) yang didapat mendekati nol.

 

METODE NEWTON RHAPSON

 

Metode ini paling banyak digunakan dalam mencari akar-akar persamaan, jika

perkiraan awal dari akar adalah xi, maka suatu garis singgung dapat dibuat dari titik (xi,

f (xi)). Titik dari garis singgung tersebut memotong sumbu-x, biasanya memberikan

perkiraan yang lebih dekat dari nilai akar.

Pada Gambar 3.4, nampak bahwa turunan pertama pada xi adalah ekivalen dengan

kemiringan, yaitu:

 

f (x) = x3 + x2 – 3x – 3 = 0.

Penyelesaian:

  • Tentukan Turunan pertama dari persamaan tersebut
  • Dengan menggunakan rumus persamaan
  • Langkah berikutnya nilai x2 = 3, tersebut digunakan untuk hitungan pada iterasi

berikutnya.

  • Hitungan di lanjutkan sampai hasil yang di inginkan.

 

 

 

METODE SECANT

 

Kekurangan metode Newton-Raphson adalah diperlukannya turunan pertama

(diferensial) dari f (x) dalam hitungan, mungkin sulit untuk mencari turunan dari

persamaan yang diselesaikan, maka bentuk diferensial didekati dengan nilai perkiraan

berdasarkan diferensial beda hingga garis singgung di titik xi didekati oleh bentuk

 

Apabila disubstitusikan ke dalam persamaan maka didapat:

 

Pada metode ini pendekatan memerlukan dua nilai awal dari x, yang digunakan untuk

memperkirakan kemiringan dari fungsi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB III

METODELOGI PENELITIAN

Metodologi penelitian adalah peraturan , kegiatan dan prosedur untuk suatu penelitian serta untuk mendapatkan data sesuai tujuan.

Metode pengumpulan data

Untuk kali ini kami mengumpulkan data yang kami inginkan yaitu membuat program mencari akar akar persamaan dengan menggunakan metode library

Metode library sendiri adalah metode pengumpulan data dengan cara mengumpulkan data dengan membaca , melakukan , mencari baik offline maupun online. Tetapi yang banyak kami gunakan adalah secara online yaitu browsing untuk memantappkan pekerjaan kami. Dengan mereview ulang catatan-catatan kami yang ada sangat membantu kami untuk menyelesaikan tugas besar ini.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAB IV

PEMBAHASAN

Ada beberapa cara / metode  menentukan akar- akar persamaan :

  1. Metode bisection
  2. Metode inter polasi linear
  3. Metode newton rhapson
  4. Metode secant

Dalam bab ini yang aka kami bahas pertama adalah program metode bisection.

1. Metode Bisection

  1. Pertama yang kami lakukan adalah membuka program Borland C++ disini kami menggunakan Borland C++ versi 5.02.

Setelah itu pada menu bar pilih filetext edit

 

 

 

 

 

  1. Setelah itu akan muncul lembar deja yang kosong seperti gambar di bawah ini :

 

  1. Hal pertama untuk menulis sebuah program pada Borland c++ ini adalah menuliskan file hearder yang akan kita pakai, file hearder yang saya pakai di sini adalah iostream dan conio. Adapun cara penulisanya seperti di bawah ini:

#include <iostream.h>

#include <conio.h>

 

  1. Setelah itu kami membuat sebuah fungsi untung menghitung nilai Xt  dan nilia Fx.

Disini kami memakai float sebagai tipe data,  karen float adalah tipe data untuk sebuah nilai yang berbentuk koma.

 

//fungsi untuk menghitung nilai fx

float fx (float a,float b,float c,float d,float x)

{

float fx;

fx=(a*x*x*x) + (b*x*x) + (c*x) + (d);

return (fx);

}

 

//fungsi untuk menghitung nilai xt

float xx (float x1,float x2)

{

float xx;

xx=(x1+x2)/2;

return (xx);

}

  1. Setelah itu kami menulisakan sebuah source code untuk menyelesaikan sebuah masalah diatas.

 

main()

{

// pendeklarasian

float a,b,c,d,x1,x2,xt,fx1,fx2,fxt,z;

int i;

 

cout<<“Program untuk menghitung akar – akar persamaan dengan metode bisection”<<endl;

cout<<”                    Bentuk Fungsi : ax^3 + bx^2 + cx + d”<<endl<<endl;

// input untuk fungsi

cout<<“inputkan nilai a : “; cin>>a;

cout<<“inputkan nilai b : “; cin>>b;

cout<<“inputkan nilai c : “; cin>>c;

cout<<“inputkan nilai d : “; cin>>d;

 

cout<<endl<<“Bentuk soal yang anda inputkan adalah “;

cout<<a<<“x^3 + “<<b<<“x^2 + “<<c<<“x + “<<d<<endl<<endl;

 

// input untuk nilai x1 dan x2

cout<<“inputkan nilai x1 : “; cin>>x1;

cout<<“inputkan nilai x2 : “; cin>>x2;

cout<<endl;

cout<<“========================================================”<<endl;

cout<<“i       “<<“x1 “<<“x2 “<<“xt “<<“fx1           “<<“fx2           “<<“fxt            “<<endl;

cout<<“========================================================”<<endl;

 

// perulangan untuk menemukan akar – akar persamaan

for (i=1;i<=1000;i++)

{

// proses perhitunggan xt, fx1, fx2, fxt dengan memanggil fungsi yang sudah kita buat di atas

xt=xx(x1,x2);

fx1=fx(a,b,c,d,x1);

fx2=fx(a,b,c,d,x2);

fxt=fx(a,b,c,d,xt);

 

z=fx1*fxt;

 

 

 

            // kondisi untuk   menentukan di dalam sub-interval mana akar persamaan berada

if(z!=0)

{

if(z<0)

x2=xt;

if(z>0)

x1=xt;

}

 

if(z==0)

i=1000000;

cout<<i<<”   “<<x1<<”  “<<x2<<”  “<<xt<<”  “<<fx1<<” “<<fx2<<”       “<<fxt<<endl;

}

cout<<endl<<“maka akar persamaannya adalah : “<< xt;

getch();

}

 

  1. setelah selesai menulis source code untuk menghitung metode bisection diatas selanjutnya kita save terlebih dahulu.

Setelah di save program itu akan kita jalankan, yaitu dengan cara pilih Debug – Run seperti contoh di bawah ini :

  1. setelah kita Run maka akan muncul kotak dialog seperti di bawah ini:

 

 

 

kotak dialog diatas menyuruh kita untuk menginputkan angka untuk persamaan dan nilai x1,x2. Dan jika kita inputkan nilai maka akan mencul hasil akar persamaan dari nilai-nilai yang kita inputkan. Contoh nilai a=1, b=1,c=(-3),d=(-3) dan nilai x1=1,x2=2

dibawah adalah hasilnya;

 

Kotak dialog diatas adalah kotak dialog mencari akar-akar persamaan sekaligus bukti bahwa program kami bisa dan sukses. Pada kotak dialog diatas sudah tertera bahwa akar persamaan adalah itu. Pada iterasi ke seribu akar persamaan akan dikeluarkan. Karena pada program kami membatasi untuk iterasi pencariannya sampai 1000 iterasi, baru hasil akan di keluarkan.

Dan pada kotak dialog diatas perulangan iterasi dari akar-akar persamaannya kami batasi sampai 50 saja, dan dalam kotak dialog sudah jelas bahwa akar persamaan tersebut hasilnya terlihat pada iterasi ke 18, dan juga secara detai di buktikan oleh kotak dialog tersebut

 

2. Interpolasi linear

 

//function menghitung x*

float xtt (float x1,float x2,float fx1,float fx2)

{

                        float xtt,fx21,x21;

      fx21=fx2-fx1;

      x21=x2-x1;

      xtt= x2 – ((fx2*x21)/fx21);

      return (xtt);

//perulangan untuk mengitung nilai nilai fx (…) pada inter polasi linear

for (n=1;n<1000;n++)

   {

i=i+1;

            fx1=fx(a,b,c,d,x1);

            fx2=fx(a,b,c,d,x2);

      xt=xtt(x1,x2,fx1,fx2);

            fxt=fx(a,b,c,d,xt);

if (fx1 > 0 && fxt > 0)

            x1=xt;

            else x2=xt;

      if (fxt==0) i=i-1;

            diatas adalah fungsi dan logika yang ada pada program kami di metode interpolasi linear.Pada fungsi diatas tidak jauh dengan fungsi pada bisection. Dibawah adalah kotak dialog untuk interpolasi linear jika nilai kita inputkan sama dengan nilai pada metode sebelum nya.

 

Sama halnya pada bisection semua tergantung dengan logika yang di buat. Pada metode selanjutnya yaitu

3. Metode Newton Rhapson

Seperti hal nya metode bisection dan interpolasi metode ini juga menggunakan fungsi-fungsi da logika yang sama seperti fungsi metode sebelimnya

Tapi bedanya pada etode ini hanya menggunakan satu titik acuhan yaitu x1 saja.

  1. 5.      Metode Secant

 

//proses perhitungan untuk fx_1,fx_2,fx_0dan x_2

do

{

fx_0 = fx (a,b,c,d,x_0);

fx_1 = fx (a,b,c,d,x_1);

 

      if (fx_1 !=0)

                        if ((x_1-x_0) !=0)

                                    if ((fx_1-fx_0) !=0)

                                                x_2=(x_1 – (fx_1*(x_1-x_0))/(fx_1-fx_0));

 

fx_2=fx(a,b,c,d,x_2);

i=i+1;

cout<<i<<”  “<<x_0<<”      “<<x_1<<”      “<<x_2<<”      “<<fx_0<<”     “<<fx_1<<”     “<<fx_2<<endl;

//kondisi untuk menentukan dimana su interval akar persamaan berada

x_0=x_1;

x_1=x_2;

 

}

while (fx_1 != 0 &&  (x_1-x_0) !=0 && (fx_1-fx_0) !=0);

cout<<endl<<“hasil “<<x_2;

 

steatement yang berhuruf tebal dan italic diatas adalah steatemen untuk mengeksekusi x_2 sampai x_2 tersebut memenuhi steatement yang sudah ada tersebut.dan perulangan while tersebut akan berproses terus sampai memenuhi steatemen while tersebut yaitu (fx_1 != 0 &&  (x_1-x_0) !=0 && (fx_1-fx_0) !=0);

 

 

 

 

 

 

 

 

 

 

 

 

BAB V

KESIMPULAN

Dari pembahasan diatas dan dari yang sudah dikerjakan bahwa tugas ini adalah membawa kita untuk mengerti bahwa program apapun dan sesulit apapun jika sudah mengetahui dasar dari program yang akan dibuat serta mengerti bagaimana jalannya logikanya pasti akan bisa meskipun di software program yang berbeda, mungkin hanya penulisan/bahasa pemrograman pada softwarenya  berbeda.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DAFTAR PUSTAKA

–          Buku catatan (yang sudah diajarkan pada mata kuliah metode numerik)

–          Buku catatan pemrograman terstruktur 1

–          Buku module praktikum pemrograman terstruktur

–          PDF metode numeric yang sudah diberikan

–          http://fiyaphyong.blogspot.com/2010/03/metode-numeric-penerapan-metode.html

–          http://www.scribd.com/doc/75874406/ANALISIS-ALGORITMA

–          (fx_1 != 0 &&  (x_1-x_0) !=0 && (fx_1-fx_0) !=0);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LAPORAN TUGAS METODE NUMERIK

“MENCARI AKAR PERSAMAAN

 

 

NAMA KELOMPOK :

  1. 1.      MAMBAUL ULUM (10410200075)
  2. 2.      RISKI ABADI (10410200069)
  3. 3.      M.FAIZIN ADANI (10410200066)
  4. 4.      IMAM FAUZI (10410200065)

 

Leave a comment

Filed under Uncategorized

jaringan komputer

  Jaringan komputer (jaringan) adalah sebuah sistem yang terdiri atas komputer-komputer yang didesain untuk dapat berbagi sumber daya (printer, CPU), berkomunikasi (surel, pesan instan), dan dapat mengakses informasi(peramban web).

Tujuan dari jaringan komputer adalah Agar dapat mencapai tujuannya, setiap bagian dari jaringan komputer dapat meminta dan memberikan layanan (service).Pihak yang meminta/menerima layanan disebut kliendan yang memberikan/mengirim layanan disebut peladen .Desain ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.
manfaat jaringan komputer
          memudahkan komunikasi
mempercepat komunikasi
                    menghemat waktu untuk komunikasi
     mendapat kan info secara aktual
komponen jaringan :
-device 
-medium 
-rules
-messagess

Klasifikasi jaringan komputer terbagi menjadi :

  1. Berdasarkan geografisnya, jaringan komputer terbagi menjadi Jaringan wilayah lokal atau Local Area Network (LAN), Jaringan wilayah metropolitan atau Metropolitan Area Network (MAN), dan Jaringan wilayah luas atau Wide Area Network (WAN). Jaringan wilayah lokal]] merupakan jaringan milik pribadi di dalam sebuah gedung atau tempat yang berukuran sampai beberapa 1 – 10 kilometer.[7][3] LAN seringkali digunakan untuk menghubungkan komputer-komputer pribadi dan stasiun kerja (workstation) dalam kantor suatu perusahaan atau pabrik-pabrik untuk memakai bersama sumberdaya (misalnya pencetak (printer) dan saling bertukar informasi. Sedangkan Jaringan wilayah metropolitan merupakan perluasan jaringan LAN sehingga mencakup satu kota yang cukup luas, terdiri atas puluhan gedung yang berjarak 10 – 50 kilometer. Kabel transmisi yang digunakan adalah kabel serat optik (Coaxial Cable). Jaringan wilayah luas Merupakan jaringan antarkota, antar propinsi, antar negara, bahkan antar benua. Jaraknya bisa mencakup seluruh dunia, misalnya jaringan yang menghubungkan semua bank di Indonesia, atau jaringan yang menghubungkan semua kantor Perwakilan Indonesia di seluruh dunia. Media transmisi utama adalah komunikasi lewat satelit, tetapi banyak yang mengandalkan koneksi serat optik antar negara.
  2. Berdasarkan fungsi, terbagi menjadi Jaringan Klien-server (Client-server) dan Jaringan Ujung ke ujung (Peer-to-peer). Jaringan klien-server pada ddasaranya ada satu komputer yang disiapkan menjadi peladen (server) dari komputer lainnya yang sebagai klien (client). Semua permintaan layanan sumberdaya dari komputer klien harus dilewatkan ke komputer peladen, komputer peladen ini yang akan mengatur pelayanannya. Apabila komunikasi permintaan layanan sangat sibuk bahkan bisa disiapkan lebih dari satu komputer menjadi peladen, sehingga ada pembagian tugas, misalnya file-server, print-server, database server dan sebagainya. Tentu saja konfigurasi komputer peladen biasanya lebih dari konfigurasi komputer klien baik dari segi kapasitas memori, kapasitas cakram keras {harddisk), maupun kecepatan prosessornya. Sedangkan jaringan ujung ke ujung itu ditunjukkan dengan komputer-komputer saling mendukung, sehingga setiap komputer dapat meminta pemakaian bersama sumberdaya dari komputer lainnya, demikian pula harus siap melayani permintaan dari komputer lainnya. Model jaringan ini biasanya hanya bisa diterapkan pada jumlah komputer yang tidak terlalu banyak, maksimum 25, karena komunikasi akan menjadi rumit dan macet bilamana komputer terlalu banyak.
  3. Berdasarkan topologi jaringan, jaringan komputer dapat dibedakan atas
    1. Topologi bus
    2. Topologi bintang
    3. Topologi cincin
    4. Topologi mesh
    5. Topologi pohon
    6. Topologi linier
  4. Berdasarkan distribusi sumber informasi/data
    1. Jaringan terpusat
      Jaringan ini terdiri dari komputer klien dan peladen yang mana komputer klien yang berfungsi sebagai perantara untuk mengakses sumber informasi/data yang berasal dari satu komputer peladen.
    2. Jaringan terdistribusi
      Merupakan perpaduan beberapa jaringan terpusat sehingga terdapat beberapa komputer peladen yang saling berhubungan dengan klien membentuk sistem jaringan tertentu.
  5. Berdasarkan media transmisi data
    1. Jaringan Berkabel (Wired Network)
      Pada jaringan ini, untuk menghubungkan satu komputer dengan komputer lain diperlukan penghubung berupa kabel jaringan. Kabel jaringan berfungsi dalam mengirim informasi dalam bentuk sinyal listrik antar komputer jaringan.
    2. Jaringan nirkabel(Wi-Fi)
      Merupakan jaringan dengan medium berupa gelombang elektromagnetik. Pada jaringan ini tidak diperlukan kabel untuk menghubungkan antar komputer karena menggunakan gelombang elektromagnetik yang akan mengirimkan sinyal informasi antar komputer jaringan.
       
       karakteristik jaringan
       
      fault tolerance
      yaitu toleransi kesalahan , jaringan komputer harus memperhatikan toleransi kesalah karena jaringan komputer tidak akan selallu berhasil dan berjalan mulusss.
       
      scalability
      skla yang akan memenuhi untuk jaringan komputer juga perlu . buat apa jaringan itu dibuat ???? dan untuk siapa jaringan itu dibuat.
       
      quality of service
      kualitas yang baik sehingga pengguna senang terhadap jaringan yang dibuat dan merasa nyaman untuk digunakan.
       
      security
      keamanan adalah hal yang utama dalam hal jaringan. agar si pemakai dapat menerima message dengan baik dari si pembuat jaringan.

 

 

 

 

STRUCTURE

 

 

>Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama,

dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai

untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah satu

kesatuan.

> Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling.

 

 

>Struktur merupakan kumpulan berbagai tipe data yang memiliki ukuran yang berbeda di kelompokan dalam satu deklarasi unik, dengan format sbb       :

struct model_name {
  type1 element1;
  type2 element2;
  type3 element3;
  .
  .
} object_name;
 

dimana model_name adalah nama untuk model tipe stukturnya dan parameter optional object_name merupakan identifier yang valid untuk  objek sturktur. Diantara kurung kurawal { } berupa tipe dan sub-identifier yang mengacu ke elemen pembentuk struktur. Jika pendefinisian stuktur menyertakan parameter model_name (optional), maka parameter tersebut akan menjadi  nama tipe yang valid ekuivalen dengan struktur. Contoh :

 

struct products {
  char name [30];
  float price;
} ;
 
products apple;
products orange, melon;

 

Didefinisikan model struktur  products dengan dua field : name dan price, dengan tipe yang berbeda. Kemudian tipe struktur tadi (products) digunakan untuk mendeklarasikan tiga objek :  apple, orange dan melon.

Ketika dideklarasikan, products menjadi tnama tipe yang valid seperti tipe dasar int, char atau short dan dapat mendeklarasikan objects (variables) dari tipe tersebut.  Optional field yaitu object_name dapat dituliskan pada akhir deklarasi struktur untuk secara langsung mendeklarasikan object dari tipe struktur. Contoh :

 

struct products {
  char name [30];
  float price;
} apple, orange, melon;

 

Sangat penting untuk membedakan antara structure model, dan structure object. model adalah type, dan object adalah variable. Kita dapat membuat banyak objects (variables) dari satu model (type).

 
 

Perbedaan struct dengan Tipe data lain :

Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.

Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk mengakses suatu element dari variabel struktur.

Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang (’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.

 

 

 

 

Contoh :

typedef struct

{

   int NIP ;

   char nama[30]

} pegawai_t, *peg_t;

 

 

 

CONTOH PROGRAM DARI STRUCT

#include <stdio.h>

void main()

{

struct hitung{

int a1;

int a2;

int a3;

} a, b, c;

a.a1 = 30;

b.a2 = 70;

c.a3 = a.a1+b.a2;

printf(“%d “, c.a3);

printf(“%d”, b.a1+ b.a2);

}

printf (“%d”, data_addr.kodepos)  /* mencetak harga member kodepos */

 

 

 

 

contoh progra

#include<stdio.h>
#include<conio.h>
#include<iostream.h>

main()
{
struct
{
char nim[5];
char nama[15];
float nilai;
} mahasiswa;

clrscr();
cout<<“masukan NIM = “;
cin>>mahasiswa.nim;
cout<<“masukan Nama = “;
cin>>mahasiswa.nama;
cout<<“masukan Nilai Akhir = “;
cin>>mahasiswa.nilai;

clrscr();

cout<<“NIM = “<<mahasiswa.nim<<endl;
cout<<“Nama = “<<mahasiswa.nama<<endl;
cout<<“Nilai Akhir = “<<mahasiswa.nilai<<endl;

getch();
}

 

 

 

 

 

 

 

 

 

#include
#include
typedefint angka;
typedef float pecahan;
typedef char huruf;
void main(){
clrscr();
angka umur;
pecahan pecah;
huruf h;

huruf nama[10];
printf(“masukkan umur anda : “);scanf(“%d”,&umur);
printf(“Umur anda adalah %d”,umur);
printf(“\nmasukkan bilangan pecahan : “);scanf(“%f”,&pecah);
printf(“Bilangan pecahan %f”,pecah);
printf(“\nmasukkan huruf : “);h=getche();
printf(“\nHuruf anda %c”,h);
printf(“\nmasukkan nama : “);scanf(“%s”,nama);
printf(“Nama anda %s”,nama);
getch();
}

Description: Program.png

 

 

 

 

Contoh           :

 

// example about structures
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
 
struct movies_t {
  char title [50];
  int year;
  mine, yours;
}
void printmovie (movies_t movie);
 
int main ()
{
  char buffer [50];
 
  strcpy (mine.title, "2001 A Space Odyssey");
  mine.year = 1968;
 
  cout << "Enter title: ";
  cin.getline (yours.title,50);
  cout << "Enter year: ";
  cin.getline (buffer,50);
  yours.year = atoi (buffer);
 
  cout << "My favourite movie is:\n ";
  printmovie (mine);
  cout << "And yours:\n ";
  printmovie (yours);
  return 0;
}
 
void printmovie (movies_t movie)
{
  cout << movie.title;
  cout << " (" << movie.year << ")\n";
}

 

 

 

 

 

Output           :

            Enter title: Alien

Enter year: 1979

 

My favourite movie is:

 2001 A Space Odyssey (1968)

And yours:

 Alien (1979)

 

Contoh diatas menjelaskan bagaimana menggunakan elemen dari struktur dan struktur itu sendiri sebagai variable normal. Contoh, yours.year merupakan variable valid dengan tipe int, dan mine.title merupakan array valid dari 50 chars.

 

Perhatikan mine dan yours juga berlaku sebagai valid variable dari tipe movies_t ketika di-pass ke-function printmovie(). Salah satu keuntungan dari structures yaitu kita dapat mengacu pada setiap elemennya atau keseluruhan blok struktur.

 

 

 

 

 

 

 

 

 

 

 

 

STRUKTUR DATA

 

 

Description: images.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nama kelompok

 

Leave a comment

Filed under Uncategorized

struktur data (struct)

STRUCTURE

 

 

>Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama,

dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai

untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah satu

kesatuan.

> Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling.

 

 

>Struktur merupakan kumpulan berbagai tipe data yang memiliki ukuran yang berbeda di kelompokan dalam satu deklarasi unik, dengan format sbb       :

struct model_name {
  type1 element1;
  type2 element2;
  type3 element3;
  .
  .
} object_name;
 

dimana model_name adalah nama untuk model tipe stukturnya dan parameter optional object_name merupakan identifier yang valid untuk  objek sturktur. Diantara kurung kurawal { } berupa tipe dan sub-identifier yang mengacu ke elemen pembentuk struktur. Jika pendefinisian stuktur menyertakan parameter model_name (optional), maka parameter tersebut akan menjadi  nama tipe yang valid ekuivalen dengan struktur. Contoh :

 

struct products {
  char name [30];
  float price;
} ;

products apple;
products orange, melon;

 

Didefinisikan model struktur  products dengan dua field : name dan price, dengan tipe yang berbeda. Kemudian tipe struktur tadi (products) digunakan untuk mendeklarasikan tiga objek :  apple, orange dan melon.

Ketika dideklarasikan, products menjadi tnama tipe yang valid seperti tipe dasar int, char atau short dan dapat mendeklarasikan objects (variables) dari tipe tersebut.  Optional field yaitu object_name dapat dituliskan pada akhir deklarasi struktur untuk secara langsung mendeklarasikan object dari tipe struktur. Contoh :

 

struct products {
  char name [30];
  float price;
} apple, orange, melon;

 

Sangat penting untuk membedakan antara structure model, dan structure object. model adalah type, dan object adalah variable. Kita dapat membuat banyak objects (variables) dari satu model (type).

 
 

Perbedaan struct dengan Tipe data lain :

Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.

Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk mengakses suatu element dari variabel struktur.

Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang (’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.

 

 

 

 

Contoh :

typedef struct

{

int NIP ;

char nama[30]

} pegawai_t, *peg_t;

 

 

 

CONTOH PROGRAM DARI STRUCT

#include <stdio.h>

void main()

{

struct hitung{

int a1;

int a2;

int a3;

} a, b, c;

a.a1 = 30;

b.a2 = 70;

c.a3 = a.a1+b.a2;

printf(“%d “, c.a3);

printf(“%d”, b.a1+ b.a2);

}

printf (“%d”, data_addr.kodepos)  /* mencetak harga member kodepos */

 

 

 

 

contoh progra

#include<stdio.h>
#include<conio.h>
#include<iostream.h>

main()
{
struct
{
char nim[5];
char nama[15];
float nilai;
} mahasiswa;

clrscr();
cout<<“masukan NIM = “;
cin>>mahasiswa.nim;
cout<<“masukan Nama = “;
cin>>mahasiswa.nama;
cout<<“masukan Nilai Akhir = “;
cin>>mahasiswa.nilai;

clrscr();

cout<<“NIM = “<<mahasiswa.nim<<endl;
cout<<“Nama = “<<mahasiswa.nama<<endl;
cout<<“Nilai Akhir = “<<mahasiswa.nilai<<endl;

getch();
}

 

 

 

 

 

 

 

 

 

#include
#include
typedefint angka;
typedef float pecahan;
typedef char huruf;
void main(){
clrscr();
angka umur;
pecahan pecah;
huruf h;

huruf nama[10];
printf(“masukkan umur anda : “);scanf(“%d”,&umur);
printf(“Umur anda adalah %d”,umur);
printf(“\nmasukkan bilangan pecahan : “);scanf(“%f”,&pecah);
printf(“Bilangan pecahan %f”,pecah);
printf(“\nmasukkan huruf : “);h=getche();
printf(“\nHuruf anda %c”,h);
printf(“\nmasukkan nama : “);scanf(“%s”,nama);
printf(“Nama anda %s”,nama);
getch();
}

 

 

 

 

 

Contoh           :

 

// example about structures
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

struct movies_t {
  char title [50];
  int year;
  mine, yours;
}
void printmovie (movies_t movie);

int main ()
{
  char buffer [50];

  strcpy (mine.title, "2001 A Space Odyssey");
  mine.year = 1968;

  cout << "Enter title: ";
  cin.getline (yours.title,50);
  cout << "Enter year: ";
  cin.getline (buffer,50);
  yours.year = atoi (buffer);

  cout << "My favourite movie is:\n ";
  printmovie (mine);
  cout << "And yours:\n ";
  printmovie (yours);
  return 0;
}

void printmovie (movies_t movie)
{
  cout << movie.title;
  cout << " (" << movie.year << ")\n";
}

 

 

 

 

 

Output           :

            Enter title: Alien

Enter year: 1979

 

My favourite movie is:

 2001 A Space Odyssey (1968)

And yours:

 Alien (1979)

 

Contoh diatas menjelaskan bagaimana menggunakan elemen dari struktur dan struktur itu sendiri sebagai variable normal. Contoh, yours.year merupakan variable valid dengan tipe int, dan mine.title merupakan array valid dari 50 chars.

 

Perhatikan mine dan yours juga berlaku sebagai valid variable dari tipe movies_t ketika di-pass ke-function printmovie(). Salah satu keuntungan dari structures yaitu kita dapat mengacu pada setiap elemennya atau keseluruhan blok struktur.

 

 

 

 

 

 

 

 

 

 

 

 

STRUKTUR DATA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nama kelompok

 

Leave a comment

Filed under Uncategorized

Hello world!

Welcome to WordPress.com. After you read this, you should delete and write your own post, with a new title above. Or hit Add New on the left (of the admin dashboard) to start a fresh post.

Here are some suggestions for your first post.

  1. You can find new ideas for what to blog about by reading the Daily Post.
  2. Add PressThis to your browser. It creates a new blog post for you about any interesting  page you read on the web.
  3. Make some changes to this page, and then hit preview on the right. You can always preview any post or edit it before you share it to the world.

2 Comments

Filed under Uncategorized