- Beranda
- Komunitas
- Tech
- Programmer Forum
[HELP] LinkList in C (entry data dari keyboard)


TS
dika46
[HELP] LinkList in C (entry data dari keyboard)
Pagi juragan sekalian ! 
Ane mohon bantuannya nih untuk coding C yg udah kelompok ane buat.
Ya, kalau juragan bertanya ini tugas kuliah, ane bilang iya. Tapi ane mentok gan. Pusing euy.
Kiranya juragan bisa kasih pencerahan buat ane.
Ini source-codenya:
Nah, kalau menggunakan cara langsung dari fungsi ll_tambah, koding jalannya bener gan (yang orange). tapi yang jadi persoalan adalah, ketika entry data via keyboard (yang merah).
baik menggunakan fungsi
tetap muncul error.
dan satu lagi, program me-loop terus-menerus. nilai dari variabel 'q' berubah ketika looping pertama

ada yang bisa bantu ane? setidaknya kasih saran / solusi untuk masalah ini.
Ya, bolehlah berbagi cendol gan.
oh ya, ane menggunakan DevC++ versi terakhir buat ngerjain tugas ini gan. thanks a lot sebelumnya.

Ane mohon bantuannya nih untuk coding C yg udah kelompok ane buat.
Ya, kalau juragan bertanya ini tugas kuliah, ane bilang iya. Tapi ane mentok gan. Pusing euy.
Kiranya juragan bisa kasih pencerahan buat ane.
Ini source-codenya:
Code:
#include <stdio.h> /* for printf */
#include <stdlib.h> /* for malloc */
typedef struct Mahasiswa
{
int nourut;
char *nama;
char *nim;
char *prodi;
char *semester;
char *kelas;
char *alamat;
struct Mahasiswa *berikutnya; /* pointer to berikutnya element in list */
} L_MHS;
// prototype function
L_MHS *ll_tambah(L_MHS **p, int i, char *nm, char *nim, char *prd, char *smstr, char *kls, char *almt);
void ll_cetak(L_MHS *n);
// fungsi untuk menambahkan data ke list
L_MHS *ll_tambah(L_MHS **p, int i, char *nm, char *nim, char *prd, char *smstr, char *kls, char *almt)
{
L_MHS *n = (L_MHS *) malloc(sizeof(L_MHS));
if (n == NULL) return NULL;
n->berikutnya = *p; /* element *p berubah jadi elemen berikutnya */
*p = n; /* tambah elemen baru */
n->nourut = i;
n->nama = nm;
n->nim = nim;
n->prodi = prd;
n->semester = smstr;
n->kelas = kls;
n->alamat = almt;
return *p;
}
void ll_cetak(L_MHS *n)
{
if (n == NULL) printf("list is empty
");
while (n != NULL) {
\tprintf("print %p %p %d %s
", n, n->berikutnya, n->nourut, n->nama);
\tprintf("No Urut \t: %d
", n->nourut);
\tprintf("Nama \t: %s
", n->nama);
\tprintf("NIM \t: %d
", n->nim);
\tprintf("Prodi \t: %s
", n->prodi);
\tprintf("Semester\t: %s
", n->semester);
\tprintf("Kelas\t\t: %s
", n->kelas);
\tprintf("Alamat \t: %s
", n->alamat);
\t
\tn = n->berikutnya;
}
}
int main(void) {
// variabel ini hanya dipakai di fungsi main
// variabel lokal
int jData, q = 0;
\t
char *nama_mhs;
char *nim_mhs;
char *prodi_mhs;
char *semester_mhs;
char *kelas_mhs;
char *alamat_mhs;
// deklarasi linklistnya
L_MHS *n = NULL;
// jumlah datanya berapa ?
printf("Jumlah Mahasiswa ? "); scanf("%d", &jData);
[COLOR="DarkOrange"] // uji program dengan cara entry langsung:
/*
ll_tambah(&n, 0, "Joko", "108093000001", "SI", "2", "B", "Ciputat");
ll_tambah(&n, 1, "Susilo", "108093000002", "SI", "2", "B", "Cirendeu");
ll_tambah(&n, 2, "Bambang", "108093000003", "SI", "2", "B", "Gintung");
ll_tambah(&n, 3, "Pamungkas", "108093000004", "SI", "2", "B", "Pamulang");
*/[/COLOR]
[COLOR="Red"] while (q < jData) {
printf("No Urut : %d
", q+1); fflush(stdin);
printf("Nama Mahasiswa : "); fflush(stdin);scanf("%s", &nama_mhs);
printf("NIM : "); fflush(stdin);scanf("%d", &nim_mhs);
printf("Prodi : "); fflush(stdin);scanf("%s", &prodi_mhs);
printf("Semester : "); fflush(stdin);scanf("%d", &semester_mhs);
printf("Kelas : "); fflush(stdin);scanf("%s", &kelas_mhs);
printf("Alamat : "); fflush(stdin);scanf("%s", &alamat_mhs);
ll_tambah(&n, q + 1, nama_mhs, nim_mhs, prodi_mhs, semester_mhs, kelas_mhs,alamat_mhs);
q = q + 1;
}[/COLOR]
ll_cetak(n);
return 0;
}
Nah, kalau menggunakan cara langsung dari fungsi ll_tambah, koding jalannya bener gan (yang orange). tapi yang jadi persoalan adalah, ketika entry data via keyboard (yang merah).
baik menggunakan fungsi
- gets
- scanf("^[
]", nama_mhs)
tetap muncul error.
dan satu lagi, program me-loop terus-menerus. nilai dari variabel 'q' berubah ketika looping pertama


ada yang bisa bantu ane? setidaknya kasih saran / solusi untuk masalah ini.
Ya, bolehlah berbagi cendol gan.

oh ya, ane menggunakan DevC++ versi terakhir buat ngerjain tugas ini gan. thanks a lot sebelumnya.

0
1.5K
6


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan